summaryrefslogtreecommitdiff
path: root/engine/remove_pokemon.asm
diff options
context:
space:
mode:
Diffstat (limited to 'engine/remove_pokemon.asm')
-rw-r--r--engine/remove_pokemon.asm95
1 files changed, 0 insertions, 95 deletions
diff --git a/engine/remove_pokemon.asm b/engine/remove_pokemon.asm
deleted file mode 100644
index f29a428d..00000000
--- a/engine/remove_pokemon.asm
+++ /dev/null
@@ -1,95 +0,0 @@
-_RemovePokemon:
- ld hl, wPartyCount
- ld a, [wRemoveMonFromBox]
- and a
- jr z, .usePartyCount
- ld hl, wNumInBox
-.usePartyCount
- ld a, [hl]
- dec a
- ld [hli], a
- ld a, [wWhichPokemon]
- ld c, a
- ld b, $0
- add hl, bc
- ld e, l
- ld d, h
- inc de
-.shiftMonSpeciesLoop
- ld a, [de]
- inc de
- ld [hli], a
- inc a ; reached terminator?
- jr nz, .shiftMonSpeciesLoop ; if not, continue shifting species
- ld hl, wPartyMonOT
- ld d, PARTY_LENGTH - 1 ; max number of pokemon to shift
- ld a, [wRemoveMonFromBox]
- and a
- jr z, .usePartyMonOTs
- ld hl, wBoxMonOT
- ld d, MONS_PER_BOX - 1
-.usePartyMonOTs
- ld a, [wWhichPokemon]
- call SkipFixedLengthTextEntries
- ld a, [wWhichPokemon]
- 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
-.notRemovingLastMon
- ld d, h
- ld e, l
- ld bc, NAME_LENGTH
- add hl, bc
- ld bc, wPartyMonNicks
- ld a, [wRemoveMonFromBox]
- and a
- jr z, .usePartyMonNicks
- ld bc, wBoxMonNicks
-.usePartyMonNicks
- call CopyDataUntil
- ld hl, wPartyMons
- ld bc, wPartyMon2 - wPartyMon1
- ld a, [wRemoveMonFromBox]
- and a
- jr z, .usePartyMonStructs
- ld hl, wBoxMons
- ld bc, wBoxMon2 - wBoxMon1
-.usePartyMonStructs
- ld a, [wWhichPokemon]
- 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, .copyUntilPartyMonOTs
- ld bc, wBoxMon2 - wBoxMon1
- 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 ; 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, .usePartyMonNicks2
- ld hl, wBoxMonNicks
-.usePartyMonNicks2
- ld bc, NAME_LENGTH
- ld a, [wWhichPokemon]
- call AddNTimes
- ld d, h
- ld e, l
- ld bc, NAME_LENGTH
- add hl, bc
- ld bc, wPartyMonNicksEnd
- ld a, [wRemoveMonFromBox]
- and a
- jr z, .copyUntilPartyMonNicksEnd
- ld bc, wBoxMonNicksEnd
-.copyUntilPartyMonNicksEnd
- jp CopyDataUntil