mirror of
https://github.com/pret/pokeyellow.git
synced 2026-05-10 21:01:33 -05:00
172 lines
2.9 KiB
NASM
172 lines
2.9 KiB
NASM
_MoveMon: ; f3a4 (3:73a4)
|
|
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 |