diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2018-04-09 15:30:34 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2018-04-09 15:30:34 -0400 |
commit | 9b961c030b28170731844916dd03caf8d0bfce1b (patch) | |
tree | e453e4a6a575331e2637b20976a33281773225b3 /src/debug/nohara_debug_menu.c | |
parent | 84c5825c8ecc9804313ec3b1a8dcc0271ee4c2cc (diff) |
through debug_sub_808F648
Diffstat (limited to 'src/debug/nohara_debug_menu.c')
-rw-r--r-- | src/debug/nohara_debug_menu.c | 305 |
1 files changed, 304 insertions, 1 deletions
diff --git a/src/debug/nohara_debug_menu.c b/src/debug/nohara_debug_menu.c index b3885ff76..dbe79dc72 100644 --- a/src/debug/nohara_debug_menu.c +++ b/src/debug/nohara_debug_menu.c @@ -1,12 +1,315 @@ #if DEBUG #include "global.h" +#include "main.h" +#include "menu.h" +#include "start_menu.h" +#include "tv.h" +#include "event_data.h" +#include "string_util.h" +#include "field_specials.h" __attribute__((unused)) static u8 gDebug_03000724; __attribute__((unused)) static u8 gDebug_03000725; -__attribute__((unused)) static u8 gDebug_03000726; +static u8 gDebug_03000726; asm(".global gDebug_03000724"); asm(".global gDebug_03000725"); asm(".global gDebug_03000726"); +bool8 debug_sub_808F414(void); +bool8 NoharaDebugMenu_TV(void); +bool8 debug_sub_808F4AC(void); +void debug_sub_808F4EC(void); +bool8 debug_sub_808F560(void); +bool8 debug_sub_808F594(void); +bool8 debug_sub_808F5D8(void); +bool8 debug_sub_808F648(void); +bool8 debug_sub_808F7B4(void); +bool8 debug_sub_8090278(void); +bool8 NoharaDebugMenu_Fan(void); +bool8 NoharaDebugMenu_BattleVSDad(void); +bool8 NoharaDebugMenu_DadAfterBattle(void); +bool8 NoharaDebugMenu_SootopolisCity(void); +bool8 NoharaDebugMenu_Embark(void); +bool8 NoharaDebugMenu_Yes9999(void); +bool8 NoharaDebugMenu_LegendsFlagOn(void); +bool8 NoharaDebugMenu_AddNumWinningStreaks(void); +void debug_sub_808F6BC(void); +void debug_sub_808F8AC(void); +void debug_sub_808F8CC(void); +void debug_sub_808FEBC(void); +void debug_sub_808FECC(void); +void debug_sub_80900AC(void); + +const u8 gUnknown_Debug_083C48C4[] = _("TV"); +const u8 gUnknown_Debug_083C48C7[] = _("Fan"); +const u8 gUnknown_Debug_083C48CB[] = _("Battle (vs Dad)"); +const u8 gUnknown_Debug_083C48DB[] = _("Dad after battle"); +const u8 gUnknown_Debug_083C48EC[] = _("SOOTOPOLIS CITY"); +const u8 gUnknown_Debug_083C48FC[] = _("Embark"); +const u8 gUnknown_Debug_083C4903[] = _("Yes 9999"); +const u8 gUnknown_Debug_083C490C[] = _("Legends flag ON"); +const u8 gUnknown_Debug_083C491C[] = _("Add num of winning streaks"); + +const struct MenuAction gUnknown_Debug_083C4938[] = { + {gUnknown_Debug_083C48C4, NoharaDebugMenu_TV}, + {gUnknown_Debug_083C48C7, NoharaDebugMenu_Fan}, + {gUnknown_Debug_083C48CB, NoharaDebugMenu_BattleVSDad}, + {gUnknown_Debug_083C48DB, NoharaDebugMenu_DadAfterBattle}, + {gUnknown_Debug_083C48EC, NoharaDebugMenu_SootopolisCity}, + {gUnknown_Debug_083C48FC, NoharaDebugMenu_Embark}, + {gUnknown_Debug_083C4903, NoharaDebugMenu_Yes9999}, + {gUnknown_Debug_083C490C, NoharaDebugMenu_LegendsFlagOn}, + {gUnknown_Debug_083C491C, NoharaDebugMenu_AddNumWinningStreaks} +}; + +bool8 InitNoharaDebugMenu(void) +{ + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 19, 19); + Menu_PrintItems(1, 1, ARRAY_COUNT(gUnknown_Debug_083C4938), gUnknown_Debug_083C4938); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C4938), 0, 18); + gMenuCallback = debug_sub_808F414; + return FALSE; +} + +bool8 debug_sub_808F414(void) +{ + s8 input = Menu_ProcessInput(); + switch (input) + { + default: + gMenuCallback = gUnknown_Debug_083C4938[input].func; + return FALSE; + case -2: + return FALSE; + case -1: + CloseMenu(); + return TRUE; + } +} + +const u8 gUnknown_Debug_083C4980[] = _("Want to change data type{CLEAR_TO 143}Press Left\n" + "to see secret type now?{CLEAR_TO 143}to switch"); + +const u8 gUnknown_Debug_083C49CA[] = _("Choose the TV data you wish to\n" + "create to check a transmission。"); + +const u8 gUnknown_Debug_083C4A09[] = _("ほうそうの はっせいりつを セット\n" + "してください ?ぶんの1に なります"); + +const u8 gUnknown_Debug_083C4A2E[] = _("SURVEY"); +const u8 gUnknown_Debug_083C4A35[] = _("RECENT HAPPENINGS"); +const u8 gUnknown_Debug_083C4A47[] = _("POKひMON FAN CLUB"); +const u8 gUnknown_Debug_083C4A58[] = _("ジム"); +const u8 gUnknown_Debug_083C4A5B[] = _("OUTBREAKS"); +const u8 gUnknown_Debug_083C4A65[] = _("NAME RATER"); +const u8 gUnknown_Debug_083C4A70[] = _("CONTEST"); +const u8 gUnknown_Debug_083C4A78[] = _("INTRODUCTION"); +const u8 gUnknown_Debug_083C4A85[] = _("SHOPPING"); +const u8 gUnknown_Debug_083C4A8E[] = _("MISFORTUNE"); +const u8 gUnknown_Debug_083C4A99[] = _("FISHING"); +const u8 gUnknown_Debug_083C4AA1[] = _("MEMORABLE DAY"); +const u8 gUnknown_Debug_083C4AAF[] = _("BRAVO TRAINER"); + +const u8 gUnknown_Debug_083C4ABD[] = { + TVSHOW_FAN_CLUB_LETTER, + TVSHOW_RECENT_HAPPENINGS, + TVSHOW_PKMN_FAN_CLUB_OPINIONS, + TVSHOW_MASS_OUTBREAK, + TVSHOW_NAME_RATER_SHOW, + TVSHOW_BRAVO_TRAINER_POKEMON_PROFILE, + TVSHOW_POKEMON_TODAY_CAUGHT, + TVSHOW_SMART_SHOPPER, + TVSHOW_POKEMON_TODAY_FAILED, + TVSHOW_FISHING_ADVICE, + TVSHOW_WORLD_OF_MASTERS, + TVSHOW_BRAVO_TRAINER_BATTLE_TOWER_PROFILE +}; + +const u8 *const gUnknown_Debug_083C4ACC[] = { + gUnknown_Debug_083C4A2E, + gUnknown_Debug_083C4A35, + gUnknown_Debug_083C4A47, + gUnknown_Debug_083C4A5B, + gUnknown_Debug_083C4A65, + gUnknown_Debug_083C4A70, + gUnknown_Debug_083C4A78, + gUnknown_Debug_083C4A85, + gUnknown_Debug_083C4A8E, + gUnknown_Debug_083C4A99, + gUnknown_Debug_083C4AA1, + gUnknown_Debug_083C4AAF +}; + +const u8 gDebugText_BigSale[] = _("BIG SALE"); + +const u8 gUnknown_Debug_083C4B05[] = _("SERVICE DAY"); +const u8 gUnknown_Debug_083C4B11[] = _("CLEARーOUT SALE"); +const u8 gUnknown_Debug_083C4B20[] = {1, 2, 3}; + +const u8 *const gUnknown_Debug_083C4B24[] = { + gDebugText_BigSale, + gUnknown_Debug_083C4B05, + gUnknown_Debug_083C4B11 +}; + +const u8 gUnknown_Debug_083C4B30[] = _("Secret type"); +const u8 gUnknown_Debug_083C4B3C[] = _("Start"); +const u8 gUnknown_Debug_083C4B42[] = _("Create TV"); +const u8 gUnknown_Debug_083C4B4C[] = _("All clear"); +const u8 gUnknown_Debug_083C4B56[] = _("All seen"); +const u8 gUnknown_Debug_083C4B5F[] = _("Create CM"); +const u8 gUnknown_Debug_083C4B69[] = _("Not yet seen"); +const u8 gUnknown_Debug_083C4B76[] = _("Hit Table"); +const u8 gUnknown_Debug_083C4B80[] = _("Set full"); + +// Normaly these would be struct MenuAction, but the prototype of +// member .func is not consistent. +const struct { + const u8 * text; + void *func; +} gUnknown_Debug_083C4B8C[] = { + {gUnknown_Debug_083C4B30, debug_sub_808F4EC}, + {gUnknown_Debug_083C4B3C, debug_sub_808F8AC}, + {gUnknown_Debug_083C4B42, debug_sub_808F8CC}, + {gUnknown_Debug_083C4B4C, debug_sub_808FEBC}, + {gUnknown_Debug_083C4B56, debug_sub_808F560}, + {gUnknown_Debug_083C4B5F, debug_sub_808FECC}, + {gUnknown_Debug_083C4B69, debug_sub_808F594}, + {gUnknown_Debug_083C4B76, debug_sub_808F5D8}, + {gUnknown_Debug_083C4B80, debug_sub_80900AC} +}; + +bool8 NoharaDebugMenu_TV(void) +{ + gDebug_03000726 = 0; + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(0, 0, 10, 19); + Menu_PrintItems(1, 1, ARRAY_COUNT(gUnknown_Debug_083C4B8C), gUnknown_Debug_083C4B8C); + InitMenu(0, 1, 1, ARRAY_COUNT(gUnknown_Debug_083C4B8C), 0, 9); + gMenuCallback = debug_sub_808F4AC; + return FALSE; +} + +bool8 debug_sub_808F4AC(void) +{ + s8 input = Menu_ProcessInput(); + switch (input) + { + default: + gMenuCallback = (MenuFunc)gUnknown_Debug_083C4B8C[input].func; + return FALSE; + case -2: + return FALSE; + case -1: + CloseMenu(); + return TRUE; + } +} + +void debug_sub_808F4EC(void) +{ + debug_sub_808F6BC(); + sub_8071F40(gUnknown_Debug_083C4980); + DisplayYesNoMenu(3, 3, 1); + gMenuCallback = debug_sub_808F648; +} + +void debug_sub_808F518(void) +{ + u8 i; + + for (i = 0; i < 24; i++) + { + if (gSaveBlock1.tvShows[i].common.kind >= TVSHOW_POKEMON_TODAY_CAUGHT && + gSaveBlock1.tvShows[i].common.kind < TVSHOW_MASS_OUTBREAK && + !gSaveBlock1.tvShows[i].common.active) + gSaveBlock1.tvShows[i].common.active = TRUE; + } +} + +bool8 debug_sub_808F560(void) +{ + u8 i; + + for (i = 0; i < 24; i++) + gSaveBlock1.tvShows[i].common.active = FALSE; + CloseMenu(); + return TRUE; +} + +bool8 debug_sub_808F594(void) +{ + u8 i; + + for (i = 0; i < 24; i++) + { + if (gSaveBlock1.tvShows[i].common.kind != 0) + gSaveBlock1.tvShows[i].common.active = TRUE; + } + CloseMenu(); + return TRUE; +} + +const u8 gUnknown_Debug_083C4BD4[][12] = { + {0x0C, 0x04}, + {0x0C, 0x08}, + {0x0C, 0x0A}, + {0x0E, 0x06}, + {0x0E, 0x08}, + {0x0E, 0x0A}, + {0x10, 0x04}, + {0x10, 0x06}, + {0x10, 0x0A}, + {0x12, 0x04}, + {0x12, 0x06}, + {0x12, 0x0A} +}; + +bool8 debug_sub_808F5D8(void) +{ + u8 i; + + for (i = 0; i < 12; i++) + { + gSpecialVar_0x8004 = i; + ConvertIntToDecimalStringN(gStringVar1, GetSlotMachineId(), STR_CONV_MODE_LEFT_ALIGN, 1); + Menu_PrintText(gStringVar1, gUnknown_Debug_083C4BD4[i][0], gUnknown_Debug_083C4BD4[i][1]); + } + gSpecialVar_0x8004 = 0; + gMenuCallback = debug_sub_8090278; + return FALSE; +} + +bool8 debug_sub_808F648(void) +{ + if (gMain.newKeys & DPAD_LEFT) + { + Menu_EraseWindowRect(10, 0, 29, 13); + gDebug_03000726 ^= 1; + if (gDebug_03000726) + debug_sub_808F7B4(); + else + debug_sub_808F6BC(); + return FALSE; + } + else + { + s8 input = Menu_ProcessInputNoWrap_(); + switch (input) + { + case -2: + return FALSE; + case 0: + debug_sub_808F518(); + // fallthrough + case -1: + default: + CloseMenu(); + return TRUE; + } + } +} + #endif |