diff --git a/asm/debug_menu_1.s b/asm/debug_menu_1.s deleted file mode 100644 index 82f71635d..000000000 --- a/asm/debug_menu_1.s +++ /dev/null @@ -1,57 +0,0 @@ - #include "asm/constants/gba_constants.inc" - #include "asm/macros.inc" - - .syntax unified - - .text - - thumb_func_start sub_803ABC8 -sub_803ABC8: - push {r4-r6,lr} - movs r5, 0 - movs r6, 0x1 -_0803ABCE: - ldr r2, _0803AC08 - movs r0, 0x58 - adds r1, r5, 0 - muls r1, r0 - ldr r0, [r2] - adds r2, r0, r1 - ldrh r1, [r2] - adds r0, r6, 0 - ands r0, r1 - cmp r0, 0 - beq _0803AC10 - lsrs r0, r1, 1 - ands r0, r6 - cmp r0, 0 - beq _0803AC10 - ldr r0, _0803AC0C - ldr r4, [r0] - movs r1, 0x8 - ldrsh r0, [r2, r1] - bl GetFriendArea - ldrb r1, [r4, 0x4] - lsls r0, 24 - lsrs r0, 24 - cmp r1, r0 - bne _0803AC10 - movs r0, 0 - b _0803AC1C - .align 2, 0 -_0803AC08: .4byte gRecruitedPokemonRef -_0803AC0C: .4byte gUnknown_203B3F4 -_0803AC10: - adds r5, 0x1 - movs r0, 0xCE - lsls r0, 1 - cmp r5, r0 - ble _0803ABCE - movs r0, 0x1 -_0803AC1C: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_803ABC8 - - .align 2,0 diff --git a/include/code_8097670.h b/include/code_8097670.h new file mode 100644 index 000000000..2d8d118cd --- /dev/null +++ b/include/code_8097670.h @@ -0,0 +1,25 @@ +#ifndef GUARD_CODE_8097670_H +#define GUARD_CODE_8097670_H + +#include "dungeon_global_data.h" + +// size: 0xC4 +struct unkStruct_203B494 +{ + u32 unk0; // 32 bit bitfield, I think + /* 0x4 */ s32 numAdventures; + s32 unk8; + s32 unkC; + /* 0x10 */ struct DungeonLocation dungeonLocation; + s16 unk14; + s16 unk16; + s16 unk18; + u32 unk1C[14]; + u32 unk54[14]; + u32 unk8C[13]; + s32 unkC0; +}; + +void sub_80976F8(u8); + +#endif // GUARD_CODE_8097670_H \ No newline at end of file diff --git a/include/debug_menu.h b/include/debug_menu.h index f91e08364..5a6133be0 100644 --- a/include/debug_menu.h +++ b/include/debug_menu.h @@ -1,39 +1,26 @@ #ifndef GUARD_DEBUG_MENU_H #define GUARD_DEBUG_MENU_H -#include "text.h" +#include "pokemon.h" #include "menu.h" -#include "menu_input.h" - -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, -}; +#include "text.h" +// size: 0x1A4 struct DebugMenu { - // size: 0x1A4 struct MenuStruct unk0[4]; - /* 0x140 */ struct UnkTextStruct2 unk140[4]; + struct UnkTextStruct2 unk140[4]; u32 fill1A0; }; - +// size: 0x140 struct unkStruct_203B3F8 { - // size: 0x140 - u32 state; + /* 0x0 */ u32 state; s16 unk4; u16 unk6; - struct PokemonStruct *pokemon; - u32 menuAction; + /* 0x8 */ struct PokemonStruct *pokemon; + /* 0xC */ u32 menuAction; struct MenuStruct unk10; u32 unk60; u32 unk64; @@ -50,11 +37,20 @@ struct unkStruct_203B3F8 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); -void SetDebugMenuItems(void); -void sub_803A3A0(void); #endif diff --git a/include/main_menu.h b/include/main_menu.h index 3bcc50339..7167e81db 100644 --- a/include/main_menu.h +++ b/include/main_menu.h @@ -1,6 +1,9 @@ #ifndef GUARD_MAIN_MENU_H #define GUARD_MAIN_MENU_H +#include "menu.h" +#include "text.h" + enum MainMenuScreens { MENU_MAIN_SCREEN = 1, @@ -30,12 +33,12 @@ enum MainMenuScreens MENU_DEBUG_FIELD_SCRIPT, MENU_DEBUG_DEBUG_MENU, MENU_DEBUG_UNKNOWN_1, - MENU_NO_SCREEN_CHANGE = 0xffdc + MENU_NO_SCREEN_CHANGE = 65500 }; +// size: 0x8 struct unkStruct_8035D94 { - union { u8 itemIndex_u8; u32 itemIndex_u32; @@ -43,6 +46,7 @@ struct unkStruct_8035D94 s32 numItems; }; +// size: 0x4 struct MainMenuSub { u8 unk2C; @@ -50,6 +54,7 @@ struct MainMenuSub u8 unk2E; }; +// size: 0x40 struct MainMenu { /* 0x0 */ s32 currMenu; @@ -57,23 +62,24 @@ struct MainMenu /* 0x8 */ s32 lastMenu; u8 padding[0x20]; /* 0x2C */ struct MainMenuSub sub; - /* 0x30 */ struct unkStruct_8035D94 unk30; + struct unkStruct_8035D94 unk30; s16 unk38; u8 unk3A; u8 unk3B; s32 unk3C; }; - - -void InitMainMenu(void); -void DeleteMainMenu(void); -void SetUpMenu(void); -s32 UpdateMenu(void); void CleanUpMenu(void); -bool8 sub_80363E0(void); +void DeleteMainMenu(void); +struct MainMenu *GetMainMenu(void); +void InitMainMenu(void); +void SetMenuItems(struct MenuStruct *, struct UnkTextStruct2 *, s32, const struct UnkTextStruct2 *, const struct MenuItem *, u8, u32, u32); +void SetUpMenu(void); +void sub_8035CC0(struct UnkTextStruct2 *, u32); +void sub_8035CF4(struct MenuStruct*, u32, bool8); struct unkStruct_8035D94 *sub_8035D94(void); void sub_8035DA0(void); -struct MainMenu *GetMainMenu(void); +bool8 sub_80363E0(void); +s32 UpdateMenu(void); #endif // GUARD_MAIN_MENU_H diff --git a/ld_script.txt b/ld_script.txt index f445fddc7..11e024963 100755 --- a/ld_script.txt +++ b/ld_script.txt @@ -162,7 +162,6 @@ SECTIONS { src/ds_menus.o(.text); src/debug_menu.o(.text); src/debug_menu_mid.o(.text); - asm/debug_menu_1.o(.text); src/debug_menu_1.o(.text); asm/code_803B050.o(.text); src/code_803B050.o(.text); diff --git a/src/code_8097670.c b/src/code_8097670.c index 8cbb9883f..e2976bd50 100644 --- a/src/code_8097670.c +++ b/src/code_8097670.c @@ -1,27 +1,12 @@ #include "global.h" +#include "code_8097670.h" #include "pokemon.h" - -struct unkStruct_203B494 -{ - // size: 0xC4 - u32 unk0; // 32 bit bitfield, I think - s32 numAdventures; - s32 unk8; - s32 unkC; - struct DungeonLocation dungeonLocation; - s16 unk14; - s16 unk16; - s16 unk18; - u32 unk1C[0xE]; - u32 unk54[0xE]; - u32 unk8C[0xD]; - s32 unkC0; -}; +#include "pokemon_3.h" EWRAM_DATA_2 struct unkStruct_203B494 *gUnknown_203B494 = {0}; EWRAM_DATA struct unkStruct_203B494 gUnknown_2039778 = {0}; + extern const u8 *gAdventureLogText[]; -s16 GetBaseSpeciesNoUnown(s16 index); void sub_8097670(void) { diff --git a/src/debug_menu.c b/src/debug_menu.c index 9b90be5bb..132620e8e 100644 --- a/src/debug_menu.c +++ b/src/debug_menu.c @@ -1,20 +1,18 @@ #include "global.h" +#include "code_8097670.h" #include "constants/friend_area.h" #include "debug_menu.h" #include "friend_area.h" -#include "input.h" #include "main_menu.h" -#include "menu.h" +#include "menu_input.h" #include "memory.h" -#include "pokemon.h" #include "save.h" #include "text_util.h" -#include "menu_input.h" #include "text1.h" EWRAM_DATA_2 struct DebugMenu *gUnknown_203B3EC = {0}; -const struct UnkTextStruct2 gUnknown_80E7D40 = +static const struct UnkTextStruct2 sUnknown_80E7D40 = { 0x00, 0x00, 0x00, 0x00, 0x03, @@ -24,7 +22,7 @@ const struct UnkTextStruct2 gUnknown_80E7D40 = NULL }; -const struct UnkTextStruct2 gUnknown_80E7D58 = +static const struct UnkTextStruct2 sUnknown_80E7D58 = { 0x00, 0x00, 0x00, 0x00, 0x03, @@ -34,7 +32,7 @@ const struct UnkTextStruct2 gUnknown_80E7D58 = NULL }; -const struct MenuItem gDebugMenuItems[8] = +static const struct MenuItem sDebugMenuItems[8] = { {"Dungeons", MENU_DEBUG_MENU_DUNGEONS}, {"Field", MENU_DEBUG_MENU_FIELD}, @@ -46,48 +44,44 @@ const struct MenuItem gDebugMenuItems[8] = {NULL, 10}, }; -ALIGNED(4) static const char debug_menu_fill0[] = "pksdir0"; -ALIGNED(4) static const char debug_menu_fill1[] = "pksdir0"; -ALIGNED(4) static const char debug_menu_fill2[] = "pksdir0"; -ALIGNED(4) static const char debug_menu_fill3[] = "pksdir0"; -ALIGNED(4) static const char debug_menu_fill4[] = "pksdir0"; -ALIGNED(4) static const char debug_menu_fill5[] = "pksdir0"; -ALIGNED(4) static const char debug_menu_fill6[] = "pksdir0"; +ALIGNED(4) static const u8 sDebugMenuFill1[] = "pksdir0"; +ALIGNED(4) static const u8 sDebugMenuFill2[] = "pksdir0"; +ALIGNED(4) static const u8 sDebugMenuFill3[] = "pksdir0"; +ALIGNED(4) static const u8 sDebugMenuFill4[] = "pksdir0"; +ALIGNED(4) static const u8 sDebugMenuFill5[] = "pksdir0"; +ALIGNED(4) static const u8 sDebugMenuFill6[] = "pksdir0"; +ALIGNED(4) static const u8 sDebugMenuFill7[] = "pksdir0"; - - -extern void sub_80976F8(u8); -extern void sub_803A3BC(void); -extern void sub_803A3A0(void); - -extern void SetMenuItems(struct MenuStruct *menu, struct UnkTextStruct2 *, u32, const struct UnkTextStruct2 *, const struct MenuItem *entries, u32, u32, u32); -extern void sub_8035CF4(struct MenuStruct*, u32, u32); -extern void sub_8035CC0(struct UnkTextStruct2 *, u32); -extern void sub_808D1DC(u8 *); +// 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) { - int index; + s32 index; - if (gUnknown_203B3EC == NULL) { - gUnknown_203B3EC = MemoryAlloc(sizeof(struct DebugMenu), 8); - MemoryFill8((u8 *)gUnknown_203B3EC, 0, sizeof(struct DebugMenu)); - } - for(index = 0; index < 4; index++){ - gUnknown_203B3EC->unk140[index] = gUnknown_80E7D40; - } - ResetUnusedInputStruct(); - sub_800641C(gUnknown_203B3EC->unk140, 1, 1); - SetDebugMenuItems(); + if (gUnknown_203B3EC == NULL) { + gUnknown_203B3EC = MemoryAlloc(sizeof(struct DebugMenu), 8); + MemoryFill8((u8 *)gUnknown_203B3EC, 0, sizeof(struct DebugMenu)); + } + + for (index = 0; index < 4; index++) + gUnknown_203B3EC->unk140[index] = sUnknown_80E7D40; + + ResetUnusedInputStruct(); + sub_800641C(gUnknown_203B3EC->unk140, 1, 1); + SetDebugMenuItems(); } void DeleteDebugMenu(void) { ResetUnusedInputStruct(); sub_800641C(NULL, 1, 1); - if(gUnknown_203B3EC != NULL) - { + if (gUnknown_203B3EC != NULL) { MemoryFree(gUnknown_203B3EC); gUnknown_203B3EC = NULL; } @@ -95,60 +89,60 @@ void DeleteDebugMenu(void) u32 UpdateDebugMenu(void) { - u32 nextMenu; - s32 counter; - s32 debugMenuAction; + u32 nextMenu; + s32 counter; + s32 debugMenuAction; - nextMenu = MENU_NO_SCREEN_CHANGE; - debugMenuAction = 11; + 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(&gUnknown_203B3EC->unk0[0]) == 0) + sub_8013114(&gUnknown_203B3EC->unk0[0], &debugMenuAction); - switch(debugMenuAction) { - case MENU_DEBUG_MENU_DUNGEONS: - nextMenu = MENU_DEBUG_DUNGEON; - break; - case MENU_DEBUG_MENU_FIELD: - nextMenu = MENU_DEBUG_FIELD; - break; - case MENU_DEBUG_MENU_FIELD_MAP: - nextMenu = MENU_DEBUG_FIELD_MAP; - break; - case MENU_DEBUG_MENU_FIELD_SCRIPT: - nextMenu = MENU_DEBUG_FIELD_SCRIPT; - break; - case MENU_DEBUG_MENU_DEBUG_MENU: - nextMenu = MENU_DEBUG_DEBUG_MENU; - break; - case MENU_DEBUG_MENU_UNKNOWN_1: // No option that correponds to this one - nextMenu = MENU_DEBUG_UNKNOWN_1; - break; - case MENU_DEBUG_MENU_STORAGE: - sub_803A3BC(); - nextMenu = MENU_MAIN_SCREEN; - break; - case MENU_DEBUG_MENU_H_OPEN: - for(counter = 0; counter < 0x20; counter++){ - sub_80976F8(counter); - } - nextMenu = MENU_MAIN_SCREEN; - break; - case 10: - sub_803A3A0(); - nextMenu = MENU_MAIN_SCREEN; - break; - case 11: - nextMenu = MENU_NO_SCREEN_CHANGE; - } - return nextMenu; + switch (debugMenuAction) { + case MENU_DEBUG_MENU_DUNGEONS: + nextMenu = MENU_DEBUG_DUNGEON; + break; + case MENU_DEBUG_MENU_FIELD: + nextMenu = MENU_DEBUG_FIELD; + break; + case MENU_DEBUG_MENU_FIELD_MAP: + nextMenu = MENU_DEBUG_FIELD_MAP; + break; + case MENU_DEBUG_MENU_FIELD_SCRIPT: + nextMenu = MENU_DEBUG_FIELD_SCRIPT; + break; + case MENU_DEBUG_MENU_DEBUG_MENU: + nextMenu = MENU_DEBUG_DEBUG_MENU; + break; + case MENU_DEBUG_MENU_UNKNOWN_1: // No option that correponds to this one + nextMenu = MENU_DEBUG_UNKNOWN_1; + break; + case MENU_DEBUG_MENU_STORAGE: + sub_803A3BC(); + nextMenu = MENU_MAIN_SCREEN; + break; + case MENU_DEBUG_MENU_H_OPEN: + for(counter = 0; counter < 0x20; counter++) + sub_80976F8(counter); + + nextMenu = MENU_MAIN_SCREEN; + break; + case 10: + sub_803A3A0(); + nextMenu = MENU_MAIN_SCREEN; + break; + case 11: + nextMenu = MENU_NO_SCREEN_CHANGE; + break; + } + return nextMenu; } void SetDebugMenuItems(void) { - SetMenuItems(gUnknown_203B3EC->unk0, gUnknown_203B3EC->unk140, 0, &gUnknown_80E7D58, gDebugMenuItems, 1, 0xd, 0); - sub_8035CF4(gUnknown_203B3EC->unk0,0,1); + SetMenuItems(gUnknown_203B3EC->unk0, gUnknown_203B3EC->unk140, 0, &sUnknown_80E7D58, sDebugMenuItems, 1, 13, 0); + sub_8035CF4(gUnknown_203B3EC->unk0, 0, 1); } void sub_803A3A0(void) @@ -158,41 +152,42 @@ void sub_803A3A0(void) void sub_803A3BC(void) { - s32 speciesIndex; - u8 sp_0x8 [88]; - u16 r7 [4]; // r7 - u8 buffer [20]; // r6 - u32 sp_0x7C; - s32 sp_0x80; + s32 speciesIndex; + u8 sp_0x8 [88]; + u16 r7 [4]; // r7 + u8 buffer [20]; // r6 + u32 sp_0x7C; + s32 sp_0x80; -#ifndef NONMATCHING - register s32 index asm("r5"); - register u32 r9 asm("r9"); -#else - s32 index; - u32 r9; -#endif + #ifndef NONMATCHING + register s32 index asm("r5"); + register u32 r9 asm("r9"); + #else + s32 index; + u32 r9; + #endif - index = 1; - do { - UnlockFriendArea(index); - index++; - } while (index < NUM_FRIEND_AREAS); + index = 1; + do { + UnlockFriendArea(index); + index++; + } while (index < NUM_FRIEND_AREAS); - index = 0; - do { - r9 = 0; - sp_0x7C = 0x1006; - index = index + 1; - speciesIndex = index * 0x10000 >> 0x10; // dumb way to force s16 - memset(r7,0,8); - r7[0] = 0x27; - CopyMonsterNametoBuffer(buffer, speciesIndex); - CopyStringtoBuffer(buffer, buffer); - buffer[0] = 0x40; - sub_808CFD0(sp_0x8,speciesIndex,buffer,0x43,&sp_0x7C,r7); - sub_808D1DC(sp_0x8); - } while (index < 300); - sp_0x80 = r9; - WriteSavetoPak(&sp_0x80,1); -} + index = 0; + do { + r9 = 0; + sp_0x7C = 0x1006; + index++; + speciesIndex = index * 0x10000 >> 0x10; // dumb way to force s16 + memset(r7, 0, 8); + r7[0] = 0x27; + CopyMonsterNametoBuffer(buffer, speciesIndex); + CopyStringtoBuffer(buffer, buffer); + buffer[0] = 0x40; + sub_808CFD0(sp_0x8, speciesIndex,buffer, 0x43, &sp_0x7C, r7); + sub_808D1DC(sp_0x8); + } while (index < 300); + + sp_0x80 = r9; + WriteSavetoPak(&sp_0x80, 1); +} \ No newline at end of file diff --git a/src/debug_menu_mid.c b/src/debug_menu_mid.c index 1f3208889..735a3dd2b 100644 --- a/src/debug_menu_mid.c +++ b/src/debug_menu_mid.c @@ -1,16 +1,17 @@ #include "global.h" +#include "code_80130A8.h" +#include "friend_area.h" #include "item.h" -#include "team_inventory.h" #include "memory.h" +#include "menu_input.h" +#include "pokemon.h" +#include "team_inventory.h" #include "text1.h" #include "text2.h" -#include "menu_input.h" -#include "friend_area.h" -#include "code_80130A8.h" +// size: 0x138 struct unkStruct_203B3F0 { - // size: 0x138 u32 state; u8 id; u32 menuAction; @@ -31,9 +32,9 @@ struct unkStruct_203B3F0 extern struct unkStruct_203B3F0 *gUnknown_203B3F0; +// size: 0xFC struct unkStruct_203B3F4 { - // size: 0xFC u32 state; u8 friendArea; u8 fill5[0x8 - 5]; @@ -45,8 +46,6 @@ struct unkStruct_203B3F4 extern struct unkStruct_203B3F4 *gUnknown_203B3F4; - - const struct UnkTextStruct2 gUnknown_80E7E34 = { 0x00, 0x00, 0x00, 0x00, 0x03, @@ -71,8 +70,10 @@ const struct UnkTextStruct2 gUnknown_80E7E64 = { 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, @@ -89,52 +90,56 @@ const struct UnkTextStruct2 gUnknown_80E7EA4 = { 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(); +extern void sub_801CCD8(void); extern u32 sub_801CA08(u32); -extern u8 sub_801CB24(); -extern void sub_801CBB8(); -extern u32 sub_801B410(); -extern void sub_801B450(); +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(); -extern void sub_803AA34(); +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 u8 sub_803ABC8(void); extern u32 sub_8021274(u32); extern u8 sub_802132C(void); extern void sub_80213A0(void); -extern void sub_803AAC4(); -extern void sub_803AB34(); -extern void sub_803ABAC(); +extern void sub_803AAC4(void); +extern void sub_803AB34(void); +void sub_803ABAC(void); void sub_803A924(u32); -void sub_803A93C(); -void sub_803A9AC(); +void sub_803A93C(void); +void sub_803A9AC(void); void sub_803A504(u32); -void sub_803A51C(); -void sub_803A5A0(); -void sub_803A690(); -void sub_803A6F0(); -void sub_803A740(); -void sub_803A7B0(); -void sub_803A810(); -void sub_803A86C(); - +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(); @@ -144,6 +149,7 @@ u32 sub_803A45C(void) return 1; } +// Unused u32 sub_803A48C(void) { switch(gUnknown_203B3F0->state) { @@ -166,6 +172,7 @@ u32 sub_803A48C(void) return 0; } +// Unused void sub_803A4E8(void) { if(gUnknown_203B3F0 != NULL) @@ -536,3 +543,74 @@ void sub_803ABAC(void) 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/event_flag.c b/src/event_flag.c index 186ed3295..e7e7d18c2 100644 --- a/src/event_flag.c +++ b/src/event_flag.c @@ -10,7 +10,7 @@ #include "other_random.h" #include "friend_area.h" #include "team_inventory.h" - +#include "code_8097670.h" extern u8 gUnknown_2000A88[0x400]; @@ -52,7 +52,6 @@ extern void sub_80018D8(u32, u32, u32); extern void sub_809733C(u32, u32); extern void sub_80973A8(u32, u32); extern u8 HasRecruitedMon(u32); -extern void sub_80976F8(u32); extern void sub_800199C(u32, s32, u32, s32); extern s32 sub_8001784(u32, s32, u16); diff --git a/src/friend_rescue.c b/src/friend_rescue.c index b644e7d3a..a5797ba36 100644 --- a/src/friend_rescue.c +++ b/src/friend_rescue.c @@ -15,6 +15,7 @@ #include "menu_input.h" #include "code_8094F88.h" #include "code_80130A8.h" +#include "main_menu.h" extern void SetFriendRescueMenuState(u32); extern struct PokemonStruct *GetPlayerPokemonStruct(void); @@ -253,11 +254,9 @@ extern void sub_80155F0(); extern u32 sub_801CA08(u32); extern void sub_801CBB8(void); extern void sub_801CB5C(u32); -extern void sub_8035CC0(struct UnkTextStruct2 *, u32); extern void sub_801B3C0(struct Item *); extern u32 sub_801B410(void); extern void sub_801B450(void); -extern void sub_8035CF4(struct MenuStruct *, u32, u32); extern u8 sub_801CB24(void); extern u32 sub_8030DA0(void); extern void sub_8030DE4(void); @@ -308,7 +307,6 @@ extern u32 sub_80306A8(u32 wonderMailType, u32, struct UnkTextStruct2_sub *, u32 extern u32 sub_8030894(void); extern void sub_803092C(void); extern bool8 sub_8031D70(u32 mailIndex, s32); -extern void sub_8035CF4(struct MenuStruct *, u32, u32); extern s32 sub_8037B28(u32); extern s32 sub_8037D64(u32, void *, void *); extern s32 sub_80381F4(u32, void *, void *); @@ -322,7 +320,6 @@ extern struct PokemonStruct *GetPlayerPokemonStruct(void); extern void MemoryFill8(u8 *dest, u8 value, s32 size); extern void nullsub_23(u32); extern void ResetUnusedInputStruct(void); -extern void SetMenuItems(struct MenuStruct *param_1, struct UnkTextStruct2 *unkData, s32 index, const struct UnkTextStruct2 *param_4, const struct MenuItem *menuItems, u8 param_6, u32 menuAction, u32 unused_8); extern void sprintfStatic(char *buffer, const char *text, ...); extern void xxx_call_start_bg_music(void); diff --git a/src/load_screen.c b/src/load_screen.c index 05c2cb3d3..4dbfa17fd 100644 --- a/src/load_screen.c +++ b/src/load_screen.c @@ -42,9 +42,6 @@ u8 IsQuickSave(void); void DrawLoadScreenText(void); void sub_80397B4(void); -extern void sub_8035CF4(struct MenuStruct *, u32, u32); -extern void SetMenuItems(struct MenuStruct *, struct UnkTextStruct2 *, u32, const struct UnkTextStruct2 *, const struct MenuItem *, u32, u32, u32); - extern void sub_80920D8(u8 *); extern struct PokemonStruct *GetPlayerPokemonStruct(void); extern bool8 sub_80023E4(u32); diff --git a/src/main_menu.c b/src/main_menu.c index b2bce9d87..f8c9845a7 100644 --- a/src/main_menu.c +++ b/src/main_menu.c @@ -1,10 +1,7 @@ #include "global.h" #include "text1.h" #include "text2.h" -#include "menu.h" -#include "input.h" #include "menu_input.h" - #include "adventure_log.h" #include "debug_menu.h" #include "ds_menus.h" @@ -18,12 +15,12 @@ #include "trade_items_menu.h" #include "constants/wonder_mail.h" -// NOTE: 0x13 and 0x14 +// NOTE: 0x13 and 0x14 // Communication Screen? // Got Communication warning when I wrote them to the struct // NOTE: 0x29, 0x2A, 0x2B, 0x2C -// Triggers a save +// Triggers a save // NOTE: 0x2D // Triggers a save and then goes to 0x13 (comms warning) @@ -623,8 +620,8 @@ void sub_8035C1C(void) gMainMenu->sub.unk2D = 0; } -void -SetMenuItems(struct MenuStruct *param_1, struct UnkTextStruct2 *unkData, s32 index, const struct UnkTextStruct2 *param_4, const struct MenuItem *menuItems, u8 param_6 ,u32 menuAction, u32 unused_8) +void SetMenuItems(struct MenuStruct *param_1, struct UnkTextStruct2 *unkData, s32 index, + const struct UnkTextStruct2 *param_4, const struct MenuItem *menuItems, u8 param_6, u32 menuAction, u32 unused_8) { unkData[index] = *param_4; ResetUnusedInputStruct(); @@ -778,10 +775,10 @@ void DrawMainMenu(void) if(SetMainMenuText()) { - sub_8035CF4(gUnknown_203B34C->unk4,2,0); + sub_8035CF4(gUnknown_203B34C->unk4,2,FALSE); } - sub_8035CF4(gUnknown_203B34C->unk4,0,1); + sub_8035CF4(gUnknown_203B34C->unk4,0,TRUE); gUnknown_203B34C->unk0 = 1; } @@ -808,8 +805,8 @@ u32 UpdateMainMenu(void) if(SetMainMenuText()) { - sub_8035CF4(gUnknown_203B34C->unk4, 0, 1); - sub_8035CF4(gUnknown_203B34C->unk4, 2, 0); + sub_8035CF4(gUnknown_203B34C->unk4, 0, TRUE); + sub_8035CF4(gUnknown_203B34C->unk4, 2, FALSE); } switch(nextMenu) { @@ -820,8 +817,8 @@ u32 UpdateMainMenu(void) gUnknown_203B34C->unk0 = 1; nextMenu = MENU_NO_SCREEN_CHANGE; ResetUnusedInputStruct(); - sub_8035CF4(gUnknown_203B34C->unk4, 0, 1); - sub_8035CF4(gUnknown_203B34C->unk4, 2, 0); + sub_8035CF4(gUnknown_203B34C->unk4, 0, TRUE); + sub_8035CF4(gUnknown_203B34C->unk4, 2, FALSE); break; case MENU_TRADE_ITEMS: sub_8035DA0(); @@ -950,9 +947,9 @@ void sub_803623C(void) SetMainMenuItems(); gUnknown_203B34C->currMenuChoice = -1; if (SetMainMenuText()) { - sub_8035CF4(gUnknown_203B34C->unk4,2,0); + sub_8035CF4(gUnknown_203B34C->unk4,2,FALSE); } - sub_8035CF4(gUnknown_203B34C->unk4,0,1); + sub_8035CF4(gUnknown_203B34C->unk4,0,TRUE); } void SetMainMenuItems(void) diff --git a/src/other_menus.c b/src/other_menus.c index db62b5fda..74b84f95c 100644 --- a/src/other_menus.c +++ b/src/other_menus.c @@ -447,9 +447,7 @@ static const u8 fill3[] = "pksdir0"; static const u8 fill4[] = "pksdir0"; extern void sub_8037400(void); -extern void sub_8035CF4(struct MenuStruct *,u32, u32); extern void sub_80376CC(); -extern void sub_8035CC0(struct UnkTextStruct2 *, u32); extern u32 sub_8037C10(u32); extern void sub_8037748(void); @@ -457,7 +455,6 @@ extern void sub_80371B8(void); extern void sub_8037900(void); extern void PlayMenuSoundEffect(u32); extern u32 sub_8037798(void); -extern void SetMenuItems(struct MenuStruct *, void *, u32, const struct UnkTextStruct2 *, const struct MenuItem *, u32, u32, u32); extern void sub_8005838(u32, u32); extern void sub_80060EC(); extern void sub_800CB20(); @@ -503,7 +500,7 @@ void sub_8036FDC(s32 param_1) ResetUnusedInputStruct(); sub_800641C(gUnknown_203B35C->unk15C,1,1); SetMenuItems(gUnknown_203B35C->unk1C,gUnknown_203B35C->unk15C,0,&gUnknown_80E6CD0,gUnknown_80E6CE8,0,6,0); - sub_8035CF4(gUnknown_203B35C->unk1C,0,1); + sub_8035CF4(gUnknown_203B35C->unk1C,0,TRUE); sub_80376CC(); } @@ -579,7 +576,7 @@ void sub_80371B8(void) // The item exchange with your friend // went through successfully SetMenuItems(gUnknown_203B35C->unk1C, gUnknown_203B35C->unk15C, 0, &gUnknown_80E6C50, gUnknown_80E6C68, 0, 6, 0); - sub_8035CF4(gUnknown_203B35C->unk1C, 0, 1); + sub_8035CF4(gUnknown_203B35C->unk1C, 0, TRUE); } } else { @@ -639,7 +636,7 @@ void sub_80371B8(void) break; } SetMenuItems(gUnknown_203B35C->unk1C, gUnknown_203B35C->unk15C, 0, puVar5, MenuItems, 0, 6, 0); - sub_8035CF4(gUnknown_203B35C->unk1C, 0, 1); + sub_8035CF4(gUnknown_203B35C->unk1C, 0, TRUE); if ((gUnknown_203B35C->linkStatus != COMMS_GOOD) && (gUnknown_203B35C->unk0 == 0) && (item = sub_8035D94(), item->itemIndex.itemIndex_u8 != ITEM_NOTHING) && (item->numItems != 0)) { gTeamInventoryRef->teamStorage[item->itemIndex.itemIndex_u8] += item->numItems; diff --git a/src/rescue_password_menu.c b/src/rescue_password_menu.c index 310de6b06..5e9b2749a 100644 --- a/src/rescue_password_menu.c +++ b/src/rescue_password_menu.c @@ -13,7 +13,6 @@ #include "wonder_mail.h" #include "menu_input.h" #include "dungeon.h" -#include "main_menu.h" #define RESCUE_PASSWORD_SIZE 0x36 @@ -251,8 +250,6 @@ extern void sub_8031E10(void); extern u32 sub_80154F0(void); extern u32 sub_8031DCC(void); extern void sub_8031E00(void); -extern void SetMenuItems(struct MenuStruct *, struct UnkTextStruct2 *, u32, const struct UnkTextStruct2 *, const struct MenuItem *, u32, u32, u32); -extern void sub_8035CF4(struct MenuStruct *r0, u32, u32); extern void AddSprite(struct unkSprite *, u32, u32, u32); extern void xxx_draw_string_80144C4(void); @@ -589,7 +586,7 @@ void DisplayRescuePasswordError(u32 passwordError) default: break; } - sub_8035CF4(gRescuePasswordMenu->unk8,0,1); + sub_8035CF4(gRescuePasswordMenu->unk8,0,TRUE); } void DisplayPasswordAcceptScreen(void) @@ -599,7 +596,7 @@ void DisplayPasswordAcceptScreen(void) sub_800641C(0,1,1); sub_80155F0(); SetMenuItems(gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E7278,gUnknown_80E7290,0,0xd,0); - sub_8035CF4(gRescuePasswordMenu->unk8,0,1); + sub_8035CF4(gRescuePasswordMenu->unk8,0,TRUE); } u32 ConvertMenutoRescuePasswordState(u32 unused) diff --git a/src/save_menu.c b/src/save_menu.c index 2c07ddc9c..a7ffb072b 100644 --- a/src/save_menu.c +++ b/src/save_menu.c @@ -133,14 +133,11 @@ ALIGNED(4) const u8 gUnknown_80E7178[] = _("{CENTER_ALIGN}The data could not be ALIGNED(4) static const u8 save_menu_fill0[] = "pksdir0"; extern void sub_8038440(); -extern void sub_8035CF4(struct MenuStruct *, u32, u32); -extern void SetMenuItems(struct MenuStruct *, struct UnkTextStruct2 *, u32, const struct UnkTextStruct2 *, const struct MenuItem *, u32, u32, u32); extern void sub_80384D0(); extern void sub_8038830(); extern void sub_80388C4(void); extern void sub_8014114(); extern void sub_80140F8(void); -extern void sub_8035CC0(struct UnkTextStruct2 *, u32); extern void AddSprite(struct unkSprite *, u32, u32, u32); void CreateSaveMenu(s32 currMenu) @@ -167,7 +164,7 @@ void CreateSaveMenu(s32 currMenu) SetMenuItems(gUnknown_203B364->unk8,gUnknown_203B364->unk148,0,&gUnknown_80E6F38,gSavingAdventureMenuItems, 0,6,0); } - sub_8035CF4(gUnknown_203B364->unk8,0,1); + sub_8035CF4(gUnknown_203B364->unk8,0,TRUE); gUnknown_203B364->unk4 = 0; gUnknown_203B364->currMenu = currMenu; sub_8038830(); @@ -222,7 +219,7 @@ s32 UpdateSaveMenu(void) gUnknown_203B364->unk4 = 1; return MENU_COMMUNICATION_1; } - sub_8035CF4(gUnknown_203B364->unk8,0,1); + sub_8035CF4(gUnknown_203B364->unk8,0,TRUE); gUnknown_203B364->unk4 = 1; break; case SAVE_NOT_WRTTEN: @@ -239,7 +236,7 @@ s32 UpdateSaveMenu(void) SetMenuItems(gUnknown_203B364->unk8,gUnknown_203B364->unk148,0,&gUnknown_80E6F38, gAdventureCouldNotBeSavedMenuItems,0,6,0); } - sub_8035CF4(gUnknown_203B364->unk8,0,1); + sub_8035CF4(gUnknown_203B364->unk8,0,TRUE); gUnknown_203B364->unk4 = 1; break; } diff --git a/src/thank_you_wonder_mail.c b/src/thank_you_wonder_mail.c index b78510dba..9a787fffd 100644 --- a/src/thank_you_wonder_mail.c +++ b/src/thank_you_wonder_mail.c @@ -14,6 +14,7 @@ #include "code_800D090.h" #include "menu_input.h" #include "code_80130A8.h" +#include "main_menu.h" extern struct WonderMailStruct_203B2C4 *gUnknown_203B2C4; @@ -155,7 +156,6 @@ const struct MenuItem gUnknown_80DEEE4[4] = #include "data/thank_you_wonder_mail.h" -extern void sub_8035CC0(struct UnkTextStruct2 *r0, u32); extern void sub_8030810(u32); extern u32 sub_8031DCC(void); extern void sub_8031E00(void); @@ -214,7 +214,6 @@ extern void sub_8031E10(); extern void sub_802F2C0(); extern void SetThankYouMailMenuState(u32); extern struct PokemonStruct *GetPlayerPokemonStruct(void); -extern void SetMenuItems(struct MenuStruct *menu, struct UnkTextStruct2 *, u32, const struct UnkTextStruct2 *, const struct MenuItem *entries, u32, u32, u32); extern void sub_802F204(struct unkStruct_802F204 *, u32); extern void sub_80151C0(u32, u8 *); extern void xxx_call_start_bg_music(void); @@ -234,7 +233,6 @@ extern u32 GetDungeonTeamRankPts(struct DungeonLocation *, u32); extern void sub_8031D70(u8, u32); extern void sub_803092C(void); -extern void sub_8035CF4(struct MenuStruct *, u32, u32); extern u32 sub_801CA08(u32); extern void sub_801CBB8(void); extern void sub_801B3C0(struct Item *); @@ -654,7 +652,7 @@ void sub_802A230(void) sub_800641C(gUnknown_203B2C4->unk3BC, 1, 1); sub_803092C(); if (gUnknown_203B2C4->fallbackState == 0x2b) { - sub_8035CF4(gUnknown_203B2C4->unk21C, 3, 1); + sub_8035CF4(gUnknown_203B2C4->unk21C, 3, TRUE); SetThankYouMailMenuState(0x11); } else { @@ -706,7 +704,7 @@ void sub_802A33C(void) sub_800641C(gUnknown_203B2C4->unk3BC,1,1); sub_801CB5C(1); if (gUnknown_203B2C4->fallbackState == 0x2b) { - sub_8035CF4(gUnknown_203B2C4->unk21C,3,1); + sub_8035CF4(gUnknown_203B2C4->unk21C,3,TRUE); SetThankYouMailMenuState(0x14); } else { @@ -1296,7 +1294,7 @@ void UpdateThankYouMailText(void) sub_8006518(gUnknown_203B2C4->unk35C); SetMenuItems(gUnknown_203B2C4->unk21C,gUnknown_203B2C4->unk35C,3,&gUnknown_80DED60,gUnknown_80DED78,1,0,0); sub_803092C(); - sub_8035CF4(gUnknown_203B2C4->unk21C,3,1); + sub_8035CF4(gUnknown_203B2C4->unk21C,3,TRUE); break; case 0x13: if (sub_801D008() != 0) @@ -1313,7 +1311,7 @@ void UpdateThankYouMailText(void) sub_8006518(gUnknown_203B2C4->unk35C); SetMenuItems(gUnknown_203B2C4->unk21C,gUnknown_203B2C4->unk35C,3,&gUnknown_80DED48,gUnknown_80DED78,1,0,0); sub_801CCD8(); - sub_8035CF4(gUnknown_203B2C4->unk21C,3,1); + sub_8035CF4(gUnknown_203B2C4->unk21C,3,TRUE); break; case THANK_YOU_MAIL_COMMS_FINISHED: gUnknown_203B2C4->linkError = COMMS_GOOD; diff --git a/src/trade_items_menu.c b/src/trade_items_menu.c index 5f313ce58..cd3bdd531 100644 --- a/src/trade_items_menu.c +++ b/src/trade_items_menu.c @@ -86,19 +86,16 @@ extern u32 sub_801CA08(u32); extern void sub_801CBB8(); extern u8 sub_801CB24(); extern void sub_801B3C0(struct Item *); -extern void sub_8035CC0(struct UnkTextStruct2 *, u32); extern void sub_801CCD8(); extern u32 sub_801B410(); extern void sub_801B450(); extern void sub_801CB5C(u32); -extern void sub_8035CF4(struct MenuStruct *, u32, 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 SetMenuItems(struct MenuStruct *menu, struct UnkTextStruct2 *, u32, const struct UnkTextStruct2 *, const struct MenuItem *entries, u32, u32, u32); extern void nullsub_23(u32); extern void xxx_call_start_bg_music(void); extern s32 sub_80381F4(u32, void *, void *); @@ -337,7 +334,7 @@ void sub_8036728(void) sub_800641C(gTradeItemsMenu->unk1E4, 1, 1); sub_801CB5C(1); if (gTradeItemsMenu->fallbackState == 0x13) { - sub_8035CF4(gTradeItemsMenu->unk44, 3, 1); + sub_8035CF4(gTradeItemsMenu->unk44, 3, TRUE); SetTradeItemMenu(TRADE_ITEMS_SEND_ITEM_POPUP_MENU); } else { @@ -357,14 +354,14 @@ void sub_8036788(void) case 1: // When you change the # sub_801CCD8(); - sub_8035CF4(gTradeItemsMenu->unk44, 3, 0); + sub_8035CF4(gTradeItemsMenu->unk44, 3, FALSE); sub_8036F30(); break; case 2: // If you back out of the # selection sub_8035CC0(gTradeItemsMenu->unk184, 2); sub_801CCD8(); - sub_8035CF4(gTradeItemsMenu->unk44, 3, 1); + sub_8035CF4(gTradeItemsMenu->unk44, 3, TRUE); SetTradeItemMenu(TRADE_ITEMS_SEND_ITEM_POPUP_MENU); break; case 3: @@ -626,7 +623,7 @@ void sub_8036B28(void) SetMenuItems(gTradeItemsMenu->unk44,gTradeItemsMenu->unk184,3,&gUnknown_80E60EC, gUnknown_80E6104,1,0,0); sub_801CCD8(); - sub_8035CF4(gTradeItemsMenu->unk44,3,1); + sub_8035CF4(gTradeItemsMenu->unk44,3,TRUE); break; case TRADE_ITEMS_SEND_ITEM_NUMBER: sub_8036F74(); @@ -782,7 +779,7 @@ void sub_8036F74(void) sub_8006518(gTradeItemsMenu->unk184); sub_8036ECC(2, gTeamInventoryRef->teamStorage[gTradeItemsMenu->itemToSend.id]); sub_801CCD8(); - sub_8035CF4(gTradeItemsMenu->unk44, 3, 0); + sub_8035CF4(gTradeItemsMenu->unk44, 3, FALSE); sub_8036F30(); } diff --git a/src/unk_menu_203B360.c b/src/unk_menu_203B360.c index 894a2e9a7..aec1f797e 100644 --- a/src/unk_menu_203B360.c +++ b/src/unk_menu_203B360.c @@ -64,8 +64,6 @@ static const u8 fill0[] = "pksdir0"; extern void AddSprite(struct unkSprite *, u32, u32, u32); extern void sub_8038440(); -extern void sub_8035CF4(struct MenuStruct *, u32, u32); -extern void SetMenuItems(struct MenuStruct *, struct UnkTextStruct2 *, u32, const struct UnkTextStruct2 *, const struct MenuItem *, u32, u32, u32); extern void sub_80384D0(); void sub_80382E4(s32 currMenu) @@ -88,7 +86,7 @@ void sub_80382E4(s32 currMenu) SetMenuItems(gUnknown_203B360->unk8,gUnknown_203B360->unk148,0,&gUnknown_80E6E94,gUnknown_80E6EAC, 0,4,0); } - sub_8035CF4(gUnknown_203B360->unk8,0,1); + sub_8035CF4(gUnknown_203B360->unk8,0,TRUE); gUnknown_203B360->currMenu = currMenu; gUnknown_203B360->unk4 = 0; sub_8038440(); diff --git a/src/wigglytuff_shop.c b/src/wigglytuff_shop.c index 76c069421..947a30bf0 100644 --- a/src/wigglytuff_shop.c +++ b/src/wigglytuff_shop.c @@ -42,7 +42,6 @@ extern void sub_8021774(u8,u32, u32); extern void sub_809249C(u8, u32); extern void sub_8021830(void); extern u32 sub_80217EC(void); -extern u8 sub_803ABC8(void); extern u32 sub_8021274(u32); extern u8 sub_802132C(void); extern void sub_80213A0(void); diff --git a/src/wonder_mail.c b/src/wonder_mail.c index 561b6d954..c0ffcbe5b 100644 --- a/src/wonder_mail.c +++ b/src/wonder_mail.c @@ -12,6 +12,7 @@ #include "menu_input.h" #include "code_8094F88.h" #include "code_80130A8.h" +#include "main_menu.h" extern struct WonderMailStruct_203B2C0 *gUnknown_203B2C0; @@ -33,8 +34,6 @@ extern u32 sub_8030768(u32); extern s8 sub_80307EC(); extern void sub_8030D40(u8, u32); extern void sub_8030810(u32); -extern void sub_8035CC0(struct UnkTextStruct2 *r0, u32); -extern void sub_8035CF4(struct MenuStruct *r0, u32, u32); extern u32 sub_8030DA0(void); extern void sub_8030DE4(void); extern void sub_803092C(void); @@ -74,7 +73,6 @@ extern u32 sub_8023CE8(void); extern u32 sub_8030894(void); extern void sub_8030F58(u32); extern void sub_8023DA4(void); -extern void SetMenuItems(struct MenuStruct *, struct UnkTextStruct2 *, u32, const struct UnkTextStruct2 *, const struct MenuItem *, u32, u32, u32); extern void sub_8029B34(void); extern void sub_8029AD8(void); extern void sub_8029AF4(void); @@ -559,7 +557,7 @@ void sub_8028348(void) sub_8006518(gUnknown_203B2C0->unk35C); SetMenuItems(gUnknown_203B2C0->unk21C, gUnknown_203B2C0->unk35C, 3, &gUnknown_80DDAE4, gUnknown_80DDAFC, 1, 0, 0); sub_8023DA4(); - sub_8035CF4(gUnknown_203B2C0->unk21C, 3, 1); + sub_8035CF4(gUnknown_203B2C0->unk21C, 3, TRUE); break; case NO_POKEMON_IN_FRIEND_AREA: sub_8014248(gUnknown_80DDD2C, 0, 0xA, gUnknown_80DDAA0, 0, 4, 0, &gUnknown_203B2C0->faceFile,0xC); @@ -714,7 +712,7 @@ void sub_8028348(void) sub_8006518(gUnknown_203B2C0->unk35C); SetMenuItems(gUnknown_203B2C0->unk21C, gUnknown_203B2C0->unk35C, 3, &gUnknown_80DDACC, gUnknown_80DDAFC, 1, 0, 0); sub_803092C(); - sub_8035CF4(gUnknown_203B2C0->unk21C, 3, 1); + sub_8035CF4(gUnknown_203B2C0->unk21C, 3, TRUE); break; case 0xA: gUnknown_203B2C0->mailCount = CountAllMail(); @@ -1273,7 +1271,7 @@ void sub_80291AC(void) sub_803092C(); if(gUnknown_203B2C0->fallbackState == DEFAULT_FALLBACK_STATE) { - sub_8035CF4(gUnknown_203B2C0->unk21C, 3, 1); + sub_8035CF4(gUnknown_203B2C0->unk21C, 3, TRUE); SetFriendRescueCounterState(0x20); } else @@ -1620,7 +1618,7 @@ void sub_8029740(void) sub_803092C(); if(gUnknown_203B2C0->fallbackState == DEFAULT_FALLBACK_STATE) { - sub_8035CF4(gUnknown_203B2C0->unk21C, 3, 1); + sub_8035CF4(gUnknown_203B2C0->unk21C, 3, TRUE); SetFriendRescueCounterState(0x2B); } else @@ -1729,7 +1727,7 @@ void sub_8029944(void) sub_8023B7C(1); if(gUnknown_203B2C0->fallbackState == DEFAULT_FALLBACK_STATE) { - sub_8035CF4(gUnknown_203B2C0->unk21C, 3, 1); + sub_8035CF4(gUnknown_203B2C0->unk21C, 3, TRUE); SetFriendRescueCounterState(0x34); } else