kep-hack/engine/debug/debug_party.asm
Llinos Evans 3f6005f3f1 Refactor Item Constants
Alright, never put items after the floors. This is very, very bad, as it actually causes a myriad of problems whenever the game tries to assert the item list on its lonesome. Effectively, this has been adding floors. This caused the item descriptions to be offset by 21 spaces once you get to the TMs. The fact it worked before was a miracle.

Anyway, all considerations have been made when doing this, so it should all be just fine.

If you need to test if the items are ok, check the Up-Grade on Porygon, as it's the last in the list. Checks showed it was ok for me.

Also, Old Sea Chart now uses the localised name - Old Sea Map. This actually fits in-game, which is good.
2023-04-09 12:25:10 +01:00

166 lines
2.8 KiB
NASM

; This function is a debugging feature to give the player Tsunekazu Ishihara's
; favorite Pokemon. This is indicated by the overpowered Exeggutor, which
; Ishihara (president of Creatures Inc.) said was his favorite Pokemon in an ABC
; interview on February 8, 2000.
; "Exeggutor is my favorite. That's because I was always using this character
; while I was debugging the program."
; http://www.ign.com/articles/2000/02/09/abc-news-pokamon-chat-transcript
SetIshiharaTeam:
ld de, IshiharaTeam
.loop
ld a, [de]
cp -1
ret z
ld [wcf91], a
inc de
ld a, [de]
ld [wCurEnemyLVL], a
inc de
call AddPartyMon
jr .loop
IshiharaTeam:
db EXEGGUTOR_A, 90
db RAICHU, 90
db MEWTWO, 90
db PORYGON, 50
IF DEF(_DEBUG)
db NINETALES, 50
db DUGTRIO, 50
ENDC
db -1 ; end
DebugStart:
IF DEF(_DEBUG)
xor a ; PLAYER_PARTY_DATA
ld [wMonDataLocation], a
; Fly anywhere.
dec a ; $ff
ld [wTownVisitedFlag], a
ld [wTownVisitedFlag + 1], a
; Get all badges except Earth Badge.
ld a, ~(1 << BIT_EARTHBADGE)
ld [wObtainedBadges], a
call SetIshiharaTeam
; Exeggutor (Pokemon 1) gets four HM moves.
ld hl, wPartyMon1Moves
ld a, FLY
ld [hli], a
ld a, CUT
ld [hli], a
ld a, SURF
ld [hli], a
ld a, STRENGTH
ld [hl], a
ld hl, wPartyMon1PP
ld a, 15
ld [hli], a
ld a, 30
ld [hli], a
ld a, 15
ld [hli], a
ld [hl], a
; Jolteon (Pokemon 3) gets Thunderbolt.
ld hl, wPartyMon3Moves + 3
ld a, THUNDERBOLT
ld [hl], a
ld hl, wPartyMon3PP + 3
ld a, 15
ld [hl], a
; Articuno (Pokemon 5) gets Fly.
ld hl, wPartyMon5Moves
ld a, FLY
ld [hl], a
ld hl, wPartyMon5PP
ld a, 15
ld [hl], a
; Kadabra (Pokemon 6) gets Flash and Teleport
ld hl, wPartyMon6Moves + 2
ld a, FLASH
ld [hl], a
ld hl, wPartyMon6PP + 2
ld a, 15
ld [hl], a
ld a, TELEPORT
ld [hl], a
; Get some debug items.
ld hl, wNumBagItems
ld de, DebugItemsList
.items_loop
ld a, [de]
cp -1
jr z, .items_end
ld [wcf91], a
inc de
ld a, [de]
inc de
ld [wItemQuantity], a
call AddItemToInventory
jr .items_loop
.items_end
; Complete the Pokédex.
ld hl, wPokedexOwned
call DebugSetPokedexEntries
ld hl, wPokedexSeen
call DebugSetPokedexEntries
SetEvent EVENT_GOT_POKEDEX
; Rival chose Squirtle,
; Player chose Charmander.
ld hl, wRivalStarter
ld a, STARTER2
ld [hli], a
inc hl ; hl = wPlayerStarter
ld a, STARTER1
ld [hl], a
ret
DebugSetPokedexEntries:
ld b, wPokedexOwnedEnd - wPokedexOwned
ld a, %11111111
.loop
ld [hli], a
dec b
jr nz, .loop
ld [hl], %01111111
ret
DebugItemsList:
db BICYCLE, 1
db FULL_RESTORE, 99
db MAX_REPEL, 99
db RARE_CANDY, 99
db MASTER_BALL, 99
db ULTRA_BALL, 99
db SECRET_KEY, 1
db CARD_KEY, 1
db S_S_TICKET, 1
db CITRINE_PASS, 1
db SUPER_ROD, 1
db COIN_CASE, 1
db POKE_FLUTE, 1
db SILPH_SCOPE, 1
db OLD_SEA_MAP, 1
db UP_GRADE, 1
db TM_MEGA_PUNCH, 1
db HM_SURF, 1
db FLOOR_1F
db -1 ; end
DebugUnusedList:
db -1 ; end
ELSE
ret
ENDC