diff options
| author | Rangi <remy.oukaour+rangi42@gmail.com> | 2020-07-05 16:41:45 -0400 | 
|---|---|---|
| committer | Rangi <remy.oukaour+rangi42@gmail.com> | 2020-07-05 16:41:45 -0400 | 
| commit | 7ab43f4d17aa63d4ef1050d80560379f19200088 (patch) | |
| tree | 8f704e45493df1eefce8af2383b11c216071503d /engine | |
| parent | b0aa4cb14a602bc2acf15bc0f2591a94a30487a2 (diff) | |
Port _RemovePokemon documentation from pokeyellow
Diffstat (limited to 'engine')
| -rw-r--r-- | engine/pokemon/remove_mon.asm | 66 | 
1 files changed, 33 insertions, 33 deletions
| diff --git a/engine/pokemon/remove_mon.asm b/engine/pokemon/remove_mon.asm index 6f7e91d6..c85b96bf 100644 --- a/engine/pokemon/remove_mon.asm +++ b/engine/pokemon/remove_mon.asm @@ -2,9 +2,9 @@ _RemovePokemon::  	ld hl, wPartyCount  	ld a, [wRemoveMonFromBox]  	and a -	jr z, .asm_7b74 +	jr z, .usePartyCount  	ld hl, wNumInBox -.asm_7b74 +.usePartyCount  	ld a, [hl]  	dec a  	ld [hli], a @@ -15,28 +15,28 @@ _RemovePokemon::  	ld e, l  	ld d, h  	inc de -.asm_7b81 +.shiftMonSpeciesLoop  	ld a, [de]  	inc de  	ld [hli], a -	inc a -	jr nz, .asm_7b81 +	inc a ; reached terminator? +	jr nz, .shiftMonSpeciesLoop ; if not, continue shifting species  	ld hl, wPartyMonOT -	ld d, $5 +	ld d, PARTY_LENGTH - 1 ; max number of pokemon to shift  	ld a, [wRemoveMonFromBox]  	and a -	jr z, .asm_7b97 +	jr z, .usePartyMonOTs  	ld hl, wBoxMonOT -	ld d, $13 -.asm_7b97 +	ld d, MONS_PER_BOX - 1 +.usePartyMonOTs  	ld a, [wWhichPokemon]  	call SkipFixedLengthTextEntries  	ld a, [wWhichPokemon] -	cp d -	jr nz, .asm_7ba6 -	ld [hl], $ff +	cp d ; are we removing the last pokemon? +	jr nz, .notRemovingLastMon ; if not, shift the pokemon below +	ld [hl], $ff ; else, write the terminator and return  	ret -.asm_7ba6 +.notRemovingLastMon  	ld d, h  	ld e, l  	ld bc, NAME_LENGTH @@ -44,41 +44,41 @@ _RemovePokemon::  	ld bc, wPartyMonNicks  	ld a, [wRemoveMonFromBox]  	and a -	jr z, .asm_7bb8 +	jr z, .usePartyMonNicks  	ld bc, wBoxMonNicks -.asm_7bb8 +.usePartyMonNicks  	call CopyDataUntil  	ld hl, wPartyMons  	ld bc, wPartyMon2 - wPartyMon1  	ld a, [wRemoveMonFromBox]  	and a -	jr z, .asm_7bcd +	jr z, .usePartyMonStructs  	ld hl, wBoxMons  	ld bc, wBoxMon2 - wBoxMon1 -.asm_7bcd +.usePartyMonStructs  	ld a, [wWhichPokemon] -	call AddNTimes -	ld d, h +	call AddNTimes ; get address of the pokemon removed +	ld d, h ; store in de for CopyDataUntil  	ld e, l  	ld a, [wRemoveMonFromBox]  	and a -	jr z, .asm_7be4 +	jr z, .copyUntilPartyMonOTs  	ld bc, wBoxMon2 - wBoxMon1 -	add hl, bc -	ld bc, wBoxMonOT -	jr .asm_7beb -.asm_7be4 +	add hl, bc ; get address of pokemon after the pokemon removed +	ld bc, wBoxMonOT ; address of when to stop copying +	jr .continue +.copyUntilPartyMonOTs  	ld bc, wPartyMon2 - wPartyMon1 -	add hl, bc -	ld bc, wPartyMonOT -.asm_7beb -	call CopyDataUntil +	add hl, bc ; get address of pokemon after the pokemon removed +	ld bc, wPartyMonOT ; address of when to stop copying +.continue +	call CopyDataUntil ; shift all pokemon data after the removed mon to the removed mon's location  	ld hl, wPartyMonNicks  	ld a, [wRemoveMonFromBox]  	and a -	jr z, .asm_7bfa +	jr z, .usePartyMonNicks2  	ld hl, wBoxMonNicks -.asm_7bfa +.usePartyMonNicks2  	ld bc, NAME_LENGTH  	ld a, [wWhichPokemon]  	call AddNTimes @@ -86,10 +86,10 @@ _RemovePokemon::  	ld e, l  	ld bc, NAME_LENGTH  	add hl, bc -	ld bc, wPokedexOwned +	ld bc, wPartyMonNicksEnd  	ld a, [wRemoveMonFromBox]  	and a -	jr z, .asm_7c15 +	jr z, .copyUntilPartyMonNicksEnd  	ld bc, wBoxMonNicksEnd -.asm_7c15 +.copyUntilPartyMonNicksEnd  	jp CopyDataUntil | 
