diff options
Diffstat (limited to 'src/debug')
-rw-r--r-- | src/debug/kagaya_debug_menu.c | 183 | ||||
-rw-r--r-- | src/debug/matsuda_debug_menu.c | 335 | ||||
-rw-r--r-- | src/debug/nakamura_debug_menu.c | 189 | ||||
-rw-r--r-- | src/debug/nohara_debug_menu.c | 12 | ||||
-rw-r--r-- | src/debug/start_menu_debug.c | 6051 | ||||
-rw-r--r-- | src/debug/taya_debug_window.c | 6 | ||||
-rw-r--r-- | src/debug/tomomichi_debug_menu.c | 4483 | ||||
-rw-r--r-- | src/debug/watanabe_debug_menu.c | 11 |
8 files changed, 11097 insertions, 173 deletions
diff --git a/src/debug/kagaya_debug_menu.c b/src/debug/kagaya_debug_menu.c new file mode 100644 index 000000000..3cb36ce0c --- /dev/null +++ b/src/debug/kagaya_debug_menu.c @@ -0,0 +1,183 @@ +#if DEBUG + +#include "global.h" +#include "field_effect.h" +#include "field_control_avatar.h" +#include "field_player_avatar.h" +#include "main.h" +#include "menu.h" +#include "overworld.h" +#include "palette.h" +#include "random.h" +#include "region_map.h" +#include "script.h" +#include "slot_machine.h" +#include "trainer_card.h" + +extern u8 (*gMenuCallback)(void); + +void InitKagayaDebugMenu_B(void); +u8 debug_sub_80B061C(void); +u8 KagayaDebugMenu_TrainerCard(void); +u8 debug_sub_80B068C(void); +u8 KagayaDebugMenu_CardToExchange(void); +u8 debug_sub_80B06E0(void); +u8 KagayaDebugMenu_SlotMachine(void); +u8 Kagaya_80B0734(void); +u8 debug_sub_80B07DC(void); + +const u8 Str_83EBB34[] = _("Trainer’s card"); +const u8 Str_83EBB43[] = _("Card to exchange"); +const u8 Str_83EBB54[] = _("Slot machine"); + +const struct MenuAction _83EBB64[] = +{ + { Str_83EBB34, KagayaDebugMenu_TrainerCard }, + { Str_83EBB43, KagayaDebugMenu_CardToExchange }, + { Str_83EBB54, KagayaDebugMenu_SlotMachine }, +}; + +u8 InitKagayaDebugMenu_A(void) +{ + InitKagayaDebugMenu_B(); + return 0; +} + +void InitKagayaDebugMenu_B(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 14, 7); + Menu_PrintItems(2, 1, 3, _83EBB64); + InitMenu(0, 1, 1, 3, 0, 13); + gMenuCallback = debug_sub_80B061C; +} + +u8 debug_sub_80B061C(void) +{ + s8 input = Menu_ProcessInput(); + + if (input == -2) + { + return 0; + } + else if (input == -1) + { + CloseMenu(); + return 1; + } + else + { + gMenuCallback = _83EBB64[input].func; + return 0; + } +} + +u8 KagayaDebugMenu_TrainerCard(void) +{ + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0); + gMenuCallback = debug_sub_80B068C; + return 0; +} + +u8 debug_sub_80B068C(void) +{ + if (!UpdatePaletteFade()) + { + debug_sub_80A0710(sub_805469C); + CloseMenu(); + ScriptContext2_Enable(); + return 1; + } + return 0; +} + +u8 KagayaDebugMenu_CardToExchange(void) +{ + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0); + gMenuCallback = debug_sub_80B06E0; + return 0; +} + +u8 debug_sub_80B06E0(void) +{ + if (!UpdatePaletteFade()) + { + debug_sub_80A073C(sub_805469C); + CloseMenu(); + ScriptContext2_Enable(); + return 1; + } + return 0; +} + +u8 KagayaDebugMenu_SlotMachine(void) +{ + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0); + gMenuCallback = Kagaya_80B0734; + return 0; +} + +u8 Kagaya_80B0734(void) +{ + if (!UpdatePaletteFade()) + { + debug_sub_811609C(Random() % 6, sub_805469C); + CloseMenu(); + ScriptContext2_Enable(); + return 1; + } + return 0; +} + +u8 debug_sub_80B0770(void) +{ + if (!(gPlayerAvatar.flags & 8)) + { + CloseMenu(); + if (IsPlayerFacingSurfableFishableWater()) + { + gFieldEffectArguments[0] = 0; + FieldEffectStart(9); + } + } + else + { + CloseMenu(); + } + return 1; +} + +u8 debug_sub_80B07B0(void) +{ + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0); + gMenuCallback = debug_sub_80B07DC; + return 0; +} + +u8 debug_sub_80B07DC(void) +{ + if (!UpdatePaletteFade()) + { + CloseMenu(); + SetMainCallback2(CB2_InitFlyRegionMap); + return 1; + } + return 0; +} + +u8 debug_sub_80B0800(void) +{ + u8 r2; + + CloseMenu(); + r2 = sub_8068F18(); + if (r2 != 0) + { + gFieldEffectArguments[0] = 0; + gFieldEffectArguments[1] = r2 - 1; + FieldEffectStart(0x2C); + } + return 1; +} + +#endif // DEBUG diff --git a/src/debug/matsuda_debug_menu.c b/src/debug/matsuda_debug_menu.c index da1937adb..c8f80eb50 100644 --- a/src/debug/matsuda_debug_menu.c +++ b/src/debug/matsuda_debug_menu.c @@ -18,14 +18,7 @@ #include "ewram.h" extern u8 gUnknown_0203856C; -extern s16 gUnknown_02038670[]; -extern s16 gUnknown_02038678[]; -extern s16 gUnknown_02038680[]; -extern u8 gContestFinalStandings[]; extern u8 gUnknown_02038694; -extern u8 gIsLinkContest; -extern u8 gUnknown_0203869B; -extern u8 gContestPlayerMonIndex; extern u16 gSpecialVar_ContestCategory; extern u16 gSpecialVar_ContestRank; @@ -40,8 +33,6 @@ extern u16 gBattle_BG3_Y; extern u8 (*gMenuCallback)(void); -extern bool8 gReceivedRemoteLinkPlayers; - static bool8 sub_80A9B78(void); static void sub_80A9BE4(u8 taskId); static void sub_80A9C98(u8); @@ -85,166 +76,6 @@ const struct MenuAction gMatsudaDebugMenuActions[] = {gMatsudaDebugMenu_ActionSetAllArtMuseumText, MatsudaDebugMenu_SetArtMuseumItems}, }; -const u8 gMatsudaDebugMenu_UnknownByteArray[] = {0xFC, 0x02, 0x0F, 0x00, 0xFF}; -const u8 Unknown_083C922D[] = INCBIN_U8("graphics/unknown/ball.4bpp"); -const u16 Unknown_083C924E[] = INCBIN_U16("graphics/unknown/ball.gbapal"); - -const u8 gUnknown_083C926E[][2] = -{ - {2, 0}, - {17, 0}, - {2, 2}, - {17, 2}, -}; - -const u8 gMatsudaDebugMenuContestTopLeft[][2] = -{ - {0, 6}, - {15, 6}, - {0, 8}, - {15, 8}, - {0, 10}, - {15, 10}, -}; - -const u8 gUnknown_083C9282[] = -{ - // TODO: 2d array? - 7, 6, - 22, 6, - 7, 8, - 22, 8, - 7, 10, - 22, 10, -}; - -const u8 gUnknown_083C928E[][2] = -{ - {2, 14}, - {17, 14}, - {2, 16}, - {17, 16}, -}; - -const u8 gUnknown_083C9296[] = {0x08, 0x80, 0x08, 0x80, 0x10, 0x10, 0x30, 0xA8, 0x30, 0xA8, 0x30, 0xA8, 0x08, 0x80, 0x08, 0x80, 0x10, 0x88}; -const u8 gUnknown_083C92A8[] = {0x08, 0x18, 0x28, 0x38, 0x48, 0x58, 0x78, 0x88, 0x98}; - -const struct SpriteSheet gUnknown_083C92B4[] = {Unknown_083C922D, 32, 0x4B0}; -const struct SpritePalette gUnknown_083C92BC[] = {Unknown_083C924E, 0x4B0}; - -const struct OamData gOamData_83C92C4 = -{ - .y = 0, - .affineMode = 0, - .objMode = 0, - .mosaic = 0, - .bpp = 0, - .shape = 0, - .x = 0, - .matrixNum = 0, - .size = 0, - .tileNum = 0, - .priority = 0, - .paletteNum = 0, - .affineParam = 0, -}; - -const struct SpriteTemplate gSpriteTemplate_83C92CC = -{ - .tileTag = 1200, - .paletteTag = 1200, - .oam = &gOamData_83C92C4, - .anims = gDummySpriteAnimTable, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80AA754, -}; - -static void (* const gUnknown_083C92E4[][2])(struct Sprite *, s8) = -{ - {sub_80AA8C8, sub_80AA8D8}, - {sub_80AA8E8, sub_80AA8F8}, - {sub_80AAC5C, sub_80AAC5C}, - {sub_80AA930, sub_80AA974}, - {sub_80AA9B8, sub_80AA9FC}, - {sub_80AAA40, sub_80AAA84}, - {sub_80AAAF0, sub_80AAB30}, - {sub_80AAB70, sub_80AABB0}, - {sub_80AABF0, sub_80AAD44}, -}; - -static const u8 gMatsudaDebugMenu_StartText[] = _("{COLOR CYAN}{HIGHLIGHT RED}"); -static const u8 gMatsudaDebugMenu_StartJapText[] = _("かいし"); // because StartText is only called by StringCopy, this part appears to be unused. -static const u8 gMatsudaDebugMenu_GoBackText[] = _("もどる"); - -#ifdef GERMAN -static const u8 gMatsudaDebugMenu_BattlePointsText[] = _("{COLOR MAGENTA}BP,"); -#else -static const u8 gMatsudaDebugMenu_BattlePointsText[] = _("{COLOR MAGENTA}BP."); -#endif - -static const u8 MatsudaDebugMenuText_Cool[] = _("かっこよさ"); // cool -static const u8 MatsudaDebugMenuText_Cute[] = _("かわいさ"); // cute -static const u8 MatsudaDebugMenuText_Beauty[] = _("うつくしさ"); // beauty -static const u8 MatsudaDebugMenuText_Smart[] = _("かしこさ"); // smart -static const u8 MatsudaDebugMenuText_Tough[] = _("たくましさ"); // tough -static const u8 MatsudaDebugMenuText_Sheen[] = _("けづや"); // sheen - -static const u8 *const gMatsudaDebugMenuTextList1[] = -{ - MatsudaDebugMenuText_Cool, - MatsudaDebugMenuText_Cute, - MatsudaDebugMenuText_Beauty, - MatsudaDebugMenuText_Smart, - MatsudaDebugMenuText_Tough, - MatsudaDebugMenuText_Sheen, -}; - -static const u8 MatsudaDebugMenuText_CoolContest[] = _("かっこよさコンテスト"); -static const u8 MatsudaDebugMenuText_BeautyContest[] = _("うつくしさコンテスト"); -static const u8 MatsudaDebugMenuText_CuteContest[] = _("かわいさコンテスト "); -static const u8 MatsudaDebugMenuText_SmartContest[] = _("かしこさコンテスト "); -static const u8 MatsudaDebugMenuText_ToughContest[] = _("たくましさコンテスト"); - -static const u8 *const gMatsudaDebugMenuTextList2[] = -{ - MatsudaDebugMenuText_CoolContest, - MatsudaDebugMenuText_BeautyContest, - MatsudaDebugMenuText_CuteContest, - MatsudaDebugMenuText_SmartContest, - MatsudaDebugMenuText_ToughContest, -}; - -static const u8 MatsudaDebugMenuText_Fallarbor[] = _("ハジツゲ/ノーマル"); // Fallarbor / Normal -static const u8 MatsudaDebugMenuText_Verdanturf[] = _("シダケ/スーパー "); // Verdanturf / Super -static const u8 MatsudaDebugMenuText_Slateport[] = _("カイナ/ハイパー "); // Slateport / Hyper -static const u8 MatsudaDebugMenuText_Lilycove[] = _("ミナモ/マスター "); // Lilycove / Master - -static const u8 *const gMatsudaDebugMenuTextList3[] = -{ - MatsudaDebugMenuText_Fallarbor, - MatsudaDebugMenuText_Verdanturf, - MatsudaDebugMenuText_Slateport, - MatsudaDebugMenuText_Lilycove, -}; - -static const struct OamData gUnknown_083C9400 = -{ - .y = 0, - .affineMode = 0, - .objMode = 0, - .mosaic = 0, - .bpp = 0, - .shape = 1, - .x = 0, - .matrixNum = 0, - .size = 1, - .tileNum = 1023, - .priority = 0, - .paletteNum = 15, - .affineParam = 0, -}; - u8 unref_sub_80A9B28(void) { Menu_EraseScreen(); @@ -469,14 +300,172 @@ static void sub_80A9F50(void) static void sub_80A9FE4(void) { - u8 ptr[5]; - - memcpy(ptr, gMatsudaDebugMenu_UnknownByteArray, 5); + u8 ptr[] = _("{HIGHLIGHT WHITE2} "); DmaFill32Large(3, 0, (void *)VRAM, VRAM_SIZE, 0x1000); sub_80034D4((void *)VRAM, ptr); LoadFontDefaultPalette(&gWindowTemplate_81E6C3C); } +//const u8 gMatsudaDebugMenu_UnknownByteArray[] = {0xFC, 0x02, 0x0F, 0x00, 0xFF}; +const u8 Unknown_083C922D[] = INCBIN_U8("graphics/unknown/ball.4bpp"); +const u16 Unknown_083C924E[] = INCBIN_U16("graphics/unknown/ball.gbapal"); + +const u8 gUnknown_083C926E[][2] = + { + {2, 0}, + {17, 0}, + {2, 2}, + {17, 2}, + }; + +const u8 gMatsudaDebugMenuContestTopLeft[][2] = + { + {0, 6}, + {15, 6}, + {0, 8}, + {15, 8}, + {0, 10}, + {15, 10}, + }; + +const u8 gUnknown_083C9282[] = + { + // TODO: 2d array? + 7, 6, + 22, 6, + 7, 8, + 22, 8, + 7, 10, + 22, 10, + }; + +const u8 gUnknown_083C928E[][2] = + { + {2, 14}, + {17, 14}, + {2, 16}, + {17, 16}, + }; + +const u8 gUnknown_083C9296[] = {0x08, 0x80, 0x08, 0x80, 0x10, 0x10, 0x30, 0xA8, 0x30, 0xA8, 0x30, 0xA8, 0x08, 0x80, 0x08, 0x80, 0x10, 0x88}; +const u8 gUnknown_083C92A8[] = {0x08, 0x18, 0x28, 0x38, 0x48, 0x58, 0x78, 0x88, 0x98}; + +const struct SpriteSheet gUnknown_083C92B4[] = {Unknown_083C922D, 32, 0x4B0}; +const struct SpritePalette gUnknown_083C92BC[] = {Unknown_083C924E, 0x4B0}; + +const struct OamData gOamData_83C92C4 = + { + .y = 0, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 0, + .tileNum = 0, + .priority = 0, + .paletteNum = 0, + .affineParam = 0, + }; + +const struct SpriteTemplate gSpriteTemplate_83C92CC = + { + .tileTag = 1200, + .paletteTag = 1200, + .oam = &gOamData_83C92C4, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80AA754, + }; + +static void (* const gUnknown_083C92E4[][2])(struct Sprite *, s8) = + { + {sub_80AA8C8, sub_80AA8D8}, + {sub_80AA8E8, sub_80AA8F8}, + {sub_80AAC5C, sub_80AAC5C}, + {sub_80AA930, sub_80AA974}, + {sub_80AA9B8, sub_80AA9FC}, + {sub_80AAA40, sub_80AAA84}, + {sub_80AAAF0, sub_80AAB30}, + {sub_80AAB70, sub_80AABB0}, + {sub_80AABF0, sub_80AAD44}, + }; + +static const u8 gMatsudaDebugMenu_StartText[] = _("{COLOR CYAN}{HIGHLIGHT RED}"); +static const u8 gMatsudaDebugMenu_StartJapText[] = _("かいし"); // because StartText is only called by StringCopy, this part appears to be unused. +static const u8 gMatsudaDebugMenu_GoBackText[] = _("もどる"); + +#ifdef GERMAN +static const u8 gMatsudaDebugMenu_BattlePointsText[] = _("{COLOR MAGENTA}BP,"); +#else +static const u8 gMatsudaDebugMenu_BattlePointsText[] = _("{COLOR MAGENTA}BP."); +#endif + +static const u8 MatsudaDebugMenuText_Cool[] = _("かっこよさ"); // cool +static const u8 MatsudaDebugMenuText_Cute[] = _("かわいさ"); // cute +static const u8 MatsudaDebugMenuText_Beauty[] = _("うつくしさ"); // beauty +static const u8 MatsudaDebugMenuText_Smart[] = _("かしこさ"); // smart +static const u8 MatsudaDebugMenuText_Tough[] = _("たくましさ"); // tough +static const u8 MatsudaDebugMenuText_Sheen[] = _("けづや"); // sheen + +static const u8 *const gMatsudaDebugMenuTextList1[] = + { + MatsudaDebugMenuText_Cool, + MatsudaDebugMenuText_Cute, + MatsudaDebugMenuText_Beauty, + MatsudaDebugMenuText_Smart, + MatsudaDebugMenuText_Tough, + MatsudaDebugMenuText_Sheen, + }; + +static const u8 MatsudaDebugMenuText_CoolContest[] = _("かっこよさコンテスト"); +static const u8 MatsudaDebugMenuText_BeautyContest[] = _("うつくしさコンテスト"); +static const u8 MatsudaDebugMenuText_CuteContest[] = _("かわいさコンテスト "); +static const u8 MatsudaDebugMenuText_SmartContest[] = _("かしこさコンテスト "); +static const u8 MatsudaDebugMenuText_ToughContest[] = _("たくましさコンテスト"); + +static const u8 *const gMatsudaDebugMenuTextList2[] = + { + MatsudaDebugMenuText_CoolContest, + MatsudaDebugMenuText_BeautyContest, + MatsudaDebugMenuText_CuteContest, + MatsudaDebugMenuText_SmartContest, + MatsudaDebugMenuText_ToughContest, + }; + +static const u8 MatsudaDebugMenuText_Fallarbor[] = _("ハジツゲ/ノーマル"); // Fallarbor / Normal +static const u8 MatsudaDebugMenuText_Verdanturf[] = _("シダケ/スーパー "); // Verdanturf / Super +static const u8 MatsudaDebugMenuText_Slateport[] = _("カイナ/ハイパー "); // Slateport / Hyper +static const u8 MatsudaDebugMenuText_Lilycove[] = _("ミナモ/マスター "); // Lilycove / Master + +static const u8 *const gMatsudaDebugMenuTextList3[] = + { + MatsudaDebugMenuText_Fallarbor, + MatsudaDebugMenuText_Verdanturf, + MatsudaDebugMenuText_Slateport, + MatsudaDebugMenuText_Lilycove, + }; + +static const struct OamData gUnknown_083C9400 = + { + .y = 0, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 1, + .x = 0, + .matrixNum = 0, + .size = 1, + .tileNum = 1023, + .priority = 0, + .paletteNum = 15, + .affineParam = 0, + }; + static void sub_80AA064(void) { AnimateSprites(); @@ -972,7 +961,7 @@ void sub_80AAF30(void) gUnknown_02038670[i] = 0; gUnknown_02038680[i] = 0; gUnknown_02038678[i] = 0; - memcpy(&gContestMons[i], &gContestMons[3], sizeof(struct ContestPokemon)); + gContestMons[i] = gContestMons[3]; } gUnknown_02038670[3] = 0x12C; diff --git a/src/debug/nakamura_debug_menu.c b/src/debug/nakamura_debug_menu.c new file mode 100644 index 000000000..550ac7bbd --- /dev/null +++ b/src/debug/nakamura_debug_menu.c @@ -0,0 +1,189 @@ +#if DEBUG +#include "global.h" +#include "menu.h" + +EWRAM_DATA u8 _nakamuraData0 = 0; +EWRAM_DATA u8 _nakamuraData1 = 0; +EWRAM_DATA u8 _nakamuraData2 = 0; +EWRAM_DATA u8 _nakamuraData3 = 0; +EWRAM_DATA u8 _nakamuraData4 = 0; +EWRAM_DATA u8 _nakamuraData5 = 0; +EWRAM_DATA u16 _nakamuraData6 = 0; +EWRAM_DATA u16 _nakamuraData8 = 0; +EWRAM_DATA u16 _nakamuraDataA = 0; +EWRAM_DATA u16 _nakamuraDataC = 0; + +__attribute__((unused)) static u8 _nakamuraStatic0[0x18]; +__attribute__((unused)) static u8 _nakamuraStatic18; +__attribute__((unused)) static u8 gDebugFiller3000814[4]; + +asm(".global _nakamuraStatic0"); +asm(".global _nakamuraStatic18"); + +u8 debug_sub_815FC54(); +u8 debug_sub_815F2B4(); +u8 debug_sub_815FC94(); +u8 debug_sub_815FB1C(); +u8 debug_sub_815F2F4(); +u8 debug_sub_815F62C(); +u8 debug_sub_815FBE8(); +u8 debug_sub_815FE1C(); +u8 debug_sub_8160D98(); + +const u8 Str_843E36C[] = _("Berries"); +const u8 Str_843E374[] = _("Goods"); +const u8 Str_843E37A[] = _("{PKMN} list"); +const u8 Str_843E382[] = _("トラップ"); +const u8 Str_843E387[] = _("Move your base"); +const u8 Str_843E396[] = _("Moving {PKMN}"); +const u8 Str_843E3A0[] = _("Fishing points"); +const u8 Str_843E3AF[] = _("Set {POKEBLOCK}"); +const u8 Str_843E3B9[] = _("Make bases(to max)"); +const u8 Str_843E3CC[] = _("Base location"); + +const struct MenuAction _843E3DC[] = { + { Str_843E36C, debug_sub_815FC54 }, + { Str_843E37A, debug_sub_815F2B4 }, + { Str_843E374, debug_sub_815FC94 }, + { Str_843E387, debug_sub_815FB1C }, + { Str_843E3B9, debug_sub_815F2F4 }, + { Str_843E3CC, debug_sub_815F62C }, + { Str_843E396, debug_sub_815FBE8 }, + { Str_843E3A0, debug_sub_815FE1C }, + { Str_843E3AF, debug_sub_8160D98 }, +}; + +const u8 _843E424[][4] = { + { 1, 118, 47, 14 }, + { 2, 125, 53, 10 }, + { 3, 113, 49, 8 }, + { 0xB, 118, 67, 6 }, + { 0xC, 121, 40, 11 }, + { 0xD, 111, 35, 1 }, + { 0x15, 115, 20, 53 }, + { 0x16, 121, 18, 13 }, + { 0x17, 119, 26, 81 }, + { 0x1F, 127, 59, 67 }, + { 0x20, 125, 55, 11 }, + { 0x21, 111, 27, 27 }, + { 0x29, 114, 9, 47 }, + { 0x2A, 115, 32, 39 }, + { 0x2B, 115, 23, 8 }, + { 0x33, 114, 30, 51 }, + { 0x34, 115, 26, 15 }, + { 0x35, 115, 32, 46 }, + { 0x3D, 114, 11, 62 }, + { 0x3E, 115, 21, 18 }, + { 0x3F, 115, 25, 24 }, + { 0x47, 114, 19, 70 }, + { 0x48, 115, 32, 6 }, + { 0x49, 114, 32, 57 }, + { 0x51, 116, 71, 4 }, + { 0x52, 123, 47, 3 }, + { 0x53, 123, 57, 5 }, + { 0x5B, 116, 79, 11 }, + { 0x5C, 123, 49, 3 }, + { 0x5D, 120, 18, 12 }, + { 0x65, 120, 28, 62 }, + { 0x66, 116, 56, 6 }, + { 0x67, 119, 16, 81 }, + { 0x6F, 120, 30, 62 }, + { 0x70, 116, 55, 15 }, + { 0x71, 119, 16, 28 }, + { 0x79, 111, 33, 34 }, + { 0x7A, 118, 29, 5 }, + { 0x7B, 127, 45, 24 }, + { 0x83, 111, 24, 36 }, + { 0x84, 125, 7, 25 }, + { 0x85, 115, 8, 30 }, + { 0x8D, 111, 34, 50 }, + { 0x8E, 127, 59, 72 }, + { 0x8F, 127, 61, 21 }, + { 0x97, 127, 67, 63 }, + { 0x98, 125, 24, 32 }, + { 0x99, 111, 35, 31 }, + { 0xA1, 111, 13, 19 }, + { 0xA2, 121, 43, 7 }, + { 0xA3, 118, 47, 5 }, + { 0xA4, 111, 14, 19 }, + { 0xAB, 118, 46, 5 }, + { 0xAC, 121, 42, 7 }, + { 0xAD, 119, 19, 76 }, + { 0xAE, 115, 7, 20 }, + { 0xB5, 110, 16, 25 }, + { 0xB6, 114, 11, 27 }, + { 0xB7, 115, 8, 20 }, + { 0xBF, 110, 17, 25 }, + { 0xC0, 114, 12, 27 }, + { 0xC1, 119, 18, 76 }, + { 0xC9, 119, 5, 2 }, + { 0xCA, 119, 4, 89 }, + { 0xCB, 120, 38, 54 }, + { 0xCC, 120, 5, 76 }, + { 0xD3, 119, 5, 15 }, + { 0xD4, 119, 7, 101 }, + { 0xD5, 120, 31, 23 }, + { 0xDD, 119, 34, 24 }, + { 0xDE, 120, 26, 10 }, + { 0xDF, 119, 4, 15 }, + { 0xE7, 119, 31, 73 }, + { 0xE8, 120, 29, 85 }, + { 0xE9, 119, 6, 2 }, +}; + +const u8 Str_843E550[] = _("R"); +const u8 Str_843E552[] = _("X"); +const u8 Str_843E554[] = _("Y"); +const u8 Str_843E556[] = _( + "♂1\n" + "♂2\n" + "♂3\n" + "♂4\n" + "♂5\n" + "♀1\n" + "♀2\n" + "♀3\n" + "♀4\n" + "♀5"); +const u8 Str_843E574[] = _("ー"); +const u8 Str_843E576[] = _("あ"); +const u8 Str_843E578[] = _("ア"); +const u8 Str_843E57A[] = _("A"); +const u8 Str_843E57C[] = _("a"); +const u8 Str_843E57E[] = _("0"); +const u8 Str_843E580[] = _( + "ADD\n" + "DEL\n" + "EXIT"); +const u8 Str_843E58D[] = _( + "Fishing location R119\n" + " Y1\n" + " Y2\n" + " Y3\n" + "Encounter location\n" + "\n" + "\n" + "front of you"); +const u8 _843E5D1[] = {0x0F, 0x16, 0x19}; +const u8 Str_843E5D4[] = _( + "Aボタン {ESCAPE}\p" + " Bボタン ー\n" + "START けってい"); +const u8 Str_843E5F0[] = _("?"); +const u8 Str_843E5F2[] = _("HP どりょくち"); +const u8 Str_843E5FB[] = _("こうげき どりょくち"); +const u8 Str_843E606[] = _("ぼうぎょ どりょくち"); +const u8 Str_843E611[] = _("すばやさ どりょくち"); +const u8 Str_843E61C[] = _("とくこう どりょくち"); +const u8 Str_843E627[] = _("とくぼう どりょくち"); +const u8 Str_843E632[] = _("なつきど"); +const u8 Str_843E637[] = _("どりょくち ごうけい"); +const u8 Str_843E642[] = _("ここから"); +const u8 Str_843E647[] = _("ここまで"); +const u8 Str_843E64C[] = _("かいすう"); +const u8 Str_843E651[] = _("けっか"); +const u8 Str_843E655[] = _("かい"); +const u8 Str_843E658[] = _("0"); +const u8 Str_843E65A[] = _("はんい"); + +#endif // DEBUG diff --git a/src/debug/nohara_debug_menu.c b/src/debug/nohara_debug_menu.c new file mode 100644 index 000000000..b3885ff76 --- /dev/null +++ b/src/debug/nohara_debug_menu.c @@ -0,0 +1,12 @@ +#if DEBUG +#include "global.h" + +__attribute__((unused)) static u8 gDebug_03000724; +__attribute__((unused)) static u8 gDebug_03000725; +__attribute__((unused)) static u8 gDebug_03000726; + +asm(".global gDebug_03000724"); +asm(".global gDebug_03000725"); +asm(".global gDebug_03000726"); + +#endif diff --git a/src/debug/start_menu_debug.c b/src/debug/start_menu_debug.c new file mode 100644 index 000000000..9b12c1cc1 --- /dev/null +++ b/src/debug/start_menu_debug.c @@ -0,0 +1,6051 @@ +#if DEBUG + +#include "global.h" +#include "constants/songs.h" +#include "battle.h" +#include "debug.h" +#include "link.h" +#include "main.h" +#include "menu.h" +#include "mystery_event_menu.h" +#include "overworld.h" +#include "reset_rtc_screen.h" +#include "rtc.h" +#include "save.h" +#include "sound.h" +#include "task.h" +#include "text.h" +#include "trade.h" + +// berry_blender.c +extern void unref_sub_80524BC(void); + +void debug_sub_8076BB4(u8); +void debug_sub_8077CF4(); + +u8 DebugMenu_Exit(void); +u8 DebugMenu_OpenWatanabe(void); +u8 DebugMenu_OpenSogabe(void); +u8 DebugMenu_OpenTamada(void); +u8 DebugMenu_OpenKagaya(void); +u8 DebugMenu_OpenMatsuda(void); +u8 DebugMenu_OpenNohara(void); +u8 DebugMenu_OpenNakamura(void); +u8 DebugMenu_Teleport(void); +u8 DebugMenu_EditPKMN(void); +u8 DebugMenu_SwitchBG(void); +u8 DebugMenu_OpenMori(void); +u8 DebugMenu_OpenTomomichi(void); +u8 DebugMenu_OpenAoki(void); +u8 DebugMenu_OpenTaya(void); +u8 DebugMenu_ToggleClearFlag(void); +u8 DebugMenu_ControlEncounter(void); +u8 DebugMenu_PTime(void); +u8 DebugMenu_MakeItems(void); +u8 debug_sub_8091300(void); +u8 DebugMenu_ViewPortraits(void); +u8 DebugMenu_TimeRecords(void); +u8 DebugMenu_SetTime(void); +u8 DebugMenu_NationalDex(void); +u8 DebugMenu_CreatePKMN(void); +u8 DebugMenu_ViewPokemonGraphics(void); +u8 DebugMenu_BattleForDebug(void); +u8 DebugMenu_AllBadges(void); +u8 DebugMenu_HoennNationalDex(void); +u8 DebugMenu_SetRamBerry(void); +u8 DebugMenu_UseHM(void); +u8 DebugMenu_OpenIwasawa(void); +u8 DebugMenu_ToggleBGM(void); +u8 DebugMenu_OpenSizeComparison(void); +u8 DebugMenu_Safari(void); +u8 DebugMenu_RematchTrainers(void); +u8 DebugMenu_MiragaIslandRND(void); +u8 DebugMenu_HallOfFame(void); +u8 DebugMenu_OpenMysteryEvent(void); +u8 DebugMenu_OpenLegendsRecord(void); +u8 DebugMenu_OpenWeatherEvents(void); +u8 DebugMenu_CellInfo(void); +u8 DebugMenu_CheckPKBLCK(void); +u8 DebugMenu_EffortValues(void); +u8 DebugMenu_HoennDex(void); +u8 DebugMenu_OpenSeeTrainers(void); +u8 DebugMenu_OpenBerryInfo(void); +u8 DebugMenu_BattleTowerStages(void); +u8 DebugMenu_EndSequenceDemo(void); +u8 DebugMenu_RandomNumberTest(void); +u8 DebugMenu_MeTooBackupMan(void); +u8 DebugMenu_OpenMurakawa(void); +u8 DebugMenu_OpenKiwa(void); +u8 DebugMenu_8076CBC(void); +u8 DebugMenu_8076CC0(void); +u8 DebugMenu_8076CD4(void); +u8 DebugMenu_8076C6C(void); +u8 DebugMenu_8076CD8(void); +u8 DebugMenu_8076D28(void); +u8 DebugMenu_8076D3C(void); +u8 DebugMenu_8076C80(void); +u8 DebugMenu_8076C90(void); +u8 DebugMenu_8076D50(void); +u8 DebugMenu_8076CEC(void); +u8 DebugMenu_8076D14(void); +u8 DebugMenu_8076D00(void); +u8 DebugMenu_8076D5C(void); +u8 DebugMenu_8076E18(void); +u8 DebugMenu_8076EDC(void); +void DebugMenu_8076FEC(void); + +const u8 Str_839B740[] = _("·WATANABE"); +const u8 Str_839B74A[] = _("SOGABE"); +const u8 Str_839B751[] = _("·TAMADA"); +const u8 Str_839B759[] = _("KAGAYA"); +const u8 Str_839B760[] = _("MATUDA"); +const u8 Str_839B767[] = _("NOHARA"); +const u8 Str_839B76E[] = _("NAKAMURA"); +const u8 Str_839B777[] = _("EXIT"); +const u8 Str_839B77C[] = _("Teleport"); +const u8 Str_839B785[] = _("Switch BG"); +const u8 Str_839B78F[] = _("Edit your {PKMN}"); +const u8 Str_839B79C[] = _("MORI"); +const u8 Str_839B7A1[] = _("TOMOMITI"); +const u8 Str_839B7AA[] = _("·AOKI"); +const u8 Str_839B7B0[] = _("TAYA"); +const u8 Str_839B7B5[] = _("Control Encounter"); +const u8 Str_839B7C7[] = _("PTIME"); +const u8 Str_839B7CD[] = _("Make items"); +const u8 Str_839B7D8[] = _("Transport"); +const u8 Str_839B7E2[] = _("See portraits"); +const u8 Str_839B7F0[] = _("Time records"); +const u8 Str_839B7FD[] = _("Set time"); +const u8 Str_839B806[] = _("National オカDex"); +const u8 Str_839B815[] = _("Hoenn オカDex"); +const u8 Str_839B821[] = _("Create {PKMN}"); +const u8 Str_839B82B[] = _("See {PKMN} graphics"); +const u8 Str_839B83B[] = _("See trainers"); +const u8 Str_839B848[] = _("Battle for debug"); +const u8 Str_839B859[] = _("Full set of badges"); +const u8 Str_839B86C[] = _("Hoenn National Dex"); +const u8 Str_839B87F[] = _("Set Ram berry"); +const u8 Str_839B88D[] = _("Use HM"); +const u8 Str_839B894[] = _("IWASAWA"); +const u8 Str_839B89C[] = _("BGM ON/OFF"); +const u8 Str_839B8A7[] = _("Size comparison"); +const u8 Str_839B8B7[] = _("Clear flag ON/OFF"); +const u8 Str_839B8C9[] = _("Safari"); +const u8 Str_839B8D0[] = _("Rematch trainers"); +const u8 Str_839B8E1[] = _("Mirage island RND"); +const u8 Str_839B8F3[] = _("Hall of fame"); +const u8 Str_839B900[] = _("Mystery event"); +const u8 Str_839B90E[] = _("Legends records"); +const u8 Str_839B91E[] = _("Weather events"); +const u8 Str_839B92D[] = _("Cell info."); +const u8 Str_839B938[] = _("Check {POKEBLOCK}"); +const u8 Str_839B944[] = _("Effort values"); +const u8 Str_839B952[] = _("Berrie Info"); +const u8 Str_839B95E[] = _("Battle Tower stages"); +const u8 Str_839B972[] = _("End sequence demo"); +const u8 Str_839B984[] = _("Random number test"); +const u8 Str_839B997[] = _("Me-too BackupMan"); +const u8 Str_839B9A8[] = _("MURAKAWA"); +const u8 Str_839B9B1[] = _("KINA(FONT)"); + +const struct MenuAction gDebug0x839B9BC[] = +{ + { Str_839B777, DebugMenu_Exit }, + { Str_839B740, DebugMenu_OpenWatanabe }, + { Str_839B74A, DebugMenu_OpenSogabe }, + { Str_839B751, DebugMenu_OpenTamada }, + { Str_839B759, DebugMenu_OpenKagaya }, + { Str_839B760, DebugMenu_OpenMatsuda }, + { Str_839B767, DebugMenu_OpenNohara }, + { Str_839B76E, DebugMenu_OpenNakamura }, + { Str_839B77C, DebugMenu_Teleport }, + { Str_839B78F, DebugMenu_EditPKMN }, + { Str_839B785, DebugMenu_SwitchBG }, + { Str_839B79C, DebugMenu_OpenMori }, + { Str_839B7A1, DebugMenu_OpenTomomichi }, + { Str_839B7AA, DebugMenu_OpenAoki }, + { Str_839B7B0, DebugMenu_OpenTaya }, + { Str_839B8B7, DebugMenu_ToggleClearFlag }, + { Str_839B7B5, DebugMenu_ControlEncounter }, + { Str_839B7C7, DebugMenu_PTime }, + { Str_839B7CD, DebugMenu_MakeItems }, + { Str_839B7D8, debug_sub_8091300 }, + { Str_839B7E2, DebugMenu_ViewPortraits }, + { Str_839B7F0, DebugMenu_TimeRecords }, + { Str_839B7FD, DebugMenu_SetTime }, + { Str_839B806, DebugMenu_NationalDex }, + { Str_839B821, DebugMenu_CreatePKMN }, + { Str_839B82B, DebugMenu_ViewPokemonGraphics }, + { Str_839B848, DebugMenu_BattleForDebug }, + { Str_839B859, DebugMenu_AllBadges }, + { Str_839B86C, DebugMenu_HoennNationalDex }, + { Str_839B87F, DebugMenu_SetRamBerry }, + { Str_839B88D, DebugMenu_UseHM }, + { Str_839B894, DebugMenu_OpenIwasawa }, + { Str_839B89C, DebugMenu_ToggleBGM }, + { Str_839B8A7, DebugMenu_OpenSizeComparison }, + { Str_839B8C9, DebugMenu_Safari }, + { Str_839B8D0, DebugMenu_RematchTrainers }, + { Str_839B8E1, DebugMenu_MiragaIslandRND }, + { Str_839B8F3, DebugMenu_HallOfFame }, + { Str_839B900, DebugMenu_OpenMysteryEvent }, + { Str_839B90E, DebugMenu_OpenLegendsRecord }, + { Str_839B91E, DebugMenu_OpenWeatherEvents }, + { Str_839B92D, DebugMenu_CellInfo }, + { Str_839B938, DebugMenu_CheckPKBLCK }, + { Str_839B944, DebugMenu_EffortValues }, + { Str_839B815, DebugMenu_HoennDex }, + { Str_839B83B, DebugMenu_OpenSeeTrainers }, + { Str_839B952, DebugMenu_OpenBerryInfo }, + { Str_839B95E, DebugMenu_BattleTowerStages }, + { Str_839B972, DebugMenu_EndSequenceDemo }, + { Str_839B984, DebugMenu_RandomNumberTest }, + { Str_839B997, DebugMenu_MeTooBackupMan }, + { Str_839B9A8, DebugMenu_OpenMurakawa }, + { Str_839B9B1, DebugMenu_OpenKiwa }, +}; + +const u8 gUnknown_Debug_839BB64[] = +{ + 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x00, 0x0b, 0x0c, 0x0d, 0x0e, 0x1f, 0x12, 0x13, 0x00, 0x08, 0x09, 0x0a, 0x1e, 0x10, 0x24, 0x0f, 0x00, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x00, + 0x1c, 0x1d, 0x14, 0x20, 0x21, 0x22, 0x23, 0x00, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x00, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x00, 0x11, 0x33, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, +}; + +const u8 gUnknown_Debug_0839BBA4[] = _("Debugging Version"); +const u8 gUnknown_Debug_0839BBB6[] = _("{VERSION} Version"); +const u8 gUnknown_Debug_0839BBC1[] = _("Normal RTC compatible"); +const u8 Str_839BBD7[] = _("か の じっけん"); +const u8 Str_839BBE0[] = _("じっけん2"); +const u8 Str_839BBE6[] = _("BGじっけん"); +const u8 Str_839BBED[] = _("Battle"); +const u8 Str_839BBF4[] = _("つうしん じっけん"); +const u8 Str_839BBFE[] = _("LINK Test2"); +const u8 Str_839BC09[] = _("フィールド はじめる"); +const u8 Str_839BC14[] = _("フィールド つづき"); +const u8 Str_839BC1E[] = _("Sound test"); +const u8 Str_839BC29[] = _("{POKEBLOCK} test"); +const u8 Str_839BC34[] = _("Crash backup data"); +const u8 Str_839BC46[] = _("e-Card test"); +const u8 Str_839BC52[] = _("こうかんデモ "); +const u8 Str_839BC5C[] = _("Time in game"); +const u8 Str_839BC69[] = _("フェスタ モード"); +const u8 Str_839BC72[] = _("Mimic e-Card"); +const u8 Str_839BC7F[] = _("RTC reset"); +const u8 Str_839BC89[] = _("Converter"); + +const struct MenuAction gUnknown_Debug_839BC94[] = +{ + { Str_839BBD7, DebugMenu_8076CBC }, + { Str_839BBE0, DebugMenu_8076CC0 }, + { Str_839BBE6, DebugMenu_8076CD4 }, + { Str_839BBED, DebugMenu_8076C6C }, + { Str_839BC29, DebugMenu_8076CD8 }, + { Str_839BBFE, DebugMenu_8076D28 }, + { Str_839BC1E, DebugMenu_8076D3C }, + { Str_839BC09, DebugMenu_8076C80 }, + { Str_839BC14, DebugMenu_8076C90 }, + { Str_839BC34, DebugMenu_8076D50 }, + { Str_839BC46, DebugMenu_8076CEC }, + { Str_839BC52, DebugMenu_8076D14 }, + { Str_839BC72, DebugMenu_8076D00 }, + { Str_839BC5C, DebugMenu_8076D5C }, + { Str_839BC7F, DebugMenu_8076E18 }, + { Str_839BC89, DebugMenu_8076EDC }, +}; + +// NOTE: When decompiling this file, I found out that having an extraneous extern +// in a C file can affect the generated asm. If this extern is commented out, +// debug_sub_8076BB4 will access the array differently and no longer match. +//extern const struct MenuAction gUnknown_Debug_839BC94[]; + +const u8 gMenuOrders_839BD14[][10] = +{ + { 3, 6, 4, 0xFF }, + { 5, 9, 10, 12, 13, 14, 15, 0xFF }, +}; + +const u8 Str_839BD26[] = {2, 0, 0, 0}; // doesn't appear to be referenced + +const u8 Str_839BD2C[] = _("RTCを リセット します\n" // Reset RTC + "Aで じっこう Bでキャンセル"); + +const u8 Str_839BD4C[] = _("RTCを リセット した!"); + +const u8 Str_839BD5A[] = _("セーブデータを コンバートします\n" + "Aで けってい Bで キャンセル"); + +const u8 Str_839BD7D[] = _("へんかんが しゅうりょう しました!"); + + +extern const u8 Str_839BD2C[]; +extern const u8 Str_839BD4C[]; + +__attribute__((unused)) static u8 gUnknown_030006B8[4]; +__attribute__((unused)) static u8 gUnknown_030006BC[4]; +__attribute__((unused)) static u8 gUnknown_030006C0; +__attribute__((unused)) static u8 gUnknown_030006C1; +static const u8 *gUnknown_030006C4; +__attribute__((unused)) static u8 gUnknown_030006C8; + +void debug_sub_8076AC8(u8 a) +{ + s32 r4; + + gUnknown_030006C4 = gMenuOrders_839BD14[a]; + for (r4 = 0; gUnknown_030006C4[r4] != 0xFF; r4++) + ; + Menu_EraseWindowRect(16, 0, 29, 19); + Menu_DrawStdWindowFrame(16, 0, 29, r4 * 2 + 1); + Menu_PrintItemsReordered(17, 1, r4, (struct MenuAction2 *)gUnknown_Debug_839BC94, gUnknown_030006C4); + InitMenu(0, 17, 1, r4, 0, 12); +} + +void debug_sub_8076B4C(void) +{ + u8 taskId = FindTaskIdByFunc(debug_sub_8076BB4); + + if (taskId != 0xFF) + DestroyTask(taskId); +} + +// Initializes test menu +void debug_sub_8076B68(void) +{ + Menu_PrintText(gUnknown_Debug_0839BBB6, 1, 1); + Menu_PrintText(gUnknown_Debug_0839BBC1, 1, 3); + Menu_PrintText(gUnknown_Debug_0839BBA4, 1, 9); + debug_sub_8077CF4(4, 11); + debug_sub_8076AC8(0); + CreateTask(debug_sub_8076BB4, 1); +} + +// Handles input for the test menu +void debug_sub_8076BB4(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + s8 input = Menu_ProcessInput(); + s8 cursorPos = Menu_GetCursorPos(); + + switch (input) + { + default: + gUnknown_Debug_839BC94[gUnknown_030006C4[cursorPos]].func(); + break; + case -2: + if (gMain.newKeys & 0x20) + { + if (data[0] == 0) + data[0] = 1; + else + data[0]--; + debug_sub_8076AC8(data[0]); + PlaySE(SE_SELECT); + } + else if (gMain.newKeys & 0x10) + { + if (data[0] == 1) + data[0] = 0; + else + data[0]++; + debug_sub_8076AC8(data[0]); + PlaySE(SE_SELECT); + } + break; + case -1: + DoSoftReset(); + break; + } +} + +u8 DebugMenu_8076C6C(void) +{ + SetMainCallback2(debug_sub_8010800); + return 0; +} + +u8 DebugMenu_8076C80(void) +{ + debug_sub_8076B4C(); + DebugMenu_8076FEC(); + return 0; +} + +u8 DebugMenu_8076C90(void) +{ + if (gSaveFileStatus == SAVE_STATUS_ERROR) + { + PlaySE(0x16); + } + else + { + debug_sub_8076B4C(); + SetMainCallback2(CB2_ContinueSavedGame); + } + return 0; +} + +u8 DebugMenu_8076CBC(void) +{ + return 0; +} + +u8 DebugMenu_8076CC0(void) +{ + SetMainCallback2(debug_nullsub_66); + return 0; +} + +u8 DebugMenu_8076CD4(void) +{ + return 0; +} + +u8 DebugMenu_8076CD8(void) +{ + SetMainCallback2(unref_sub_80524BC); + return 0; +} + +u8 DebugMenu_8076CEC(void) +{ + SetMainCallback2(CB2_InitMysteryEventMenu); + return 0; +} + +u8 DebugMenu_8076D00(void) +{ + SetMainCallback2(debug_sub_815D15C); + return 0; +} + +u8 DebugMenu_8076D14(void) +{ + SetMainCallback2(sub_804B790); + return 0; +} + +u8 DebugMenu_8076D28(void) +{ + SetMainCallback2(LinkTestScreen); + return 0; +} + +u8 DebugMenu_8076D3C(void) +{ + SetMainCallback2(CB2_StartSoundCheckMenu); + return 0; +} + +u8 DebugMenu_8076D50(void) +{ + Save_EraseAllData(); + return 0; +} + +u8 DebugMenu_8076D5C(void) +{ + debug_sub_8076B4C(); + debug_sub_806F8F8(); + return 0; +} + +void DebugMenu_8076D6C(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + + switch (data[0]) + { + case 0: + Menu_DisplayDialogueFrame(); + Menu_PrintText(Str_839BD2C, 2, 15); + data[0]++; + break; + case 1: + if (gMain.newKeys & A_BUTTON) + { + Menu_DisplayDialogueFrame(); + Menu_PrintText(Str_839BD4C, 2, 15); + PlaySE(0x49); + RtcReset(); + data[0]++; + } + else if (gMain.newKeys & B_BUTTON) + { + DestroyTask(taskId); + DoSoftReset(); + } + break; + case 2: + if (gMain.newKeys & A_BUTTON) + { + DestroyTask(taskId); + DoSoftReset(); + } + break; + } +} + +__attribute__((naked)) +u8 DebugMenu_8076E18() +{ + asm( + " push {lr}\n" + " bl debug_sub_8076B4C\n" + " ldr r0, ._67 @ DebugMenu_8076D6C\n" + " mov r1, #0xa\n" + " bl CreateTask\n" + " mov r0, #0x0\n" + " pop {r1}\n" + " bx r1\n" + "._68:\n" + " .align 2, 0\n" + "._67:\n" + " .word DebugMenu_8076D6C+1\n" + "\n" + ); +} + +__attribute__((naked)) +void DebugMenu_8076E30() +{ + asm( + " push {r4, lr}\n" + " lsl r0, r0, #0x18\n" + " lsr r3, r0, #0x18\n" + " lsl r0, r3, #0x2\n" + " add r0, r0, r3\n" + " lsl r0, r0, #0x3\n" + " ldr r1, ._73 @ gTasks\n" + " add r4, r0, r1\n" + " mov r0, #0x0\n" + " ldsh r1, [r4, r0]\n" + " cmp r1, #0x1\n" + " beq ._69 @cond_branch\n" + " cmp r1, #0x1\n" + " bgt ._70 @cond_branch\n" + " cmp r1, #0\n" + " beq ._71 @cond_branch\n" + " b ._86\n" + "._74:\n" + " .align 2, 0\n" + "._73:\n" + " .word gTasks+0x8\n" + "._70:\n" + " cmp r1, #0x2\n" + " beq ._75 @cond_branch\n" + " b ._86\n" + "._71:\n" + " bl Menu_DisplayDialogueFrame\n" + " ldr r0, ._78 @ Str_839BD5A\n" + " mov r1, #0x2\n" + " mov r2, #0xf\n" + " bl Menu_PrintText\n" + " b ._77\n" + "._79:\n" + " .align 2, 0\n" + "._78:\n" + " .word Str_839BD5A\n" + "._69:\n" + " ldr r0, ._82 @ gMain\n" + " ldrh r2, [r0, #0x2e]\n" + " and r1, r1, r2\n" + " cmp r1, #0\n" + " beq ._80 @cond_branch\n" + " bl Menu_DisplayDialogueFrame\n" + " bl sub_813B79C\n" + " ldr r0, ._82 + 4 @ Str_839BD7D\n" + " mov r1, #0x2\n" + " mov r2, #0xf\n" + " bl Menu_PrintText\n" + " mov r0, #0x49\n" + " bl PlaySE\n" + "._77:\n" + " ldrh r0, [r4]\n" + " add r0, r0, #0x1\n" + " strh r0, [r4]\n" + " b ._86\n" + "._83:\n" + " .align 2, 0\n" + "._82:\n" + " .word gMain\n" + " .word Str_839BD7D\n" + "._80:\n" + " mov r0, #0x2\n" + " and r0, r0, r2\n" + " cmp r0, #0\n" + " beq ._86 @cond_branch\n" + " add r0, r3, #0\n" + " bl DestroyTask\n" + " bl DoSoftReset\n" + " b ._86\n" + "._75:\n" + " ldr r0, ._87 @ gMain\n" + " ldrh r1, [r0, #0x2e]\n" + " mov r0, #0x1\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " beq ._86 @cond_branch\n" + " add r0, r3, #0\n" + " bl DestroyTask\n" + " bl DoSoftReset\n" + "._86:\n" + " pop {r4}\n" + " pop {r0}\n" + " bx r0\n" + "._88:\n" + " .align 2, 0\n" + "._87:\n" + " .word gMain\n" + "\n" + ); +} + +__attribute__((naked)) +u8 DebugMenu_8076EDC() +{ + asm( + " push {lr}\n" + " bl debug_sub_8076B4C\n" + " ldr r0, ._89 @ DebugMenu_8076E30\n" + " mov r1, #0xa\n" + " bl CreateTask\n" + " mov r0, #0x0\n" + " pop {r1}\n" + " bx r1\n" + "._90:\n" + " .align 2, 0\n" + "._89:\n" + " .word DebugMenu_8076E30+1\n" + "\n" + ); +} + +__attribute__((naked)) +void DebugMenu_8076EF4() +{ + asm( + " push {r4, r5, lr}\n" + " add sp, sp, #0xfffffff8\n" + " mov r0, #0x0\n" + " mov r1, #0x0\n" + " mov r2, #0xb\n" + " mov r3, #0x11\n" + " bl Menu_DrawStdWindowFrame\n" + " ldr r4, ._93 @ gUnknown_Debug_839BDC4\n" + " mov r0, #0x2\n" + " mov r1, #0x1\n" + " mov r2, #0x8\n" + " add r3, r4, #0\n" + " bl Menu_PrintItems\n" + " mov r5, #0x0\n" + " add r4, r4, #0x4\n" + "._92:\n" + " lsl r0, r5, #0x3\n" + " add r0, r0, r4\n" + " ldr r1, [r0]\n" + " mov r0, #0x1\n" + " and r1, r1, r0\n" + " mov r0, #0xb6\n" + " cmp r1, #0\n" + " bne ._91 @cond_branch\n" + " mov r0, #0xb5\n" + "._91:\n" + " lsl r2, r5, #0x1\n" + " add r2, r2, #0x1\n" + " lsl r2, r2, #0x18\n" + " lsr r2, r2, #0x18\n" + " mov r1, #0xa\n" + " bl sub_8071F60\n" + " add r0, r5, #1\n" + " lsl r0, r0, #0x18\n" + " lsr r5, r0, #0x18\n" + " cmp r5, #0x7\n" + " bls ._92 @cond_branch\n" + " mov r0, #0x0\n" + " str r0, [sp]\n" + " mov r0, #0x9\n" + " str r0, [sp, #0x4]\n" + " mov r0, #0x0\n" + " mov r1, #0x1\n" + " mov r2, #0x1\n" + " mov r3, #0x8\n" + " bl InitMenu\n" + " add sp, sp, #0x8\n" + " pop {r4, r5}\n" + " pop {r0}\n" + " bx r0\n" + "._94:\n" + " .align 2, 0\n" + "._93:\n" + " .word gUnknown_Debug_839BDC4\n" + "\n" + ); +} + +__attribute__((naked)) +void DebugMenu_8076F60() +{ + asm( + " push {r4, r5, lr}\n" + " lsl r0, r0, #0x18\n" + " lsr r5, r0, #0x18\n" + " bl Menu_ProcessInput\n" + " add r4, r0, #0\n" + " lsl r4, r4, #0x18\n" + " lsr r4, r4, #0x18\n" + " bl Menu_GetCursorPos\n" + " lsl r0, r0, #0x18\n" + " lsr r2, r0, #0x18\n" + " lsl r4, r4, #0x18\n" + " asr r4, r4, #0x18\n" + " mov r0, #0x2\n" + " neg r0, r0\n" + " cmp r4, r0\n" + " beq ._97 @cond_branch\n" + " add r0, r0, #0x1\n" + " cmp r4, r0\n" + " bne ._96 @cond_branch\n" + " bl Menu_EraseScreen\n" + " bl debug_sub_8076B68\n" + " add r0, r5, #0\n" + " bl DestroyTask\n" + " b ._97\n" + "._96:\n" + " ldr r3, ._100 @ gUnknown_Debug_839BDC4\n" + " lsl r2, r2, #0x18\n" + " asr r2, r2, #0x15\n" + " add r0, r3, #4\n" + " add r0, r2, r0\n" + " ldrb r4, [r0]\n" + " ldr r0, ._100 + 4 @ gSaveBlock2\n" + " mov r1, #0x1\n" + " and r1, r1, r4\n" + " strb r1, [r0, #0x8]\n" + " add r2, r2, r3\n" + " ldr r1, [r2]\n" + " bl StringCopy\n" + " mov r0, #0x80\n" + " and r4, r4, r0\n" + " cmp r4, #0\n" + " bne ._98 @cond_branch\n" + " mov r0, #0x0\n" + " bl debug_sub_8057508\n" + " b ._99\n" + "._101:\n" + " .align 2, 0\n" + "._100:\n" + " .word gUnknown_Debug_839BDC4\n" + " .word gSaveBlock2\n" + "._98:\n" + " mov r0, #0x1\n" + " bl debug_sub_8057508\n" + "._99:\n" + " add r0, r5, #0\n" + " bl DestroyTask\n" + " ldr r0, ._102 @ debug_sub_8058C00\n" + " bl SetMainCallback2\n" + "._97:\n" + " pop {r4, r5}\n" + " pop {r0}\n" + " bx r0\n" + "._103:\n" + " .align 2, 0\n" + "._102:\n" + " .word debug_sub_8058C00+1\n" + "\n" + ); +} + +__attribute__((naked)) +void DebugMenu_8076FEC() +{ + asm( + " push {lr}\n" + " bl DebugMenu_8076EF4\n" + " ldr r0, ._104 @ DebugMenu_8076F60\n" + " mov r1, #0xa\n" + " bl CreateTask\n" + " pop {r0}\n" + " bx r0\n" + "._105:\n" + " .align 2, 0\n" + "._104:\n" + " .word DebugMenu_8076F60+1\n" + "\n" + ); +} + +__attribute__((naked)) +void DebugMenu_8077004() +{ + asm( + " ldr r2, ._106 @ gUnknown_030006C4\n" + " ldr r0, ._106 + 4 @ gUnknown_030006C1\n" + " ldrb r0, [r0]\n" + " lsl r0, r0, #0x3\n" + " ldr r1, ._106 + 8 @ gUnknown_Debug_839BB64\n" + " add r0, r0, r1\n" + " str r0, [r2]\n" + " bx lr\n" + "._107:\n" + " .align 2, 0\n" + "._106:\n" + " .word gUnknown_030006C4 \n" + " .word gUnknown_030006C1 \n" + " .word gUnknown_Debug_839BB64\n" + "\n" + ); +} + +__attribute__((naked)) +void DebugMenu_8077020() +{ + asm( + " push {r4, lr}\n" + " lsl r0, r0, #0x18\n" + " lsr r4, r0, #0x18\n" + " ldr r0, ._109 @ gMenuCallback\n" + " ldr r0, [r0]\n" + " bl _call_via_r0\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " cmp r0, #0x1\n" + " bne ._108 @cond_branch\n" + " add r0, r4, #0\n" + " bl DestroyTask\n" + "._108:\n" + " pop {r4}\n" + " pop {r0}\n" + " bx r0\n" + "._110:\n" + " .align 2, 0\n" + "._109:\n" + " .word gMenuCallback\n" + "\n" + ); +} + +__attribute__((naked)) +void DebugMenu_8077048() +{ + asm( + " push {lr}\n" + " ldr r0, ._111 @ gMenuCallback\n" + " ldr r1, ._111 + 4 @ DebugMenu_807706C\n" + " str r1, [r0]\n" + " bl ScriptContext2_Enable\n" + " ldr r0, ._111 + 8 @ DebugMenu_8077020\n" + " mov r1, #0x50\n" + " bl CreateTask\n" + " pop {r0}\n" + " bx r0\n" + "._112:\n" + " .align 2, 0\n" + "._111:\n" + " .word gMenuCallback\n" + " .word DebugMenu_807706C+1\n" + " .word DebugMenu_8077020+1\n" + "\n" + ); +} + +__attribute__((naked)) +void DebugMenu_807706C() +{ + asm( + " push {lr}\n" + " ldr r0, ._113 @ gWindowTemplate_81E6CE4\n" + " bl InitMenuWindow\n" + " bl DebugMenu_8077004\n" + " bl DebugMenu_807719C\n" + " bl DebugMenu_80771EC\n" + " bl DebugMenu_8077238\n" + " ldr r1, ._113 + 4 @ gMenuCallback\n" + " ldr r0, ._113 + 8 @ DebugMenu_807709C\n" + " str r0, [r1]\n" + " mov r0, #0x0\n" + " pop {r1}\n" + " bx r1\n" + "._114:\n" + " .align 2, 0\n" + "._113:\n" + " .word gWindowTemplate_81E6CE4\n" + " .word gMenuCallback\n" + " .word DebugMenu_807709C+1\n" + "\n" + ); +} + +__attribute__((naked)) +void DebugMenu_807709C() +{ + asm( + " push {r4, lr}\n" + " ldr r4, ._120 @ gMain\n" + " ldrh r1, [r4, #0x2e]\n" + " mov r0, #0x40\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " beq ._115 @cond_branch\n" + " mov r0, #0x5\n" + " bl PlaySE\n" + " mov r0, #0x1\n" + " neg r0, r0\n" + " bl Menu_MoveCursor\n" + " ldr r1, ._120 + 4 @ gUnknown_030006C0\n" + " strb r0, [r1]\n" + "._115:\n" + " ldrh r1, [r4, #0x2e]\n" + " mov r0, #0x80\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " beq ._116 @cond_branch\n" + " mov r0, #0x5\n" + " bl PlaySE\n" + " mov r0, #0x1\n" + " bl Menu_MoveCursor\n" + " ldr r1, ._120 + 4 @ gUnknown_030006C0\n" + " strb r0, [r1]\n" + "._116:\n" + " ldrh r1, [r4, #0x2e]\n" + " mov r0, #0x20\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " beq ._117 @cond_branch\n" + " mov r0, #0x5\n" + " bl PlaySE\n" + " ldr r1, ._120 + 8 @ gUnknown_030006C1\n" + " ldrb r0, [r1]\n" + " cmp r0, #0\n" + " bne ._118 @cond_branch\n" + " mov r0, #0x7\n" + " b ._119\n" + "._121:\n" + " .align 2, 0\n" + "._120:\n" + " .word gMain\n" + " .word gUnknown_030006C0 \n" + " .word gUnknown_030006C1 \n" + "._118:\n" + " sub r0, r0, #0x1\n" + "._119:\n" + " strb r0, [r1]\n" + " bl DebugMenu_8077004\n" + " bl DebugMenu_807719C\n" + "._117:\n" + " ldr r0, ._125 @ gMain\n" + " ldrh r1, [r0, #0x2e]\n" + " mov r0, #0x10\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " beq ._122 @cond_branch\n" + " mov r0, #0x5\n" + " bl PlaySE\n" + " ldr r1, ._125 + 4 @ gUnknown_030006C1\n" + " ldrb r0, [r1]\n" + " cmp r0, #0x7\n" + " bne ._123 @cond_branch\n" + " mov r0, #0x0\n" + " b ._124\n" + "._126:\n" + " .align 2, 0\n" + "._125:\n" + " .word gMain\n" + " .word gUnknown_030006C1 \n" + "._123:\n" + " add r0, r0, #0x1\n" + "._124:\n" + " strb r0, [r1]\n" + " bl DebugMenu_8077004\n" + " bl DebugMenu_807719C\n" + "._122:\n" + " ldr r0, ._129 @ gMain\n" + " ldrh r1, [r0, #0x2e]\n" + " mov r0, #0x1\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " beq ._127 @cond_branch\n" + " mov r0, #0x5\n" + " bl PlaySE\n" + " ldr r1, ._129 + 4 @ gDebug0x839B9BC\n" + " ldr r0, ._129 + 8 @ gUnknown_030006C0\n" + " ldrb r2, [r0]\n" + " ldr r0, ._129 + 12 @ gUnknown_030006C4\n" + " ldr r0, [r0]\n" + " add r0, r0, r2\n" + " ldrb r0, [r0]\n" + " lsl r0, r0, #0x3\n" + " add r1, r1, #0x4\n" + " add r0, r0, r1\n" + " ldr r0, [r0]\n" + " bl _call_via_r0\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " b ._132\n" + "._130:\n" + " .align 2, 0\n" + "._129:\n" + " .word gMain\n" + " .word gDebug0x839B9BC\n" + " .word gUnknown_030006C0 \n" + " .word gUnknown_030006C4 \n" + "._127:\n" + " mov r0, #0xa\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " bne ._131 @cond_branch\n" + " mov r0, #0x0\n" + " b ._132\n" + "._131:\n" + " bl CloseMenu\n" + " mov r0, #0x1\n" + "._132:\n" + " pop {r4}\n" + " pop {r1}\n" + " bx r1\n" + "\n" + ); +} + +__attribute__((naked)) +void DebugMenu_807719C() +{ + asm( + " push {r4, lr}\n" + " add sp, sp, #0xfffffff8\n" + " mov r0, #0x0\n" + " mov r1, #0x0\n" + " mov r2, #0xe\n" + " mov r3, #0x11\n" + " bl Menu_DrawStdWindowFrame\n" + " ldr r3, ._133 @ gDebug0x839B9BC\n" + " ldr r0, ._133 + 4 @ gUnknown_030006C4\n" + " ldr r0, [r0]\n" + " str r0, [sp]\n" + " mov r0, #0x1\n" + " mov r1, #0x1\n" + " mov r2, #0x8\n" + " bl Menu_PrintItemsReordered\n" + " ldr r4, ._133 + 8 @ gUnknown_030006C0\n" + " ldrb r0, [r4]\n" + " str r0, [sp]\n" + " mov r0, #0xd\n" + " str r0, [sp, #0x4]\n" + " mov r0, #0x0\n" + " mov r1, #0x1\n" + " mov r2, #0x1\n" + " mov r3, #0x8\n" + " bl InitMenu\n" + " strb r0, [r4]\n" + " add sp, sp, #0x8\n" + " pop {r4}\n" + " pop {r0}\n" + " bx r0\n" + "._134:\n" + " .align 2, 0\n" + "._133:\n" + " .word gDebug0x839B9BC\n" + " .word gUnknown_030006C4 \n" + " .word gUnknown_030006C0 \n" + "\n" + ); +} + +__attribute__((naked)) +void DebugMenu_80771EC() +{ + asm( + " push {r4, lr}\n" + " ldr r0, ._135 @ gStringVar4\n" + " ldr r1, ._135 + 4 @ Str_839BE04\n" + " bl StringCopy\n" + " ldr r4, ._135 + 8 @ gSaveBlock1\n" + " mov r1, #0x4\n" + " ldsb r1, [r4, r1]\n" + " mov r2, #0x1\n" + " mov r3, #0x3\n" + " bl ConvertIntToDecimalStringN\n" + " mov r1, #0x5\n" + " ldsb r1, [r4, r1]\n" + " mov r2, #0x1\n" + " mov r3, #0x3\n" + " bl ConvertIntToDecimalStringN\n" + " mov r0, #0x13\n" + " mov r1, #0xc\n" + " mov r2, #0x1d\n" + " mov r3, #0xf\n" + " bl Menu_DrawStdWindowFrame\n" + " ldr r0, ._135 @ gStringVar4\n" + " mov r1, #0x14\n" + " mov r2, #0xd\n" + " bl Menu_PrintText\n" + " pop {r4}\n" + " pop {r0}\n" + " bx r0\n" + "._136:\n" + " .align 2, 0\n" + "._135:\n" + " .word gStringVar4\n" + " .word Str_839BE04\n" + " .word gSaveBlock1\n" + "\n" + ); +} + +__attribute__((naked)) +void DebugMenu_8077238() +{ + asm( + " push {r4, r5, r6, r7, lr}\n" + " mov r7, sl\n" + " mov r6, r9\n" + " mov r5, r8\n" + " push {r5, r6, r7}\n" + " add sp, sp, #0xffffffe8\n" + " ldr r1, ._139 @ Str_839BE07\n" + " mov r0, sp\n" + " mov r2, #0x2\n" + " bl memcpy\n" + " add r0, sp, #0x4\n" + " mov r9, r0\n" + " ldr r1, ._139 + 4 @ Str_839BE09\n" + " mov r2, #0x3\n" + " bl memcpy\n" + " add r1, sp, #0x8\n" + " mov sl, r1\n" + " ldr r1, ._139 + 8 @ Str_839BE0C\n" + " mov r0, sl\n" + " mov r2, #0x3\n" + " bl memcpy\n" + " mov r2, #0x0\n" + " str r2, [sp, #0x14]\n" + " add r4, sp, #0x10\n" + " mov r6, sp\n" + " add r6, r6, #0x12\n" + " add r0, r4, #0\n" + " add r1, r6, #0\n" + " bl PlayerGetDestCoords\n" + " mov r1, #0x0\n" + " ldsh r0, [r4, r1]\n" + " mov r2, #0x0\n" + " ldsh r1, [r6, r2]\n" + " bl MapGridGetZCoordAt\n" + " mov r8, r0\n" + " mov r0, r8\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " mov r8, r0\n" + " ldrh r0, [r4]\n" + " sub r0, r0, #0x7\n" + " strh r0, [r4]\n" + " ldrh r0, [r6]\n" + " sub r0, r0, #0x7\n" + " strh r0, [r6]\n" + " ldr r7, ._139 + 12 @ gStringVar4\n" + " add r0, r7, #0\n" + " mov r1, sp\n" + " bl StringCopy\n" + " add r5, sp, #0xc\n" + " mov r2, #0x0\n" + " ldsh r1, [r4, r2]\n" + " add r0, r5, #0\n" + " mov r2, #0x0\n" + " mov r3, #0x3\n" + " bl ConvertIntToDecimalStringN\n" + " add r0, r7, #0\n" + " add r1, r5, #0\n" + " bl StringAppend\n" + " add r0, r7, #0\n" + " mov r1, r9\n" + " bl StringAppend\n" + " mov r0, #0x0\n" + " ldsh r1, [r6, r0]\n" + " add r0, r5, #0\n" + " mov r2, #0x0\n" + " mov r3, #0x3\n" + " bl ConvertIntToDecimalStringN\n" + " add r0, r7, #0\n" + " add r1, r5, #0\n" + " bl StringAppend\n" + " add r0, r7, #0\n" + " mov r1, sl\n" + " bl StringAppend\n" + " add r0, r5, #0\n" + " mov r1, r8\n" + " mov r2, #0x0\n" + " mov r3, #0x2\n" + " bl ConvertIntToDecimalStringN\n" + " add r0, r7, #0\n" + " add r1, r5, #0\n" + " bl StringAppend\n" + " ldrb r0, [r7]\n" + " cmp r0, #0xff\n" + " beq ._137 @cond_branch\n" + " add r1, r7, #0\n" + "._138:\n" + " ldr r0, [sp, #0x14]\n" + " add r0, r0, #0x1\n" + " lsl r0, r0, #0x10\n" + " lsr r0, r0, #0x10\n" + " str r0, [sp, #0x14]\n" + " add r0, r0, r1\n" + " ldrb r0, [r0]\n" + " cmp r0, #0xff\n" + " bne ._138 @cond_branch\n" + "._137:\n" + " mov r0, #0x1c\n" + " ldr r1, [sp, #0x14]\n" + " sub r0, r0, r1\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " mov r1, #0x10\n" + " mov r2, #0x1d\n" + " mov r3, #0x13\n" + " bl Menu_DrawStdWindowFrame\n" + " ldr r0, ._139 + 12 @ gStringVar4\n" + " mov r1, #0x1d\n" + " ldr r2, [sp, #0x14]\n" + " sub r1, r1, r2\n" + " lsl r1, r1, #0x18\n" + " lsr r1, r1, #0x18\n" + " mov r2, #0x11\n" + " bl Menu_PrintText\n" + " add sp, sp, #0x18\n" + " pop {r3, r4, r5}\n" + " mov r8, r3\n" + " mov r9, r4\n" + " mov sl, r5\n" + " pop {r4, r5, r6, r7}\n" + " pop {r0}\n" + " bx r0\n" + "._140:\n" + " .align 2, 0\n" + "._139:\n" + " .word Str_839BE07\n" + " .word Str_839BE09\n" + " .word Str_839BE0C\n" + " .word gStringVar4\n" + "\n" + ); +} + +__attribute__((naked)) +u8 DebugMenu_Exit() +{ + asm( + " push {lr}\n" + " bl CloseMenu\n" + " mov r0, #0x1\n" + " pop {r1}\n" + " bx r1\n" + "\n" + ); +} + +__attribute__((naked)) +u8 DebugMenu_OpenSogabe() +{ + asm( + " push {lr}\n" + " bl unref_sub_814A414\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " pop {r1}\n" + " bx r1\n" + "\n" + ); +} + +__attribute__((naked)) +u8 DebugMenu_OpenTamada() +{ + asm( + " push {lr}\n" + " bl debug_sub_8075C30\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " pop {r1}\n" + " bx r1\n" + "\n" + ); +} + +__attribute__((naked)) +u8 DebugMenu_OpenKagaya() +{ + asm( + " push {lr}\n" + " bl InitKagayaDebugMenu_A\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " pop {r1}\n" + " bx r1\n" + "\n" + ); +} + +__attribute__((naked)) +u8 DebugMenu_OpenMatsuda() +{ + asm( + " push {lr}\n" + " bl unref_sub_80A9B28\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " pop {r1}\n" + " bx r1\n" + "\n" + ); +} + +__attribute__((naked)) +u8 DebugMenu_OpenNohara() +{ + asm( + " push {lr}\n" + " bl InitNoharaDebugMenu\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " pop {r1}\n" + " bx r1\n" + "\n" + ); +} + +__attribute__((naked)) +u8 DebugMenu_OpenWatanabe() +{ + asm( + " push {lr}\n" + " bl CloseMenu\n" + " ldr r0, ._141 @ InitWatanabeDebugMenu\n" + " bl SetMainCallback2\n" + " bl ScriptContext2_Enable\n" + " mov r0, #0x1\n" + " pop {r1}\n" + " bx r1\n" + "._142:\n" + " .align 2, 0\n" + "._141:\n" + " .word InitWatanabeDebugMenu+1\n" + "\n" + ); +} + +__attribute__((naked)) +u8 DebugMenu_EndSequenceDemo() +{ + asm( + " push {lr}\n" + " bl CloseMenu\n" + " ldr r0, ._143 @ sub_81439D0\n" + " bl SetMainCallback2\n" + " bl ScriptContext2_Enable\n" + " mov r0, #0x1\n" + " pop {r1}\n" + " bx r1\n" + "._144:\n" + " .align 2, 0\n" + "._143:\n" + " .word sub_81439D0+1\n" + "\n" + ); +} + +__attribute__((naked)) +u8 DebugMenu_HallOfFame() +{ + asm( + " push {lr}\n" + " bl CloseMenu\n" + " bl GameClear\n" + " bl ScriptContext2_Enable\n" + " mov r0, #0x1\n" + " pop {r1}\n" + " bx r1\n" + "\n" + ); +} + +__attribute__((naked)) +u8 DebugMenu_OpenSizeComparison() +{ + asm( + " push {lr}\n" + " bl CloseMenu\n" + " bl InitSizeComparison\n" + " bl ScriptContext2_Enable\n" + " mov r0, #0x1\n" + " pop {r1}\n" + " bx r1\n" + "\n" + ); +} + +__attribute__((naked)) +u8 DebugMenu_HoennNationalDex() +{ + asm( + " push {lr}\n" + " bl IsNationalPokedexEnabled\n" + " cmp r0, #0\n" + " beq ._145 @cond_branch\n" + " bl DisableNationalPokedex\n" + " b ._146\n" + "._145:\n" + " bl EnableNationalPokedex\n" + "._146:\n" + " bl CloseMenu\n" + " mov r0, #0x1\n" + " pop {r1}\n" + " bx r1\n" + "\n" + ); +} + +__attribute__((naked)) +u8 DebugMenu_8077434() +{ + asm( + " push {lr}\n" + " add sp, sp, #0xfffffff8\n" + " bl Menu_GetCursorPos\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " cmp r0, #0x4\n" + " bhi ._165 @cond_branch\n" + " lsl r0, r0, #0x2\n" + " ldr r1, ._149 @ \n" + " add r0, r0, r1\n" + " ldr r0, [r0]\n" + " mov pc, r0\n" + "._150:\n" + " .align 2, 0\n" + "._149:\n" + " .word ._148\n" + "._148:\n" + " .word ._151\n" + " .word ._152\n" + " .word ._153\n" + " .word ._154\n" + " .word ._155\n" + "._151:\n" + " ldr r0, ._157 @ Str_839BE0F\n" + " mov r1, #0x1\n" + " mov r2, #0x4\n" + " bl debug_sub_80C2C18\n" + " mov r0, #0xff\n" + " str r0, [sp]\n" + " str r0, [sp, #0x4]\n" + " mov r1, #0xff\n" + " mov r2, #0xff\n" + " mov r3, #0x0\n" + " bl debug_sub_80C2D24\n" + " b ._165\n" + "._158:\n" + " .align 2, 0\n" + "._157:\n" + " .word Str_839BE0F\n" + "._152:\n" + " ldr r0, ._160 @ Str_839BE12\n" + " mov r1, #0x2\n" + " mov r2, #0x0\n" + " bl debug_sub_80C2C18\n" + " mov r0, #0xff\n" + " str r0, [sp]\n" + " str r0, [sp, #0x4]\n" + " mov r1, #0xff\n" + " mov r2, #0x0\n" + " b ._159\n" + "._161:\n" + " .align 2, 0\n" + "._160:\n" + " .word Str_839BE12\n" + "._153:\n" + " ldr r0, ._163 @ Str_839BE16\n" + " mov r1, #0x3\n" + " mov r2, #0x0\n" + " bl debug_sub_80C2C18\n" + " mov r0, #0xff\n" + " str r0, [sp]\n" + " str r0, [sp, #0x4]\n" + " mov r1, #0x0\n" + " b ._162\n" + "._164:\n" + " .align 2, 0\n" + "._163:\n" + " .word Str_839BE16\n" + "._154:\n" + " ldr r0, ._166 @ Str_839BE1A\n" + " mov r1, #0x4\n" + " mov r2, #0x0\n" + " bl debug_sub_80C2C18\n" + " mov r0, #0xff\n" + " str r0, [sp]\n" + " str r0, [sp, #0x4]\n" + " mov r0, #0x0\n" + " mov r1, #0xff\n" + "._162:\n" + " mov r2, #0xff\n" + "._159:\n" + " mov r3, #0xff\n" + " bl debug_sub_80C2D24\n" + " b ._165\n" + "._167:\n" + " .align 2, 0\n" + "._166:\n" + " .word Str_839BE1A\n" + "._155:\n" + " ldr r0, ._168 @ Str_839BE1E\n" + " mov r1, #0x4\n" + " mov r2, #0x0\n" + " bl debug_sub_80C2C18\n" + " mov r0, #0xff\n" + " str r0, [sp]\n" + " str r0, [sp, #0x4]\n" + " mov r1, #0xff\n" + " mov r2, #0xff\n" + " mov r3, #0xff\n" + " bl debug_sub_80C2D24\n" + "._165:\n" + " bl CloseMenu\n" + " mov r0, #0x1\n" + " add sp, sp, #0x8\n" + " pop {r1}\n" + " bx r1\n" + "._169:\n" + " .align 2, 0\n" + "._168:\n" + " .word Str_839BE1E\n" + "\n" + ); +} + +__attribute__((naked)) +u8 DebugMenu_807750C() +{ + asm( + " push {lr}\n" + " ldr r0, ._170 @ gUnknown_Debug_839BE24\n" + " bl DebugMenu_8077D78\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " pop {r1}\n" + " bx r1\n" + "._171:\n" + " .align 2, 0\n" + "._170:\n" + " .word gUnknown_Debug_839BE24\n" + "\n" + ); +} + +__attribute__((naked)) +u8 DebugMenu_SetRamBerry() +{ + asm( + " push {lr}\n" + " ldr r0, ._172 @ gUnknown_Debug_839BE24\n" + " mov r1, #0xc\n" + " mov r2, #0x5\n" + " bl DebugMenu_8077D24\n" + " ldr r1, ._172 + 4 @ gMenuCallback\n" + " ldr r0, ._172 + 8 @ DebugMenu_807750C\n" + " str r0, [r1]\n" + " mov r0, #0x0\n" + " pop {r1}\n" + " bx r1\n" + "._173:\n" + " .align 2, 0\n" + "._172:\n" + " .word gUnknown_Debug_839BE24\n" + " .word gMenuCallback\n" + " .word DebugMenu_807750C+1\n" + "\n" + ); +} + +__attribute__((naked)) +u8 DebugMenu_ToggleBGM() +{ + asm( + " push {lr}\n" + " ldr r2, ._175 @ gDisableMusic\n" + " mov r1, #0x0\n" + " ldrb r0, [r2]\n" + " cmp r0, #0\n" + " bne ._174 @cond_branch\n" + " mov r1, #0x1\n" + "._174:\n" + " strb r1, [r2]\n" + " bl CloseMenu\n" + " mov r0, #0x1\n" + " pop {r1}\n" + " bx r1\n" + "._176:\n" + " .align 2, 0\n" + "._175:\n" + " .word gDisableMusic\n" + "\n" + ); +} + +__attribute__((naked)) +u8 DebugMenu_BattleForDebug() +{ + asm( + " push {lr}\n" + " bl CloseMenu\n" + " bl InitBattleForDebug\n" + " bl ScriptContext2_Enable\n" + " mov r0, #0x1\n" + " pop {r1}\n" + " bx r1\n" + "\n" + ); +} + +__attribute__((naked)) +u8 DebugMenu_NationalDex() +{ + asm( + " push {r4, r5, lr}\n" + " mov r4, #0x0\n" + " ldr r5, ._178 @ 0x181\n" + "._177:\n" + " add r4, r4, #0x1\n" + " lsl r4, r4, #0x10\n" + " lsr r4, r4, #0x10\n" + " add r0, r4, #0\n" + " mov r1, #0x2\n" + " bl GetSetPokedexFlag\n" + " add r0, r4, #0\n" + " mov r1, #0x3\n" + " bl GetSetPokedexFlag\n" + " cmp r4, r5\n" + " bls ._177 @cond_branch\n" + " ldr r1, ._178 + 4 @ gUnknown_03005CE8\n" + " mov r0, #0x1\n" + " strb r0, [r1]\n" + " bl CloseMenu\n" + " mov r0, #0x1\n" + " pop {r4, r5}\n" + " pop {r1}\n" + " bx r1\n" + "._179:\n" + " .align 2, 0\n" + "._178:\n" + " .word 0x181\n" + " .word gUnknown_03005CE8\n" + "\n" + ); +} + +__attribute__((naked)) +u8 DebugMenu_HoennDex() +{ + asm( + " push {r4, r5, lr}\n" + " mov r5, #0x0\n" + "._180:\n" + " add r5, r5, #0x1\n" + " lsl r5, r5, #0x10\n" + " lsr r5, r5, #0x10\n" + " add r0, r5, #0\n" + " bl HoennToNationalOrder\n" + " add r4, r0, #0\n" + " lsl r4, r4, #0x10\n" + " lsr r4, r4, #0x10\n" + " add r0, r4, #0\n" + " mov r1, #0x2\n" + " bl GetSetPokedexFlag\n" + " add r0, r4, #0\n" + " mov r1, #0x3\n" + " bl GetSetPokedexFlag\n" + " cmp r5, #0xc9\n" + " bls ._180 @cond_branch\n" + " ldr r1, ._181 @ gUnknown_03005CE8\n" + " mov r0, #0x1\n" + " strb r0, [r1]\n" + " bl CloseMenu\n" + " mov r0, #0x1\n" + " pop {r4, r5}\n" + " pop {r1}\n" + " bx r1\n" + "._182:\n" + " .align 2, 0\n" + "._181:\n" + " .word gUnknown_03005CE8\n" + "\n" + ); +} + +__attribute__((naked)) +u8 DebugMenu_CreatePKMN() +{ + asm( + " push {lr}\n" + " bl CloseMenu\n" + " bl InitCreatePokemon\n" + " bl ScriptContext2_Enable\n" + " mov r0, #0x1\n" + " pop {r1}\n" + " bx r1\n" + "\n" + ); +} + +__attribute__((naked)) +u8 DebugMenu_ViewPokemonGraphics() +{ + asm( + " push {lr}\n" + " bl CloseMenu\n" + " bl InitSeePokemonGraphics\n" + " bl ScriptContext2_Enable\n" + " mov r0, #0x1\n" + " pop {r1}\n" + " bx r1\n" + "\n" + ); +} + +__attribute__((naked)) +u8 DebugMenu_OpenSeeTrainers() +{ + asm( + " push {lr}\n" + " bl CloseMenu\n" + " bl InitSeeTrainers\n" + " bl ScriptContext2_Enable\n" + " mov r0, #0x1\n" + " pop {r1}\n" + " bx r1\n" + "\n" + ); +} + +__attribute__((naked)) +u8 DebugMenu_OpenMori() +{ + asm( + " push {lr}\n" + " bl InitMoriDebugMenu\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " pop {r1}\n" + " bx r1\n" + "\n" + ); +} + +__attribute__((naked)) +u8 DebugMenu_OpenTomomichi() +{ + asm( + " push {lr}\n" + " bl InitTomomichiDebugWindow\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " pop {r1}\n" + " bx r1\n" + "\n" + ); +} + +__attribute__((naked)) +u8 DebugMenu_OpenAoki() +{ + asm( + " push {lr}\n" + " bl CloseMenu\n" + " mov r0, #0x1\n" + " pop {r1}\n" + " bx r1\n" + "\n" + ); +} + +__attribute__((naked)) +u8 DebugMenu_OpenTaya() +{ + asm( + " push {lr}\n" + " bl InitTayaDebugWindow\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " pop {r1}\n" + " bx r1\n" + "\n" + ); +} + +__attribute__((naked)) +u8 DebugMenu_OpenNakamura() +{ + asm( + " push {lr}\n" + " bl InitNakamuraDebugMenu\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " pop {r1}\n" + " bx r1\n" + "\n" + ); +} + +__attribute__((naked)) +u8 DebugMenu_OpenIwasawa() +{ + asm( + " push {lr}\n" + " bl debug_sub_8138CC4\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " pop {r1}\n" + " bx r1\n" + "\n" + ); +} + +__attribute__((naked)) +u8 DebugMenu_Teleport() +{ + asm( + " push {lr}\n" + " bl Overworld_SetWarpDestToLastHealLoc\n" + " bl sub_8080E88\n" + " bl ScriptContext2_Enable\n" + " bl CloseMenu\n" + " mov r0, #0x1\n" + " pop {r1}\n" + " bx r1\n" + "\n" + ); +} + +__attribute__((naked)) +u8 DebugMenu_EditPKMN() +{ + asm( + " push {lr}\n" + " bl Menu_EraseScreen\n" + " bl debug_sub_815FFDC\n" + " mov r0, #0x0\n" + " pop {r1}\n" + " bx r1\n" + "\n" + ); +} + +__attribute__((naked)) +void DebugMenu_80776B4() +{ + asm( + " push {r4, r5, lr}\n" + " add sp, sp, #0xfffffff8\n" + " add r4, r0, #0\n" + " lsl r4, r4, #0x18\n" + " lsr r4, r4, #0x18\n" + " ldr r1, ._183 @ Str_839BE4C\n" + " mov r0, sp\n" + " mov r2, #0x7\n" + " bl memcpy\n" + " lsl r3, r4, #0x1\n" + " lsl r5, r4, #0x19\n" + " lsr r5, r5, #0x18\n" + " add r3, r3, #0x1\n" + " lsl r3, r3, #0x18\n" + " lsr r3, r3, #0x18\n" + " mov r0, #0x19\n" + " add r1, r5, #0\n" + " mov r2, #0x1d\n" + " bl Menu_BlankWindowRect\n" + " ldr r0, ._183 + 4 @ gUnknown_030006C8\n" + " ldrb r0, [r0]\n" + " ASR r0, r4\n" + " mov r1, #0x1\n" + " and r0, r0, r1\n" + " lsl r0, r0, #0x2\n" + " add r0, r0, sp\n" + " mov r1, #0x19\n" + " add r2, r5, #0\n" + " bl Menu_PrintText\n" + " add sp, sp, #0x8\n" + " pop {r4, r5}\n" + " pop {r0}\n" + " bx r0\n" + "._184:\n" + " .align 2, 0\n" + "._183:\n" + " .word Str_839BE4C\n" + " .word gUnknown_030006C8 \n" + "\n" + ); +} + +__attribute__((naked)) +void DebugMenu_8077704() +{ + asm( + " push {lr}\n" + " add sp, sp, #0xffffffec\n" + " ldr r1, ._185 @ Str_839BE53\n" + " mov r0, sp\n" + " mov r2, #0x11\n" + " bl memcpy\n" + " mov r0, #0x13\n" + " mov r1, #0x0\n" + " mov r2, #0x1d\n" + " mov r3, #0x8\n" + " bl Menu_BlankWindowRect\n" + " mov r0, sp\n" + " mov r1, #0x15\n" + " mov r2, #0x0\n" + " bl Menu_PrintText\n" + " ldr r2, ._185 + 4 @ gUnknown_030006C8\n" + " mov r0, #0x80\n" + " lsl r0, r0, #0x13\n" + " ldrh r0, [r0]\n" + " lsr r0, r0, #0x8\n" + " mov r1, #0xf\n" + " and r0, r0, r1\n" + " strb r0, [r2]\n" + " mov r0, #0x0\n" + " bl DebugMenu_80776B4\n" + " mov r0, #0x1\n" + " bl DebugMenu_80776B4\n" + " mov r0, #0x2\n" + " bl DebugMenu_80776B4\n" + " mov r0, #0x3\n" + " bl DebugMenu_80776B4\n" + " add sp, sp, #0x14\n" + " pop {r0}\n" + " bx r0\n" + "._186:\n" + " .align 2, 0\n" + "._185:\n" + " .word Str_839BE53\n" + " .word gUnknown_030006C8 \n" + "\n" + ); +} + +__attribute__((naked)) +u8 DebugMenu_8077760() +{ + asm( + " push {r4, r5, lr}\n" + " ldr r2, ._190 @ gMain\n" + " ldrh r1, [r2, #0x2e]\n" + " mov r0, #0x40\n" + " and r0, r0, r1\n" + " add r5, r2, #0\n" + " cmp r0, #0\n" + " beq ._187 @cond_branch\n" + " mov r0, #0x5\n" + " bl PlaySE\n" + " mov r0, #0x1\n" + " neg r0, r0\n" + " bl Menu_MoveCursor\n" + " ldr r1, ._190 + 4 @ gUnknown_030006B8\n" + " ldrb r0, [r1]\n" + " cmp r0, #0\n" + " beq ._188 @cond_branch\n" + " sub r0, r0, #0x1\n" + " b ._189\n" + "._191:\n" + " .align 2, 0\n" + "._190:\n" + " .word gMain\n" + " .word gUnknown_030006B8 \n" + "._188:\n" + " mov r0, #0x3\n" + "._189:\n" + " strb r0, [r1]\n" + "._187:\n" + " ldrh r1, [r5, #0x2e]\n" + " mov r0, #0x80\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " beq ._192 @cond_branch\n" + " mov r0, #0x5\n" + " bl PlaySE\n" + " mov r0, #0x1\n" + " bl Menu_MoveCursor\n" + " ldr r1, ._195 @ gUnknown_030006B8\n" + " ldrb r0, [r1]\n" + " cmp r0, #0x3\n" + " beq ._193 @cond_branch\n" + " add r0, r0, #0x1\n" + " b ._194\n" + "._196:\n" + " .align 2, 0\n" + "._195:\n" + " .word gUnknown_030006B8 \n" + "._193:\n" + " mov r0, #0x0\n" + "._194:\n" + " strb r0, [r1]\n" + "._192:\n" + " ldrh r1, [r5, #0x2e]\n" + " mov r0, #0x30\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " beq ._197 @cond_branch\n" + " mov r0, #0x5\n" + " bl PlaySE\n" + " ldr r4, ._201 @ gUnknown_030006C8\n" + " bl Menu_GetCursorPos\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " mov r1, #0x1\n" + " LSL r1, r0\n" + " ldrb r0, [r4]\n" + " eor r1, r1, r0\n" + " strb r1, [r4]\n" + " bl Menu_GetCursorPos\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " bl DebugMenu_80776B4\n" + "._197:\n" + " ldrh r2, [r5, #0x2e]\n" + " mov r0, #0x1\n" + " and r0, r0, r2\n" + " cmp r0, #0\n" + " bne ._198 @cond_branch\n" + " mov r0, #0x2\n" + " and r0, r0, r2\n" + " cmp r0, #0\n" + " beq ._199 @cond_branch\n" + "._198:\n" + " mov r2, #0x80\n" + " lsl r2, r2, #0x13\n" + " ldrh r0, [r2]\n" + " ldr r1, ._201 + 4 @ 0xf0ff\n" + " and r1, r1, r0\n" + " ldr r0, ._201 @ gUnknown_030006C8\n" + " ldrb r0, [r0]\n" + " lsl r0, r0, #0x8\n" + " add r1, r1, r0\n" + " strh r1, [r2]\n" + " bl CloseMenu\n" + " mov r0, #0x1\n" + " b ._200\n" + "._202:\n" + " .align 2, 0\n" + "._201:\n" + " .word gUnknown_030006C8 \n" + " .word 0xf0ff\n" + "._199:\n" + " mov r0, #0x0\n" + "._200:\n" + " pop {r4, r5}\n" + " pop {r1}\n" + " bx r1\n" + "\n" + ); +} + +__attribute__((naked)) +u8 DebugMenu_SwitchBG() +{ + asm( + " push {lr}\n" + " add sp, sp, #0xfffffff8\n" + " bl Menu_EraseScreen\n" + " bl DebugMenu_8077704\n" + " mov r0, #0x0\n" + " str r0, [sp]\n" + " mov r0, #0x6\n" + " str r0, [sp, #0x4]\n" + " mov r0, #0x0\n" + " mov r1, #0x14\n" + " mov r2, #0x0\n" + " mov r3, #0x4\n" + " bl InitMenu\n" + " ldr r1, ._203 @ gMenuCallback\n" + " ldr r0, ._203 + 4 @ DebugMenu_8077760\n" + " str r0, [r1]\n" + " mov r0, #0x0\n" + " add sp, sp, #0x8\n" + " pop {r1}\n" + " bx r1\n" + "._204:\n" + " .align 2, 0\n" + "._203:\n" + " .word gMenuCallback\n" + " .word DebugMenu_8077760+1\n" + "\n" + ); +} + +__attribute__((naked)) +void DebugMenu_807786C() +{ + asm( + " push {r4, lr}\n" + " add sp, sp, #0xfffffff8\n" + " add r4, r0, #0\n" + " lsl r4, r4, #0x18\n" + " lsr r4, r4, #0x18\n" + " ldr r1, ._205 @ Str_839BE64\n" + " mov r0, sp\n" + " mov r2, #0x7\n" + " bl memcpy\n" + " mov r0, #0x19\n" + " mov r1, #0x0\n" + " mov r2, #0x1d\n" + " mov r3, #0x3\n" + " bl Menu_DrawStdWindowFrame\n" + " lsl r0, r4, #0x1\n" + " add r0, r0, r4\n" + " add r0, r0, sp\n" + " mov r1, #0x1a\n" + " mov r2, #0x1\n" + " bl Menu_PrintText\n" + " add sp, sp, #0x8\n" + " pop {r4}\n" + " pop {r0}\n" + " bx r0\n" + "._206:\n" + " .align 2, 0\n" + "._205:\n" + " .word Str_839BE64\n" + "\n" + ); +} + +__attribute__((naked)) +void DebugMenu_80778A8() +{ + asm( + " push {r4, lr}\n" + " ldr r4, ._211 @ gMain\n" + " ldrh r1, [r4, #0x2e]\n" + " mov r0, #0x30\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " beq ._207 @cond_branch\n" + " mov r0, #0x5\n" + " bl PlaySE\n" + " ldr r2, ._211 + 4 @ sWildEncountersDisabled\n" + " ldrb r0, [r2]\n" + " mov r1, #0x1\n" + " eor r0, r0, r1\n" + " strb r0, [r2]\n" + " ldrb r0, [r2]\n" + " bl DebugMenu_807786C\n" + "._207:\n" + " ldrh r1, [r4, #0x2e]\n" + " mov r0, #0x1\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " bne ._208 @cond_branch\n" + " mov r0, #0x2\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " beq ._209 @cond_branch\n" + "._208:\n" + " bl CloseMenu\n" + " mov r0, #0x1\n" + " b ._210\n" + "._212:\n" + " .align 2, 0\n" + "._211:\n" + " .word gMain\n" + " .word sWildEncountersDisabled\n" + "._209:\n" + " mov r0, #0x0\n" + "._210:\n" + " pop {r4}\n" + " pop {r1}\n" + " bx r1\n" + "\n" + ); +} + +__attribute__((naked)) +u8 DebugMenu_ControlEncounter() +{ + asm( + " push {lr}\n" + " bl Menu_EraseScreen\n" + " ldr r0, ._213 @ sWildEncountersDisabled\n" + " ldrb r0, [r0]\n" + " bl DebugMenu_807786C\n" + " ldr r1, ._213 + 4 @ gMenuCallback\n" + " ldr r0, ._213 + 8 @ DebugMenu_80778A8\n" + " str r0, [r1]\n" + " mov r0, #0x0\n" + " pop {r1}\n" + " bx r1\n" + "._214:\n" + " .align 2, 0\n" + "._213:\n" + " .word sWildEncountersDisabled\n" + " .word gMenuCallback\n" + " .word DebugMenu_80778A8+1\n" + "\n" + ); +} + +__attribute__((naked)) +u8 DebugMenu_UseHM() +{ + asm( + " ldr r1, ._215 @ gMenuCallback\n" + " ldr r0, ._215 + 4 @ DebugMenu_8077C14\n" + " str r0, [r1]\n" + " mov r0, #0x0\n" + " bx lr\n" + "._216:\n" + " .align 2, 0\n" + "._215:\n" + " .word gMenuCallback\n" + " .word DebugMenu_8077C14+1\n" + "\n" + ); +} + +__attribute__((naked)) +void DebugMenu_8077934() +{ + asm( + " push {lr}\n" + " mov r1, #0x0\n" + " ldr r3, ._218 @ gSaveBlock1\n" + " mov r2, #0x1\n" + "._217:\n" + " add r0, r1, r3\n" + " strb r2, [r0]\n" + " add r1, r1, #0x1\n" + " cmp r1, #0x63\n" + " bls ._217 @cond_branch\n" + " bl CloseMenu\n" + " mov r0, #0x1\n" + " pop {r1}\n" + " bx r1\n" + "._219:\n" + " .align 2, 0\n" + "._218:\n" + " .word gSaveBlock1+0x97a\n" + "\n" + ); +} + +__attribute__((naked)) +void DebugMenu_8077954() +{ + asm( + " push {lr}\n" + " mov r1, #0x0\n" + " ldr r3, ._222 @ gSaveBlock1\n" + " mov r2, #0x0\n" + "._221:\n" + " add r0, r1, r3\n" + " strb r2, [r0]\n" + " add r1, r1, #0x1\n" + " cmp r1, #0x63\n" + " bls ._221 @cond_branch\n" + " bl CloseMenu\n" + " mov r0, #0x1\n" + " pop {r1}\n" + " bx r1\n" + "._223:\n" + " .align 2, 0\n" + "._222:\n" + " .word gSaveBlock1+0x97a\n" + "\n" + ); +} + +__attribute__((naked)) +void DebugMenu_8077974() +{ + asm( + " push {lr}\n" + " bl Menu_EraseScreen\n" + " ldr r1, ._226 @ gSaveBlock1\n" + " mov r0, #0x4\n" + " ldsb r0, [r1, r0]\n" + " lsl r0, r0, #0x10\n" + " lsr r0, r0, #0x10\n" + " ldrb r1, [r1, #0x5]\n" + " lsl r1, r1, #0x18\n" + " asr r1, r1, #0x18\n" + " lsl r1, r1, #0x10\n" + " lsr r1, r1, #0x10\n" + " bl IsRematchTrainerIn\n" + " cmp r0, #0\n" + " beq ._224 @cond_branch\n" + " ldr r0, ._226 + 4 @ gStringVar1\n" + " ldr r1, ._226 + 8 @ Str_839BE8D\n" + " bl StringCopy\n" + " b ._225\n" + "._227:\n" + " .align 2, 0\n" + "._226:\n" + " .word gSaveBlock1\n" + " .word gStringVar1\n" + " .word Str_839BE8D\n" + "._224:\n" + " ldr r0, ._230 @ gStringVar1\n" + " ldr r1, ._230 + 4 @ Str_839BE90\n" + " bl StringCopy\n" + "._225:\n" + " ldr r1, ._230 + 8 @ gSaveBlock1\n" + " mov r0, #0x4\n" + " ldsb r0, [r1, r0]\n" + " lsl r0, r0, #0x10\n" + " lsr r0, r0, #0x10\n" + " ldrb r1, [r1, #0x5]\n" + " lsl r1, r1, #0x18\n" + " asr r1, r1, #0x18\n" + " lsl r1, r1, #0x10\n" + " lsr r1, r1, #0x10\n" + " bl DoesSomeoneWantRematchIn\n" + " cmp r0, #0\n" + " beq ._228 @cond_branch\n" + " ldr r0, ._230 + 12 @ gStringVar2\n" + " ldr r1, ._230 + 16 @ Str_839BE8D\n" + " bl StringCopy\n" + " b ._229\n" + "._231:\n" + " .align 2, 0\n" + "._230:\n" + " .word gStringVar1\n" + " .word Str_839BE90\n" + " .word gSaveBlock1\n" + " .word gStringVar2\n" + " .word Str_839BE8D\n" + "._228:\n" + " ldr r0, ._232 @ gStringVar2\n" + " ldr r1, ._232 + 4 @ Str_839BE90\n" + " bl StringCopy\n" + "._229:\n" + " ldr r0, ._232 + 8 @ Str_839BE6B\n" + " bl sub_8071F40\n" + " ldr r1, ._232 + 12 @ gMenuCallback\n" + " ldr r0, ._232 + 16 @ DebugMenu_8077DB4\n" + " str r0, [r1]\n" + " mov r0, #0x0\n" + " pop {r1}\n" + " bx r1\n" + "._233:\n" + " .align 2, 0\n" + "._232:\n" + " .word gStringVar2\n" + " .word Str_839BE90\n" + " .word Str_839BE6B\n" + " .word gMenuCallback\n" + " .word DebugMenu_8077DB4+1\n" + "\n" + ); +} + +__attribute__((naked)) +void DebugMenu_8077A20() +{ + asm( + " push {lr}\n" + " ldr r0, ._234 @ gSaveBlock1\n" + " ldr r1, ._234 + 4 @ 0x978\n" + " add r0, r0, r1\n" + " mov r1, #0xff\n" + " strh r1, [r0]\n" + " bl CloseMenu\n" + " mov r0, #0x1\n" + " pop {r1}\n" + " bx r1\n" + "._235:\n" + " .align 2, 0\n" + "._234:\n" + " .word gSaveBlock1\n" + " .word 0x978\n" + "\n" + ); +} + +__attribute__((naked)) +void DebugMenu_8077A40() +{ + asm( + " push {lr}\n" + " ldr r0, ._236 @ gSaveBlock1\n" + " ldr r1, ._236 + 4 @ 0x978\n" + " add r0, r0, r1\n" + " mov r1, #0x0\n" + " strh r1, [r0]\n" + " bl CloseMenu\n" + " mov r0, #0x1\n" + " pop {r1}\n" + " bx r1\n" + "._237:\n" + " .align 2, 0\n" + "._236:\n" + " .word gSaveBlock1\n" + " .word 0x978\n" + "\n" + ); +} + +__attribute__((naked)) +void DebugMenu_8077A60() +{ + asm( + " push {lr}\n" + " ldr r0, ._238 @ gUnknown_Debug_839BEE4\n" + " bl DebugMenu_8077D78\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " pop {r1}\n" + " bx r1\n" + "._239:\n" + " .align 2, 0\n" + "._238:\n" + " .word gUnknown_Debug_839BEE4\n" + "\n" + ); +} + +__attribute__((naked)) +u8 DebugMenu_RematchTrainers() +{ + asm( + " push {lr}\n" + " bl Menu_EraseScreen\n" + " ldr r0, ._240 @ gUnknown_Debug_839BEE4\n" + " mov r1, #0xd\n" + " mov r2, #0x5\n" + " bl DebugMenu_8077D24\n" + " ldr r1, ._240 + 4 @ gMenuCallback\n" + " ldr r0, ._240 + 8 @ DebugMenu_8077A60\n" + " str r0, [r1]\n" + " mov r0, #0x0\n" + " pop {r1}\n" + " bx r1\n" + "._241:\n" + " .align 2, 0\n" + "._240:\n" + " .word gUnknown_Debug_839BEE4\n" + " .word gMenuCallback\n" + " .word DebugMenu_8077A60+1\n" + "\n" + ); +} + +__attribute__((naked)) +void DebugMenu_8077A9C() +{ + asm( + " push {lr}\n" + " ldr r1, ._242 @ gNumSafariBalls\n" + " mov r0, #0x1e\n" + " strb r0, [r1]\n" + " bl CloseMenu\n" + " mov r0, #0x1\n" + " pop {r1}\n" + " bx r1\n" + "._243:\n" + " .align 2, 0\n" + "._242:\n" + " .word gNumSafariBalls\n" + "\n" + ); +} + +__attribute__((naked)) +void DebugMenu_8077AB4() +{ + asm( + " push {lr}\n" + " ldr r1, ._244 @ gNumSafariBalls\n" + " mov r0, #0x1\n" + " strb r0, [r1]\n" + " bl CloseMenu\n" + " mov r0, #0x1\n" + " pop {r1}\n" + " bx r1\n" + "._245:\n" + " .align 2, 0\n" + "._244:\n" + " .word gNumSafariBalls\n" + "\n" + ); +} + +__attribute__((naked)) +void DebugMenu_8077ACC() +{ + asm( + " push {lr}\n" + " ldr r1, ._246 @ gSafariZoneStepCounter\n" + " mov r2, #0xfa\n" + " lsl r2, r2, #0x1\n" + " add r0, r2, #0\n" + " strh r0, [r1]\n" + " bl CloseMenu\n" + " mov r0, #0x1\n" + " pop {r1}\n" + " bx r1\n" + "._247:\n" + " .align 2, 0\n" + "._246:\n" + " .word gSafariZoneStepCounter\n" + "\n" + ); +} + +__attribute__((naked)) +void DebugMenu_8077AE8() +{ + asm( + " push {lr}\n" + " ldr r1, ._248 @ gSafariZoneStepCounter\n" + " mov r0, #0x1\n" + " strh r0, [r1]\n" + " bl CloseMenu\n" + " mov r0, #0x1\n" + " pop {r1}\n" + " bx r1\n" + "._249:\n" + " .align 2, 0\n" + "._248:\n" + " .word gSafariZoneStepCounter\n" + "\n" + ); +} + +__attribute__((naked)) +void DebugMenu_8077B00() +{ + asm( + " push {lr}\n" + " bl Menu_EraseScreen\n" + " bl unref_sub_80C853C\n" + " cmp r0, #0\n" + " beq ._250 @cond_branch\n" + " ldr r0, ._252 @ Str_839BF14\n" + " bl sub_8071F40\n" + " b ._251\n" + "._253:\n" + " .align 2, 0\n" + "._252:\n" + " .word Str_839BF14\n" + "._250:\n" + " ldr r0, ._254 @ Str_839BF1F\n" + " bl sub_8071F40\n" + "._251:\n" + " ldr r1, ._254 + 4 @ gMenuCallback\n" + " ldr r0, ._254 + 8 @ DebugMenu_8077DB4\n" + " str r0, [r1]\n" + " mov r0, #0x0\n" + " pop {r1}\n" + " bx r1\n" + "._255:\n" + " .align 2, 0\n" + "._254:\n" + " .word Str_839BF1F\n" + " .word gMenuCallback\n" + " .word DebugMenu_8077DB4+1\n" + "\n" + ); +} + +__attribute__((naked)) +void DebugMenu_8077B3C() +{ + asm( + " push {lr}\n" + " ldr r0, ._256 @ gUnknown_Debug_839BF6C\n" + " bl DebugMenu_8077D78\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " pop {r1}\n" + " bx r1\n" + "._257:\n" + " .align 2, 0\n" + "._256:\n" + " .word gUnknown_Debug_839BF6C\n" + "\n" + ); +} + +__attribute__((naked)) +u8 DebugMenu_Safari() +{ + asm( + " push {lr}\n" + " bl GetSafariZoneFlag\n" + " cmp r0, #0\n" + " beq ._258 @cond_branch\n" + " bl Menu_EraseScreen\n" + " ldr r0, ._260 @ gUnknown_Debug_839BF6C\n" + " mov r1, #0xe\n" + " mov r2, #0x5\n" + " bl DebugMenu_8077D24\n" + " ldr r0, ._260 + 4 @ gStringVar1\n" + " ldr r1, ._260 + 8 @ gSafariZoneStepCounter\n" + " ldrh r1, [r1]\n" + " mov r2, #0x1\n" + " mov r3, #0x3\n" + " bl ConvertIntToDecimalStringN\n" + " ldr r0, ._260 + 12 @ Str_839BF0C\n" + " bl sub_8071F40\n" + " ldr r1, ._260 + 16 @ gMenuCallback\n" + " ldr r0, ._260 + 20 @ DebugMenu_8077B3C\n" + " str r0, [r1]\n" + " bl ScriptContext2_Enable\n" + " mov r0, #0x0\n" + " b ._259\n" + "._261:\n" + " .align 2, 0\n" + "._260:\n" + " .word gUnknown_Debug_839BF6C\n" + " .word gStringVar1\n" + " .word gSafariZoneStepCounter\n" + " .word Str_839BF0C\n" + " .word gMenuCallback\n" + " .word DebugMenu_8077B3C+1\n" + "._258:\n" + " bl CloseMenu\n" + " mov r0, #0x16\n" + " bl PlaySE\n" + " mov r0, #0x1\n" + "._259:\n" + " pop {r1}\n" + " bx r1\n" + "\n" + ); +} + +__attribute__((naked)) +void DebugMenu_8077BB4() +{ + asm( + " push {lr}\n" + " bl debug_sub_80AFEE4\n" + " mov r0, #0x1\n" + " pop {r1}\n" + " bx r1\n" + "\n" + ); +} + +__attribute__((naked)) +void DebugMenu_8077BC0() +{ + asm( + " push {lr}\n" + " bl debug_sub_8122080\n" + " mov r0, #0x1\n" + " pop {r1}\n" + " bx r1\n" + "\n" + ); +} + +__attribute__((naked)) +void DebugMenu_8077BCC() +{ + asm( + " push {lr}\n" + " bl debug_sub_8120968\n" + " mov r0, #0x1\n" + " pop {r1}\n" + " bx r1\n" + "\n" + ); +} + +__attribute__((naked)) +void DebugMenu_8077BD8() +{ + asm( + " push {lr}\n" + " bl debug_sub_8130318\n" + " mov r0, #0x1\n" + " pop {r1}\n" + " bx r1\n" + "\n" + ); +} + +__attribute__((naked)) +void DebugMenu_8077BE4() +{ + asm( + " push {lr}\n" + " bl debug_sub_80986AC\n" + " bl CloseMenu\n" + " mov r0, #0x1\n" + " pop {r1}\n" + " bx r1\n" + "\n" + ); +} + +__attribute__((naked)) +void DebugMenu_8077BF4() +{ + asm( + " push {lr}\n" + " bl debug_sub_80D93F4\n" + " mov r0, #0x1\n" + " pop {r1}\n" + " bx r1\n" + "\n" + ); +} + +__attribute__((naked)) +void DebugMenu_8077C00() +{ + asm( + " push {lr}\n" + " ldr r0, ._262 @ gUnknown_Debug_839BF94\n" + " bl DebugMenu_8077D78\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " pop {r1}\n" + " bx r1\n" + "._263:\n" + " .align 2, 0\n" + "._262:\n" + " .word gUnknown_Debug_839BF94\n" + "\n" + ); +} + +__attribute__((naked)) +void DebugMenu_8077C14() +{ + asm( + " push {lr}\n" + " bl Menu_EraseScreen\n" + " ldr r0, ._264 @ gUnknown_Debug_839BF94\n" + " mov r1, #0xa\n" + " mov r2, #0x9\n" + " bl DebugMenu_8077D24\n" + " ldr r1, ._264 + 4 @ gMenuCallback\n" + " ldr r0, ._264 + 8 @ DebugMenu_8077C00\n" + " str r0, [r1]\n" + " mov r0, #0x0\n" + " pop {r1}\n" + " bx r1\n" + "._265:\n" + " .align 2, 0\n" + "._264:\n" + " .word gUnknown_Debug_839BF94\n" + " .word gMenuCallback\n" + " .word DebugMenu_8077C00+1\n" + "\n" + ); +} + +__attribute__((naked)) +void DebugMenu_8077C3C() +{ + asm( + " push {r4, r5, r6, r7, lr}\n" + " mov r7, sl\n" + " mov r6, r9\n" + " mov r5, r8\n" + " push {r5, r6, r7}\n" + " add sp, sp, #0xfffffffc\n" + " mov sl, r0\n" + " add r7, r1, #0\n" + " ldr r0, ._271 @ gUnknown_030006BC\n" + " ldr r1, ._271 + 4 @ gUnknown_Debug_839BFE8\n" + " str r1, [r0]\n" + " mov r1, #0x0\n" + " strb r1, [r7]\n" + " add r7, r7, #0x1\n" + " strb r1, [r7]\n" + " add r7, r7, #0x1\n" + " mov r3, #0x0\n" + " mov r8, r0\n" + "._269:\n" + " mov r5, #0x0\n" + " ldr r1, ._271 @ gUnknown_030006BC\n" + " ldr r0, [r1]\n" + " ldr r2, [r0, #0x4]\n" + " mov r4, #0x0\n" + " ldr r1, [r0, #0x8]\n" + " add r3, r3, #0x1\n" + " mov r9, r3\n" + " cmp r5, r1\n" + " bge ._266 @cond_branch\n" + " add r3, r0, #0\n" + " add r6, r1, #0\n" + "._267:\n" + " ldr r0, [r3, #0xc]\n" + " add r0, r0, r4\n" + " add r0, r0, sl\n" + " ldrb r0, [r0]\n" + " sub r0, r0, #0x30\n" + " mul r0, r0, r2\n" + " add r5, r5, r0\n" + " add r4, r4, #0x1\n" + " add r0, r2, #0\n" + " mov r1, #0xa\n" + " str r3, [sp]\n" + " bl __divsi3\n" + " add r2, r0, #0\n" + " ldr r3, [sp]\n" + " cmp r4, r6\n" + " blt ._267 @cond_branch\n" + "._266:\n" + " mov r0, r8\n" + " ldr r1, [r0]\n" + " ldr r0, [r1]\n" + " cmp r0, r5\n" + " bcs ._268 @cond_branch\n" + " add r5, r0, #0\n" + "._268:\n" + " ldrb r3, [r1, #0x8]\n" + " add r0, r7, #0\n" + " add r1, r5, #0\n" + " mov r2, #0x2\n" + " bl ConvertIntToDecimalStringN\n" + " add r7, r0, #0\n" + " mov r3, r9\n" + " mov r1, r8\n" + " ldr r0, [r1]\n" + " add r0, r0, #0x10\n" + " str r0, [r1]\n" + " cmp r3, #0x1\n" + " ble ._269 @cond_branch\n" + " mov r1, sl\n" + " ldrb r0, [r1, #0x1d]\n" + " add r0, r0, #0x7a\n" + " strb r0, [r7]\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " cmp r0, #0xf6\n" + " bls ._270 @cond_branch\n" + " mov r0, #0xf6\n" + " strb r0, [r7]\n" + "._270:\n" + " mov r0, #0xff\n" + " strb r0, [r7, #0x1]\n" + " add sp, sp, #0x4\n" + " pop {r3, r4, r5}\n" + " mov r8, r3\n" + " mov r9, r4\n" + " mov sl, r5\n" + " pop {r4, r5, r6, r7}\n" + " pop {r0}\n" + " bx r0\n" + "._272:\n" + " .align 2, 0\n" + "._271:\n" + " .word gUnknown_030006BC \n" + " .word gUnknown_Debug_839BFE8\n" + "\n" + ); +} + +__attribute__((naked)) +void debug_sub_8077CF4() +{ + asm( + " push {r4, r5, r6, lr}\n" + " add r4, r0, #0\n" + " add r5, r1, #0\n" + " lsl r4, r4, #0x18\n" + " lsr r4, r4, #0x18\n" + " lsl r5, r5, #0x18\n" + " lsr r5, r5, #0x18\n" + " ldr r0, ._273 @ BuildDateTime\n" + " ldr r6, ._273 + 4 @ gStringVar4\n" + " add r1, r6, #0\n" + " bl DebugMenu_8077C3C\n" + " add r0, r6, #0\n" + " add r1, r4, #0\n" + " add r2, r5, #0\n" + " bl Menu_PrintText\n" + " pop {r4, r5, r6}\n" + " pop {r0}\n" + " bx r0\n" + "._274:\n" + " .align 2, 0\n" + "._273:\n" + " .word BuildDateTime\n" + " .word gStringVar4\n" + "\n" + ); +} + +__attribute__((naked)) +void DebugMenu_8077D24() +{ + asm( + " push {r4, r5, r6, lr}\n" + " add sp, sp, #0xfffffff8\n" + " add r6, r0, #0\n" + " add r4, r1, #0\n" + " add r5, r2, #0\n" + " lsl r4, r4, #0x18\n" + " lsr r4, r4, #0x18\n" + " lsl r5, r5, #0x18\n" + " lsr r5, r5, #0x18\n" + " bl Menu_EraseScreen\n" + " lsl r3, r5, #0x1\n" + " add r3, r3, #0x1\n" + " lsl r3, r3, #0x18\n" + " lsr r3, r3, #0x18\n" + " mov r0, #0x0\n" + " mov r1, #0x0\n" + " add r2, r4, #0\n" + " bl Menu_DrawStdWindowFrame\n" + " mov r0, #0x1\n" + " mov r1, #0x1\n" + " add r2, r5, #0\n" + " add r3, r6, #0\n" + " bl Menu_PrintItems\n" + " mov r0, #0x0\n" + " str r0, [sp]\n" + " sub r4, r4, #0x1\n" + " lsl r4, r4, #0x18\n" + " lsr r4, r4, #0x18\n" + " str r4, [sp, #0x4]\n" + " mov r1, #0x1\n" + " mov r2, #0x1\n" + " add r3, r5, #0\n" + " bl InitMenu\n" + " add sp, sp, #0x8\n" + " pop {r4, r5, r6}\n" + " pop {r0}\n" + " bx r0\n" + "\n" + ); +} + +__attribute__((naked)) +void DebugMenu_8077D78() +{ + asm( + " push {r4, r5, lr}\n" + " add r5, r0, #0\n" + " bl Menu_ProcessInput\n" + " lsl r0, r0, #0x18\n" + " asr r4, r0, #0x18\n" + " mov r0, #0x2\n" + " neg r0, r0\n" + " cmp r4, r0\n" + " beq ._275 @cond_branch\n" + " add r0, r0, #0x1\n" + " cmp r4, r0\n" + " beq ._276 @cond_branch\n" + " bl Menu_EraseScreen\n" + " ldr r0, ._278 @ gMenuCallback\n" + " lsl r1, r4, #0x3\n" + " add r1, r1, r5\n" + " ldr r1, [r1, #0x4]\n" + " str r1, [r0]\n" + "._275:\n" + " mov r0, #0x0\n" + " b ._277\n" + "._279:\n" + " .align 2, 0\n" + "._278:\n" + " .word gMenuCallback\n" + "._276:\n" + " bl CloseMenu\n" + " mov r0, #0x1\n" + "._277:\n" + " pop {r4, r5}\n" + " pop {r1}\n" + " bx r1\n" + "\n" + ); +} + +__attribute__((naked)) +void DebugMenu_8077DB4() +{ + asm( + " push {lr}\n" + " ldr r0, ._282 @ gMain\n" + " ldrh r1, [r0, #0x2e]\n" + " mov r0, #0x1\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " bne ._280 @cond_branch\n" + " mov r0, #0x0\n" + " b ._281\n" + "._283:\n" + " .align 2, 0\n" + "._282:\n" + " .word gMain\n" + "._280:\n" + " bl CloseMenu\n" + " mov r0, #0x1\n" + "._281:\n" + " pop {r1}\n" + " bx r1\n" + "\n" + ); +} + +__attribute__((naked)) +void DebugMenu_8077DD8() +{ + asm( + " push {r4, r5, lr}\n" + " add r4, r0, #0\n" + " add r5, r1, #0\n" + " lsl r3, r3, #0x10\n" + " lsr r3, r3, #0x10\n" + " add r1, r3, #0\n" + " mov r0, #0x80\n" + " and r0, r0, r3\n" + " cmp r0, #0\n" + " beq ._284 @cond_branch\n" + " ldrh r0, [r4]\n" + " sub r0, r0, #0x1\n" + " b ._285\n" + "._284:\n" + " mov r0, #0x40\n" + " and r0, r0, r3\n" + " cmp r0, #0\n" + " beq ._286 @cond_branch\n" + " ldrh r0, [r4]\n" + " add r0, r0, #0x1\n" + " b ._287\n" + "._286:\n" + " mov r0, #0x20\n" + " and r0, r0, r3\n" + " cmp r0, #0\n" + " beq ._288 @cond_branch\n" + " ldrh r0, [r4]\n" + " sub r0, r0, #0xa\n" + "._285:\n" + " strh r0, [r4]\n" + " mov r1, #0x0\n" + " ldsh r0, [r4, r1]\n" + " cmp r0, r5\n" + " bge ._293 @cond_branch\n" + " strh r2, [r4]\n" + " b ._293\n" + "._288:\n" + " mov r0, #0x10\n" + " and r1, r1, r0\n" + " cmp r1, #0\n" + " bne ._291 @cond_branch\n" + " mov r0, #0x0\n" + " b ._292\n" + "._291:\n" + " ldrh r0, [r4]\n" + " add r0, r0, #0xa\n" + "._287:\n" + " strh r0, [r4]\n" + " mov r1, #0x0\n" + " ldsh r0, [r4, r1]\n" + " cmp r0, r2\n" + " ble ._293 @cond_branch\n" + " strh r5, [r4]\n" + "._293:\n" + " mov r0, #0x1\n" + "._292:\n" + " pop {r4, r5}\n" + " pop {r1}\n" + " bx r1\n" + "\n" + ); +} + +__attribute__((naked)) +void DebugMenu_8077E40() +{ + asm( + " push {r4, lr}\n" + " add r4, r0, #0\n" + " ldr r0, ._297 @ gMain\n" + " ldrh r1, [r0, #0x2e]\n" + " mov r0, #0x1\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " bne ._294 @cond_branch\n" + " mov r0, #0x2\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " beq ._295 @cond_branch\n" + "._294:\n" + " bl CloseMenu\n" + " mov r0, #0x1\n" + " neg r0, r0\n" + " b ._302\n" + "._298:\n" + " .align 2, 0\n" + "._297:\n" + " .word gMain\n" + "._295:\n" + " mov r0, #0x30\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " beq ._299 @cond_branch\n" + " mov r0, #0x5\n" + " bl PlaySE\n" + " cmp r4, #0\n" + " beq ._300 @cond_branch\n" + " mov r0, #0x1\n" + " bl DebugMenu_807786C\n" + " mov r0, #0x0\n" + " b ._302\n" + "._300:\n" + " mov r0, #0x0\n" + " bl DebugMenu_807786C\n" + " mov r0, #0x1\n" + " b ._302\n" + "._299:\n" + " add r0, r4, #0\n" + "._302:\n" + " pop {r4}\n" + " pop {r1}\n" + " bx r1\n" + "\n" + ); +} + +__attribute__((naked)) +u8 DebugMenu_MakeItems() +{ + asm( + " push {lr}\n" + " bl CloseMenu\n" + " bl DebugMenu_8077EAC\n" + " bl ScriptContext2_Enable\n" + " mov r0, #0x1\n" + " pop {r1}\n" + " bx r1\n" + "\n" + ); +} + +__attribute__((naked)) +void DebugMenu_8077EAC() +{ + asm( + " push {r4, lr}\n" + " ldr r0, ._303 @ DebugMenu_8077F40\n" + " mov r1, #0x50\n" + " bl CreateTask\n" + " add r4, r0, #0\n" + " lsl r4, r4, #0x18\n" + " lsr r4, r4, #0x18\n" + " bl Menu_EraseScreen\n" + " ldr r1, ._303 + 4 @ gTasks\n" + " lsl r0, r4, #0x2\n" + " add r0, r0, r4\n" + " lsl r0, r0, #0x3\n" + " add r0, r0, r1\n" + " mov r1, #0x1\n" + " strh r1, [r0, #0xa]\n" + " strh r1, [r0, #0xc]\n" + " pop {r4}\n" + " pop {r0}\n" + " bx r0\n" + "._304:\n" + " .align 2, 0\n" + "._303:\n" + " .word DebugMenu_8077F40+1\n" + " .word gTasks\n" + "\n" + ); +} + +__attribute__((naked)) +void DebugMenu_8077EE0() +{ + asm( + " push {r4, r5, r6, lr}\n" + " add r4, r0, #0\n" + " add r6, r1, #0\n" + " lsl r4, r4, #0x10\n" + " lsr r4, r4, #0x10\n" + " lsl r6, r6, #0x10\n" + " lsr r6, r6, #0x10\n" + " mov r0, #0x4\n" + " mov r1, #0x11\n" + " mov r2, #0x16\n" + " mov r3, #0x12\n" + " bl Menu_BlankWindowRect\n" + " ldr r5, ._305 @ gStringVar1\n" + " add r0, r5, #0\n" + " add r1, r4, #0\n" + " mov r2, #0x1\n" + " mov r3, #0x3\n" + " bl ConvertIntToDecimalStringN\n" + " add r0, r5, #0\n" + " mov r1, #0x4\n" + " mov r2, #0x11\n" + " bl Menu_PrintText\n" + " add r0, r4, #0\n" + " bl ItemId_GetName\n" + " mov r1, #0x8\n" + " mov r2, #0x11\n" + " bl Menu_PrintText\n" + " add r0, r5, #0\n" + " add r1, r6, #0\n" + " mov r2, #0x1\n" + " mov r3, #0x3\n" + " bl ConvertIntToDecimalStringN\n" + " add r0, r5, #0\n" + " mov r1, #0x12\n" + " mov r2, #0x11\n" + " bl Menu_PrintText\n" + " pop {r4, r5, r6}\n" + " pop {r0}\n" + " bx r0\n" + "._306:\n" + " .align 2, 0\n" + "._305:\n" + " .word gStringVar1\n" + "\n" + ); +} + +__attribute__((naked)) +void DebugMenu_8077F40() +{ + asm( + " push {r4, lr}\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " lsl r4, r0, #0x2\n" + " add r4, r4, r0\n" + " lsl r4, r4, #0x3\n" + " ldr r0, ._307 @ gTasks\n" + " add r4, r4, r0\n" + " bl Menu_DisplayDialogueFrame\n" + " ldr r0, ._307 + 4 @ gDebug0x839C008\n" + " mov r1, #0x2\n" + " mov r2, #0xf\n" + " bl Menu_PrintText\n" + " ldrh r0, [r4, #0xa]\n" + " ldrh r1, [r4, #0xc]\n" + " bl DebugMenu_8077EE0\n" + " ldr r0, ._307 + 8 @ DebugMenu_8077F7C\n" + " str r0, [r4]\n" + " pop {r4}\n" + " pop {r0}\n" + " bx r0\n" + "._308:\n" + " .align 2, 0\n" + "._307:\n" + " .word gTasks\n" + " .word gDebug0x839C008\n" + " .word DebugMenu_8077F7C+1\n" + "\n" + ); +} + +__attribute__((naked)) +void DebugMenu_8077F7C() +{ + asm( + " push {r4, lr}\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " lsl r1, r0, #0x2\n" + " add r1, r1, r0\n" + " lsl r1, r1, #0x3\n" + " ldr r0, ._311 @ gTasks\n" + " add r4, r1, r0\n" + " ldr r3, ._311 + 4 @ gMain\n" + " ldrh r1, [r3, #0x2e]\n" + " mov r0, #0x1\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " beq ._309 @cond_branch\n" + " bl Menu_DisplayDialogueFrame\n" + " ldr r0, ._311 + 8 @ Str_839C014\n" + " mov r1, #0x2\n" + " mov r2, #0xf\n" + " bl Menu_PrintText\n" + " ldrh r0, [r4, #0xa]\n" + " ldrh r1, [r4, #0xc]\n" + " bl DebugMenu_8077EE0\n" + " ldr r0, ._311 + 12 @ DebugMenu_8077FFC\n" + " str r0, [r4]\n" + " b ._317\n" + "._312:\n" + " .align 2, 0\n" + "._311:\n" + " .word gTasks\n" + " .word gMain\n" + " .word Str_839C014\n" + " .word DebugMenu_8077FFC+1\n" + "._309:\n" + " mov r0, #0x2\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " beq ._313 @cond_branch\n" + " ldr r0, ._315 @ DebugMenu_807806C\n" + " str r0, [r4]\n" + " b ._317\n" + "._316:\n" + " .align 2, 0\n" + "._315:\n" + " .word DebugMenu_807806C+1\n" + "._313:\n" + " add r0, r4, #0\n" + " add r0, r0, #0xa\n" + " mov r2, #0xae\n" + " lsl r2, r2, #0x1\n" + " ldrh r3, [r3, #0x30]\n" + " mov r1, #0x1\n" + " bl DebugMenu_8077DD8\n" + " cmp r0, #0x1\n" + " bne ._317 @cond_branch\n" + " ldrh r0, [r4, #0xa]\n" + " ldrh r1, [r4, #0xc]\n" + " bl DebugMenu_8077EE0\n" + "._317:\n" + " pop {r4}\n" + " pop {r0}\n" + " bx r0\n" + "\n" + ); +} + +__attribute__((naked)) +void DebugMenu_8077FFC() +{ + asm( + " push {r4, lr}\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " lsl r1, r0, #0x2\n" + " add r1, r1, r0\n" + " lsl r1, r1, #0x3\n" + " ldr r0, ._321 @ gTasks\n" + " add r4, r1, r0\n" + " ldr r2, ._321 + 4 @ gMain\n" + " ldrh r1, [r2, #0x2e]\n" + " mov r0, #0x1\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " beq ._318 @cond_branch\n" + " ldrh r0, [r4, #0xa]\n" + " ldrh r1, [r4, #0xc]\n" + " bl AddBagItem\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " cmp r0, #0x1\n" + " bne ._320 @cond_branch\n" + " mov r0, #0x5\n" + " bl PlaySE\n" + " b ._320\n" + "._322:\n" + " .align 2, 0\n" + "._321:\n" + " .word gTasks\n" + " .word gMain\n" + "._318:\n" + " mov r0, #0x2\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " beq ._323 @cond_branch\n" + "._320:\n" + " ldr r0, ._325 @ DebugMenu_8077F40\n" + " str r0, [r4]\n" + " b ._327\n" + "._326:\n" + " .align 2, 0\n" + "._325:\n" + " .word DebugMenu_8077F40+1\n" + "._323:\n" + " add r0, r4, #0\n" + " add r0, r0, #0xc\n" + " ldrh r3, [r2, #0x30]\n" + " mov r1, #0x1\n" + " mov r2, #0x63\n" + " bl DebugMenu_8077DD8\n" + " cmp r0, #0x1\n" + " bne ._327 @cond_branch\n" + " ldrh r0, [r4, #0xa]\n" + " ldrh r1, [r4, #0xc]\n" + " bl DebugMenu_8077EE0\n" + "._327:\n" + " pop {r4}\n" + " pop {r0}\n" + " bx r0\n" + "\n" + ); +} + +__attribute__((naked)) +void DebugMenu_807806C() +{ + asm( + " push {r4, lr}\n" + " add r4, r0, #0\n" + " lsl r4, r4, #0x18\n" + " lsr r4, r4, #0x18\n" + " bl Menu_EraseScreen\n" + " bl ScriptContext2_Disable\n" + " add r0, r4, #0\n" + " bl DestroyTask\n" + " bl DebugMenu_8077048\n" + " pop {r4}\n" + " pop {r0}\n" + " bx r0\n" + "\n" + ); +} + +__attribute__((naked)) +void DebugMenu_807808C() +{ + asm( + " push {r4, r5, lr}\n" + " add sp, sp, #0xfffffff4\n" + " add r4, r0, #0\n" + " sub r0, r4, #1\n" + " cmp r0, #0xc\n" + " bls ._328 @cond_branch\n" + " mov r4, #0x1\n" + "._328:\n" + " lsl r1, r4, #0x5\n" + " ldr r0, ._331 @ gSaveBlock1\n" + " add r5, r1, r0\n" + " bl Menu_EraseScreen\n" + " mov r0, #0x0\n" + " mov r1, #0x0\n" + " mov r2, #0x13\n" + " mov r3, #0x11\n" + " bl Menu_DrawStdWindowFrame\n" + " ldr r0, ._331 + 4 @ Str_839C01E\n" + " mov r1, #0x2\n" + " mov r2, #0x2\n" + " bl Menu_PrintText\n" + " mov r0, sp\n" + " add r1, r4, #0\n" + " mov r2, #0x1\n" + " mov r3, #0x3\n" + " bl ConvertIntToDecimalStringN\n" + " mov r0, sp\n" + " mov r1, #0xb\n" + " mov r2, #0x2\n" + " bl Menu_PrintText\n" + " ldrh r1, [r5, #0x8]\n" + " mov r0, sp\n" + " mov r2, #0x1\n" + " mov r3, #0x3\n" + " bl ConvertIntToDecimalStringN\n" + " mov r0, sp\n" + " mov r1, #0xb\n" + " mov r2, #0x4\n" + " bl Menu_PrintText\n" + " add r4, r5, #0\n" + " add r4, r4, #0xb\n" + " add r0, r4, #0\n" + " bl StringLength\n" + " lsl r0, r0, #0x10\n" + " lsr r0, r0, #0x10\n" + " cmp r0, #0xb\n" + " bhi ._329 @cond_branch\n" + " add r0, r4, #0\n" + " mov r1, #0xb\n" + " mov r2, #0x6\n" + " bl Menu_PrintText\n" + " b ._330\n" + "._332:\n" + " .align 2, 0\n" + "._331:\n" + " .word gSaveBlock1+0x2ddc\n" + " .word Str_839C01E\n" + "._329:\n" + " ldr r0, ._335 @ Str_839C04D\n" + " mov r1, #0xb\n" + " mov r2, #0x6\n" + " bl Menu_PrintText\n" + "._330:\n" + " add r4, r5, #0\n" + " add r4, r4, #0x16\n" + " add r0, r4, #0\n" + " bl StringLength\n" + " lsl r0, r0, #0x10\n" + " lsr r0, r0, #0x10\n" + " cmp r0, #0xb\n" + " bhi ._333 @cond_branch\n" + " add r0, r4, #0\n" + " mov r1, #0xb\n" + " mov r2, #0x8\n" + " bl Menu_PrintText\n" + " b ._334\n" + "._336:\n" + " .align 2, 0\n" + "._335:\n" + " .word Str_839C04D\n" + "._333:\n" + " ldr r0, ._337 @ Str_839C04D\n" + " mov r1, #0xb\n" + " mov r2, #0x8\n" + " bl Menu_PrintText\n" + "._334:\n" + " ldrb r1, [r5, #0xa]\n" + " mov r0, sp\n" + " mov r2, #0x1\n" + " mov r3, #0x3\n" + " bl ConvertIntToDecimalStringN\n" + " mov r0, sp\n" + " mov r1, #0xb\n" + " mov r2, #0xa\n" + " bl Menu_PrintText\n" + " ldr r1, [r5]\n" + " mov r0, sp\n" + " mov r2, #0x2\n" + " mov r3, #0x8\n" + " bl ConvertIntToHexStringN\n" + " mov r0, sp\n" + " mov r1, #0xb\n" + " mov r2, #0xc\n" + " bl Menu_PrintText\n" + " add sp, sp, #0xc\n" + " pop {r4, r5}\n" + " pop {r0}\n" + " bx r0\n" + "._338:\n" + " .align 2, 0\n" + "._337:\n" + " .word Str_839C04D\n" + "\n" + ); +} + +__attribute__((naked)) +void DebugMenu_807817C() +{ + asm( + " push {r4, lr}\n" + " lsl r0, r0, #0x18\n" + " lsr r4, r0, #0x18\n" + " ldr r0, ._340 @ gMain\n" + " ldrh r1, [r0, #0x2e]\n" + " mov r0, #0x1\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " beq ._339 @cond_branch\n" + " bl Menu_EraseScreen\n" + " add r0, r4, #0\n" + " bl DestroyTask\n" + " bl ScriptContext2_Disable\n" + "._339:\n" + " pop {r4}\n" + " pop {r0}\n" + " bx r0\n" + "._341:\n" + " .align 2, 0\n" + "._340:\n" + " .word gMain\n" + "\n" + ); +} + +__attribute__((naked)) +void DebugMenu_80781A8() +{ + asm( + " push {r4, r5, lr}\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " lsl r1, r0, #0x2\n" + " add r1, r1, r0\n" + " lsl r1, r1, #0x3\n" + " ldr r0, ._344 @ gTasks\n" + " add r5, r1, r0\n" + " ldrh r1, [r5, #0x8]\n" + " mov r2, #0x8\n" + " ldsh r0, [r5, r2]\n" + " cmp r0, #0\n" + " bne ._342 @cond_branch\n" + " add r0, r1, #1\n" + " strh r0, [r5, #0x8]\n" + " b ._343\n" + "._345:\n" + " .align 2, 0\n" + "._344:\n" + " .word gTasks\n" + "._342:\n" + " ldr r2, ._348 @ gMain\n" + " ldrh r1, [r2, #0x2e]\n" + " mov r0, #0x1\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " beq ._346 @cond_branch\n" + " mov r1, #0x8\n" + " ldsh r0, [r5, r1]\n" + " bl DebugMenu_807808C\n" + " ldr r0, ._348 + 4 @ DebugMenu_807817C\n" + " str r0, [r5]\n" + " b ._350\n" + "._349:\n" + " .align 2, 0\n" + "._348:\n" + " .word gMain\n" + " .word DebugMenu_807817C+1\n" + "._346:\n" + " add r0, r5, #0\n" + " add r0, r0, #0x8\n" + " ldrh r1, [r2, #0x30]\n" + " mov r3, #0xc0\n" + " and r3, r3, r1\n" + " mov r1, #0x1\n" + " mov r2, #0xd\n" + " bl DebugMenu_8077DD8\n" + " cmp r0, #0\n" + " beq ._350 @cond_branch\n" + "._343:\n" + " mov r0, #0x4\n" + " mov r1, #0x11\n" + " mov r2, #0x16\n" + " mov r3, #0x12\n" + " bl Menu_BlankWindowRect\n" + " ldr r4, ._351 @ gStringVar1\n" + " mov r2, #0x8\n" + " ldsh r1, [r5, r2]\n" + " add r0, r4, #0\n" + " mov r2, #0x1\n" + " mov r3, #0x3\n" + " bl ConvertIntToDecimalStringN\n" + " add r0, r4, #0\n" + " mov r1, #0x4\n" + " mov r2, #0x11\n" + " bl Menu_PrintText\n" + "._350:\n" + " pop {r4, r5}\n" + " pop {r0}\n" + " bx r0\n" + "._352:\n" + " .align 2, 0\n" + "._351:\n" + " .word gStringVar1\n" + "\n" + ); +} + +__attribute__((naked)) +u8 DebugMenu_ViewPortraits() +{ + asm( + " push {lr}\n" + " bl CloseMenu\n" + " ldr r0, ._353 @ DebugMenu_80781A8\n" + " mov r1, #0x50\n" + " bl CreateTask\n" + " bl ScriptContext2_Enable\n" + " mov r0, #0x1\n" + " pop {r1}\n" + " bx r1\n" + "._354:\n" + " .align 2, 0\n" + "._353:\n" + " .word DebugMenu_80781A8+1\n" + "\n" + ); +} + +__attribute__((naked)) +void DebugMenu_8078254() +{ + asm( + " push {lr}\n" + " bl DebugMenu_807808C\n" + " pop {r0}\n" + " bx r0\n" + "\n" + ); +} + +__attribute__((naked)) +u8 DebugMenu_AllBadges() +{ + asm( + " push {lr}\n" + " ldr r0, ._355 @ 0x807\n" + " bl FlagSet\n" + " ldr r0, ._355 + 4 @ 0x808\n" + " bl FlagSet\n" + " ldr r0, ._355 + 8 @ 0x809\n" + " bl FlagSet\n" + " ldr r0, ._355 + 12 @ 0x80a\n" + " bl FlagSet\n" + " ldr r0, ._355 + 16 @ 0x80b\n" + " bl FlagSet\n" + " ldr r0, ._355 + 20 @ 0x80c\n" + " bl FlagSet\n" + " ldr r0, ._355 + 24 @ 0x80d\n" + " bl FlagSet\n" + " ldr r0, ._355 + 28 @ 0x80e\n" + " bl FlagSet\n" + " bl CloseMenu\n" + " mov r0, #0x1\n" + " pop {r1}\n" + " bx r1\n" + "._356:\n" + " .align 2, 0\n" + "._355:\n" + " .word 0x807\n" + " .word 0x808\n" + " .word 0x809\n" + " .word 0x80a\n" + " .word 0x80b\n" + " .word 0x80c\n" + " .word 0x80d\n" + " .word 0x80e\n" + "\n" + ); +} + +__attribute__((naked)) +u8 DebugMenu_TimeRecords() +{ + asm( + " push {lr}\n" + " bl CloseMenu\n" + " ldr r0, ._357 @ debug_sub_806F9E4\n" + " mov r1, #0x50\n" + " bl CreateTask\n" + " bl ScriptContext2_Enable\n" + " mov r0, #0x1\n" + " pop {r1}\n" + " bx r1\n" + "._358:\n" + " .align 2, 0\n" + "._357:\n" + " .word debug_sub_806F9E4+1\n" + "\n" + ); +} + +__attribute__((naked)) +u8 DebugMenu_SetTime() +{ + asm( + " push {lr}\n" + " bl CloseMenu\n" + " bl debug_sub_806F99C\n" + " bl ScriptContext2_Enable\n" + " mov r0, #0x1\n" + " pop {r1}\n" + " bx r1\n" + "\n" + ); +} + +__attribute__((naked)) +void DebugMenu_80782EC() +{ + asm( + " push {lr}\n" + " add r1, r0, #0\n" + " lsl r1, r1, #0x10\n" + " lsr r1, r1, #0x10\n" + " ldr r0, ._359 @ gStringVar1\n" + " mov r2, #0x0\n" + " mov r3, #0x4\n" + " bl ConvertIntToHexStringN\n" + " ldr r0, ._359 + 4 @ Str_839C053\n" + " bl sub_8071F40\n" + " pop {r0}\n" + " bx r0\n" + "._360:\n" + " .align 2, 0\n" + "._359:\n" + " .word gStringVar1\n" + " .word Str_839C053\n" + "\n" + ); +} + +__attribute__((naked)) +void DebugMenu_8078310() +{ + asm( + " push {r4, r5, lr}\n" + " lsl r0, r0, #0x18\n" + " lsr r5, r0, #0x18\n" + " lsl r0, r5, #0x2\n" + " add r0, r0, r5\n" + " lsl r0, r0, #0x3\n" + " ldr r1, ._364 @ gTasks\n" + " add r4, r0, r1\n" + " mov r1, #0x0\n" + " ldsh r0, [r4, r1]\n" + " cmp r0, #0\n" + " beq ._361 @cond_branch\n" + " cmp r0, #0x1\n" + " beq ._362 @cond_branch\n" + " b ._375\n" + "._365:\n" + " .align 2, 0\n" + "._364:\n" + " .word gTasks+0x8\n" + "._361:\n" + " ldr r0, ._367 @ 0x4024\n" + " bl VarGet\n" + " strh r0, [r4, #0x2]\n" + " ldrh r0, [r4, #0x2]\n" + " bl DebugMenu_80782EC\n" + " ldrh r0, [r4]\n" + " add r0, r0, #0x1\n" + " strh r0, [r4]\n" + " b ._375\n" + "._368:\n" + " .align 2, 0\n" + "._367:\n" + " .word 0x4024\n" + "._362:\n" + " ldr r3, ._371 @ gMain\n" + " ldrh r1, [r3, #0x2e]\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " beq ._369 @cond_branch\n" + " mov r0, #0x49\n" + " bl PlaySE\n" + " ldr r0, ._371 + 4 @ 0x4024\n" + " bl GetVarPointer\n" + " ldrh r1, [r4, #0x2]\n" + " strh r1, [r0]\n" + " b ._370\n" + "._372:\n" + " .align 2, 0\n" + "._371:\n" + " .word gMain\n" + " .word 0x4024\n" + "._369:\n" + " mov r0, #0x2\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " beq ._373 @cond_branch\n" + "._370:\n" + " bl Menu_EraseScreen\n" + " add r0, r5, #0\n" + " bl DestroyTask\n" + " bl ScriptContext2_Disable\n" + " b ._375\n" + "._373:\n" + " add r0, r4, #2\n" + " ldr r2, ._376 @ 0xffff\n" + " ldrh r3, [r3, #0x30]\n" + " mov r1, #0x0\n" + " bl DebugMenu_8077DD8\n" + " cmp r0, #0x1\n" + " bne ._375 @cond_branch\n" + " ldrh r0, [r4, #0x2]\n" + " bl DebugMenu_80782EC\n" + "._375:\n" + " pop {r4, r5}\n" + " pop {r0}\n" + " bx r0\n" + "._377:\n" + " .align 2, 0\n" + "._376:\n" + " .word 0xffff\n" + "\n" + ); +} + +__attribute__((naked)) +u8 DebugMenu_MiragaIslandRND() +{ + asm( + " push {lr}\n" + " bl CloseMenu\n" + " ldr r0, ._378 @ DebugMenu_8078310\n" + " mov r1, #0x50\n" + " bl CreateTask\n" + " bl ScriptContext2_Enable\n" + " mov r0, #0x1\n" + " pop {r1}\n" + " bx r1\n" + "._379:\n" + " .align 2, 0\n" + "._378:\n" + " .word DebugMenu_8078310+1\n" + "\n" + ); +} + +__attribute__((naked)) +void DebugMenu_80783C8() +{ + asm( + " push {r4, lr}\n" + " ldr r0, ._383 @ gMain\n" + " ldrh r1, [r0, #0x2e]\n" + " mov r0, #0x30\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " beq ._382 @cond_branch\n" + " mov r0, #0x5\n" + " bl PlaySE\n" + " ldr r4, ._383 + 4 @ 0x804\n" + " add r0, r4, #0\n" + " bl FlagGet\n" + " lsl r0, r0, #0x18\n" + " cmp r0, #0\n" + " bne ._381 @cond_branch\n" + " add r0, r4, #0\n" + " bl FlagSet\n" + " mov r0, #0x0\n" + " bl DebugMenu_807786C\n" + " b ._382\n" + "._384:\n" + " .align 2, 0\n" + "._383:\n" + " .word gMain\n" + " .word 0x804\n" + "._381:\n" + " add r0, r4, #0\n" + " bl FlagClear\n" + " mov r0, #0x1\n" + " bl DebugMenu_807786C\n" + "._382:\n" + " ldr r0, ._388 @ gMain\n" + " ldrh r1, [r0, #0x2e]\n" + " mov r0, #0x1\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " bne ._385 @cond_branch\n" + " mov r0, #0x2\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " beq ._386 @cond_branch\n" + "._385:\n" + " bl CloseMenu\n" + " mov r0, #0x1\n" + " b ._387\n" + "._389:\n" + " .align 2, 0\n" + "._388:\n" + " .word gMain\n" + "._386:\n" + " mov r0, #0x0\n" + "._387:\n" + " pop {r4}\n" + " pop {r1}\n" + " bx r1\n" + "\n" + ); +} + +__attribute__((naked)) +u8 DebugMenu_ToggleClearFlag() +{ + asm( + " push {lr}\n" + " bl Menu_EraseScreen\n" + " ldr r0, ._390 @ 0x804\n" + " bl FlagGet\n" + " mov r1, #0x1\n" + " eor r0, r0, r1\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " bl DebugMenu_807786C\n" + " ldr r1, ._390 + 4 @ gMenuCallback\n" + " ldr r0, ._390 + 8 @ DebugMenu_80783C8\n" + " str r0, [r1]\n" + " mov r0, #0x0\n" + " pop {r1}\n" + " bx r1\n" + "._391:\n" + " .align 2, 0\n" + "._390:\n" + " .word 0x804\n" + " .word gMenuCallback\n" + " .word DebugMenu_80783C8+1\n" + "\n" + ); +} + +__attribute__((naked)) +void DebugMenu_8078464() +{ + asm( + " push {r4, lr}\n" + " ldr r4, ._396 @ 0x82a\n" + " add r0, r4, #0\n" + " bl FlagGet\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " bl DebugMenu_8077E40\n" + " add r1, r0, #0\n" + " cmp r1, #0\n" + " beq ._392 @cond_branch\n" + " cmp r1, #0\n" + " bgt ._393 @cond_branch\n" + " mov r0, #0x1\n" + " neg r0, r0\n" + " cmp r1, r0\n" + " beq ._394 @cond_branch\n" + " b ._401\n" + "._397:\n" + " .align 2, 0\n" + "._396:\n" + " .word 0x82a\n" + "._393:\n" + " cmp r1, #0x1\n" + " beq ._398 @cond_branch\n" + " b ._401\n" + "._392:\n" + " add r0, r4, #0\n" + " bl FlagClear\n" + " b ._401\n" + "._398:\n" + " add r0, r4, #0\n" + " bl FlagSet\n" + " b ._401\n" + "._394:\n" + " mov r0, #0x1\n" + " b ._402\n" + "._401:\n" + " mov r0, #0x0\n" + "._402:\n" + " pop {r4}\n" + " pop {r1}\n" + " bx r1\n" + "\n" + ); +} + +__attribute__((naked)) +u8 DebugMenu_OpenWeatherEvents() +{ + asm( + " push {lr}\n" + " bl Menu_EraseScreen\n" + " ldr r0, ._404 @ 0x82a\n" + " bl FlagGet\n" + " mov r1, #0x0\n" + " lsl r0, r0, #0x18\n" + " cmp r0, #0\n" + " bne ._403 @cond_branch\n" + " mov r1, #0x1\n" + "._403:\n" + " add r0, r1, #0\n" + " bl DebugMenu_807786C\n" + " ldr r1, ._404 + 4 @ gMenuCallback\n" + " ldr r0, ._404 + 8 @ DebugMenu_8078464\n" + " str r0, [r1]\n" + " mov r0, #0x0\n" + " pop {r1}\n" + " bx r1\n" + "._405:\n" + " .align 2, 0\n" + "._404:\n" + " .word 0x82a\n" + " .word gMenuCallback\n" + " .word DebugMenu_8078464+1\n" + "\n" + ); +} + +__attribute__((naked)) +void DebugMenu_80784E8() +{ + asm( + " push {lr}\n" + " bl IsMysteryGiftEnabled\n" + " bl DebugMenu_8077E40\n" + " add r1, r0, #0\n" + " cmp r1, #0\n" + " beq ._406 @cond_branch\n" + " cmp r1, #0\n" + " bgt ._407 @cond_branch\n" + " mov r0, #0x1\n" + " neg r0, r0\n" + " cmp r1, r0\n" + " beq ._408 @cond_branch\n" + " b ._413\n" + "._407:\n" + " cmp r1, #0x1\n" + " beq ._410 @cond_branch\n" + " b ._413\n" + "._406:\n" + " bl DisableMysteryGift\n" + " b ._413\n" + "._410:\n" + " bl EnableMysteryGift\n" + " b ._413\n" + "._408:\n" + " mov r0, #0x1\n" + " b ._414\n" + "._413:\n" + " mov r0, #0x0\n" + "._414:\n" + " pop {r1}\n" + " bx r1\n" + "\n" + ); +} + +__attribute__((naked)) +u8 DebugMenu_OpenMysteryEvent() +{ + asm( + " push {lr}\n" + " bl Menu_EraseScreen\n" + " bl IsMysteryGiftEnabled\n" + " mov r1, #0x0\n" + " cmp r0, #0\n" + " bne ._415 @cond_branch\n" + " mov r1, #0x1\n" + "._415:\n" + " add r0, r1, #0\n" + " bl DebugMenu_807786C\n" + " ldr r1, ._416 @ gMenuCallback\n" + " ldr r0, ._416 + 4 @ DebugMenu_80784E8\n" + " str r0, [r1]\n" + " mov r0, #0x0\n" + " pop {r1}\n" + " bx r1\n" + "._417:\n" + " .align 2, 0\n" + "._416:\n" + " .word gMenuCallback\n" + " .word DebugMenu_80784E8+1\n" + "\n" + ); +} + +__attribute__((naked)) +void DebugMenu_8078550() +{ + asm( + " push {r4, r5, r6, r7, lr}\n" + " lsl r0, r0, #0x10\n" + " lsr r6, r0, #0x10\n" + " lsl r0, r6, #0x18\n" + " lsr r0, r0, #0x18\n" + " bl GetGameStat\n" + " add r7, r0, #0\n" + " ldr r0, ._420 @ gStringVar1\n" + " add r1, r6, #0\n" + " mov r2, #0x2\n" + " mov r3, #0x2\n" + " bl ConvertIntToDecimalStringN\n" + " ldr r0, ._420 + 4 @ gStringVar2\n" + " ldr r5, ._420 + 8 @ gUnknown_Debug_839C26C\n" + " lsl r4, r6, #0x3\n" + " add r1, r5, #4\n" + " add r1, r4, r1\n" + " ldr r1, [r1]\n" + " bl StringCopy\n" + " add r4, r4, r5\n" + " ldr r0, [r4]\n" + " cmp r0, #0\n" + " bne ._418 @cond_branch\n" + " ldr r0, ._420 + 12 @ gStringVar3\n" + " ldr r1, ._420 + 16 @ Str_839C085\n" + " bl StringCopy\n" + " b ._423\n" + "._421:\n" + " .align 2, 0\n" + "._420:\n" + " .word gStringVar1\n" + " .word gStringVar2\n" + " .word gUnknown_Debug_839C26C\n" + " .word gStringVar3\n" + " .word Str_839C085\n" + "._418:\n" + " cmp r6, #0x1\n" + " beq ._422 @cond_branch\n" + " ldr r0, ._424 @ gStringVar3\n" + " add r1, r7, #0\n" + " mov r2, #0x1\n" + " mov r3, #0xa\n" + " bl ConvertIntToDecimalStringN\n" + " b ._423\n" + "._425:\n" + " .align 2, 0\n" + "._424:\n" + " .word gStringVar3\n" + "._422:\n" + " ldr r4, ._426 @ gStringVar3\n" + " lsr r1, r7, #0x10\n" + " add r0, r4, #0\n" + " mov r2, #0x1\n" + " mov r3, #0x3\n" + " bl ConvertIntToDecimalStringN\n" + " mov r6, #0xf0\n" + " strb r6, [r4, #0x3]\n" + " add r0, r4, #4\n" + " lsr r1, r7, #0x8\n" + " mov r5, #0xff\n" + " and r1, r1, r5\n" + " mov r2, #0x2\n" + " mov r3, #0x2\n" + " bl ConvertIntToDecimalStringN\n" + " strb r6, [r4, #0x6]\n" + " add r4, r4, #0x7\n" + " and r7, r7, r5\n" + " add r0, r4, #0\n" + " add r1, r7, #0\n" + " mov r2, #0x2\n" + " mov r3, #0x2\n" + " bl ConvertIntToDecimalStringN\n" + "._423:\n" + " bl Menu_DisplayDialogueFrame\n" + " ldr r0, ._426 + 4 @ Str_839C07C\n" + " mov r1, #0x2\n" + " mov r2, #0xf\n" + " bl Menu_PrintText\n" + " pop {r4, r5, r6, r7}\n" + " pop {r0}\n" + " bx r0\n" + "._427:\n" + " .align 2, 0\n" + "._426:\n" + " .word gStringVar3\n" + " .word Str_839C07C\n" + "\n" + ); +} + +__attribute__((naked)) +void DebugMenu_807860C() +{ + asm( + " push {r4, r5, lr}\n" + " lsl r0, r0, #0x18\n" + " lsr r5, r0, #0x18\n" + " lsl r0, r5, #0x2\n" + " add r0, r0, r5\n" + " lsl r0, r0, #0x3\n" + " ldr r1, ._432 @ gTasks\n" + " add r4, r0, r1\n" + " mov r1, #0x0\n" + " ldsh r0, [r4, r1]\n" + " cmp r0, #0x1\n" + " beq ._428 @cond_branch\n" + " cmp r0, #0x1\n" + " bgt ._429 @cond_branch\n" + " cmp r0, #0\n" + " beq ._430 @cond_branch\n" + " b ._447\n" + "._433:\n" + " .align 2, 0\n" + "._432:\n" + " .word gTasks+0x8\n" + "._429:\n" + " cmp r0, #0x2\n" + " beq ._434 @cond_branch\n" + " b ._447\n" + "._430:\n" + " ldrh r0, [r4, #0x2]\n" + " bl DebugMenu_8078550\n" + "._441:\n" + " ldrh r0, [r4]\n" + " add r0, r0, #0x1\n" + " strh r0, [r4]\n" + " b ._447\n" + "._428:\n" + " ldr r3, ._439 @ gMain\n" + " ldrh r1, [r3, #0x2e]\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " beq ._437 @cond_branch\n" + " ldrh r0, [r4]\n" + " sub r0, r0, #0x1\n" + " strh r0, [r4]\n" + " mov r0, #0x1\n" + " b ._438\n" + "._440:\n" + " .align 2, 0\n" + "._439:\n" + " .word gMain\n" + "._437:\n" + " mov r0, #0x2\n" + " and r0, r0, r1\n" + " lsl r0, r0, #0x10\n" + " lsr r2, r0, #0x10\n" + " cmp r2, #0\n" + " bne ._441 @cond_branch\n" + " ldrh r1, [r3, #0x30]\n" + " mov r0, #0x40\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " beq ._442 @cond_branch\n" + " ldrh r0, [r4, #0x2]\n" + " add r0, r0, #0x1\n" + " strh r0, [r4, #0x2]\n" + " lsl r0, r0, #0x10\n" + " asr r0, r0, #0x10\n" + " cmp r0, #0x32\n" + " bne ._446 @cond_branch\n" + " strh r2, [r4, #0x2]\n" + " b ._446\n" + "._442:\n" + " mov r0, #0x80\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " beq ._447 @cond_branch\n" + " ldrh r0, [r4, #0x2]\n" + " sub r0, r0, #0x1\n" + " strh r0, [r4, #0x2]\n" + " lsl r0, r0, #0x10\n" + " cmp r0, #0\n" + " bge ._446 @cond_branch\n" + " mov r0, #0x31\n" + " strh r0, [r4, #0x2]\n" + "._446:\n" + " ldrh r0, [r4, #0x2]\n" + " bl DebugMenu_8078550\n" + " b ._447\n" + "._434:\n" + " bl Menu_EraseScreen\n" + " bl ScriptContext2_Disable\n" + " add r0, r5, #0\n" + " bl DestroyTask\n" + "._447:\n" + " mov r0, #0x0\n" + "._438:\n" + " pop {r4, r5}\n" + " pop {r1}\n" + " bx r1\n" + "\n" + ); +} + +__attribute__((naked)) +void DebugMenu_80786C0() +{ + asm( + " push {lr}\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " bl DebugMenu_807860C\n" + " pop {r0}\n" + " bx r0\n" + "\n" + ); +} + +__attribute__((naked)) +void DebugMenu_80786D0() +{ + asm( + " push {r4, lr}\n" + " lsl r0, r0, #0x18\n" + " lsr r4, r0, #0x18\n" + " add r0, r4, #0\n" + " bl DebugMenu_807860C\n" + " cmp r0, #0\n" + " beq ._449 @cond_branch\n" + " ldr r1, ._450 @ gTasks\n" + " lsl r0, r4, #0x2\n" + " add r0, r0, r4\n" + " lsl r0, r0, #0x3\n" + " add r0, r0, r1\n" + " ldrb r2, [r0, #0xa]\n" + " ldr r1, ._450 + 4 @ gUnknown_Debug_839C26C\n" + " lsl r0, r2, #0x3\n" + " add r0, r0, r1\n" + " ldr r0, [r0]\n" + " cmp r0, #0\n" + " beq ._449 @cond_branch\n" + " sub r1, r0, #1\n" + " add r0, r2, #0\n" + " bl SetGameStat\n" + " mov r0, #0x15\n" + " bl PlaySE\n" + "._449:\n" + " pop {r4}\n" + " pop {r0}\n" + " bx r0\n" + "._451:\n" + " .align 2, 0\n" + "._450:\n" + " .word gTasks\n" + " .word gUnknown_Debug_839C26C\n" + "\n" + ); +} + +__attribute__((naked)) +void DebugMenu_8078714() +{ + asm( + " push {r4, lr}\n" + " lsl r0, r0, #0x18\n" + " lsr r4, r0, #0x18\n" + " add r0, r4, #0\n" + " bl DebugMenu_807860C\n" + " cmp r0, #0\n" + " beq ._453 @cond_branch\n" + " ldr r1, ._454 @ gTasks\n" + " lsl r0, r4, #0x2\n" + " add r0, r0, r4\n" + " lsl r0, r0, #0x3\n" + " add r0, r0, r1\n" + " ldrb r2, [r0, #0xa]\n" + " ldr r1, ._454 + 4 @ gUnknown_Debug_839C26C\n" + " lsl r0, r2, #0x3\n" + " add r0, r0, r1\n" + " ldr r0, [r0]\n" + " cmp r0, #0\n" + " beq ._453 @cond_branch\n" + " add r0, r2, #0\n" + " mov r1, #0x0\n" + " bl SetGameStat\n" + " mov r0, #0x15\n" + " bl PlaySE\n" + "._453:\n" + " pop {r4}\n" + " pop {r0}\n" + " bx r0\n" + "._455:\n" + " .align 2, 0\n" + "._454:\n" + " .word gTasks\n" + " .word gUnknown_Debug_839C26C\n" + "\n" + ); +} + +__attribute__((naked)) +void DebugMenu_8078758() +{ + asm( + " push {r4, lr}\n" + " add r4, r0, #0\n" + " bl CloseMenu\n" + " bl ScriptContext2_Enable\n" + " add r0, r4, #0\n" + " mov r1, #0x50\n" + " bl CreateTask\n" + " mov r0, #0x1\n" + " pop {r4}\n" + " pop {r1}\n" + " bx r1\n" + "\n" + ); +} + +__attribute__((naked)) +void DebugMenu_8078774() +{ + asm( + " push {lr}\n" + " ldr r0, ._456 @ DebugMenu_80786C0\n" + " bl DebugMenu_8078758\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " pop {r1}\n" + " bx r1\n" + "._457:\n" + " .align 2, 0\n" + "._456:\n" + " .word DebugMenu_80786C0+1\n" + "\n" + ); +} + +__attribute__((naked)) +void DebugMenu_8078788() +{ + asm( + " push {lr}\n" + " ldr r0, ._458 @ DebugMenu_80786D0\n" + " bl DebugMenu_8078758\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " pop {r1}\n" + " bx r1\n" + "._459:\n" + " .align 2, 0\n" + "._458:\n" + " .word DebugMenu_80786D0+1\n" + "\n" + ); +} + +__attribute__((naked)) +void DebugMenu_807879C() +{ + asm( + " push {lr}\n" + " ldr r0, ._460 @ DebugMenu_8078714\n" + " bl DebugMenu_8078758\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " pop {r1}\n" + " bx r1\n" + "._461:\n" + " .align 2, 0\n" + "._460:\n" + " .word DebugMenu_8078714+1\n" + "\n" + ); +} + +__attribute__((naked)) +void DebugMenu_80787B0() +{ + asm( + " push {lr}\n" + " ldr r0, ._462 @ gUnknown_Debug_839C3FC\n" + " bl DebugMenu_8077D78\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " pop {r1}\n" + " bx r1\n" + "._463:\n" + " .align 2, 0\n" + "._462:\n" + " .word gUnknown_Debug_839C3FC\n" + "\n" + ); +} + +__attribute__((naked)) +u8 DebugMenu_OpenLegendsRecord() +{ + asm( + " push {lr}\n" + " bl Menu_EraseScreen\n" + " ldr r0, ._464 @ gUnknown_Debug_839C3FC\n" + " mov r1, #0xc\n" + " mov r2, #0x3\n" + " bl DebugMenu_8077D24\n" + " ldr r1, ._464 + 4 @ gMenuCallback\n" + " ldr r0, ._464 + 8 @ DebugMenu_80787B0\n" + " str r0, [r1]\n" + " mov r0, #0x0\n" + " pop {r1}\n" + " bx r1\n" + "._465:\n" + " .align 2, 0\n" + "._464:\n" + " .word gUnknown_Debug_839C3FC\n" + " .word gMenuCallback\n" + " .word DebugMenu_80787B0+1\n" + "\n" + ); +} + +__attribute__((naked)) +void DebugMenu_80787EC() +{ + asm( + " push {r4, r5, lr}\n" + " add sp, sp, #0xfffffffc\n" + " mov r5, sp\n" + " add r5, r5, #0x2\n" + " mov r0, sp\n" + " add r1, r5, #0\n" + " bl GetXYCoordsOneStepInFrontOfPlayer\n" + " ldr r4, ._466 @ gSpecialVar_Result\n" + " mov r0, sp\n" + " mov r1, #0x0\n" + " ldsh r0, [r0, r1]\n" + " mov r2, #0x0\n" + " ldsh r1, [r5, r2]\n" + " bl MapGridGetMetatileBehaviorAt\n" + " strh r0, [r4]\n" + " ldr r0, ._466 + 4 @ gStringVar1\n" + " ldrh r1, [r4]\n" + " mov r2, #0x2\n" + " mov r3, #0x4\n" + " bl ConvertIntToHexStringN\n" + " mov r0, sp\n" + " mov r1, #0x0\n" + " ldsh r0, [r0, r1]\n" + " mov r2, #0x0\n" + " ldsh r1, [r5, r2]\n" + " bl MapGridGetMetatileIdAt\n" + " strh r0, [r4]\n" + " ldr r0, ._466 + 8 @ gStringVar2\n" + " ldrh r1, [r4]\n" + " mov r2, #0x2\n" + " mov r3, #0x4\n" + " bl ConvertIntToHexStringN\n" + " mov r0, sp\n" + " mov r1, #0x0\n" + " ldsh r0, [r0, r1]\n" + " mov r2, #0x0\n" + " ldsh r1, [r5, r2]\n" + " bl MapGridGetZCoordAt\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " strh r0, [r4]\n" + " ldr r0, ._466 + 12 @ gStringVar3\n" + " ldrh r1, [r4]\n" + " mov r2, #0x2\n" + " mov r3, #0x4\n" + " bl ConvertIntToHexStringN\n" + " ldr r0, ._466 + 16 @ gStringVar4\n" + " ldr r1, ._466 + 20 @ Str_839C414\n" + " bl StringExpandPlaceholders\n" + " add sp, sp, #0x4\n" + " pop {r4, r5}\n" + " pop {r0}\n" + " bx r0\n" + "._467:\n" + " .align 2, 0\n" + "._466:\n" + " .word gSpecialVar_Result\n" + " .word gStringVar1\n" + " .word gStringVar2\n" + " .word gStringVar3\n" + " .word gStringVar4\n" + " .word Str_839C414\n" + "\n" + ); +} + +__attribute__((naked)) +void DebugMenu_8078880() +{ + asm( + " push {r4, r5, lr}\n" + " lsl r0, r0, #0x18\n" + " lsr r5, r0, #0x18\n" + " ldr r1, ._472 @ gTasks\n" + " lsl r0, r5, #0x2\n" + " add r0, r0, r5\n" + " lsl r0, r0, #0x3\n" + " add r4, r0, r1\n" + " mov r1, #0x8\n" + " ldsh r0, [r4, r1]\n" + " cmp r0, #0x1\n" + " beq ._468 @cond_branch\n" + " cmp r0, #0x1\n" + " bgt ._469 @cond_branch\n" + " cmp r0, #0\n" + " beq ._470 @cond_branch\n" + " b ._480\n" + "._473:\n" + " .align 2, 0\n" + "._472:\n" + " .word gTasks\n" + "._469:\n" + " cmp r0, #0x2\n" + " beq ._474 @cond_branch\n" + " b ._480\n" + "._470:\n" + " bl Menu_DisplayDialogueFrame\n" + " b ._476\n" + "._468:\n" + " ldr r0, ._478 @ gStringVar4\n" + " mov r1, #0x2\n" + " mov r2, #0xf\n" + " bl Menu_PrintText\n" + "._476:\n" + " ldrh r0, [r4, #0x8]\n" + " add r0, r0, #0x1\n" + " strh r0, [r4, #0x8]\n" + " b ._480\n" + "._479:\n" + " .align 2, 0\n" + "._478:\n" + " .word gStringVar4\n" + "._474:\n" + " ldr r0, ._481 @ gMain\n" + " ldrh r1, [r0, #0x2e]\n" + " mov r0, #0x1\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " beq ._480 @cond_branch\n" + " bl Menu_EraseScreen\n" + " bl ScriptContext2_Disable\n" + " add r0, r5, #0\n" + " bl DestroyTask\n" + "._480:\n" + " pop {r4, r5}\n" + " pop {r0}\n" + " bx r0\n" + "._482:\n" + " .align 2, 0\n" + "._481:\n" + " .word gMain\n" + "\n" + ); +} + +__attribute__((naked)) +u8 DebugMenu_CellInfo() +{ + asm( + " push {lr}\n" + " bl CloseMenu\n" + " ldr r0, ._483 @ DebugMenu_8078880\n" + " mov r1, #0x50\n" + " bl CreateTask\n" + " bl DebugMenu_80787EC\n" + " bl ScriptContext2_Enable\n" + " mov r0, #0x1\n" + " pop {r1}\n" + " bx r1\n" + "._484:\n" + " .align 2, 0\n" + "._483:\n" + " .word DebugMenu_8078880+1\n" + "\n" + ); +} + +__attribute__((naked)) +u8 DebugMenu_OpenBerryInfo() +{ + asm( + " push {r4, lr}\n" + " bl DebugOpenBerryInfo\n" + " add r4, r0, #0\n" + " cmp r4, #0\n" + " bne ._485 @cond_branch\n" + " bl CloseMenu\n" + " mov r0, #0x1\n" + " b ._486\n" + "._485:\n" + " mov r0, #0x0\n" + " mov r1, #0x0\n" + " mov r2, #0x13\n" + " mov r3, #0x13\n" + " bl Menu_DrawStdWindowFrame\n" + " add r0, r4, #0\n" + " mov r1, #0x1\n" + " mov r2, #0x1\n" + " bl Menu_PrintText\n" + " ldr r1, ._487 @ gMenuCallback\n" + " ldr r0, ._487 + 4 @ DebugMenu_8077DB4\n" + " str r0, [r1]\n" + " mov r0, #0x0\n" + "._486:\n" + " pop {r4}\n" + " pop {r1}\n" + " bx r1\n" + "._488:\n" + " .align 2, 0\n" + "._487:\n" + " .word gMenuCallback\n" + " .word DebugMenu_8077DB4+1\n" + "\n" + ); +} + +__attribute__((naked)) +void DebugMenu_8078950() +{ + asm( + " push {lr}\n" + " bl Menu_DisplayDialogueFrame\n" + " ldr r0, ._489 @ Str_839C42E\n" + " mov r1, #0x4\n" + " mov r2, #0xf\n" + " bl Menu_PrintText\n" + " pop {r0}\n" + " bx r0\n" + "._490:\n" + " .align 2, 0\n" + "._489:\n" + " .word Str_839C42E\n" + "\n" + ); +} + +__attribute__((naked)) +void DebugMenu_8078968() +{ + asm( + " push {lr}\n" + " lsl r0, r0, #0x10\n" + " cmp r0, #0\n" + " bne ._491 @cond_branch\n" + " ldr r0, ._493 @ gStringVar1\n" + " mov r1, #0x32\n" + " mov r2, #0x2\n" + " mov r3, #0x3\n" + " bl ConvertIntToDecimalStringN\n" + " b ._492\n" + "._494:\n" + " .align 2, 0\n" + "._493:\n" + " .word gStringVar1\n" + "._491:\n" + " ldr r0, ._495 @ gStringVar1\n" + " mov r1, #0x64\n" + " mov r2, #0x2\n" + " mov r3, #0x3\n" + " bl ConvertIntToDecimalStringN\n" + "._492:\n" + " ldr r0, ._495 @ gStringVar1\n" + " mov r1, #0x4\n" + " mov r2, #0x11\n" + " bl Menu_PrintText\n" + " pop {r0}\n" + " bx r0\n" + "._496:\n" + " .align 2, 0\n" + "._495:\n" + " .word gStringVar1\n" + "\n" + ); +} + +__attribute__((naked)) +void DebugMenu_80789A4() +{ + asm( + " push {r4, lr}\n" + " add r1, r0, #0\n" + " lsl r1, r1, #0x10\n" + " lsr r1, r1, #0x10\n" + " ldr r4, ._497 @ gStringVar1\n" + " add r0, r4, #0\n" + " mov r2, #0x2\n" + " mov r3, #0x4\n" + " bl ConvertIntToDecimalStringN\n" + " add r0, r4, #0\n" + " mov r1, #0x9\n" + " mov r2, #0x11\n" + " bl Menu_PrintText\n" + " pop {r4}\n" + " pop {r0}\n" + " bx r0\n" + "._498:\n" + " .align 2, 0\n" + "._497:\n" + " .word gStringVar1\n" + "\n" + ); +} + +__attribute__((naked)) +void DebugMenu_80789CC() +{ + asm( + " push {r4, r5, r6, lr}\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " lsl r4, r0, #0x2\n" + " add r4, r4, r0\n" + " lsl r4, r4, #0x3\n" + " ldr r6, ._499 @ gTasks\n" + " add r5, r4, r6\n" + " mov r0, #0x0\n" + " strh r0, [r5]\n" + " ldr r0, ._499 + 4 @ gSaveBlock2\n" + " ldr r1, ._499 + 8 @ 0x55c\n" + " add r0, r0, r1\n" + " ldrh r0, [r0]\n" + " strh r0, [r5, #0x2]\n" + " bl DebugMenu_8078950\n" + " ldrh r0, [r5]\n" + " bl DebugMenu_8078968\n" + " sub r6, r6, #0x8\n" + " add r4, r4, r6\n" + " ldr r0, ._499 + 12 @ DebugMenu_8078A14\n" + " str r0, [r4]\n" + " pop {r4, r5, r6}\n" + " pop {r0}\n" + " bx r0\n" + "._500:\n" + " .align 2, 0\n" + "._499:\n" + " .word gTasks+0x8\n" + " .word gSaveBlock2\n" + " .word 0x55c\n" + " .word DebugMenu_8078A14+1\n" + "\n" + ); +} + +__attribute__((naked)) +void DebugMenu_8078A14() +{ + asm( + " push {r4, r5, lr}\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " lsl r1, r0, #0x2\n" + " add r1, r1, r0\n" + " lsl r4, r1, #0x3\n" + " ldr r5, ._504 @ gTasks\n" + " add r2, r4, r5\n" + " ldr r0, ._504 + 4 @ gMain\n" + " ldrh r1, [r0, #0x2e]\n" + " mov r0, #0xc0\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " beq ._501 @cond_branch\n" + " mov r1, #0x0\n" + " mov r3, #0x0\n" + " ldsh r0, [r2, r3]\n" + " cmp r0, #0\n" + " bne ._502 @cond_branch\n" + " mov r1, #0x1\n" + "._502:\n" + " strh r1, [r2]\n" + " ldrh r0, [r2]\n" + " bl DebugMenu_8078968\n" + " b ._510\n" + "._505:\n" + " .align 2, 0\n" + "._504:\n" + " .word gTasks+0x8\n" + " .word gMain\n" + "._501:\n" + " mov r0, #0x1\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " beq ._506 @cond_branch\n" + " ldr r1, ._508 @ gSaveBlock2\n" + " mov r3, #0x0\n" + " ldsh r0, [r2, r3]\n" + " lsl r0, r0, #0x1\n" + " ldr r3, ._508 + 4 @ 0x55c\n" + " add r1, r1, r3\n" + " add r0, r0, r1\n" + " ldrh r0, [r0]\n" + " strh r0, [r2, #0x2]\n" + " ldrh r0, [r2, #0x2]\n" + " bl DebugMenu_80789A4\n" + " add r0, r5, #0\n" + " sub r0, r0, #0x8\n" + " add r0, r4, r0\n" + " ldr r1, ._508 + 8 @ DebugMenu_8078AA4\n" + " b ._507\n" + "._509:\n" + " .align 2, 0\n" + "._508:\n" + " .word gSaveBlock2\n" + " .word 0x55c\n" + " .word DebugMenu_8078AA4+1\n" + "._506:\n" + " mov r0, #0x2\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " beq ._510 @cond_branch\n" + " add r0, r5, #0\n" + " sub r0, r0, #0x8\n" + " add r0, r4, r0\n" + " ldr r1, ._511 @ DebugMenu_8078B38\n" + "._507:\n" + " str r1, [r0]\n" + "._510:\n" + " pop {r4, r5}\n" + " pop {r0}\n" + " bx r0\n" + "._512:\n" + " .align 2, 0\n" + "._511:\n" + " .word DebugMenu_8078B38+1\n" + "\n" + ); +} + +__attribute__((naked)) +void DebugMenu_8078AA4() +{ + asm( + " push {r4, r5, r6, r7, lr}\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " lsl r1, r0, #0x2\n" + " add r1, r1, r0\n" + " lsl r5, r1, #0x3\n" + " ldr r7, ._515 @ gTasks\n" + " add r4, r5, r7\n" + " add r0, r4, #2\n" + " mov r2, #0xfa\n" + " lsl r2, r2, #0x3\n" + " ldr r6, ._515 + 4 @ gMain\n" + " ldrh r3, [r6, #0x30]\n" + " mov r1, #0x0\n" + " bl DebugMenu_8077DD8\n" + " cmp r0, #0x1\n" + " bne ._513 @cond_branch\n" + " ldrh r0, [r4, #0x2]\n" + " bl DebugMenu_80789A4\n" + " b ._521\n" + "._516:\n" + " .align 2, 0\n" + "._515:\n" + " .word gTasks+0x8\n" + " .word gMain\n" + "._513:\n" + " ldrh r1, [r6, #0x2e]\n" + " mov r0, #0x1\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " beq ._517 @cond_branch\n" + " ldr r1, ._519 @ gSaveBlock2\n" + " mov r2, #0x0\n" + " ldsh r0, [r4, r2]\n" + " lsl r0, r0, #0x1\n" + " ldr r2, ._519 + 4 @ 0x55c\n" + " add r1, r1, r2\n" + " add r0, r0, r1\n" + " ldrh r1, [r4, #0x2]\n" + " strh r1, [r0]\n" + " mov r0, #0x49\n" + " bl PlaySE\n" + " add r0, r7, #0\n" + " sub r0, r0, #0x8\n" + " add r0, r5, r0\n" + " ldr r1, ._519 + 8 @ DebugMenu_8078B38\n" + " b ._518\n" + "._520:\n" + " .align 2, 0\n" + "._519:\n" + " .word gSaveBlock2\n" + " .word 0x55c\n" + " .word DebugMenu_8078B38+1\n" + "._517:\n" + " mov r0, #0x2\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " beq ._521 @cond_branch\n" + " bl DebugMenu_8078950\n" + " ldrh r0, [r4]\n" + " bl DebugMenu_8078968\n" + " add r0, r7, #0\n" + " sub r0, r0, #0x8\n" + " add r0, r5, r0\n" + " ldr r1, ._522 @ DebugMenu_8078A14\n" + "._518:\n" + " str r1, [r0]\n" + "._521:\n" + " pop {r4, r5, r6, r7}\n" + " pop {r0}\n" + " bx r0\n" + "._523:\n" + " .align 2, 0\n" + "._522:\n" + " .word DebugMenu_8078A14+1\n" + "\n" + ); +} + +__attribute__((naked)) +void DebugMenu_8078B38() +{ + asm( + " push {r4, lr}\n" + " add r4, r0, #0\n" + " lsl r4, r4, #0x18\n" + " lsr r4, r4, #0x18\n" + " bl Menu_EraseScreen\n" + " bl ScriptContext2_Disable\n" + " add r0, r4, #0\n" + " bl DestroyTask\n" + " pop {r4}\n" + " pop {r0}\n" + " bx r0\n" + "\n" + ); +} + +__attribute__((naked)) +u8 DebugMenu_BattleTowerStages() +{ + asm( + " push {lr}\n" + " bl CloseMenu\n" + " bl ScriptContext2_Enable\n" + " ldr r0, ._524 @ DebugMenu_80789CC\n" + " mov r1, #0x50\n" + " bl CreateTask\n" + " mov r0, #0x1\n" + " pop {r1}\n" + " bx r1\n" + "._525:\n" + " .align 2, 0\n" + "._524:\n" + " .word DebugMenu_80789CC+1\n" + "\n" + ); +} + +__attribute__((naked)) +void DebugMenu_8078B70() +{ + asm( + " push {lr}\n" + " add r1, r0, #0\n" + " lsl r1, r1, #0x10\n" + " lsr r1, r1, #0x10\n" + " ldr r0, ._526 @ gStringVar1\n" + " mov r2, #0x0\n" + " mov r3, #0x1\n" + " bl ConvertIntToHexStringN\n" + " ldr r0, ._526 + 4 @ Str_839C438\n" + " bl sub_8071F40\n" + " pop {r0}\n" + " bx r0\n" + "._527:\n" + " .align 2, 0\n" + "._526:\n" + " .word gStringVar1\n" + " .word Str_839C438\n" + "\n" + ); +} + +__attribute__((naked)) +void DebugMenu_8078B94() +{ + asm( + " push {r4, r5, lr}\n" + " mov r3, #0x0\n" + " ldr r1, ._531 @ gUnknown_Debug_839C444\n" + " ldrb r0, [r1]\n" + " cmp r0, #0\n" + " beq ._529 @cond_branch\n" + " ldr r5, ._531 + 4 @ gSaveBlock1\n" + " add r4, r1, #0\n" + "._530:\n" + " lsl r0, r3, #0x3\n" + " add r2, r0, r5\n" + " add r0, r0, r4\n" + " ldr r1, [r0, #0x4]\n" + " ldr r0, [r0]\n" + " str r0, [r2]\n" + " str r1, [r2, #0x4]\n" + " add r0, r3, #1\n" + " lsl r0, r0, #0x18\n" + " lsr r3, r0, #0x18\n" + " cmp r3, #0x27\n" + " bhi ._529 @cond_branch\n" + " lsl r0, r3, #0x3\n" + " add r0, r0, r4\n" + " ldrb r0, [r0]\n" + " cmp r0, #0\n" + " bne ._530 @cond_branch\n" + "._529:\n" + " pop {r4, r5}\n" + " pop {r0}\n" + " bx r0\n" + "._532:\n" + " .align 2, 0\n" + "._531:\n" + " .word gUnknown_Debug_839C444\n" + " .word gSaveBlock1+0x7f8\n" + "\n" + ); +} + +__attribute__((naked)) +void DebugMenu_8078BD4() +{ + asm( + " push {r4, r5, lr}\n" + " lsl r0, r0, #0x18\n" + " lsr r5, r0, #0x18\n" + " lsl r0, r5, #0x2\n" + " add r0, r0, r5\n" + " lsl r0, r0, #0x3\n" + " ldr r1, ._536 @ gTasks\n" + " add r4, r0, r1\n" + " mov r1, #0x0\n" + " ldsh r0, [r4, r1]\n" + " cmp r0, #0\n" + " beq ._533 @cond_branch\n" + " cmp r0, #0x1\n" + " beq ._534 @cond_branch\n" + " b ._545\n" + "._537:\n" + " .align 2, 0\n" + "._536:\n" + " .word gTasks+0x8\n" + "._533:\n" + " ldrh r0, [r4, #0x2]\n" + " bl DebugMenu_8078B70\n" + " ldrh r0, [r4]\n" + " add r0, r0, #0x1\n" + " strh r0, [r4]\n" + " b ._545\n" + "._534:\n" + " ldr r2, ._541 @ gMain\n" + " ldrh r1, [r2, #0x2e]\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " beq ._539 @cond_branch\n" + " mov r0, #0x49\n" + " bl PlaySE\n" + " bl Menu_EraseScreen\n" + " add r0, r5, #0\n" + " bl DestroyTask\n" + " bl ScriptContext2_Disable\n" + " bl DebugMenu_8078B94\n" + " b ._545\n" + "._542:\n" + " .align 2, 0\n" + "._541:\n" + " .word gMain\n" + "._539:\n" + " mov r0, #0x2\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " beq ._543 @cond_branch\n" + " bl Menu_EraseScreen\n" + " add r0, r5, #0\n" + " bl DestroyTask\n" + " bl ScriptContext2_Disable\n" + " b ._545\n" + "._543:\n" + " add r0, r4, #2\n" + " ldrh r3, [r2, #0x30]\n" + " mov r1, #0x0\n" + " mov r2, #0x4\n" + " bl DebugMenu_8077DD8\n" + " cmp r0, #0x1\n" + " bne ._545 @cond_branch\n" + " ldrh r0, [r4, #0x2]\n" + " bl DebugMenu_8078B70\n" + "._545:\n" + " pop {r4, r5}\n" + " pop {r0}\n" + " bx r0\n" + "\n" + ); +} + +__attribute__((naked)) +u8 DebugMenu_CheckPKBLCK() +{ + asm( + " push {lr}\n" + " bl CloseMenu\n" + " ldr r0, ._546 @ DebugMenu_8078BD4\n" + " mov r1, #0x50\n" + " bl CreateTask\n" + " bl ScriptContext2_Enable\n" + " mov r0, #0x1\n" + " pop {r1}\n" + " bx r1\n" + "._547:\n" + " .align 2, 0\n" + "._546:\n" + " .word DebugMenu_8078BD4+1\n" + "\n" + ); +} + +__attribute__((naked)) +void DebugMenu_8078C80() +{ + asm( + " push {lr}\n" + " bl Menu_DisplayDialogueFrame\n" + " ldr r0, ._548 @ Str_839C5A4\n" + " mov r1, #0x2\n" + " mov r2, #0xf\n" + " bl Menu_PrintText\n" + " ldr r1, ._548 + 4 @ gMenuCallback\n" + " ldr r0, ._548 + 8 @ DebugMenu_8078CA8\n" + " str r0, [r1]\n" + " mov r0, #0x0\n" + " pop {r1}\n" + " bx r1\n" + "._549:\n" + " .align 2, 0\n" + "._548:\n" + " .word Str_839C5A4\n" + " .word gMenuCallback\n" + " .word DebugMenu_8078CA8+1\n" + "\n" + ); +} + +__attribute__((naked)) +void DebugMenu_8078CA8() +{ + asm( + " push {lr}\n" + " ldr r0, ._552 @ gMain\n" + " ldrh r1, [r0, #0x2e]\n" + " mov r0, #0x1\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " beq ._550 @cond_branch\n" + " ldr r1, ._552 + 4 @ gMenuCallback\n" + " ldr r0, ._552 + 8 @ DebugMenu_8078CE4\n" + " str r0, [r1]\n" + " mov r0, #0x0\n" + " b ._555\n" + "._553:\n" + " .align 2, 0\n" + "._552:\n" + " .word gMain\n" + " .word gMenuCallback\n" + " .word DebugMenu_8078CE4+1\n" + "._550:\n" + " mov r0, #0x2\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " bne ._554 @cond_branch\n" + " mov r0, #0x0\n" + " b ._555\n" + "._554:\n" + " bl CloseMenu\n" + " mov r0, #0x1\n" + "._555:\n" + " pop {r1}\n" + " bx r1\n" + "\n" + ); +} + +__attribute__((naked)) +void DebugMenu_8078CE4() +{ + asm( + " push {lr}\n" + " ldr r1, ._558 @ \n" + " mov r2, #0x80\n" + " lsl r2, r2, #0xa\n" + " mov r0, #0x0\n" + " bl DebugMenu_8078E40\n" + " cmp r0, #0x1\n" + " bne ._556 @cond_branch\n" + " ldr r0, ._558 + 4 @ \n" + " ldr r1, ._558 + 8 @ \n" + " bl StringCopy\n" + " b ._557\n" + "._559:\n" + " .align 2, 0\n" + "._558:\n" + " .word +0x2000000\n" + " .word gStringVar4\n" + " .word Str_839C5CC\n" + "._556:\n" + " ldr r0, ._560 @ gStringVar4\n" + " ldr r1, ._560 + 4 @ Str_839C5DF\n" + " bl StringCopy\n" + "._557:\n" + " ldr r1, ._560 + 8 @ gMenuCallback\n" + " ldr r0, ._560 + 12 @ DebugMenu_8078D7C\n" + " str r0, [r1]\n" + " mov r0, #0x0\n" + " pop {r1}\n" + " bx r1\n" + "._561:\n" + " .align 2, 0\n" + "._560:\n" + " .word gStringVar4\n" + " .word Str_839C5DF\n" + " .word gMenuCallback\n" + " .word DebugMenu_8078D7C+1\n" + "\n" + ); +} + +__attribute__((naked)) +void DebugMenu_8078D30() +{ + asm( + " push {r4, r5, r6, lr}\n" + " ldr r5, ._563 @ \n" + " mov r4, #0x0\n" + " mov r6, #0x80\n" + " lsl r6, r6, #0x5\n" + "._562:\n" + " add r0, r4, #0\n" + " add r1, r5, #0\n" + " add r2, r6, #0\n" + " bl DebugMenu_8078E68\n" + " add r5, r5, r6\n" + " add r0, r4, #1\n" + " lsl r0, r0, #0x18\n" + " lsr r4, r0, #0x18\n" + " cmp r4, #0x1f\n" + " bls ._562 @cond_branch\n" + " ldr r0, ._563 + 4 @ \n" + " ldr r1, ._563 + 8 @ \n" + " bl StringCopy\n" + " ldr r1, ._563 + 12 @ \n" + " ldr r0, ._563 + 16 @ \n" + " str r0, [r1]\n" + " mov r0, #0x0\n" + " pop {r4, r5, r6}\n" + " pop {r1}\n" + " bx r1\n" + "._564:\n" + " .align 2, 0\n" + "._563:\n" + " .word +0x2000000\n" + " .word gStringVar4\n" + " .word Str_839C5D6\n" + " .word gMenuCallback\n" + " .word DebugMenu_8078D7C+1\n" + "\n" + ); +} + +__attribute__((naked)) +void DebugMenu_8078D7C() +{ + asm( + " push {lr}\n" + " bl Menu_DisplayDialogueFrame\n" + " ldr r0, ._565 @ gStringVar4\n" + " mov r1, #0x2\n" + " mov r2, #0xf\n" + " bl Menu_PrintText\n" + " ldr r1, ._565 + 4 @ gMenuCallback\n" + " ldr r0, ._565 + 8 @ DebugMenu_8078DA4\n" + " str r0, [r1]\n" + " mov r0, #0x0\n" + " pop {r1}\n" + " bx r1\n" + "._566:\n" + " .align 2, 0\n" + "._565:\n" + " .word gStringVar4\n" + " .word gMenuCallback\n" + " .word DebugMenu_8078DA4+1\n" + "\n" + ); +} + +__attribute__((naked)) +void DebugMenu_8078DA4() +{ + asm( + " push {lr}\n" + " ldr r0, ._569 @ gMain\n" + " ldrh r1, [r0, #0x2e]\n" + " mov r0, #0x1\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " bne ._567 @cond_branch\n" + " mov r0, #0x0\n" + " b ._568\n" + "._570:\n" + " .align 2, 0\n" + "._569:\n" + " .word gMain\n" + "._567:\n" + " bl CloseMenu\n" + " mov r0, #0x1\n" + "._568:\n" + " pop {r1}\n" + " bx r1\n" + "\n" + ); +} + +__attribute__((naked)) +u8 DebugMenu_MeTooBackupMan() +{ + asm( + " push {lr}\n" + " bl Menu_EraseScreen\n" + " ldr r0, ._571 @ gUnknown_Debug_839C594\n" + " mov r1, #0xc\n" + " mov r2, #0x2\n" + " bl DebugMenu_8077D24\n" + " ldr r1, ._571 + 4 @ gMenuCallback\n" + " ldr r0, ._571 + 8 @ DebugMenu_8078DF0\n" + " str r0, [r1]\n" + " mov r0, #0x0\n" + " pop {r1}\n" + " bx r1\n" + "._572:\n" + " .align 2, 0\n" + "._571:\n" + " .word gUnknown_Debug_839C594\n" + " .word gMenuCallback\n" + " .word DebugMenu_8078DF0+1\n" + "\n" + ); +} + +__attribute__((naked)) +void DebugMenu_8078DF0() +{ + asm( + " push {lr}\n" + " ldr r0, ._573 @ gUnknown_Debug_839C594\n" + " bl DebugMenu_8077D78\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " pop {r1}\n" + " bx r1\n" + "._574:\n" + " .align 2, 0\n" + "._573:\n" + " .word gUnknown_Debug_839C594\n" + "\n" + ); +} + +__attribute__((naked)) +void DebugMenu_8078E04() +{ + asm( + " push {r4, r5, r6, lr}\n" + " add r6, r1, #0\n" + " add r5, r2, #0\n" + " b ._575\n" + "._577:\n" + " ldr r0, ._579 @ 0xfffff000\n" + " add r5, r5, r0\n" + " mov r0, #0x80\n" + " lsl r0, r0, #0x5\n" + " add r6, r6, r0\n" + " add r0, r4, #1\n" + "._575:\n" + " lsl r0, r0, #0x10\n" + " lsr r4, r0, #0x10\n" + " add r0, r4, #0\n" + " add r1, r6, #0\n" + " bl ProgramFlashSectorAndVerify\n" + " cmp r0, #0\n" + " bne ._576 @cond_branch\n" + " mov r0, #0x80\n" + " lsl r0, r0, #0x5\n" + " cmp r5, r0\n" + " bhi ._577 @cond_branch\n" + " mov r0, #0x1\n" + " b ._578\n" + "._580:\n" + " .align 2, 0\n" + "._579:\n" + " .word 0xfffff000\n" + "._576:\n" + " mov r0, #0x0\n" + "._578:\n" + " pop {r4, r5, r6}\n" + " pop {r1}\n" + " bx r1\n" + "\n" + ); +} + +__attribute__((naked)) +void DebugMenu_8078E40() +{ + asm( + " push {r4, r5, r6, lr}\n" + " add r4, r0, #0\n" + " add r5, r1, #0\n" + " add r6, r2, #0\n" + " lsl r4, r4, #0x18\n" + " lsr r4, r4, #0x18\n" + " bl m4aSoundVSyncOff\n" + " add r0, r4, #0\n" + " add r1, r5, #0\n" + " add r2, r6, #0\n" + " bl DebugMenu_8078E04\n" + " add r4, r0, #0\n" + " bl m4aSoundVSyncOn\n" + " add r0, r4, #0\n" + " pop {r4, r5, r6}\n" + " pop {r1}\n" + " bx r1\n" + "\n" + ); +} + +__attribute__((naked)) +void DebugMenu_8078E68() +{ + asm( + " push {r4, lr}\n" + " add r4, r1, #0\n" + " add r3, r2, #0\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " mov r1, #0x0\n" + " add r2, r4, #0\n" + " bl ReadFlash\n" + " pop {r4}\n" + " pop {r0}\n" + " bx r0\n" + "\n" + ); +} + +__attribute__((naked)) +void DebugMenu_8078E80() +{ + asm( + " push {r4, lr}\n" + " add r4, r0, #0\n" + " mov r0, #0x2\n" + " mov r1, #0xf\n" + " mov r2, #0x16\n" + " mov r3, #0x10\n" + " bl Menu_BlankWindowRect\n" + " ldr r1, ._581 @ gUnknown_Debug_839C5F4\n" + " mov r2, #0x0\n" + " ldsh r0, [r4, r2]\n" + " lsl r0, r0, #0x3\n" + " add r0, r0, r1\n" + " ldrb r1, [r0, #0x4]\n" + " mov r0, #0xd0\n" + " mov r2, #0xf\n" + " bl sub_8071F60\n" + " pop {r4}\n" + " pop {r0}\n" + " bx r0\n" + "._582:\n" + " .align 2, 0\n" + "._581:\n" + " .word gUnknown_Debug_839C5F4\n" + "\n" + ); +} + +__attribute__((naked)) +void DebugMenu_8078EB0() +{ + asm( + " push {r4, r5, lr}\n" + " add r5, r0, #0\n" + " ldr r4, ._583 @ gStringVar1\n" + " mov r0, #0x2\n" + " ldsh r1, [r5, r0]\n" + " add r0, r4, #0\n" + " mov r2, #0x1\n" + " mov r3, #0x3\n" + " bl ConvertIntToDecimalStringN\n" + " add r0, r4, #0\n" + " mov r1, #0x2\n" + " mov r2, #0x11\n" + " bl Menu_PrintText\n" + " mov r0, #0xf0\n" + " mov r1, #0x5\n" + " mov r2, #0x11\n" + " bl sub_8071F60\n" + " mov r0, #0x4\n" + " ldsh r1, [r5, r0]\n" + " add r0, r4, #0\n" + " mov r2, #0x2\n" + " mov r3, #0x2\n" + " bl ConvertIntToDecimalStringN\n" + " add r0, r4, #0\n" + " mov r1, #0x6\n" + " mov r2, #0x11\n" + " bl Menu_PrintText\n" + " mov r0, #0xf0\n" + " mov r1, #0x8\n" + " mov r2, #0x11\n" + " bl sub_8071F60\n" + " mov r0, #0x6\n" + " ldsh r1, [r5, r0]\n" + " add r0, r4, #0\n" + " mov r2, #0x2\n" + " mov r3, #0x2\n" + " bl ConvertIntToDecimalStringN\n" + " add r0, r4, #0\n" + " mov r1, #0x9\n" + " mov r2, #0x11\n" + " bl Menu_PrintText\n" + " pop {r4, r5}\n" + " pop {r0}\n" + " bx r0\n" + "._584:\n" + " .align 2, 0\n" + "._583:\n" + " .word gStringVar1\n" + "\n" + ); +} + +__attribute__((naked)) +void DebugMenu_8078F1C() +{ + asm( + " push {r4, r5, r6, lr}\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " lsl r4, r0, #0x2\n" + " add r4, r4, r0\n" + " lsl r4, r4, #0x3\n" + " ldr r6, ._585 @ gTasks\n" + " add r5, r4, r6\n" + " mov r0, #0x0\n" + " strh r0, [r5]\n" + " ldr r1, ._585 + 4 @ gSaveBlock2\n" + " ldrh r0, [r1, #0xe]\n" + " strh r0, [r5, #0x2]\n" + " ldrb r0, [r1, #0x10]\n" + " strh r0, [r5, #0x4]\n" + " ldrb r0, [r1, #0x11]\n" + " strh r0, [r5, #0x6]\n" + " bl Menu_DisplayDialogueFrame\n" + " add r0, r5, #0\n" + " bl DebugMenu_8078EB0\n" + " add r0, r5, #0\n" + " bl DebugMenu_8078E80\n" + " sub r6, r6, #0x8\n" + " add r4, r4, r6\n" + " ldr r0, ._585 + 8 @ DebugMenu_8078F68\n" + " str r0, [r4]\n" + " pop {r4, r5, r6}\n" + " pop {r0}\n" + " bx r0\n" + "._586:\n" + " .align 2, 0\n" + "._585:\n" + " .word gTasks+0x8\n" + " .word gSaveBlock2\n" + " .word DebugMenu_8078F68+1\n" + "\n" + ); +} + +__attribute__((naked)) +void DebugMenu_8078F68() +{ + asm( + " push {r4, r5, r6, lr}\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " lsl r1, r0, #0x2\n" + " add r1, r1, r0\n" + " lsl r5, r1, #0x3\n" + " ldr r6, ._589 @ gTasks\n" + " add r4, r5, r6\n" + " ldr r3, ._589 + 4 @ gMain\n" + " ldrh r1, [r3, #0x2e]\n" + " mov r0, #0x1\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " beq ._587 @cond_branch\n" + " ldr r1, ._589 + 8 @ gSaveBlock2\n" + " ldrh r0, [r4, #0x2]\n" + " strh r0, [r1, #0xe]\n" + " ldrh r0, [r4, #0x4]\n" + " strb r0, [r1, #0x10]\n" + " ldrh r0, [r4, #0x6]\n" + " strb r0, [r1, #0x11]\n" + " mov r0, #0x49\n" + " bl PlaySE\n" + " b ._588\n" + "._590:\n" + " .align 2, 0\n" + "._589:\n" + " .word gTasks+0x8\n" + " .word gMain\n" + " .word gSaveBlock2\n" + "._587:\n" + " mov r0, #0x2\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " beq ._591 @cond_branch\n" + "._588:\n" + " add r0, r6, #0\n" + " sub r0, r0, #0x8\n" + " add r0, r5, r0\n" + " ldr r1, ._593 @ DebugMenu_8079020\n" + " str r1, [r0]\n" + " b ._601\n" + "._594:\n" + " .align 2, 0\n" + "._593:\n" + " .word DebugMenu_8079020+1\n" + "._591:\n" + " mov r0, #0x20\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " beq ._595 @cond_branch\n" + " ldrh r1, [r4]\n" + " mov r2, #0x0\n" + " ldsh r0, [r4, r2]\n" + " cmp r0, #0\n" + " beq ._601 @cond_branch\n" + " sub r0, r1, #1\n" + " b ._597\n" + "._595:\n" + " mov r0, #0x10\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " beq ._598 @cond_branch\n" + " ldrh r0, [r4]\n" + " cmp r0, #0x1\n" + " bhi ._601 @cond_branch\n" + " add r0, r0, #0x1\n" + "._597:\n" + " strh r0, [r4]\n" + " add r0, r4, #0\n" + " bl DebugMenu_8078E80\n" + " b ._601\n" + "._598:\n" + " mov r0, #0x0\n" + " ldsh r2, [r4, r0]\n" + " lsl r2, r2, #0x3\n" + " ldr r0, ._602 @ gUnknown_Debug_839C5F4\n" + " add r2, r2, r0\n" + " ldrb r0, [r2, #0x5]\n" + " lsl r0, r0, #0x1\n" + " add r0, r4, r0\n" + " ldrh r1, [r2]\n" + " ldrh r2, [r2, #0x2]\n" + " ldrh r3, [r3, #0x30]\n" + " bl DebugMenu_8077DD8\n" + " cmp r0, #0x1\n" + " bne ._601 @cond_branch\n" + " add r0, r4, #0\n" + " bl DebugMenu_8078EB0\n" + "._601:\n" + " pop {r4, r5, r6}\n" + " pop {r0}\n" + " bx r0\n" + "._603:\n" + " .align 2, 0\n" + "._602:\n" + " .word gUnknown_Debug_839C5F4\n" + "\n" + ); +} + +__attribute__((naked)) +void DebugMenu_8079020() +{ + asm( + " push {r4, lr}\n" + " add r4, r0, #0\n" + " lsl r4, r4, #0x18\n" + " lsr r4, r4, #0x18\n" + " bl Menu_EraseScreen\n" + " bl ScriptContext2_Disable\n" + " add r0, r4, #0\n" + " bl DestroyTask\n" + " pop {r4}\n" + " pop {r0}\n" + " bx r0\n" + "\n" + ); +} + +__attribute__((naked)) +u8 DebugMenu_PTime() +{ + asm( + " push {lr}\n" + " bl CloseMenu\n" + " ldr r0, ._604 @ DebugMenu_8078F1C\n" + " mov r1, #0x50\n" + " bl CreateTask\n" + " bl ScriptContext2_Enable\n" + " mov r0, #0x1\n" + " pop {r1}\n" + " bx r1\n" + "._605:\n" + " .align 2, 0\n" + "._604:\n" + " .word DebugMenu_8078F1C+1\n" + "\n" + ); +} + +__attribute__((naked)) +void DebugMenu_8079058() +{ + asm( + " push {r4, r5, lr}\n" + " lsl r0, r0, #0x18\n" + " lsr r5, r0, #0x18\n" + " ldr r1, ._610 @ gTasks\n" + " lsl r0, r5, #0x2\n" + " add r0, r0, r5\n" + " lsl r0, r0, #0x3\n" + " add r4, r0, r1\n" + " mov r0, #0x8\n" + " ldsh r1, [r4, r0]\n" + " cmp r1, #0x1\n" + " beq ._606 @cond_branch\n" + " cmp r1, #0x1\n" + " bgt ._607 @cond_branch\n" + " cmp r1, #0\n" + " beq ._608 @cond_branch\n" + " b ._620\n" + "._611:\n" + " .align 2, 0\n" + "._610:\n" + " .word gTasks\n" + "._607:\n" + " cmp r1, #0x2\n" + " beq ._612 @cond_branch\n" + " b ._620\n" + "._608:\n" + " ldr r0, ._615 @ gUnknown_Debug_03004BD0\n" + " str r1, [r0]\n" + " bl Menu_DisplayDialogueFrame\n" + " b ._614\n" + "._616:\n" + " .align 2, 0\n" + "._615:\n" + " .word gUnknown_Debug_03004BD0\n" + "._606:\n" + " ldr r0, ._618 @ gDebug0x839C60C\n" + " mov r1, #0x4\n" + " mov r2, #0xf\n" + " bl Menu_PrintText\n" + " mov r0, #0x14\n" + " mov r1, #0x8\n" + " mov r2, #0x1\n" + " bl DisplayYesNoMenu\n" + "._614:\n" + " ldrh r0, [r4, #0x8]\n" + " add r0, r0, #0x1\n" + " strh r0, [r4, #0x8]\n" + " b ._620\n" + "._619:\n" + " .align 2, 0\n" + "._618:\n" + " .word gDebug0x839C60C\n" + "._612:\n" + " bl Menu_ProcessInputNoWrap_\n" + " lsl r0, r0, #0x18\n" + " asr r1, r0, #0x18\n" + " mov r0, #0x2\n" + " neg r0, r0\n" + " cmp r1, r0\n" + " beq ._620 @cond_branch\n" + " cmp r1, #0\n" + " bne ._621 @cond_branch\n" + " ldr r1, ._623 @ gUnknown_Debug_03004BD0\n" + " mov r0, #0x1\n" + " b ._622\n" + "._624:\n" + " .align 2, 0\n" + "._623:\n" + " .word gUnknown_Debug_03004BD0\n" + "._621:\n" + " ldr r1, ._625 @ gUnknown_Debug_03004BD0\n" + " mov r0, #0x0\n" + "._622:\n" + " str r0, [r1]\n" + " bl Menu_EraseScreen\n" + " bl ScriptContext2_Disable\n" + " add r0, r5, #0\n" + " bl DestroyTask\n" + "._620:\n" + " pop {r4, r5}\n" + " pop {r0}\n" + " bx r0\n" + "._626:\n" + " .align 2, 0\n" + "._625:\n" + " .word gUnknown_Debug_03004BD0\n" + "\n" + ); +} + +__attribute__((naked)) +u8 DebugMenu_OpenMurakawa() +{ + asm( + " push {lr}\n" + " bl CloseMenu\n" + " ldr r0, ._627 @ DebugMenu_8079058\n" + " mov r1, #0x50\n" + " bl CreateTask\n" + " bl ScriptContext2_Enable\n" + " mov r0, #0x1\n" + " pop {r1}\n" + " bx r1\n" + "._628:\n" + " .align 2, 0\n" + "._627:\n" + " .word DebugMenu_8079058+1\n" + "\n" + ); +} + +__attribute__((naked)) +void DebugMenu_8079110() +{ + asm( + " push {r4, r5, lr}\n" + " lsl r0, r0, #0x18\n" + " lsr r5, r0, #0x18\n" + " ldr r1, ._633 @ gTasks\n" + " lsl r0, r5, #0x2\n" + " add r0, r0, r5\n" + " lsl r0, r0, #0x3\n" + " add r4, r0, r1\n" + " mov r1, #0x8\n" + " ldsh r0, [r4, r1]\n" + " cmp r0, #0x1\n" + " beq ._629 @cond_branch\n" + " cmp r0, #0x1\n" + " bgt ._630 @cond_branch\n" + " cmp r0, #0\n" + " beq ._631 @cond_branch\n" + " b ._642\n" + "._634:\n" + " .align 2, 0\n" + "._633:\n" + " .word gTasks\n" + "._630:\n" + " cmp r0, #0x2\n" + " beq ._635 @cond_branch\n" + " b ._642\n" + "._631:\n" + " bl Menu_DisplayDialogueFrame\n" + " b ._637\n" + "._629:\n" + " ldr r0, ._639 @ Str_839C61A\n" + " mov r1, #0x2\n" + " mov r2, #0xf\n" + " bl MenuPrintMessage\n" + "._637:\n" + " ldrh r0, [r4, #0x8]\n" + " add r0, r0, #0x1\n" + " strh r0, [r4, #0x8]\n" + " b ._642\n" + "._640:\n" + " .align 2, 0\n" + "._639:\n" + " .word Str_839C61A\n" + "._635:\n" + " bl Menu_UpdateWindowText\n" + " lsl r0, r0, #0x18\n" + " cmp r0, #0\n" + " beq ._642 @cond_branch\n" + " ldr r0, ._643 @ gMain\n" + " ldrh r1, [r0, #0x2e]\n" + " mov r0, #0x1\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " beq ._642 @cond_branch\n" + " bl Menu_EraseScreen\n" + " bl ScriptContext2_Disable\n" + " add r0, r5, #0\n" + " bl DestroyTask\n" + "._642:\n" + " pop {r4, r5}\n" + " pop {r0}\n" + " bx r0\n" + "._644:\n" + " .align 2, 0\n" + "._643:\n" + " .word gMain\n" + "\n" + ); +} + +__attribute__((naked)) +u8 DebugMenu_OpenKiwa() +{ + asm( + " push {lr}\n" + " bl CloseMenu\n" + " ldr r0, ._645 @ DebugMenu_8079110\n" + " mov r1, #0x50\n" + " bl CreateTask\n" + " bl ScriptContext2_Enable\n" + " pop {r1}\n" + " bx r1\n" + "._646:\n" + " .align 2, 0\n" + "._645:\n" + " .word DebugMenu_8079110+1\n" + "\n" + ); +} + +#endif diff --git a/src/debug/taya_debug_window.c b/src/debug/taya_debug_window.c new file mode 100644 index 000000000..f7e0e3770 --- /dev/null +++ b/src/debug/taya_debug_window.c @@ -0,0 +1,6 @@ +#if DEBUG +#include "global.h" + +EWRAM_DATA u8 unk_2030224[4] = { 0 }; + +#endif diff --git a/src/debug/tomomichi_debug_menu.c b/src/debug/tomomichi_debug_menu.c new file mode 100644 index 000000000..3d4637746 --- /dev/null +++ b/src/debug/tomomichi_debug_menu.c @@ -0,0 +1,4483 @@ +#if DEBUG +#include "global.h" +#include "ewram.h" +#include "string_util.h" +#include "palette.h" +#include "data2.h" +#include "event_data.h" +#include "constants/flags.h" +#include "constants/songs.h" +#include "constants/species.h" +#include "overworld.h" +#include "script.h" +#include "menu.h" +#include "start_menu.h" +#include "main.h" +#include "contest_painting.h" +#include "sound.h" + +static u16 sPicTest_Species; +static u32 sPicTest_OTID; +static u32 sPicTest_Personality; +static u8 sPicTest_ContestType; +static u8 sPicTest_MuseumArtTitleType; +static u8 sPicTest_PreviewType; +static u8 sFlagAndVarTest_WhichSubmenu; +static u8 sPicTest_StringBuffer[13]; +static u8 sTopMenuCursorPos; +static u8 sTrickRelatedMenuCursorPos; +static u8 sControlEventsCursorPos; +static u8 sControlFlagsCursorPos; +static u8 sControlWORKCursorPos; + +static bool8 ArtMusGraphics(void); +static bool8 DummyMenuAction(void); +static bool8 ContestGraphics(void); +static bool8 ContestGraphics_Show(void); +static bool8 ControlEvents(void); +static bool8 ControlFlags(void); +static bool8 ControlWorks(void); +static bool8 MuseumGraphics_Show(void); +static bool8 PreviewData(void); +static bool8 TrickHouse(void); +static bool8 InitDebugWindow(void); +static bool8 TopMenu_HandleInput(void); +static bool8 ContestGraphics_HandleInput(void); +static bool8 ArtMusGraphics_HandleInput(void); +static bool8 PreviewData_HandleInput(void); +static bool8 TrickHouse_HandleInput(void); +static bool8 ControlEvents_HandleInput(void); +static bool8 ControlFlags_HandleInput(void); +static bool8 ControlWorks_HandleInput(void); +static bool8 ControlEvents_InitSubmenu1(void); +static bool8 ControlEvents_InitSubmenu2(void); +static bool8 ControlEvents_Events1_HandleInput(void); +static bool8 ControlEvents_Events2_HandleInput(void); +static bool8 CallScript_DoHallOfFame(void); +static bool8 CallScript_GiveCoinCaseIfNotAlreadyOwned(void); +static bool8 CallScript_SetOldaleStateAfterRoute103Rival(void); +static bool8 CallScript_OpenNewMauville(void); +static bool8 CallScript_GiveSSTicketAndDoHallOfFame(void); +static bool8 CallScript_GiveKyogreEgg(void); +static bool8 CallScript_GiveAllItems(void); +static bool8 CallScript_GiveAllDecorations(void); +static bool8 CallScript_GiveAllCoins(void); +static bool8 CallScript_OpenSootopolisGym(void); +static bool8 CallScript_SetMoneyTo0(void); +static bool8 CallScript_FillPartyWithBarboach(void); +static bool8 CallScript_FillPartyWithShroomish(void); +static bool8 CallScript_GiveBarboachEgg(void); +static bool8 CallScript_GiveShroomishEgg(void); +static bool8 debug_sub_808C280(void); +static bool8 debug_sub_808C2E4(void); +static bool8 ControlFlags_EventFlag_InitSubmenu(void); +static bool8 debug_sub_808C36C(void); +static bool8 debug_sub_808C3B0(void); +static bool8 debug_sub_808C408(void); +static bool8 debug_sub_808C460(void); +static bool8 debug_sub_808C4B8(void); +static bool8 debug_sub_808C510(void); +static bool8 debug_sub_808C568(void); +static bool8 debug_sub_808C5C0(void); +static bool8 debug_sub_808C618(void); +static bool8 debug_sub_808C670(void); +static bool8 debug_sub_808C6C8(void); +static void debug_sub_808C714(u8, u8); +static void debug_sub_808C764(u8); +static bool8 ControlFlags_VanishFlag_InitSubmenu(void); +static bool8 debug_sub_808C818(void); +static bool8 debug_sub_808C85C(void); +static bool8 debug_sub_808C8B4(void); +static bool8 debug_sub_808C90C(void); +static bool8 debug_sub_808C964(void); +static bool8 debug_sub_808C9BC(void); +static bool8 debug_sub_808CA14(void); +static bool8 debug_sub_808CA6C(void); +static bool8 debug_sub_808CAC4(void); +static bool8 debug_sub_808CB1C(void); +static bool8 debug_sub_808CB74(void); +static void debug_sub_808CBC0(u8, u8); +static void debug_sub_808CC10(u8); +static bool8 ControlFlags_TrainerFlag_InitSubmenu(void); +static bool8 debug_sub_808CCC4(void); +static bool8 debug_sub_808CD08(void); +static bool8 debug_sub_808CD60(void); +static bool8 debug_sub_808CDB8(void); +static bool8 debug_sub_808CE10(void); +static void debug_sub_808CE5C(u8, u8); +static void debug_sub_808CEAC(u8); +static bool8 ControlFlags_SysFlag_InitSubmenu(void); +static bool8 debug_sub_808CF60(void); +static bool8 debug_sub_808CFA4(void); +static bool8 debug_sub_808CFFC(void); +static bool8 debug_sub_808D054(void); +static bool8 debug_sub_808D0AC(void); +static bool8 debug_sub_808D104(void); +static bool8 debug_sub_808D15C(void); +static bool8 debug_sub_808D1B4(void); +static bool8 debug_sub_808D20C(void); +static bool8 debug_sub_808D264(void); +static bool8 debug_sub_808D2BC(void); +static void debug_sub_808D308(u8, u8); +static void debug_sub_808D358(u8); +static bool8 ControlFlags_FH_OBJ_InitSubmenu(void); +static bool8 ControlFlags_FH_OBJ_HandleInput(void); +static bool8 ControlFlags_FH_OBJ00_08_InitSubsubmenu(void); +static bool8 ControlFlags_FH_OBJ09_15_InitSubsubmenu(void); +static bool8 ControlFlags_FH_OBJ_Subsubmenu_HandleInput(void); +static void ControlFlags_FH_OBJ_FlagToggle(u8, u8); +static void ControlFlags_FH_OBJ_UpdateDisplay(u8); +static bool8 ControlFlags_FH_InitSubmenu(void); +static bool8 debug_sub_808D650(void); +static bool8 debug_sub_808D694(void); +static bool8 debug_sub_808D6EC(void); +static bool8 debug_sub_808D744(void); +static void debug_sub_808D790(u8, u8); +static void debug_sub_808D7E0(u8); +static bool8 ControlFlags_BallVanishFlag_InitSubmenu(void); +static bool8 debug_sub_808D894(void); +static bool8 debug_sub_808D8D8(void); +static bool8 debug_sub_808D930(void); +static void debug_sub_808D97C(u8, u8); +static void debug_sub_808D9CC(u8); +static bool8 ControlWorks_AnsWork_InitSubmenu(void); +static bool8 ControlWorks_AnsWork_HandleInput(void); +static void ControlWorks_AnsWork_PrintRESULT(void); +static void ControlWorks_AnsWork_AdjustRESULT(void); +static bool8 ControlWorks_SaveWork_InitSubmenu(void); +static bool8 ControlWorks_SaveWork_HandleInput(void); +static bool8 ControlWorks_SaveWork_Town_InitSubsubmenu(void); +static bool8 ControlWorks_SaveWork_City_InitSubsubmenu(void); +static bool8 ControlWorks_SaveWork_Route101To109_InitSubsubmenu(void); +static bool8 ControlWorks_SaveWork_Route110To118_InitSubsubmenu(void); +static bool8 ControlWorks_SaveWork_Route119To127_InitSubsubmenu(void); +static bool8 ControlWorks_SaveWork_Route128To134_InitSubsubmenu(void); +static bool8 ControlWorks_SaveWork_RoomTown_InitSubsubmenu(void); +static bool8 ControlWorks_SaveWork_RoomCity_InitSubsubmenu(void); +static bool8 ControlWorks_SaveWork_Dungeon_InitSubsubmenu(void); +static bool8 ControlWorks_SaveWork_Subsubmenu_HandleInput(void); +static void debug_sub_808DF04(u8); +static void debug_sub_808DF64(u8, u8); +static bool8 ControlWorks_SaveWorkPart2_InitSubmenu(void); +static bool8 ControlWorks_SaveWorkPart2_HandleInput(void); +static bool8 ControlWorks_SaveWorkPart2_SP_InitSubsubmenu(void); +static bool8 ControlWorks_SaveWorkPart2_RoomR110Part1TrickHouse_InitSubsubmenu(void); +static bool8 ControlWorks_SaveWorkPart2_RoomR110Part2_InitSubsubmenu(void); +static bool8 ControlWorks_SaveWorkPart2_RoomLoad_InitSubsubmenu(void); +static bool8 debug_sub_808E1B4(void); +static bool8 debug_sub_808E20C(void); +static bool8 debug_sub_808E264(void); +static void debug_sub_808E2B0(u8); +static void debug_sub_808E310(u8, u8); +static bool8 ControlWorks_SysWork_InitSubmenu(void); +static bool8 debug_sub_808E3BC(void); +static bool8 debug_sub_808E400(void); +static bool8 debug_sub_808E458(void); +static bool8 debug_sub_808E4B0(void); +static bool8 debug_sub_808E508(void); +static bool8 debug_sub_808E560(void); +static bool8 debug_sub_808E5B8(void); +static void debug_sub_808E604(u8, u8); +static void debug_sub_808E660(u8); +static bool8 ControlWorks_LocalWork_InitSubmenu(void); +static bool8 debug_sub_808E710(void); +static bool8 debug_sub_808E754(void); +static bool8 debug_sub_808E7AC(void); +static bool8 debug_sub_808E804(void); +static void debug_sub_808E850(u8, u8); +static void debug_sub_808E8AC(u8); +static bool8 ControlWorks_ObjWork_InitSubmenu(void); +static bool8 debug_sub_808E95C(void); +static bool8 debug_sub_808E9A0(void); +static bool8 debug_sub_808E9F8(void); +static bool8 debug_sub_808EA50(void); +static void debug_sub_808EA9C(u8); +static void debug_sub_808EAFC(u8, u8); +static bool8 TrickRelated_Level_InitSubmenu(void); +static bool8 TrickRelated_TrickMaster_InitSubmenu(void); +static bool8 debug_sub_808EC10(void); +static bool8 debug_sub_808EC5C(void); +static bool8 PreviewGraphics_Show(void); +static bool8 debug_sub_808ECD0(void); +static void PicTest_SelectPokemon(void); +static void PicTest_SelectPersonality(void); +static void ContestPicTest_SelectContestType(void); +static void MuseumArtPicTest_SelectTitleType(void); +static void PreviewPicTest_SelectType(void); +static void PicTest_Redraw(u8 a0); +static void PrepareDebugOverlayBeforeShowingContestPainting(u8 a0); +static void PrintBool(u8, u8, bool8); +static void PrintUnsignedShort(u8, u8, u16); + +extern const u8 DebugScript_081C1CFE[]; +extern const u8 DebugScript_081C1D07[]; +extern const u8 DebugScript_081C1D1E[]; +extern const u8 DebugScript_081C1D24[]; +extern const u8 DebugScript_081C1D2A[]; +extern const u8 DebugScript_081C1D35[]; +extern const u8 DebugScript_081C1D46[]; +extern const u8 DebugScript_081C221F[]; +extern const u8 DebugScript_081C23E2[]; +extern const u8 DebugScript_081C23E6[]; +extern const u8 DebugScript_081C23F6[]; +extern const u8 DebugScript_081C2482[]; +extern const u8 DebugScript_081C23FD[]; +extern const u8 DebugScript_081C2518[]; +extern const u8 DebugScript_081C2507[]; + +static const u8 sString_ContestGraphics[] = _("Contest graphics"); +static const u8 sString_ArtMuseumGraphics[] = _("Art Mus. graphics"); +static const u8 sString_PreviewData[] = _("Preview data"); +static const u8 sString_TrickHouse[] = _("TRICK HOUSE"); +static const u8 sString_ControlEvents[] = _("Control events"); +static const u8 sString_ControlFlags[] = _("Control flags"); +static const u8 sString_ControlWORK[] = _("Control WORK"); + +static const struct MenuAction sMenuActions_TopMenu[] = { + {sString_ContestGraphics, ContestGraphics}, + {sString_ArtMuseumGraphics, ArtMusGraphics}, + {sString_PreviewData, PreviewData}, + {sString_TrickHouse, TrickHouse}, + {sString_ControlEvents, ControlEvents}, + {sString_ControlFlags, ControlFlags}, + {sString_ControlWORK, ControlWorks}, +}; + +static const u8 sString_ContestMenuTitle[] = _("Contest"); + +static const u8 sString_Contest_PokemonNo[] = _("Pokémon No."); +static const u8 sString_Contest_Personality[] = _("ID rnd. digit"); +static const u8 sString_Contest_Type[] = _("Contest Type"); +static const u8 sString_Contest_PokeArt[] = _("Poké Art"); + +static const struct MenuAction sMenuActions_ContestPicTest[] = { + {sString_Contest_PokemonNo, DummyMenuAction}, + {sString_Contest_Personality, DummyMenuAction}, + {sString_Contest_Type, DummyMenuAction}, + {sString_Contest_PokeArt, ContestGraphics_Show} +}; + +static const u8 sString_Contest_ArtMuseumTitle[] = _("Art Mus."); + +static const u8 sString_Contest_ArtMuseum_PokemonNo[] = _("Pokémon No."); +static const u8 sString_Contest_ArtMuseum_Personality[] = _("ID rnd. digit"); +static const u8 sString_Contest_ArtMuseum_Type[] = _("Title Type"); +static const u8 sString_Contest_ArtMuseum_PokeArt[] = _("Poké Art"); + +static const struct MenuAction sMenuActions_ArtMuseumPicTest[] = { + {sString_Contest_ArtMuseum_PokemonNo, DummyMenuAction}, + {sString_Contest_ArtMuseum_Personality, DummyMenuAction}, + {sString_Contest_ArtMuseum_Type, DummyMenuAction}, + {sString_Contest_ArtMuseum_PokeArt, MuseumGraphics_Show} +}; + +static const u8 sString_Contest_PreviewTitle[] = _("Preview"); + +static const u8 sString_Contest_Preview_PokemonNo[] = _("Pokémon No."); +static const u8 sString_Contest_Preview_Personality[] = _("ID rnd. digit"); +static const u8 sString_Contest_Preview_Type[] = _("Type"); +static const u8 sString_Contest_Preview_PokeArt[] = _("Poké Art"); + +static const struct MenuAction sMenuActions_PreviewPicTest[] = { + {sString_Contest_Preview_PokemonNo, DummyMenuAction}, + {sString_Contest_Preview_Personality, DummyMenuAction}, + {sString_Contest_Preview_Type, DummyMenuAction}, + {sString_Contest_Preview_PokeArt, PreviewGraphics_Show} +}; + +static const u8 sString_TrickRelated[] = _("Trick related"); + +static const u8 sString_TrickRelated_Level[] = _("Level"); +static const u8 sString_TrickRelated_TrickMaster[] = _("Trick Master"); + +static const struct MenuAction sMenuActions_TrickRelated[] = { + {sString_TrickRelated_Level, TrickRelated_Level_InitSubmenu}, + {sString_TrickRelated_TrickMaster, TrickRelated_TrickMaster_InitSubmenu} +}; + +static const u8 sString_Event1[] = _("パート1"); +static const u8 sString_Event2[] = _("パート2"); + +static const struct MenuAction sMenuActions_ControlEvents[] = { + {sString_Event1, ControlEvents_InitSubmenu1}, + {sString_Event2, ControlEvents_InitSubmenu2} +}; + +static const u8 sString_EventFlag[] = _("イベントFLAG"); +static const u8 sString_VanishFlag[] = _("バニシュFLAG"); +static const u8 sString_TrainerFlag[] = _("トレーナーFLAG"); +static const u8 sString_SysFlag[] = _("SYSFLAG"); +static const u8 sString_BallVanishFlag[] = _("BALLバニシュFLAG"); +static const u8 sString_FH[] = _("FH"); +static const u8 sString_FH_OBJ[] = _("FH-OBJ"); + +static const struct MenuAction sMenuActions_ControlFlags[] = { + {sString_EventFlag, ControlFlags_EventFlag_InitSubmenu}, + {sString_VanishFlag, ControlFlags_VanishFlag_InitSubmenu}, + {sString_TrainerFlag, ControlFlags_TrainerFlag_InitSubmenu}, + {sString_SysFlag, ControlFlags_SysFlag_InitSubmenu}, + {sString_BallVanishFlag, ControlFlags_BallVanishFlag_InitSubmenu}, + {sString_FH, ControlFlags_FH_InitSubmenu}, + {sString_FH_OBJ, ControlFlags_FH_OBJ_InitSubmenu} +}; + +static const u8 sString_SaveWork[] = _("SAVEWORK"); +static const u8 sString_SysWork[] = _("SYSWORK"); +static const u8 sString_LocalWork[] = _("LOCALWORK"); +static const u8 sString_ObjWork[] = _("OBJWORK"); +static const u8 sString_AnsWork[] = _("ANSWORK"); +static const u8 sString_SaveWorkPart2[] = _("SAVEWORK パート2"); + +static const struct MenuAction sMenuActions_ControlWorks[] = { + {sString_SaveWork, ControlWorks_SaveWork_InitSubmenu}, + {sString_SysWork, ControlWorks_SysWork_InitSubmenu}, + {sString_LocalWork, ControlWorks_LocalWork_InitSubmenu}, + {sString_ObjWork, ControlWorks_ObjWork_InitSubmenu}, + {sString_AnsWork, ControlWorks_AnsWork_InitSubmenu}, + {sString_SaveWorkPart2, ControlWorks_SaveWorkPart2_InitSubmenu} +}; + +static const u8 sString_Clear_go[] = _("クリアご"); +static const u8 sString_Coin_kounyuuka[] = _("コインこうにゅうかのう"); +static const u8 sString_Oldale_supporter_set[] = _("コトキサポーターセット"); +static const u8 sString_New_Mauville_open[] = _("ニューキンセツOPEN"); +static const u8 sString_Renrakusen_ni_noreru[] = _("れんらくせんにのれる"); +static const u8 sString_Egg_tsuika[] = _("タマゴついか"); +static const u8 sString_Item_ippai[] = _("アイテムいっぱい"); +static const u8 sString_Gezzu_ippai[] = _("グッズいっぱい"); +static const u8 sString_Coin_ippai[] = _("COINいっぱい"); + +static const struct MenuAction sMenuActions_ControlEvents_Events1[] = { + {sString_Clear_go, CallScript_DoHallOfFame}, + {sString_Coin_kounyuuka, CallScript_GiveCoinCaseIfNotAlreadyOwned}, + {sString_Oldale_supporter_set, CallScript_SetOldaleStateAfterRoute103Rival}, + {sString_New_Mauville_open, CallScript_OpenNewMauville}, + {sString_Renrakusen_ni_noreru, CallScript_GiveSSTicketAndDoHallOfFame}, + {sString_Egg_tsuika, CallScript_GiveKyogreEgg}, + {sString_Item_ippai, CallScript_GiveAllItems}, + {sString_Gezzu_ippai, CallScript_GiveAllDecorations}, + {sString_Coin_ippai, CallScript_GiveAllCoins} +}; + +static const u8 sString_SootpolisGymOpen[] = _("ムロジムOPEN"); +static const u8 sString_MoneyTo0[] = _("おかねを0へ"); +static const u8 sString_BarboachFull[] = _("ドジョッチ FULL"); +static const u8 sString_ShroomishFull[] = _("キノココ FULL"); +static const u8 sString_BarboachEgg[] = _("ドジョッチ タマゴ"); +static const u8 sString_ShroomishEgg[] = _("キノココ タマゴ"); + +static const struct MenuAction sMenuActions_ControlEvents_Events2[] = { + {sString_SootpolisGymOpen, CallScript_OpenSootopolisGym}, + {sString_MoneyTo0, CallScript_SetMoneyTo0}, + {sString_BarboachFull, CallScript_FillPartyWithBarboach}, + {sString_ShroomishFull, CallScript_FillPartyWithShroomish}, + {sString_BarboachEgg, CallScript_GiveBarboachEgg}, + {sString_ShroomishEgg, CallScript_GiveShroomishEgg} +}; + +static const u8 sString_Answork_Mikansei[] = _("ANSWORK みかんせい"); + +static const struct MenuAction sMenuActions_ControlEvents_AnsWork[] = { + {sString_Answork_Mikansei, DummyMenuAction} +}; + +static const u8 sString_FH_OBJ00_08[] = _("FHーOBJ00ー08"); +static const u8 sString_FH_OBJ09_15[] = _("FHーOBJ09ー15"); + +static const struct MenuAction sMenuActions_ControlFlags_FH_OBJ[] = { + {sString_FH_OBJ00_08, ControlFlags_FH_OBJ00_08_InitSubsubmenu}, + {sString_FH_OBJ09_15, ControlFlags_FH_OBJ09_15_InitSubsubmenu} +}; + +static const u8 sString_FH_OBJ00[] = _("FHーOBJ00"); +static const u8 sString_FH_OBJ01[] = _("FHーOBJ01"); +static const u8 sString_FH_OBJ02[] = _("FHーOBJ02"); +static const u8 sString_FH_OBJ03[] = _("FHーOBJ03"); +static const u8 sString_FH_OBJ04[] = _("FHーOBJ04"); +static const u8 sString_FH_OBJ05[] = _("FHーOBJ05"); +static const u8 sString_FH_OBJ06[] = _("FHーOBJ06"); +static const u8 sString_FH_OBJ07[] = _("FHーOBJ07"); +static const u8 sString_FH_OBJ08[] = _("FHーOBJ08"); + +static const struct MenuAction sMenuActions_ControlFlags_FH_OBJ00_08[] = { + {sString_FH_OBJ00, DummyMenuAction}, + {sString_FH_OBJ01, DummyMenuAction}, + {sString_FH_OBJ02, DummyMenuAction}, + {sString_FH_OBJ03, DummyMenuAction}, + {sString_FH_OBJ04, DummyMenuAction}, + {sString_FH_OBJ05, DummyMenuAction}, + {sString_FH_OBJ06, DummyMenuAction}, + {sString_FH_OBJ07, DummyMenuAction}, + {sString_FH_OBJ08, DummyMenuAction} +}; + +static const u8 sString_FH_OBJ09[] = _("FH-OBJ09"); +static const u8 sString_FH_OBJ10[] = _("FH-OBJ10"); +static const u8 sString_FH_OBJ11[] = _("FH-OBJ11"); +static const u8 sString_FH_OBJ12[] = _("FH-OBJ12"); +static const u8 sString_FH_OBJ13[] = _("FH-OBJ13"); +static const u8 sString_FH_OBJ14[] = _("FH-OBJ14"); +static const u8 sString_FH_OBJ15[] = _("FH-OBJ15"); +static const u8 sString_Blank_083C1147[] = _(""); +static const u8 sString_Blank_083C1148[] = _(""); + +static const struct MenuAction sMenuActions_ControlFlags_FH_OBJ09_15[] = { + {sString_FH_OBJ09, DummyMenuAction}, + {sString_FH_OBJ10, DummyMenuAction}, + {sString_FH_OBJ11, DummyMenuAction}, + {sString_FH_OBJ12, DummyMenuAction}, + {sString_FH_OBJ13, DummyMenuAction}, + {sString_FH_OBJ14, DummyMenuAction}, + {sString_FH_OBJ15, DummyMenuAction}, + {sString_Blank_083C1147, DummyMenuAction}, + {sString_Blank_083C1148, DummyMenuAction} +}; + +static const u8 sControlFlags_FH_OBJ_CountsArray[] = {9, 7}; + +static const u16 sControlFlags_FH_OBJ_FlagsArrays[][9] = { + {0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19}, + {0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20} +}; + +static const u8 gUnknown_Debug_083C11BA[] = _("FH-00-08"); +static const u8 gUnknown_Debug_083C11C3[] = _("FH-09-15"); + +static const struct MenuAction gUnknown_Debug_083C11CC[] = { + {gUnknown_Debug_083C11BA, debug_sub_808D694}, + {gUnknown_Debug_083C11C3, debug_sub_808D6EC} +}; + +static const u8 gUnknown_Debug_083C11DC[] = _("FH-00"); +static const u8 gUnknown_Debug_083C11E2[] = _("FH-01"); +static const u8 gUnknown_Debug_083C11E8[] = _("FH-02"); +static const u8 gUnknown_Debug_083C11EE[] = _("FH-03"); +static const u8 gUnknown_Debug_083C11F4[] = _("FH-04"); +static const u8 gUnknown_Debug_083C11FA[] = _("FH-05"); +static const u8 gUnknown_Debug_083C1200[] = _("FH-06"); +static const u8 gUnknown_Debug_083C1206[] = _("FH-07"); +static const u8 gUnknown_Debug_083C120C[] = _("FH-08"); + +static const struct MenuAction gUnknown_Debug_083C1212[] = { + {gUnknown_Debug_083C11DC, DummyMenuAction}, + {gUnknown_Debug_083C11E2, DummyMenuAction}, + {gUnknown_Debug_083C11E8, DummyMenuAction}, + {gUnknown_Debug_083C11EE, DummyMenuAction}, + {gUnknown_Debug_083C11F4, DummyMenuAction}, + {gUnknown_Debug_083C11FA, DummyMenuAction}, + {gUnknown_Debug_083C1200, DummyMenuAction}, + {gUnknown_Debug_083C1206, DummyMenuAction}, + {gUnknown_Debug_083C120C, DummyMenuAction} +}; + +static const u8 gUnknown_Debug_083C125C[] = _("FHー09"); +static const u8 gUnknown_Debug_083C1262[] = _("FHー10"); +static const u8 gUnknown_Debug_083C1268[] = _("FHー11"); +static const u8 gUnknown_Debug_083C126E[] = _("FHー12"); +static const u8 gUnknown_Debug_083C1274[] = _("FHー13"); +static const u8 gUnknown_Debug_083C127A[] = _("FHー14"); +static const u8 gUnknown_Debug_083C1280[] = _("FHー15"); +static const u8 gUnknown_Debug_083C1286[] = _(""); +static const u8 gUnknown_Debug_083C1287[] = _(""); + +static const struct MenuAction gUnknown_Debug_083C1288[] = { + {gUnknown_Debug_083C125C, DummyMenuAction}, + {gUnknown_Debug_083C1262, DummyMenuAction}, + {gUnknown_Debug_083C1268, DummyMenuAction}, + {gUnknown_Debug_083C126E, DummyMenuAction}, + {gUnknown_Debug_083C1274, DummyMenuAction}, + {gUnknown_Debug_083C127A, DummyMenuAction}, + {gUnknown_Debug_083C1280, DummyMenuAction}, + {gUnknown_Debug_083C1286, DummyMenuAction}, + {gUnknown_Debug_083C1287, DummyMenuAction} +}; + +static const u8 gUnknown_Debug_083C12D0[] = {9, 7}; + +static const u16 gUnknown_Debug_083C12D2[][9] = { + {0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09}, + {0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10} +}; + +static const u8 gUnknown_Debug_083C12F6[] = _("BATCH"); +static const u8 gUnknown_Debug_083C12FC[] = _("タウンとうちゃく"); +static const u8 gUnknown_Debug_083C1305[] = _("シティとうちゃく"); +static const u8 gUnknown_Debug_083C130E[] = _("GET"); +static const u8 gUnknown_Debug_083C1312[] = _("そのた1"); +static const u8 gUnknown_Debug_083C1317[] = _("そのた2"); +static const u8 gUnknown_Debug_083C131C[] = _("そのた3"); +static const u8 gUnknown_Debug_083C1321[] = _("そのた4"); +static const u8 gUnknown_Debug_083C1326[] = _("そのた とうちゃく"); + +static const struct MenuAction gUnknown_Debug_083C1330[] = { + {gUnknown_Debug_083C12F6, debug_sub_808CFA4}, + {gUnknown_Debug_083C12FC, debug_sub_808CFFC}, + {gUnknown_Debug_083C1305, debug_sub_808D054}, + {gUnknown_Debug_083C130E, debug_sub_808D0AC}, + {gUnknown_Debug_083C1312, debug_sub_808D104}, + {gUnknown_Debug_083C1317, debug_sub_808D15C}, + {gUnknown_Debug_083C131C, debug_sub_808D1B4}, + {gUnknown_Debug_083C1321, debug_sub_808D20C}, + {gUnknown_Debug_083C1326, debug_sub_808D264} +}; + +static const u8 gUnknown_Debug_083C1378[] = _("BATCH01ーGET"); +static const u8 gUnknown_Debug_083C1384[] = _("BATCH02ーGET"); +static const u8 gUnknown_Debug_083C1390[] = _("BATCH03ーGET"); +static const u8 gUnknown_Debug_083C139C[] = _("BATCH04ーGET"); +static const u8 gUnknown_Debug_083C13A8[] = _("BATCH05ーGET"); +static const u8 gUnknown_Debug_083C13B4[] = _("BATCH06ーGET"); +static const u8 gUnknown_Debug_083C13C0[] = _("BATCH07ーGET"); +static const u8 gUnknown_Debug_083C13CC[] = _("BATCH08ーGET"); + +static const struct MenuAction gUnknown_Debug_083C13D8[] = { + {gUnknown_Debug_083C1378, DummyMenuAction}, + {gUnknown_Debug_083C1384, DummyMenuAction}, + {gUnknown_Debug_083C1390, DummyMenuAction}, + {gUnknown_Debug_083C139C, DummyMenuAction}, + {gUnknown_Debug_083C13A8, DummyMenuAction}, + {gUnknown_Debug_083C13B4, DummyMenuAction}, + {gUnknown_Debug_083C13C0, DummyMenuAction}, + {gUnknown_Debug_083C13CC, DummyMenuAction} +}; + +static const u8 gUnknown_Debug_083C1418[] = _("T101ARRIVE"); +static const u8 gUnknown_Debug_083C1423[] = _("T102ARRIVE"); +static const u8 gUnknown_Debug_083C142E[] = _("T103ARRIVE"); +static const u8 gUnknown_Debug_083C1439[] = _("T104ARRIVE"); +static const u8 gUnknown_Debug_083C1444[] = _("T105ARRIVE"); +static const u8 gUnknown_Debug_083C144F[] = _("T106ARRIVE"); +static const u8 gUnknown_Debug_083C145A[] = _("T107ARRIVE"); + +static const struct MenuAction gUnknown_Debug_083C1465[] = { + {gUnknown_Debug_083C1418, DummyMenuAction}, + {gUnknown_Debug_083C1423, DummyMenuAction}, + {gUnknown_Debug_083C142E, DummyMenuAction}, + {gUnknown_Debug_083C1439, DummyMenuAction}, + {gUnknown_Debug_083C1444, DummyMenuAction}, + {gUnknown_Debug_083C144F, DummyMenuAction}, + {gUnknown_Debug_083C145A, DummyMenuAction} +}; + +static const u8 gUnknown_Debug_083C14A0[] = _("C101ARRIVE"); +static const u8 gUnknown_Debug_083C14AB[] = _("C102ARRIVE"); +static const u8 gUnknown_Debug_083C14B6[] = _("C103ARRIVE"); +static const u8 gUnknown_Debug_083C14C1[] = _("C104ARRIVE"); +static const u8 gUnknown_Debug_083C14CC[] = _("C105ARRIVE"); +static const u8 gUnknown_Debug_083C14D7[] = _("C106ARRIVE"); +static const u8 gUnknown_Debug_083C14E2[] = _("C107ARRIVE"); +static const u8 gUnknown_Debug_083C14ED[] = _("C108ARRIVE"); +static const u8 gUnknown_Debug_083C14F8[] = _("C109ARRIVE"); + +static const struct MenuAction gUnknown_Debug_083C1503[] = { + {gUnknown_Debug_083C14A0, DummyMenuAction}, + {gUnknown_Debug_083C14AB, DummyMenuAction}, + {gUnknown_Debug_083C14B6, DummyMenuAction}, + {gUnknown_Debug_083C14C1, DummyMenuAction}, + {gUnknown_Debug_083C14CC, DummyMenuAction}, + {gUnknown_Debug_083C14D7, DummyMenuAction}, + {gUnknown_Debug_083C14E2, DummyMenuAction}, + {gUnknown_Debug_083C14ED, DummyMenuAction}, + {gUnknown_Debug_083C14F8, DummyMenuAction} +}; + +static const u8 gUnknown_Debug_083C154C[] = _("SYSーPOKEMONーGET"); +static const u8 gUnknown_Debug_083C155C[] = _("SYSーZUKANーGET"); +static const u8 gUnknown_Debug_083C156A[] = _("SYSーPOKEGEARーGET"); +static const u8 gUnknown_Debug_083C157B[] = _("SYSーRIBBONーGET"); + +static const struct MenuAction gUnknown_Debug_083C158A[] = { + {gUnknown_Debug_083C154C, DummyMenuAction}, + {gUnknown_Debug_083C155C, DummyMenuAction}, + {gUnknown_Debug_083C156A, DummyMenuAction}, + {gUnknown_Debug_083C157B, DummyMenuAction} +}; + +static const u8 gUnknown_Debug_083C15AC[] = _("SYSーGAMEーCLEAR"); +static const u8 gUnknown_Debug_083C15BB[] = _("SYSーKAIWAーUSED"); +static const u8 gUnknown_Debug_083C15CA[] = _("SYSーNOWーOYAJIーMEET"); +static const u8 gUnknown_Debug_083C15DD[] = _("SYSーUSEーWAZAーFLASH"); +static const u8 gUnknown_Debug_083C15F0[] = _("SYSーUSEーWAZAーKAIRIKI"); +static const u8 gUnknown_Debug_083C1605[] = _("SYSーWEATHERーCTRL"); +static const u8 gUnknown_Debug_083C1616[] = _("SYSーCYCLINGーROAD"); +static const u8 gUnknown_Debug_083C1627[] = _("SYSーSAFARIーMODE"); +static const u8 gUnknown_Debug_083C1637[] = _("SYSーCRUISEーMODE"); + +static const struct MenuAction gUnknown_Debug_083C1647[] = { + {gUnknown_Debug_083C15AC, DummyMenuAction}, + {gUnknown_Debug_083C15BB, DummyMenuAction}, + {gUnknown_Debug_083C15CA, DummyMenuAction}, + {gUnknown_Debug_083C15DD, DummyMenuAction}, + {gUnknown_Debug_083C15F0, DummyMenuAction}, + {gUnknown_Debug_083C1605, DummyMenuAction}, + {gUnknown_Debug_083C1616, DummyMenuAction}, + {gUnknown_Debug_083C1627, DummyMenuAction}, + {gUnknown_Debug_083C1637, DummyMenuAction} +}; + +static const u8 gUnknown_Debug_083C1690[] = _("SYSーTVーHOME"); +static const u8 gUnknown_Debug_083C169C[] = _("SYSーTVーWATCH"); +static const u8 gUnknown_Debug_083C16A9[] = _("SYSーTVSTART"); +static const u8 gUnknown_Debug_083C16B5[] = _("SYSーPOPWORDーINPUT"); +static const u8 gUnknown_Debug_083C16C7[] = _("SYSーMIXーRECORD"); +static const u8 gUnknown_Debug_083C16D6[] = _("SYSーCLOCKーSET"); +static const u8 gUnknown_Debug_083C16E4[] = _("SYSーCAVEーSHIP"); +static const u8 gUnknown_Debug_083C16F2[] = _("SYSーCAVEーWONDER"); +static const u8 gUnknown_Debug_083C1702[] = _("SYSーCAVEーBATTLE"); + +static const struct MenuAction gUnknown_Debug_083C1712[] = { + {gUnknown_Debug_083C1690, DummyMenuAction}, + {gUnknown_Debug_083C169C, DummyMenuAction}, + {gUnknown_Debug_083C16A9, DummyMenuAction}, + {gUnknown_Debug_083C16B5, DummyMenuAction}, + {gUnknown_Debug_083C16C7, DummyMenuAction}, + {gUnknown_Debug_083C16D6, DummyMenuAction}, + {gUnknown_Debug_083C16E4, DummyMenuAction}, + {gUnknown_Debug_083C16F2, DummyMenuAction}, + {gUnknown_Debug_083C1702, DummyMenuAction} +}; + +static const u8 gUnknown_Debug_083C175C[] = _("SYSーSPECIALーZUKAN"); +static const u8 gUnknown_Debug_083C176E[] = _("SYSーASASEーTIDE"); +static const u8 gUnknown_Debug_083C177D[] = _("SYSーRIBBONーGET"); +static const u8 gUnknown_Debug_083C178C[] = _("SYSーPASOーMAYUMI"); +static const u8 gUnknown_Debug_083C179C[] = _("SYSーEXDATAーENABLE"); +static const u8 gUnknown_Debug_083C17AE[] = _("SYSーTENJIーANAWOHORU"); +static const u8 gUnknown_Debug_083C17C2[] = _("SYSーTENJIーKAIRIKI"); +static const u8 gUnknown_Debug_083C17D4[] = _("SYSーTENJIーWAIT"); +static const u8 gUnknown_Debug_083C17E3[] = _("SYSーTENJIーSORAWOTOBU"); + +static const struct MenuAction gUnknown_Debug_083C17F8[] = { + {gUnknown_Debug_083C175C, DummyMenuAction}, + {gUnknown_Debug_083C176E, DummyMenuAction}, + {gUnknown_Debug_083C177D, DummyMenuAction}, + {gUnknown_Debug_083C178C, DummyMenuAction}, + {gUnknown_Debug_083C179C, DummyMenuAction}, + {gUnknown_Debug_083C17AE, DummyMenuAction}, + {gUnknown_Debug_083C17C2, DummyMenuAction}, + {gUnknown_Debug_083C17D4, DummyMenuAction}, + {gUnknown_Debug_083C17E3, DummyMenuAction} +}; + +static const u8 gUnknown_Debug_083C1840[] = _("SYSーENCーUPーITEM"); +static const u8 gUnknown_Debug_083C1850[] = _("SYSーENEーDOWNーITEM"); +static const u8 gUnknown_Debug_083C1862[] = _("SYSーKOKOROーEVENT"); +static const u8 gUnknown_Debug_083C1873[] = _("SYSーMOVEーPOKEーNEWS"); +static const u8 gUnknown_Debug_083C1886[] = _("SYSーASASEーITEM"); +static const u8 gUnknown_Debug_083C1895[] = _("SYSーBーDASH"); +static const u8 gUnknown_Debug_083C18A0[] = _("SYSーCTRLーOBJーDELETE"); +static const u8 gUnknown_Debug_083C18B4[] = _(""); +static const u8 gUnknown_Debug_083C18B5[] = _(""); + +static const struct MenuAction gUnknown_Debug_083C18B8[] = { + {gUnknown_Debug_083C1840, DummyMenuAction}, + {gUnknown_Debug_083C1850, DummyMenuAction}, + {gUnknown_Debug_083C1862, DummyMenuAction}, + {gUnknown_Debug_083C1873, DummyMenuAction}, + {gUnknown_Debug_083C1886, DummyMenuAction}, + {gUnknown_Debug_083C1895, DummyMenuAction}, + {gUnknown_Debug_083C18A0, DummyMenuAction}, + {gUnknown_Debug_083C18B4, DummyMenuAction}, + {gUnknown_Debug_083C18B5, DummyMenuAction} +}; + +static const u8 gUnknown_Debug_083C1900[] = _("SYSーARRIVEーSUBMARINECAVE"); +static const u8 gUnknown_Debug_083C1919[] = _("SYSーARRIVEーBATTLETOWER"); +static const u8 gUnknown_Debug_083C1930[] = _("SYSーARRIVEーISLAND"); +static const u8 gUnknown_Debug_083C1942[] = _("SYSーARRIVEーLEAGUE"); +static const u8 gUnknown_Debug_083C1954[] = _("SYSーARRIVEーSORANOHASHIRA"); +static const u8 gUnknown_Debug_083C196D[] = _(""); +static const u8 gUnknown_Debug_083C196E[] = _(""); +static const u8 gUnknown_Debug_083C196F[] = _(""); +static const u8 gUnknown_Debug_083C1970[] = _(""); + +static const struct MenuAction gDebug_0x83C1974[] = { + {gUnknown_Debug_083C1900, DummyMenuAction}, + {gUnknown_Debug_083C1919, DummyMenuAction}, + {gUnknown_Debug_083C1930, DummyMenuAction}, + {gUnknown_Debug_083C1942, DummyMenuAction}, + {gUnknown_Debug_083C1954, DummyMenuAction}, + {gUnknown_Debug_083C196D, DummyMenuAction}, + {gUnknown_Debug_083C196E, DummyMenuAction}, + {gUnknown_Debug_083C196F, DummyMenuAction}, + {gUnknown_Debug_083C1970, DummyMenuAction} +}; + +static const u8 gUnknown_Debug_083C19BC[] = {8, 7, 9, 4, 9, 9, 9, 7, 5}; + +static const u16 gUnknown_Debug_083C19C6[][9] = { + {FLAG_BADGE01_GET, FLAG_BADGE02_GET, FLAG_BADGE03_GET, FLAG_BADGE04_GET, FLAG_BADGE05_GET, FLAG_BADGE06_GET, FLAG_BADGE07_GET, FLAG_BADGE08_GET}, + {FLAG_VISITED_LITTLEROOT_TOWN, FLAG_VISITED_OLDALE_TOWN, FLAG_VISITED_DEWFORD_TOWN, FLAG_VISITED_LAVARIDGE_TOWN, FLAG_VISITED_FALLARBOR_TOWN, FLAG_VISITED_VERDANTURF_TOWN, FLAG_VISITED_PACIFIDLOG_TOWN}, + {FLAG_VISITED_PETALBURG_CITY, FLAG_VISITED_SLATEPORT_CITY, FLAG_VISITED_MAUVILLE_CITY, FLAG_VISITED_RUSTBORO_CITY, FLAG_VISITED_FORTREE_CITY, FLAG_VISITED_LILYCOVE_CITY, FLAG_VISITED_MOSSDEEP_CITY, FLAG_VISITED_SOOTOPOLIS_CITY, FLAG_VISITED_EVER_GRANDE_CITY}, + {FLAG_SYS_POKEMON_GET, FLAG_SYS_POKEDEX_GET, FLAG_SYS_POKENAV_GET, FLAG_SYS_RIBBON_GET}, + {FLAG_SYS_GAME_CLEAR, FLAG_SYS_CHAT_USED, FLAG_SYS_HIPSTER_MEET, FLAG_SYS_USE_FLASH, FLAG_SYS_USE_STRENGTH, FLAG_SYS_WEATHER_CTRL, FLAG_SYS_CYCLING_ROAD, FLAG_SYS_SAFARI_MODE, FLAG_SYS_CRUISE_MODE}, + {FLAG_SYS_TV_HOME, FLAG_SYS_TV_WATCH, FLAG_SYS_TV_START, FLAG_SYS_POPWORD_INPUT, FLAG_SYS_MIX_RECORD, FLAG_SYS_CLOCK_SET, FLAG_SYS_CAVE_SHIP, FLAG_SYS_CAVE_WONDER, FLAG_SYS_CAVE_BATTLE}, + {FLAG_SYS_NATIONAL_DEX, FLAG_SYS_SHOAL_TIDE, FLAG_SYS_RIBBON_GET, FLAG_SYS_PC_LANETTE, FLAG_SYS_EXDATA_ENABLE, FLAG_SYS_BRAILLE_DIG, FLAG_SYS_BRAILLE_STRENGTH, FLAG_SYS_BRAILLE_WAIT, FLAG_SYS_BRAILLE_FLY}, + {FLAG_SYS_ENC_UP_ITEM, FLAG_SYS_ENC_DOWN_ITEM, FLAG_SYS_HAS_EON_TICKET, FLAG_SYS_TV_LATI, FLAG_SYS_SHOAL_ITEM, FLAG_SYS_B_DASH, FLAG_SYS_CTRL_OBJ_DELETE}, + {FLAG_LANDMARK_SEAFLOOR_CAVERN, FLAG_LANDMARK_BATTLE_TOWER, FLAG_LANDMARK_SOUTHERN_ISLAND, FLAG_SYS_POKEMON_LEAGUE_FLY, FLAG_LANDMARK_SKY_PILLAR} +}; + +static const u8 gDebug_0x83C1A68[] = _("FVーBALL パート1"); + +static const struct MenuAction gUnknown_Debug_083C1A78[] = { + {gDebug_0x83C1A68, debug_sub_808D8D8} +}; + +static const u8 gUnknown_Debug_083C1A80[] = _("FVーBALL1ー78"); +static const u8 gUnknown_Debug_083C1A8C[] = _("FVーBALL1ー133"); + +static const struct MenuAction gUnknown_Debug_083C1A9C[] = { + {gUnknown_Debug_083C1A80, DummyMenuAction}, + {gUnknown_Debug_083C1A8C, DummyMenuAction} +}; + +static const u8 gUnknown_Debug_083C1AAC[] = {2}; + +static const u16 gUnknown_Debug_083C1AAE[][9] = { + {FLAG_ITEM_ABANDONED_SHIP_HIDDEN_FLOOR_ROOMS_2, FLAG_ITEM_MOSSDEEP_STEVENS_HOUSE_1} +}; + +static const u8 gUnknown_Debug_083C1AC0[] = _("ジムリーダー"); +static const u8 gUnknown_Debug_083C1AC7[] = _("してんのう"); +static const u8 gUnknown_Debug_083C1ACD[] = _("みつる/Champロード"); + +static const struct MenuAction gUnknown_Debug_083C1ADC[] = { + {gUnknown_Debug_083C1AC0, debug_sub_808CD08}, + {gUnknown_Debug_083C1AC7, debug_sub_808CD60}, + {gUnknown_Debug_083C1ACD, debug_sub_808CDB8} +}; + +static const u8 gUnknown_Debug_083C1AF4[] = _("FTーGYMー01ーLEADER"); +static const u8 gUnknown_Debug_083C1B05[] = _("FTーGYMー02ーLEADER"); +static const u8 gUnknown_Debug_083C1B16[] = _("FTーGYMー03ーLEADER"); +static const u8 gUnknown_Debug_083C1B27[] = _("FTーGYMー04ーLEADER"); +static const u8 gUnknown_Debug_083C1B38[] = _("FTーGYMー05ーLEADER"); +static const u8 gUnknown_Debug_083C1B49[] = _("FTーGYMー06ーLEADER"); +static const u8 gUnknown_Debug_083C1B5A[] = _("FTーGYMー07ーLEADER"); +static const u8 gUnknown_Debug_083C1B6B[] = _("FTーGYMー08ーLEADER"); + +static const struct MenuAction gUnknown_Debug_083C1B7C[] = { + {gUnknown_Debug_083C1AF4, DummyMenuAction}, + {gUnknown_Debug_083C1B05, DummyMenuAction}, + {gUnknown_Debug_083C1B16, DummyMenuAction}, + {gUnknown_Debug_083C1B27, DummyMenuAction}, + {gUnknown_Debug_083C1B38, DummyMenuAction}, + {gUnknown_Debug_083C1B49, DummyMenuAction}, + {gUnknown_Debug_083C1B5A, DummyMenuAction}, + {gUnknown_Debug_083C1B6B, DummyMenuAction} +}; + +static const u8 gUnknown_Debug_083C1BBC[] = _("FTーSHITENー01"); +static const u8 gUnknown_Debug_083C1BC9[] = _("FTーSHITENー02"); +static const u8 gUnknown_Debug_083C1BD6[] = _("FTーSHITENー03"); +static const u8 gUnknown_Debug_083C1BE3[] = _("FTーSHITENー04"); + +static const struct MenuAction gUnknown_Debug_083C1BF0[] = { + {gUnknown_Debug_083C1BBC, DummyMenuAction}, + {gUnknown_Debug_083C1BC9, DummyMenuAction}, + {gUnknown_Debug_083C1BD6, DummyMenuAction}, + {gUnknown_Debug_083C1BE3, DummyMenuAction} +}; + +static const u8 gUnknown_Debug_083C1C10[] = _("FTーMITSURUー01ーCAVEーD1301"); + +static const struct MenuAction gUnknown_Debug_083C1C2C[] = { + {gUnknown_Debug_083C1C10, DummyMenuAction} +}; + +static const u8 gUnknown_Debug_083C1C34[] = {8, 4, 1}; +static const u16 gUnknown_Debug_083C1C38[][9] = { + {FLAG_DEFEATED_RUSTBORO_GYM, FLAG_DEFEATED_DEWFORD_GYM, FLAG_DEFEATED_MAUVILLE_GYM, FLAG_DEFEATED_LAVARIDGE_GYM, FLAG_DEFEATED_PETALBURG_GYM, FLAG_DEFEATED_FORTREE_GYM, FLAG_DEFEATED_MOSSDEEP_GYM, FLAG_DEFEATED_SOOTOPOLIS_GYM}, + {FLAG_DEFEATED_ELITE_4_SYDNEY, FLAG_DEFEATED_ELITE_4_PHOEBE, FLAG_DEFEATED_ELITE_4_GLACIA, FLAG_DEFEATED_ELITE_4_DRAKE}, + {0x04E1} +}; + +static const u8 gUnknown_Debug_083C1C6E[] = _("120/119ばんどうろカクレオン"); +static const u8 gUnknown_Debug_083C1C80[] = _("そのた1 / SUPPORTM/W"); +static const u8 gUnknown_Debug_083C1C92[] = _("ODAMAKI/FIGHTER1"); +static const u8 gUnknown_Debug_083C1CA3[] = _("MITSURU/TENKI"); +static const u8 gUnknown_Debug_083C1CB1[] = _("そのた2 /DAIGO"); +static const u8 gUnknown_Debug_083C1CBD[] = _("POKE/POKEMON"); +static const u8 gUnknown_Debug_083C1CCA[] = _("MAMA/SUPPORT02"); +static const u8 gUnknown_Debug_083C1CD9[] = _("HAGI"); +static const u8 gUnknown_Debug_083C1CDE[] = _("SUPPORT01"); + +static const struct MenuAction gUnknown_Debug_083C1CE8[] = { + {gUnknown_Debug_083C1C6E, debug_sub_808C85C}, + {gUnknown_Debug_083C1C80, debug_sub_808C8B4}, + {gUnknown_Debug_083C1C92, debug_sub_808C90C}, + {gUnknown_Debug_083C1CA3, debug_sub_808C964}, + {gUnknown_Debug_083C1CB1, debug_sub_808C9BC}, + {gUnknown_Debug_083C1CBD, debug_sub_808CA14}, + {gUnknown_Debug_083C1CCA, debug_sub_808CA6C}, + {gUnknown_Debug_083C1CD9, debug_sub_808CAC4}, + {gUnknown_Debug_083C1CDE, debug_sub_808CB1C} +}; + +static const u8 gUnknown_Debug_083C1D30[] = _("FVーKAKUREONBー01ーFIELDーR120"); +static const u8 gUnknown_Debug_083C1D4B[] = _("FVーKAKUREー01ーFIELDーR120"); +static const u8 gUnknown_Debug_083C1D63[] = _("FVーKAKUREー02ーFIELDーR120"); +static const u8 gUnknown_Debug_083C1D7B[] = _("FVーKAKUREー03ーFIELDーR120"); +static const u8 gUnknown_Debug_083C1D93[] = _("FVーKAKUREー04ーFIELDーR120"); +static const u8 gUnknown_Debug_083C1DAB[] = _("FVーKAKUREー05ーFIELDーR120"); +static const u8 gUnknown_Debug_083C1DC3[] = _("FVーKAKUREー06ーFIELDーR120"); +static const u8 gUnknown_Debug_083C1DDB[] = _("FVーKAKUREー01ーFIELDーR119"); +static const u8 gUnknown_Debug_083C1DF3[] = _("FVーKAKUREー02ーFIELDーR119"); + +static const struct MenuAction gUnknown_Debug_083C1E0C[] = { + {gUnknown_Debug_083C1D30, DummyMenuAction}, + {gUnknown_Debug_083C1D4B, DummyMenuAction}, + {gUnknown_Debug_083C1D63, DummyMenuAction}, + {gUnknown_Debug_083C1D7B, DummyMenuAction}, + {gUnknown_Debug_083C1D93, DummyMenuAction}, + {gUnknown_Debug_083C1DAB, DummyMenuAction}, + {gUnknown_Debug_083C1DC3, DummyMenuAction}, + {gUnknown_Debug_083C1DDB, DummyMenuAction}, + {gUnknown_Debug_083C1DF3, DummyMenuAction} +}; + +static const u8 gUnknown_Debug_083C1E54[] = _("FVーBALLー01ーC107ーR0501"); +static const u8 gUnknown_Debug_083C1E6A[] = _("FVーWORKERM1ー04ーFIELDーC104"); +static const u8 gUnknown_Debug_083C1E84[] = _("FVーSUBMARINEー06ーCAVEーD1101"); +static const u8 gUnknown_Debug_083C1E9F[] = _("FVーGUESTーALLーC106ーR0102"); +static const u8 gUnknown_Debug_083C1EB7[] = _("FVーHORIDASIー01ーC106ーR1106"); +static const u8 gUnknown_Debug_083C1ED1[] = _("FVーMIDDLEM1ー01ーR110ーR0101"); +static const u8 gUnknown_Debug_083C1EEB[] = _("FVーFUNEー01ーC102ーR0601"); +static const u8 gUnknown_Debug_083C1F01[] = _("FVーSUPPORTWー01ーT101ーR0202"); +static const u8 gUnknown_Debug_083C1F1B[] = _("FVーSUPPORTMー01ーT101ーR0102"); + +static const struct MenuAction gUnknown_Debug_083C1F38[] = { + {gUnknown_Debug_083C1E54, DummyMenuAction}, + {gUnknown_Debug_083C1E6A, DummyMenuAction}, + {gUnknown_Debug_083C1E84, DummyMenuAction}, + {gUnknown_Debug_083C1E9F, DummyMenuAction}, + {gUnknown_Debug_083C1EB7, DummyMenuAction}, + {gUnknown_Debug_083C1ED1, DummyMenuAction}, + {gUnknown_Debug_083C1EEB, DummyMenuAction}, + {gUnknown_Debug_083C1F01, DummyMenuAction}, + {gUnknown_Debug_083C1F1B, DummyMenuAction} +}; + +static const u8 gUnknown_Debug_083C1F80[] = _("FVーODAMAKIー01ーFIELDーR101"); +static const u8 gUnknown_Debug_083C1F99[] = _("FVーODAMAKIー01ーT101ーR0301"); +static const u8 gUnknown_Debug_083C1FB2[] = _("FVーODAMAKIーHYOKAーT101ーR0301"); +static const u8 gUnknown_Debug_083C1FCE[] = _("FVーODAMAKIーHYOKAーFIELDーR101"); +static const u8 gUnknown_Debug_083C1FEA[] = _("FVーODAMAKIーHYOKAーFIELDーR103"); +static const u8 gUnknown_Debug_083C2006[] = _("FVーODAMAKIー01ーC109ーR0105"); +static const u8 gUnknown_Debug_083C201F[] = _("FVーFIGHTERー01ーCAVEーD0201"); +static const u8 gUnknown_Debug_083C2038[] = _("FVーFIGHTERー01ーT106ーR0201"); +static const u8 gUnknown_Debug_083C2051[] = _("FVーFIGHTERー01ーFIELDーR116"); + +static const struct MenuAction gUnknown_Debug_083C206C[] = { + {gUnknown_Debug_083C1F80, DummyMenuAction}, + {gUnknown_Debug_083C1F99, DummyMenuAction}, + {gUnknown_Debug_083C1FB2, DummyMenuAction}, + {gUnknown_Debug_083C1FCE, DummyMenuAction}, + {gUnknown_Debug_083C1FEA, DummyMenuAction}, + {gUnknown_Debug_083C2006, DummyMenuAction}, + {gUnknown_Debug_083C201F, DummyMenuAction}, + {gUnknown_Debug_083C2038, DummyMenuAction}, + {gUnknown_Debug_083C2051, DummyMenuAction} +}; + +static const u8 gUnknown_Debug_083C20B4[] = _("FVーMITSURUー01ーFIELDーC101"); +static const u8 gUnknown_Debug_083C20CD[] = _("FVーMITSURUー02ーCAVEーD1301"); +static const u8 gUnknown_Debug_083C20E6[] = _("FVーMITSURUー01ーFIELDーC103"); +static const u8 gUnknown_Debug_083C20FF[] = _("FVーMITSURUー01ーT106ーR0201"); +static const u8 gUnknown_Debug_083C2118[] = _("FVーMITSURUー01ーCAVEーD1301"); +static const u8 gUnknown_Debug_083C2131[] = _("FVーMITSURUー01ーC101ーR0201"); +static const u8 gUnknown_Debug_083C214A[] = _("FVーMITSURUー01ーFIELDーR102"); +static const u8 gUnknown_Debug_083C2163[] = _("FVーTENKIー01ーR119ーR101"); +static const u8 gUnknown_Debug_083C2179[] = _("FVーTENKIー01ーR119ーR102"); + +static const struct MenuAction gUnknown_Debug_083C2190[] = { + {gUnknown_Debug_083C20B4, DummyMenuAction}, + {gUnknown_Debug_083C20CD, DummyMenuAction}, + {gUnknown_Debug_083C20E6, DummyMenuAction}, + {gUnknown_Debug_083C20FF, DummyMenuAction}, + {gUnknown_Debug_083C2118, DummyMenuAction}, + {gUnknown_Debug_083C2131, DummyMenuAction}, + {gUnknown_Debug_083C214A, DummyMenuAction}, + {gUnknown_Debug_083C2163, DummyMenuAction}, + {gUnknown_Debug_083C2179, DummyMenuAction} +}; + +static const u8 gUnknown_Debug_083C21D8[] = _("FVーDAIGOー01ーCAVEーD0504"); +static const u8 gUnknown_Debug_083C21EF[] = _("FVーDAIGOー01ーFIELDーR128"); +static const u8 gUnknown_Debug_083C2206[] = _("FVーDAIGOー01ーFIELDーR118"); +static const u8 gUnknown_Debug_083C221D[] = _("FVーDAIGOー01ーC107ーR0501"); +static const u8 gUnknown_Debug_083C2234[] = _("FVーDAIGOー01ーFIELDーR120"); +static const u8 gUnknown_Debug_083C224B[] = _("FVーDAIGOー01ーFIELDーR108"); + +static const struct MenuAction gUnknown_Debug_083C2264[] = { + {gUnknown_Debug_083C21D8, DummyMenuAction}, + {gUnknown_Debug_083C21EF, DummyMenuAction}, + {gUnknown_Debug_083C2206, DummyMenuAction}, + {gUnknown_Debug_083C221D, DummyMenuAction}, + {gUnknown_Debug_083C2234, DummyMenuAction}, + {gUnknown_Debug_083C224B, DummyMenuAction} +}; + +static const u8 gUnknown_Debug_083C2294[] = _("FVーPOKE1ー02ーCAVEーD1111"); +static const u8 gUnknown_Debug_083C22AB[] = _("FVーPOKE1ー01ーCAVEーD0601"); +static const u8 gUnknown_Debug_083C22C2[] = _("FVーPOKE1ー02ーCAVEーD0601"); +static const u8 gUnknown_Debug_083C22D9[] = _("FVーPOKE1ー01ーFIELDーR101"); +static const u8 gUnknown_Debug_083C22F0[] = _("FVーPOKE1ー01ーOPENINGーROOM01"); +static const u8 gUnknown_Debug_083C230B[] = _("FVーPOKE1ー02ーOPENINGーROOM01"); +static const u8 gUnknown_Debug_083C2326[] = _("FVーPOKE1ー01ーCAVEーD2308"); +static const u8 gUnknown_Debug_083C233D[] = _("FVーPOKEMONー01ーCAVEーD0201"); +static const u8 gUnknown_Debug_083C2356[] = _("FVーPOKEMONー01ーR104ーR0101"); + +static const struct MenuAction gUnknown_Debug_083C2370[] = { + {gUnknown_Debug_083C2294, DummyMenuAction}, + {gUnknown_Debug_083C22AB, DummyMenuAction}, + {gUnknown_Debug_083C22C2, DummyMenuAction}, + {gUnknown_Debug_083C22D9, DummyMenuAction}, + {gUnknown_Debug_083C22F0, DummyMenuAction}, + {gUnknown_Debug_083C230B, DummyMenuAction}, + {gUnknown_Debug_083C2326, DummyMenuAction}, + {gUnknown_Debug_083C233D, DummyMenuAction}, + {gUnknown_Debug_083C2356, DummyMenuAction} +}; + +static const u8 gUnknown_Debug_083C23B8[] = _("FVーMAMAー01ーFIELDーT101"); +static const u8 gUnknown_Debug_083C23CE[] = _("FVーMAMAー01ーOPENINGーROOM02"); +static const u8 gUnknown_Debug_083C23E8[] = _("FVーMAMAー01ーT101ーR0101"); +static const u8 gUnknown_Debug_083C23FE[] = _("FVーMAMAー01ーT101ーR0201"); +static const u8 gUnknown_Debug_083C2414[] = _("FVーMAMAー02ーT101ーR0101"); +static const u8 gUnknown_Debug_083C242A[] = _("FVーMAMAー02ーT101ーR0201"); +static const u8 gUnknown_Debug_083C2440[] = _("FVーSUPPORTー02ーFIELDーR110"); +static const u8 gUnknown_Debug_083C2459[] = _("FVーSUPPORTー02ーFIELDーR119"); +static const u8 gUnknown_Debug_083C2472[] = _("FVーSUPPORTー02ーFIELDーT104"); + +static const struct MenuAction gUnknown_Debug_083C248C[] = { + {gUnknown_Debug_083C23B8, DummyMenuAction}, + {gUnknown_Debug_083C23CE, DummyMenuAction}, + {gUnknown_Debug_083C23E8, DummyMenuAction}, + {gUnknown_Debug_083C23FE, DummyMenuAction}, + {gUnknown_Debug_083C2414, DummyMenuAction}, + {gUnknown_Debug_083C242A, DummyMenuAction}, + {gUnknown_Debug_083C2440, DummyMenuAction}, + {gUnknown_Debug_083C2459, DummyMenuAction}, + {gUnknown_Debug_083C2472, DummyMenuAction} +}; + +static const u8 gUnknown_Debug_083C24D4[] = _("FVーHAGIー01ーFIELDーR104"); +static const u8 gUnknown_Debug_083C24EA[] = _("FVーHAGIー01ーR104ーR0101"); +static const u8 gUnknown_Debug_083C2500[] = _("FVーHAGIー01ーFIELDーT103"); +static const u8 gUnknown_Debug_083C2516[] = _("FVーHAGIー01ーFIELDーR109"); +static const u8 gUnknown_Debug_083C252C[] = _("FVーHAGIー01ーC102ーR0601"); +static const u8 gUnknown_Debug_083C2542[] = _("FVーHAGIー01ーC102ーR0101"); +static const u8 gUnknown_Debug_083C2558[] = _("FVーHAGIー01ーCAVEーD0201"); +static const u8 gUnknown_Debug_083C256E[] = _("FVーHAGIー01ーFIELDーR116"); +static const u8 gUnknown_Debug_083C2584[] = _("FVーHAGIー01ーSPーSHIP01"); + +static const struct MenuAction gUnknown_Debug_083C259C[] = { + {gUnknown_Debug_083C24D4, DummyMenuAction}, + {gUnknown_Debug_083C24EA, DummyMenuAction}, + {gUnknown_Debug_083C2500, DummyMenuAction}, + {gUnknown_Debug_083C2516, DummyMenuAction}, + {gUnknown_Debug_083C252C, DummyMenuAction}, + {gUnknown_Debug_083C2542, DummyMenuAction}, + {gUnknown_Debug_083C2558, DummyMenuAction}, + {gUnknown_Debug_083C256E, DummyMenuAction}, + {gUnknown_Debug_083C2584, DummyMenuAction} +}; + +static const u8 gUnknown_Debug_083C25E4[] = _("FVーSUPPORTー01ーT101ーR0301"); +static const u8 gUnknown_Debug_083C25FD[] = _("FVーSUPPORTー01ーC109ーR0105"); +static const u8 gUnknown_Debug_083C2616[] = _("FVーSUPPORTー01ーFIELDーC104"); +static const u8 gUnknown_Debug_083C262F[] = _("FVーSUPPORTー01ーFIELDーC106"); +static const u8 gUnknown_Debug_083C2648[] = _("FVーSUPPORTー01ーFIELDーR103"); +static const u8 gUnknown_Debug_083C2661[] = _("FVーSUPPORTー01ーFIELDーR110"); +static const u8 gUnknown_Debug_083C267A[] = _("FVーSUPPORTー01ーFIELDーR119"); +static const u8 gUnknown_Debug_083C2693[] = _("FVーSUPPORTー01ーFIELDーT104"); +static const u8 gUnknown_Debug_083C26AC[] = _("FVーSUPPORTー01ーFIELDーT102"); + +static const struct MenuAction gUnknown_Debug_083C26C8[] = { + {gUnknown_Debug_083C25E4, DummyMenuAction}, + {gUnknown_Debug_083C25FD, DummyMenuAction}, + {gUnknown_Debug_083C2616, DummyMenuAction}, + {gUnknown_Debug_083C262F, DummyMenuAction}, + {gUnknown_Debug_083C2648, DummyMenuAction}, + {gUnknown_Debug_083C2661, DummyMenuAction}, + {gUnknown_Debug_083C267A, DummyMenuAction}, + {gUnknown_Debug_083C2693, DummyMenuAction}, + {gUnknown_Debug_083C26AC, DummyMenuAction} +}; + +static const u8 gUnknown_Debug_083C2710[] = {9, 9, 9, 9, 6, 9, 9, 9, 9}; + +static const u16 gUnknown_Debug_083C271A[][9] = { + {FLAG_HIDE_KECLEON_ROUTE120_2, FLAG_HIDE_KECLEON_ROUTE120_1, FLAG_HIDE_KECLEON_ROUTE120_3, FLAG_HIDE_KECLEON_ROUTE120_4, FLAG_HIDE_KECLEON_ROUTE120_5, FLAG_HIDE_KECLEON_ROUTE120_6, FLAG_HIDE_KECLEON_ROUTE120_7, FLAG_HIDE_KECLEON_ROUTE119_1, FLAG_HIDE_KECLEON_ROUTE119_2}, + {FLAG_HIDE_BELDUM_BALL_STEVENS_HOUSE, FLAG_HIDE_DEVON_RUSTBORO, FLAG_HIDE_UNDERWATER_SUBMARINE_INTERACTION, FLAG_HIDE_LILYCOVE_MOTEL_PEOPLE, FLAG_HIDE_ROOFTOP_LADY_LILYCOVE_MART, FLAG_HIDE_TRICKMASTER_ENTRANCE, 0x352, FLAG_HIDE_MAY_UPSTAIRS, FLAG_HIDE_BRENDAN_UPSTAIRS}, + {FLAG_HIDE_BIRCH_BATTLE_POOCHYENA, FLAG_HIDE_BIRCH_IN_LAB, FLAG_UNKNOWN_BIRCH_380, FLAG_HIDE_BIRCH_ROUTE101, FLAG_HIDE_BIRCH_ROUTE103, FLAG_HIDE_BIRCH_CHAMPIONS_ROOM, FLAG_HIDE_BOYFRIEND_RUSTURF_TUNNEL, FLAG_HIDE_BOYFRIEND_WANDAS_HOUSE, FLAG_HIDE_TUNNER_DIGGER_ROUTE116}, + {FLAG_HIDE_WALLY_PETALBURG, FLAG_HIDE_WALLY_DEFEATED_VICTORY_ROAD, FLAG_HIDE_WALLY_MAUVILLE, FLAG_HIDE_WALLY_WANDAS_HOUSE, FLAG_HIDE_WALLY_BATTLE_VICTORY_ROAD, FLAG_HIDE_WALLY_PETALBURG_GYM, FLAG_UNKNOWN_363, FLAG_HIDE_WEATHER_INSTITUTE_WORKERS_1F, FLAG_HIDE_WEATHER_INSTITUTE_WORKERS_2F}, + {FLAG_HIDE_STEVEN_GRANITE_CAVE, FLAG_HIDE_STEVEN_ROUTE128, FLAG_HIDE_STEVEN_ROUTE118, FLAG_HIDE_STEVEN_STEVENS_HOUSE, FLAG_HIDE_STEVEN_ROUTE120, FLAG_HIDE_STEVEN_SOOTOPOLIS}, + {FLAG_HIDE_SLEEPING_MON_SEAFLOOR_CAVERN, FLAG_UNKNOWN_2E1, FLAG_UNKNOWN_2EC, FLAG_HIDE_POOCHYENA_ROUTE101, FLAG_HIDE_MACHOKE_MOVER_1, FLAG_HIDE_MACHOKE_MOVER_2, 0x305, FLAG_HIDE_PEEKO_RUSTURF_TUNNEL, FLAG_HIDE_PEEKO_BRINEY_HOUSE}, + {FLAG_HIDE_MOM_LITTLEROOT, FLAG_HIDE_MOM_UPSTAIRS, FLAG_HIDE_BRENDAN_MOM_DOWNSTAIRS, FLAG_HIDE_MAY_MOM_DOWNSTAIRS, FLAG_UNKNOWN_30E, FLAG_UNKNOWN_30F, FLAG_HIDE_RIVAL_ON_BIKE_ROUTE110, FLAG_HIDE_RIVAL_ROUTE119_ON_BIKE, FLAG_HIDE_RIVAL_LAVARIDGE_2}, + {FLAG_HIDE_MR_BRINEY_ROUTE104, FLAG_HIDE_MR_BRINEY_ROUTE104_HOUSE, FLAG_HIDE_MR_BRINEY_DEWFORD_TOWN, FLAG_HIDE_MR_BRINEY_ROUTE109, FLAG_UNKNOWN_34F, FLAG_HIDE_BRINEY_SLATEPORT_SHIPYARD, FLAG_HIDE_BRINEY_RUSTURF_TUNNEL, FLAG_HIDE_BRINEY_ROUTE116, FLAG_HIDE_BRINEY_AND_PEEKO_SS_TIDAL}, + {FLAG_HIDE_RIVAL_BIRCH_LAB, FLAG_HIDE_RIVAL_CHAMPIONS_ROOM, FLAG_HIDE_RIVAL_RUSTBORO, FLAG_HIDE_RIVAL_LILYCOVE_MART, FLAG_HIDE_RIVAL_ROUTE103, FLAG_HIDE_RIVAL_ROUTE110, FLAG_HIDE_RIVAL_ROUTE119, FLAG_HIDE_RIVAL_LAVARIDGE_1, FLAG_HIDE_RIVAL_OLDALE_TOWN} +}; + +static const u8 gUnknown_Debug_083C27BC[] = _("FEひでんわざ/デボンかんれん"); +static const u8 gUnknown_Debug_083C27CC[] = _("FEだいじなアイテムPART1"); +static const u8 gUnknown_Debug_083C27DC[] = _("そのた1"); +static const u8 gUnknown_Debug_083C27E1[] = _("MITSURU/DOOR"); +static const u8 gUnknown_Debug_083C27EE[] = _("カラクリやしき10のやじるし/GYM07"); +static const u8 gUnknown_Debug_083C2803[] = _("SUPPORT/そのた4"); +static const u8 gUnknown_Debug_083C2810[] = _("DAISUKI/そのた5"); +static const u8 gUnknown_Debug_083C281D[] = _("そのた2"); +static const u8 gUnknown_Debug_083C2822[] = _("そのた6"); + +static const struct MenuAction gUnknown_Debug_083C2828[] = { + {gUnknown_Debug_083C27BC, debug_sub_808C3B0}, + {gUnknown_Debug_083C27CC, debug_sub_808C408}, + {gUnknown_Debug_083C27DC, debug_sub_808C460}, + {gUnknown_Debug_083C27E1, debug_sub_808C4B8}, + {gUnknown_Debug_083C27EE, debug_sub_808C510}, + {gUnknown_Debug_083C2803, debug_sub_808C568}, + {gUnknown_Debug_083C2810, debug_sub_808C5C0}, + {gUnknown_Debug_083C281D, debug_sub_808C618}, + {gUnknown_Debug_083C2822, debug_sub_808C670} +}; + +static const u8 gUnknown_Debug_083C2870[] = _("FEーHWAZA01ーGET"); +static const u8 gUnknown_Debug_083C287F[] = _("FEーHWAZA02ー01ーFIELDR119"); +static const u8 gUnknown_Debug_083C2897[] = _("FEーHWAZA03ーGET"); +static const u8 gUnknown_Debug_083C28A6[] = _("FEーHWAZA04ー01ーT106ーR0201"); +static const u8 gUnknown_Debug_083C28BF[] = _("FEーHWAZA05ー01ーCAVEーD0502"); +static const u8 gUnknown_Debug_083C28D8[] = _("FEーHWAZA04ー01ーC103ーR0301"); +static const u8 gUnknown_Debug_083C28F1[] = _("FEーDEBONーNIMOTSUーRETURN"); +static const u8 gUnknown_Debug_083C2909[] = _("FEーDEBONー01ーFIELDーC104"); +static const u8 gUnknown_Debug_083C2920[] = _("FEーDEBONー02ーFIELDーC104"); + +static const struct MenuAction gUnknown_Debug_083C2938[] = { + {gUnknown_Debug_083C2870, DummyMenuAction}, + {gUnknown_Debug_083C287F, DummyMenuAction}, + {gUnknown_Debug_083C2897, DummyMenuAction}, + {gUnknown_Debug_083C28A6, DummyMenuAction}, + {gUnknown_Debug_083C28BF, DummyMenuAction}, + {gUnknown_Debug_083C28D8, DummyMenuAction}, + {gUnknown_Debug_083C28F1, DummyMenuAction}, + {gUnknown_Debug_083C2909, DummyMenuAction}, + {gUnknown_Debug_083C2920, DummyMenuAction} +}; + +static const u8 gUnknown_Debug_083C2980[] = _("FEーCYCLEー01ーP01ーP01ーC103ーR0201"); +static const u8 gUnknown_Debug_083C299F[] = _("FEーSCOOPー01ーP01ーFIELDーR115"); +static const u8 gUnknown_Debug_083C29BA[] = _("FEーROPEー01ーP01ーFIELDーR114"); +static const u8 gUnknown_Debug_083C29D4[] = _("FEーKAMAー01ーP01ーFIELDーR119"); +static const u8 gUnknown_Debug_083C29EE[] = _("FEーZYOUROーGET"); +static const u8 gUnknown_Debug_083C29FC[] = _("FEーCUBECASEーGET"); +static const u8 gUnknown_Debug_083C2A0C[] = _("FEーBORONOTURIZAOーGET"); +static const u8 gUnknown_Debug_083C2A21[] = _("FEーIITURIZAOーGET"); +static const u8 gUnknown_Debug_083C2A32[] = _("FEーSUGOITURIZAOーGET"); + +static const struct MenuAction gUnknown_Debug_083C2A48[] = { + {gUnknown_Debug_083C2980, DummyMenuAction}, + {gUnknown_Debug_083C299F, DummyMenuAction}, + {gUnknown_Debug_083C29BA, DummyMenuAction}, + {gUnknown_Debug_083C29D4, DummyMenuAction}, + {gUnknown_Debug_083C29EE, DummyMenuAction}, + {gUnknown_Debug_083C29FC, DummyMenuAction}, + {gUnknown_Debug_083C2A0C, DummyMenuAction}, + {gUnknown_Debug_083C2A21, DummyMenuAction}, + {gUnknown_Debug_083C2A32, DummyMenuAction} +}; + +static const u8 gUnknown_Debug_083C2A90[] = _("FEーBOSSー01ーCAVEーD0701"); +static const u8 gUnknown_Debug_083C2AA6[] = _("FEーTANTIKIーRETURN"); +static const u8 gUnknown_Debug_083C2AB8[] = _("FEーPOKE1ー01ーCAVEーD1111"); +static const u8 gUnknown_Debug_083C2ACF[] = _("FEーPOKE1ー01ーCAVEーD1206"); +static const u8 gUnknown_Debug_083C2AE6[] = _("FEーSHOPー01ーC104ーFS01"); +static const u8 gUnknown_Debug_083C2AFB[] = _("FEーHUNENOTIKETTーGET"); +static const u8 gUnknown_Debug_083C2B0F[] = _("FEーKAKUREー01ーFIELDーC105"); +static const u8 gUnknown_Debug_083C2B27[] = _("FEーKASEKIーRETURN"); +static const u8 gUnknown_Debug_083C2B38[] = _("FEーWINー01ーSPーSHIP01"); + +static const struct MenuAction gUnknown_Debug_083C2B4C[] = { + {gUnknown_Debug_083C2A90, DummyMenuAction}, + {gUnknown_Debug_083C2AA6, DummyMenuAction}, + {gUnknown_Debug_083C2AB8, DummyMenuAction}, + {gUnknown_Debug_083C2ACF, DummyMenuAction}, + {gUnknown_Debug_083C2AE6, DummyMenuAction}, + {gUnknown_Debug_083C2AFB, DummyMenuAction}, + {gUnknown_Debug_083C2B0F, DummyMenuAction}, + {gUnknown_Debug_083C2B27, DummyMenuAction}, + {gUnknown_Debug_083C2B38, DummyMenuAction} +}; + +static const u8 gUnknown_Debug_083C2B94[] = _("FEーMITSURUー01ーT106ーR0201"); +static const u8 gUnknown_Debug_083C2BAD[] = _("FEーMITSURUー01ーCAVEーD1301"); +static const u8 gUnknown_Debug_083C2BC6[] = _("FEーMITSURUー02ーFIELDーC103"); +static const u8 gUnknown_Debug_083C2BDF[] = _("FEーMITSURUー02ーT106ーR0201"); +static const u8 gUnknown_Debug_083C2BF8[] = _("FEーMITSURUー01ーFIELDーC103"); +static const u8 gUnknown_Debug_083C2C11[] = _("FEーDOORーOPENー01ーCAVEーD1712"); +static const u8 gUnknown_Debug_083C2C2C[] = _("FEーDOORーOPENー02ーCAVEーD1712"); +static const u8 gUnknown_Debug_083C2C47[] = _("FEーDOORーOPENー04ーCAVEーD1712"); +static const u8 gUnknown_Debug_083C2C62[] = _("FEーDOORーOPENー06ーCAVEーD1712"); + +static const struct MenuAction gUnknown_Debug_083C2C80[] = { + {gUnknown_Debug_083C2B94, DummyMenuAction}, + {gUnknown_Debug_083C2BAD, DummyMenuAction}, + {gUnknown_Debug_083C2BC6, DummyMenuAction}, + {gUnknown_Debug_083C2BDF, DummyMenuAction}, + {gUnknown_Debug_083C2BF8, DummyMenuAction}, + {gUnknown_Debug_083C2C11, DummyMenuAction}, + {gUnknown_Debug_083C2C2C, DummyMenuAction}, + {gUnknown_Debug_083C2C47, DummyMenuAction}, + {gUnknown_Debug_083C2C62, DummyMenuAction} +}; + +static const u8 gUnknown_Debug_083C2CC8[] = _("FEーKARAKURI10ーSWITCHー01"); +static const u8 gUnknown_Debug_083C2CE0[] = _("FEーKARAKURI10ーSWITCHー02"); +static const u8 gUnknown_Debug_083C2CF8[] = _("FEーKARAKURI10ーSWITCHー03"); +static const u8 gUnknown_Debug_083C2D10[] = _("FEーKARAKURI10ーSWITCHー04"); +static const u8 gUnknown_Debug_083C2D28[] = _("FEーKARAKURI10ーSWITCHー05"); +static const u8 gUnknown_Debug_083C2D40[] = _("FEーGYM07ーSWITCHー01"); +static const u8 gUnknown_Debug_083C2D53[] = _("FEーGYM07ーSWITCHー02"); +static const u8 gUnknown_Debug_083C2D66[] = _("FEーGYM07ーSWITCHー03"); +static const u8 gUnknown_Debug_083C2D79[] = _("FEーGYM07ーSWITCHー04"); + +static const struct MenuAction gUnknown_Debug_083C2D8C[] = { + {gUnknown_Debug_083C2CC8, DummyMenuAction}, + {gUnknown_Debug_083C2CE0, DummyMenuAction}, + {gUnknown_Debug_083C2CF8, DummyMenuAction}, + {gUnknown_Debug_083C2D10, DummyMenuAction}, + {gUnknown_Debug_083C2D28, DummyMenuAction}, + {gUnknown_Debug_083C2D40, DummyMenuAction}, + {gUnknown_Debug_083C2D53, DummyMenuAction}, + {gUnknown_Debug_083C2D66, DummyMenuAction}, + {gUnknown_Debug_083C2D79, DummyMenuAction} +}; + +static const u8 gUnknown_Debug_083C2DD4[] = _("FEーSUPPORTー01ーFIELDーR103"); +static const u8 gUnknown_Debug_083C2DED[] = _("FEーSUPPORTー01ーFIELDーC106"); +static const u8 gUnknown_Debug_083C2E06[] = _("FEーSUPPORTー01ーFIELDーR104"); +static const u8 gUnknown_Debug_083C2E1F[] = _("FEーSUPPORTー02ーFIELDーC106"); +static const u8 gUnknown_Debug_083C2E38[] = _("FEーSUPPORTー01ーT101ーR0202"); +static const u8 gUnknown_Debug_083C2E51[] = _("FEーMAMAー01ーP01ーT101ーR0101"); +static const u8 gUnknown_Debug_083C2E6B[] = _("FEーCLOCKーSET"); +static const u8 gUnknown_Debug_083C2E78[] = _("FEーODAMAKIー01ーP01ーT101ーR03"); +static const u8 gUnknown_Debug_083C2E93[] = _("FEーPAPAー01ーP01ーC101ーR0201"); + +static const struct MenuAction gUnknown_Debug_083C2EB0[] = { + {gUnknown_Debug_083C2DD4, DummyMenuAction}, + {gUnknown_Debug_083C2DED, DummyMenuAction}, + {gUnknown_Debug_083C2E06, DummyMenuAction}, + {gUnknown_Debug_083C2E1F, DummyMenuAction}, + {gUnknown_Debug_083C2E38, DummyMenuAction}, + {gUnknown_Debug_083C2E51, DummyMenuAction}, + {gUnknown_Debug_083C2E6B, DummyMenuAction}, + {gUnknown_Debug_083C2E78, DummyMenuAction}, + {gUnknown_Debug_083C2E93, DummyMenuAction} +}; + +static const u8 gUnknown_Debug_083C2EF8[] = _("FEーDAISUKIーGOODSーFLAG01"); +static const u8 gUnknown_Debug_083C2F10[] = _("FEーDAISUKIーGOODSーFLAG02"); +static const u8 gUnknown_Debug_083C2F28[] = _("FEーDAISUKIーGOODSーFLAG03"); +static const u8 gUnknown_Debug_083C2F40[] = _("FEーDAISUKIーGOODSーFLAG04"); +static const u8 gUnknown_Debug_083C2F58[] = _("FEーDAISUKIーGOODSーFLAG05"); +static const u8 gUnknown_Debug_083C2F70[] = _("FEーBASHAー01ーP01ーFIELDーC101ー"); +static const u8 gUnknown_Debug_083C2F8C[] = _("FEーBASHAー01ーP02ーFIELDーC101ー"); +static const u8 gUnknown_Debug_083C2FA8[] = _("FEーBALLー01ーP01ーSPーCONTEST"); +static const u8 gUnknown_Debug_083C2FC2[] = _("FEーWOMAN2ー01ーP01ーT101ーR0201"); + +static const struct MenuAction gUnknown_Debug_083C2FE0[] = { + {gUnknown_Debug_083C2EF8, DummyMenuAction}, + {gUnknown_Debug_083C2F10, DummyMenuAction}, + {gUnknown_Debug_083C2F28, DummyMenuAction}, + {gUnknown_Debug_083C2F40, DummyMenuAction}, + {gUnknown_Debug_083C2F58, DummyMenuAction}, + {gUnknown_Debug_083C2F70, DummyMenuAction}, + {gUnknown_Debug_083C2F8C, DummyMenuAction}, + {gUnknown_Debug_083C2FA8, DummyMenuAction}, + {gUnknown_Debug_083C2FC2, DummyMenuAction} +}; + +static const u8 gUnknown_Debug_083C3028[] = _("FEーSOUKOーOPENーCAVEーD1704"); +static const u8 gUnknown_Debug_083C3041[] = _("FEーSORAISIー01ーCAVEーD0101"); +static const u8 gUnknown_Debug_083C305A[] = _("FEーMAYUMIー01ーーR114ーR0201"); +static const u8 gUnknown_Debug_083C3073[] = _("FEーKUSUNOKIー01ーC102ーR0601"); +static const u8 gUnknown_Debug_083C308D[] = _("FEーOLDWOMAN1ー01ーCAVEーD0808"); +static const u8 gUnknown_Debug_083C30A8[] = _("FEーTRAINERM1ー01ーC109ーR0206"); +static const u8 gUnknown_Debug_083C30C3[] = _("FEーSOONANOーTAMAGOーGET"); +static const u8 gUnknown_Debug_083C30D9[] = _("FEーDASHーSHOESーGET"); +static const u8 gUnknown_Debug_083C30EB[] = _("FEーDEBONSUKOOPUーGET"); + +static const struct MenuAction gUnknown_Debug_083C3100[] = { + {gUnknown_Debug_083C3028, DummyMenuAction}, + {gUnknown_Debug_083C3041, DummyMenuAction}, + {gUnknown_Debug_083C305A, DummyMenuAction}, + {gUnknown_Debug_083C3073, DummyMenuAction}, + {gUnknown_Debug_083C308D, DummyMenuAction}, + {gUnknown_Debug_083C30A8, DummyMenuAction}, + {gUnknown_Debug_083C30C3, DummyMenuAction}, + {gUnknown_Debug_083C30D9, DummyMenuAction}, + {gUnknown_Debug_083C30EB, DummyMenuAction} +}; + +static const u8 gUnknown_Debug_083C3148[] = _("FEーSTUDYM1ー01ーP01ーT101R0301"); +static const u8 gUnknown_Debug_083C3164[] = _("FEーWORKERM1ー01ーC103ーR0201"); +static const u8 gUnknown_Debug_083C317E[] = _("FEーHIMITSUーGET"); +static const u8 gUnknown_Debug_083C318D[] = _(""); +static const u8 gUnknown_Debug_083C318E[] = _(""); +static const u8 gUnknown_Debug_083C318F[] = _(""); +static const u8 gUnknown_Debug_083C3190[] = _(""); +static const u8 gUnknown_Debug_083C3191[] = _(""); +static const u8 gUnknown_Debug_083C3192[] = _(""); + +static const struct MenuAction gUnknown_Debug_083C3194[] = { + {gUnknown_Debug_083C3148, DummyMenuAction}, + {gUnknown_Debug_083C3164, DummyMenuAction}, + {gUnknown_Debug_083C317E, DummyMenuAction}, + {gUnknown_Debug_083C318D, DummyMenuAction}, + {gUnknown_Debug_083C318E, DummyMenuAction}, + {gUnknown_Debug_083C318F, DummyMenuAction}, + {gUnknown_Debug_083C3190, DummyMenuAction}, + {gUnknown_Debug_083C3191, DummyMenuAction}, + {gUnknown_Debug_083C3192, DummyMenuAction} +}; + +static const u8 gUnknown_Debug_083C31DC[] = {9, 9, 9, 9, 9, 9, 9, 9, 3}; + +static const u16 gUnknown_Debug_83C31E6[][9] = { + {FLAG_RECEIVED_HM01, FLAG_RECEIVED_HM02, FLAG_RECEIVED_HM03, FLAG_RECEIVED_HM04, FLAG_RECEIVED_HM05, FLAG_RECEIVED_HM06, FLAG_RETURNED_DEVON_GOODS, FLAG_DEVON_GOODS_STOLEN, FLAG_RECOVERED_DEVON_GOODS}, + {FLAG_RECEIVED_BIKE, 0x05B, 0x05C, 0x05D, FLAG_RECEIVED_WAILMER_PAIL, FLAG_RECEIVED_POKEBLOCK_CASE, FLAG_RECEIVED_OLD_ROD, FLAG_RECEIVED_GOOD_ROD, FLAG_RECEIVED_SUPER_ROD}, + {FLAG_DEFEATED_EVIL_TEAM_MT_CHIMNEY, FLAG_EXCHANGED_SCANNER, FLAG_LEGEND_ESCAPED_SEAFLOOR_CAVERN, FLAG_LEGENDARY_BATTLE_COMPLETED, FLAG_RECEIVED_REPEAT_BALL, FLAG_RECEIVED_SS_TICKET, FLAG_KECLEON_FLED_FORTREE, FLAG_RECEIVED_FOSSIL_MON, FLAG_DEFEATED_SS_TIDAL_TRAINERS}, + {0x06C, FLAG_DEFEATED_WALLY_VICTORY_ROAD, FLAG_DEFEATED_WALLY_MAUVILLE, FLAG_WALLY_SPEECH, FLAG_DECLINED_WALLY_BATTLE_MAUVILLE, FLAG_USED_ROOM_1_KEY, FLAG_USED_ROOM_2_KEY, FLAG_USED_ROOM_4_KEY, FLAG_USED_ROOM_6_KEY}, + {FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_1, FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_2, FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_3, FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_4, FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_5, FLAG_MOSSDEEP_GYM_SWITCH_1, FLAG_MOSSDEEP_GYM_SWITCH_2, FLAG_MOSSDEEP_GYM_SWITCH_3, FLAG_MOSSDEEP_GYM_SWITCH_4}, + {FLAG_DEFEATED_RIVAL_ROUTE103, FLAG_DECLINED_RIVAL_BATTLE_LILYCOVE, FLAG_MET_RIVAL_RUSTBORO, FLAG_MET_RIVAL_LILYCOVE, FLAG_MET_RIVAL_IN_HOUSE_AFTER_LILYCOVE, 0x050, FLAG_SET_WALL_CLOCK, FLAG_RESCUED_BIRCH, 0x055}, + {FLAG_RECEIVED_RED_SCARF, FLAG_RECEIVED_BLUE_SCARF, FLAG_RECEIVED_PINK_SCARF, FLAG_RECEIVED_GREEN_SCARF, FLAG_RECEIVED_YELLOW_SCARF, 0x053, 0x054, FLAG_LINK_CONTEST_ROOM_POKEBALL, FLAG_MET_RIVAL_MOM}, + {FLAG_USED_STORAGE_KEY, FLAG_MET_PROF_COSMO, FLAG_RECEIVED_DOLL_LANETTE, FLAG_EVIL_TEAM_ESCAPED_STERN_SPOKE, FLAG_RETURNED_RED_OR_BLUE_ORB, FLAG_ENTERED_ELITE_FOUR, FLAG_RECEIVED_LAVARIDGE_EGG, FLAG_RECEIVED_RUNNING_SHOES, FLAG_RECEIVED_DEVON_SCOPE}, + {FLAG_BIRCH_AIDE_MET, FLAG_DECLINED_BIKE, FLAG_RECEIVED_SECRET_POWER} +}; + +static const u8 gUnknown_Debug_083C3288[] = _("CYCLEかんれん"); +static const u8 gUnknown_Debug_083C3292[] = _("おおきさくらべ"); +static const u8 gUnknown_Debug_083C329A[] = _("カウンタ"); +static const u8 gUnknown_Debug_083C329F[] = _("そのた1"); +static const u8 gUnknown_Debug_083C32A4[] = _("そのた2"); + +static const struct MenuAction gUnknown_Debug_083C32AC[] = { + {gUnknown_Debug_083C3288, debug_sub_808E400}, + {gUnknown_Debug_083C3292, debug_sub_808E458}, + {gUnknown_Debug_083C329A, debug_sub_808E4B0}, + {gUnknown_Debug_083C329F, debug_sub_808E508}, + {gUnknown_Debug_083C32A4, debug_sub_808E560} +}; + +static const u8 gUnknown_Debug_083C32D4[] = _("WKーCYCLEーROADーHIT"); +static const u8 gUnknown_Debug_083C32E6[] = _("WKーCYCLEーROADーTIMエ1"); +static const u8 gUnknown_Debug_083C32FA[] = _("WKーCYCLEーROADーTIMエ2"); + +static const u8 gUnknown_Debug_083C330E[] = _("WKーSIZEーKINOKOKOーOYAJI"); +static const u8 gUnknown_Debug_083C3325[] = _("WKーSIZEーNAMAZOーOYAJI"); + +static const u8 gUnknown_Debug_083C333A[] = _("WKーSPRAYーCOUNT"); +static const u8 gUnknown_Debug_083C3349[] = _("WKーICEーCOUNT"); +static const u8 gUnknown_Debug_083C3356[] = _("WKーASHーGATHERーCOUNT"); +static const u8 gUnknown_Debug_083C336A[] = _("WKーCRUISEーCOUNT"); +static const u8 gUnknown_Debug_083C337A[] = _("WKーFRIENDLYーSTEPーCOUNT"); +static const u8 gUnknown_Debug_083C3391[] = _("WKーPOISONーSTEPーCOUNT"); + +static const u8 gUnknown_Debug_083C33A6[] = _("WKRECYCLEーGOODS"); +static const u8 gUnknown_Debug_083C33B6[] = _("WKーFIRSTーPOKE"); +static const u8 gUnknown_Debug_083C33C4[] = _("WKーMABOROSIRNDーH"); +static const u8 gUnknown_Debug_083C33D5[] = _("WKーMABOROSIRNDーL"); +static const u8 gUnknown_Debug_083C33E6[] = _("EVーONEーDAYーWORK"); +static const u8 gUnknown_Debug_083C33F6[] = _("EVーFANWORK"); +static const u8 gUnknown_Debug_083C3401[] = _("EVーFANTIME"); +static const u8 gUnknown_Debug_083C340C[] = _("WKーKARAKURIーLEVEL"); +static const u8 gUnknown_Debug_083C341E[] = _("WKーPOKELOTーPRIZE"); + +static const u8 gUnknown_Debug_083C342F[] = _("WKーSPECIALーZUKN"); +static const u8 gUnknown_Debug_083C343F[] = _("WKーHYOUKAーDAYS"); +static const u8 gUnknown_Debug_083C344E[] = _("WKーPOKELOTーRND1"); +static const u8 gUnknown_Debug_083C345E[] = _("WKーPOKELOTーRND2"); +static const u8 gUnknown_Debug_083C346E[] = _("WKーBASEーMAPNO"); + +static const struct MenuAction gUnknown_Debug_083C347C[] = { + {gUnknown_Debug_083C32D4, DummyMenuAction}, + {gUnknown_Debug_083C32E6, DummyMenuAction}, + {gUnknown_Debug_083C32FA, DummyMenuAction} +}; + +static const struct MenuAction gUnknown_Debug_083C3494[] = { + {gUnknown_Debug_083C330E, DummyMenuAction}, + {gUnknown_Debug_083C3325, DummyMenuAction} +}; + +static const struct MenuAction gUnknown_Debug_083C34A4[] = { + {gUnknown_Debug_083C333A, DummyMenuAction}, + {gUnknown_Debug_083C3349, DummyMenuAction}, + {gUnknown_Debug_083C3356, DummyMenuAction}, + {gUnknown_Debug_083C336A, DummyMenuAction}, + {gUnknown_Debug_083C337A, DummyMenuAction}, + {gUnknown_Debug_083C3391, DummyMenuAction} +}; + +static const struct MenuAction gUnknown_Debug_083C34D4[] = { + {gUnknown_Debug_083C33A6, DummyMenuAction}, + {gUnknown_Debug_083C33B6, DummyMenuAction}, + {gUnknown_Debug_083C33C4, DummyMenuAction}, + {gUnknown_Debug_083C33D5, DummyMenuAction}, + {gUnknown_Debug_083C33E6, DummyMenuAction}, + {gUnknown_Debug_083C33F6, DummyMenuAction}, + {gUnknown_Debug_083C3401, DummyMenuAction}, + {gUnknown_Debug_083C340C, DummyMenuAction}, + {gUnknown_Debug_083C341E, DummyMenuAction} +}; + +static const struct MenuAction gUnknown_Debug_083C351C[] = { + {gUnknown_Debug_083C342F, DummyMenuAction}, + {gUnknown_Debug_083C343F, DummyMenuAction}, + {gUnknown_Debug_083C344E, DummyMenuAction}, + {gUnknown_Debug_083C345E, DummyMenuAction}, + {gUnknown_Debug_083C346E, DummyMenuAction} +}; + +static const u8 gUnknown_Debug_083C3544[] = {3, 2, 6, 9, 5}; + +static const u16 gUnknown_Debug_083C354A[][9] = { + {VAR_CYCLING_ROAD_RECORD_COLLISIONS, VAR_CYCLING_ROAD_RECORD_TIME_L, VAR_CYCLING_ROAD_RECORD_TIME_H}, + {VAR_SHROOMISH_SIZE_RECORD, VAR_BARBOACH_SIZE_RECORD}, + {VAR_REPEL_STEP_COUNT, VAR_ICE_STEP_COUNT, VAR_ASH_GATHER_COUNT, VAR_CRUISE_STEP_COUNT, VAR_HAPPINESS_STEP_COUNTER, VAR_POISON_STEP_COUNTER}, + {VAR_RECYCLE_GOODS, VAR_STARTER_MON, VAR_MIRAGE_RND_H, VAR_MIRAGE_RND_L, VAR_DAYS, VAR_FANCLUB_UNKNOWN_1, VAR_FANCLUB_UNKNOWN_2, VAR_TRICK_HOUSE_ROOMS_COMPLETED, VAR_LOTTERY_PRIZE}, + {VAR_NATIONAL_DEX, VAR_BIRCH_STATE, VAR_LOTTERY_RND_L, VAR_LOTTERY_RND_H, VAR_SECRET_BASE_MAP} +}; + +static const u8 gUnknown_Debug_083C35A4[] = _("OBJCHRWORK0ー8"); +static const u8 gUnknown_Debug_083C35B2[] = _("OBJCHRWORK9ー15"); + +static const struct MenuAction gUnknown_Debug_083C35C4[] = { + {gUnknown_Debug_083C35A4, debug_sub_808E9A0}, + {gUnknown_Debug_083C35B2, debug_sub_808E9F8} +}; + +static const u8 gUnknown_Debug_083C35D4[] = _("OBJCHRWORK1"); +static const u8 gUnknown_Debug_083C35E0[] = _("OBJCHRWORK2"); +static const u8 gUnknown_Debug_083C35EC[] = _("OBJCHRWORK3"); +static const u8 gUnknown_Debug_083C35F8[] = _("OBJCHRWORK4"); +static const u8 gUnknown_Debug_083C3604[] = _("OBJCHRWORK5"); +static const u8 gUnknown_Debug_083C3610[] = _("OBJCHRWORK6"); +static const u8 gUnknown_Debug_083C361C[] = _("OBJCHRWORK7"); +static const u8 gUnknown_Debug_083C3628[] = _("OBJCHRWORK8"); +static const u8 gUnknown_Debug_083C3634[] = _("OBJCHRWORK9"); + +static const u8 gUnknown_Debug_083C3640[] = _("OBJCHRWORK10"); +static const u8 gUnknown_Debug_083C364D[] = _("OBJCHRWORK11"); +static const u8 gUnknown_Debug_083C365A[] = _("OBJCHRWORK12"); +static const u8 gUnknown_Debug_083C3667[] = _("OBJCHRWORK13"); +static const u8 gUnknown_Debug_083C3674[] = _("OBJCHRWORK14"); +static const u8 gUnknown_Debug_083C3681[] = _("OBJCHRWORK15"); +static const u8 gUnknown_Debug_083C368E[] = _("OBJCHRWORK16"); + +static const struct MenuAction gUnknown_Debug_083C369C[] = { + {gUnknown_Debug_083C35D4, DummyMenuAction}, + {gUnknown_Debug_083C35E0, DummyMenuAction}, + {gUnknown_Debug_083C35EC, DummyMenuAction}, + {gUnknown_Debug_083C35F8, DummyMenuAction}, + {gUnknown_Debug_083C3604, DummyMenuAction}, + {gUnknown_Debug_083C3610, DummyMenuAction}, + {gUnknown_Debug_083C361C, DummyMenuAction}, + {gUnknown_Debug_083C3628, DummyMenuAction}, + {gUnknown_Debug_083C3634, DummyMenuAction} +}; + +static const struct MenuAction gUnknown_Debug_083C36E4[] = { + {gUnknown_Debug_083C3640, DummyMenuAction}, + {gUnknown_Debug_083C364D, DummyMenuAction}, + {gUnknown_Debug_083C365A, DummyMenuAction}, + {gUnknown_Debug_083C3667, DummyMenuAction}, + {gUnknown_Debug_083C3674, DummyMenuAction}, + {gUnknown_Debug_083C3681, DummyMenuAction}, + {gUnknown_Debug_083C368E, DummyMenuAction} +}; + +static const u8 gUnknown_Debug_083C371C[] = {9, 7}; + +static const u16 gUnknown_Debug_083C371E[][9] = { + {VAR_OBJ_GFX_ID_0, VAR_OBJ_GFX_ID_1, VAR_OBJ_GFX_ID_2, VAR_OBJ_GFX_ID_3, VAR_OBJ_GFX_ID_4, VAR_OBJ_GFX_ID_5, VAR_OBJ_GFX_ID_6, VAR_OBJ_GFX_ID_7, VAR_OBJ_GFX_ID_8}, + {VAR_OBJ_GFX_ID_9, VAR_OBJ_GFX_ID_A, VAR_OBJ_GFX_ID_B, VAR_OBJ_GFX_ID_C, VAR_OBJ_GFX_ID_D, VAR_OBJ_GFX_ID_E, VAR_OBJ_GFX_ID_F} +}; + +static const u8 gUnknown_Debug_083C3742[] = _("SP"); +static const u8 gUnknown_Debug_083C3745[] = _("ルーム R110 PART1/カラクリ"); +static const u8 gUnknown_Debug_083C3759[] = _("ルーム R110 PART2"); +static const u8 gUnknown_Debug_083C3768[] = _("ルーム ロード"); +static const u8 gUnknown_Debug_083C3770[] = _("ソノタ1"); +static const u8 gUnknown_Debug_083C3775[] = _("ソノタ2"); + +static const struct MenuAction sMenuActions_ControlWorks_SaveWorkPart2[] = { + {gUnknown_Debug_083C3742, ControlWorks_SaveWorkPart2_SP_InitSubsubmenu}, + {gUnknown_Debug_083C3745, ControlWorks_SaveWorkPart2_RoomR110Part1TrickHouse_InitSubsubmenu}, + {gUnknown_Debug_083C3759, ControlWorks_SaveWorkPart2_RoomR110Part2_InitSubsubmenu}, + {gUnknown_Debug_083C3768, ControlWorks_SaveWorkPart2_RoomLoad_InitSubsubmenu}, + {gUnknown_Debug_083C3770, debug_sub_808E1B4}, + {gUnknown_Debug_083C3775, debug_sub_808E20C} +}; + +static const u8 gUnknown_Debug_083C37AC[] = _("WKーSCENEーSPーCONTEST"); +static const u8 gUnknown_Debug_083C37C0[] = _("WKーSCENEーSPーPC"); +static const u8 gUnknown_Debug_083C37CF[] = _("WKーSCENEーSPーCONTEST03"); +static const u8 gUnknown_Debug_083C37E5[] = _("WKーSCENEーSPーCONTESTITEM"); +static const u8 gUnknown_Debug_083C37FD[] = _("WKーSCENEーSPーOPENING"); +static const u8 gUnknown_Debug_083C3811[] = _("WKーSCENEーSPーSHIP01"); +static const u8 gUnknown_Debug_083C3824[] = _(""); +static const u8 gUnknown_Debug_083C3825[] = _(""); +static const u8 gUnknown_Debug_083C3826[] = _(""); + +static const u8 gUnknown_Debug_083C3827[] = _("WKーSCENEーR110ーR0101"); +static const u8 gUnknown_Debug_083C383B[] = _("WKーSCENEーR110ーR0102"); +static const u8 gUnknown_Debug_083C384F[] = _("WKーSCENEーR110ーR0103"); +static const u8 gUnknown_Debug_083C3863[] = _("WKーKARAKURIーDAIOU"); +static const u8 gUnknown_Debug_083C3875[] = _("WKーSCENEーSHISEN"); +static const u8 gUnknown_Debug_083C3885[] = _(""); +static const u8 gUnknown_Debug_083C3886[] = _(""); +static const u8 gUnknown_Debug_083C3887[] = _(""); +static const u8 gUnknown_Debug_083C3888[] = _(""); + +static const u8 gUnknown_Debug_083C3889[] = _("WKーSCENEーR110ーR0104"); +static const u8 gUnknown_Debug_083C389D[] = _("WKーSCENEーR110ーR0105"); +static const u8 gUnknown_Debug_083C38B1[] = _("WKーSCENEーR110ーR0106"); +static const u8 gUnknown_Debug_083C38C5[] = _("WKーSCENEーR110ーR0107"); +static const u8 gUnknown_Debug_083C38D9[] = _("WKーSCENEーR110ーR0108"); +static const u8 gUnknown_Debug_083C38ED[] = _("WKーSCENEーR110ーR0109"); +static const u8 gUnknown_Debug_083C3901[] = _("WKーSCENEーR110ーR0110"); +static const u8 gUnknown_Debug_083C3915[] = _("WKーSCENEーR110ーR0111"); +static const u8 gUnknown_Debug_083C3929[] = _("WKーSCENEー02ーR110ーR0110"); + +static const u8 gUnknown_Debug_083C3940[] = _("WKーSCENEーR104ーR0101"); +static const u8 gUnknown_Debug_083C3954[] = _("WKーSCENEーR113ーR0101"); +static const u8 gUnknown_Debug_083C3968[] = _(""); +static const u8 gUnknown_Debug_083C3969[] = _(""); +static const u8 gUnknown_Debug_083C396A[] = _(""); +static const u8 gUnknown_Debug_083C396B[] = _(""); +static const u8 gUnknown_Debug_083C396C[] = _(""); +static const u8 gUnknown_Debug_083C396D[] = _(""); +static const u8 gUnknown_Debug_083C396E[] = _(""); + +static const u8 gUnknown_Debug_083C396F[] = _("WKーSCENEーBASEーGDOODS"); +static const u8 gUnknown_Debug_083C3984[] = _("WKーSCENEーHAGIーFUNE"); +static const u8 gUnknown_Debug_083C3997[] = _("WKーSCENEーFUNEーPOS"); +static const u8 gUnknown_Debug_083C39A9[] = _("WKーSCENEーBASEーMAKE"); +static const u8 gUnknown_Debug_083C39BC[] = _("WKーSCENEーARTISTーC106ーR"); +static const u8 gUnknown_Debug_083C39D3[] = _("WKーSCENEーPOKEーLEAGUE"); +static const u8 gUnknown_Debug_083C39E8[] = _("WKーSCENEーROPEWAY"); +static const u8 gUnknown_Debug_083C39F9[] = _("WKーSCENEーSAFARIーZONE"); +static const u8 gUnknown_Debug_083C3A0E[] = _("WKーSCENEーCYCLEーROAD"); + +static const u8 gUnknown_Debug_083C3A22[] = _("WKーSCENEーR119ーTENKI"); +static const u8 gUnknown_Debug_083C3A36[] = _("WKーSCENEー01ーC102ーR0401"); +static const u8 gUnknown_Debug_083C3A4D[] = _("WKーFUTAGOー01ーFIELDーR104"); +static const u8 gUnknown_Debug_083C3A65[] = _("WKーSCENEーBATTLEーTOWER"); +static const u8 gUnknown_Debug_083C3A7B[] = _("WKーSCENEーTRーHOUSE"); +static const u8 gUnknown_Debug_083C3A8D[] = _("WKーKASEKIーTYPE"); +static const u8 gUnknown_Debug_083C3A9C[] = _(""); +static const u8 gUnknown_Debug_083C3A9D[] = _(""); +static const u8 gUnknown_Debug_083C3A9E[] = _(""); + +static const struct MenuAction gUnknown_Debug_083C3AA0[] = { + {gUnknown_Debug_083C37AC, DummyMenuAction}, + {gUnknown_Debug_083C37C0, DummyMenuAction}, + {gUnknown_Debug_083C37CF, DummyMenuAction}, + {gUnknown_Debug_083C37E5, DummyMenuAction}, + {gUnknown_Debug_083C37FD, DummyMenuAction}, + {gUnknown_Debug_083C3811, DummyMenuAction}, + {gUnknown_Debug_083C3824, DummyMenuAction}, + {gUnknown_Debug_083C3825, DummyMenuAction} +}; + +static const struct MenuAction gUnknown_Debug_83C3AE0[] = { + {gUnknown_Debug_083C3827, DummyMenuAction}, + {gUnknown_Debug_083C383B, DummyMenuAction}, + {gUnknown_Debug_083C384F, DummyMenuAction}, + {gUnknown_Debug_083C3863, DummyMenuAction}, + {gUnknown_Debug_083C3875, DummyMenuAction}, + {gUnknown_Debug_083C3885, DummyMenuAction}, + {gUnknown_Debug_083C3886, DummyMenuAction}, + {gUnknown_Debug_083C3887, DummyMenuAction}, + {gUnknown_Debug_083C3888, DummyMenuAction} +}; + +static const struct MenuAction gUnknown_Debug_83C3B28[] = { + {gUnknown_Debug_083C3889, DummyMenuAction}, + {gUnknown_Debug_083C389D, DummyMenuAction}, + {gUnknown_Debug_083C38B1, DummyMenuAction}, + {gUnknown_Debug_083C38C5, DummyMenuAction}, + {gUnknown_Debug_083C38D9, DummyMenuAction}, + {gUnknown_Debug_083C38ED, DummyMenuAction}, + {gUnknown_Debug_083C3901, DummyMenuAction}, + {gUnknown_Debug_083C3915, DummyMenuAction}, + {gUnknown_Debug_083C3929, DummyMenuAction} +}; + +static const struct MenuAction gUnknown_Debug_83C3B70[] = { + {gUnknown_Debug_083C3940, DummyMenuAction}, + {gUnknown_Debug_083C3954, DummyMenuAction}, + {gUnknown_Debug_083C3968, DummyMenuAction}, + {gUnknown_Debug_083C3969, DummyMenuAction}, + {gUnknown_Debug_083C396A, DummyMenuAction}, + {gUnknown_Debug_083C396B, DummyMenuAction}, + {gUnknown_Debug_083C396C, DummyMenuAction}, + {gUnknown_Debug_083C396D, DummyMenuAction}, + {gUnknown_Debug_083C396E, DummyMenuAction} +}; + +static const struct MenuAction gUnknown_Debug_83C3BB8[] = { + {gUnknown_Debug_083C396F, DummyMenuAction}, + {gUnknown_Debug_083C3984, DummyMenuAction}, + {gUnknown_Debug_083C3997, DummyMenuAction}, + {gUnknown_Debug_083C39A9, DummyMenuAction}, + {gUnknown_Debug_083C39BC, DummyMenuAction}, + {gUnknown_Debug_083C39D3, DummyMenuAction}, + {gUnknown_Debug_083C39E8, DummyMenuAction}, + {gUnknown_Debug_083C39F9, DummyMenuAction}, + {gUnknown_Debug_083C3A0E, DummyMenuAction} +}; + +static const struct MenuAction gUnknown_Debug_83C3C00[] = { + {gUnknown_Debug_083C3A22, DummyMenuAction}, + {gUnknown_Debug_083C3A36, DummyMenuAction}, + {gUnknown_Debug_083C3A4D, DummyMenuAction}, + {gUnknown_Debug_083C3A65, DummyMenuAction}, + {gUnknown_Debug_083C3A7B, DummyMenuAction}, + {gUnknown_Debug_083C3A8D, DummyMenuAction}, + {gUnknown_Debug_083C3A9C, DummyMenuAction}, + {gUnknown_Debug_083C3A9D, DummyMenuAction}, + {gUnknown_Debug_083C3A9E, DummyMenuAction} +}; + +static const u8 sControlWorks_SaveWork_CountsArray[] = {6, 5, 9, 2, 9, 6}; + +static const u16 sControlWorks_SaveWork_ItemArrays[][9] = { + {VAR_LINK_CONTEST_ROOM_STATE, VAR_CABLE_CLUB_STATE, VAR_CONTEST_LOCATION, VAR_CONTEST_PRIZE_PICKUP, VAR_LITTLEROOT_INTRO_STATE, VAR_PORTHOLE_STATE}, + {VAR_TRICK_HOUSE_ENTRANCE_STATE_2, VAR_TRICK_HOUSE_PRIZE_PICKUP, VAR_TRICK_HOUSE_STATE, VAR_TRICK_HOUSE_ENTRANCE_STATE_3, VAR_TRICK_HOUSE_ENTRANCE_STATE}, + {VAR_TRICK_HOUSE_PUZZLE_1_STATE, VAR_TRICK_HOUSE_PUZZLE_2_STATE, VAR_TRICK_HOUSE_PUZZLE_3_STATE, VAR_TRICK_HOUSE_PUZZLE_4_STATE, VAR_TRICK_HOUSE_PUZZLE_5_STATE, VAR_TRICK_HOUSE_PUZZLE_6_STATE, VAR_TRICK_HOUSE_PUZZLE_7_STATE, VAR_TRICK_HOUSE_PUZZLE_8_STATE, VAR_TRICK_HOUSE_PUZZLE_7_STATE_2}, + {VAR_BRINEY_HOUSE_STATE, VAR_GLASS_WORKSHOP_STATE}, + {VAR_0x4089, VAR_BOARD_BRINEY_BOAT_ROUTE104_STATE, VAR_BRINEY_LOCATION, VAR_0x4097, VAR_LILYCOVE_CONTEST_LOBBY_STATE, VAR_ELITE_4_STATE, VAR_CABLE_CAR_STATION_STATE, VAR_SAFARI_ZONE_STATE, VAR_CYCLING_CHALLENGE_STATE}, + {VAR_WEATHER_INSTITUTE_STATE, VAR_SLATEPORT_FAN_CLUB_STATE, 0x40BB, VAR_BRAVO_TRAINER_BATTLE_TOWER_ON, VAR_GAME_CORNER_STATE, VAR_WHICH_FOSSIL_REVIVED} +}; + +static const u8 sString_Town[] = _("タウン"); +static const u8 sString_City[] = _("シティ"); +static const u8 sString_Route_101_to_109[] = _("ロード101ー109"); +static const u8 sString_Route_110_to_118[] = _("ロード110ー118"); +static const u8 sString_Route_119_to_127[] = _("ロード119ー127"); +static const u8 sString_Route_128_to_134[] = _("ロード128ー134"); +static const u8 sString_Room_Town[] = _("ルーム タウン"); +static const u8 sString_Room_City[] = _("ルーム シティ"); +static const u8 sString_Dungeon_nai[] = _("ダンジョンない"); + +static const struct MenuAction sMenuAction_ControlWorks_SaveWork[] = { + {sString_Town, ControlWorks_SaveWork_Town_InitSubsubmenu}, + {sString_City, ControlWorks_SaveWork_City_InitSubsubmenu}, + {sString_Route_101_to_109, ControlWorks_SaveWork_Route101To109_InitSubsubmenu}, + {sString_Route_110_to_118, ControlWorks_SaveWork_Route110To118_InitSubsubmenu}, + {sString_Route_119_to_127, ControlWorks_SaveWork_Route119To127_InitSubsubmenu}, + {sString_Route_128_to_134, ControlWorks_SaveWork_Route128To134_InitSubsubmenu}, + {sString_Room_Town, ControlWorks_SaveWork_RoomTown_InitSubsubmenu}, + {sString_Room_City, ControlWorks_SaveWork_RoomCity_InitSubsubmenu}, + {sString_Dungeon_nai, ControlWorks_SaveWork_Dungeon_InitSubsubmenu} +}; + +static const u8 sString_WK_SCENE_FIELD_T101[] = _("WKーSCENEーFIELDーT101"); +static const u8 sString_WK_SCENE_FIELD_T102[] = _("WKーSCENEーFIELDーT102"); +static const u8 sString_WK_SCENE_FIELD_T103[] = _("WKーSCENEーFIELDーT103"); +static const u8 sString_WK_SCENE_FIELD_T104[] = _("WKーSCENEーFIELDーT104"); +static const u8 sString_WK_BASE_POSNO[] = _("WKーBASEーPOSNO"); +static const u8 sString_WK_SCENE_FIELD_T106[] = _("WKーSCENEーFIELDーT106"); +static const u8 sString_WK_SCENE_FIELD_T107[] = _("WKーSCENEーFIELDーT107"); +static const u8 sString_WK_SCENE_2_FIELD_T102[] = _("WKーSCENEー02ーFIELDーT102"); + +static const u8 sString_WK_SCENE_FIELD_C101[] = _("WKーSCENEーFIELDーC101"); +static const u8 sString_WK_SCENE_FIELD_C102[] = _("WKーSCENEーFIELDーC102"); +static const u8 sString_WK_SCENE_FIELD_C103[] = _("WKーSCENEーFIELDーC103"); +static const u8 sString_WK_SCENE_FIELD_C104[] = _("WKーSCENEーFIELDーC104"); +static const u8 sString_WK_SCENE_FIELD_C105[] = _("WKーSCENEーFIELDーC105"); +static const u8 sString_WK_SCENE_FIELD_C106[] = _("WKーSCENEーFIELDーC106"); +static const u8 sString_WK_SCENE_FIELD_C107[] = _("WKーSCENEーFIELDーC107"); +static const u8 sString_WK_SCENE_FIELD_C108[] = _("WKーSCENEーFIELDーC108"); +static const u8 sString_WK_SCENE_FIELD_C109[] = _("WKーSCENEーFIELDーC109"); + +static const u8 sString_WK_SCENE_FIELD_R101[] = _("WKーSCENEーFIELDーR101"); +static const u8 sString_WK_SCENE_FIELD_R102[] = _("WKーSCENEーFIELDーR102"); +static const u8 sString_WK_SCENE_FIELD_R103[] = _("WKーSCENEーFIELDーR103"); +static const u8 sString_WK_SCENE_FIELD_R104[] = _("WKーSCENEーFIELDーR104"); +static const u8 sString_WK_SCENE_FIELD_R105[] = _("WKーSCENEーFIELDーR105"); +static const u8 sString_WK_SCENE_FIELD_R106[] = _("WKーSCENEーFIELDーR106"); +static const u8 sString_WK_SCENE_FIELD_R107[] = _("WKーSCENEーFIELDーR107"); +static const u8 sString_WK_SCENE_FIELD_R108[] = _("WKーSCENEーFIELDーR108"); +static const u8 sString_WK_SCENE_FIELD_R109[] = _("WKーSCENEーFIELDーR109"); + +static const u8 sString_WK_SCENE_FIELD_R110[] = _("WKーSCENEーFIELDーR110"); +static const u8 sString_WK_SCENE_FIELD_R111[] = _("WKーSCENEーFIELDーR111"); +static const u8 sString_WK_SCENE_FIELD_R112[] = _("WKーSCENEーFIELDーR112"); +static const u8 sString_WK_SCENE_FIELD_R113[] = _("WKーSCENEーFIELDーR113"); +static const u8 sString_WK_SCENE_FIELD_R114[] = _("WKーSCENEーFIELDーR114"); +static const u8 sString_WK_SCENE_FIELD_R115[] = _("WKーSCENEーFIELDーR115"); +static const u8 sString_WK_SCENE_FIELD_R116[] = _("WKーSCENEーFIELDーR116"); +static const u8 sString_WK_SCENE_FIELD_R117[] = _("WKーSCENEーFIELDーR117"); +static const u8 sString_WK_SCENE_FIELD_R118[] = _("WKーSCENEーFIELDーR118"); + +static const u8 sString_WK_SCENE_FIELD_R119[] = _("WKーSCENEーFIELDーR119"); +static const u8 sString_WK_SCENE_FIELD_R120[] = _("WKーSCENEーFIELDーR120"); +static const u8 sString_WK_SCENE_FIELD_R121[] = _("WKーSCENEーFIELDーR121"); +static const u8 sString_WK_SCENE_FIELD_R122[] = _("WKーSCENEーFIELDーR122"); +static const u8 sString_WK_SCENE_FIELD_R123[] = _("WKーSCENEーFIELDーR123"); +static const u8 sString_WK_SCENE_FIELD_R124[] = _("WKーSCENEーFIELDーR124"); +static const u8 sString_WK_SCENE_FIELD_R125[] = _("WKーSCENEーFIELDーR125"); +static const u8 sString_WK_SCENE_FIELD_R126[] = _("WKーSCENEーFIELDーR126"); +static const u8 sString_WK_SCENE_FIELD_R127[] = _("WKーSCENEーFIELDーR127"); + +static const u8 sString_WK_SCENE_FIELD_R128[] = _("WKーSCENEーFIELDーR128"); +static const u8 sString_WK_SCENE_FIELD_R129[] = _("WKーSCENEーFIELDーR129"); +static const u8 sString_WK_SCENE_FIELD_R130[] = _("WKーSCENEーFIELDーR130"); +static const u8 sString_WK_SCENE_FIELD_R131[] = _("WKーSCENEーFIELDーR131"); +static const u8 sString_WK_SCENE_FIELD_R132[] = _("WKーSCENEーFIELDーR132"); +static const u8 sString_WK_SCENE_FIELD_R133[] = _("WKーSCENEーFIELDーR133"); +static const u8 sString_WK_SCENE_FIELD_R134[] = _("WKーSCENEーFIELDーR134"); + +static const u8 sString_WK_SCENE_T101_R0101[] = _("WKーSCENEーT101ーR0101"); +static const u8 sString_WK_SCENE_T101_R0102[] = _("WKーSCENEーT101ーR0102"); +static const u8 sString_WK_SCENE_T101_R0301[] = _("WKーSCENEーT101ーR0301"); +static const u8 sString_WK_SCENE_T101_R0201[] = _("WKーSCENEーT101ーR0201"); +static const u8 sString_WK_SCENE_T101_R0202[] = _("WKーSCENEーT101ーR0202"); +static const u8 sString_WK_SCENE_T107_R0201[] = _("WKーSCENEーT107ーR0201"); // unused string + +static const u8 sString_WK_SCENE_C101_R0201[] = _("WKーSCENEーC101ーR0201"); +static const u8 sString_WK_SCENE_C104_R0103[] = _("WKーSCENEーC104ーR0103"); +static const u8 sString_WK_SCENE_C103_R0101[] = _("WKーSCENEーC103ーR0101"); +static const u8 sString_WK_SCENE_C106_R0202[] = _("WKーSCENEーC106ーR0202"); +static const u8 sString_WK_SCENE_C106_R0401[] = _("WKーSCENEーC106ーR0401"); +static const u8 sString_WK_SCENE_C101_R0601[] = _("WKーSCENEーC102ーR0601"); +static const u8 sString_WK_SCENE_C102_R0501[] = _("WKーSCENEーC102ーR0501"); +static const u8 sString_WK_SCENE_C104_R0102[] = _("WKーSCENEーC104ーR0102"); +static const u8 sString_WK_SCENE_C107_R0501[] = _("WKーSCENEーC107ーR0501"); + +static const u8 sString_WK_SCENE_CAVE_D0601[] = _("WKーSCENEーCAVEーD0601"); +static const u8 sString_WK_SCENE_CAVE_D0201[] = _("WKーSCENEーCAVEーD0201"); +static const u8 sString_WK_SCENE_CAVE_D1206[] = _("WKーSCENEーCAVEーD1206"); +static const u8 sString_WK_SCENE_CAVE_D1111[] = _("WKーSCENEーCAVEーD1111"); +static const u8 sString_WK_SCENE_CAVE_D0701[] = _("WKーSCENEーCAVEーD0701"); +static const u8 sString_WK_SCENE_CAVE_D0808[] = _("WKーSCENEーCAVEーD0808"); +static const u8 sString_WK_SCENE_CAVE_D1602[] = _("WKーSCENEーCAVEーD1602"); +static const u8 sString_WK_SCENE_CAVE_D0101[] = _("WKーSCENEーCAVEーD0101"); +static const u8 sString_WK_SCENE_CAVE_D1301[] = _("WKーSCENEーCAVEーD1301"); + +static const struct MenuAction sMenuActions_SaveWork_Town[] = { + {sString_WK_SCENE_FIELD_T101, DummyMenuAction}, + {sString_WK_SCENE_FIELD_T102, DummyMenuAction}, + {sString_WK_SCENE_FIELD_T103, DummyMenuAction}, + {sString_WK_SCENE_FIELD_T104, DummyMenuAction}, + {sString_WK_BASE_POSNO, DummyMenuAction}, + {sString_WK_SCENE_FIELD_T106, DummyMenuAction}, + {sString_WK_SCENE_FIELD_T107, DummyMenuAction}, + {sString_WK_SCENE_2_FIELD_T102, DummyMenuAction} +}; + +static const struct MenuAction sMenuActions_SaveWork_City[] = { + {sString_WK_SCENE_FIELD_C101, DummyMenuAction}, + {sString_WK_SCENE_FIELD_C102, DummyMenuAction}, + {sString_WK_SCENE_FIELD_C103, DummyMenuAction}, + {sString_WK_SCENE_FIELD_C104, DummyMenuAction}, + {sString_WK_SCENE_FIELD_C105, DummyMenuAction}, + {sString_WK_SCENE_FIELD_C106, DummyMenuAction}, + {sString_WK_SCENE_FIELD_C107, DummyMenuAction}, + {sString_WK_SCENE_FIELD_C108, DummyMenuAction}, + {sString_WK_SCENE_FIELD_C109, DummyMenuAction} +}; + +static const struct MenuAction sMenuActions_SaveWork_Route101To109[] = { + {sString_WK_SCENE_FIELD_R101, DummyMenuAction}, + {sString_WK_SCENE_FIELD_R102, DummyMenuAction}, + {sString_WK_SCENE_FIELD_R103, DummyMenuAction}, + {sString_WK_SCENE_FIELD_R104, DummyMenuAction}, + {sString_WK_SCENE_FIELD_R105, DummyMenuAction}, + {sString_WK_SCENE_FIELD_R106, DummyMenuAction}, + {sString_WK_SCENE_FIELD_R107, DummyMenuAction}, + {sString_WK_SCENE_FIELD_R108, DummyMenuAction}, + {sString_WK_SCENE_FIELD_R109, DummyMenuAction} +}; + +static const struct MenuAction sMenuActions_SaveWork_Route110To118[] = { + {sString_WK_SCENE_FIELD_R110, DummyMenuAction}, + {sString_WK_SCENE_FIELD_R111, DummyMenuAction}, + {sString_WK_SCENE_FIELD_R112, DummyMenuAction}, + {sString_WK_SCENE_FIELD_R113, DummyMenuAction}, + {sString_WK_SCENE_FIELD_R114, DummyMenuAction}, + {sString_WK_SCENE_FIELD_R115, DummyMenuAction}, + {sString_WK_SCENE_FIELD_R116, DummyMenuAction}, + {sString_WK_SCENE_FIELD_R117, DummyMenuAction}, + {sString_WK_SCENE_FIELD_R118, DummyMenuAction} +}; + +static const struct MenuAction sMenuActions_SaveWork_Route119To127[] = { + {sString_WK_SCENE_FIELD_R119, DummyMenuAction}, + {sString_WK_SCENE_FIELD_R120, DummyMenuAction}, + {sString_WK_SCENE_FIELD_R121, DummyMenuAction}, + {sString_WK_SCENE_FIELD_R122, DummyMenuAction}, + {sString_WK_SCENE_FIELD_R123, DummyMenuAction}, + {sString_WK_SCENE_FIELD_R124, DummyMenuAction}, + {sString_WK_SCENE_FIELD_R125, DummyMenuAction}, + {sString_WK_SCENE_FIELD_R126, DummyMenuAction}, + {sString_WK_SCENE_FIELD_R127, DummyMenuAction} +}; + +static const struct MenuAction sMenuActions_SaveWork_Route128To134[] = { + {sString_WK_SCENE_FIELD_R128, DummyMenuAction}, + {sString_WK_SCENE_FIELD_R129, DummyMenuAction}, + {sString_WK_SCENE_FIELD_R130, DummyMenuAction}, + {sString_WK_SCENE_FIELD_R131, DummyMenuAction}, + {sString_WK_SCENE_FIELD_R132, DummyMenuAction}, + {sString_WK_SCENE_FIELD_R133, DummyMenuAction}, + {sString_WK_SCENE_FIELD_R134, DummyMenuAction} +}; + +static const struct MenuAction sMenuActions_SaveWork_RoomTown[] = { + {sString_WK_SCENE_T101_R0101, DummyMenuAction}, + {sString_WK_SCENE_T101_R0102, DummyMenuAction}, + {sString_WK_SCENE_T101_R0301, DummyMenuAction}, + {sString_WK_SCENE_T101_R0201, DummyMenuAction}, + {sString_WK_SCENE_T101_R0202, DummyMenuAction} +}; + +static const struct MenuAction sMenuActions_SaveWork_RoomCity[] = { + {sString_WK_SCENE_C101_R0201, DummyMenuAction}, + {sString_WK_SCENE_C104_R0103, DummyMenuAction}, + {sString_WK_SCENE_C103_R0101, DummyMenuAction}, + {sString_WK_SCENE_C106_R0202, DummyMenuAction}, + {sString_WK_SCENE_C106_R0401, DummyMenuAction}, + {sString_WK_SCENE_C101_R0601, DummyMenuAction}, + {sString_WK_SCENE_C102_R0501, DummyMenuAction}, + {sString_WK_SCENE_C104_R0102, DummyMenuAction}, + {sString_WK_SCENE_C107_R0501, DummyMenuAction} +}; + +static const struct MenuAction sMenuActions_SaveWork_Dungeon[] = { + {sString_WK_SCENE_CAVE_D0601, DummyMenuAction}, + {sString_WK_SCENE_CAVE_D0201, DummyMenuAction}, + {sString_WK_SCENE_CAVE_D1206, DummyMenuAction}, + {sString_WK_SCENE_CAVE_D1111, DummyMenuAction}, + {sString_WK_SCENE_CAVE_D0701, DummyMenuAction}, + {sString_WK_SCENE_CAVE_D0808, DummyMenuAction}, + {sString_WK_SCENE_CAVE_D1602, DummyMenuAction}, + {sString_WK_SCENE_CAVE_D0101, DummyMenuAction}, + {sString_WK_SCENE_CAVE_D1301, DummyMenuAction} +}; + +static const u8 gUnknown_Debug_083C457C[] = {8, 9, 9, 9, 9, 7, 6, 9, 9}; + +static const u16 gUnknown_Debug_083C4586[][9] = { + {VAR_LITTLEROOT_STATE, VAR_ROUTE102_ACCESSIBLE, 0x4052, VAR_LAVARIDGE_RIVAL_STATE, VAR_CURRENT_SECRET_BASE, 0x4055, 0x4056, VAR_OLDALE_STATE}, + {VAR_PETALBURG_STATE, VAR_SLATEPORT_STATE, 0x4059, VAR_RUSTBORO_STATE, 0x405B, 0x405C, 0x405D, VAR_SOOTOPOLIS_STATE, 0x405F}, + {VAR_ROUTE101_STATE, 0x4061, VAR_ROUTE103_STATE, 0x4063, 0x4064, 0x4065, 0x4066, 0x4067, 0x4068}, + {VAR_ROUTE110_STATE, 0x406A, 0x406B, 0x406C, 0x406D, 0x406E, VAR_ROUTE116_STATE, 0x4070, VAR_ROUTE118_STATE}, + {VAR_ROUTE119_STATE, 0x4073, VAR_ROUTE121_STATE, 0x4075, 0x4076, 0x4077, 0x4078, 0x4079, 0x407A}, + {VAR_ROUTE128_STATE, 0x407C, 0x407D, 0x407E, 0x407F, 0x4080, 0x4081}, + {VAR_LITTLEROOT_HOUSES_STATE, 0x4083, VAR_BIRCH_LAB_STATE, VAR_LITTLEROOT_HOUSES_STATE_2, VAR_LITTLEROOT_RIVAL_STATE, VAR_PACIFIDLOG_TM_RECEIVED_DAY}, + {VAR_PETALBURG_GYM_STATE, VAR_DEVON_CORP_3F_STATE, VAR_MAUVILLE_GYM_STATE, VAR_LILYCOVE_MUSEUM_2F_STATE, VAR_LILYCOVE_FAN_CLUB_STATE, VAR_SLATEPORT_HARBOR_STATE, VAR_SLATEPORT_MUSEUM_1F_STATE, VAR_FOSSIL_RESURRECTION_STATE, VAR_STEVENS_HOUSE_STATE}, + {VAR_PETALBURG_WOODS_STATE, VAR_RUSTURF_TUNNEL_STATE, VAR_CAVE_OF_ORIGIN_B4F_STATE, VAR_SEAFLOOR_CAVERN_STATE, 0x40A8, VAR_MT_PYRE_STATE, VAR_NEW_MAUVILLE_STATE, VAR_METEOR_FALLS_STATE, VAR_VICTORY_ROAD_1F_STATE} +}; + +static const u8 gUnknown_Debug_083C4628[] = _("LOCALWORK0ー8"); +static const u8 gUnknown_Debug_083C4635[] = _("LOCALWORK9ー15"); + +static const struct MenuAction gUnknown_Debug_083C4644[] = { + {gUnknown_Debug_083C4628, debug_sub_808E754}, + {gUnknown_Debug_083C4635, debug_sub_808E7AC} +}; + +static const u8 gUnknown_Debug_083C4654[] = _("LOCALWORK0"); +static const u8 gUnknown_Debug_083C465F[] = _("LOCALWORK1"); +static const u8 gUnknown_Debug_083C466A[] = _("LOCALWORK2"); +static const u8 gUnknown_Debug_083C4675[] = _("LOCALWORK3"); +static const u8 gUnknown_Debug_083C4680[] = _("LOCALWORK4"); +static const u8 gUnknown_Debug_083C468B[] = _("LOCALWORK5"); +static const u8 gUnknown_Debug_083C4696[] = _("LOCALWORK6"); +static const u8 gUnknown_Debug_083C46A1[] = _("LOCALWORK7"); +static const u8 gUnknown_Debug_083C46AC[] = _("LOCALWORK8"); + +static const u8 gUnknown_Debug_083C46B7[] = _("LOCALWORK9"); +static const u8 gUnknown_Debug_083C46C2[] = _("LOCALWORK10"); +static const u8 gUnknown_Debug_083C46CE[] = _("LOCALWORK11"); +static const u8 gUnknown_Debug_083C46DA[] = _("LOCALWORK12"); +static const u8 gUnknown_Debug_083C46E6[] = _("LOCALWORK13"); +static const u8 gUnknown_Debug_083C46F2[] = _("LOCALWORK14"); +static const u8 gUnknown_Debug_083C46FE[] = _("LOCALWORK15"); + +static const struct MenuAction gUnknown_Debug_083C470C[] = { + {gUnknown_Debug_083C4654, DummyMenuAction}, + {gUnknown_Debug_083C465F, DummyMenuAction}, + {gUnknown_Debug_083C466A, DummyMenuAction}, + {gUnknown_Debug_083C4675, DummyMenuAction}, + {gUnknown_Debug_083C4680, DummyMenuAction}, + {gUnknown_Debug_083C468B, DummyMenuAction}, + {gUnknown_Debug_083C4696, DummyMenuAction}, + {gUnknown_Debug_083C46A1, DummyMenuAction}, + {gUnknown_Debug_083C46AC, DummyMenuAction} +}; + +static const struct MenuAction gUnknown_Debug_083C4754C[] = { + {gUnknown_Debug_083C46B7, DummyMenuAction}, + {gUnknown_Debug_083C46C2, DummyMenuAction}, + {gUnknown_Debug_083C46CE, DummyMenuAction}, + {gUnknown_Debug_083C46DA, DummyMenuAction}, + {gUnknown_Debug_083C46E6, DummyMenuAction}, + {gUnknown_Debug_083C46F2, DummyMenuAction}, + {gUnknown_Debug_083C46FE, DummyMenuAction} +}; + +static const u8 gUnknown_Debug_083C478C[] = {9, 7}; + +static const u16 gUnknown_Debug_083C478E[][9] = { + {VAR_TEMP_0, VAR_TEMP_1, VAR_TEMP_2, VAR_TEMP_3, VAR_TEMP_4, VAR_TEMP_5, VAR_TEMP_6, VAR_TEMP_7, VAR_TEMP_8}, + {VAR_TEMP_9, VAR_TEMP_A, VAR_TEMP_B, VAR_TEMP_C, VAR_TEMP_D, VAR_TEMP_E, VAR_TEMP_F} +}; + +static const u8 gUnknown_Debug_083C47B2[] = _("Level"); +static const u8 gUnknown_Debug_083C47B8[] = _("Scene1"); +static const u8 gUnknown_Debug_083C47BF[] = _("Scene2"); +static const u8 gUnknown_Debug_083C47C6[] = _("Scene3"); +static const u8 gUnknown_Debug_083C47CD[] = _("Scene4"); +static const u8 gUnknown_Debug_083C47D4[] = _("Scene5"); +static const u8 gUnknown_Debug_083C47DB[] = _("Scene6"); +static const u8 gUnknown_Debug_083C47E2[] = _("Scene7"); +static const u8 gUnknown_Debug_083C47E9[] = _("Scene8"); + +static const struct MenuAction gUnknown_Debug_083C47F0[] = { + {gUnknown_Debug_083C47B8, DummyMenuAction}, + {gUnknown_Debug_083C47BF, DummyMenuAction}, + {gUnknown_Debug_083C47C6, DummyMenuAction}, + {gUnknown_Debug_083C47CD, DummyMenuAction}, + {gUnknown_Debug_083C47D4, DummyMenuAction}, + {gUnknown_Debug_083C47DB, DummyMenuAction}, + {gUnknown_Debug_083C47E2, DummyMenuAction}, + {gUnknown_Debug_083C47E9, DummyMenuAction} +}; + +static const u8 gUnknown_Debug_083C4830[] = _("Trick Master"); + +static const u8 gUnknown_Debug_083C483D[] = _("Hidden MASTER"); +static const u8 gUnknown_Debug_083C484B[] = _("Inside the HOUSE"); +static const u8 gUnknown_Debug_083C485C[] = _("Pass a reward"); +static const u8 gUnknown_Debug_083C486A[] = _("Rig a trick"); +static const u8 gUnknown_Debug_083C4876[] = _("MASTER is gone"); + +static const struct MenuAction gUnknown_Debug_083C4888[] = { + {gUnknown_Debug_083C483D, DummyMenuAction}, + {gUnknown_Debug_083C484B, DummyMenuAction}, + {gUnknown_Debug_083C485C, DummyMenuAction}, + {gUnknown_Debug_083C486A, DummyMenuAction}, + {gUnknown_Debug_083C4876, DummyMenuAction} +}; + +static const u8 sDummyNickname[] = _("PMNICKNAME"); +static const u8 sDummyTrainerName[] = _("BREEDER"); + +bool8 InitTomomichiDebugWindow(void) +{ + InitDebugWindow(); + return FALSE; +} + +static void debug_sub_808B868(void) +{ + c2_exit_to_overworld_1_continue_scripts_restart_music(); +} + +static bool8 InitDebugWindow(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 13, 15); + Menu_PrintItems(1, 1, ARRAY_COUNT(sMenuActions_TopMenu), sMenuActions_TopMenu); + InitMenu(0, 1, 1, ARRAY_COUNT(sMenuActions_TopMenu), sTopMenuCursorPos, 12); + gMenuCallback = TopMenu_HandleInput; + return FALSE; +} + +static bool8 TopMenu_HandleInput(void) +{ + if (gMain.newKeys & DPAD_UP) + { + PlaySE(SE_SELECT); + sTopMenuCursorPos = Menu_MoveCursor(-1); + } + if (gMain.newKeys & DPAD_DOWN) + { + PlaySE(SE_SELECT); + sTopMenuCursorPos = Menu_MoveCursor(+1); + } + if (gMain.newKeys & A_BUTTON) + { + PlaySE(SE_SELECT); + return sMenuActions_TopMenu[sTopMenuCursorPos].func(); + } + if (gMain.newKeys & (B_BUTTON | START_BUTTON)) + { + CloseMenu(); + return TRUE; + } + return FALSE; +} + +static bool8 ContestGraphics(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 20, 11); + Menu_PrintText(sString_ContestMenuTitle, 1, 1); + Menu_PrintItems(2, 3, ARRAY_COUNT(sMenuActions_ContestPicTest), sMenuActions_ContestPicTest); + InitMenu(0, 1, 3, ARRAY_COUNT(sMenuActions_ContestPicTest), 0, 19); + gMenuCallback = ContestGraphics_HandleInput; + sPicTest_Species = SPECIES_BULBASAUR; + sPicTest_OTID = 28467; + sPicTest_Personality = 0; + sPicTest_ContestType = 1; + return FALSE; +} + +static bool8 ArtMusGraphics(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 20, 11); + Menu_PrintText(sString_Contest_ArtMuseumTitle, 1, 1); + Menu_PrintItems(2, 3, ARRAY_COUNT(sMenuActions_ArtMuseumPicTest), sMenuActions_ArtMuseumPicTest); + InitMenu(0, 1, 3, ARRAY_COUNT(sMenuActions_ArtMuseumPicTest), 0, 19); + gMenuCallback = ArtMusGraphics_HandleInput; + sPicTest_Species = SPECIES_BULBASAUR; + sPicTest_OTID = 28467; + sPicTest_Personality = 0; + sPicTest_MuseumArtTitleType = 1; + return FALSE; +} + +static bool8 PreviewData(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 20, 11); + Menu_PrintText(sString_Contest_PreviewTitle, 1, 1); + Menu_PrintItems(2, 3, ARRAY_COUNT(sMenuActions_PreviewPicTest), sMenuActions_PreviewPicTest); + InitMenu(0, 1, 3, ARRAY_COUNT(sMenuActions_PreviewPicTest), 0, 19); + gMenuCallback = PreviewData_HandleInput; + sPicTest_Species = SPECIES_BULBASAUR; + sPicTest_OTID = 28467; + sPicTest_Personality = 0; + sPicTest_PreviewType = 1; + return FALSE; +} + +static bool8 TrickHouse(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 24, 7); + Menu_PrintText(sString_TrickRelated, 1, 1); + Menu_PrintItems(2, 3, ARRAY_COUNT(sMenuActions_TrickRelated), sMenuActions_TrickRelated); + InitMenu(0, 1, 3, ARRAY_COUNT(sMenuActions_TrickRelated), sTrickRelatedMenuCursorPos, 23); + gMenuCallback = TrickHouse_HandleInput; + return FALSE; +} + +static bool8 ControlEvents(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 24, 5); + Menu_PrintItems(2, 1, ARRAY_COUNT(sMenuActions_ControlEvents), sMenuActions_ControlEvents); + InitMenu(0, 1, 1, ARRAY_COUNT(sMenuActions_ControlEvents), sControlEventsCursorPos, 23); + gMenuCallback = ControlEvents_HandleInput; + return FALSE; +} + +static bool8 ControlFlags(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 24, 15); + Menu_PrintItems(2, 1, ARRAY_COUNT(sMenuActions_ControlFlags), sMenuActions_ControlFlags); + InitMenu(0, 1, 1, ARRAY_COUNT(sMenuActions_ControlFlags), sControlFlagsCursorPos, 23); + gMenuCallback = ControlFlags_HandleInput; + return FALSE; +} + +static bool8 ControlWorks(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 24, 13); + Menu_PrintItems(2, 1, ARRAY_COUNT(sMenuActions_ControlWorks), sMenuActions_ControlWorks); + InitMenu(0, 1, 1, ARRAY_COUNT(sMenuActions_ControlWorks), sControlWORKCursorPos, 23); + gMenuCallback = ControlWorks_HandleInput; + return FALSE; +} + +static bool8 ContestGraphics_HandleInput(void) +{ + s8 input = Menu_ProcessInput(); + s8 cursorPos = Menu_GetCursorPos(); + + switch (cursorPos) + { + case 0: + PicTest_SelectPokemon(); + break; + case 1: + PicTest_SelectPersonality(); + break; + case 2: + ContestPicTest_SelectContestType(); + break; + } + PicTest_Redraw(0); + if (input == -2) + return FALSE; + if (input == -1) + { + CloseMenu(); + return TRUE; + } + if (input == 3) + { + gMenuCallback = sMenuActions_ContestPicTest[3].func; + return FALSE; + } + return FALSE; +} + +static bool8 ArtMusGraphics_HandleInput(void) +{ + s8 input = Menu_ProcessInput(); + s8 cursorPos = Menu_GetCursorPos(); + + switch (cursorPos) + { + case 0: + PicTest_SelectPokemon(); + break; + case 1: + PicTest_SelectPersonality(); + break; + case 2: + MuseumArtPicTest_SelectTitleType(); + break; + } + PicTest_Redraw(1); + if (input == -2) + return FALSE; + if (input == -1) + { + CloseMenu(); + return TRUE; + } + if (input == 3) + { + gMenuCallback = sMenuActions_ArtMuseumPicTest[3].func; + return FALSE; + } + return FALSE; +} + +static bool8 PreviewData_HandleInput(void) +{ + s8 input = Menu_ProcessInput(); + s8 cursorPos = Menu_GetCursorPos(); + + switch (cursorPos) + { + case 0: + PicTest_SelectPokemon(); + break; + case 1: + PicTest_SelectPersonality(); + break; + case 2: + PreviewPicTest_SelectType(); + break; + } + PicTest_Redraw(2); + if (input == -2) + return FALSE; + if (input == -1) + { + CloseMenu(); + return TRUE; + } + if (input == 3) + { + gMenuCallback = sMenuActions_PreviewPicTest[3].func; + return FALSE; + } + return FALSE; +} + +static bool8 TrickHouse_HandleInput(void) +{ + if (gMain.newKeys & DPAD_UP) + { + PlaySE(SE_SELECT); + sTrickRelatedMenuCursorPos = Menu_MoveCursor(-1); + } + if (gMain.newKeys & DPAD_DOWN) + { + PlaySE(SE_SELECT); + sTrickRelatedMenuCursorPos = Menu_MoveCursor(+1); + } + if (gMain.newKeys & A_BUTTON) + { + PlaySE(SE_SELECT); + return sMenuActions_TrickRelated[sTrickRelatedMenuCursorPos].func(); + } + if (gMain.newKeys & (B_BUTTON | START_BUTTON)) + { + CloseMenu(); + return TRUE; + } + return FALSE; +} + +static bool8 ControlEvents_HandleInput(void) +{ + if (gMain.newKeys & DPAD_UP) + { + PlaySE(SE_SELECT); + sControlEventsCursorPos = Menu_MoveCursor(-1); + } + if (gMain.newKeys & DPAD_DOWN) + { + PlaySE(SE_SELECT); + sControlEventsCursorPos = Menu_MoveCursor(+1); + } + if (gMain.newKeys & A_BUTTON) + { + PlaySE(SE_SELECT); + return sMenuActions_ControlEvents[sControlEventsCursorPos].func(); + } + if (gMain.newKeys & (B_BUTTON | START_BUTTON)) + { + CloseMenu(); + return TRUE; + } + return FALSE; +} + +static bool8 ControlFlags_HandleInput(void) +{ + if (gMain.newKeys & DPAD_UP) + { + PlaySE(SE_SELECT); + sControlFlagsCursorPos = Menu_MoveCursor(-1); + } + if (gMain.newKeys & DPAD_DOWN) + { + PlaySE(SE_SELECT); + sControlFlagsCursorPos = Menu_MoveCursor(+1); + } + if (gMain.newKeys & A_BUTTON) + { + PlaySE(SE_SELECT); + return sMenuActions_ControlFlags[sControlFlagsCursorPos].func(); + } + if (gMain.newKeys & (B_BUTTON | START_BUTTON)) + { + CloseMenu(); + return TRUE; + } + return FALSE; +} + +static bool8 ControlWorks_HandleInput(void) +{ + if (gMain.newKeys & DPAD_UP) + { + PlaySE(SE_SELECT); + sControlWORKCursorPos = Menu_MoveCursor(-1); + } + if (gMain.newKeys & DPAD_DOWN) + { + PlaySE(SE_SELECT); + sControlWORKCursorPos = Menu_MoveCursor(+1); + } + if (gMain.newKeys & A_BUTTON) + { + PlaySE(SE_SELECT); + return sMenuActions_ControlWorks[sControlWORKCursorPos].func(); + } + if (gMain.newKeys & (B_BUTTON | START_BUTTON)) + { + CloseMenu(); + return TRUE; + } + return FALSE; +} + +static bool8 ControlEvents_InitSubmenu1(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 28, 19); + Menu_PrintItems(2, 1, ARRAY_COUNT(sMenuActions_ControlEvents_Events1), sMenuActions_ControlEvents_Events1); + InitMenu(0, 1, 1, ARRAY_COUNT(sMenuActions_ControlEvents_Events1), 0, 27); + gMenuCallback = ControlEvents_Events1_HandleInput; + return FALSE; +} + +static bool8 ControlEvents_InitSubmenu2(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 28, 13); + Menu_PrintItems(2, 1, ARRAY_COUNT(sMenuActions_ControlEvents_Events2), sMenuActions_ControlEvents_Events2); + InitMenu(0, 1, 1, ARRAY_COUNT(sMenuActions_ControlEvents_Events2), 0, 27); + gMenuCallback = ControlEvents_Events2_HandleInput; + return FALSE; +} + +static bool8 ControlEvents_Events1_HandleInput(void) +{ + s8 input = Menu_ProcessInput(); + + if (input == -2) + return FALSE; + if (input == -1) + { + CloseMenu(); + return TRUE; + } + gMenuCallback = sMenuActions_ControlEvents_Events1[input].func; + return FALSE; +} + +static bool8 ControlEvents_Events2_HandleInput(void) +{ + s8 input = Menu_ProcessInput(); + + if (input == -2) + return FALSE; + if (input == -1) + { + CloseMenu(); + return TRUE; + } + gMenuCallback = sMenuActions_ControlEvents_Events2[input].func; + return FALSE; +} + +static bool8 CallScript_DoHallOfFame(void) +{ + ScriptContext1_SetupScript(DebugScript_081C1CFE); + CloseMenu(); + return TRUE; +} + +static bool8 CallScript_GiveCoinCaseIfNotAlreadyOwned(void) +{ + ScriptContext1_SetupScript(DebugScript_081C1D07); + CloseMenu(); + return TRUE; +} + +static bool8 CallScript_SetOldaleStateAfterRoute103Rival(void) +{ + ScriptContext1_SetupScript(DebugScript_081C1D1E); + CloseMenu(); + return TRUE; +} + +static bool8 CallScript_OpenNewMauville(void) +{ + ScriptContext1_SetupScript(DebugScript_081C1D24); + CloseMenu(); + return TRUE; +} + +static bool8 CallScript_GiveSSTicketAndDoHallOfFame(void) +{ + ScriptContext1_SetupScript(DebugScript_081C1D2A); + CloseMenu(); + return TRUE; +} + +static bool8 CallScript_GiveKyogreEgg(void) +{ + ScriptContext1_SetupScript(DebugScript_081C1D35); + CloseMenu(); + return TRUE; +} + +static bool8 CallScript_GiveAllItems(void) +{ + ScriptContext1_SetupScript(DebugScript_081C1D46); + CloseMenu(); + return TRUE; +} + +static bool8 CallScript_GiveAllDecorations(void) +{ + ScriptContext1_SetupScript(DebugScript_081C221F); + CloseMenu(); + return TRUE; +} + +static bool8 CallScript_GiveAllCoins(void) +{ + ScriptContext1_SetupScript(DebugScript_081C23E2); + CloseMenu(); + return TRUE; +} + +static bool8 CallScript_OpenSootopolisGym(void) +{ + ScriptContext1_SetupScript(DebugScript_081C23E6); + CloseMenu(); + return TRUE; +} + +static bool8 CallScript_SetMoneyTo0(void) +{ + ScriptContext1_SetupScript(DebugScript_081C23F6); + CloseMenu(); + return TRUE; +} + +static bool8 CallScript_FillPartyWithBarboach(void) +{ + ScriptContext1_SetupScript(DebugScript_081C2482); + CloseMenu(); + return TRUE; +} + +static bool8 CallScript_FillPartyWithShroomish(void) +{ + ScriptContext1_SetupScript(DebugScript_081C23FD); + CloseMenu(); + return TRUE; +} + +static bool8 CallScript_GiveBarboachEgg(void) +{ + ScriptContext1_SetupScript(DebugScript_081C2518); + CloseMenu(); + return TRUE; +} + +static bool8 CallScript_GiveShroomishEgg(void) +{ + ScriptContext1_SetupScript(DebugScript_081C2507); + CloseMenu(); + return TRUE; +} + +static bool8 ContestGraphics_Show(void) +{ + BeginNormalPaletteFade(0xffffffff, 0, 0, 16, 0); + gMenuCallback = debug_sub_808C280; + return FALSE; +} + +static bool8 debug_sub_808C280(void) +{ + if (!UpdatePaletteFade()) + { + CloseMenu(); + PrepareDebugOverlayBeforeShowingContestPainting(0); + SetMainCallback2(CB2_ContestPainting); + gMain.savedCallback = debug_sub_808B868; + return TRUE; + } + return FALSE; +} + +static bool8 MuseumGraphics_Show(void) +{ + BeginNormalPaletteFade(0xffffffff, 0, 0, 16, 0); + gMenuCallback = debug_sub_808C2E4; + return FALSE; +} + +static bool8 debug_sub_808C2E4(void) +{ + if (!UpdatePaletteFade()) + { + CloseMenu(); + PrepareDebugOverlayBeforeShowingContestPainting(1); + SetMainCallback2(CB2_ContestPainting); + gMain.savedCallback = debug_sub_808B868; + return TRUE; + } + return FALSE; +} + +static bool8 ControlFlags_EventFlag_InitSubmenu(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 28, 19); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C2828), gUnknown_Debug_083C2828); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C2828), 0, 27); + gMenuCallback = debug_sub_808C36C; + return FALSE; +} + +static bool8 debug_sub_808C36C(void) +{ + s8 input = Menu_ProcessInput(); + + if (input == -2) + return FALSE; + if (input == -1) + { + CloseMenu(); + return TRUE; + } + gMenuCallback = gUnknown_Debug_083C2828[input].func; + return FALSE; +} + +static bool8 debug_sub_808C3B0(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(gUnknown_Debug_083C2938) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C2938), gUnknown_Debug_083C2938); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C2938), 0, 28); + sFlagAndVarTest_WhichSubmenu = 0; + gMenuCallback = debug_sub_808C6C8; + return FALSE; +} + +static bool8 debug_sub_808C408(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(gUnknown_Debug_083C2A48) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C2A48), gUnknown_Debug_083C2A48); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C2A48), 0, 28); + sFlagAndVarTest_WhichSubmenu = 1; + gMenuCallback = debug_sub_808C6C8; + return FALSE; +} + +static bool8 debug_sub_808C460(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(gUnknown_Debug_083C2B4C) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C2B4C), gUnknown_Debug_083C2B4C); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C2B4C), 0, 28); + sFlagAndVarTest_WhichSubmenu = 2; + gMenuCallback = debug_sub_808C6C8; + return FALSE; +} + +static bool8 debug_sub_808C4B8(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(gUnknown_Debug_083C2C80) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C2C80), gUnknown_Debug_083C2C80); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C2C80), 0, 28); + sFlagAndVarTest_WhichSubmenu = 3; + gMenuCallback = debug_sub_808C6C8; + return FALSE; +} + +static bool8 debug_sub_808C510(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(gUnknown_Debug_083C2D8C) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C2D8C), gUnknown_Debug_083C2D8C); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C2D8C), 0, 28); + sFlagAndVarTest_WhichSubmenu = 4; + gMenuCallback = debug_sub_808C6C8; + return FALSE; +} + +static bool8 debug_sub_808C568(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(gUnknown_Debug_083C2EB0) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C2EB0), gUnknown_Debug_083C2EB0); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C2EB0), 0, 28); + sFlagAndVarTest_WhichSubmenu = 5; + gMenuCallback = debug_sub_808C6C8; + return FALSE; +} + +static bool8 debug_sub_808C5C0(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(gUnknown_Debug_083C2FE0) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C2FE0), gUnknown_Debug_083C2FE0); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C2FE0), 0, 28); + sFlagAndVarTest_WhichSubmenu = 6; + gMenuCallback = debug_sub_808C6C8; + return FALSE; +} + +static bool8 debug_sub_808C618(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(gUnknown_Debug_083C3100) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C3100), gUnknown_Debug_083C3100); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C3100), 0, 28); + sFlagAndVarTest_WhichSubmenu = 7; + gMenuCallback = debug_sub_808C6C8; + return FALSE; +} + +static bool8 debug_sub_808C670(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * 3 + 1); + Menu_PrintItems(2, 1, 3, gUnknown_Debug_083C3194); + InitMenu(0, 1, 1, 3, 0, 28); + sFlagAndVarTest_WhichSubmenu = 8; + gMenuCallback = debug_sub_808C6C8; + return FALSE; +} + +static bool8 debug_sub_808C6C8(void) +{ + s8 input = Menu_ProcessInput(); + s8 cursorPos = Menu_GetCursorPos(); + + debug_sub_808C714(sFlagAndVarTest_WhichSubmenu, cursorPos); + debug_sub_808C764(sFlagAndVarTest_WhichSubmenu); + if (input == -2) + return FALSE; + if (input == -1) + { + CloseMenu(); + return TRUE; + } + return FALSE; +} + +static void debug_sub_808C714(u8 whichMenu, u8 cursorPos) +{ + if (gMain.newKeys & R_BUTTON) + { + if (!FlagGet(gUnknown_Debug_83C31E6[whichMenu][cursorPos])) + FlagSet(gUnknown_Debug_83C31E6[whichMenu][cursorPos]); + else + FlagClear(gUnknown_Debug_83C31E6[whichMenu][cursorPos]); + } +} + +static void debug_sub_808C764(u8 whichMenu) +{ + u8 i; + + for (i = 0; i < gUnknown_Debug_083C31DC[whichMenu]; i++) + { + PrintBool(28, 2 * i + 1, FlagGet(gUnknown_Debug_83C31E6[whichMenu][i]) ? 1 : 0); + } +} + +static bool8 ControlFlags_VanishFlag_InitSubmenu(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 28, 19); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C1CE8), gUnknown_Debug_083C1CE8); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C1CE8), 0, 27); + gMenuCallback = debug_sub_808C818; + return FALSE; +} + +static bool8 debug_sub_808C818(void) +{ + s8 input = Menu_ProcessInput(); + + if (input == -2) + return FALSE; + if (input == -1) + { + CloseMenu(); + return TRUE; + } + gMenuCallback = gUnknown_Debug_083C1CE8[input].func; + return FALSE; +} + +static bool8 debug_sub_808C85C(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(gUnknown_Debug_083C1E0C) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C1E0C), gUnknown_Debug_083C1E0C); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C1E0C), 0, 28); + sFlagAndVarTest_WhichSubmenu = 0; + gMenuCallback = debug_sub_808CB74; + return FALSE; +} + +static bool8 debug_sub_808C8B4(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(gUnknown_Debug_083C1F38) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C1F38), gUnknown_Debug_083C1F38); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C1F38), 0, 28); + sFlagAndVarTest_WhichSubmenu = 1; + gMenuCallback = debug_sub_808CB74; + return FALSE; +} + +static bool8 debug_sub_808C90C(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(gUnknown_Debug_083C206C) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C206C), gUnknown_Debug_083C206C); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C206C), 0, 28); + sFlagAndVarTest_WhichSubmenu = 2; + gMenuCallback = debug_sub_808CB74; + return FALSE; +} + +static bool8 debug_sub_808C964(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(gUnknown_Debug_083C2190) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C2190), gUnknown_Debug_083C2190); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C2190), 0, 28); + sFlagAndVarTest_WhichSubmenu = 3; + gMenuCallback = debug_sub_808CB74; + return FALSE; +} + +static bool8 debug_sub_808C9BC(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(gUnknown_Debug_083C2264) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C2264), gUnknown_Debug_083C2264); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C2264), 0, 28); + sFlagAndVarTest_WhichSubmenu = 4; + gMenuCallback = debug_sub_808CB74; + return FALSE; +} + +static bool8 debug_sub_808CA14(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(gUnknown_Debug_083C2370) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C2370), gUnknown_Debug_083C2370); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C2370), 0, 28); + sFlagAndVarTest_WhichSubmenu = 5; + gMenuCallback = debug_sub_808CB74; + return FALSE; +} + +static bool8 debug_sub_808CA6C(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(gUnknown_Debug_083C248C) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C248C), gUnknown_Debug_083C248C); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C248C), 0, 28); + sFlagAndVarTest_WhichSubmenu = 6; + gMenuCallback = debug_sub_808CB74; + return FALSE; +} + +static bool8 debug_sub_808CAC4(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(gUnknown_Debug_083C259C) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C259C), gUnknown_Debug_083C259C); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C259C), 0, 27); + sFlagAndVarTest_WhichSubmenu = 7; + gMenuCallback = debug_sub_808CB74; + return FALSE; +} + +static bool8 debug_sub_808CB1C(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(gUnknown_Debug_083C26C8) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C26C8), gUnknown_Debug_083C26C8); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C26C8), 0, 28); + sFlagAndVarTest_WhichSubmenu = 8; + gMenuCallback = debug_sub_808CB74; + return FALSE; +} + +static bool8 debug_sub_808CB74(void) +{ + s8 input = Menu_ProcessInput(); + s8 cursorPos = Menu_GetCursorPos(); + + debug_sub_808CBC0(sFlagAndVarTest_WhichSubmenu, cursorPos); + debug_sub_808CC10(sFlagAndVarTest_WhichSubmenu); + if (input == -2) + return FALSE; + if (input == -1) + { + CloseMenu(); + return TRUE; + } + return FALSE; +} + +static void debug_sub_808CBC0(u8 whichMenu, u8 cursorPos) +{ + if (gMain.newKeys & R_BUTTON) + { + if (!FlagGet(gUnknown_Debug_083C271A[whichMenu][cursorPos])) + FlagSet(gUnknown_Debug_083C271A[whichMenu][cursorPos]); + else + FlagClear(gUnknown_Debug_083C271A[whichMenu][cursorPos]); + } +} + +static void debug_sub_808CC10(u8 whichMenu) +{ + u8 i; + + for (i = 0; i < gUnknown_Debug_083C2710[whichMenu]; i++) + { + PrintBool(28, 2 * i + 1, FlagGet(gUnknown_Debug_083C271A[whichMenu][i]) ? 1 : 0); + } +} + +static bool8 ControlFlags_TrainerFlag_InitSubmenu(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 28, 2 * ARRAY_COUNT(gUnknown_Debug_083C1ADC) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C1ADC), gUnknown_Debug_083C1ADC); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C1ADC), 0, 27); + gMenuCallback = debug_sub_808CCC4; + return FALSE; +} + +static bool8 debug_sub_808CCC4(void) +{ + s8 input = Menu_ProcessInput(); + + if (input == -2) + return FALSE; + if (input == -1) + { + CloseMenu(); + return TRUE; + } + gMenuCallback = gUnknown_Debug_083C1ADC[input].func; + return FALSE; +} + +static bool8 debug_sub_808CD08(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(gUnknown_Debug_083C1B7C) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C1B7C), gUnknown_Debug_083C1B7C); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C1B7C), 0, 28); + sFlagAndVarTest_WhichSubmenu = 0; + gMenuCallback = debug_sub_808CE10; + return FALSE; +} + +static bool8 debug_sub_808CD60(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(gUnknown_Debug_083C1BF0) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C1BF0), gUnknown_Debug_083C1BF0); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C1BF0), 0, 28); + sFlagAndVarTest_WhichSubmenu = 1; + gMenuCallback = debug_sub_808CE10; + return FALSE; +} + +static bool8 debug_sub_808CDB8(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(gUnknown_Debug_083C1C2C) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C1C2C), gUnknown_Debug_083C1C2C); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C1C2C), 0, 28); + sFlagAndVarTest_WhichSubmenu = 2; + gMenuCallback = debug_sub_808CE10; + return FALSE; +} + +static bool8 debug_sub_808CE10(void) +{ + s8 input = Menu_ProcessInput(); + s8 cursorPos = Menu_GetCursorPos(); + + debug_sub_808CE5C(sFlagAndVarTest_WhichSubmenu, cursorPos); + debug_sub_808CEAC(sFlagAndVarTest_WhichSubmenu); + if (input == -2) + return FALSE; + if (input == -1) + { + CloseMenu(); + return TRUE; + } + return FALSE; +} + +static void debug_sub_808CE5C(u8 whichMenu, u8 cursorPos) +{ + if (gMain.newKeys & R_BUTTON) + { + if (!FlagGet(gUnknown_Debug_083C1C38[whichMenu][cursorPos])) + FlagSet(gUnknown_Debug_083C1C38[whichMenu][cursorPos]); + else + FlagClear(gUnknown_Debug_083C1C38[whichMenu][cursorPos]); + } +} + +static void debug_sub_808CEAC(u8 whichMenu) +{ + u8 i; + + for (i = 0; i < gUnknown_Debug_083C1C34[whichMenu]; i++) + { + PrintBool(28, 2 * i + 1, FlagGet(gUnknown_Debug_083C1C38[whichMenu][i]) ? 1 : 0); + } +} + +static bool8 ControlFlags_SysFlag_InitSubmenu(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 28, 2 * ARRAY_COUNT(gUnknown_Debug_083C1330) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C1330), gUnknown_Debug_083C1330); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C1330), 0, 27); + gMenuCallback = debug_sub_808CF60; + return FALSE; +} + +static bool8 debug_sub_808CF60(void) +{ + s8 input = Menu_ProcessInput(); + + if (input == -2) + return FALSE; + if (input == -1) + { + CloseMenu(); + return TRUE; + } + gMenuCallback = gUnknown_Debug_083C1330[input].func; + return FALSE; +} + +static bool8 debug_sub_808CFA4(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(gUnknown_Debug_083C13D8) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C13D8), gUnknown_Debug_083C13D8); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C13D8), 0, 28); + sFlagAndVarTest_WhichSubmenu = 0; + gMenuCallback = debug_sub_808D2BC; + return FALSE; +} + +static bool8 debug_sub_808CFFC(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(gUnknown_Debug_083C1465) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C1465), gUnknown_Debug_083C1465); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C1465), 0, 28); + sFlagAndVarTest_WhichSubmenu = 1; + gMenuCallback = debug_sub_808D2BC; + return FALSE; +} + +static bool8 debug_sub_808D054(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(gUnknown_Debug_083C1503) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C1503), gUnknown_Debug_083C1503); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C1503), 0, 28); + sFlagAndVarTest_WhichSubmenu = 2; + gMenuCallback = debug_sub_808D2BC; + return FALSE; +} + +static bool8 debug_sub_808D0AC(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(gUnknown_Debug_083C158A) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C158A), gUnknown_Debug_083C158A); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C158A), 0, 28); + sFlagAndVarTest_WhichSubmenu = 3; + gMenuCallback = debug_sub_808D2BC; + return FALSE; +} + +static bool8 debug_sub_808D104(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(gUnknown_Debug_083C1647) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C1647), gUnknown_Debug_083C1647); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C1647), 0, 28); + sFlagAndVarTest_WhichSubmenu = 4; + gMenuCallback = debug_sub_808D2BC; + return FALSE; +} + +static bool8 debug_sub_808D15C(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(gUnknown_Debug_083C1712) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C1712), gUnknown_Debug_083C1712); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C1712), 0, 28); + sFlagAndVarTest_WhichSubmenu = 5; + gMenuCallback = debug_sub_808D2BC; + return FALSE; +} + +static bool8 debug_sub_808D1B4(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(gUnknown_Debug_083C17F8) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C17F8), gUnknown_Debug_083C17F8); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C17F8), 0, 28); + sFlagAndVarTest_WhichSubmenu = 6; + gMenuCallback = debug_sub_808D2BC; + return FALSE; +} + +static bool8 debug_sub_808D20C(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * 7 + 1); + Menu_PrintItems(2, 1, 7, gUnknown_Debug_083C18B8); + InitMenu(0, 1, 1, 7, 0, 28); + sFlagAndVarTest_WhichSubmenu = 7; + gMenuCallback = debug_sub_808D2BC; + return FALSE; +} + +static bool8 debug_sub_808D264(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * 5 + 1); + Menu_PrintItems(2, 1, 5, gDebug_0x83C1974); + InitMenu(0, 1, 1, 5, 0, 28); + sFlagAndVarTest_WhichSubmenu = 8; + gMenuCallback = debug_sub_808D2BC; + return FALSE; +} + +static bool8 debug_sub_808D2BC(void) +{ + s8 input = Menu_ProcessInput(); + s8 cursorPos = Menu_GetCursorPos(); + + debug_sub_808D308(sFlagAndVarTest_WhichSubmenu, cursorPos); + debug_sub_808D358(sFlagAndVarTest_WhichSubmenu); + if (input == -2) + return FALSE; + if (input == -1) + { + CloseMenu(); + return TRUE; + } + return FALSE; +} + +static void debug_sub_808D308(u8 whichMenu, u8 cursorPos) +{ + if (gMain.newKeys & R_BUTTON) + { + if (!FlagGet(gUnknown_Debug_083C19C6[whichMenu][cursorPos])) + FlagSet(gUnknown_Debug_083C19C6[whichMenu][cursorPos]); + else + FlagClear(gUnknown_Debug_083C19C6[whichMenu][cursorPos]); + } +} + +static void debug_sub_808D358(u8 whichMenu) +{ + u8 i; + + for (i = 0; i < gUnknown_Debug_083C19BC[whichMenu]; i++) + { + PrintBool(28, 2 * i + 1, FlagGet(gUnknown_Debug_083C19C6[whichMenu][i]) ? 1 : 0); + } +} + +static bool8 ControlFlags_FH_OBJ_InitSubmenu(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 28, 2 * ARRAY_COUNT(sMenuActions_ControlFlags_FH_OBJ) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(sMenuActions_ControlFlags_FH_OBJ), sMenuActions_ControlFlags_FH_OBJ); + InitMenu(0, 1, 1, ARRAY_COUNT(sMenuActions_ControlFlags_FH_OBJ), 0, 27); + gMenuCallback = ControlFlags_FH_OBJ_HandleInput; + return FALSE; +} + +static bool8 ControlFlags_FH_OBJ_HandleInput(void) +{ + s8 input = Menu_ProcessInput(); + + if (input == -2) + return FALSE; + if (input == -1) + { + CloseMenu(); + return TRUE; + } + gMenuCallback = sMenuActions_ControlFlags_FH_OBJ[input].func; + return FALSE; +} + +static bool8 ControlFlags_FH_OBJ00_08_InitSubsubmenu(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(sMenuActions_ControlFlags_FH_OBJ00_08) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(sMenuActions_ControlFlags_FH_OBJ00_08), sMenuActions_ControlFlags_FH_OBJ00_08); + InitMenu(0, 1, 1, ARRAY_COUNT(sMenuActions_ControlFlags_FH_OBJ00_08), 0, 28); + sFlagAndVarTest_WhichSubmenu = 0; + gMenuCallback = ControlFlags_FH_OBJ_Subsubmenu_HandleInput; + return FALSE; +} + +static bool8 ControlFlags_FH_OBJ09_15_InitSubsubmenu(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * 7 + 1); + Menu_PrintItems(2, 1, 7, sMenuActions_ControlFlags_FH_OBJ09_15); + InitMenu(0, 1, 1, 7, 0, 28); + sFlagAndVarTest_WhichSubmenu = 1; + gMenuCallback = ControlFlags_FH_OBJ_Subsubmenu_HandleInput; + return FALSE; +} + +static bool8 ControlFlags_FH_OBJ_Subsubmenu_HandleInput(void) +{ + s8 input = Menu_ProcessInput(); + s8 cursorPos = Menu_GetCursorPos(); + + ControlFlags_FH_OBJ_FlagToggle(sFlagAndVarTest_WhichSubmenu, cursorPos); + ControlFlags_FH_OBJ_UpdateDisplay(sFlagAndVarTest_WhichSubmenu); + if (input == -2) + return FALSE; + if (input == -1) + { + CloseMenu(); + return TRUE; + } + return FALSE; +} + +static void ControlFlags_FH_OBJ_FlagToggle(u8 whichMenu, u8 cursorPos) +{ + if (gMain.newKeys & R_BUTTON) + { + if (!FlagGet(sControlFlags_FH_OBJ_FlagsArrays[whichMenu][cursorPos])) + FlagSet(sControlFlags_FH_OBJ_FlagsArrays[whichMenu][cursorPos]); + else + FlagClear(sControlFlags_FH_OBJ_FlagsArrays[whichMenu][cursorPos]); + } +} + +static void ControlFlags_FH_OBJ_UpdateDisplay(u8 whichMenu) +{ + u8 i; + + for (i = 0; i < sControlFlags_FH_OBJ_CountsArray[whichMenu]; i++) + { + PrintBool(28, 2 * i + 1, FlagGet(sControlFlags_FH_OBJ_FlagsArrays[whichMenu][i]) ? 1 : 0); + } +} + +static bool8 ControlFlags_FH_InitSubmenu(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 28, 2 * ARRAY_COUNT(gUnknown_Debug_083C11CC) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C11CC), gUnknown_Debug_083C11CC); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C11CC), 0, 27); + gMenuCallback = debug_sub_808D650; + return FALSE; +} + +static bool8 debug_sub_808D650(void) +{ + s8 input = Menu_ProcessInput(); + + if (input == -2) + return FALSE; + if (input == -1) + { + CloseMenu(); + return TRUE; + } + gMenuCallback = gUnknown_Debug_083C11CC[input].func; + return FALSE; +} + +static bool8 debug_sub_808D694(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(gUnknown_Debug_083C1212) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C1212), gUnknown_Debug_083C1212); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C1212), 0, 28); + sFlagAndVarTest_WhichSubmenu = 0; + gMenuCallback = debug_sub_808D744; + return FALSE; +} + +static bool8 debug_sub_808D6EC(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * 7 + 1); + Menu_PrintItems(2, 1, 7, gUnknown_Debug_083C1288); + InitMenu(0, 1, 1, 7, 0, 28); + sFlagAndVarTest_WhichSubmenu = 1; + gMenuCallback = debug_sub_808D744; + return FALSE; +} + +static bool8 debug_sub_808D744(void) +{ + s8 input = Menu_ProcessInput(); + s8 cursorPos = Menu_GetCursorPos(); + + debug_sub_808D790(sFlagAndVarTest_WhichSubmenu, cursorPos); + debug_sub_808D7E0(sFlagAndVarTest_WhichSubmenu); + if (input == -2) + return FALSE; + if (input == -1) + { + CloseMenu(); + return TRUE; + } + return FALSE; +} + +static void debug_sub_808D790(u8 whichMenu, u8 cursorPos) +{ + if (gMain.newKeys & R_BUTTON) + { + if (!FlagGet(gUnknown_Debug_083C12D2[whichMenu][cursorPos])) + FlagSet(gUnknown_Debug_083C12D2[whichMenu][cursorPos]); + else + FlagClear(gUnknown_Debug_083C12D2[whichMenu][cursorPos]); + } +} + +static void debug_sub_808D7E0(u8 whichMenu) +{ + u8 i; + + for (i = 0; i < gUnknown_Debug_083C12D0[whichMenu]; i++) + { + PrintBool(28, 2 * i + 1, FlagGet(gUnknown_Debug_083C12D2[whichMenu][i]) ? 1 : 0); + } +} + +static bool8 ControlFlags_BallVanishFlag_InitSubmenu(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 28, 2 * ARRAY_COUNT(gUnknown_Debug_083C1A78) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C1A78), gUnknown_Debug_083C1A78); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C1A78), 0, 27); + gMenuCallback = debug_sub_808D894; + return FALSE; +} + +static bool8 debug_sub_808D894(void) +{ + s8 input = Menu_ProcessInput(); + + if (input == -2) + return FALSE; + if (input == -1) + { + CloseMenu(); + return TRUE; + } + gMenuCallback = gUnknown_Debug_083C1A78[input].func; + return FALSE; +} + +static bool8 debug_sub_808D8D8(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(gUnknown_Debug_083C1A9C) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C1A9C), gUnknown_Debug_083C1A9C); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C1A9C), 0, 28); + sFlagAndVarTest_WhichSubmenu = 0; + gMenuCallback = debug_sub_808D930; + return FALSE; +} + +static bool8 debug_sub_808D930(void) +{ + s8 input = Menu_ProcessInput(); + s8 cursorPos = Menu_GetCursorPos(); + + debug_sub_808D97C(sFlagAndVarTest_WhichSubmenu, cursorPos); + debug_sub_808D9CC(sFlagAndVarTest_WhichSubmenu); + if (input == -2) + return FALSE; + if (input == -1) + { + CloseMenu(); + return TRUE; + } + return FALSE; +} + +static void debug_sub_808D97C(u8 whichMenu, u8 cursorPos) +{ + if (gMain.newKeys & R_BUTTON) + { + if (!FlagGet(gUnknown_Debug_083C1AAE[whichMenu][cursorPos])) + FlagSet(gUnknown_Debug_083C1AAE[whichMenu][cursorPos]); + else + FlagClear(gUnknown_Debug_083C1AAE[whichMenu][cursorPos]); + } +} + +static void debug_sub_808D9CC(u8 whichMenu) +{ + u8 i; + + for (i = 0; i < gUnknown_Debug_083C1AAC[whichMenu]; i++) + { + PrintBool(28, 2 * i + 1, FlagGet(gUnknown_Debug_083C1AAE[whichMenu][i]) ? 1 : 0); + } +} + +static bool8 ControlWorks_AnsWork_InitSubmenu(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(sMenuActions_ControlEvents_AnsWork) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(sMenuActions_ControlEvents_AnsWork), sMenuActions_ControlEvents_AnsWork); + InitMenu(0, 1, 1, ARRAY_COUNT(sMenuActions_ControlEvents_AnsWork), 0, 28); + gMenuCallback = ControlWorks_AnsWork_HandleInput; + return FALSE; +} + +static bool8 ControlWorks_AnsWork_HandleInput(void) +{ + s8 input = Menu_ProcessInput(); + /*s8 cursorPos = */Menu_GetCursorPos(); + + ControlWorks_AnsWork_AdjustRESULT(); + ControlWorks_AnsWork_PrintRESULT(); + if (input == -2) + return FALSE; + if (input == -1) + { + CloseMenu(); + return TRUE; + } + return FALSE; +} + +static void ControlWorks_AnsWork_PrintRESULT(void) +{ + PrintUnsignedShort(24, 1, gSpecialVar_Result); +} + +static void ControlWorks_AnsWork_AdjustRESULT(void) +{ + u16 delta; + + if (gMain.newKeys & R_BUTTON) + { + delta = +1; + } + else if (gMain.newKeys & L_BUTTON) + { + delta = -1; + } + else + return; + gSpecialVar_Result += delta; +} + +static bool8 ControlWorks_SaveWork_InitSubmenu(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 24, 2 * ARRAY_COUNT(sMenuAction_ControlWorks_SaveWork) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(sMenuAction_ControlWorks_SaveWork), sMenuAction_ControlWorks_SaveWork); + InitMenu(0, 1, 1, ARRAY_COUNT(sMenuAction_ControlWorks_SaveWork), 0, 23); + gMenuCallback = ControlWorks_SaveWork_HandleInput; + return FALSE; +} + +static bool8 ControlWorks_SaveWork_HandleInput(void) +{ + s8 input = Menu_ProcessInput(); + + if (input == -2) + return FALSE; + if (input == -1) + { + CloseMenu(); + return TRUE; + } + gMenuCallback = sMenuAction_ControlWorks_SaveWork[input].func; + return FALSE; +} + +static bool8 ControlWorks_SaveWork_Town_InitSubsubmenu(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(sMenuActions_SaveWork_Town) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(sMenuActions_SaveWork_Town), sMenuActions_SaveWork_Town); + InitMenu(0, 1, 1, ARRAY_COUNT(sMenuActions_SaveWork_Town), 0, 28); + sFlagAndVarTest_WhichSubmenu = 0; + gMenuCallback = ControlWorks_SaveWork_Subsubmenu_HandleInput; + return FALSE; +} + +static bool8 ControlWorks_SaveWork_City_InitSubsubmenu(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(sMenuActions_SaveWork_City) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(sMenuActions_SaveWork_City), sMenuActions_SaveWork_City); + InitMenu(0, 1, 1, ARRAY_COUNT(sMenuActions_SaveWork_City), 0, 28); + sFlagAndVarTest_WhichSubmenu = 1; + gMenuCallback = ControlWorks_SaveWork_Subsubmenu_HandleInput; + return FALSE; +} + +static bool8 ControlWorks_SaveWork_Route101To109_InitSubsubmenu(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(sMenuActions_SaveWork_Route101To109) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(sMenuActions_SaveWork_Route101To109), sMenuActions_SaveWork_Route101To109); + InitMenu(0, 1, 1, ARRAY_COUNT(sMenuActions_SaveWork_Route101To109), 0, 28); + sFlagAndVarTest_WhichSubmenu = 2; + gMenuCallback = ControlWorks_SaveWork_Subsubmenu_HandleInput; + return FALSE; +} + +static bool8 ControlWorks_SaveWork_Route110To118_InitSubsubmenu(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(sMenuActions_SaveWork_Route110To118) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(sMenuActions_SaveWork_Route110To118), sMenuActions_SaveWork_Route110To118); + InitMenu(0, 1, 1, ARRAY_COUNT(sMenuActions_SaveWork_Route110To118), 0, 28); + sFlagAndVarTest_WhichSubmenu = 3; + gMenuCallback = ControlWorks_SaveWork_Subsubmenu_HandleInput; + return FALSE; +} + +static bool8 ControlWorks_SaveWork_Route119To127_InitSubsubmenu(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(sMenuActions_SaveWork_Route119To127) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(sMenuActions_SaveWork_Route119To127), sMenuActions_SaveWork_Route119To127); + InitMenu(0, 1, 1, ARRAY_COUNT(sMenuActions_SaveWork_Route119To127), 0, 28); + sFlagAndVarTest_WhichSubmenu = 4; + gMenuCallback = ControlWorks_SaveWork_Subsubmenu_HandleInput; + return FALSE; +} + +static bool8 ControlWorks_SaveWork_Route128To134_InitSubsubmenu(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(sMenuActions_SaveWork_Route128To134) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(sMenuActions_SaveWork_Route128To134), sMenuActions_SaveWork_Route128To134); + InitMenu(0, 1, 1, ARRAY_COUNT(sMenuActions_SaveWork_Route128To134), 0, 28); + sFlagAndVarTest_WhichSubmenu = 5; + gMenuCallback = ControlWorks_SaveWork_Subsubmenu_HandleInput; + return FALSE; +} + +static bool8 ControlWorks_SaveWork_RoomTown_InitSubsubmenu(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * 6 + 1); + Menu_PrintItems(2, 1, 6, sMenuActions_SaveWork_RoomTown); // overflows into the next menu + InitMenu(0, 1, 1, 6, 0, 28); + sFlagAndVarTest_WhichSubmenu = 6; + gMenuCallback = ControlWorks_SaveWork_Subsubmenu_HandleInput; + return FALSE; +} + +static bool8 ControlWorks_SaveWork_RoomCity_InitSubsubmenu(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(sMenuActions_SaveWork_RoomCity) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(sMenuActions_SaveWork_RoomCity), sMenuActions_SaveWork_RoomCity); + InitMenu(0, 1, 1, ARRAY_COUNT(sMenuActions_SaveWork_RoomCity), 0, 28); + sFlagAndVarTest_WhichSubmenu = 7; + gMenuCallback = ControlWorks_SaveWork_Subsubmenu_HandleInput; + return FALSE; +} + +static bool8 ControlWorks_SaveWork_Dungeon_InitSubsubmenu(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(sMenuActions_SaveWork_Dungeon) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(sMenuActions_SaveWork_Dungeon), sMenuActions_SaveWork_Dungeon); + InitMenu(0, 1, 1, ARRAY_COUNT(sMenuActions_SaveWork_Dungeon), 0, 28); + sFlagAndVarTest_WhichSubmenu = 8; + gMenuCallback = ControlWorks_SaveWork_Subsubmenu_HandleInput; + return FALSE; +} + +static bool8 ControlWorks_SaveWork_Subsubmenu_HandleInput(void) +{ + s8 input = Menu_ProcessInput(); + s8 cursorPos = Menu_GetCursorPos(); + + debug_sub_808DF64(sFlagAndVarTest_WhichSubmenu, cursorPos); + debug_sub_808DF04(sFlagAndVarTest_WhichSubmenu); + if (input == -2) + return FALSE; + if (input == -1) + { + CloseMenu(); + return TRUE; + } + return FALSE; +} + +static void debug_sub_808DF04(u8 whichMenu) +{ + u8 i; + + for (i = 0; i < gUnknown_Debug_083C457C[whichMenu]; i++) + { + PrintUnsignedShort(24, 2 * i + 1, VarGet(gUnknown_Debug_083C4586[whichMenu][i])); + } +} + +static void debug_sub_808DF64(u8 whichMenu, u8 cursorPos) +{ + u16 delta; + + if (gMain.newKeys & R_BUTTON) + delta = +1; + else if (gMain.newKeys & L_BUTTON) + delta = -1; + else + return; + VarSet(gUnknown_Debug_083C4586[whichMenu][cursorPos], VarGet(gUnknown_Debug_083C4586[whichMenu][cursorPos]) + delta); +} + +static bool8 ControlWorks_SaveWorkPart2_InitSubmenu(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 24, 2 * ARRAY_COUNT(sMenuActions_ControlWorks_SaveWorkPart2) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(sMenuActions_ControlWorks_SaveWorkPart2), sMenuActions_ControlWorks_SaveWorkPart2); + InitMenu(0, 1, 1, ARRAY_COUNT(sMenuActions_ControlWorks_SaveWorkPart2), 0, 23); + gMenuCallback = ControlWorks_SaveWorkPart2_HandleInput; + return FALSE; +} + +static bool8 ControlWorks_SaveWorkPart2_HandleInput(void) +{ + s8 input = Menu_ProcessInput(); + + if (input == -2) + return FALSE; + if (input == -1) + { + CloseMenu(); + return TRUE; + } + gMenuCallback = sMenuActions_ControlWorks_SaveWorkPart2[input].func; + return FALSE; +} + +static bool8 ControlWorks_SaveWorkPart2_SP_InitSubsubmenu(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * 6 + 1); + Menu_PrintItems(2, 1, 6, gUnknown_Debug_083C3AA0); + InitMenu(0, 1, 1, 6, 0, 28); + sFlagAndVarTest_WhichSubmenu = 0; + gMenuCallback = debug_sub_808E264; + return FALSE; +} + +static bool8 ControlWorks_SaveWorkPart2_RoomR110Part1TrickHouse_InitSubsubmenu(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * 5 + 1); + Menu_PrintItems(2, 1, 5, gUnknown_Debug_83C3AE0); + InitMenu(0, 1, 1, 5, 0, 28); + sFlagAndVarTest_WhichSubmenu = 1; + gMenuCallback = debug_sub_808E264; + return FALSE; +} + +static bool8 ControlWorks_SaveWorkPart2_RoomR110Part2_InitSubsubmenu(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(gUnknown_Debug_83C3B28) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_83C3B28), gUnknown_Debug_83C3B28); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_83C3B28), 0, 28); + sFlagAndVarTest_WhichSubmenu = 2; + gMenuCallback = debug_sub_808E264; + return FALSE; +} + +static bool8 ControlWorks_SaveWorkPart2_RoomLoad_InitSubsubmenu(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * 2 + 1); + Menu_PrintItems(2, 1, 2, gUnknown_Debug_83C3B70); + InitMenu(0, 1, 1, 2, 0, 28); + sFlagAndVarTest_WhichSubmenu = 3; + gMenuCallback = debug_sub_808E264; + return FALSE; +} + +static bool8 debug_sub_808E1B4(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(gUnknown_Debug_83C3BB8) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_83C3BB8), gUnknown_Debug_83C3BB8); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_83C3BB8), 0, 28); + sFlagAndVarTest_WhichSubmenu = 4; + gMenuCallback = debug_sub_808E264; + return FALSE; +} + +static bool8 debug_sub_808E20C(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * 6 + 1); + Menu_PrintItems(2, 1, 6, gUnknown_Debug_83C3C00); + InitMenu(0, 1, 1, 6, 0, 28); + sFlagAndVarTest_WhichSubmenu = 5; + gMenuCallback = debug_sub_808E264; + return FALSE; +} + +static bool8 debug_sub_808E264(void) +{ + s8 input = Menu_ProcessInput(); + s8 cursorPos = Menu_GetCursorPos(); + + debug_sub_808E310(sFlagAndVarTest_WhichSubmenu, cursorPos); + debug_sub_808E2B0(sFlagAndVarTest_WhichSubmenu); + if (input == -2) + return FALSE; + if (input == -1) + { + CloseMenu(); + return TRUE; + } + return FALSE; +} + +static void debug_sub_808E2B0(u8 whichMenu) +{ + u8 i; + + for (i = 0; i < sControlWorks_SaveWork_CountsArray[whichMenu]; i++) + { + PrintUnsignedShort(24, 2 * i + 1, VarGet(sControlWorks_SaveWork_ItemArrays[whichMenu][i])); + } +} + +static void debug_sub_808E310(u8 whichMenu, u8 cursorPos) +{ + u16 delta; + + if (gMain.newKeys & R_BUTTON) + delta = +1; + else if (gMain.newKeys & L_BUTTON) + delta = -1; + else + return; + VarSet(sControlWorks_SaveWork_ItemArrays[whichMenu][cursorPos], VarGet(sControlWorks_SaveWork_ItemArrays[whichMenu][cursorPos]) + delta); +} + +static bool8 ControlWorks_SysWork_InitSubmenu(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 24, 2 * ARRAY_COUNT(gUnknown_Debug_083C32AC) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C32AC), gUnknown_Debug_083C32AC); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C32AC), 0, 23); + gMenuCallback = debug_sub_808E3BC; + return FALSE; +} + +static bool8 debug_sub_808E3BC(void) +{ + s8 input = Menu_ProcessInput(); + + if (input == -2) + return FALSE; + if (input == -1) + { + CloseMenu(); + return TRUE; + } + gMenuCallback = gUnknown_Debug_083C32AC[input].func; + return FALSE; +} + +static bool8 debug_sub_808E400(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(gUnknown_Debug_083C347C) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C347C), gUnknown_Debug_083C347C); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C347C), 0, 28); + sFlagAndVarTest_WhichSubmenu = 0; + gMenuCallback = debug_sub_808E5B8; + return FALSE; +} + +static bool8 debug_sub_808E458(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(gUnknown_Debug_083C3494) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C3494), gUnknown_Debug_083C3494); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C3494), 0, 28); + sFlagAndVarTest_WhichSubmenu = 1; + gMenuCallback = debug_sub_808E5B8; + return FALSE; +} + +static bool8 debug_sub_808E4B0(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(gUnknown_Debug_083C34A4) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C34A4), gUnknown_Debug_083C34A4); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C34A4), 0, 28); + sFlagAndVarTest_WhichSubmenu = 2; + gMenuCallback = debug_sub_808E5B8; + return FALSE; +} + +static bool8 debug_sub_808E508(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(gUnknown_Debug_083C34D4) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C34D4), gUnknown_Debug_083C34D4); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C34D4), 0, 28); + sFlagAndVarTest_WhichSubmenu = 3; + gMenuCallback = debug_sub_808E5B8; + return FALSE; +} + +static bool8 debug_sub_808E560(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(gUnknown_Debug_083C351C) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C351C), gUnknown_Debug_083C351C); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C351C), 0, 28); + sFlagAndVarTest_WhichSubmenu = 4; + gMenuCallback = debug_sub_808E5B8; + return FALSE; +} + +static bool8 debug_sub_808E5B8(void) +{ + s8 input = Menu_ProcessInput(); + s8 cursorPos = Menu_GetCursorPos(); + + debug_sub_808E604(sFlagAndVarTest_WhichSubmenu, cursorPos); + debug_sub_808E660(sFlagAndVarTest_WhichSubmenu); + if (input == -2) + return FALSE; + if (input == -1) + { + CloseMenu(); + return TRUE; + } + return FALSE; +} + +static void debug_sub_808E604(u8 whichMenu, u8 cursorPos) +{ + u16 delta; + + if (gMain.newAndRepeatedKeys & R_BUTTON) + delta = +1; + else if (gMain.newAndRepeatedKeys & L_BUTTON) + delta = -1; + else + return; + VarSet(gUnknown_Debug_083C354A[whichMenu][cursorPos], VarGet(gUnknown_Debug_083C354A[whichMenu][cursorPos]) + delta); +} + +static void debug_sub_808E660(u8 whichMenu) +{ + u8 i; + + for (i = 0; i < gUnknown_Debug_083C3544[whichMenu]; i++) + { + PrintUnsignedShort(24, 2 * i + 1, VarGet(gUnknown_Debug_083C354A[whichMenu][i])); + } +} + +static bool8 ControlWorks_LocalWork_InitSubmenu(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 24, 2 * ARRAY_COUNT(gUnknown_Debug_083C4644) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C4644), gUnknown_Debug_083C4644); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C4644), 0, 23); + gMenuCallback = debug_sub_808E710; + return FALSE; +} + +static bool8 debug_sub_808E710(void) +{ + s8 input = Menu_ProcessInput(); + + if (input == -2) + return FALSE; + if (input == -1) + { + CloseMenu(); + return TRUE; + } + gMenuCallback = gUnknown_Debug_083C4644[input].func; + return FALSE; +} + +static bool8 debug_sub_808E754(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(gUnknown_Debug_083C470C) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C470C), gUnknown_Debug_083C470C); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C470C), 0, 28); + sFlagAndVarTest_WhichSubmenu = 0; + gMenuCallback = debug_sub_808E804; + return FALSE; +} + +static bool8 debug_sub_808E7AC(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(gUnknown_Debug_083C4754C) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C4754C), gUnknown_Debug_083C4754C); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C4754C), 0, 28); + sFlagAndVarTest_WhichSubmenu = 1; + gMenuCallback = debug_sub_808E804; + return FALSE; +} + +static bool8 debug_sub_808E804(void) +{ + s8 input = Menu_ProcessInput(); + s8 cursorPos = Menu_GetCursorPos(); + + debug_sub_808E850(sFlagAndVarTest_WhichSubmenu, cursorPos); + debug_sub_808E8AC(sFlagAndVarTest_WhichSubmenu); + if (input == -2) + return FALSE; + if (input == -1) + { + CloseMenu(); + return TRUE; + } + return FALSE; +} + +static void debug_sub_808E850(u8 whichMenu, u8 cursorPos) +{ + u16 delta; + + if (gMain.newKeys & R_BUTTON) + delta = +1; + else if (gMain.newKeys & L_BUTTON) + delta = -1; + else + return; + VarSet(gUnknown_Debug_083C478E[whichMenu][cursorPos], VarGet(gUnknown_Debug_083C478E[whichMenu][cursorPos]) + delta); +} + +static void debug_sub_808E8AC(u8 whichMenu) +{ + u8 i; + + for (i = 0; i < gUnknown_Debug_083C478C[whichMenu]; i++) + { + PrintUnsignedShort(24, 2 * i + 1, VarGet(gUnknown_Debug_083C478E[whichMenu][i])); + } +} + +static bool8 ControlWorks_ObjWork_InitSubmenu(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 24, 2 * ARRAY_COUNT(gUnknown_Debug_083C35C4) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C35C4), gUnknown_Debug_083C35C4); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C35C4), 0, 23); + gMenuCallback = debug_sub_808E95C; + return FALSE; +} + +static bool8 debug_sub_808E95C(void) +{ + s8 input = Menu_ProcessInput(); + + if (input == -2) + return FALSE; + if (input == -1) + { + CloseMenu(); + return TRUE; + } + gMenuCallback = gUnknown_Debug_083C35C4[input].func; + return FALSE; +} + +static bool8 debug_sub_808E9A0(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(gUnknown_Debug_083C369C) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C369C), gUnknown_Debug_083C369C); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C369C), 0, 28); + sFlagAndVarTest_WhichSubmenu = 0; + gMenuCallback = debug_sub_808EA50; + return FALSE; +} + +static bool8 debug_sub_808E9F8(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 29, 2 * ARRAY_COUNT(gUnknown_Debug_083C36E4) + 1); + Menu_PrintItems(2, 1, ARRAY_COUNT(gUnknown_Debug_083C36E4), gUnknown_Debug_083C36E4); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C36E4), 0, 28); + sFlagAndVarTest_WhichSubmenu = 1; + gMenuCallback = debug_sub_808EA50; + return FALSE; +} + +static bool8 debug_sub_808EA50(void) +{ + s8 input = Menu_ProcessInput(); + s8 cursorPos = Menu_GetCursorPos(); + + debug_sub_808EAFC(sFlagAndVarTest_WhichSubmenu, cursorPos); + debug_sub_808EA9C(sFlagAndVarTest_WhichSubmenu); + if (input == -2) + return FALSE; + if (input == -1) + { + CloseMenu(); + return TRUE; + } + return FALSE; +} + +static void debug_sub_808EA9C(u8 whichMenu) +{ + u8 i; + + for (i = 0; i < gUnknown_Debug_083C371C[whichMenu]; i++) + { + PrintUnsignedShort(24, 2 * i + 1, VarGet(gUnknown_Debug_083C371E[whichMenu][i])); + } +} + +static void debug_sub_808EAFC(u8 whichMenu, u8 cursorPos) +{ + u16 delta; + + if (gMain.newKeys & R_BUTTON) + delta = +1; + else if (gMain.newKeys & L_BUTTON) + delta = -1; + else + return; + VarSet(gUnknown_Debug_083C371E[whichMenu][cursorPos], VarGet(gUnknown_Debug_083C371E[whichMenu][cursorPos]) + delta); +} + +static bool8 TrickRelated_Level_InitSubmenu(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 12, 2 * ARRAY_COUNT(gUnknown_Debug_083C47F0) + 3); + Menu_PrintText(gUnknown_Debug_083C47B2, 1, 1); + Menu_PrintItems(2, 3, ARRAY_COUNT(gUnknown_Debug_083C47F0), gUnknown_Debug_083C47F0); + InitMenu(0, 1, 3, ARRAY_COUNT(gUnknown_Debug_083C47F0), 0, 11); + gMenuCallback = debug_sub_808EC10; + return FALSE; +} + +static bool8 TrickRelated_TrickMaster_InitSubmenu(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 13, 2 * ARRAY_COUNT(gUnknown_Debug_083C4888) + 3); + Menu_PrintText(gUnknown_Debug_083C4830, 1, 1); + Menu_PrintItems(2, 3, ARRAY_COUNT(gUnknown_Debug_083C4888), gUnknown_Debug_083C4888); + InitMenu(0, 1, 3, ARRAY_COUNT(gUnknown_Debug_083C4888), 0, 12); + gMenuCallback = debug_sub_808EC5C; + return FALSE; +} + +static bool8 debug_sub_808EC10(void) +{ + s8 input = Menu_ProcessInput(); + s8 cursorPos = Menu_GetCursorPos(); + + if (input == -2) + { + return FALSE; + } + if (input == -1) + { + return FALSE; + } + gSaveBlock1.vars[VAR_TRICK_HOUSE_ROOMS_COMPLETED - VARS_START] = cursorPos; + CloseMenu(); + return TRUE; +} + +static bool8 debug_sub_808EC5C(void) +{ + s8 input = Menu_ProcessInput(); + s8 cursorPos = Menu_GetCursorPos(); + + if (input == -2) + { + return FALSE; + } + if (input == -1) + { + return FALSE; + } + VarSet(VAR_TRICK_HOUSE_ENTRANCE_STATE_3, cursorPos); + CloseMenu(); + return TRUE; +} + +static bool8 PreviewGraphics_Show(void) +{ + BeginNormalPaletteFade(0xffffffff, 0, 0, 16, 0); + gMenuCallback = debug_sub_808ECD0; + return FALSE; +} + +static bool8 debug_sub_808ECD0(void) +{ + if (!UpdatePaletteFade()) + { + CloseMenu(); + PrepareDebugOverlayBeforeShowingContestPainting(2); + SetMainCallback2(CB2_ContestPainting); + gMain.savedCallback = debug_sub_808B868; + return TRUE; + } + return FALSE; +} + +static bool8 DummyMenuAction(void) +{ + return FALSE; +} + +static void PicTest_SelectPokemon(void) +{ + if (gMain.newAndRepeatedKeys & DPAD_LEFT) + { + if (sPicTest_Species != SPECIES_BULBASAUR) + sPicTest_Species--; + } + if (gMain.newAndRepeatedKeys & DPAD_RIGHT) + { + if (sPicTest_Species != SPECIES_CHIMECHO) + sPicTest_Species++; + } + if (gMain.newAndRepeatedKeys & L_BUTTON) + { + if (sPicTest_Species >= SPECIES_BULBASAUR + 10) + sPicTest_Species -= 10; + else + sPicTest_Species = SPECIES_BULBASAUR; + } + if (gMain.newAndRepeatedKeys & R_BUTTON) + { + if (sPicTest_Species <= SPECIES_CHIMECHO - 10) + sPicTest_Species += 10; + else + sPicTest_Species = SPECIES_CHIMECHO; + } +} + +static void PicTest_SelectPersonality(void) +{ + if (gMain.newAndRepeatedKeys & DPAD_LEFT) + { + if (sPicTest_Personality != 0) + sPicTest_Personality--; + } + if (gMain.newAndRepeatedKeys & DPAD_RIGHT) + { + if (sPicTest_Personality != UINT32_MAX) + sPicTest_Personality++; + } + if (gMain.newAndRepeatedKeys & L_BUTTON) + { + if (sPicTest_Personality >= 0x10) + sPicTest_Personality -= 0x10; + else + sPicTest_Personality = 0; + } + if (gMain.newAndRepeatedKeys & R_BUTTON) + { + if (sPicTest_Personality <= UINT32_MAX - 0x10) + sPicTest_Personality += 0x10; + else + sPicTest_Personality = UINT32_MAX; + } + if ((gMain.newKeys & (L_BUTTON | R_BUTTON)) == (L_BUTTON | R_BUTTON)) + { + sPicTest_Personality = UINT32_MAX; + } +} + +static void ContestPicTest_SelectContestType(void) +{ + if (gMain.newAndRepeatedKeys & DPAD_LEFT) + { + if (sPicTest_ContestType != CONTEST_COOL + 1) + sPicTest_ContestType--; + } + if (gMain.newAndRepeatedKeys & DPAD_RIGHT) + { + if (sPicTest_ContestType != CONTEST_TOUGH + 1) + sPicTest_ContestType++; + } + if (gMain.newAndRepeatedKeys & L_BUTTON) + sPicTest_ContestType = CONTEST_COOL + 1; + if (gMain.newAndRepeatedKeys & R_BUTTON) + sPicTest_ContestType = CONTEST_TOUGH + 1; +} + +static void MuseumArtPicTest_SelectTitleType(void) +{ + if (gMain.newAndRepeatedKeys & DPAD_LEFT) + { + if (sPicTest_MuseumArtTitleType != 1) + sPicTest_MuseumArtTitleType--; + } + if (gMain.newAndRepeatedKeys & DPAD_RIGHT) + { + if (sPicTest_MuseumArtTitleType != 15) + sPicTest_MuseumArtTitleType++; + } + if (gMain.newAndRepeatedKeys & L_BUTTON) + { + if (sPicTest_MuseumArtTitleType >= 11) + sPicTest_MuseumArtTitleType -= 10; + else + sPicTest_MuseumArtTitleType = 0; // Causes underflow when pressing left on the dpad shortly thereafter. + } + if (gMain.newAndRepeatedKeys & R_BUTTON) + { + if (sPicTest_MuseumArtTitleType <= 5) + sPicTest_MuseumArtTitleType += 10; + else + sPicTest_MuseumArtTitleType = 15; + } +} + +static void PreviewPicTest_SelectType(void) +{ + if (gMain.newAndRepeatedKeys & DPAD_LEFT) + { + if (sPicTest_PreviewType != 1) + sPicTest_PreviewType--; + } + if (gMain.newAndRepeatedKeys & DPAD_RIGHT) + { + if (sPicTest_PreviewType != 15) + sPicTest_PreviewType++; + } + if (gMain.newAndRepeatedKeys & L_BUTTON) + { + if (sPicTest_PreviewType >= 11) + sPicTest_PreviewType -= 10; + else + sPicTest_PreviewType = 0; // Causes underflow when pressing left on the dpad shortly thereafter. + } + if (gMain.newAndRepeatedKeys & R_BUTTON) + { + if (sPicTest_PreviewType <= 5) + sPicTest_PreviewType += 10; + else + sPicTest_PreviewType = 15; + } +} + +#ifdef NONMATCHING +static void PicTest_Redraw(u8 a0) +{ + u8 i; + u8 digit; + u16 species; + + switch (a0) + { + case 0: + case 1: + case 2: + for (i = 0; i < 8; i++) + { + digit = (sPicTest_Personality >> (4 * (7 - i))) & 0xf; + if (digit < 10) + sPicTest_StringBuffer[i] = digit + CHAR_0; + else + sPicTest_StringBuffer[i] = digit + CHAR_A - 10; + } + sPicTest_StringBuffer[i] = EOS; + Menu_PrintText(sPicTest_StringBuffer, 12, 5); + break; + } + for (i = 0; i < POKEMON_NAME_LENGTH; i++) + { + sPicTest_StringBuffer[i + 1] = CHAR_SPACE; + } + + for (i = 0, species = sPicTest_Species; gSpeciesNames[species][i] != EOS && i < POKEMON_NAME_LENGTH; i++) + { + sPicTest_StringBuffer[i + 1] = gSpeciesNames[species][i]; + } + + sPicTest_StringBuffer[0] = 0xB1; + sPicTest_StringBuffer[POKEMON_NAME_LENGTH + 1] = 0xB2; + sPicTest_StringBuffer[POKEMON_NAME_LENGTH + 2] = EOS; + switch (a0) + { + case 0: + case 1: + case 2: + Menu_PrintText(sPicTest_StringBuffer, 8, 1); + break; + default: + Menu_PrintText(sPicTest_StringBuffer, 12, 1); + break; + } + sPicTest_StringBuffer[3] = EOS; + sPicTest_StringBuffer[0] = sPicTest_Species / 100 + CHAR_0; + sPicTest_StringBuffer[1] = (sPicTest_Species % 100) / 10 + CHAR_0; + sPicTest_StringBuffer[2] = sPicTest_Species % 10 + CHAR_0; + Menu_PrintText(sPicTest_StringBuffer, 12, 3); + + switch (a0) + { + case 0: + sPicTest_StringBuffer[0] = sPicTest_ContestType / 100 + CHAR_0; + sPicTest_StringBuffer[1] = (sPicTest_ContestType % 100) / 10 + CHAR_0; + sPicTest_StringBuffer[2] = sPicTest_ContestType % 10 + CHAR_0; + Menu_PrintText(sPicTest_StringBuffer, 12, 7); + break; + case 1: + sPicTest_StringBuffer[0] = sPicTest_MuseumArtTitleType / 100 + CHAR_0; + sPicTest_StringBuffer[1] = (sPicTest_MuseumArtTitleType % 100) / 10 + CHAR_0; + sPicTest_StringBuffer[2] = sPicTest_MuseumArtTitleType % 10 + CHAR_0; + Menu_PrintText(sPicTest_StringBuffer, 12, 7); + break; + case 2: + sPicTest_StringBuffer[0] = sPicTest_PreviewType / 100 + CHAR_0; + sPicTest_StringBuffer[1] = (sPicTest_PreviewType % 100) / 10 + CHAR_0; + sPicTest_StringBuffer[2] = sPicTest_PreviewType % 10 + CHAR_0; + Menu_PrintText(sPicTest_StringBuffer, 12, 7); + break; + } +} +#else +__attribute__((naked)) void PicTest_Redraw(u8 a0) +{ + asm("\tpush\t{r4, r5, r6, r7, lr}\n" + "\tmov\tr7, r8\n" + "\tpush\t{r7}\n" + "\tlsl\tr0, r0, #0x18\n" + "\tlsr\tr6, r0, #0x18\n" + "\tcmp\tr6, #0x2\n" + "\tbgt\t._653\t@cond_branch\n" + "\tcmp\tr6, #0\n" + "\tblt\t._653\t@cond_branch\n" + "\tmov\tr3, #0x0\n" + "\tldr\tr0, ._656 @ sPicTest_Personality\n" + "\tmov\tr8, r0\n" + "\tldr\tr4, ._656 + 4 @ sPicTest_StringBuffer\n" + "\tmov\tr7, #0x7\n" + "\tmov\tr5, #0xf\n" + "._658:\n" + "\tsub\tr0, r7, r3\n" + "\tlsl\tr0, r0, #0x2\n" + "\tmov\tr1, r8\n" + "\tldr\tr2, [r1]\n" + "\tLSR\tr2, r0\n" + "\tand\tr2, r2, r5\n" + "\tcmp\tr2, #0x9\n" + "\tbhi\t._654\t@cond_branch\n" + "\tadd\tr1, r3, r4\n" + "\tadd\tr0, r2, #0\n" + "\tadd\tr0, r0, #0xa1\n" + "\tb\t._655\n" + "._657:\n" + "\t.align\t2, 0\n" + "._656:\n" + "\t.word\tsPicTest_Personality\n" + "\t.word\tsPicTest_StringBuffer\n" + "._654:\n" + "\tadd\tr1, r3, r4\n" + "\tadd\tr0, r2, #0\n" + "\tsub\tr0, r0, #0x4f\n" + "._655:\n" + "\tstrb\tr0, [r1]\n" + "\tadd\tr0, r3, #1\n" + "\tlsl\tr0, r0, #0x18\n" + "\tlsr\tr3, r0, #0x18\n" + "\tcmp\tr3, #0x7\n" + "\tbls\t._658\t@cond_branch\n" + "\tldr\tr0, ._666 @ sPicTest_StringBuffer\n" + "\tmov\tr1, #0xff\n" + "\tstrb\tr1, [r0, #0x8]\n" + "\tmov\tr1, #0xc\n" + "\tmov\tr2, #0x5\n" + "\tbl\tMenu_PrintText\n" + "._653:\n" + "\tmov\tr3, #0x0\n" + "\tldr\tr7, ._666 @ sPicTest_StringBuffer\n" + "\tldr\tr5, ._666 + 4 @ sPicTest_Species\n" + "\tldr\tr2, ._666 + 8 @ gSpeciesNames\n" + "\tmov\tr8, r2\n" + "\tadd\tr4, r7, #0\n" + "\tmov\tr2, #0x0\n" + "._659:\n" + "\tadd\tr1, r3, #1\n" + "\tadd\tr0, r1, r4\n" + "\tstrb\tr2, [r0]\n" + "\tlsl\tr1, r1, #0x18\n" + "\tlsr\tr3, r1, #0x18\n" + "\tcmp\tr3, #0x9\n" + "\tbls\t._659\t@cond_branch\n" + "\tmov\tr3, #0x0\n" + "\tldrh\tr2, [r5]\n" + "\tmov\tr0, #0xb\n" + "\tadd\tr1, r2, #0\n" + "\tmul\tr1, r1, r0\n" + "\tmov\tr2, r8\n" + "\tadd\tr0, r1, r2\n" + "\tldrb\tr0, [r0]\n" + "\tcmp\tr0, #0xff\n" + "\tbeq\t._661\t@cond_branch\n" + "\tldr\tr0, ._666 @ sPicTest_StringBuffer\n" + "\tmov\tip, r0\n" + "\tmov\tr5, r8\n" + "\tadd\tr4, r1, #0\n" + "._662:\n" + "\tadd\tr1, r3, #1\n" + "\tmov\tr0, ip\n" + "\tadd\tr2, r1, r0\n" + "\tadd\tr0, r3, r4\n" + "\tadd\tr0, r0, r5\n" + "\tldrb\tr0, [r0]\n" + "\tstrb\tr0, [r2]\n" + "\tlsl\tr1, r1, #0x18\n" + "\tlsr\tr3, r1, #0x18\n" + "\tadd\tr0, r3, r4\n" + "\tadd\tr0, r0, r5\n" + "\tldrb\tr0, [r0]\n" + "\tcmp\tr0, #0xff\n" + "\tbeq\t._661\t@cond_branch\n" + "\tcmp\tr3, #0x9\n" + "\tbls\t._662\t@cond_branch\n" + "._661:\n" + "\tmov\tr0, #0xb1\n" + "\tstrb\tr0, [r7]\n" + "\tmov\tr0, #0xb2\n" + "\tstrb\tr0, [r7, #0xb]\n" + "\tmov\tr0, #0xff\n" + "\tstrb\tr0, [r7, #0xc]\n" + "\tcmp\tr6, #0x2\n" + "\tbgt\t._664\t@cond_branch\n" + "\tcmp\tr6, #0\n" + "\tblt\t._664\t@cond_branch\n" + "\tadd\tr0, r7, #0\n" + "\tmov\tr1, #0x8\n" + "\tmov\tr2, #0x1\n" + "\tbl\tMenu_PrintText\n" + "\tb\t._665\n" + "._667:\n" + "\t.align\t2, 0\n" + "._666:\n" + "\t.word\tsPicTest_StringBuffer\n" + "\t.word\tsPicTest_Species\n" + "\t.word\tgSpeciesNames\n" + "._664:\n" + "\tldr\tr0, ._672 @ sPicTest_StringBuffer\n" + "\tmov\tr1, #0xc\n" + "\tmov\tr2, #0x1\n" + "\tbl\tMenu_PrintText\n" + "._665:\n" + "\tldr\tr5, ._672 @ sPicTest_StringBuffer\n" + "\tmov\tr0, #0xff\n" + "\tstrb\tr0, [r5, #0x3]\n" + "\tldr\tr4, ._672 + 4 @ sPicTest_Species\n" + "\tldrh\tr0, [r4]\n" + "\tmov\tr1, #0x64\n" + "\tbl\t__udivsi3\n" + "\tadd\tr0, r0, #0xa1\n" + "\tstrb\tr0, [r5]\n" + "\tldrh\tr0, [r4]\n" + "\tmov\tr1, #0x64\n" + "\tbl\t__umodsi3\n" + "\tlsl\tr0, r0, #0x10\n" + "\tlsr\tr0, r0, #0x10\n" + "\tmov\tr1, #0xa\n" + "\tbl\t__udivsi3\n" + "\tadd\tr0, r0, #0xa1\n" + "\tstrb\tr0, [r5, #0x1]\n" + "\tldrh\tr0, [r4]\n" + "\tmov\tr1, #0xa\n" + "\tbl\t__umodsi3\n" + "\tadd\tr0, r0, #0xa1\n" + "\tstrb\tr0, [r5, #0x2]\n" + "\tadd\tr0, r5, #0\n" + "\tmov\tr1, #0xc\n" + "\tmov\tr2, #0x3\n" + "\tbl\tMenu_PrintText\n" + "\tcmp\tr6, #0x1\n" + "\tbeq\t._668\t@cond_branch\n" + "\tcmp\tr6, #0x1\n" + "\tbgt\t._669\t@cond_branch\n" + "\tcmp\tr6, #0\n" + "\tbeq\t._670\t@cond_branch\n" + "\tb\t._679\n" + "._673:\n" + "\t.align\t2, 0\n" + "._672:\n" + "\t.word\tsPicTest_StringBuffer\n" + "\t.word\tsPicTest_Species\n" + "._669:\n" + "\tcmp\tr6, #0x2\n" + "\tbeq\t._674\t@cond_branch\n" + "\tb\t._679\n" + "._670:\n" + "\tldr\tr4, ._677 @ sPicTest_ContestType\n" + "\tb\t._676\n" + "._678:\n" + "\t.align\t2, 0\n" + "._677:\n" + "\t.word\tsPicTest_ContestType\n" + "._668:\n" + "\tldr\tr4, ._680 @ sPicTest_MuseumArtTitleType\n" + "._676:\n" + "\tldrb\tr0, [r4]\n" + "\tmov\tr1, #0x64\n" + "\tbl\t__udivsi3\n" + "\tadd\tr0, r0, #0xa1\n" + "\tstrb\tr0, [r5]\n" + "\tldrb\tr0, [r4]\n" + "\tmov\tr1, #0x64\n" + "\tbl\t__umodsi3\n" + "\tlsl\tr0, r0, #0x18\n" + "\tlsr\tr0, r0, #0x18\n" + "\tmov\tr1, #0xa\n" + "\tbl\t__udivsi3\n" + "\tadd\tr0, r0, #0xa1\n" + "\tstrb\tr0, [r5, #0x1]\n" + "\tldrb\tr0, [r4]\n" + "\tmov\tr1, #0xa\n" + "\tbl\t__umodsi3\n" + "\tadd\tr0, r0, #0xa1\n" + "\tstrb\tr0, [r5, #0x2]\n" + "\tadd\tr0, r5, #0\n" + "\tmov\tr1, #0xc\n" + "\tmov\tr2, #0x7\n" + "\tbl\tMenu_PrintText\n" + "\tb\t._679\n" + "._681:\n" + "\t.align\t2, 0\n" + "._680:\n" + "\t.word\tsPicTest_MuseumArtTitleType\n" + "._674:\n" + "\tldr\tr4, ._682 @ sPicTest_PreviewType\n" + "\tldrb\tr0, [r4]\n" + "\tmov\tr1, #0x64\n" + "\tbl\t__udivsi3\n" + "\tadd\tr0, r0, #0xa1\n" + "\tstrb\tr0, [r5]\n" + "\tldrb\tr0, [r4]\n" + "\tmov\tr1, #0x64\n" + "\tbl\t__umodsi3\n" + "\tlsl\tr0, r0, #0x18\n" + "\tlsr\tr0, r0, #0x18\n" + "\tmov\tr1, #0xa\n" + "\tbl\t__udivsi3\n" + "\tadd\tr0, r0, #0xa1\n" + "\tstrb\tr0, [r5, #0x1]\n" + "\tldrb\tr0, [r4]\n" + "\tmov\tr1, #0xa\n" + "\tbl\t__umodsi3\n" + "\tadd\tr0, r0, #0xa1\n" + "\tstrb\tr0, [r5, #0x2]\n" + "\tadd\tr0, r5, #0\n" + "\tmov\tr1, #0xc\n" + "\tmov\tr2, #0x7\n" + "\tbl\tMenu_PrintText\n" + "._679:\n" + "\tpop\t{r3}\n" + "\tmov\tr8, r3\n" + "\tpop\t{r4, r5, r6, r7}\n" + "\tpop\t{r0}\n" + "\tbx\tr0\n" + "._683:\n" + "\t.align\t2, 0\n" + "._682:\n" + "\t.word\tsPicTest_PreviewType"); +} +#endif // NONMATCHING + +static void PrepareDebugOverlayBeforeShowingContestPainting(u8 a0) +{ + struct ContestEntry *contestEntry = &ewram15DE0; + contestEntry->species = sPicTest_Species; + contestEntry->otId = sPicTest_OTID; + contestEntry->personality = sPicTest_Personality; + switch (a0) + { + case 0: + ewram15DDF = 0; + ewram15DDE = 0; + contestEntry->contestType = sPicTest_ContestType - 1; + StringCopy(contestEntry->trainer_name, sDummyTrainerName); + StringCopy(contestEntry->pokemon_name, sDummyNickname); + break; + case 1: + ewram15DDF = 0; + ewram15DDE = 8; + contestEntry->contestType = sPicTest_MuseumArtTitleType - 1; + StringCopy(contestEntry->pokemon_name, sDummyNickname); + break; + case 2: + ewram15DDF = 1; + ewram15DDE = 8; + contestEntry->contestType = sPicTest_PreviewType - 1; + break; + case 3: + ewram15DDF = 0; + ewram15DDE = 8; + contestEntry->contestType = 0; + StringCopy(contestEntry->pokemon_name, sDummyNickname); + break; + case 4: + ewram15DDF = 0; + ewram15DDE = 8; + contestEntry->contestType = 3; + StringCopy(contestEntry->pokemon_name, sDummyNickname); + break; + case 5: + ewram15DDF = 0; + ewram15DDE = 8; + contestEntry->contestType = 9; + StringCopy(contestEntry->pokemon_name, sDummyNickname); + break; + } +} + +static void PrintBool(u8 a0, u8 a1, bool8 a2) +{ + if (a2 == FALSE) + sPicTest_StringBuffer[0] = CHAR_0; + else + sPicTest_StringBuffer[0] = CHAR_0 + 1; + sPicTest_StringBuffer[1] = EOS; + Menu_PrintText(sPicTest_StringBuffer, a0, a1); +} + +static void PrintUnsignedShort(u8 a0, u8 a1, u16 a2) +{ + sPicTest_StringBuffer[0] = a2 / 10000 + CHAR_0; + sPicTest_StringBuffer[1] = (a2 % 10000) / 1000 + CHAR_0; + sPicTest_StringBuffer[2] = (a2 % 1000) / 100 + CHAR_0; + sPicTest_StringBuffer[3] = (a2 % 100) / 10 + CHAR_0; + sPicTest_StringBuffer[4] = a2 % 10 + CHAR_0; + sPicTest_StringBuffer[5] = EOS; + Menu_PrintText(sPicTest_StringBuffer, a0, a1); +} + +void debug_nullsub_66(void) +{ +// This function likely serves as the entry point into this file. +} + +#endif // DEBUG diff --git a/src/debug/watanabe_debug_menu.c b/src/debug/watanabe_debug_menu.c new file mode 100644 index 000000000..6c94b0466 --- /dev/null +++ b/src/debug/watanabe_debug_menu.c @@ -0,0 +1,11 @@ +#if DEBUG +#include "global.h" + +EWRAM_DATA u8 gUnknown_Debug_20389EC[0x20] = { 0 }; +EWRAM_DATA u8 gUnknown_Debug_2038A0C[0x10] = { 0 }; +EWRAM_DATA u8 gUnknown_Debug_2038A1C[4] = { 0 }; +EWRAM_DATA u8 gUnknown_Debug_2038A20[4] = { 0 }; + +u8 byte_3005E30[0x20]; + +#endif |