mirror of
https://github.com/pret/pokered.git
synced 2026-03-21 17:45:50 -05:00
121 lines
2.1 KiB
NASM
121 lines
2.1 KiB
NASM
DebugMenu:
|
|
IF DEF(_DEBUG)
|
|
call ClearScreen
|
|
|
|
; These debug names are used for TestBattle.
|
|
; StartNewGameDebug uses the debug names from PrepareOakSpeech.
|
|
ld hl, DebugBattlePlayerName
|
|
ld de, wPlayerName
|
|
ld bc, NAME_LENGTH
|
|
call CopyData
|
|
|
|
ld hl, DebugBattleRivalName
|
|
ld de, wRivalName
|
|
ld bc, NAME_LENGTH
|
|
call CopyData
|
|
|
|
call LoadFontTilePatterns
|
|
call LoadHpBarAndStatusTilePatterns
|
|
call ClearSprites
|
|
call RunDefaultPaletteCommand
|
|
|
|
hlcoord 5, 6
|
|
ld b, 3
|
|
ld c, 9
|
|
call TextBoxBorder
|
|
|
|
hlcoord 7, 7
|
|
ld de, DebugMenuOptions
|
|
call PlaceString
|
|
|
|
ld a, TEXT_DELAY_MEDIUM
|
|
ld [wOptions], a
|
|
|
|
ld a, PAD_A | PAD_B | PAD_START
|
|
ld [wMenuWatchedKeys], a
|
|
xor a
|
|
ld [wMenuJoypadPollCount], a
|
|
inc a
|
|
ld [wMaxMenuItem], a
|
|
ld a, 7
|
|
ld [wTopMenuItemY], a
|
|
dec a
|
|
ld [wTopMenuItemX], a
|
|
xor a
|
|
ld [wCurrentMenuItem], a
|
|
ld [wLastMenuItem], a
|
|
ld [wMenuWatchMovingOutOfBounds], a
|
|
|
|
call HandleMenuInput
|
|
bit B_PAD_B, a
|
|
jp nz, DisplayTitleScreen
|
|
|
|
ld a, [wCurrentMenuItem]
|
|
and a ; FIGHT?
|
|
jp z, TestBattle
|
|
|
|
; DEBUG
|
|
ld hl, wStatusFlags6
|
|
set BIT_DEBUG_MODE, [hl]
|
|
jp StartNewGameDebug
|
|
|
|
DebugBattlePlayerName:
|
|
db "Tom@"
|
|
|
|
DebugBattleRivalName:
|
|
db "Juerry@"
|
|
|
|
DebugMenuOptions:
|
|
db "FIGHT"
|
|
next "DEBUG@"
|
|
ELSE
|
|
ret
|
|
ENDC
|
|
|
|
TestBattle: ; unreferenced except in _DEBUG
|
|
.loop
|
|
call GBPalNormal
|
|
|
|
; Don't mess around with obedience.
|
|
ld a, 1 << BIT_EARTHBADGE
|
|
ld [wObtainedBadges], a
|
|
|
|
ld hl, wStatusFlags7
|
|
set BIT_TEST_BATTLE, [hl]
|
|
|
|
; wNumBagItems and wBagItems are not initialized here,
|
|
; and their garbage values happen to act as if EXP_ALL
|
|
; is in the bag at the end of the test battle.
|
|
; pokeyellow fixes this by initializing them with a
|
|
; list of items.
|
|
|
|
; Reset the party.
|
|
ld hl, wPartyCount
|
|
xor a
|
|
ld [hli], a
|
|
dec a
|
|
ld [hl], a
|
|
|
|
; Give the player a level 20 Rhydon.
|
|
ld a, RHYDON
|
|
ld [wCurPartySpecies], a
|
|
ld a, 20
|
|
ld [wCurEnemyLevel], a
|
|
xor a
|
|
ld [wMonDataLocation], a
|
|
ld [wCurMap], a
|
|
call AddPartyMon
|
|
|
|
; Fight against a level 20 Rhydon.
|
|
ld a, RHYDON
|
|
ld [wCurOpponent], a
|
|
|
|
predef InitOpponent
|
|
|
|
; When the battle ends, do it all again.
|
|
; There are some graphical quirks in SGB mode.
|
|
ld a, 1
|
|
ld [wUpdateSpritesEnabled], a
|
|
ldh [hAutoBGTransferEnabled], a
|
|
jr .loop
|