1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
|
_MoveMon:
ld a, [wMoveMonType]
and a
jr z, .checkPartyMonSlots
cp DAYCARE_TO_PARTY
jr z, .checkPartyMonSlots
cp PARTY_TO_DAYCARE
ld hl, wDayCareMon
jr z, .asm_f3fb
ld hl, wNumInBox
ld a, [hl]
cp MONS_PER_BOX
jr nz, .partyOrBoxNotFull
jr .boxFull
.checkPartyMonSlots
ld hl, wPartyCount
ld a, [hl]
cp PARTY_LENGTH
jr nz, .partyOrBoxNotFull
.boxFull
scf
ret
.partyOrBoxNotFull
inc a
ld [hl], a ; increment number of mons in party/box
ld c, a
ld b, 0
add hl, bc
ld a, [wMoveMonType]
cp DAYCARE_TO_PARTY
ld a, [wDayCareMon]
jr z, .asm_f3dc
ld a, [wcf91]
.asm_f3dc
ld [hli], a ; write new mon ID
ld [hl], $ff ; write new sentinel
ld a, [wMoveMonType]
dec a
ld hl, wPartyMons
ld bc, wPartyMon2 - wPartyMon1 ; $2c
ld a, [wPartyCount]
jr nz, .skipToNewMonEntry
ld hl, wBoxMons
ld bc, wBoxMon2 - wBoxMon1 ; $21
ld a, [wNumInBox]
.skipToNewMonEntry
dec a
call AddNTimes
.asm_f3fb
push hl
ld e, l
ld d, h
ld a, [wMoveMonType]
and a
ld hl, wBoxMons
ld bc, wBoxMon2 - wBoxMon1 ; $21
jr z, .asm_f417
cp DAYCARE_TO_PARTY
ld hl, wDayCareMon
jr z, .asm_f41d
ld hl, wPartyMons
ld bc, wPartyMon2 - wPartyMon1 ; $2c
.asm_f417
ld a, [wWhichPokemon]
call AddNTimes
.asm_f41d
push hl
push de
ld bc, wBoxMon2 - wBoxMon1
call CopyData
pop de
pop hl
ld a, [wMoveMonType]
and a
jr z, .asm_f43a
cp DAYCARE_TO_PARTY
jr z, .asm_f43a
ld bc, wBoxMon2 - wBoxMon1
add hl, bc
ld a, [hl]
inc de
inc de
inc de
ld [de], a
.asm_f43a
ld a, [wMoveMonType]
cp PARTY_TO_DAYCARE
ld de, wDayCareMonOT
jr z, .asm_f459
dec a
ld hl, wPartyMonOT
ld a, [wPartyCount]
jr nz, .asm_f453
ld hl, wBoxMonOT
ld a, [wNumInBox]
.asm_f453
dec a
call SkipFixedLengthTextEntries
ld d, h
ld e, l
.asm_f459
ld hl, wBoxMonOT
ld a, [wMoveMonType]
and a
jr z, .asm_f46c
ld hl, wDayCareMonOT
cp DAYCARE_TO_PARTY
jr z, .asm_f472
ld hl, wPartyMonOT
.asm_f46c
ld a, [wWhichPokemon]
call SkipFixedLengthTextEntries
.asm_f472
ld bc, NAME_LENGTH
call CopyData
ld a, [wMoveMonType]
cp PARTY_TO_DAYCARE
ld de, wDayCareMonName
jr z, .asm_f497
dec a
ld hl, wPartyMonNicks
ld a, [wPartyCount]
jr nz, .asm_f491
ld hl, wBoxMonNicks
ld a, [wNumInBox]
.asm_f491
dec a
call SkipFixedLengthTextEntries
ld d, h
ld e, l
.asm_f497
ld hl, wBoxMonNicks
ld a, [wMoveMonType]
and a
jr z, .asm_f4aa
ld hl, wDayCareMonName
cp DAYCARE_TO_PARTY
jr z, .asm_f4b0
ld hl, wPartyMonNicks
.asm_f4aa
ld a, [wWhichPokemon]
call SkipFixedLengthTextEntries
.asm_f4b0
ld bc, NAME_LENGTH
call CopyData
pop hl
ld a, [wMoveMonType]
cp PARTY_TO_BOX
jr z, .asm_f4ea
cp PARTY_TO_DAYCARE
jr z, .asm_f4ea
push hl
srl a
add $2
ld [wMonDataLocation], a
call LoadMonData
callba CalcLevelFromExperience
ld a, d
ld [wCurEnemyLVL], a
pop hl
ld bc, wBoxMon2 - wBoxMon1
add hl, bc
ld [hli], a
ld d, h
ld e, l
ld bc, -18
add hl, bc
ld b, $1
call CalcStats
.asm_f4ea
and a
ret
|