From b19812538fbda6f4389fb53cfedefdd7f08f4a79 Mon Sep 17 00:00:00 2001 From: Kermalis <29823718+Kermalis@users.noreply.github.com> Date: Wed, 9 Aug 2023 11:09:42 -0400 Subject: [PATCH] Debug Menu work YIPPEEEEEEEE --- include/code_8012A18_1.h | 8 + include/code_801B3C0.h | 28 ++ include/code_801C620.h | 18 + include/code_801EE10_1.h | 12 + include/code_801EE10_mid.h | 7 + include/code_8021774.h | 8 + include/code_8021774_pre.h | 10 + include/debug_menu.h | 56 --- include/debug_menu1.h | 31 ++ include/debug_menu2.h | 28 ++ include/debug_menu3.h | 18 + include/debug_menu4.h | 32 ++ include/friend_area.h | 4 + include/pokemon.h | 3 + include/team_inventory.h | 3 + ld_script.txt | 14 +- src/code_8012A18_1.c | 1 + src/code_801B3C0.c | 17 +- src/code_801C620.c | 15 +- src/code_801D760.c | 4 +- src/code_801EE10_mid.c | 1 + src/code_8021774.c | 2 +- src/code_8021774_pre.c | 10 +- src/code_8023144.c | 3 +- src/code_8057824_1.c | 1 - src/code_80958E8_1.c | 5 +- src/code_80958E8_mid.c | 1 - src/{debug_menu.c => debug_menu1.c} | 45 +- src/debug_menu2.c | 274 +++++++++++++ src/debug_menu3.c | 254 ++++++++++++ src/debug_menu4.c | 279 +++++++++++++ src/debug_menu_1.c | 285 ------------- src/debug_menu_mid.c | 616 ---------------------------- src/friend_area_1.c | 3 +- src/friend_area_action_menu.c | 6 +- src/friend_area_action_menu_1.c | 11 +- src/friend_list_menu.c | 19 +- src/friend_rescue.c | 42 +- src/gulpin_shop_1.c | 11 +- src/kangaskhan_storage.c | 36 +- src/kecleon_bros.c | 5 +- src/luminous_cave.c | 8 +- src/main_menu.c | 2 +- src/party_list_menu.c | 6 +- src/personality_test.c | 5 +- src/save.c | 1 - src/thank_you_wonder_mail.c | 28 +- src/trade_items_menu.c | 27 +- src/wigglytuff_shop.c | 20 +- src/wonder_mail.c | 12 +- src/wonder_mail_main_menu.c | 4 +- sym_ewram2.txt | 14 +- 52 files changed, 1141 insertions(+), 1212 deletions(-) create mode 100644 include/code_8012A18_1.h create mode 100644 include/code_801B3C0.h create mode 100644 include/code_801C620.h create mode 100644 include/code_801EE10_1.h create mode 100644 include/code_801EE10_mid.h create mode 100644 include/code_8021774.h create mode 100644 include/code_8021774_pre.h delete mode 100644 include/debug_menu.h create mode 100644 include/debug_menu1.h create mode 100644 include/debug_menu2.h create mode 100644 include/debug_menu3.h create mode 100644 include/debug_menu4.h rename src/{debug_menu.c => debug_menu1.c} (77%) create mode 100644 src/debug_menu2.c create mode 100644 src/debug_menu3.c create mode 100644 src/debug_menu4.c delete mode 100644 src/debug_menu_1.c delete mode 100644 src/debug_menu_mid.c diff --git a/include/code_8012A18_1.h b/include/code_8012A18_1.h new file mode 100644 index 000000000..8752a5d42 --- /dev/null +++ b/include/code_8012A18_1.h @@ -0,0 +1,8 @@ +#ifndef GUARD_CODE_8012A18_H +#define GUARD_CODE_8012A18_H + +u32 sub_801602C(u32, u8 *); +u32 sub_8016080(void); +void sub_80160D8(void); + +#endif // GUARD_CODE_8012A18_H \ No newline at end of file diff --git a/include/code_801B3C0.h b/include/code_801B3C0.h new file mode 100644 index 000000000..7c2d58bbd --- /dev/null +++ b/include/code_801B3C0.h @@ -0,0 +1,28 @@ +#ifndef GUARD_CODE_801B3C0_H +#define GUARD_CODE_801B3C0_H + +#include "input.h" +#include "item.h" +#include "subStruct_203B240.h" +#include "text.h" + +// size: 0x94 +struct unkStruct_203B230 +{ + s32 state; + struct Item item; + s32 unk8; + s32 unkC; + struct subStruct_203B240 *unk10[2]; + u8 fill18[0x20 - 0x18]; + u32 unk20; + u32 unk24; + struct UnkTextStruct2 unk28[4]; + struct MenuInputStructSub unk88; +}; + +u32 sub_801B3C0(struct Item *); +u32 sub_801B410(void); +void sub_801B450(void); + +#endif // GUARD_CODE_801B3C0_H \ No newline at end of file diff --git a/include/code_801C620.h b/include/code_801C620.h new file mode 100644 index 000000000..0be8b9656 --- /dev/null +++ b/include/code_801C620.h @@ -0,0 +1,18 @@ +#ifndef GUARD_CODE_801C620_H +#define GUARD_CODE_801C620_H + +#include "text.h" + +bool8 sub_801C8C4(s32, s32, struct UnkTextStruct2_sub *, u32); +extern u32 sub_801CA08(bool8); +u8 sub_801CB24(void); +void sub_801CB5C(bool8); +void sub_801CBB8(void); +void sub_801CCD8(void); +bool8 sub_801CF14(s32); +bool8 sub_801CF50(s32); +void sub_801CF94(void); +s32 sub_801CFB8(void); +u32 sub_801CFE0(u8); + +#endif // GUARD_CODE_801C620_H \ No newline at end of file diff --git a/include/code_801EE10_1.h b/include/code_801EE10_1.h new file mode 100644 index 000000000..9e2c798a5 --- /dev/null +++ b/include/code_801EE10_1.h @@ -0,0 +1,12 @@ +#ifndef GUARD_CODE_801EE10_1_H +#define GUARD_CODE_801EE10_1_H + +// code_801EE10_1.s +extern void sub_8023868(u32, u32, u32, u32); +extern u32 sub_8023A94(bool8); +extern s16 sub_8023B44(void); +extern void sub_8023B7C(u32); +extern void sub_8023C60(void); +extern void sub_8023DA4(void); + +#endif // GUARD_CODE_801EE10_1_H \ No newline at end of file diff --git a/include/code_801EE10_mid.h b/include/code_801EE10_mid.h new file mode 100644 index 000000000..0d18ee354 --- /dev/null +++ b/include/code_801EE10_mid.h @@ -0,0 +1,7 @@ +#ifndef GUARD_CODE_801EE10_MID_H +#define GUARD_CODE_801EE10_MID_H + +// code_801EE10_mid.s +extern void sub_8021494(void); + +#endif // GUARD_CODE_801EE10_MID_H \ No newline at end of file diff --git a/include/code_8021774.h b/include/code_8021774.h new file mode 100644 index 000000000..8a123147d --- /dev/null +++ b/include/code_8021774.h @@ -0,0 +1,8 @@ +#ifndef GUARD_CODE_8021774_H +#define GUARD_CODE_8021774_H + +bool8 sub_8021774(u8, u8, s32); +u32 sub_80217EC(void); +void sub_8021830(void); + +#endif // GUARD_CODE_8021774_H \ No newline at end of file diff --git a/include/code_8021774_pre.h b/include/code_8021774_pre.h new file mode 100644 index 000000000..a5559eeb2 --- /dev/null +++ b/include/code_8021774_pre.h @@ -0,0 +1,10 @@ +#ifndef GUARD_CODE_8021774_PRE_H +#define GUARD_CODE_8021774_PRE_H + +bool8 sub_80211AC(u32, u32); +u32 sub_8021274(bool8); +u8 sub_802132C(void); +void sub_8021354(bool8); +void sub_80213A0(void); + +#endif // GUARD_CODE_8021774_PRE_H \ No newline at end of file diff --git a/include/debug_menu.h b/include/debug_menu.h deleted file mode 100644 index 5a6133be0..000000000 --- a/include/debug_menu.h +++ /dev/null @@ -1,56 +0,0 @@ -#ifndef GUARD_DEBUG_MENU_H -#define GUARD_DEBUG_MENU_H - -#include "pokemon.h" -#include "menu.h" -#include "text.h" - -// size: 0x1A4 -struct DebugMenu -{ - struct MenuStruct unk0[4]; - struct UnkTextStruct2 unk140[4]; - u32 fill1A0; -}; - -// size: 0x140 -struct unkStruct_203B3F8 -{ - /* 0x0 */ u32 state; - s16 unk4; - u16 unk6; - /* 0x8 */ struct PokemonStruct *pokemon; - /* 0xC */ u32 menuAction; - struct MenuStruct unk10; - u32 unk60; - u32 unk64; - u32 unk68; - u32 unk6C; - u32 unk70; - u32 unk74; - struct UnkTextStruct2 *unk78; - u32 unk7C; - u32 unk80; - u8 fill84[0x90 - 0x84]; - struct MenuItem unk90[8]; - u16 unkD0[8]; - struct UnkTextStruct2 unkE0[4]; -}; - -enum DebugMenuOptions -{ - MENU_DEBUG_MENU_DUNGEONS = 0, - MENU_DEBUG_MENU_FIELD, - MENU_DEBUG_MENU_FIELD_MAP, - MENU_DEBUG_MENU_FIELD_SCRIPT, - MENU_DEBUG_MENU_DEBUG_MENU, - MENU_DEBUG_MENU_UNKNOWN_1, - MENU_DEBUG_MENU_STORAGE, - MENU_DEBUG_MENU_H_OPEN = 9, -}; - -void CreateDebugMenu(void); -void DeleteDebugMenu(void); -u32 UpdateDebugMenu(void); - -#endif diff --git a/include/debug_menu1.h b/include/debug_menu1.h new file mode 100644 index 000000000..f23ed3f59 --- /dev/null +++ b/include/debug_menu1.h @@ -0,0 +1,31 @@ +#ifndef GUARD_DEBUG_MENU1_H +#define GUARD_DEBUG_MENU1_H + +#include "menu.h" +#include "text.h" + +// size: 0x1A4 +struct DebugMenu +{ + struct MenuStruct unk0[4]; + struct UnkTextStruct2 unk140[4]; + u32 fill1A0; +}; + +enum DebugMenuOptions +{ + MENU_DEBUG_MENU_DUNGEONS = 0, + MENU_DEBUG_MENU_FIELD, + MENU_DEBUG_MENU_FIELD_MAP, + MENU_DEBUG_MENU_FIELD_SCRIPT, + MENU_DEBUG_MENU_DEBUG_MENU, + MENU_DEBUG_MENU_UNKNOWN_1, + MENU_DEBUG_MENU_STORAGE, + MENU_DEBUG_MENU_H_OPEN = 9, +}; + +void CreateDebugMenu(void); +void DeleteDebugMenu(void); +u32 UpdateDebugMenu(void); + +#endif // GUARD_DEBUG_MENU1_H \ No newline at end of file diff --git a/include/debug_menu2.h b/include/debug_menu2.h new file mode 100644 index 000000000..c2ef67d85 --- /dev/null +++ b/include/debug_menu2.h @@ -0,0 +1,28 @@ +#ifndef GUARD_DEBUG_MENU2_H +#define GUARD_DEBUG_MENU2_H + +#include "menu.h" +#include "text.h" + +// size: 0x138 +struct unkStruct_203B3F0 +{ + /* 0x0 */ u32 state; + /* 0x4 */ u8 id; + /* 0x8 */ u32 menuAction; + /* 0xC */ struct MenuItem menuItems[8]; + struct MenuStruct unk4C; + u32 unk9C; + u32 unkA0; + u32 unkA4; + u32 unkA8; + u32 unkAC; + u32 unkB0; + struct UnkTextStruct2 *unkB4; + u32 unkB8; + u32 unkBC; + u8 fill4[0xD8 - 0xC0]; + struct UnkTextStruct2 unkD8[4]; +}; + +#endif // GUARD_DEBUG_MENU2_H \ No newline at end of file diff --git a/include/debug_menu3.h b/include/debug_menu3.h new file mode 100644 index 000000000..2a822e36a --- /dev/null +++ b/include/debug_menu3.h @@ -0,0 +1,18 @@ +#ifndef GUARD_DEBUG_MENU3_H +#define GUARD_DEBUG_MENU3_H + +#include "menu.h" +#include "text.h" + +// size: 0xFC +struct unkStruct_203B3F4 +{ + /* 0x0 */ u32 state; + /* 0x4 */ u8 friendArea; + /* 0x8 */ u32 menuAction; + /* 0xC */ struct MenuItem menuItems[8]; + struct MenuStruct unk4C; + struct UnkTextStruct2 unk9C[4]; +}; + +#endif // GUARD_DEBUG_MENU3_H \ No newline at end of file diff --git a/include/debug_menu4.h b/include/debug_menu4.h new file mode 100644 index 000000000..2fe92244f --- /dev/null +++ b/include/debug_menu4.h @@ -0,0 +1,32 @@ +#ifndef GUARD_DEBUG_MENU4_H +#define GUARD_DEBUG_MENU4_H + +#include "pokemon.h" +#include "menu.h" +#include "text.h" + +// size: 0x140 +struct unkStruct_203B3F8 +{ + /* 0x0 */ u32 state; + s16 unk4; + u16 unk6; + /* 0x8 */ struct PokemonStruct *pokemon; + /* 0xC */ u32 menuAction; + struct MenuStruct unk10; + u32 unk60; + u32 unk64; + u32 unk68; + u32 unk6C; + u32 unk70; + u32 unk74; + struct UnkTextStruct2 *unk78; + u32 unk7C; + u32 unk80; + u8 fill84[0x90 - 0x84]; + struct MenuItem unk90[8]; + u16 unkD0[8]; + struct UnkTextStruct2 unkE0[4]; +}; + +#endif // GUARD_DEBUG_MENU4_H \ No newline at end of file diff --git a/include/friend_area.h b/include/friend_area.h index 2a6bb36d1..7abe76805 100644 --- a/include/friend_area.h +++ b/include/friend_area.h @@ -17,6 +17,9 @@ struct unkStruct_8092638 s32 unk8; }; +// friend_area.c +extern EWRAM_DATA_2 bool8 *gFriendAreas; + void LoadFriendAreas(void); bool8 *GetBoughtFriendAreas(void); void InitializeFriendAreas(void); @@ -28,6 +31,7 @@ u8 *GetFriendAreaDescription(u8 index); u8 GetFriendAreaUnlockCondition(u8 index); s32 GetFriendAreaPrice(u8 index); const char *GetFriendAreaName(u8 index); +void sub_809249C(u8 friendArea, u8 clear); void sub_8092638(u8 friendArea, struct unkStruct_8092638 *param_2, u8 param_3, u8 param_4); u32 SaveFriendAreas(u8 *r0, u32 r1); diff --git a/include/pokemon.h b/include/pokemon.h index a6d12d403..408752444 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -242,5 +242,8 @@ void SavePokemonStruct(struct unkStruct_8094924* a1, struct PokemonStruct* pokem void RestorePokemonStruct(struct unkStruct_8094924*, struct PokemonStruct*); s32 sub_808E218(struct unkStruct_808E218_arg* a1, struct PokemonStruct* pokemon); +// pokemon.s +extern void sub_808CFD0(u8 *, s16, u8 *, u8, u32 *, u16 *); +extern u32 sub_808D1DC(u8 *); #endif // GUARD_POKEMON_H diff --git a/include/team_inventory.h b/include/team_inventory.h index a447aafd5..d213d1fd6 100644 --- a/include/team_inventory.h +++ b/include/team_inventory.h @@ -4,6 +4,8 @@ #define MAX_KECLEON_ITEM_SHOP_ITEMS 8 #define MAX_KECLEON_WARE_SHOP_ITEMS 4 +#include "item.h" + // size: 0x268 struct TeamInventory { @@ -15,6 +17,7 @@ struct TeamInventory /* 0x264 */ s32 teamSavings; }; +// Declared in items.c extern struct TeamInventory *gTeamInventoryRef; #define MAX_TEAM_MONEY 99999 diff --git a/ld_script.txt b/ld_script.txt index 11e024963..c1baed190 100755 --- a/ld_script.txt +++ b/ld_script.txt @@ -160,9 +160,10 @@ SECTIONS { src/load_screen.o(.text); src/wonder_mail_main_menu.o(.text); src/ds_menus.o(.text); - src/debug_menu.o(.text); - src/debug_menu_mid.o(.text); - src/debug_menu_1.o(.text); + src/debug_menu1.o(.text); + src/debug_menu2.o(.text); + src/debug_menu3.o(.text); + src/debug_menu4.o(.text); asm/code_803B050.o(.text); src/code_803B050.o(.text); src/pokemon_mail.o(.text); @@ -427,9 +428,10 @@ SECTIONS { src/rescue_password_menu.o(.rodata); src/load_screen.o(.rodata); src/wonder_mail_main_menu.o(.rodata); - src/debug_menu.o(.rodata); - src/debug_menu_mid.o(.rodata); - src/debug_menu_1.o(.rodata); + src/debug_menu1.o(.rodata); + src/debug_menu2.o(.rodata); + src/debug_menu3.o(.rodata); + src/debug_menu4.o(.rodata); data/data_80E7D40.o(.rodata); src/pokemon_mail.o(.rodata); data/personality_test.o(.rodata); diff --git a/src/code_8012A18_1.c b/src/code_8012A18_1.c index c33341024..8bfc38cbc 100644 --- a/src/code_8012A18_1.c +++ b/src/code_8012A18_1.c @@ -1,4 +1,5 @@ #include "global.h" +#include "code_8012A18_1.h" #include "code_80130A8.h" #include "memory.h" #include "input.h" diff --git a/src/code_801B3C0.c b/src/code_801B3C0.c index 20dd90803..c2860279b 100644 --- a/src/code_801B3C0.c +++ b/src/code_801B3C0.c @@ -1,4 +1,5 @@ #include "global.h" +#include "code_801B3C0.h" #include "constants/colors.h" #include "text1.h" #include "text2.h" @@ -7,26 +8,10 @@ #include "pokemon.h" #include "team_inventory.h" #include "menu_input.h" -#include "subStruct_203B240.h" #include "kecleon_bros.h" #include "sprite.h" #include "code_80130A8.h" -// based off of 203B240.. -struct unkStruct_203B230 -{ - // size: 0x94 - s32 state; - struct Item item; - s32 unk8; - s32 unkC; - struct subStruct_203B240 *unk10[2]; - u8 fill14[0x20 - 0x18]; - u32 unk20; - u32 unk24; - struct UnkTextStruct2 unk28[4]; - struct MenuInputStructSub unk88; -}; extern struct unkStruct_203B230 *gUnknown_203B230; struct unkStruct_203B234 diff --git a/src/code_801C620.c b/src/code_801C620.c index 333d8fad6..507321f0e 100644 --- a/src/code_801C620.c +++ b/src/code_801C620.c @@ -1,5 +1,6 @@ -#include "constants/item.h" #include "global.h" +#include "code_801C620.h" +#include "constants/item.h" #include "constants/iq_skill.h" #include "item.h" #include "memory.h" @@ -162,9 +163,6 @@ void sub_801C6D0(s32); void sub_801C7D4(void); void sub_801C6E4(void); void sub_801C848(void); -void sub_801CCD8(void); -bool8 sub_801CF14(s32); -void sub_801CF94(void); u32 sub_801C308(u8); extern void PlaySound(u32); @@ -182,10 +180,7 @@ void sub_801C03C(void); void sub_801C118(void); void sub_801C1A0(void); void sub_801C228(void); -u8 sub_801CB24(void); -u32 sub_801CFE0(u8); -s32 sub_801CFB8(void); extern void sub_801D220(void); extern void sub_801D3A8(void); @@ -783,13 +778,13 @@ bool8 sub_801C8C4(s32 param_1, s32 param_2, struct UnkTextStruct2_sub *param_3, } } -bool8 sub_801CA08(u8 param_1) +u32 sub_801CA08(bool8 param_1) { u32 index; u32 temp; u32 flag; - if (param_1 == 0) { + if (param_1 == FALSE) { sub_8013660(&gUnknown_203B244->input); return 0; } @@ -838,7 +833,7 @@ u8 sub_801CB24(void) { return gUnknown_203B244->itemIDs[(gUnknown_203B244->input.unk1E * gUnknown_203B244->input.unk1C) + gUnknown_203B244->input.menuIndex]; } -void sub_801CB5C(u8 r0) { +void sub_801CB5C(bool8 r0) { ResetUnusedInputStruct(); sub_800641C(gUnknown_203B244->unk4F0, 0, 0); gUnknown_203B244->input.unk22 = sub_801CE58(); diff --git a/src/code_801D760.c b/src/code_801D760.c index e9a453e90..c63394b02 100644 --- a/src/code_801D760.c +++ b/src/code_801D760.c @@ -15,6 +15,7 @@ #include "rescue_team_info.h" #include "code_800D090.h" #include "menu_input.h" +#include "code_8021774.h" struct unkStruct_203B258 { @@ -39,8 +40,6 @@ extern void sub_801BF98(void); extern void sub_801D208(u8); extern u32 sub_801DCE8(void); extern void sub_801DD50(void); -extern u32 sub_80217EC(void); -extern void sub_8021830(void); extern u32 sub_8022860(); extern void sub_8022908(); extern u32 sub_80244E4(void); @@ -110,7 +109,6 @@ extern u32 sub_8027074(void); extern void sub_80227B8(struct PokemonStruct *); extern bool8 sub_8024458(s16, u32); extern bool8 sub_801BEEC(s16); -extern void sub_8021774(u8, u32, u32); void sub_801D894(void); u32 sub_8025EF4(struct PokemonStruct *); diff --git a/src/code_801EE10_mid.c b/src/code_801EE10_mid.c index 6c75c420e..571575089 100644 --- a/src/code_801EE10_mid.c +++ b/src/code_801EE10_mid.c @@ -10,6 +10,7 @@ #include "subStruct_203B240.h" #include "sprite.h" #include "code_80130A8.h" +#include "code_801EE10_mid.h" extern struct unkStruct_203B270 *gUnknown_203B270; diff --git a/src/code_8021774.c b/src/code_8021774.c index b90652ef9..d7a39a3b8 100644 --- a/src/code_8021774.c +++ b/src/code_8021774.c @@ -9,6 +9,7 @@ #include "friend_area.h" #include "code_800D090.h" #include "menu_input.h" +#include "code_8021774.h" struct unkStruct_203B28C { @@ -56,7 +57,6 @@ extern void sub_8021894(void); extern void PlayMenuSoundEffect(u32); extern void sub_8021A60(void); void sub_8021820(void); -extern u8 *gFriendAreas; u8 sub_80023E4(u32); s32 sub_8021664(void) diff --git a/src/code_8021774_pre.c b/src/code_8021774_pre.c index e106c4412..72ceb6765 100644 --- a/src/code_8021774_pre.c +++ b/src/code_8021774_pre.c @@ -1,4 +1,6 @@ #include "global.h" +#include "code_801EE10_mid.h" +#include "code_8021774_pre.h" #include "constants/friend_area.h" #include "constants/input.h" #include "friend_area.h" @@ -10,6 +12,7 @@ #include "team_inventory.h" #include "menu_input.h" +// size: 0xE0 struct unkStruct_203B280 { u8 unk0[NUM_FRIEND_AREAS]; @@ -20,6 +23,7 @@ struct unkStruct_203B280 struct UnkTextStruct2 unk7C[4]; u8 unkDC[4]; }; + extern struct unkStruct_203B280 *gUnknown_203B280; extern u32 gUnknown_203B284; extern u16 gUnknown_203B288; @@ -30,9 +34,7 @@ extern struct UnkTextStruct2 gUnknown_80DC464; u8 sub_8021700(u32 mode); s32 sub_8021664(void); -extern u8 sub_802132C(void); extern void sub_8021410(void); -extern void sub_8021494(void); extern void PlayMenuSoundEffect(u32); bool8 sub_80211AC(u32 param_1, u32 param_2) @@ -64,7 +66,7 @@ bool8 sub_80211AC(u32 param_1, u32 param_2) } } -u32 sub_8021274(u8 param_1) +u32 sub_8021274(bool8 param_1) { if (param_1 == 0) { sub_8013660(&gUnknown_203B280->unk40); @@ -105,7 +107,7 @@ u8 sub_802132C(void) return gUnknown_203B280->unk0[gUnknown_203B280->unk40.unk1E * gUnknown_203B280->unk40.unk1C + gUnknown_203B280->unk40.menuIndex]; } -void sub_8021354(u8 param_1) +void sub_8021354(bool8 param_1) { ResetUnusedInputStruct(); sub_800641C(gUnknown_203B280->unk7C,0,0); diff --git a/src/code_8023144.c b/src/code_8023144.c index 860aa34a4..b2ebdb39f 100644 --- a/src/code_8023144.c +++ b/src/code_8023144.c @@ -15,6 +15,7 @@ #include "friend_area.h" #include "kecleon_bros.h" #include "code_80130A8.h" +#include "code_801B3C0.h" struct unkStruct_3001B5C { @@ -63,8 +64,6 @@ extern u8 *gUnknown_80D4970[]; extern void sub_8022924(s32); extern u32 sub_801B00C(void); extern void sub_801B048(void); -extern u32 sub_801B410(void); -extern void sub_801B450(void); void GetGummiItemStatBoost(struct PokemonStruct* pokemon, u8 id, bool8 checkBoostFlags, struct Gummi* gummi); diff --git a/src/code_8057824_1.c b/src/code_8057824_1.c index 7dd0d4612..7301385f0 100644 --- a/src/code_8057824_1.c +++ b/src/code_8057824_1.c @@ -359,7 +359,6 @@ void LugiaScreenFlash2(); extern void sub_80861B8(struct Entity *, u32, u32); void nullsub_99(); -extern bool8 *gFriendAreas; extern void sub_8049884(); extern void sub_8049B8C(); diff --git a/src/code_80958E8_1.c b/src/code_80958E8_1.c index eba9be962..055bd9a32 100644 --- a/src/code_80958E8_1.c +++ b/src/code_80958E8_1.c @@ -19,7 +19,6 @@ extern u8 IsJobSlotEmpty(u8); extern struct WonderMail * GetJobSlotInfo(u8); extern bool8 IsValidWonderMail(struct WonderMail *WonderMailData); extern u8 sub_8095E38(struct WonderMail *, u8, u8, bool8); -extern void sub_808CFD0(s32, s16, u8, u8, u32 *, u32); extern void ResetJobSlot(u8); extern void sub_8096C80(void); extern void sub_8096D24(void); @@ -212,7 +211,7 @@ s32 CountJobsinDungeon(u8 dungeon) return count; } -bool8 sub_8096A08(u8 dungeon, s32 param_2) +bool8 sub_8096A08(u8 dungeon, u8 *param_2) { struct WonderMail *mail; s32 index; @@ -236,7 +235,7 @@ bool8 sub_8096A08(u8 dungeon, s32 param_2) temp = 0x100; local_14 |= temp; - sub_808CFD0(param_2,mail->clientSpecies,0,0,&local_14,0); + sub_808CFD0(param_2,mail->clientSpecies,NULL,0,&local_14,NULL); return TRUE; } } diff --git a/src/code_80958E8_mid.c b/src/code_80958E8_mid.c index ae4b6cae7..991798864 100644 --- a/src/code_80958E8_mid.c +++ b/src/code_80958E8_mid.c @@ -7,7 +7,6 @@ #include "friend_area.h" #include "code_80958E8.h" -extern u8 *gFriendAreas; bool8 sub_8095E38(struct WonderMail *mail, u8 dungeon, u32 floor, u8 param_4); extern s32 sub_80A29B0(u8 *param_1); extern s32 GetDungeonFloorCount(u8); diff --git a/src/debug_menu.c b/src/debug_menu1.c similarity index 77% rename from src/debug_menu.c rename to src/debug_menu1.c index 132620e8e..684a5eeed 100644 --- a/src/debug_menu.c +++ b/src/debug_menu1.c @@ -1,16 +1,17 @@ #include "global.h" #include "code_8097670.h" #include "constants/friend_area.h" -#include "debug_menu.h" +#include "debug_menu1.h" #include "friend_area.h" #include "main_menu.h" -#include "menu_input.h" #include "memory.h" +#include "menu_input.h" +#include "pokemon.h" #include "save.h" #include "text_util.h" #include "text1.h" -EWRAM_DATA_2 struct DebugMenu *gUnknown_203B3EC = {0}; +EWRAM_DATA_2 static struct DebugMenu *sDebugMenu = {0}; static const struct UnkTextStruct2 sUnknown_80E7D40 = { @@ -52,28 +53,24 @@ ALIGNED(4) static const u8 sDebugMenuFill5[] = "pksdir0"; ALIGNED(4) static const u8 sDebugMenuFill6[] = "pksdir0"; ALIGNED(4) static const u8 sDebugMenuFill7[] = "pksdir0"; -// pokemon.s -extern void sub_808CFD0(u8 *, s32, u8 *, u32, u32 *, u16 *); -extern void sub_808D1DC(u8 *); - void SetDebugMenuItems(void); void sub_803A3A0(void); void sub_803A3BC(void); void CreateDebugMenu(void) { - s32 index; + s32 i; - if (gUnknown_203B3EC == NULL) { - gUnknown_203B3EC = MemoryAlloc(sizeof(struct DebugMenu), 8); - MemoryFill8((u8 *)gUnknown_203B3EC, 0, sizeof(struct DebugMenu)); + if (sDebugMenu == NULL) { + sDebugMenu = MemoryAlloc(sizeof(struct DebugMenu), 8); + MemoryFill8((u8 *)sDebugMenu, 0, sizeof(struct DebugMenu)); } - for (index = 0; index < 4; index++) - gUnknown_203B3EC->unk140[index] = sUnknown_80E7D40; + for (i = 0; i < 4; i++) + sDebugMenu->unk140[i] = sUnknown_80E7D40; ResetUnusedInputStruct(); - sub_800641C(gUnknown_203B3EC->unk140, 1, 1); + sub_800641C(sDebugMenu->unk140, 1, 1); SetDebugMenuItems(); } @@ -81,9 +78,9 @@ void DeleteDebugMenu(void) { ResetUnusedInputStruct(); sub_800641C(NULL, 1, 1); - if (gUnknown_203B3EC != NULL) { - MemoryFree(gUnknown_203B3EC); - gUnknown_203B3EC = NULL; + if (sDebugMenu != NULL) { + MemoryFree(sDebugMenu); + sDebugMenu = NULL; } } @@ -96,8 +93,8 @@ u32 UpdateDebugMenu(void) nextMenu = MENU_NO_SCREEN_CHANGE; debugMenuAction = 11; - if (sub_8012FD8(&gUnknown_203B3EC->unk0[0]) == 0) - sub_8013114(&gUnknown_203B3EC->unk0[0], &debugMenuAction); + if (sub_8012FD8(&sDebugMenu->unk0[0]) == 0) + sub_8013114(&sDebugMenu->unk0[0], &debugMenuAction); switch (debugMenuAction) { case MENU_DEBUG_MENU_DUNGEONS: @@ -123,7 +120,7 @@ u32 UpdateDebugMenu(void) nextMenu = MENU_MAIN_SCREEN; break; case MENU_DEBUG_MENU_H_OPEN: - for(counter = 0; counter < 0x20; counter++) + for (counter = 0; counter < 0x20; counter++) sub_80976F8(counter); nextMenu = MENU_MAIN_SCREEN; @@ -141,13 +138,13 @@ u32 UpdateDebugMenu(void) void SetDebugMenuItems(void) { - SetMenuItems(gUnknown_203B3EC->unk0, gUnknown_203B3EC->unk140, 0, &sUnknown_80E7D58, sDebugMenuItems, 1, 13, 0); - sub_8035CF4(gUnknown_203B3EC->unk0, 0, 1); + SetMenuItems(sDebugMenu->unk0, sDebugMenu->unk140, 0, &sUnknown_80E7D58, sDebugMenuItems, 1, 13, 0); + sub_8035CF4(sDebugMenu->unk0, 0, 1); } void sub_803A3A0(void) { - sub_8035CC0(gUnknown_203B3EC->unk140, 0); + sub_8035CC0(sDebugMenu->unk140, 0); } void sub_803A3BC(void) @@ -184,7 +181,7 @@ void sub_803A3BC(void) CopyMonsterNametoBuffer(buffer, speciesIndex); CopyStringtoBuffer(buffer, buffer); buffer[0] = 0x40; - sub_808CFD0(sp_0x8, speciesIndex,buffer, 0x43, &sp_0x7C, r7); + sub_808CFD0(sp_0x8, speciesIndex, buffer, 0x43, &sp_0x7C, r7); sub_808D1DC(sp_0x8); } while (index < 300); diff --git a/src/debug_menu2.c b/src/debug_menu2.c new file mode 100644 index 000000000..47d689530 --- /dev/null +++ b/src/debug_menu2.c @@ -0,0 +1,274 @@ +#include "global.h" +#include "code_80130A8.h" +#include "code_801B3C0.h" +#include "code_801C620.h" +#include "debug_menu2.h" +#include "memory.h" +#include "menu_input.h" +#include "team_inventory.h" +#include "text1.h" +#include "text2.h" + +EWRAM_DATA_2 static struct unkStruct_203B3F0 *sUnknown_203B3F0 = {0}; + +static const struct UnkTextStruct2 sUnknown_80E7E34 = +{ + 0x00, 0x00, 0x00, 0x00, + 0x03, + 0x00, 0x00, + 0x00, 0x00, + 0x00, 0x00, + NULL +}; +static const struct UnkTextStruct2 sUnknown_80E7E4C = +{ + 0x00, 0x00, 0x00, 0x00, + 0x03, + 0x14, 0x04, + 0x06, 0x03, + 0x03, 0x00, + NULL +}; +static const struct UnkTextStruct2 sUnknown_80E7E64 = +{ + 0x00, 0x00, 0x00, 0x00, + 0x03, + 0x14, 0x0e, + 0x06, 0x04, + 0x04, 0x00, + NULL +}; + +ALIGNED(4) static const u8 sNumberPrompt[] = "Number?"; +ALIGNED(4) static const u8 sFill[] = "pksdir0"; + +// data_80D47B8.s +extern const u8 *gUnknown_80D4970[]; + +void sub_803A504(u32); +void sub_803A51C(void); +void sub_803A5A0(void); +void sub_803A690(void); +void sub_803A6F0(void); +void sub_803A740(void); +void sub_803A7B0(void); +void sub_803A810(void); +void sub_803A86C(void); + +// Unused +u32 sub_803A45C(void) +{ + ResetUnusedInputStruct(); + sub_800641C(0, 1, 1); + sUnknown_203B3F0 = MemoryAlloc(sizeof(struct unkStruct_203B3F0), 8); + sub_803A504(0); + return 1; +} + +// Unused +u32 sub_803A48C(void) +{ + switch (sUnknown_203B3F0->state) { + case 0: + case 1: + sub_803A740(); + break; + case 2: + sub_803A7B0(); + break; + case 3: + sub_803A810(); + break; + case 4: + sub_803A86C(); + break; + case 5: + return 3; + } + return 0; +} + +// Unused +void sub_803A4E8(void) +{ + if (sUnknown_203B3F0 != NULL) { + MemoryFree(sUnknown_203B3F0); + sUnknown_203B3F0 = NULL; + } +} + +void sub_803A504(u32 newState) +{ + sUnknown_203B3F0->state = newState; + sub_803A51C(); + sub_803A5A0(); +} + +void sub_803A51C(void) +{ + s32 i; + + sub_8006518(sUnknown_203B3F0->unkD8); + + switch (sUnknown_203B3F0->state) { + case 3: + sUnknown_203B3F0->unkD8[1] = sUnknown_80E7E64; + break; + case 2: + sUnknown_203B3F0->unkD8[2] = sUnknown_80E7E4C; + break; + default: + for (i = 0; i < 4; i++) + sUnknown_203B3F0->unkD8[i] = sUnknown_80E7E34; + break; + } + + ResetUnusedInputStruct(); + sub_800641C(sUnknown_203B3F0->unkD8, 1, 1); +} + +void sub_803A5A0(void) +{ + struct Item item; + + switch (sUnknown_203B3F0->state) { + case 0: + sub_801C8C4(2, 3, 0, 10); + break; + case 1: + sub_801CB5C(TRUE); + break; + case 2: + sub_801CCD8(); + sub_803A6F0(); + sub_8012D60(&sUnknown_203B3F0->unk4C, sUnknown_203B3F0->menuItems, 0, 0, sUnknown_203B3F0->menuAction, 2); + break; + case 3: + sUnknown_203B3F0->unkAC = 3; + sUnknown_203B3F0->unkA4 = 0; + sUnknown_203B3F0->unkA8 = 999; + sUnknown_203B3F0->unkA0 = gTeamInventoryRef->teamStorage[sUnknown_203B3F0->id]; + sUnknown_203B3F0->unkB0 = 1; + sUnknown_203B3F0->unkB4 = &sUnknown_203B3F0->unkD8[1]; + sUnknown_203B3F0->unkB8 = 44; + sUnknown_203B3F0->unkBC = 18; + sub_8013AA0(&sUnknown_203B3F0->unk9C); + sub_803A690(); + break; + case 4: + xxx_init_itemslot_8090A8C(&item, sUnknown_203B3F0->id, 0); + sub_801B3C0(&item); + break; + case 5: + break; + } +} + +void sub_803A690(void) +{ + sub_8008C54(sUnknown_203B3F0->unkB0); + sub_80073B8(sUnknown_203B3F0->unkB0); + xxx_call_draw_string(4, 0, sNumberPrompt, sUnknown_203B3F0->unkB0, 0); + sub_8013C68(&sUnknown_203B3F0->unk9C); + sub_80073E0(sUnknown_203B3F0->unkB0); + sub_801CCD8(); + sub_8012EA4(&sUnknown_203B3F0->unk4C, 0); +} + +void sub_803A6F0(void) +{ + s32 loopMax = 0; + + sUnknown_203B3F0->menuItems[loopMax].text = sNumberPrompt; + sUnknown_203B3F0->menuItems[loopMax].menuAction = 2; + sUnknown_203B3F0->menuAction = 2; + if (!IsNotMoneyOrUsedTMItem(sUnknown_203B3F0->id)) { + sUnknown_203B3F0->menuItems[loopMax].menuAction = -1; + sUnknown_203B3F0->menuAction = 3; + } + + loopMax += 1; + sUnknown_203B3F0->menuItems[loopMax].text = *gUnknown_80D4970; + sUnknown_203B3F0->menuItems[loopMax].menuAction = 3; + + loopMax += 1; + sUnknown_203B3F0->menuItems[loopMax].text = NULL; + sUnknown_203B3F0->menuItems[loopMax].menuAction = 1; +} + +void sub_803A740(void) +{ + switch (sub_801CA08(TRUE)) { + case 0: + case 1: + break; + case 3: + sUnknown_203B3F0->id = sub_801CB24(); + sub_803A504(2); + break; + case 4: + sUnknown_203B3F0->id = sub_801CB24(); + sub_803A504(4); + break; + case 2: + sub_801CBB8(); + sub_803A504(5); + break; + } +} + +void sub_803A7B0(void) +{ + s32 menuAction; + + menuAction = 0; + + sub_801CA08(FALSE); + + if (sub_8012FD8(&sUnknown_203B3F0->unk4C) == 0) + sub_8013114(&sUnknown_203B3F0->unk4C, &menuAction); + + switch (menuAction) { + case 2: + sub_803A504(3); + break; + case 3: + sub_803A504(4); + break; + case 1: + sub_803A504(1); + break; + } +} + +void sub_803A810(void) +{ + sub_801CA08(FALSE); + sub_8012FD8(&sUnknown_203B3F0->unk4C); + + switch (sub_8013BBC(&sUnknown_203B3F0->unk9C)) { + case 3: + gTeamInventoryRef->teamStorage[sUnknown_203B3F0->id] = sUnknown_203B3F0->unk9C; + // Fallthrough needed to match + case 2: + sub_803A504(1); + break; + case 1: + sub_803A690(); + break; + } +} + +void sub_803A86C(void) +{ + switch (sub_801B410()) { + case 1: + case 0: + break; + case 2: + case 3: + sub_801B450(); + sub_803A504(1); + break; + } +} \ No newline at end of file diff --git a/src/debug_menu3.c b/src/debug_menu3.c new file mode 100644 index 000000000..5a170f837 --- /dev/null +++ b/src/debug_menu3.c @@ -0,0 +1,254 @@ +#include "global.h" +#include "code_801EE10_mid.h" +#include "code_8021774.h" +#include "code_8021774_pre.h" +#include "debug_menu3.h" +#include "friend_area.h" +#include "memory.h" +#include "menu_input.h" +#include "pokemon.h" +#include "text1.h" +#include "text2.h" + +EWRAM_DATA_2 static struct unkStruct_203B3F4 *sUnknown_203B3F4 = {0}; + +static const struct UnkTextStruct2 sUnknown_80E7E8C = +{ + 0x00, 0x00, 0x00, 0x00, + 0x03, + 0x00, 0x00, + 0x00, 0x00, + 0x00, 0x00, + NULL +}; +static const struct UnkTextStruct2 sUnknown_80E7EA4 = +{ + 0x00, 0x00, 0x00, 0x00, + 0x03, + 0x15, 0x04, + 0x06, 0x03, + 0x03, 0x00, + NULL +}; + +ALIGNED(4) static const u8 sClose[] = "CLOSE"; +ALIGNED(4) static const u8 sOpen[] = "OPEN"; +ALIGNED(4) static const u8 sFill[] = "pksdir0"; + +// data_80D47B8.s +extern const u8 *gUnknown_80D4970[]; + +void sub_803A924(u32); +void sub_803A93C(void); +void sub_803A9AC(void); +void sub_803AA34(void); +void sub_803AAC4(void); +void sub_803AB34(void); +void sub_803ABAC(void); +bool8 sub_803ABC8(void); + +// Unused +u32 sub_803A888(void) +{ + ResetUnusedInputStruct(); + sub_800641C(0, 1, 1); + sUnknown_203B3F4 = MemoryAlloc(sizeof(struct unkStruct_203B3F4), 8); + sub_803A924(0); + return 1; +} + +// Unused +u32 sub_803A8B8(void) +{ + switch (sUnknown_203B3F4->state) { + case 0: + case 1: + sub_803AAC4(); + break; + case 2: + sub_803AB34(); + break; + case 3: + sub_803ABAC(); + break; + case 4: + return 3; + } + return 0; +} + +// Unused +void sub_803A908(void) +{ + if (sUnknown_203B3F4 != NULL) { + MemoryFree(sUnknown_203B3F4); + sUnknown_203B3F4 = NULL; + } +} + +void sub_803A924(u32 newState) +{ + sUnknown_203B3F4->state = newState; + sub_803A93C(); + sub_803A9AC(); +} + +void sub_803A93C(void) +{ + s32 i; + + sub_8006518(sUnknown_203B3F4->unk9C); + + if (sUnknown_203B3F4->state == 2) + sUnknown_203B3F4->unk9C[2] = sUnknown_80E7EA4; + else { + for(i = 0; i < 4; i++) + sUnknown_203B3F4->unk9C[i] = sUnknown_80E7E8C; + } + + ResetUnusedInputStruct(); + sub_800641C(sUnknown_203B3F4->unk9C, 1, 1); +} + +void sub_803A9AC(void) +{ + switch (sUnknown_203B3F4->state) { + case 0: + sub_80211AC(0, 3); + break; + case 1: + sub_8021354(TRUE); + break; + case 2: + sub_8021494(); + sub_803AA34(); + sub_8012D60(&sUnknown_203B3F4->unk4C, sUnknown_203B3F4->menuItems, 0, 0, sUnknown_203B3F4->menuAction, 2); + break; + case 3: + sub_8021774(sUnknown_203B3F4->friendArea, 1, 0); + break; + case 4: + break; + } +} + +void sub_803AA34(void) +{ + s32 index; + u8 *FriendAreas; + + index = 0; + + // So dumb that it matches... + FriendAreas = gFriendAreas; + + if (FriendAreas[sUnknown_203B3F4->friendArea]) { + sUnknown_203B3F4->menuItems[0].text = sClose; + + if (sub_803ABC8()) + sUnknown_203B3F4->menuItems[0].menuAction = 3; + else + sUnknown_203B3F4->menuItems[0].menuAction = -1; + } + else { + sUnknown_203B3F4->menuItems[0].text = sOpen; + sUnknown_203B3F4->menuItems[0].menuAction = 2; + } + + index++; + sUnknown_203B3F4->menuItems[index].text = *gUnknown_80D4970; + sUnknown_203B3F4->menuItems[index].menuAction = 4; + + index++; + sUnknown_203B3F4->menuItems[index].text = NULL; + sUnknown_203B3F4->menuItems[index].menuAction = 1; + + sUnknown_203B3F4->menuAction = sUnknown_203B3F4->menuItems[0].menuAction; +} + +void sub_803AAC4(void) +{ + switch (sub_8021274(TRUE)) { + case 0: + case 1: + break; + case 3: + sUnknown_203B3F4->friendArea = sub_802132C(); + sub_803A924(2); + break; + case 4: + sUnknown_203B3F4->friendArea = sub_802132C(); + sub_803A924(3); + break; + case 2: + sub_80213A0(); + sub_803A924(4); + break; + } +} + +void sub_803AB34(void) +{ + s32 menuAction; + + menuAction = 0; + + sub_8021274(0); + + if (!sub_8012FD8(&sUnknown_203B3F4->unk4C)) + sub_8013114(&sUnknown_203B3F4->unk4C, &menuAction); + + switch (menuAction) { + case 2: + UnlockFriendArea(sUnknown_203B3F4->friendArea); + sub_803A924(1); + break; + case 3: + sub_809249C(sUnknown_203B3F4->friendArea, 1); + sub_803A924(1); + break; + case 4: + sub_803A924(3); + break; + case 1: + sub_803A924(1); + break; + } +} + +void sub_803ABAC(void) +{ + switch (sub_80217EC()) { + case 2: + case 3: + sub_8021830(); + sub_803A924(1); + break; + case 0: + case 1: + break; + } +} + +bool8 sub_803ABC8(void) +{ + struct PokemonStruct *mon; + s32 i; + s32 mask; + + for (i = 0, mask = 1; i < NUM_MONSTERS; i++) { +#ifdef NONMATCHING + struct PokemonStruct* mon = &gRecruitedPokemonRef->pokemon[i]; +#else + register struct unkStruct_203B45C** recruited asm("r2") = &gRecruitedPokemonRef; + mon = &(*recruited)->pokemon[i]; +#endif + + if ((mask & mon->unk0) != 0 + && ((mon->unk0 >> 1) & mask) != 0 + && sUnknown_203B3F4->friendArea == GetFriendArea(mon->speciesNum)) + return FALSE; + + } + return TRUE; +} \ No newline at end of file diff --git a/src/debug_menu4.c b/src/debug_menu4.c new file mode 100644 index 000000000..17d180b27 --- /dev/null +++ b/src/debug_menu4.c @@ -0,0 +1,279 @@ +#include "global.h" +#include "code_8012A18_1.h" +#include "code_80130A8.h" +#include "code_801EE10_1.h" +#include "debug_menu4.h" +#include "memory.h" +#include "menu_input.h" +#include "text1.h" +#include "text2.h" + +EWRAM_DATA_2 static struct unkStruct_203B3F8 *sUnknown_203B3F8 = {0}; + +static const struct UnkTextStruct2 sUnknown_80E7ED4 = +{ + 0x00, 0x00, 0x00, 0x00, + 0x03, + 0x00, 0x00, + 0x00, 0x00, + 0x00, 0x00, + NULL +}; +static const struct UnkTextStruct2 sUnknown_80E7EEC = +{ + 0x00, 0x00, 0x00, 0x00, + 0x03, + 0x13, 0x04, + 0x09, 0x03, + 0x03, 0x00, + NULL +}; +static const struct UnkTextStruct2 sUnknown_80E7F04 = +{ + 0x00, 0x00, 0x00, 0x00, + 0x03, + 0x13, 0x0e, + 0x06, 0x04, + 0x04, 0x00, + NULL +}; +ALIGNED(4) static const u8 sNumberPrompt[] = "Number?"; +ALIGNED(4) static const u8 sLevel[] = "LEVEL"; +ALIGNED(4) static const u8 sName[] = "Name"; +static const u8 sFill[] = "pksdir0"; + +void sub_803ACD0(u32); +void sub_803ACE8(void); +void sub_803AD88(void); +void sub_803AE58(void); +void sub_803AEB0(void); +void sub_803AF38(void); +void sub_803AF88(void); +void sub_803AFE8(void); +void sub_803B034(void); + +// Unused +u32 sub_803AC24(void) +{ + sUnknown_203B3F8 = MemoryAlloc(sizeof(struct unkStruct_203B3F8), 8); + sub_803ACD0(0); + return 1; +} + +// Unused +u32 sub_803AC48(void) +{ + switch (sUnknown_203B3F8->state) { + case 0: + sub_803ACD0(1); + break; + case 1: + case 2: + sub_803AF38(); + break; + case 3: + sub_803AF88(); + break; + case 5: + sub_803AFE8(); + break; + case 6: + sub_803B034(); + break; + case 4: + case 7: + default: + return 3; + } + return 0; +} + +// Unused +void sub_803ACB4(void) +{ + if (sUnknown_203B3F8 != NULL) { + MemoryFree(sUnknown_203B3F8); + sUnknown_203B3F8 = NULL; + } +} + +void sub_803ACD0(u32 newState) +{ + sUnknown_203B3F8->state = newState; + sub_803ACE8(); + sub_803AD88(); +} + +void sub_803ACE8(void) +{ + s32 i; + + sub_8006518(sUnknown_203B3F8->unkE0); + + switch (sUnknown_203B3F8->state) { + case 3: + sub_803AEB0(); + sUnknown_203B3F8->unkE0[2] = sUnknown_80E7EEC; + sub_8012CAC(&sUnknown_203B3F8->unkE0[2], sUnknown_203B3F8->unk90); + break; + case 5: + sUnknown_203B3F8->unkE0[3] = sUnknown_80E7F04; + break; + default: + for (i = 0; i < 4; i++) + sUnknown_203B3F8->unkE0[i] = sUnknown_80E7ED4; + break; + } + + ResetUnusedInputStruct(); + sub_800641C(sUnknown_203B3F8->unkE0, 1, 1); +} + +void sub_803AD88(void) +{ + switch (sUnknown_203B3F8->state) { + case 1: + sub_8023868(1, 0, 0, 10); + break; + case 2: + sub_8023B7C(1); + break; + case 3: + sub_8023DA4(); + sub_8012D60(&sUnknown_203B3F8->unk10, sUnknown_203B3F8->unk90, 0, sUnknown_203B3F8->unkD0, sUnknown_203B3F8->menuAction, 2); + break; + case 5: + sUnknown_203B3F8->unk70 = 3; + sUnknown_203B3F8->unk68 = 1; + sUnknown_203B3F8->unk6C = 100; + sUnknown_203B3F8->unk64 = sUnknown_203B3F8->pokemon->unkHasNextStage; + sUnknown_203B3F8->unk74 = 3; + sUnknown_203B3F8->unk78 = &sUnknown_203B3F8->unkE0[3]; + sUnknown_203B3F8->unk7C = 44; + sUnknown_203B3F8->unk80 = 18; + sub_8013AA0(&sUnknown_203B3F8->unk60); + sub_803AE58(); + break; + case 6: + sub_801602C(2, sUnknown_203B3F8->pokemon->name); + case 0: + case 4: + case 7: + default: + break; + + } +} + +void sub_803AE58(void) +{ + sub_8008C54(sUnknown_203B3F8->unk74); + sub_80073B8(sUnknown_203B3F8->unk74); + xxx_call_draw_string(4, 0, sNumberPrompt, sUnknown_203B3F8->unk74, 0); + sub_8013C68(&sUnknown_203B3F8->unk60); + sub_80073E0(sUnknown_203B3F8->unk74); + sub_8023DA4(); + sub_8012EA4(&sUnknown_203B3F8->unk10, 0); +} + +void sub_803AEB0(void) +{ + s32 i; + s32 loopMax; + + MemoryFill16(sUnknown_203B3F8->unkD0, 0, sizeof(sUnknown_203B3F8->unkD0)); + + loopMax = 0; + sUnknown_203B3F8->unk90[loopMax].text = sLevel; + sUnknown_203B3F8->unk90[loopMax].menuAction = 4; + + loopMax++; + sUnknown_203B3F8->unk90[loopMax].text = sName; + sUnknown_203B3F8->unk90[loopMax].menuAction = 5; + + loopMax++; + sUnknown_203B3F8->unk90[loopMax].text = NULL; + sUnknown_203B3F8->unk90[loopMax].menuAction = 1; + + for (i = 0; i < loopMax; i++) { + if (sUnknown_203B3F8->unkD0[i] == 0) { + sUnknown_203B3F8->menuAction = sUnknown_203B3F8->unk90[i].menuAction; + break; + } + } +} + +void sub_803AF38(void) +{ + switch (sub_8023A94(TRUE)) { + case 3: + sUnknown_203B3F8->unk4 = sub_8023B44(); + sUnknown_203B3F8->pokemon = &gRecruitedPokemonRef->pokemon[sUnknown_203B3F8->unk4]; + sub_803ACD0(3); + break; + case 2: + sub_8023C60(); + sub_803ACD0(7); + break; + case 1: + case 0: + break; + } +} + +void sub_803AF88(void) +{ + s32 menuAction; + + menuAction = 0; + + sub_8023A94(FALSE); + + if (sub_8012FD8(&sUnknown_203B3F8->unk10) == 0) + sub_8013114(&sUnknown_203B3F8->unk10, &menuAction); + + switch (menuAction) { + case 4: + sub_803ACD0(5); + break; + case 5: + sub_803ACD0(6); + break; + case 1: + sub_803ACD0(2); + break; + default: + break; + } +} + +void sub_803AFE8(void) +{ + sub_8023A94(FALSE); + sub_8012FD8(&sUnknown_203B3F8->unk10); + + switch (sub_8013BBC(&sUnknown_203B3F8->unk60)) { + default: + break; + case 3: + sUnknown_203B3F8->pokemon->unkHasNextStage = sUnknown_203B3F8->unk60; + // Fallthrough is needed to match + case 2: + sub_803ACD0(2); + break; + case 1: + sub_803AE58(); + break; + } +} + +void sub_803B034(void) +{ + switch (sub_8016080()) { + case 2: + case 3: + sub_80160D8(); + sub_803ACD0(2); + break; + } +} \ No newline at end of file diff --git a/src/debug_menu_1.c b/src/debug_menu_1.c deleted file mode 100644 index 53171271c..000000000 --- a/src/debug_menu_1.c +++ /dev/null @@ -1,285 +0,0 @@ -#include "global.h" -#include "code_80130A8.h" -#include "pokemon.h" -#include "debug_menu.h" -#include "memory.h" -#include "text1.h" -#include "text2.h" -#include "menu_input.h" - -extern struct unkStruct_203B3F8 *gUnknown_203B3F8; - -const struct UnkTextStruct2 gUnknown_80E7ED4 = { - 0x00, 0x00, 0x00, 0x00, - 0x03, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - NULL -}; -const struct UnkTextStruct2 gUnknown_80E7EEC = { - 0x00, 0x00, 0x00, 0x00, - 0x03, - 0x13, 0x04, - 0x09, 0x03, - 0x03, 0x00, - NULL -}; -const struct UnkTextStruct2 gUnknown_80E7F04 = { - 0x00, 0x00, 0x00, 0x00, - 0x03, - 0x13, 0x0e, - 0x06, 0x04, - 0x04, 0x00, - NULL -}; -ALIGNED(4) const u8 gDebug_NumberText2[] = "Number?"; -ALIGNED(4) const u8 gDebug_LevelText[] = "LEVEL"; -ALIGNED(4) const u8 gDebug_Name[] = "Name"; -static const u8 fill0[] = "pksdir0"; - -extern void sub_803AE58(void); -extern u32 sub_8016080(void); -extern void sub_803ACD0(u32); -extern void sub_80160D8(void); -extern u32 sub_8023A94(u32); -extern s16 sub_8023B44(void); -extern void sub_8023C60(void); -extern void sub_8023DA4(void); -extern void sub_803ACE8(); -extern void sub_803AD88(); -extern void sub_803AF38(); -extern void sub_803AF88(); -extern void sub_803AFE8(); -extern void sub_803B034(); -extern void sub_8023868(u32, u32, u32, u32); -extern void sub_8023B7C(u32); -extern void sub_801602C(u32, u8 *); -extern void sub_803AEB0(); - -u32 sub_803AC24(void) -{ - gUnknown_203B3F8 = MemoryAlloc(sizeof(struct unkStruct_203B3F8), 8); - sub_803ACD0(0); - return 1; -} - -u32 sub_803AC48(void) -{ - switch(gUnknown_203B3F8->state) - { - case 0: - sub_803ACD0(1); - break; - case 1: - case 2: - sub_803AF38(); - break; - case 3: - sub_803AF88(); - break; - case 5: - sub_803AFE8(); - break; - case 6: - sub_803B034(); - break; - case 4: - case 7: - default: - return 3; - } - return 0; -} - -void sub_803ACB4(void) -{ - if(gUnknown_203B3F8 != NULL) - { - MemoryFree(gUnknown_203B3F8); - gUnknown_203B3F8 = NULL; - } -} - -void sub_803ACD0(u32 newState) -{ - gUnknown_203B3F8->state = newState; - sub_803ACE8(); - sub_803AD88(); -} - -void sub_803ACE8(void) -{ - s32 index; - sub_8006518(gUnknown_203B3F8->unkE0); - switch(gUnknown_203B3F8->state) - { - case 3: - sub_803AEB0(); - gUnknown_203B3F8->unkE0[2] = gUnknown_80E7EEC; - sub_8012CAC(&gUnknown_203B3F8->unkE0[2], gUnknown_203B3F8->unk90); - break; - case 5: - gUnknown_203B3F8->unkE0[3] = gUnknown_80E7F04; - break; - default: - for(index = 0; index < 4; index++) - { - gUnknown_203B3F8->unkE0[index] = gUnknown_80E7ED4; - } - break; - } - ResetUnusedInputStruct(); - sub_800641C(gUnknown_203B3F8->unkE0, 1, 1); -} - -void sub_803AD88(void) -{ - switch(gUnknown_203B3F8->state) - { - case 1: - sub_8023868(1, 0, 0, 10); - break; - case 2: - sub_8023B7C(1); - break; - case 3: - sub_8023DA4(); - sub_8012D60(&gUnknown_203B3F8->unk10, gUnknown_203B3F8->unk90, 0, gUnknown_203B3F8->unkD0, gUnknown_203B3F8->menuAction, 2); - break; - case 5: - gUnknown_203B3F8->unk70 = 3; - gUnknown_203B3F8->unk68 = 1; - gUnknown_203B3F8->unk6C = 0x64; - gUnknown_203B3F8->unk64 = gUnknown_203B3F8->pokemon->unkHasNextStage; - gUnknown_203B3F8->unk74 = 3; - gUnknown_203B3F8->unk78 = &gUnknown_203B3F8->unkE0[3]; - gUnknown_203B3F8->unk7C = 0x2C; - gUnknown_203B3F8->unk80 = 0x12; - sub_8013AA0(&gUnknown_203B3F8->unk60); - sub_803AE58(); - break; - case 6: - sub_801602C(2, gUnknown_203B3F8->pokemon->name); - case 0: - case 4: - case 7: - default: - break; - - } -} - -void sub_803AE58(void) -{ - sub_8008C54(gUnknown_203B3F8->unk74); - sub_80073B8(gUnknown_203B3F8->unk74); - xxx_call_draw_string(4, 0, gDebug_NumberText2, gUnknown_203B3F8->unk74, 0); - sub_8013C68(&gUnknown_203B3F8->unk60); - sub_80073E0(gUnknown_203B3F8->unk74); - sub_8023DA4(); - sub_8012EA4(&gUnknown_203B3F8->unk10, 0); -} - -void sub_803AEB0(void) -{ - s32 index; - s32 loopMax; - - MemoryFill16(gUnknown_203B3F8->unkD0,0,sizeof(gUnknown_203B3F8->unkD0)); - loopMax = 0; - - gUnknown_203B3F8->unk90[loopMax].text = gDebug_LevelText; - gUnknown_203B3F8->unk90[loopMax].menuAction = 4; - loopMax += 1; - gUnknown_203B3F8->unk90[loopMax].text = gDebug_Name; - gUnknown_203B3F8->unk90[loopMax].menuAction = 5; - loopMax += 1; - gUnknown_203B3F8->unk90[loopMax].text = NULL; - gUnknown_203B3F8->unk90[loopMax].menuAction = 1; - - for(index = 0; index < loopMax; index++) - { - if (gUnknown_203B3F8->unkD0[index] == 0) - { - gUnknown_203B3F8->menuAction = gUnknown_203B3F8->unk90[index].menuAction; - break; - } - } -} - -void sub_803AF38(void) -{ - switch(sub_8023A94(1)) - { - case 3: - gUnknown_203B3F8->unk4 = sub_8023B44(); - gUnknown_203B3F8->pokemon = &gRecruitedPokemonRef->pokemon[gUnknown_203B3F8->unk4]; - sub_803ACD0(3); - break; - case 2: - sub_8023C60(); - sub_803ACD0(7); - break; - case 1: - case 0: - break; - } -} - -void sub_803AF88(void) -{ - s32 menuAction; - - menuAction = 0; - sub_8023A94(0); - if (sub_8012FD8(&gUnknown_203B3F8->unk10) == 0) { - sub_8013114(&gUnknown_203B3F8->unk10, &menuAction); - } - switch(menuAction) - { - case 4: - sub_803ACD0(5); - break; - case 5: - sub_803ACD0(6); - break; - case 1: - sub_803ACD0(2); - break; - default: - break; - } -} - -void sub_803AFE8(void) -{ - sub_8023A94(0); - sub_8012FD8(&gUnknown_203B3F8->unk10); - switch(sub_8013BBC(&gUnknown_203B3F8->unk60)) - { - default: - break; - case 3: - gUnknown_203B3F8->pokemon->unkHasNextStage = gUnknown_203B3F8->unk60; - // Fallthrough is needed to match - case 2: - sub_803ACD0(2); - break; - case 1: - sub_803AE58(); - break; - } -} - -void sub_803B034(void) -{ - switch(sub_8016080()) - { - case 2: - case 3: - sub_80160D8(); - sub_803ACD0(2); - break; - } -} diff --git a/src/debug_menu_mid.c b/src/debug_menu_mid.c deleted file mode 100644 index 735a3dd2b..000000000 --- a/src/debug_menu_mid.c +++ /dev/null @@ -1,616 +0,0 @@ -#include "global.h" -#include "code_80130A8.h" -#include "friend_area.h" -#include "item.h" -#include "memory.h" -#include "menu_input.h" -#include "pokemon.h" -#include "team_inventory.h" -#include "text1.h" -#include "text2.h" - -// size: 0x138 -struct unkStruct_203B3F0 -{ - u32 state; - u8 id; - u32 menuAction; - struct MenuItem menuItems[8]; - struct MenuStruct unk4C; - u32 unk9C; - u32 unkA0; - u32 unkA4; - u32 unkA8; - u32 unkAC; - u32 unkB0; - struct UnkTextStruct2 *unkB4; - u32 unkB8; - u32 unkBC; - u8 fill4[0xD8 - 0xC0]; - struct UnkTextStruct2 unkD8[4]; -}; - -extern struct unkStruct_203B3F0 *gUnknown_203B3F0; - -// size: 0xFC -struct unkStruct_203B3F4 -{ - u32 state; - u8 friendArea; - u8 fill5[0x8 - 5]; - u32 menuAction; - struct MenuItem menuItems[8]; - struct MenuStruct unk4C; - struct UnkTextStruct2 unk9C[4]; -}; - -extern struct unkStruct_203B3F4 *gUnknown_203B3F4; - -const struct UnkTextStruct2 gUnknown_80E7E34 = { - 0x00, 0x00, 0x00, 0x00, - 0x03, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - NULL -}; -const struct UnkTextStruct2 gUnknown_80E7E4C = { - 0x00, 0x00, 0x00, 0x00, - 0x03, - 0x14, 0x04, - 0x06, 0x03, - 0x03, 0x00, - NULL -}; -const struct UnkTextStruct2 gUnknown_80E7E64 = { - 0x00, 0x00, 0x00, 0x00, - 0x03, - 0x14, 0x0e, - 0x06, 0x04, - 0x04, 0x00, - NULL -}; - -ALIGNED(4) const char gDebug_NumberText[] = "Number?"; -ALIGNED(4) static const u8 fill0[] = "pksdir0"; - -const struct UnkTextStruct2 gUnknown_80E7E8C = { - 0x00, 0x00, 0x00, 0x00, - 0x03, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - NULL -}; -const struct UnkTextStruct2 gUnknown_80E7EA4 = { - 0x00, 0x00, 0x00, 0x00, - 0x03, - 0x15, 0x04, - 0x06, 0x03, - 0x03, 0x00, - NULL -}; - -ALIGNED(4) const u8 gDebug_CloseText[] = "CLOSE"; -ALIGNED(4) const u8 gDebug_OpenText[] = "OPEN"; -ALIGNED(4) static const u8 fill1[] = "pksdir0"; - -// friend_area.c -extern bool8 *gFriendAreas; -// data_80D47B8.s -extern const char *gUnknown_80D4970[]; - -extern void sub_801B3C0(struct Item *); -extern void sub_801C8C4(u32, u32, u32, u32); -extern void sub_801CB5C(u32); -extern void sub_801CCD8(void); -extern u32 sub_801CA08(u32); -extern u8 sub_801CB24(void); -extern void sub_801CBB8(void); -extern u32 sub_801B410(void); -extern void sub_801B450(void); -extern void sub_80211AC(u32, u32); -extern void sub_8021354(u32); -extern void sub_8021494(void); -extern void sub_803AA34(void); -extern void sub_8021774(u8,u32, u32); -extern void sub_809249C(u8, u32); -extern void sub_8021830(void); -extern u32 sub_80217EC(void); -extern u32 sub_8021274(u32); -extern u8 sub_802132C(void); -extern void sub_80213A0(void); -extern void sub_803AAC4(void); -extern void sub_803AB34(void); -void sub_803ABAC(void); - -void sub_803A924(u32); -void sub_803A93C(void); -void sub_803A9AC(void); - -void sub_803A504(u32); -void sub_803A51C(void); -void sub_803A5A0(void); -void sub_803A690(void); -void sub_803A6F0(void); -void sub_803A740(void); -void sub_803A7B0(void); -void sub_803A810(void); -void sub_803A86C(void); -bool8 sub_803ABC8(void); - -// Unused -u32 sub_803A45C(void) -{ - ResetUnusedInputStruct(); - sub_800641C(0,1,1); - gUnknown_203B3F0 = MemoryAlloc(sizeof(struct unkStruct_203B3F0), 8); - sub_803A504(0); - return 1; -} - -// Unused -u32 sub_803A48C(void) -{ - switch(gUnknown_203B3F0->state) { - case 0: - case 1: - sub_803A740(); - break; - case 2: - sub_803A7B0(); - break; - case 3: - sub_803A810(); - break; - case 4: - sub_803A86C(); - break; - case 5: - return 3; - } - return 0; -} - -// Unused -void sub_803A4E8(void) -{ - if(gUnknown_203B3F0 != NULL) - { - MemoryFree(gUnknown_203B3F0); - gUnknown_203B3F0 = NULL; - } -} - -void sub_803A504(u32 newState) -{ - gUnknown_203B3F0->state = newState; - sub_803A51C(); - sub_803A5A0(); -} - -void sub_803A51C(void) -{ - s32 index; - - sub_8006518(gUnknown_203B3F0->unkD8); - switch(gUnknown_203B3F0->state) - { - case 3: - gUnknown_203B3F0->unkD8[1] = gUnknown_80E7E64; - break; - case 2: - gUnknown_203B3F0->unkD8[2] = gUnknown_80E7E4C; - break; - default: - for(index = 0; index < 4; index++) - { - gUnknown_203B3F0->unkD8[index] = gUnknown_80E7E34; - } - break; - } - ResetUnusedInputStruct(); - sub_800641C(gUnknown_203B3F0->unkD8, 1, 1); -} - -void sub_803A5A0(void) -{ - struct Item item; - - switch(gUnknown_203B3F0->state) { - case 0: - sub_801C8C4(2,3,0,10); - break; - case 1: - sub_801CB5C(1); - break; - case 2: - sub_801CCD8(); - sub_803A6F0(); - sub_8012D60(&gUnknown_203B3F0->unk4C, gUnknown_203B3F0->menuItems, 0, 0, gUnknown_203B3F0->menuAction, 2); - break; - case 3: - gUnknown_203B3F0->unkAC = 3; - gUnknown_203B3F0->unkA4 = 0; - gUnknown_203B3F0->unkA8 = 0x3e7; - gUnknown_203B3F0->unkA0 = gTeamInventoryRef->teamStorage[gUnknown_203B3F0->id]; - gUnknown_203B3F0->unkB0 = 1; - gUnknown_203B3F0->unkB4 = &gUnknown_203B3F0->unkD8[1]; - gUnknown_203B3F0->unkB8 = 0x2C; - gUnknown_203B3F0->unkBC = 0x12; - sub_8013AA0(&gUnknown_203B3F0->unk9C); - sub_803A690(); - break; - case 4: - xxx_init_itemslot_8090A8C(&item,gUnknown_203B3F0->id,0); - sub_801B3C0(&item); - break; - case 5: - break; - } -} - -void sub_803A690(void) -{ - sub_8008C54(gUnknown_203B3F0->unkB0); - sub_80073B8(gUnknown_203B3F0->unkB0); - xxx_call_draw_string(4, 0, gDebug_NumberText, gUnknown_203B3F0->unkB0, 0); - sub_8013C68(&gUnknown_203B3F0->unk9C); - sub_80073E0(gUnknown_203B3F0->unkB0); - sub_801CCD8(); - sub_8012EA4(&gUnknown_203B3F0->unk4C,0); -} - -void sub_803A6F0(void) -{ - s32 loopMax = 0; - - gUnknown_203B3F0->menuItems[loopMax].text = gDebug_NumberText; - gUnknown_203B3F0->menuItems[loopMax].menuAction = 2; - gUnknown_203B3F0->menuAction = 2; - if (!IsNotMoneyOrUsedTMItem(gUnknown_203B3F0->id)) { - gUnknown_203B3F0->menuItems[loopMax].menuAction = -1; - gUnknown_203B3F0->menuAction = 3; - } - loopMax += 1; - gUnknown_203B3F0->menuItems[loopMax].text = *gUnknown_80D4970; - gUnknown_203B3F0->menuItems[loopMax].menuAction = 3; - loopMax += 1; - gUnknown_203B3F0->menuItems[loopMax].text = NULL; - gUnknown_203B3F0->menuItems[loopMax].menuAction = 1; -} - -void sub_803A740(void) -{ - switch(sub_801CA08(1)) { - case 0: - case 1: - break; - case 3: - gUnknown_203B3F0->id = sub_801CB24(); - sub_803A504(2); - break; - case 4: - gUnknown_203B3F0->id = sub_801CB24(); - sub_803A504(4); - break; - case 2: - sub_801CBB8(); - sub_803A504(5); - break; - } -} - -void sub_803A7B0(void) -{ - s32 menuAction; - - menuAction = 0; - sub_801CA08(0); - if (sub_8012FD8(&gUnknown_203B3F0->unk4C) == '\0') { - sub_8013114(&gUnknown_203B3F0->unk4C,&menuAction); - } - switch(menuAction) - { - case 2: - sub_803A504(3); - break; - case 3: - sub_803A504(4); - break; - case 1: - sub_803A504(1); - break; - - } -} - -void sub_803A810(void) -{ - sub_801CA08(0); - sub_8012FD8(&gUnknown_203B3F0->unk4C); - switch(sub_8013BBC(&gUnknown_203B3F0->unk9C)) - { - case 3: - gTeamInventoryRef->teamStorage[gUnknown_203B3F0->id] = gUnknown_203B3F0->unk9C; - // Fallthrough needed to match - case 2: - sub_803A504(1); - break; - case 1: - sub_803A690(); - break; - } -} - -void sub_803A86C(void) -{ - switch(sub_801B410()) - { - case 1: - case 0: - break; - case 2: - case 3: - sub_801B450(); - sub_803A504(1); - break; - } -} - -////////////////////////////////////////// - -u32 sub_803A888(void) -{ - ResetUnusedInputStruct(); - sub_800641C(0, 1, 1); - gUnknown_203B3F4 = MemoryAlloc(sizeof(struct unkStruct_203B3F4), 8); - sub_803A924(0); - return 1; -} - -u32 sub_803A8B8(void) -{ - switch(gUnknown_203B3F4->state) { - case 0: - case 1: - sub_803AAC4(); - break; - case 2: - sub_803AB34(); - break; - case 3: - sub_803ABAC(); - break; - case 4: - return 3; - } - return 0; -} - -void sub_803A908(void) -{ - if(gUnknown_203B3F4 != NULL) - { - MemoryFree(gUnknown_203B3F4); - gUnknown_203B3F4 = NULL; - } -} - -void sub_803A924(u32 newState) -{ - gUnknown_203B3F4->state = newState; - sub_803A93C(); - sub_803A9AC(); -} - -void sub_803A93C(void) -{ - s32 index; - sub_8006518(gUnknown_203B3F4->unk9C); - if(gUnknown_203B3F4->state == 2) - { - gUnknown_203B3F4->unk9C[2] = gUnknown_80E7EA4; - } - else - { - for(index = 0; index < 4; index++) - { - gUnknown_203B3F4->unk9C[index] = gUnknown_80E7E8C; - } - } - ResetUnusedInputStruct(); - sub_800641C(gUnknown_203B3F4->unk9C, 1, 1); -} - -void sub_803A9AC(void) -{ - switch(gUnknown_203B3F4->state) { - case 0: - sub_80211AC(0,3); - break; - case 1: - sub_8021354(1); - break; - case 2: - sub_8021494(); - sub_803AA34(); - sub_8012D60(&gUnknown_203B3F4->unk4C,gUnknown_203B3F4->menuItems,0,0,gUnknown_203B3F4->menuAction,2); - break; - case 3: - sub_8021774(gUnknown_203B3F4->friendArea,1,0); - break; - case 4: - break; - } -} - -void sub_803AA34(void) -{ - s32 index; - u8 *FriendAreas; - - - index = 0; - - // So dumb that it matches... - FriendAreas = gFriendAreas; - - if(FriendAreas[gUnknown_203B3F4->friendArea]) - { - gUnknown_203B3F4->menuItems[0].text = gDebug_CloseText; - if(sub_803ABC8()) - gUnknown_203B3F4->menuItems[0].menuAction = 3; - else - gUnknown_203B3F4->menuItems[0].menuAction = -1; - } - else - { - gUnknown_203B3F4->menuItems[0].text = gDebug_OpenText; - gUnknown_203B3F4->menuItems[0].menuAction = 2; - } - - index++; - gUnknown_203B3F4->menuItems[index].text = *gUnknown_80D4970; - gUnknown_203B3F4->menuItems[index].menuAction = 4; - - index++; - gUnknown_203B3F4->menuItems[index].text = NULL; - gUnknown_203B3F4->menuItems[index].menuAction = 1; - - gUnknown_203B3F4->menuAction = gUnknown_203B3F4->menuItems[0].menuAction; -} - -void sub_803AAC4(void) -{ - switch(sub_8021274(1)) - { - case 0: - case 1: - break; - case 3: - gUnknown_203B3F4->friendArea = sub_802132C(); - sub_803A924(2); - break; - case 4: - gUnknown_203B3F4->friendArea = sub_802132C(); - sub_803A924(3); - break; - case 2: - sub_80213A0(); - sub_803A924(4); - break; - } -} - -void sub_803AB34(void) -{ - s32 menuAction; - menuAction = 0; - sub_8021274(0); - if(!sub_8012FD8(&gUnknown_203B3F4->unk4C)) - sub_8013114(&gUnknown_203B3F4->unk4C, &menuAction); - switch(menuAction) - { - case 2: - UnlockFriendArea(gUnknown_203B3F4->friendArea); - sub_803A924(1); - break; - case 3: - sub_809249C(gUnknown_203B3F4->friendArea, 1); - sub_803A924(1); - break; - case 4: - sub_803A924(3); - break; - case 1: - sub_803A924(1); - break; - } -} - -void sub_803ABAC(void) -{ - switch(sub_80217EC()) - { - case 2: - case 3: - sub_8021830(); - sub_803A924(1); - break; - case 0: - case 1: - break; - } -} - -#if NONMATCHING // https://decomp.me/scratch/LQcwz -bool8 sub_803ABC8(void) -{ - struct PokemonStruct *mon; - s32 i; - s32 mask; - - for (i = 0, mask = 1; i < NUM_MONSTERS; i++) { - mon = &gRecruitedPokemonRef->pokemon[i]; - - if ((mask & mon->unk0) != 0 - && ((mon->unk0 >> 1) & mask) != 0 - && gUnknown_203B3F4->friendArea == GetFriendArea(mon->speciesNum)) - return FALSE; - - } - return TRUE; -} -#else -NAKED -bool8 sub_803ABC8(void) -{ - asm_unified( - "push {r4-r6,lr}\n" - "\tmovs r5, 0\n" - "\tmovs r6, 0x1\n" -"_0803ABCE:\n" - "\tldr r2, _0803AC08\n" - "\tmovs r0, 0x58\n" - "\tadds r1, r5, 0\n" - "\tmuls r1, r0\n" - "\tldr r0, [r2]\n" - "\tadds r2, r0, r1\n" - "\tldrh r1, [r2]\n" - "\tadds r0, r6, 0\n" - "\tands r0, r1\n" - "\tcmp r0, 0\n" - "\tbeq _0803AC10\n" - "\tlsrs r0, r1, 1\n" - "\tands r0, r6\n" - "\tcmp r0, 0\n" - "\tbeq _0803AC10\n" - "\tldr r0, _0803AC0C\n" - "\tldr r4, [r0]\n" - "\tmovs r1, 0x8\n" - "\tldrsh r0, [r2, r1]\n" - "\tbl GetFriendArea\n" - "\tldrb r1, [r4, 0x4]\n" - "\tlsls r0, 24\n" - "\tlsrs r0, 24\n" - "\tcmp r1, r0\n" - "\tbne _0803AC10\n" - "\tmovs r0, 0\n" - "\tb _0803AC1C\n" - "\t.align 2, 0\n" -"_0803AC08: .4byte gRecruitedPokemonRef\n" -"_0803AC0C: .4byte gUnknown_203B3F4\n" -"_0803AC10:\n" - "\tadds r5, 0x1\n" - "\tmovs r0, 0xCE\n" - "\tlsls r0, 1\n" - "\tcmp r5, r0\n" - "\tble _0803ABCE\n" - "\tmovs r0, 0x1\n" -"_0803AC1C:\n" - "\tpop {r4-r6}\n" - "\tpop {r1}\n" - "\tbx r1"); -} -#endif // NONMATCHING \ No newline at end of file diff --git a/src/friend_area_1.c b/src/friend_area_1.c index c7dee3f7d..4b3d495fd 100644 --- a/src/friend_area_1.c +++ b/src/friend_area_1.c @@ -1,8 +1,7 @@ #include "global.h" #include "constants/friend_area.h" #include "code_8092334.h" - -extern bool8 *gFriendAreas; +#include "friend_area.h" u32 SaveFriendAreas(u8 *r0, u32 size) { diff --git a/src/friend_area_action_menu.c b/src/friend_area_action_menu.c index 63fbbec87..c4c8adb2c 100644 --- a/src/friend_area_action_menu.c +++ b/src/friend_area_action_menu.c @@ -10,20 +10,18 @@ #include "kecleon_bros.h" #include "sprite.h" #include "code_80130A8.h" +#include "code_801EE10_1.h" +#include "code_801B3C0.h" extern struct unkStruct_203B2BC *gUnknown_203B2BC; extern void sub_8027D40(u32, struct BulkItem *); -extern void sub_8023868(u32, u32, u32, u32); -extern void sub_8023B7C(u32); -extern void sub_8023DA4(); extern void sub_8024458(s16, u32); extern void sub_801BEEC(s16); extern void GetLinkedSequence(u32, struct Move *, u16*); extern void sub_801F808(u16*); extern void sub_8027794(); extern void sub_801F1B0(u32, u32); -extern void sub_801B3C0(struct Item *); extern void unk_CopyMoves4To8(struct Move *, struct Move *); extern void sub_801EE10(u32, s16, struct Move *, u32, u32, u32); diff --git a/src/friend_area_action_menu_1.c b/src/friend_area_action_menu_1.c index d90132035..46df1c084 100644 --- a/src/friend_area_action_menu_1.c +++ b/src/friend_area_action_menu_1.c @@ -9,12 +9,12 @@ #include "menu_input.h" #include "kecleon_bros.h" #include "code_80130A8.h" +#include "code_801EE10_1.h" +#include "code_801B3C0.h" extern struct unkStruct_203B2BC *gUnknown_203B2BC; extern struct TeamInventory *gTeamInventoryRef; -extern u32 sub_801B410(); -extern void sub_801B450(); extern u32 sub_801EF38(u8 r0); extern void sub_801F214(); @@ -41,12 +41,9 @@ extern void sub_801BF98(void); extern u32 sub_80244E4(void); extern void sub_802453C(void); -extern u32 sub_8023A94(u32); extern bool8 sub_808D750(s16 index_); extern struct PokemonStruct *GetPlayerPokemonStruct(void); extern void sub_808ED00(); -extern s16 sub_8023B44(void); -extern void sub_8023C60(void); ALIGNED(4) const u8 gFriendActionStandby[] = "Stand By"; ALIGNED(4) const u8 gFriendActionMakeLeader[] = "Make Leader"; @@ -124,7 +121,7 @@ void sub_80277FC(void) { struct PokemonStruct *pokeStruct; - switch(sub_8023A94(1)) { + switch(sub_8023A94(TRUE)) { case 0: case 1: break; @@ -159,7 +156,7 @@ void sub_80278B4(void) u32 menuAction; menuAction = 0; - sub_8023A94(0); + sub_8023A94(FALSE); if ((sub_8012FD8(&gUnknown_203B2BC->unk7C) == 0) && (sub_8013114(&gUnknown_203B2BC->unk7C,&menuAction), menuAction != 1)) { gUnknown_203B2BC->menuAction1 = menuAction; } diff --git a/src/friend_list_menu.c b/src/friend_list_menu.c index 7e0fe8849..2959a3758 100644 --- a/src/friend_list_menu.c +++ b/src/friend_list_menu.c @@ -10,6 +10,9 @@ #include "team_inventory.h" #include "kecleon_bros.h" #include "code_80130A8.h" +#include "code_801EE10_1.h" +#include "code_8012A18_1.h" +#include "code_801B3C0.h" // there might be more overlap with unkStruct_203B2BC // I was working on the moves and put the data that seemed to correspond to that @@ -112,40 +115,28 @@ ALIGNED(4) const u8 gFriendListCheckIQ[] = "Check IQ"; ALIGNED(4) const u8 gFriendListItem[] = _("Item: {COLOR_1 GREEN}{ARG_MOVE_ITEM_0}{END_COLOR_TEXT_1} "); ALIGNED(4) static const u8 fill0[] = "pksdir0"; -extern u32 sub_8023A94(u32); -extern s16 sub_8023B44(void); -extern void sub_8023C60(void); extern s16 sub_80A5728(void); extern u8 sub_8002658(s16); extern bool8 sub_8024108(u32); -extern u32 sub_801B3C0(struct Item *param_1); -extern void sub_8023868(u32, u32, u32, u32); extern void sub_801F1B0(u32, u32); extern void PlaySound(u32); extern void sub_8024458(s16, u32); extern void sub_801BEEC(s16); -extern void sub_8023B7C(u32); -extern void sub_8023DA4(void); extern void nullsub_104(void); extern void sub_808ED00(void); extern u32 sub_80244E4(void); extern void sub_802453C(void); extern u32 sub_801BF48(void); extern void sub_801BF98(void); -extern void sub_801B450(void); -extern u32 sub_801B410(void); extern u32 sub_801EF38(u32); extern u32 sub_801F194(void); extern void sub_801F214(void); extern void sub_801EE10(u32, s16, struct Move *, u32, u32, u32); extern void sub_801F808(u16 *); -extern u32 sub_801602C(u32 r0, u8 *name); extern void sub_8099690(u32); extern void sub_801F8D0(void); extern u32 sub_801F890(void); -extern void sub_80160D8(void); -extern u32 sub_8016080(void); extern bool8 sub_80023E4(u32); void sub_8025434(s32); @@ -487,7 +478,7 @@ void sub_802591C(void) void sub_80259F0(void) { - switch(sub_8023A94(1)) + switch(sub_8023A94(TRUE)) { case 3: gUnknown_203B2B4->species = sub_8023B44(); @@ -512,7 +503,7 @@ void sub_8025A84(void) { s32 menuAction = 0; - sub_8023A94(0); + sub_8023A94(FALSE); if(!sub_8012FD8(&gUnknown_203B2B4->unk78)) { sub_8013114(&gUnknown_203B2B4->unk78, &menuAction); diff --git a/src/friend_rescue.c b/src/friend_rescue.c index a5797ba36..2b0327f78 100644 --- a/src/friend_rescue.c +++ b/src/friend_rescue.c @@ -16,6 +16,9 @@ #include "code_8094F88.h" #include "code_80130A8.h" #include "main_menu.h" +#include "code_801EE10_1.h" +#include "code_801C620.h" +#include "code_801B3C0.h" extern void SetFriendRescueMenuState(u32); extern struct PokemonStruct *GetPlayerPokemonStruct(void); @@ -251,13 +254,6 @@ extern void sub_8034848(void); extern u32 sub_80154F0(); extern void sub_80155F0(); -extern u32 sub_801CA08(u32); -extern void sub_801CBB8(void); -extern void sub_801CB5C(u32); -extern void sub_801B3C0(struct Item *); -extern u32 sub_801B410(void); -extern void sub_801B450(void); -extern u8 sub_801CB24(void); extern u32 sub_8030DA0(void); extern void sub_8030DE4(void); extern void sub_803092C(void); @@ -273,35 +269,21 @@ extern u8 sub_8024108(u32); extern void sub_802452C(void); extern u32 sub_80244E4(void); extern void sub_802453C(void); -extern void sub_8023B7C(u32); -extern u32 sub_8023A94(u32); -extern void sub_8023C60(void); extern void sub_8024458(s16, u32); -extern void sub_8023DA4(void); extern void sub_8035D1C(void); -extern u16 sub_8023B44(void); extern u32 sub_8039068(u32, u8 *passwordBuffer, struct unkStruct_203B480 *r0); -extern bool8 sub_801CF14(s32); extern void sub_803084C(void); extern void sub_8031E10(void); -extern void sub_8023C60(void); extern void sub_80155F0(void); -extern void sub_801CBB8(void); extern void sub_802F2C0(void); extern void sub_8030DE4(void); extern void sub_802453C(void); -extern void sub_801B450(void); extern u8 sub_800D588(void); extern void sub_8011830(void); extern void sub_80151C0(u32, u8 *); -extern void sub_801C8C4(u32, u32, s32 * , u32); -extern void sub_801CCD8(void); extern u32 sub_801D008(void); -extern void sub_8023868(u32, u32, u32, u32); -extern void sub_8023C60(void); extern u32 sub_8023CE8(void); -extern void sub_8023DA4(void); extern void sub_802F204(struct unkStruct_802F204 *, u32); extern u32 sub_80306A8(u32 wonderMailType, u32, struct UnkTextStruct2_sub *, u32); extern u32 sub_8030894(void); @@ -1088,8 +1070,8 @@ void sub_8032828(void) ResetUnusedInputStruct(); sub_800641C(0,1,1); { - struct {u16 a; u16 b;} local_x = {3, 2}; - sub_801C8C4(0, 1, (s32 *)&local_x, 9); + struct UnkTextStruct2_sub local_x = {3, 2}; + sub_801C8C4(0, 1, &local_x, 9); } } break; @@ -1864,7 +1846,7 @@ void sub_8034130(void) void sub_803418C(void) { - switch(sub_8023A94(1)) + switch(sub_8023A94(TRUE)) { case 2: sub_8023C60(); @@ -1896,7 +1878,7 @@ void sub_8034254(void) s32 menuAction; menuAction = -1; - sub_8023A94(0); + sub_8023A94(FALSE); if(!sub_8012FD8(&gUnknown_203B33C->unk21C[3])) sub_8013114(&gUnknown_203B33C->unk21C[3], &menuAction); switch(menuAction) @@ -2469,7 +2451,7 @@ void sub_8034B88(void) gUnknown_203B33C->item.id = ITEM_NOTHING; gUnknown_203B33C->item.quantity = 1; gUnknown_203B33C->item.flags = 0; - switch(sub_801CA08(1)) + switch(sub_801CA08(TRUE)) { case 2: sub_801CBB8(); @@ -2500,7 +2482,7 @@ void sub_8034C38(void) sub_801B450(); ResetUnusedInputStruct(); sub_800641C(gUnknown_203B33C->unk3BC, 1, 1); - sub_801CB5C(1); + sub_801CB5C(TRUE); if(gUnknown_203B33C->fallbackState == FRIEND_RESCUE_MENU_DEFAULT_FALLBACK) { sub_8035CF4(gUnknown_203B33C->unk21C, 3, 1); @@ -2520,7 +2502,7 @@ void sub_8034C98(void) s32 menuAction; menuAction = -1; - sub_801CA08(0); + sub_801CA08(FALSE); if(!sub_8012FD8(&gUnknown_203B33C->unk21C[3])) sub_8013114(&gUnknown_203B33C->unk21C[3], &menuAction); switch(menuAction) @@ -2540,7 +2522,7 @@ void sub_8034C98(void) case 5: case 8: sub_8035CC0(gUnknown_203B33C->unk35C, 3); - sub_801CB5C(0x1); + sub_801CB5C(TRUE); SetFriendRescueMenuState(0x5F); break; } @@ -2780,7 +2762,7 @@ void sub_80350F4(void) switch(menuAction) { case 0x15: - if(sub_801CF14(0) != 0) + if(sub_801CF14(0)) SetFriendRescueMenuState(0x56); else SetFriendRescueMenuState(0x57); diff --git a/src/gulpin_shop_1.c b/src/gulpin_shop_1.c index 830293f77..8ea2ebf15 100644 --- a/src/gulpin_shop_1.c +++ b/src/gulpin_shop_1.c @@ -10,6 +10,7 @@ #include "moves.h" #include "felicity_bank.h" #include "code_80130A8.h" +#include "code_801EE10_1.h" // size: 0x1E0 struct unkStruct_203B27C @@ -93,9 +94,6 @@ bool8 sub_801F808(u16 *moveIDs); void sub_801F700(void); bool8 sub_801F428(s16 index, s32 param_2); void sub_801F5F0(u8 r0); -extern void sub_8023DA4(void); -extern void sub_8023868(u32, u32, u32, u32); -extern void sub_8023B7C(u32); extern void sub_801F1B0(u32, u32); extern void sub_801F280(u32); void sub_8024458(u32, u32); @@ -124,9 +122,6 @@ extern void sub_80209FC(void); extern void sub_8020A34(void); extern void sub_801FDC0(void); extern void sub_801FF28(void); -u32 sub_8023A94(u32); -void sub_8023C60(void); -extern s16 sub_8023B44(void); extern u32 sub_80244E4(void); extern u32 sub_801BF48(void); extern void sub_802453C(void); @@ -759,7 +754,7 @@ void sub_8020A34(void) void sub_8020A80(void) { - switch(sub_8023A94(1)) + switch(sub_8023A94(TRUE)) { case 3: gUnknown_203B27C->speciesNum = sub_8023B44(); @@ -790,7 +785,7 @@ void sub_8020B38(void) s32 menuAction; menuAction = 0; - sub_8023A94(0); + sub_8023A94(FALSE); if (!sub_8012FD8(&gUnknown_203B27C->unkCC)) { sub_8013114(&gUnknown_203B27C->unkCC,&menuAction); if (menuAction != 1) { diff --git a/src/kangaskhan_storage.c b/src/kangaskhan_storage.c index d58734ad5..404c6df3a 100644 --- a/src/kangaskhan_storage.c +++ b/src/kangaskhan_storage.c @@ -1,5 +1,7 @@ #include "global.h" #include "code_80130A8.h" +#include "code_801B3C0.h" +#include "code_801C620.h" #include "item.h" #include "kangaskhan_storage.h" #include "kecleon_bros.h" @@ -37,24 +39,6 @@ extern const u8 gUnknown_80DB830[]; // "Number?\0" extern const u8 *gKangaskhanStorageDialogue[2][20]; -// code_801B3C0.c -extern void sub_801B3C0(struct Item *); -extern u32 sub_801B410(void); -extern void sub_801B450(void); -extern void sub_801BB20(void); -extern void sub_801BC24(void); -// code_801C620.c -extern void sub_801C8C4(u32, u32, u32, u32); -extern u32 sub_801CA08(u32); -extern u8 sub_801CB24(void); -extern void sub_801CB5C(u32); -extern void sub_801CBB8(void); -extern void sub_801CCD8(void); -extern bool8 sub_801CF14(u32); -extern bool8 sub_801CF50(u32); -extern void sub_801CF94(void); -extern u32 sub_801CFB8(void); -extern u32 sub_801CFE0(u8); // code_8098BDC.s extern void sub_8099690(u32); @@ -351,7 +335,7 @@ void sub_8016FF8(void) sub_801AD34(0); break; case 23: - sub_801CB5C(1); + sub_801CB5C(TRUE); sub_801AD34(0); break; case 24: @@ -719,7 +703,7 @@ void sub_8017AF8(void) void sub_8017B88(void) { - switch (sub_801CA08(1)) { + switch (sub_801CA08(TRUE)) { case 3: if (sub_801CFB8() != 0) UpdateKangaskhanStorageState(28); @@ -748,7 +732,7 @@ void sub_8017B88(void) void sub_8017C28(void) { - sub_801CA08(0); + sub_801CA08(FALSE); sub_8012FD8(&gKangaskhanStorageWork->unk58); switch (sub_8013BBC(&gKangaskhanStorageWork->unkA8)) { @@ -805,7 +789,7 @@ void sub_8017D24(void) s32 menuAction; menuAction = 0; - sub_801CA08(0); + sub_801CA08(FALSE); if (sub_8012FD8(&gKangaskhanStorageWork->unk58) == 0) { sub_8013114(&gKangaskhanStorageWork->unk58, &menuAction); if (menuAction != 1) @@ -1005,7 +989,7 @@ void sub_8018100(void) sub_801AD34(0); break; case 11: - sub_801CB5C(1); + sub_801CB5C(TRUE); sub_801AD34(0); break; case 12: @@ -1244,7 +1228,7 @@ void sub_80186F8(void) struct BulkItem item; s32 itemID; - switch (sub_801CA08(1)) { + switch (sub_801CA08(TRUE)) { case 3: if (sub_801CFB8() != 0) { for (itemID = 0; itemID < NUMBER_OF_ITEM_IDS; itemID++) { @@ -1302,7 +1286,7 @@ void sub_8018854(void) { struct BulkItem item; - sub_801CA08(0); + sub_801CA08(FALSE); sub_8012FD8(&gUnknown_203B20C->unk70); switch (sub_8013BBC(&gUnknown_203B20C->unkC0)) { @@ -1389,7 +1373,7 @@ void sub_80189C8(void) menuAction = 0; - sub_801CA08(0); + sub_801CA08(FALSE); if (sub_8012FD8(&gUnknown_203B20C->unk70) == 0) { sub_8013114(&gUnknown_203B20C->unk70, &menuAction); if (menuAction != 1) diff --git a/src/kecleon_bros.c b/src/kecleon_bros.c index fedeb0209..5d8fab94f 100644 --- a/src/kecleon_bros.c +++ b/src/kecleon_bros.c @@ -1,6 +1,7 @@ #include "global.h" #include "code_800D090.h" #include "code_80130A8.h" +#include "code_801B3C0.h" #include "constants/input.h" #include "felicity_bank.h" #include "kecleon_bros.h" @@ -54,10 +55,6 @@ extern const u8 *gKecleonShopDialogue[KECLEON_BROS_MODE_COUNT][23]; extern const u8 gTeamToolboxA[]; extern const u8 gTeamToolboxB[]; -// code_801B3C0.c -extern u32 sub_801B3C0(struct Item *); -extern u32 sub_801B410(void); -extern void sub_801B450(void); // code_8098BDC.s extern void sub_8099690(u32); diff --git a/src/luminous_cave.c b/src/luminous_cave.c index 1a444b59e..1e8d92f41 100644 --- a/src/luminous_cave.c +++ b/src/luminous_cave.c @@ -12,6 +12,8 @@ #include "menu_input.h" #include "kecleon_bros.h" #include "code_80130A8.h" +#include "code_8012A18_1.h" +#include "code_801B3C0.h" struct unkStruct_203B2B0 { @@ -192,19 +194,13 @@ void PlaySound(u32); void sub_8024CFC(void); void sub_8025254(void); void sub_8024D48(void); -extern void sub_801B3C0(struct Item *); extern void nullsub_104(); void sub_8024DBC(void); void sub_8024E30(void); void sub_801AEE4(u32, u32); void sub_808F734(struct PokemonStruct *, s16); -u32 sub_801602C(u32 r0, u8 *name); extern void sub_8099690(u32); extern void PlayMenuSoundEffect(u32); -extern u32 sub_801B410(void); -extern void sub_801B450(void); -extern u32 sub_8016080(void); -extern void sub_80160D8(void); extern void sub_808F468(struct PokemonStruct *, u8 *, u32); bool8 LuminousCave_HasOnly1Member(void); diff --git a/src/main_menu.c b/src/main_menu.c index f8c9845a7..641609810 100644 --- a/src/main_menu.c +++ b/src/main_menu.c @@ -3,7 +3,7 @@ #include "text2.h" #include "menu_input.h" #include "adventure_log.h" -#include "debug_menu.h" +#include "debug_menu1.h" #include "ds_menus.h" #include "pokemon.h" #include "friend_rescue.h" diff --git a/src/party_list_menu.c b/src/party_list_menu.c index b66540962..6399ab55a 100644 --- a/src/party_list_menu.c +++ b/src/party_list_menu.c @@ -13,6 +13,7 @@ #include "moves.h" #include "kecleon_bros.h" #include "code_80130A8.h" +#include "code_801B3C0.h" struct unkStruct_203B2B8 { @@ -173,8 +174,6 @@ extern u32 sub_801EF38(u32); extern s32 sub_8008ED0(u8 *); extern u32 sub_801F890(void); extern void sub_801F8D0(void); -extern u32 sub_801B410(void); -extern void sub_801B450(void); extern void nullsub_104(void); extern void sub_8099690(u32); extern u32 sub_8022860(void); @@ -189,8 +188,6 @@ extern struct PokemonStruct *GetPlayerPokemonStruct(void); bool8 sub_8026E88(struct PokemonStruct *r0); bool8 HasGummiItem(); bool8 sub_8026EB8(struct PokemonStruct *r0); -extern void sub_801BB20(void); -extern void sub_801BC24(void); extern void sub_8024458(s16, u32); void sub_8026E08(u32 r0); void sub_8026DAC(u32 r0, struct BulkItem *item); @@ -199,7 +196,6 @@ void sub_8026FA4(void); void sub_8026878(void); extern void sub_801F808(u16*); extern void sub_80227B8(struct PokemonStruct *); -extern void sub_801B3C0(struct Item *); extern void sub_801EE10(u32, s16, struct Move *, u32, u32, u32); extern void sub_801F1B0(u32, u32); extern void sub_808D31C(struct PokemonStruct *); diff --git a/src/personality_test.c b/src/personality_test.c index 92f55dfd9..8589aaf72 100644 --- a/src/personality_test.c +++ b/src/personality_test.c @@ -13,6 +13,7 @@ #include "text_util.h" #include "menu_input.h" #include "code_80130A8.h" +#include "code_8012A18_1.h" enum { @@ -42,10 +43,6 @@ extern s32 sub_8094E4C(void); extern void sub_8094D28(s32); extern void sub_8001044(u32 *); -extern void sub_801602C(u32, char *r0); - -extern u32 sub_8016080(void); -extern void sub_80160D8(void); extern void sub_8099690(u32); extern void sub_800836C(u32, u8 *r0, u32); diff --git a/src/save.c b/src/save.c index 3d89dcca6..0bf2be77c 100644 --- a/src/save.c +++ b/src/save.c @@ -75,7 +75,6 @@ EWRAM_DATA_2 struct QuickSaveWrite *gQuickSaveWrite = {0}; extern s32 gUnknown_202DE28; -extern bool8 *gFriendAreas; extern u32 *gUnknown_203B488; extern u32 gUnknown_203B494; diff --git a/src/thank_you_wonder_mail.c b/src/thank_you_wonder_mail.c index 9a787fffd..3efd5c73f 100644 --- a/src/thank_you_wonder_mail.c +++ b/src/thank_you_wonder_mail.c @@ -15,6 +15,8 @@ #include "menu_input.h" #include "code_80130A8.h" #include "main_menu.h" +#include "code_801C620.h" +#include "code_801B3C0.h" extern struct WonderMailStruct_203B2C4 *gUnknown_203B2C4; @@ -160,7 +162,6 @@ extern void sub_8030810(u32); extern u32 sub_8031DCC(void); extern void sub_8031E00(void); extern u32 sub_802F298(); -extern u8 sub_801CF14(u32); extern u32 sub_8030768(u32); extern s8 sub_80307EC(void); extern void sub_8030D40(u8, u32); @@ -206,9 +207,7 @@ extern void sub_802A9FC(); extern void sub_802A828(); extern void sub_802A850(); extern void sub_8030DE4(); -extern void sub_801B450(); extern void sub_803084C(); -extern void sub_801CBB8(); extern void sub_80155F0(); extern void sub_8031E10(); extern void sub_802F2C0(); @@ -218,7 +217,6 @@ extern void sub_802F204(struct unkStruct_802F204 *, u32); extern void sub_80151C0(u32, u8 *); extern void xxx_call_start_bg_music(void); extern void sub_803092C(void); -extern void sub_801CCD8(void); extern void sub_8011830(void); extern void nullsub_23(u32); extern s32 sub_8037B28(u32); @@ -227,20 +225,11 @@ extern u32 sub_801D008(void); extern void sub_80306A8(u32, u32, u32, u32); extern s32 sub_8037D64(u32, void *, void *); extern s32 sub_80381F4(u32, void *, void *); -extern void sub_801C8C4(u32, u32, s32 * , u32); extern u8 sub_800D588(void); extern u32 GetDungeonTeamRankPts(struct DungeonLocation *, u32); extern void sub_8031D70(u8, u32); extern void sub_803092C(void); -extern u32 sub_801CA08(u32); -extern void sub_801CBB8(void); -extern void sub_801B3C0(struct Item *); -extern u8 sub_801CB24(void); -extern void sub_801B450(void); -extern u32 sub_801B410(void); -extern void sub_801CB5C(u32); -extern void sub_801CCD8(void); extern void sub_8011C28(u32); extern u32 sub_80154F0(void); extern u32 sub_8039068(u32, u8 *r1, struct unkStruct_203B480 *r0); @@ -671,7 +660,7 @@ void sub_802A28C(void) gUnknown_203B2C4->unk41C.quantity = 1; gUnknown_203B2C4->unk41C.flags = 0; - switch(sub_801CA08(1)) + switch(sub_801CA08(TRUE)) { case 2: sub_801CBB8(); @@ -702,7 +691,7 @@ void sub_802A33C(void) sub_801B450(); ResetUnusedInputStruct(); sub_800641C(gUnknown_203B2C4->unk3BC,1,1); - sub_801CB5C(1); + sub_801CB5C(TRUE); if (gUnknown_203B2C4->fallbackState == 0x2b) { sub_8035CF4(gUnknown_203B2C4->unk21C,3,TRUE); SetThankYouMailMenuState(0x14); @@ -722,7 +711,7 @@ void sub_802A39C(void) s32 menuAction; menuAction = -1; - sub_801CA08(0); + sub_801CA08(FALSE); if (sub_8012FD8(&gUnknown_203B2C4->unk21C[3]) == 0) { sub_8013114(&gUnknown_203B2C4->unk21C[3], &menuAction); } @@ -1042,7 +1031,7 @@ void sub_802A910(void) switch(menuAction) { case 9: - if(sub_801CF14(0) != 0) + if(sub_801CF14(0)) { SetThankYouMailMenuState(THANK_YOU_MAIL_STORAGE_EMPTY); } @@ -1301,10 +1290,9 @@ void UpdateThankYouMailText(void) break; ResetUnusedInputStruct(); sub_800641C(0,1,1); - // TODO: Probably a macro - Pika { - struct {u16 a; u16 b;} local_x = {3, 2}; - sub_801C8C4(0, 1, (s32 *)&local_x, 9); + struct UnkTextStruct2_sub local_x = {3, 2}; + sub_801C8C4(0, 1, &local_x, 9); } break; case 0x14: diff --git a/src/trade_items_menu.c b/src/trade_items_menu.c index cd3bdd531..d1a7ab5a2 100644 --- a/src/trade_items_menu.c +++ b/src/trade_items_menu.c @@ -1,5 +1,7 @@ #include "global.h" #include "code_80130A8.h" +#include "code_801B3C0.h" +#include "code_801C620.h" #include "constants/communication_error_codes.h" #include "item.h" #include "main_menu.h" @@ -82,18 +84,8 @@ const struct MenuItem gUnknown_80E618C[3] = { #include "data/trade_items.h" extern void sub_8035C1C(); -extern u32 sub_801CA08(u32); -extern void sub_801CBB8(); -extern u8 sub_801CB24(); -extern void sub_801B3C0(struct Item *); -extern void sub_801CCD8(); -extern u32 sub_801B410(); -extern void sub_801B450(); -extern void sub_801CB5C(u32); -extern u8 sub_801CF14(u32); extern u32 sub_801D008(); -extern void sub_801C8C4(u32, u32, s32 *, u32); extern s32 sub_8037B28(u32); extern void sub_8011830(void); extern void nullsub_23(u32); @@ -267,7 +259,7 @@ void sub_80365AC(void) gTradeItemsMenu->itemToSend.id = ITEM_NOTHING; gTradeItemsMenu->itemToSend.quantity = 1; gTradeItemsMenu->itemToSend.flags = 0; - switch(sub_801CA08(1)){ + switch(sub_801CA08(TRUE)){ case 2: // Cancel sub_801CBB8(); @@ -297,7 +289,7 @@ void sub_8036674(void) int menuAction; menuAction = -1; - sub_801CA08(0); + sub_801CA08(FALSE); if (sub_8012FD8(&gTradeItemsMenu->unk44[3]) == '\0') { sub_8013114(&gTradeItemsMenu->unk44[3], &menuAction); } @@ -332,7 +324,7 @@ void sub_8036728(void) sub_801B450(); ResetUnusedInputStruct(); sub_800641C(gTradeItemsMenu->unk1E4, 1, 1); - sub_801CB5C(1); + sub_801CB5C(TRUE); if (gTradeItemsMenu->fallbackState == 0x13) { sub_8035CF4(gTradeItemsMenu->unk44, 3, TRUE); SetTradeItemMenu(TRADE_ITEMS_SEND_ITEM_POPUP_MENU); @@ -349,7 +341,7 @@ void sub_8036728(void) void sub_8036788(void) { sub_8012FD8(&gTradeItemsMenu->unk44[3]); - sub_801CA08(0); + sub_801CA08(FALSE); switch(sub_8013BBC(&gTradeItemsMenu->quantityToSend)){ case 1: // When you change the # @@ -589,7 +581,6 @@ void nullsub_52(void) void sub_8036B28(void) { int linkStatus; - s32 local_10; u32 load_2; struct TradeSubStruct *temp; struct TradeSubStruct *temp2; @@ -600,7 +591,7 @@ void sub_8036B28(void) switch(gTradeItemsMenu->currMenu) { case TRADE_ITEMS_MAIN_MENU: - if (sub_801CF14(0) != 0) { + if (sub_801CF14(0)) { sub_8014248(gUnknown_80E61A4,0,1,gUnknown_80E60D4,0,4,0,0,0x101); } else { @@ -614,8 +605,10 @@ void sub_8036B28(void) if (sub_801D008() == 0) { ResetUnusedInputStruct(); sub_800641C(0,1,1); - local_10 = 0x20003; + { + struct UnkTextStruct2_sub local_10 = {3, 2}; sub_801C8C4(0,1,&local_10,9); + } } break; case TRADE_ITEMS_SEND_ITEM_POPUP_MENU: diff --git a/src/wigglytuff_shop.c b/src/wigglytuff_shop.c index 947a30bf0..7c9cc1eea 100644 --- a/src/wigglytuff_shop.c +++ b/src/wigglytuff_shop.c @@ -10,6 +10,9 @@ #include "wigglytuff_shop.h" #include "felicity_bank.h" #include "code_80130A8.h" +#include "code_8021774_pre.h" +#include "code_801EE10_mid.h" +#include "code_8021774.h" extern struct UnkTextStruct2 gUnknown_80DC534; extern struct UnkTextStruct2 gUnknown_80DC564; @@ -34,17 +37,6 @@ extern const u8 *gUnknown_80D4978[]; u8 sub_8021700(u32); void sub_8092578(u8 *buffer, u8 index, u8 r2); -extern void sub_80211AC(u32, u32); -extern void sub_8021354(u32); -extern void sub_8021494(); -extern void sub_803AA34(); -extern void sub_8021774(u8,u32, u32); -extern void sub_809249C(u8, u32); -extern void sub_8021830(void); -extern u32 sub_80217EC(void); -extern u32 sub_8021274(u32); -extern u8 sub_802132C(void); -extern void sub_80213A0(void); extern void sub_8022380(void); extern void PlaySound(u32); bool8 sub_8023144(s32 param_1, s32 index, struct UnkTextStruct2_sub *sub, u32 param_4); @@ -245,7 +237,7 @@ void UpdateWigglytuffDialogue(void) DrawTeamMoneyBox(1); break; case WIGGLYTUFF_UNKA: - sub_8021354(1); + sub_8021354(TRUE); DrawTeamMoneyBox(1); break; case WIGGLYTUFF_UNKB: @@ -487,7 +479,7 @@ void HandleWigglytuffConfirmFriendAreaMenu(void) void sub_8022538(void) { - switch(sub_8021274(1)) + switch(sub_8021274(TRUE)) { case 3: gWigglytuffShop->chosenFriendArea = sub_802132C(); @@ -515,7 +507,7 @@ void sub_8022538(void) void sub_80225C8(void) { s32 menuAction = 0; - sub_8021274(0); + sub_8021274(FALSE); if(sub_8012FD8(&gWigglytuffShop->unk6C) == 0) { sub_8013114(&gWigglytuffShop->unk6C, &menuAction); diff --git a/src/wonder_mail.c b/src/wonder_mail.c index c0ffcbe5b..5dd887965 100644 --- a/src/wonder_mail.c +++ b/src/wonder_mail.c @@ -13,6 +13,7 @@ #include "code_8094F88.h" #include "code_80130A8.h" #include "main_menu.h" +#include "code_801EE10_1.h" extern struct WonderMailStruct_203B2C0 *gUnknown_203B2C0; @@ -42,11 +43,7 @@ extern u32 sub_80154F0(); extern u32 sub_8039068(u32, u8 *r1, struct unkStruct_203B480 *r0); extern void sub_8095274(u32); extern void sub_80155F0(); -extern void sub_8023C60(); -extern u32 sub_8023A94(u32); extern void sub_8024458(s16, u32); -extern u16 sub_8023B44(); -extern void sub_8023B7C(u32); extern u32 sub_80244E4(); extern void sub_802452C(); extern void sub_802453C(); @@ -62,7 +59,6 @@ extern void sub_8030DE4(); extern void nullsub_23(u32); extern s32 sub_8037D64(u32, void *, void *); extern s32 sub_80381F4(u32, void *, void *); -extern void sub_8023868(u32, u32, u32, u32); extern void sub_80306A8(u32, u32, u32, u32); extern s32 sub_8037B28(u32); extern void sub_8011830(void); @@ -72,7 +68,6 @@ extern void xxx_call_start_bg_music(void); extern u32 sub_8023CE8(void); extern u32 sub_8030894(void); extern void sub_8030F58(u32); -extern void sub_8023DA4(void); extern void sub_8029B34(void); extern void sub_8029AD8(void); extern void sub_8029AF4(void); @@ -125,7 +120,6 @@ extern void sub_8029044(void); extern void sub_8028CFC(void); extern void sub_8028D4C(void); extern void sub_8031E10(void); -extern void sub_8023C60(void); extern void sub_803084C(void); extern void sub_80155F0(void); extern void sub_80310B4(void); @@ -1651,7 +1645,7 @@ void sub_80297B8(void) void sub_80297D4(void) { - switch(sub_8023A94(1)) + switch(sub_8023A94(TRUE)) { case 2: sub_8023C60(); @@ -1678,7 +1672,7 @@ void sub_8029884(void) { s32 menuAction; menuAction = -1; - sub_8023A94(0); + sub_8023A94(FALSE); if(sub_8012FD8(&(gUnknown_203B2C0->unk21C[3])) == 0) { sub_8013114(&(gUnknown_203B2C0->unk21C[3]), &menuAction); diff --git a/src/wonder_mail_main_menu.c b/src/wonder_mail_main_menu.c index 63e1d57af..c1d2186bd 100644 --- a/src/wonder_mail_main_menu.c +++ b/src/wonder_mail_main_menu.c @@ -9,6 +9,8 @@ #include "wonder_mail.h" #include "code_8094F88.h" #include "code_80130A8.h" +#include "code_801C620.h" +#include "code_801B3C0.h" #define SELECT_WONDER_MAIL_MODE_MAIN_SCREEN 0 #define SEND_WONDER_MAIL_MAIN_SCREEN 1 @@ -124,9 +126,7 @@ EWRAM_DATA_2 struct unkStruct_203B3E8 *gUnknown_203B3E8 = {0}; extern u32 sub_8011C1C(void); extern void SetWonderMailMainMenuState(u8); extern void sub_8030DE4(void); -extern void sub_801B450(void); extern void sub_803084C(void); -extern void sub_801CBB8(void); extern void sub_80155F0(void); extern void sub_8031E10(void); diff --git a/sym_ewram2.txt b/sym_ewram2.txt index e214d3311..6e238b0c2 100644 --- a/sym_ewram2.txt +++ b/sym_ewram2.txt @@ -373,16 +373,10 @@ gUnknown_203B328: /* 203B328 */ .include "src/rescue_password_menu.o" .include "src/load_screen.o" .include "src/wonder_mail_main_menu.o" -.include "src/debug_menu.o" - -gUnknown_203B3F0: /* 203B3F0 */ - .space 0x4 - -gUnknown_203B3F4: /* 203B3F4 */ - .space 0x4 - -gUnknown_203B3F8: /* 203B3F8 */ - .space 0x4 +.include "src/debug_menu1.o" +.include "src/debug_menu2.o" +.include "src/debug_menu3.o" +.include "src/debug_menu4.o" gUnknown_203B3FC: /* 203B3FC */ .space 0x4