pokegold-spaceworld/engine/debug/debug_menu.asm
2026-07-20 16:21:04 -04:00

138 lines
2.7 KiB
NASM

; DebugJumpTable indices
const_def
const DEBUGMENU_FIGHT
const DEBUGMENU_FIELD
const DEBUGMENU_SOUNDTEST
const DEBUGMENU_SUBGAME
const DEBUGMENU_POKEDEX
const DEBUGMENU_TRAINERGEAR
DebugMenu::
call ClearTileMap
call ClearWindowData
call LoadFont
call LoadFontsBattleExtra
call ClearSprites
call GetMemSGBLayout
xor a
ld [wWhichIndexSet], a
ld hl, DebugMenuHeader
call LoadMenuHeader
call OpenMenu
call CloseWindow
jp c, TitleSequenceStart
ld a, BATTLE_SHIFT | TEXT_DELAY_FAST
ld [wOptions], a
ld a, [wMenuSelection]
ld hl, DebugJumpTable
jp CallJumptable
DebugJumpTable::
dw DebugMenuOptionFight
dw DebugMenuOptionField
dw DebugMenuSoundTest ; to home bank
dw DebugMenuOptionSubGames
dw DebugMenuOptionMonsterTest
dw DebugMenuOptionName
DebugMenuHeader:
db MENU_BACKUP_TILES ; flags
menu_coords 5, 2, SCREEN_WIDTH - 7, SCREEN_HEIGHT - 1
dw .MenuData
db 1 ; default option
.MenuData:
db STATICMENU_CURSOR | STATICMENU_WRAP
db 0
dw DebugMenuItems
dw PlaceMenuStrings
dw .Strings
.Strings
db "ファイト@"
db "フィールド@"
db "サウンド@"
db "サブゲーム@"
db "モンスター@"
db "なまえ@"
DebugMenuItems:
db 6 ; items
db DEBUGMENU_FIGHT
db DEBUGMENU_FIELD
db DEBUGMENU_SOUNDTEST
db DEBUGMENU_SUBGAME
db DEBUGMENU_POKEDEX
db DEBUGMENU_TRAINERGEAR
db -1
DebugMenuOptionField::
ld hl, wDebugFlags
set DEBUG_FIELD_F, [hl] ; set debug mode
jp NewGame
DebugMenuOptionFight::
ld hl, wDebugFlags
set DEBUG_BATTLE_F, [hl]
predef FightDebugMenu
ld hl, wDebugFlags
res DEBUG_BATTLE_F, [hl]
ret
DebugMenuOptionSubGames::
callfar CallSubGameMenu
jp DebugMenu
DebugMenuOptionMonsterTest::
ld hl, wPokedexCaught
ld de, wPokedexSeen
ld b, NUM_POKEMON / 8
ld a, %11111111
.loop
ld [hli], a
ld [de], a
inc de
dec b
jr nz, .loop
ld a, (1 << ((NUM_POKEMON - 1) % 8)) - 1 ; discount #251
ld [hl], a
ld [de], a
callfar MonsterTest
ld a, %11100100
ldh [rBGP], a
OpenDebugMenu::
jp DebugMenu
DebugMenuOptionName::
callfar OpenTrainerGear
ld a, %11100100
ldh [rBGP], a
jp DebugMenu
SetDemoEventFlags:
SetEvent SILENT_HILL_RIVAL_EVENT
SetEvent SILENT_HILL_TALKED_TO_BLUE
SetEvent PLAYER_HOUSE_2F_READ_EMAIL
SetEvent PLAYER_HOUSE_2F_TALKED_TO_KEN
SetEvent RIVAL_HOUSE_READ_RIVAL_EMAIL
SetEvent RIVAL_HOUSE_READ_RIVAL_EMAIL
SetEvent RIVAL_HOUSE_KEN_LEFT
SetEvent SILENT_HILL_LAB_BACK_FOLLOWED_OAK
SetEvent SILENT_HILL_LAB_FRONT_GOT_POKEDEX
SetEvent SILENT_HILL_LAB_FRONT_RIVAL_BATTLED
SetEvent SILENT_HILL_LAB_BACK_CHOSE_STARTER
ld a, 1
ld [wPlayerHouse2FSceneID], a
ld a, 1
ld [wPlayerHouse1FSceneID], a
ld a, 6
ld [wSilentHillSceneID], a
ld a, 18
ld [wSilentHillLabFrontSceneID], a
ld a, 6
ld [wSilentHillLabBackSceneID], a
ld a, 2
ld [wRivalHouseSceneID], a
ret