pokered/engine/give_pokemon.asm
2016-07-18 01:17:03 -05:00

82 lines
1.3 KiB
NASM
Executable file

_GivePokemon:
; returns success in carry
; and whether the mon was added to the party in [wAddedToParty]
call EnableAutoTextBoxDrawing
xor a
ld [wAddedToParty], a
ld a, [wPartyCount]
cp PARTY_LENGTH
jr c, .addToParty
ld a, [wNumInBox]
cp MONS_PER_BOX
jr nc, .boxFull
; add to box
xor a
ld [wEnemyBattleStatus3], a
ld a, [wcf91]
ld [wEnemyMonSpecies2], a
callab LoadEnemyMonData
call SetPokedexOwnedFlag
callab SendNewMonToBox
ld hl, wcf4b
ld a, [wCurrentBoxNum]
and $7f
cp 9
jr c, .singleDigitBoxNum
sub 9
ld [hl], "1"
inc hl
add "0"
jr .next
.singleDigitBoxNum
add "1"
.next
ld [hli], a
ld [hl], "@"
ld hl, SetToBoxText
call PrintText
scf
ret
.boxFull
ld hl, BoxIsFullText
call PrintText
and a
ret
.addToParty
call SetPokedexOwnedFlag
call AddPartyMon
ld a, 1
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
ld [wAddedToParty], a
scf
ret
SetPokedexOwnedFlag:
ld a, [wcf91]
push af
ld [wd11e], a
predef IndexToPokedex
ld a, [wd11e]
dec a
ld c, a
ld hl, wPokedexOwned
ld b, FLAG_SET
predef FlagActionPredef
pop af
ld [wd11e], a
call GetMonName
ld hl, GotMonText
jp PrintText
GotMonText:
TX_FAR _GotMonText
TX_SFX_ITEM_1
db "@"
SetToBoxText:
TX_FAR _SetToBoxText
db "@"
BoxIsFullText:
TX_FAR _BoxIsFullText
db "@"