diff options
author | ProjectRevoTPP <projectrevotpp@hotmail.com> | 2016-11-05 17:11:17 -0400 |
---|---|---|
committer | YamaArashi <YamaArashi@users.noreply.github.com> | 2016-11-05 14:11:17 -0700 |
commit | e31301d6ea7a772df3f25b7ce60d261e0c039cc0 (patch) | |
tree | fbe253b38adb7bfc1eefdf06b88e605869f494b6 /src | |
parent | d26298bd4e742218a39ce7b635e502f704f73eba (diff) |
decompile mori_debug_menu.c (#90)
* decompile mori_debug_menu.c
* formatting
Diffstat (limited to 'src')
-rw-r--r-- | src/mori_debug_menu.c | 157 |
1 files changed, 157 insertions, 0 deletions
diff --git a/src/mori_debug_menu.c b/src/mori_debug_menu.c new file mode 100644 index 000000000..139650c12 --- /dev/null +++ b/src/mori_debug_menu.c @@ -0,0 +1,157 @@ +#include "main.h" +#include "string_util.h" +#include "pokemon.h" + +extern void sub_8071C20(void); +extern u16 sub_8041870(u16); +extern void sub_810CA6C(s32); +extern u8 (*gCallback_03004AE8)(void); + +extern u8 daycare_count_pokemon(u32); +extern u8 daycare_relationship_score_from_savegame(void); + +struct DebugMenuAction +{ + u8 *text; + u8 (*func)(void); +}; + +extern u8 gUnknown_0839B24D[]; +extern u8 gUnknown_0839B255[]; +extern u8 gUnknown_0839B257[]; + +extern struct DebugMenuAction gMoriDebugMenuActions[]; + +extern u8 gSpeciesNames[][11]; + +s8 sub_8083D4C(void) +{ + if ( gMain.newKeys & 1 ) + { + sub_8071C20(); + return 1; + } + else + return 0; +} + +u8 MoriDebugMenu_SearchChild(u8 a1, u8 a2, u8 *ptr) +{ + u8 localPtr[52]; + u16 monData; + u16 var; + + monData = GetMonData(gPlayerParty, 11, ptr); + var = sub_8041870(monData); + StringCopy(localPtr, gSpeciesNames[monData]); + StringAppend(localPtr, gUnknown_0839B24D); + StringAppend(localPtr, gSpeciesNames[var]); + StringAppend(localPtr, gUnknown_0839B255); + MenuZeroFillScreen(); + MenuDrawTextWindow(0, 14, 30, 19); + MenuPrint(localPtr, 1, 15); + gCallback_03004AE8 = sub_8083D4C; + return 0; +} + +s8 MoriDebugMenu_Egg(void) +{ + if ( daycare_count_pokemon(gSaveBlock1.filler_2F9C) == 2 && daycare_relationship_score_from_savegame() ) + sub_8041940(); + sub_8071C20(); + + return 1; +} + +s8 MoriDebugMenu_MaleEgg(void) +{ + if ( daycare_count_pokemon(gSaveBlock1.filler_2F9C) == 2 && daycare_relationship_score_from_savegame() ) + sub_8041950(); + sub_8071C20(); + + return 1; +} + +s8 MoriDebugMenu_1000Steps(void) +{ + sub_8041790(1000); + sub_8071C20(); + return 1; +} + +s8 MoriDebugMenu_10000Steps(void) +{ + sub_8041790(10000); + sub_8071C20(); + return 1; +} + +s8 MoriDebugMenu_MoveTutor(void) +{ + sub_8132670(); + sub_8071C20(); + return 1; +} + +s8 MoriDebugMenu_BreedEgg(void) +{ + u8 loopCounter; + + for(loopCounter = 0; loopCounter <= 5; loopCounter++) + { + //UB: Too few arguments for function 'GetMonData' + if ( GetMonData(&gPlayerParty[loopCounter], MON_DATA_IS_EGG) ) + { + u8 friendship = 0; + SetMonData(&gPlayerParty[loopCounter], MON_DATA_FRIENDSHIP, &friendship); + } + } + gSaveBlock1.filler_30B6 = -3; + sub_8071C20(); + return 1; +} + +s8 MoriDebugMenu_LongName(void) +{ + SetMonData(gPlayerParty, 2, &gUnknown_0839B257); + sub_8071C20(); + return 1; +} + +s8 MoriDebugMenu_PokeblockCase(void) +{ + s32 loopCounter; + + for(loopCounter = 0; loopCounter <= 39; loopCounter++) + sub_810CA6C((u8)loopCounter); + + sub_8071C20(); + return 1; +} + +s8 MoriDebugMenuProcessInput(void) +{ + s8 choice = ProcessMenuInput(); + + switch (choice) + { + default: + gCallback_03004AE8 = gMoriDebugMenuActions[choice].func; + return 0; + case -2: + return 0; + case -1: + sub_8071C20(); + return 1; + } +} + +s8 InitMoriDebugMenu(void) +{ + MenuZeroFillScreen(); + MenuDrawTextWindow(0, 0, 10, 19); + PrintMenuItems(1, 1, 9, gMoriDebugMenuActions); + InitMenu(0, 1, 1, 9, 0, 9); + gCallback_03004AE8 = MoriDebugMenuProcessInput; + return 0; +} |