diff --git a/include/constants/mailbox.h b/include/constants/mailbox.h index 8d57c1f6e..f6d1d3fcc 100644 --- a/include/constants/mailbox.h +++ b/include/constants/mailbox.h @@ -1,5 +1,5 @@ #ifndef GUARD_CONSTANTS_MAILBOX_H -#define GUARD_CONSTANTS_MAILBOX_H +#define GUARD_CONSTANTS_MAILBOX_H #define MAX_ACCEPTED_JOBS 8 #define NUM_MAILBOX_SLOTS 4 @@ -18,4 +18,4 @@ enum JOB_LIST_MAIL_TYPES MAIL_TYPE_UNK9, }; -#endif // GUARD_CONSTANTS_MAILBOX_H +#endif // GUARD_CONSTANTS_MAILBOX_H \ No newline at end of file diff --git a/include/constants/main_menu.h b/include/constants/main_menu.h new file mode 100644 index 000000000..03f5d897a --- /dev/null +++ b/include/constants/main_menu.h @@ -0,0 +1,40 @@ +#ifndef GUARD_CONSTANTS_MAIN_MENU_H +#define GUARD_CONSTANTS_MAIN_MENU_H + +enum MainMenuScreens +{ + MENU_MAIN_SCREEN = 1, + // + MENU_NEW_GAME = 3, + // + MENU_AWAITING_RESCUE = 6, + MENU_CONTINUE, // used by Revive Team/Continue + MENU_DELETE_SAVE_PROMPT, + MENU_DELETE_SAVE_CONFIRM, + MENU_ADVENTURE_LOG, + MENU_FRIEND_RESCUE, + MENU_TRADE_ITEMS, + MENU_WONDER_MAIL, + MENU_DUAL_SLOT, + MENU_WIRELESS_COMMS, + MENU_DEBUG, + MENU_SEND_ITEMS, + MENU_RECEIVE_ITEMS, + MENU_COMMUNICATION_1, + MENU_COMMUNICATION_2, + // NOTE: 27 - 34 used by Rescue Password Menu + MENU_DISPLAY_RESCUE_PASSWORD = 33, + MENU_RESCUE_PASSWORD_ENTRY, + // + MENU_DELETE_SAVE = 46, + MENU_DEBUG_DUNGEON, + MENU_DEBUG_FIELD, + MENU_DEBUG_FIELD_MAP, + MENU_DEBUG_FIELD_SCRIPT, + MENU_DEBUG_DEBUG_MENU, + MENU_DEBUG_UNKNOWN_1, + // + MENU_NO_SCREEN_CHANGE = 65500 // (s16)-36 +}; + +#endif // GUARD_CONSTANTS_MAIN_MENU_H \ No newline at end of file diff --git a/include/game_options.h b/include/game_options.h index cae7a7638..1f468a382 100644 --- a/include/game_options.h +++ b/include/game_options.h @@ -59,9 +59,10 @@ typedef struct GameOptions /* 0xC */ u8 unkC; } GameOptions; -void LoadGameOptions(void); -GameOptions * GetGameOptions(void); -void InitializeGameOptions(bool8 initializeGender); +GameOptions *GetGameOptions(void); bool8 GameOptionsNotChange(GameOptions *); +void InitializeGameOptions(bool8 initializeGender); +void LoadGameOptions(void); +void SetWindowBGColor(void); #endif // GUARD_GAME_OPTIONS_H \ No newline at end of file diff --git a/include/main_menu.h b/include/main_menu.h deleted file mode 100644 index b1b5455db..000000000 --- a/include/main_menu.h +++ /dev/null @@ -1,97 +0,0 @@ -#ifndef GUARD_MAIN_MENU_H -#define GUARD_MAIN_MENU_H - -#include "menu.h" -#include "text.h" - -enum MainMenuScreens -{ - MENU_MAIN_SCREEN = 1, - MENU_NEW_GAME = 3, - MENU_AWAITING_RESCUE = 6, - MENU_CONTINUE = 7, // used by Revive Team/Continue - MENU_DELETE_SAVE_PROMPT, - MENU_DELETE_SAVE_CONFIRM, - MENU_ADVENTURE_LOG = 10, - MENU_FRIEND_RESCUE, - MENU_TRADE_ITEMS, - MENU_WONDER_MAIL, - MENU_DUAL_SLOT, - MENU_WIRELESS_COMMS, - MENU_DEBUG = 16, - MENU_SEND_ITEMS, - MENU_RECEIVE_ITEMS, - MENU_COMMUNICATION_1 = 19, - MENU_COMMUNICATION_2, - // NOTE: 0x1B - 0x22 used by Rescue Password Menu - MENU_DISPLAY_RESCUE_PASSWORD = 33, - MENU_RESCUE_PASSWORD_ENTRY, - MENU_DELETE_SAVE = 46, - MENU_DEBUG_DUNGEON, - MENU_DEBUG_FIELD, - MENU_DEBUG_FIELD_MAP, - MENU_DEBUG_FIELD_SCRIPT, - MENU_DEBUG_DEBUG_MENU, - MENU_DEBUG_UNKNOWN_1, - MENU_NO_SCREEN_CHANGE = 65500 -}; - -// size: 0x1A8 -typedef struct unkStruct_203B34C -{ - u32 unk0; - MenuStruct unk4[4]; - UnkTextStruct2 unk144[4]; - /* 0x1A4 */ u32 currMenuChoice; -} unkStruct_203B34C; - -// size: 0x8 -typedef struct unkStruct_8035D94 -{ - union { - u8 itemIndex_u8; - u32 itemIndex_u32; - } itemIndex; - s32 numItems; -} unkStruct_8035D94; - -// size: 0x4 -typedef struct MainMenuSub -{ - u8 unk2C; - u8 unk2D; - u8 unk2E; -} MainMenuSub; - -// size: 0x40 -typedef struct MainMenu -{ - /* 0x0 */ s32 currMenu; - /* 0x4 */ s32 nextMenu; - /* 0x8 */ s32 lastMenu; - u8 padding[0x20]; - /* 0x2C */ MainMenuSub sub; - unkStruct_8035D94 unk30; - s16 unk38; - u8 unk3A; - u8 unk3B; - s32 unk3C; -} MainMenu; - -void CleanUpMenu(void); -void DeleteMainMenu(void); -MainMenu *GetMainMenu(void); -void InitMainMenu(void); -void SetMenuItems(MenuStruct *, UnkTextStruct2 *, s32, const UnkTextStruct2 *, const MenuItem *, u8, u32, u32); -void SetUpMenu(void); -s32 UpdateMenu(void); - -void sub_8035CC0(UnkTextStruct2 *, u32); -void sub_8035CF4(MenuStruct*, u32, bool8); -s16 sub_8035D3C(void); -s32 sub_8035D74(void); -unkStruct_8035D94 *sub_8035D94(void); -void sub_8035DA0(void); -bool8 sub_80363E0(void); - -#endif // GUARD_MAIN_MENU_H diff --git a/include/main_menu1.h b/include/main_menu1.h new file mode 100644 index 000000000..c2d880ee6 --- /dev/null +++ b/include/main_menu1.h @@ -0,0 +1,57 @@ +#ifndef GUARD_MAIN_MENU1_H +#define GUARD_MAIN_MENU1_H + +#include "menu.h" +#include "text.h" + +// size: 0x8 +typedef struct unkStruct_8035D94 +{ + union { + u8 itemIndex_u8; + u32 itemIndex_u32; + } itemIndex; + s32 numItems; +} unkStruct_8035D94; + +// size: 0x4 +typedef struct MainMenuSub +{ + u8 unk2C; + u8 unk2D; + u8 unk2E; +} MainMenuSub; + +// size: 0x40 +typedef struct MainMenu1Work +{ + /* 0x0 */ s32 currMenu; + /* 0x4 */ s32 nextMenu; + /* 0x8 */ s32 lastMenu; + u8 padding[0x20]; + /* 0x2C */ MainMenuSub sub; + unkStruct_8035D94 unk30; + s16 unk38; + u8 unk3A; + u8 unk3B; + s32 unk3C; +} MainMenu1Work; + +void CleanUpMenu(void); +void DeleteMainMenu(void); +MainMenu1Work *GetMainMenu(void); +void InitMainMenu(void); +void SetMenuItems(MenuStruct *, UnkTextStruct2 *, s32 index, const UnkTextStruct2 *, const MenuItem *menuItems, bool8, u32 menuAction, u32 unused); +void SetUpMenu(void); +s32 UpdateMenu(void); + +void sub_8035C1C(void); +void sub_8035CC0(UnkTextStruct2 *dataArray, u32 index); +void sub_8035CF4(MenuStruct *menu, u32 index, bool8); +void sub_8035D1C(void); +s16 sub_8035D3C(void); +s32 sub_8035D74(void); +unkStruct_8035D94 *sub_8035D94(void); +void sub_8035DA0(void); + +#endif // GUARD_MAIN_MENU1_H \ No newline at end of file diff --git a/include/main_menu2.h b/include/main_menu2.h new file mode 100644 index 000000000..6ce11f33d --- /dev/null +++ b/include/main_menu2.h @@ -0,0 +1,22 @@ +#ifndef GUARD_MAIN_MENU2_H +#define GUARD_MAIN_MENU2_H + +#include "menu.h" +#include "text.h" + +// size: 0x1A8 +typedef struct MainMenu2Work +{ + u32 unk0; + MenuStruct unk4[4]; + UnkTextStruct2 unk144[4]; + /* 0x1A4 */ u32 currMenuChoice; +} MainMenu2Work; + +void CleanMainMenu(void); +void DrawMainMenu(void); +u32 UpdateMainMenu(void); + +bool8 sub_80363E0(void); + +#endif // GUARD_MAIN_MENU2_H \ No newline at end of file diff --git a/include/other_menus1.h b/include/other_menus1.h index 5d3c92b9c..f2e6f49e2 100644 --- a/include/other_menus1.h +++ b/include/other_menus1.h @@ -2,7 +2,7 @@ #define GUARD_OTHER_MENUS1_H #include "code_8094F88.h" -#include "main_menu.h" +#include "main_menu1.h" #include "menu.h" #include "pokemon.h" #include "sprite_oam.h" diff --git a/include/save_menu.h b/include/save_menu.h new file mode 100644 index 000000000..349e1edb4 --- /dev/null +++ b/include/save_menu.h @@ -0,0 +1,19 @@ +#ifndef GUARD_SAVE_MENU_H +#define GUARD_SAVE_MENU_H + +// size: 0x1B4 +typedef struct SaveMenuWork +{ + /* 0x0 */ u32 currMenu; + u32 unk4; + MenuStruct unk8[4]; + UnkTextStruct2 unk148[4]; + SpriteOAM unk1A8; + u32 unk1B0; // Sprite count? +} SaveMenuWork; + +void CleanSaveMenu(void); +void CreateSaveMenu(s32 currMenu); +s32 UpdateSaveMenu(void); + +#endif // GUARD_SAVE_MENU_H \ No newline at end of file diff --git a/include/unk_menu_203B360.h b/include/unk_menu_203B360.h new file mode 100644 index 000000000..4821dfe14 --- /dev/null +++ b/include/unk_menu_203B360.h @@ -0,0 +1,7 @@ +#ifndef GUARD_UNK_MENU_203B360_H +#define GUARD_UNK_MENU_203B360_H + +void sub_80383A8(void); +u32 sub_80383D4(void); + +#endif // GUARD_UNK_MENU_203B360_H \ No newline at end of file diff --git a/include/util.h b/include/util.h index 3da2beb90..95cf657df 100644 --- a/include/util.h +++ b/include/util.h @@ -7,4 +7,4 @@ s32 ConvertFromDecimal(s32 *decimal, s32 sign, s32 len); s32 ConvertFromBCD(s32 bcd); s32 ConvertToBCD(s32 n); -#endif // GUARD_UTIL_H +#endif // GUARD_UTIL_H \ No newline at end of file diff --git a/include/wonder_mail_main_menu.h b/include/wonder_mail_main_menu.h new file mode 100644 index 000000000..3c18f0a70 --- /dev/null +++ b/include/wonder_mail_main_menu.h @@ -0,0 +1,8 @@ +#ifndef GUARD_WONDER_MAIL_MAIN_MENU_H +#define GUARD_WONDER_MAIL_MAIN_MENU_H + +void CleanWonderMailMenu(void); +bool8 CreateWonderMailMenu(void); +u32 UpdateWonderMailMenu(void); + +#endif // GUARD_WONDER_MAIL_MAIN_MENU_H \ No newline at end of file diff --git a/ld_script.txt b/ld_script.txt index fb47e7477..36fb50add 100755 --- a/ld_script.txt +++ b/ld_script.txt @@ -149,7 +149,8 @@ SECTIONS { src/friend_rescue.o(.text); src/credits1.o(.text); src/credits2.o(.text); - src/main_menu.o(.text); + src/main_menu1.o(.text); + src/main_menu2.o(.text); src/trade_items_menu.o(.text); src/other_menus1.o(.text); asm/other_menus1.o(.text); @@ -446,7 +447,8 @@ SECTIONS { data/friend_rescue.o(.rodata); data/credits1.o(.rodata); src/credits2.o(.rodata); - src/main_menu.o(.rodata); + src/main_menu1.o(.rodata); + src/main_menu2.o(.rodata); src/trade_items_menu.o(.rodata); src/other_menus1.o(.rodata); src/other_menus2.o(.rodata); diff --git a/src/adventure_log_menu.c b/src/adventure_log_menu.c index 69684af72..523c9da43 100644 --- a/src/adventure_log_menu.c +++ b/src/adventure_log_menu.c @@ -1,8 +1,8 @@ #include "global.h" #include "adventure_log.h" #include "adventure_log_menu.h" +#include "constants/main_menu.h" #include "input.h" -#include "main_menu.h" #include "text1.h" void CreateAdventureLogMenu(void) diff --git a/src/code_2.c b/src/code_2.c index 480086be1..2ecf645c6 100644 --- a/src/code_2.c +++ b/src/code_2.c @@ -9,6 +9,7 @@ #include "code_8094F88.h" #include "code_8097670.h" #include "constants/bg_music.h" +#include "constants/main_menu.h" #include "cpu.h" #include "debug.h" #include "event_flag.h" @@ -17,7 +18,8 @@ #include "friend_area.h" #include "game_options.h" #include "input.h" -#include "main_menu.h" +#include "main_menu1.h" +#include "main_menu2.h" #include "memory.h" #include "moves.h" #include "music.h" @@ -33,7 +35,6 @@ extern void NDS_LoadOverlay_GroundMain(void); extern void sub_8014144(void); extern void LoadGameOptions(void); -extern void SetWindowBGColor(void); extern void LoadItemParameters(void); extern void LoadMailInfo(void); extern void sub_800DAAC(void); diff --git a/src/code_803D0D8.c b/src/code_803D0D8.c index e8d3804ec..9234514c9 100644 --- a/src/code_803D0D8.c +++ b/src/code_803D0D8.c @@ -10,9 +10,9 @@ u8 sub_803D0D8() return sUnknown_203B408; } -UNUSED static void sub_803D0E4(u8 r0) +UNUSED static void sub_803D0E4(u8 a0) { - sUnknown_203B408 = r0; + sUnknown_203B408 = a0; } u8 sub_803D0F0(u8 r0) diff --git a/src/data/main_menu1.h b/src/data/main_menu1.h new file mode 100644 index 000000000..4b36df5c7 --- /dev/null +++ b/src/data/main_menu1.h @@ -0,0 +1,10 @@ +static const u8 sFill[] = "pksdir0"; + +static const UnkTextStruct2 sUnknown_80E59A8 = { + 0, 0, 0, 0, + 3, + 0, 0, + 0, 0, + 0, 0, + NULL +}; \ No newline at end of file diff --git a/src/data/main_menu2.h b/src/data/main_menu2.h new file mode 100644 index 000000000..710f7c54b --- /dev/null +++ b/src/data/main_menu2.h @@ -0,0 +1,291 @@ +static const u8 sFill[] = "pksdir0"; + +static const UnkTextStruct2 sUnknown_80E59C8 = { + 0, 0, 0, 0, + 3, + 0, 0, + 0, 0, + 0, 0, + NULL +}; + +static const UnkTextStruct2 sUnknown_80E59E0 = { + 0, 0, 0, 0, + 3, + 2, 2, + 10, 3, + 3, 0, + NULL +}; + +static const MenuItem sUnknown_80E59F8[] = +{ + {"New Game", MENU_NEW_GAME}, + {"Adventure Log", MENU_ADVENTURE_LOG}, + {NULL, 0xffdd}, +}; + +UNUSED static const UnkTextStruct2 sUnknown_80E5A29 = { + 0, 0, 0, 0, + 3, + 2, 2, + 10, 2, + 2, 0, + NULL +}; + +UNUSED static const MenuItem sUnknown_80E5A44[] = +{ + {"Wonder Mail", MENU_WONDER_MAIL}, + {NULL, 0xffdd}, +}; + +static const UnkTextStruct2 sUnknown_80E5A60 = { + 0, 0, 0, 0, + 3, + 2, 2, + 10, 8, + 8, 0, + NULL +}; + +static const UnkTextStruct2 sUnknown_80E5A78 = { + 0, 0, 0, 0, + 3, + 2, 2, + 11, 9, + 9, 0, + NULL +}; + +static const MenuItem sUnknown_80E5A90[] = +{ + {"Continue", MENU_CONTINUE}, + {"Delete Save Data", MENU_DELETE_SAVE_PROMPT}, + {"Adventure Log", MENU_ADVENTURE_LOG}, + {"Friend Rescue", MENU_FRIEND_RESCUE}, + {"Trade Items", MENU_TRADE_ITEMS}, + {NULL, 0xffdd}, +}; + +static const MenuItem sUnknown_80E5AFC[] = +{ + {"Continue", MENU_CONTINUE}, + {"Delete Save Data", MENU_DELETE_SAVE_PROMPT}, + {"Adventure Log", MENU_ADVENTURE_LOG}, + {"Friend Rescue", MENU_FRIEND_RESCUE}, + {"Trade Items", MENU_TRADE_ITEMS}, + {"Wonder Mail", MENU_WONDER_MAIL}, + {NULL, 0xffdd}, +}; + +static const UnkTextStruct2 sUnknown_80E5B34 = { + 0, 0, 0, 0, + 3, + 2, 2, + 10, 8, + 8, 0, + NULL +}; + +static const MenuItem sUnknown_80E5B4C[] = +{ + {"Awaiting Rescue", MENU_AWAITING_RESCUE}, + {"Delete Save Data", MENU_DELETE_SAVE_PROMPT}, + {"Adventure Log", MENU_ADVENTURE_LOG}, + {"Friend Rescue", MENU_FRIEND_RESCUE}, + {"Trade Items", MENU_TRADE_ITEMS}, + {NULL, 0xffdd}, +}; + +static const MenuItem sUnknown_80E5B8C[] = +{ + {"Awaiting Rescue", MENU_AWAITING_RESCUE}, + {"Delete Save Data", MENU_DELETE_SAVE_PROMPT}, + {"Adventure Log", MENU_ADVENTURE_LOG}, + {"Friend Rescue", MENU_FRIEND_RESCUE}, + {"Trade Items", MENU_TRADE_ITEMS}, + {"Wonder Mail", MENU_WONDER_MAIL}, + {NULL, 0xffdd}, +}; + +static const UnkTextStruct2 sUnknown_80E5BC4 = { + 0, 0, 0, 0, + 3, + 2, 2, + 10, 8, + 8, 0, + NULL +}; + +static const MenuItem sUnknown_80E5BDC[] = +{ + {"Revive Team", MENU_CONTINUE}, + {"Delete Save Data", MENU_DELETE_SAVE_PROMPT}, + {"Adventure Log", MENU_ADVENTURE_LOG}, + {"Friend Rescue", MENU_FRIEND_RESCUE}, + {"Trade Items", MENU_TRADE_ITEMS}, + {NULL, 0xffdd}, +}; + +static const MenuItem sUnknown_80E5C18[] = +{ + {"Revive Team", MENU_CONTINUE}, + {"Delete Save Data", MENU_DELETE_SAVE_PROMPT}, + {"Adventure Log", MENU_ADVENTURE_LOG}, + {"Friend Rescue", MENU_FRIEND_RESCUE}, + {"Trade Items", MENU_TRADE_ITEMS}, + {"Wonder Mail", MENU_WONDER_MAIL}, + {NULL, 0xffdd}, +}; + +UNUSED static const UnkTextStruct2 sUnknown_80E5C50 = { + 0, 0, 0, 0, + 3, + 2, 2, + 10, 3, + 3, 0, + NULL +}; + +UNUSED static const MenuItem sUnknown_80E5C68[] = +{ + {"Send Items", MENU_SEND_ITEMS}, + {"Receive Items", MENU_RECEIVE_ITEMS}, + {NULL, 0xffdd}, +}; + +UNUSED static const MenuItem sUnknown_80E5C9C[] = +{ + {"Send Items", -1}, + {"Receive Items", MENU_RECEIVE_ITEMS}, + {NULL, 0xffdd}, +}; + +static const UnkTextStruct2 sUnknown_80E5CB4 = { + 0, 0, 0, 0, + 3, + 2, 15, + 26, 3, + 3, 0, + NULL +}; + +static const u8 sUnknown_80E5CE4[]; +static const u8 sUnknown_80E5CE8[]; +static const MenuItem sUnknown_80E5CCC[] = +{ + {sUnknown_80E5CE8, 0xffde}, + {sUnknown_80E5CE4, 0xffde}, + {NULL, 0xffdd}, +}; +ALIGNED(4) static const u8 sUnknown_80E5CE4[] = _(" "); +ALIGNED(4) static const u8 sUnknown_80E5CE8[] = _("Start an entirely new adventure."); + +static const u8 sUnknown_80E5D24[]; +static const MenuItem sUnknown_80E5D0C[] = +{ + {sUnknown_80E5D24, 0xffde}, + {sUnknown_80E5CE4, 0xffde}, + {NULL, 0xffdd}, +}; +ALIGNED(4) static const u8 sUnknown_80E5D24[] = _("Check your career as an adventurer."); + +static const u8 sUnknown_80E5D60[]; +static const u8 sUnknown_80E5D88[]; +static const MenuItem sUnknown_80E5D48[] = +{ + {sUnknown_80E5D88, 0xffde}, + {sUnknown_80E5D60, 0xffde}, + {NULL, 0xffdd}, +}; +ALIGNED(4) static const u8 sUnknown_80E5D60[] = _("It won{APOSTROPHE}t be in the release version."); +ALIGNED(4) static const u8 sUnknown_80E5D88[] = _("This is the Debug Mode."); + +static const u8 sUnknown_80E5DB8[]; +static const u8 sUnknown_80E5DCC[]; +static const MenuItem sUnknown_80E5DA0[] = +{ + {sUnknown_80E5DCC, 0xffde}, + {sUnknown_80E5DB8, 0xffde}, + {NULL, 0xffdd}, +}; +ALIGNED(4) static const u8 sUnknown_80E5DB8[] = _("you last saved. "); +ALIGNED(4) static const u8 sUnknown_80E5DCC[] = _("Resume your adventure from where"); + +static const u8 sUnknown_80E5E08[]; +static const u8 sUnknown_80E5E34[]; +static const MenuItem sUnknown_80E5DF0[] = +{ + {sUnknown_80E5E34, 0xFFDE}, + {sUnknown_80E5E08, 0xFFDE}, + {0, 0xFFDD} +}; +ALIGNED(4) static const u8 sUnknown_80E5E08[] = _("{COLOR_1 RED}Beware{END_COLOR_TEXT_1}! This will delete it forever!"); +ALIGNED(4) static const u8 sUnknown_80E5E34[] = _("This will delete your saved game data."); + +static const u8 sUnknown_80E5E74[]; +static const u8 sUnknown_80E5EA0[]; +static const MenuItem sUnknown_80E5E5C[] = +{ + {sUnknown_80E5EA0, 0xFFDE}, + {sUnknown_80E5E74, 0xFFDE}, + {0, 0xFFDD} +}; +ALIGNED(4) static const u8 sUnknown_80E5E74[] = _("passwords{COMMA} friends may rescue each other."); +ALIGNED(4) static const u8 sUnknown_80E5EA0[] = _("Using a Game Link cable or"); + +static const u8 sUnknown_80E5ED4[]; +static const u8 sUnknown_80E5EF8[]; +static const MenuItem sUnknown_80E5EBC[] = +{ + {sUnknown_80E5EF8, 0xFFDE}, + {sUnknown_80E5ED4, 0xFFDE}, + {0, 0xFFDD} +}; +ALIGNED(4) static const u8 sUnknown_80E5ED4[] = _("trade stored items with a friend."); +ALIGNED(4) static const u8 sUnknown_80E5EF8[] = _("Using a Game Link cable{COMMA} you can"); + +static const u8 sUnknown_80E5F34[]; +static const u8 sUnknown_80E5F58[]; +static const MenuItem sUnknown_80E5F1C[] = +{ + {sUnknown_80E5F58, 0xFFDE}, + {sUnknown_80E5F34, 0xFFDE}, + {0, 0xFFDD} +}; +ALIGNED(4) static const u8 sUnknown_80E5F34[] = _("You can give up waiting for rescue."); +ALIGNED(4) static const u8 sUnknown_80E5F58[] = _("You are awaiting rescue by a friend."); + +static const u8 sUnknown_80E5F98[]; +static const u8 sUnknown_80E5FB0[]; +static const MenuItem sUnknown_80E5F80[] = +{ + {sUnknown_80E5FB0, 0xFFDE}, + {sUnknown_80E5F98, 0xFFDE}, + {0, 0xFFDD} +}; +ALIGNED(4) static const u8 sUnknown_80E5F98[] = _("receive Wonder Mail."); +ALIGNED(4) static const u8 sUnknown_80E5FB0[] = _("Using passwords{COMMA} you can"); + +static const u8 sUnknown_80E5FE4[]; +static const u8 sUnknown_80E6008[]; +static const MenuItem sUnknown_80E5FCC[] = +{ + {sUnknown_80E6008, 0xFFDE}, + {sUnknown_80E5FE4, 0xFFDE}, + {NULL, 0xFFDD} +}; +ALIGNED(4) static const u8 sUnknown_80E5FE4[] = _("receive teams from your friends."); +ALIGNED(4) static const u8 sUnknown_80E6008[] = _("Using the Dual Slot function{COMMA} you can"); + +static const u8 sUnknown_80E6048[]; +static const u8 sUnknown_80E6070[]; +static const MenuItem sUnknown_80E6030[] = +{ + {sUnknown_80E6070, 0xFFDE}, + {sUnknown_80E6048, 0xFFDE}, + {NULL, 0xFFDD} +}; +ALIGNED(4) static const u8 sUnknown_80E6048[] = _("go on an adventure to unknown worlds."); +ALIGNED(4) static const u8 sUnknown_80E6070[] = _("Using wireless communication{COMMA} you can"); \ No newline at end of file diff --git a/src/debug_menu1.c b/src/debug_menu1.c index 3014d8b7a..d9912ba25 100644 --- a/src/debug_menu1.c +++ b/src/debug_menu1.c @@ -1,9 +1,10 @@ #include "global.h" #include "code_8097670.h" #include "constants/friend_area.h" +#include "constants/main_menu.h" #include "debug_menu1.h" #include "friend_area.h" -#include "main_menu.h" +#include "main_menu1.h" #include "memory.h" #include "menu_input.h" #include "pokemon.h" @@ -138,7 +139,7 @@ u32 UpdateDebugMenu(void) void SetDebugMenuItems(void) { - SetMenuItems(sDebugMenu->unk0, sDebugMenu->unk140, 0, &sUnknown_80E7D58, sDebugMenuItems, 1, 13, 0); + SetMenuItems(sDebugMenu->unk0, sDebugMenu->unk140, 0, &sUnknown_80E7D58, sDebugMenuItems, TRUE, 13, 0); sub_8035CF4(sDebugMenu->unk0, 0, 1); } diff --git a/src/friend_rescue.c b/src/friend_rescue.c index 8ee6bf724..73f21e415 100644 --- a/src/friend_rescue.c +++ b/src/friend_rescue.c @@ -11,7 +11,7 @@ #include "cpu.h" #include "friend_rescue.h" #include "items.h" -#include "main_menu.h" +#include "main_menu1.h" #include "memory.h" #include "menu_input.h" #include "other_menus2.h" @@ -269,7 +269,6 @@ extern void sub_8031E00(void); extern u8 sub_8024108(u32); extern void sub_802452C(void); extern u32 sub_80244E4(void); -extern void sub_8035D1C(void); extern u32 sub_8039068(u32, u8 *passwordBuffer, unkStruct_203B480 *r0); extern void sub_803084C(void); @@ -889,7 +888,7 @@ void sub_8032828(void) break; case 0x27: sub_8006518(gUnknown_203B33C->unk35C); - SetMenuItems(gUnknown_203B33C->unk21C, gUnknown_203B33C->unk35C, 3, &gUnknown_80E2334, &gUnknown_80E234C, 1, 0, 0); + SetMenuItems(gUnknown_203B33C->unk21C, gUnknown_203B33C->unk35C, 3, &gUnknown_80E2334, &gUnknown_80E234C, TRUE, 0, 0); sub_8023DA4(); sub_8035CF4(gUnknown_203B33C->unk21C, 3, 1); break; @@ -1052,7 +1051,7 @@ void sub_8032828(void) break; case 0x5D: sub_8006518(gUnknown_203B33C->unk35C); - SetMenuItems(gUnknown_203B33C->unk21C, gUnknown_203B33C->unk35C, 3, &gUnknown_80E231C, &gUnknown_80E2408, 1, 0, 0); + SetMenuItems(gUnknown_203B33C->unk21C, gUnknown_203B33C->unk35C, 3, &gUnknown_80E231C, &gUnknown_80E2408, TRUE, 0, 0); sub_803092C(); sub_8035CF4(gUnknown_203B33C->unk21C, 3, 1); break; @@ -1068,7 +1067,7 @@ void sub_8032828(void) break; case 0x60: sub_8006518(gUnknown_203B33C->unk35C); - SetMenuItems(gUnknown_203B33C->unk21C, gUnknown_203B33C->unk35C, 3, &gUnknown_80E23F0, &gUnknown_80E2408, 1, 0, 0); + SetMenuItems(gUnknown_203B33C->unk21C, gUnknown_203B33C->unk35C, 3, &gUnknown_80E23F0, &gUnknown_80E2408, TRUE, 0, 0); sub_801CCD8(); sub_8035CF4(gUnknown_203B33C->unk21C, 3, 1); break; @@ -1231,7 +1230,7 @@ void sub_8032828(void) case 0x1E: case 0x33: sub_8006518(gUnknown_203B33C->unk35C); - SetMenuItems(gUnknown_203B33C->unk21C, gUnknown_203B33C->unk35C, 3, &gUnknown_80E231C, &gUnknown_80E234C, 1, 0, 0); + SetMenuItems(gUnknown_203B33C->unk21C, gUnknown_203B33C->unk35C, 3, &gUnknown_80E231C, &gUnknown_80E234C, TRUE, 0, 0); sub_803092C(); sub_8035CF4(gUnknown_203B33C->unk21C, 3, 1); break; diff --git a/src/game_options.c b/src/game_options.c index f73d4b30c..81ee10465 100644 --- a/src/game_options.c +++ b/src/game_options.c @@ -19,7 +19,6 @@ extern struct WindowBG gWindowBGColors; EWRAM_DATA_2 GameOptions *gGameOptionsRef = {0}; EWRAM_DATA GameOptions gGameOptions = {0}; -extern void SetWindowBGColor(void); void LoadGameOptions(void) { diff --git a/src/load_screen.c b/src/load_screen.c index 9cec7ca26..4a7700fe7 100644 --- a/src/load_screen.c +++ b/src/load_screen.c @@ -3,11 +3,12 @@ #include "code_800D090.h" #include "code_8094F88.h" #include "code_8097670.h" +#include "constants/main_menu.h" #include "constants/wonder_mail.h" #include "event_flag.h" #include "file_system.h" #include "input.h" -#include "main_menu.h" +#include "main_menu1.h" #include "memory.h" #include "menu.h" #include "menu_input.h" @@ -164,25 +165,25 @@ void CreateLoadScreen(u32 currMenu) } ResetUnusedInputStruct(); sub_800641C(gLoadScreen->unk144, TRUE, TRUE); - SetMenuItems(gLoadScreen->unk4,gLoadScreen->unk144,0,&gUnknown_80E7610,gUnknown_203B378,0,6,0); + SetMenuItems(gLoadScreen->unk4,gLoadScreen->unk144,0,&gUnknown_80E7610,gUnknown_203B378,FALSE,6,0); switch(gLoadScreen->currMenu){ case MENU_CONTINUE: if (IsQuickSave()) - SetMenuItems(gLoadScreen->unk4,gLoadScreen->unk144,1,&gUnknown_80E762C,gResumeQuicksaveMenuItems,0,6,0); + SetMenuItems(gLoadScreen->unk4,gLoadScreen->unk144,1,&gUnknown_80E762C,gResumeQuicksaveMenuItems,FALSE,6,0); else - SetMenuItems(gLoadScreen->unk4,gLoadScreen->unk144,1,&gUnknown_80E762C,gResumeAdventureMenuItems,0,6,0); + SetMenuItems(gLoadScreen->unk4,gLoadScreen->unk144,1,&gUnknown_80E762C,gResumeAdventureMenuItems,FALSE,6,0); break; case MENU_AWAITING_RESCUE: - SetMenuItems(gLoadScreen->unk4,gLoadScreen->unk144,1,&gUnknown_80E762C,gQuitWaitingRescueMenuItems,0,6,0); + SetMenuItems(gLoadScreen->unk4,gLoadScreen->unk144,1,&gUnknown_80E762C,gQuitWaitingRescueMenuItems,FALSE,6,0); break; case MENU_DELETE_SAVE_PROMPT: - SetMenuItems(gLoadScreen->unk4,gLoadScreen->unk144,1,&gUnknown_80E762C,gDeleteSavePromptMenuItems,0,6,0); + SetMenuItems(gLoadScreen->unk4,gLoadScreen->unk144,1,&gUnknown_80E762C,gDeleteSavePromptMenuItems,FALSE,6,0); break; case MENU_DELETE_SAVE_CONFIRM: - SetMenuItems(gLoadScreen->unk4,gLoadScreen->unk144,1,&gUnknown_80E762C, gDeleteSaveConfirmMenuItems,0,6,0); + SetMenuItems(gLoadScreen->unk4,gLoadScreen->unk144,1,&gUnknown_80E762C, gDeleteSaveConfirmMenuItems,FALSE,6,0); break; } - SetMenuItems(gLoadScreen->unk4,gLoadScreen->unk144,2,&gUnknown_80E7784,gLoadScreenYesNoMenu,1,2,0); + SetMenuItems(gLoadScreen->unk4,gLoadScreen->unk144,2,&gUnknown_80E7784,gLoadScreenYesNoMenu,TRUE,2,0); sub_8035CF4(gLoadScreen->unk4,0,0); sub_8035CF4(gLoadScreen->unk4,1,0); sub_8035CF4(gLoadScreen->unk4,2,1); diff --git a/src/main_menu.c b/src/main_menu.c deleted file mode 100644 index deee9c0d8..000000000 --- a/src/main_menu.c +++ /dev/null @@ -1,1039 +0,0 @@ -#include "global.h" -#include "adventure_log_menu.h" -#include "code_803D0D8.h" -#include "code_8098BDC.h" -#include "constants/wonder_mail.h" -#include "debug_menu1.h" -#include "ds_menus.h" -#include "friend_rescue.h" -#include "load_screen.h" -#include "main_menu.h" -#include "memory.h" -#include "menu_input.h" -#include "other_menus1.h" -#include "pokemon.h" -#include "rescue_password_menu.h" -#include "save.h" -#include "text1.h" -#include "text2.h" -#include "trade_items_menu.h" - -// NOTE: 0x13 and 0x14 -// Communication Screen? -// Got Communication warning when I wrote them to the struct - -// NOTE: 0x29, 0x2A, 0x2B, 0x2C -// Triggers a save - -// NOTE: 0x2D -// Triggers a save and then goes to 0x13 (comms warning) - -// NOTE: 0x2E -// Deletes the Save - -// split 1/2 -static EWRAM_DATA_2 MainMenu *sMainMenu = {0}; -// split 2/2 -static EWRAM_DATA_2 unkStruct_203B34C *sUnknown_203B34C = {0}; -static EWRAM_DATA_2 u32 sUnknown_203B350 = {0}; -static EWRAM_DATA_2 u32 sUnknown_203B354 = {0}; - -extern void SetWindowBGColor(void); -extern void CreateWonderMailMenu(void); -extern void CreateSaveMenu(u32); -extern u32 UpdateMainMenu(void); -extern s32 UpdateWonderMailMenu(void); -extern s32 sub_80383D4(void); -extern s32 UpdateSaveMenu(void); -extern void CleanWonderMailMenu(void); -extern void sub_80383A8(void); -extern void CleanSaveMenu(void); - -void CleanMainMenu(void); -void DrawMainMenu(void); -s32 sub_8035DB4(u32); -void sub_803623C(void); -bool8 SetMainMenuText(); -void SetMainMenuItems(); - -static const u8 sUnknown_80E5CE4[]; -static const u8 sUnknown_80E5CE8[]; -static const u8 sUnknown_80E5D24[]; -static const u8 sUnknown_80E5D60[]; -static const u8 sUnknown_80E5D88[]; -static const u8 sUnknown_80E5DB8[]; -static const u8 sUnknown_80E5DCC[]; -static const u8 sUnknown_80E5E08[]; -static const u8 sUnknown_80E5E34[]; -static const u8 sUnknown_80E5EA0[]; -static const u8 sUnknown_80E5E74[]; -static const u8 sUnknown_80E5EF8[]; -static const u8 sUnknown_80E5ED4[]; -static const u8 sUnknown_80E5F58[]; -static const u8 sUnknown_80E5F34[]; -static const u8 sUnknown_80E5FB0[]; -static const u8 sUnknown_80E5F98[]; -static const u8 sUnknown_80E5FE4[]; -static const u8 sUnknown_80E6008[]; - -// split 1/2 -static const u8 sFillllllllllllllllllllllllllllll[] = "pksdir0"; - -const UnkTextStruct2 gUnknown_80E59A8 = { - 0x00, 0x00, 0x00, 0x00, - 0x03, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - NULL -}; - -// split 2/2 -static const u8 sFill[] = "pksdir0"; - -const UnkTextStruct2 gUnknown_80E59C8 = { - 0x00, 0x00, 0x00, 0x00, - 0x03, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - NULL -}; - -const UnkTextStruct2 gUnknown_80E59E0 = { - 0x00, 0x00, 0x00, 0x00, - 0x03, - 0x02, 0x02, - 0x0A, 0x03, - 0x03, 0x00, - NULL -}; - -const MenuItem gUnknown_80E59F8[] = -{ - {"New Game", MENU_NEW_GAME}, - {"Adventure Log", MENU_ADVENTURE_LOG}, - {NULL, 0xffdd}, -}; - -const UnkTextStruct2 gUnknown_80E5A29 = { - 0x00, 0x00, 0x00, 0x00, - 0x03, - 0x02, 0x02, - 0x0A, 0x02, - 0x02, 0x00, - NULL -}; - -const MenuItem gUnknown_80E5A44[] = -{ - {"Wonder Mail", MENU_WONDER_MAIL}, - {NULL, 0xffdd}, -}; - -const UnkTextStruct2 gUnknown_80E5A60 = { - 0x00, 0x00, 0x00, 0x00, - 0x03, - 0x02, 0x02, - 0x0A, 0x08, - 0x08, 0x00, - NULL -}; - -const UnkTextStruct2 gUnknown_80E5A78 = { - 0x00, 0x00, 0x00, 0x00, - 0x03, - 0x02, 0x02, - 0x0B, 0x09, - 0x09, 0x00, - NULL -}; - -const MenuItem gUnknown_80E5A90[] = -{ - {"Continue", MENU_CONTINUE}, - {"Delete Save Data", MENU_DELETE_SAVE_PROMPT}, - {"Adventure Log", MENU_ADVENTURE_LOG}, - {"Friend Rescue", MENU_FRIEND_RESCUE}, - {"Trade Items", MENU_TRADE_ITEMS}, - {NULL, 0xffdd}, -}; - -const MenuItem gUnknown_80E5AFC[] = -{ - {"Continue", MENU_CONTINUE}, - {"Delete Save Data", MENU_DELETE_SAVE_PROMPT}, - {"Adventure Log", MENU_ADVENTURE_LOG}, - {"Friend Rescue", MENU_FRIEND_RESCUE}, - {"Trade Items", MENU_TRADE_ITEMS}, - {"Wonder Mail", MENU_WONDER_MAIL}, - {NULL, 0xffdd}, -}; - -const UnkTextStruct2 gUnknown_80E5B34 = { - 0x00, 0x00, 0x00, 0x00, - 0x03, - 0x02, 0x02, - 0x0A, 0x08, - 0x08, 0x00, - NULL -}; - -const MenuItem gUnknown_80E5B4C[] = -{ - {"Awaiting Rescue", MENU_AWAITING_RESCUE}, - {"Delete Save Data", MENU_DELETE_SAVE_PROMPT}, - {"Adventure Log", MENU_ADVENTURE_LOG}, - {"Friend Rescue", MENU_FRIEND_RESCUE}, - {"Trade Items", MENU_TRADE_ITEMS}, - {NULL, 0xffdd}, -}; - -const MenuItem gUnknown_80E5B8C[] = -{ - {"Awaiting Rescue", MENU_AWAITING_RESCUE}, - {"Delete Save Data", MENU_DELETE_SAVE_PROMPT}, - {"Adventure Log", MENU_ADVENTURE_LOG}, - {"Friend Rescue", MENU_FRIEND_RESCUE}, - {"Trade Items", MENU_TRADE_ITEMS}, - {"Wonder Mail", MENU_WONDER_MAIL}, - {NULL, 0xffdd}, -}; - -const UnkTextStruct2 gUnknown_80E5BC4 = { - 0x00, 0x00, 0x00, 0x00, - 0x03, - 0x02, 0x02, - 0x0A, 0x08, - 0x08, 0x00, - NULL -}; - -const MenuItem gUnknown_80E5BDC[] = -{ - {"Revive Team", MENU_CONTINUE}, - {"Delete Save Data", MENU_DELETE_SAVE_PROMPT}, - {"Adventure Log", MENU_ADVENTURE_LOG}, - {"Friend Rescue", MENU_FRIEND_RESCUE}, - {"Trade Items", MENU_TRADE_ITEMS}, - {NULL, 0xffdd}, -}; - -const MenuItem gUnknown_80E5C18[] = -{ - {"Revive Team", MENU_CONTINUE}, - {"Delete Save Data", MENU_DELETE_SAVE_PROMPT}, - {"Adventure Log", MENU_ADVENTURE_LOG}, - {"Friend Rescue", MENU_FRIEND_RESCUE}, - {"Trade Items", MENU_TRADE_ITEMS}, - {"Wonder Mail", MENU_WONDER_MAIL}, - {NULL, 0xffdd}, -}; - -const UnkTextStruct2 gUnknown_80E5C50 = { - 0x00, 0x00, 0x00, 0x00, - 0x03, - 0x02, 0x02, - 0x0A, 0x03, - 0x03, 0x00, - NULL -}; - -const MenuItem gUnknown_80E5C68[] = -{ - {"Send Items", MENU_SEND_ITEMS}, - {"Receive Items", MENU_RECEIVE_ITEMS}, - {NULL, 0xffdd}, -}; - -const MenuItem gUnknown_80E5C9C[] = -{ - {"Send Items", -1}, - {"Receive Items", MENU_RECEIVE_ITEMS}, - {NULL, 0xffdd}, -}; - -const UnkTextStruct2 gUnknown_80E5CB4 = { - 0x00, 0x00, 0x00, 0x00, - 0x03, - 0x02, 0x0F, - 0x1A, 0x03, - 0x03, 0x00, - NULL -}; - -const MenuItem gUnknown_80E5CCC[] = -{ - {sUnknown_80E5CE8, 0xffde}, - {sUnknown_80E5CE4, 0xffde}, - {NULL, 0xffdd}, -}; - -static const u8 sUnknown_80E5CE4[] = " "; -static const u8 sUnknown_80E5CE8[] = "Start an entirely new adventure."; - -const MenuItem gUnknown_80E5D0C[] = -{ - {sUnknown_80E5D24, 0xffde}, - {sUnknown_80E5CE4, 0xffde}, - {NULL, 0xffdd}, -}; - -static const u8 sUnknown_80E5D24[] = "Check your career as an adventurer."; - -const MenuItem gUnknown_80E5D48[] = -{ - {sUnknown_80E5D88, 0xffde}, - {sUnknown_80E5D60, 0xffde}, - {NULL, 0xffdd}, -}; - -static const u8 sUnknown_80E5D60[] = _("It won{APOSTROPHE}t be in the release version."); -static const u8 sUnknown_80E5D88[] = "This is the Debug Mode."; - -const MenuItem gUnknown_80E5DA0[] = -{ - {sUnknown_80E5DCC, 0xffde}, - {sUnknown_80E5DB8, 0xffde}, - {NULL, 0xffdd}, -}; - -static const u8 sUnknown_80E5DB8[] = "you last saved. "; -static const u8 sUnknown_80E5DCC[] = "Resume your adventure from where"; - -const MenuItem gUnknown_80E5DF0[] = { - {sUnknown_80E5E34, 0xFFDE}, - {sUnknown_80E5E08, 0xFFDE}, - {0, 0xFFDD} -}; - -static const u8 sUnknown_80E5E08[] = _("{COLOR_1 RED}Beware{END_COLOR_TEXT_1}! This will delete it forever!"); -static const u8 sUnknown_80E5E34[] = "This will delete your saved game data."; - -const MenuItem gUnknown_80E5E5C[] = { - {sUnknown_80E5EA0, 0xFFDE}, - {sUnknown_80E5E74, 0xFFDE}, - {0, 0xFFDD} -}; - -ALIGNED(4) static const u8 sUnknown_80E5E74[] = _("passwords{COMMA} friends may rescue each other."); -static const u8 sUnknown_80E5EA0[] = "Using a Game Link cable or"; - -const MenuItem gUnknown_80E5EBC[] = { - {sUnknown_80E5EF8, 0xFFDE}, - {sUnknown_80E5ED4, 0xFFDE}, - {0, 0xFFDD} -}; - -static const u8 sUnknown_80E5ED4[] = "trade stored items with a friend."; -ALIGNED(4) static const u8 sUnknown_80E5EF8[] = _("Using a Game Link cable{COMMA} you can"); - -const MenuItem gUnknown_80E5F1C[] = { - {sUnknown_80E5F58, 0xFFDE}, - {sUnknown_80E5F34, 0xFFDE}, - {0, 0xFFDD} -}; - -static const u8 sUnknown_80E5F34[] = "You can give up waiting for rescue."; -static const u8 sUnknown_80E5F58[] = "You are awaiting rescue by a friend."; - -const MenuItem gUnknown_80E5F80[] = { - {sUnknown_80E5FB0, 0xFFDE}, - {sUnknown_80E5F98, 0xFFDE}, - {0, 0xFFDD} -}; - -static const u8 sUnknown_80E5F98[] = "receive Wonder Mail."; -ALIGNED(4) static const u8 sUnknown_80E5FB0[] = _("Using passwords{COMMA} you can"); - -const MenuItem gUnknown_80E5FCC[] = { - {sUnknown_80E6008, 0xFFDE}, - {sUnknown_80E5FE4, 0xFFDE}, - {NULL, 0xFFDD} -}; - -static const u8 sUnknown_80E5FE4[] = "receive teams from your friends."; -ALIGNED(4) static const u8 sUnknown_80E6008[] = _("Using the Dual Slot function{COMMA} you can"); - -static const u8 sUnknown_80E6048[]; -static const u8 sUnknown_80E6070[]; - -const MenuItem gUnknown_80E6030[] = { - {sUnknown_80E6070, 0xFFDE}, - {sUnknown_80E6048, 0xFFDE}, - {NULL, 0xFFDD} -}; - -static const u8 sUnknown_80E6048[] = "go on an adventure to unknown worlds."; -ALIGNED(4) static const u8 sUnknown_80E6070[] = _("Using wireless communication{COMMA} you can"); - - - -// SPLIT 1/2 - - - - -void InitMainMenu(void) -{ - if (sMainMenu == NULL) { - sMainMenu = MemoryAlloc(sizeof(MainMenu),8); - MemoryFill8((u8 *)sMainMenu, 0, sizeof(MainMenu)); - } - sMainMenu->currMenu = MENU_NO_SCREEN_CHANGE; - sMainMenu->nextMenu = MENU_MAIN_SCREEN; - sMainMenu->lastMenu = MENU_MAIN_SCREEN; - sMainMenu->unk38 = -1; - sMainMenu->unk3C = -1; - sMainMenu->sub.unk2E = 0; - sMainMenu->sub.unk2C = 1; - sMainMenu->sub.unk2D = 0; - sub_8035DA0(); - sMainMenu->unk3A = 0; -} - -void DeleteMainMenu(void) -{ - if(sMainMenu){ - MemoryFree(sMainMenu); - sMainMenu = NULL; - } -} - -void SetUpMenu(void) -{ - if (sMainMenu->currMenu != sMainMenu->nextMenu) { - switch(sMainMenu->nextMenu) { - case MENU_MAIN_SCREEN: - SetWindowBGColor(); - sub_8099690(0); - DrawMainMenu(); - break; - case MENU_AWAITING_RESCUE: - case MENU_CONTINUE: - case MENU_DELETE_SAVE_PROMPT: - case MENU_DELETE_SAVE_CONFIRM: - CreateLoadScreen(sMainMenu->nextMenu); - break; - case MENU_TRADE_ITEMS: - CreateTradeItemsMenu(); - break; - case MENU_COMMUNICATION_1: - case MENU_COMMUNICATION_2: - sub_8036FDC(sub_8035DB4(sMainMenu->nextMenu)); - break; - case MENU_FRIEND_RESCUE: - CreateFriendRescueMenu(); - break; - case MENU_WONDER_MAIL: - CreateWonderMailMenu(); - break; - case MENU_DUAL_SLOT: - CreateDualSlotMenu(); - break; - case MENU_WIRELESS_COMMS: - CreateWirelessCommsMenu(); - break; - case MENU_DISPLAY_RESCUE_PASSWORD: - case MENU_RESCUE_PASSWORD_ENTRY: - CreateRescuePasswordMenu(sMainMenu->nextMenu); - break; - case MENU_ADVENTURE_LOG: - CreateAdventureLogMenu(); - break; - case 0x29: - case 0x2a: - case 0x2b: - case 0x2c: - case 0x2d: - case MENU_DELETE_SAVE: - CreateSaveMenu(sMainMenu->nextMenu); - break; - case MENU_DEBUG: - CreateDebugMenu(); - break; - } - sMainMenu->currMenu = sMainMenu->nextMenu; - } -} - -s32 UpdateMenu(void) -{ - s32 nextMenu1; - s32 nextMenu; - - nextMenu = MENU_NO_SCREEN_CHANGE; - switch(sMainMenu->nextMenu) { - case MENU_MAIN_SCREEN: - nextMenu = UpdateMainMenu(); - break; - case MENU_AWAITING_RESCUE: - case MENU_CONTINUE: - case MENU_DELETE_SAVE_PROMPT: - case MENU_DELETE_SAVE_CONFIRM: - nextMenu = UpdateLoadScreenMenu(); - break; - case MENU_TRADE_ITEMS: - nextMenu1 = UpdateTradeItemsMenu(); - nextMenu = MENU_MAIN_SCREEN; - if (nextMenu1 != 3) { - nextMenu = MENU_NO_SCREEN_CHANGE; - } - break; - case MENU_FRIEND_RESCUE: - nextMenu1 = UpdateFriendRescueMenu(); - nextMenu = MENU_MAIN_SCREEN; - if (nextMenu1 != 3) { - nextMenu = MENU_NO_SCREEN_CHANGE; - } - break; - case MENU_WONDER_MAIL: - nextMenu1 = UpdateWonderMailMenu(); - nextMenu = MENU_MAIN_SCREEN; - if (nextMenu1 != 3) { - nextMenu = MENU_NO_SCREEN_CHANGE; - } - break; - case MENU_DUAL_SLOT: - nextMenu1 = UpdateDualSlotMenu(); - nextMenu = MENU_MAIN_SCREEN; - if (nextMenu1 != 3) { - nextMenu = MENU_NO_SCREEN_CHANGE; - } - break; - case MENU_WIRELESS_COMMS: - nextMenu1 = UpdateWirelessCommsMenu(); - nextMenu = 5; - if ((nextMenu1 != 3) && (nextMenu = MENU_NO_SCREEN_CHANGE, nextMenu1 == 2)) { - nextMenu = MENU_MAIN_SCREEN; - } - break; - case MENU_DISPLAY_RESCUE_PASSWORD: - case MENU_RESCUE_PASSWORD_ENTRY: - nextMenu = UpdateRescuePasswordMenu(); - break; - case MENU_ADVENTURE_LOG: - nextMenu = UpdateAdventureLogMenu(); - break; - case 0x24: - case 0x25: - case 0x26: - case 0x27: - case 0x28: - nextMenu = sub_80383D4(); - break; - case 0x29: - case 0x2a: - case 0x2b: - case 0x2c: - case 0x2d: - case MENU_DELETE_SAVE: - nextMenu = UpdateSaveMenu(); - break; - case MENU_DEBUG: - nextMenu = UpdateDebugMenu(); - break; - } - if (nextMenu != MENU_NO_SCREEN_CHANGE) { - sMainMenu->nextMenu = nextMenu; - } - return nextMenu; -} - -void CleanUpMenu(void) -{ - if (sMainMenu->lastMenu != sMainMenu->nextMenu) { - switch(sMainMenu->lastMenu) { - case MENU_MAIN_SCREEN: - CleanMainMenu(); - break; - case MENU_AWAITING_RESCUE: - case MENU_CONTINUE: - case MENU_DELETE_SAVE_PROMPT: - case MENU_DELETE_SAVE_CONFIRM: - CleanLoadScreen(); - break; - case MENU_TRADE_ITEMS: - CleanTradeItemsMenu(); - break; - case MENU_COMMUNICATION_1: - case MENU_COMMUNICATION_2: - sub_80370D4(); - break; - case MENU_FRIEND_RESCUE: - CleanFriendRescueMenu(); - break; - case MENU_WONDER_MAIL: - CleanWonderMailMenu(); - break; - case MENU_DUAL_SLOT: - CleanDualSlotMenu(); - break; - case MENU_WIRELESS_COMMS: - CleanWirelessCommsMenu(); - break; - case MENU_DISPLAY_RESCUE_PASSWORD: - case MENU_RESCUE_PASSWORD_ENTRY: - CleanRescuePasswordMenu(); - break; - case MENU_ADVENTURE_LOG: - CleanAdventureLogMenu(); - break; - case 0x24: - case 0x25: - case 0x26: - case 0x27: - case 0x28: - sub_80383A8(); - break; - case 0x29: - case 0x2a: - case 0x2b: - case 0x2c: - case 0x2d: - case MENU_DELETE_SAVE: - CleanSaveMenu(); - break; - case MENU_DEBUG: - DeleteDebugMenu(); - break; - } - sMainMenu->lastMenu = sMainMenu->nextMenu; - } -} - -UNUSED static void sub_8035C00(MainMenuSub *param) -{ - sMainMenu->sub = *param; -} - -UNUSED static MainMenuSub *sub_8035C10(void) -{ - return &sMainMenu->sub; -} - -void sub_8035C1C(void) -{ - sMainMenu->sub.unk2E = 0; - sMainMenu->sub.unk2C = 1; - sMainMenu->sub.unk2D = 0; -} - -void SetMenuItems(MenuStruct *param_1, UnkTextStruct2 *unkData, s32 index, - const UnkTextStruct2 *param_4, const MenuItem *menuItems, u8 param_6, u32 menuAction, u32 unused_8) -{ - unkData[index] = *param_4; - ResetUnusedInputStruct(); - sub_800641C(unkData, TRUE, TRUE); - if (param_6 != 0) { - sub_8012D60(¶m_1[index],menuItems,0,0,menuAction,index); - } - else { - sub_8012E04(¶m_1[index],menuItems,0,0,0,index); - } - param_1[index].unk4C = TRUE; -} - -void sub_8035CC0(UnkTextStruct2 *dataArray, u32 index) -{ - sub_8006518(dataArray); - dataArray[index] = gUnknown_80E59A8; - ResetUnusedInputStruct(); - sub_800641C(dataArray, TRUE, TRUE); -} - -void sub_8035CF4(MenuStruct *Menu, u32 index, bool8 r2) -{ - Menu[index].unk4C = r2; - Menu[index].unk4D = 1; - Menu[index].menuAction = -1; - sub_8012EBC(&Menu[index]); -} - -void sub_8035D1C(void) -{ - sMainMenu->unk38 = -1; -} - -UNUSED static void sub_8035D30(s32 r0) -{ - sMainMenu->unk38 = r0; -} - -s16 sub_8035D3C(void) -{ - return sMainMenu->unk38; -} - -MainMenu *GetMainMenu(void) -{ - return sMainMenu; -} - -UNUSED static void sub_8035D58(void) -{ - sMainMenu->unk3C = -1; -} - -UNUSED static void sub_8035D68(s32 r0) -{ - sMainMenu->unk3C = r0; -} - -s32 sub_8035D74(void) -{ - return sMainMenu->unk3C; -} - -UNUSED static void sub_8035D80(unkStruct_8035D94 *item) -{ -#ifndef NONMATCHING - register u32 numItem asm("r1"); -#else - u32 numItem; -#endif - - u32 itemIndex; - MainMenu *preload; - - preload = sMainMenu; - numItem = item->numItems; - itemIndex = item->itemIndex.itemIndex_u32; - preload->unk30.itemIndex.itemIndex_u32 = itemIndex; - preload->unk30.numItems = numItem; -} - -unkStruct_8035D94 *sub_8035D94(void) -{ - return &sMainMenu->unk30; -} - -void sub_8035DA0(void) -{ - sMainMenu->unk30.itemIndex.itemIndex_u8 = ITEM_NOTHING; - sMainMenu->unk30.numItems = 0; -} - -s32 sub_8035DB4(u32 currMenu) -{ - s32 returnVar = 8; - switch(currMenu) - { - case MENU_COMMUNICATION_1: - returnVar = 0; - break; - case MENU_COMMUNICATION_2: - returnVar = 1; - break; - case 0x15: - returnVar = 2; - break; - case 0x16: - returnVar = 3; - break; - case 0x17: - returnVar = 4; - break; - case 0x18: - returnVar = 5; - break; - case 0x19: - returnVar = 6; - break; - case 0x1a: - returnVar = 7; - break; - } - return returnVar; -} - - - - - - -// SPLIT 2/2 - - - - - - -void DrawMainMenu(void) -{ - s32 index; - - if(sUnknown_203B34C == NULL) - { - sUnknown_203B34C = MemoryAlloc(sizeof(unkStruct_203B34C), 8); - MemoryFill8((u8 *)sUnknown_203B34C, 0, sizeof(unkStruct_203B34C)); - } - - for(index = 0; index < 4; index++) - { - sUnknown_203B34C->unk144[index] = gUnknown_80E59C8; - } - - ResetUnusedInputStruct(); - sub_800641C(sUnknown_203B34C->unk144, TRUE, TRUE); - SetMainMenuItems(); - sUnknown_203B34C->currMenuChoice = -1; - - if(SetMainMenuText()) - { - sub_8035CF4(sUnknown_203B34C->unk4,2,FALSE); - } - - sub_8035CF4(sUnknown_203B34C->unk4,0,TRUE); - sUnknown_203B34C->unk0 = 1; -} - -void CleanMainMenu(void) -{ - ResetUnusedInputStruct(); - sub_800641C(NULL, TRUE, TRUE); - if(sUnknown_203B34C != NULL) - { - MemoryFree(sUnknown_203B34C); - sUnknown_203B34C = NULL; - } -} - -u32 UpdateMainMenu(void) -{ - u32 nextMenu = MENU_NO_SCREEN_CHANGE; - switch(sUnknown_203B34C->unk0) - { - case 1: - sub_8012FD8(&sUnknown_203B34C->unk4[2]); - if(!sub_8012FD8(sUnknown_203B34C->unk4)) - sub_8013114(sUnknown_203B34C->unk4, &nextMenu); - - if(SetMainMenuText()) - { - sub_8035CF4(sUnknown_203B34C->unk4, 0, TRUE); - sub_8035CF4(sUnknown_203B34C->unk4, 2, FALSE); - } - switch(nextMenu) - { - case MENU_NO_SCREEN_CHANGE: - nextMenu = MENU_NO_SCREEN_CHANGE; - break; - case 0xffdd: - sUnknown_203B34C->unk0 = 1; - nextMenu = MENU_NO_SCREEN_CHANGE; - ResetUnusedInputStruct(); - sub_8035CF4(sUnknown_203B34C->unk4, 0, TRUE); - sub_8035CF4(sUnknown_203B34C->unk4, 2, FALSE); - break; - case MENU_TRADE_ITEMS: - sub_8035DA0(); - sUnknown_203B350 = nextMenu; - break; - case MENU_NEW_GAME: - case MENU_AWAITING_RESCUE: - case MENU_CONTINUE: - case MENU_DELETE_SAVE_PROMPT: - case MENU_DELETE_SAVE_CONFIRM: - case MENU_ADVENTURE_LOG: - case MENU_FRIEND_RESCUE: - case MENU_WONDER_MAIL: - case MENU_DUAL_SLOT: - case MENU_WIRELESS_COMMS: - case MENU_DEBUG: - sUnknown_203B350 = nextMenu; - break; - - } - break; - case 0xC: - if(!sub_8012FD8(&sUnknown_203B34C->unk4[1])) - sub_8013114(&sUnknown_203B34C->unk4[1], &nextMenu); - switch(nextMenu) - { - case 0xffdd: - sub_803623C(); - sUnknown_203B34C->unk0 = 1; - nextMenu = MENU_NO_SCREEN_CHANGE; - break; - case MENU_SEND_ITEMS: - sUnknown_203B354 = nextMenu; - nextMenu = MENU_TRADE_ITEMS; - break; - case MENU_RECEIVE_ITEMS: - sUnknown_203B354 = nextMenu; - nextMenu = MENU_COMMUNICATION_2; - break; - case MENU_NO_SCREEN_CHANGE: - nextMenu = MENU_NO_SCREEN_CHANGE; - break; - default: - break; - } - break; - default: - case 0xD: // forces the bls switch - break; - } - return nextMenu; -} - -bool8 SetMainMenuText(void) -{ - u32 menuChoice; - const MenuItem *preload; - - // Have to load the pointer before the index - preload = sUnknown_203B34C->unk4[0].menuItems; - menuChoice = preload[sUnknown_203B34C->unk4[0].input.menuIndex].menuAction; // chosen menu action? - if (sUnknown_203B34C->currMenuChoice == menuChoice) { - return FALSE; - } - - sUnknown_203B34C->currMenuChoice = menuChoice; - sub_8035CC0(sUnknown_203B34C->unk144,2); - sub_8035CC0(sUnknown_203B34C->unk144,3); - switch(menuChoice) { - case MENU_WIRELESS_COMMS: - // Using wireless communications, you can go on an adventure to unknown worlds. - SetMenuItems(sUnknown_203B34C->unk4,sUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E6030,0,0,0); - break; - case MENU_WONDER_MAIL: - // Using passwords, you can receive Wonder Mail - SetMenuItems(sUnknown_203B34C->unk4,sUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5F80,0,0,0); - break; - case MENU_AWAITING_RESCUE: - // You are awaiting resuce by a friend - // You can give up waiting for rescue - SetMenuItems(sUnknown_203B34C->unk4,sUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5F1C,0,0,0); - break; - case MENU_NEW_GAME: - // Start an entirely new adventure - SetMenuItems(sUnknown_203B34C->unk4,sUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5CCC,0,0,0); - break; - case MENU_CONTINUE: - // Resume your adventure from where you last saved - SetMenuItems(sUnknown_203B34C->unk4,sUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5DA0,0,0,0); - break; - case MENU_DELETE_SAVE_PROMPT: - // This will delete your saved game data. - // Beware! This will delete it forever - SetMenuItems(sUnknown_203B34C->unk4,sUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5DF0,0,0,0); - break; - case MENU_ADVENTURE_LOG: - // Check your career as an adventurer - SetMenuItems(sUnknown_203B34C->unk4,sUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5D0C,0,0,0); - break; - case MENU_FRIEND_RESCUE: - // Using a Game Link cable or passwords, friends may rescue each other - SetMenuItems(sUnknown_203B34C->unk4,sUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5E5C,0,0,0); - break; - case MENU_TRADE_ITEMS: - // Using a Game Link cable you can trade stored items with a friend - SetMenuItems(sUnknown_203B34C->unk4,sUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5EBC,0,0,0); - break; - case MENU_DUAL_SLOT: - // Using Dual Slot function, you can receive teams from your friends - SetMenuItems(sUnknown_203B34C->unk4,sUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5FCC,0,0,0); - break; - case MENU_DEBUG: - // This is the Debug Mode. - // It won't be in the release version - SetMenuItems(sUnknown_203B34C->unk4,sUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5D48,0,0,0); - break; - default: - break; - } - return TRUE; -} - -void sub_803623C(void) -{ - sub_8035CC0(sUnknown_203B34C->unk144,1); - SetMainMenuItems(); - sUnknown_203B34C->currMenuChoice = -1; - if (SetMainMenuText()) { - sub_8035CF4(sUnknown_203B34C->unk4,2,FALSE); - } - sub_8035CF4(sUnknown_203B34C->unk4,0,TRUE); -} - -void SetMainMenuItems(void) -{ - if (sub_8011C34() != -1) { - if (CountMailType(WONDER_MAIL_TYPE_SOS) == 0) { - if (CountMailType(WONDER_MAIL_TYPE_OKD) != 0) { - if (sub_803D0D8() != 0) { - // Revive Team - // Delete Save Data - // Adventure Log - // Friend Rescue - // Trade Items - // Wonder Mail - SetMenuItems(sUnknown_203B34C->unk4,sUnknown_203B34C->unk144,0,&gUnknown_80E5A78,gUnknown_80E5C18,1,sUnknown_203B350,1); - } - else { - // Revive Team - // Delete Save Data - // Adventure Log - // Friend Rescue - // Trade Items - SetMenuItems(sUnknown_203B34C->unk4,sUnknown_203B34C->unk144,0,&gUnknown_80E5BC4,gUnknown_80E5BDC,1,sUnknown_203B350,1); - } - } - else { - if (sub_803D0D8() != 0) { - // Continue - // Delete Save Data - // Adventure Log - // Friend Rescue - // Trade Items - // Wonder Mail - SetMenuItems(sUnknown_203B34C->unk4,sUnknown_203B34C->unk144,0,&gUnknown_80E5A78,gUnknown_80E5AFC,1,sUnknown_203B350,1); - } - else { - // Continue - // Delete Save Data - // Adventure Log - // Friend Rescue - // Trade Items - SetMenuItems(sUnknown_203B34C->unk4,sUnknown_203B34C->unk144,0,&gUnknown_80E5A60,gUnknown_80E5A90,1,sUnknown_203B350,1); - } - } - } - else { - if (sub_803D0D8() != 0) { - // Awaiting Rescue - // Delete Save Data - // Adventure Log - // Friend Rescue - // Trade Items - // Wonder Mail - SetMenuItems(sUnknown_203B34C->unk4,sUnknown_203B34C->unk144,0,&gUnknown_80E5A78,gUnknown_80E5B8C,1,sUnknown_203B350,1); - } - else { - // Awaiting Rescue - // Delete Save Data - // Adventure Log - // Friend Rescue - // Trade Items - SetMenuItems(sUnknown_203B34C->unk4,sUnknown_203B34C->unk144,0,&gUnknown_80E5B34,gUnknown_80E5B4C,1,sUnknown_203B350,1); - } - } - } - else - { - // New Game - // Adventure Log - SetMenuItems(sUnknown_203B34C->unk4,sUnknown_203B34C->unk144,0,&gUnknown_80E59E0,gUnknown_80E59F8,1,sUnknown_203B350,1); - } -} - -bool8 sub_80363E0(void) -{ - if(sUnknown_203B34C == NULL) - return FALSE; - if(sUnknown_203B34C->unk0 == 0xC) - return FALSE; - return TRUE; -} diff --git a/src/main_menu1.c b/src/main_menu1.c new file mode 100644 index 000000000..fb1d3364e --- /dev/null +++ b/src/main_menu1.c @@ -0,0 +1,418 @@ +#include "global.h" +#include "adventure_log_menu.h" +#include "code_8098BDC.h" +#include "constants/item.h" +#include "constants/main_menu.h" +#include "debug_menu1.h" +#include "ds_menus.h" +#include "friend_rescue.h" +#include "game_options.h" +#include "load_screen.h" +#include "main_menu1.h" +#include "main_menu2.h" +#include "memory.h" +#include "menu_input.h" +#include "other_menus1.h" +#include "rescue_password_menu.h" +#include "save_menu.h" +#include "text1.h" +#include "text2.h" +#include "trade_items_menu.h" +#include "unk_menu_203B360.h" +#include "wonder_mail_main_menu.h" + +// NOTE: 0x13 and 0x14 +// Communication Screen? +// Got Communication warning when I wrote them to the struct + +// NOTE: 0x29, 0x2A, 0x2B, 0x2C +// Triggers a save + +// NOTE: 0x2D +// Triggers a save and then goes to 0x13 (comms warning) + +// NOTE: 0x2E +// Deletes the Save + +static EWRAM_DATA_2 MainMenu1Work *sMainMenu = {0}; + +#include "data/main_menu1.h" + +static s32 sub_8035DB4(u32 currMenu); + +void InitMainMenu(void) +{ + if (sMainMenu == NULL) { + sMainMenu = MemoryAlloc(sizeof(MainMenu1Work), 8); + MemoryFill8((u8 *)sMainMenu, 0, sizeof(MainMenu1Work)); + } + + sMainMenu->currMenu = MENU_NO_SCREEN_CHANGE; + sMainMenu->nextMenu = MENU_MAIN_SCREEN; + sMainMenu->lastMenu = MENU_MAIN_SCREEN; + sMainMenu->unk38 = -1; + sMainMenu->unk3C = -1; + sMainMenu->sub.unk2E = 0; + sMainMenu->sub.unk2C = 1; + sMainMenu->sub.unk2D = 0; + sub_8035DA0(); + sMainMenu->unk3A = 0; +} + +void DeleteMainMenu(void) +{ + if (sMainMenu) { + MemoryFree(sMainMenu); + sMainMenu = NULL; + } +} + +void SetUpMenu(void) +{ + if (sMainMenu->currMenu == sMainMenu->nextMenu) + return; + + switch (sMainMenu->nextMenu) { + case MENU_MAIN_SCREEN: + SetWindowBGColor(); + sub_8099690(0); + DrawMainMenu(); + break; + case MENU_AWAITING_RESCUE: + case MENU_CONTINUE: + case MENU_DELETE_SAVE_PROMPT: + case MENU_DELETE_SAVE_CONFIRM: + CreateLoadScreen(sMainMenu->nextMenu); + break; + case MENU_TRADE_ITEMS: + CreateTradeItemsMenu(); + break; + case MENU_COMMUNICATION_1: + case MENU_COMMUNICATION_2: + sub_8036FDC(sub_8035DB4(sMainMenu->nextMenu)); + break; + case MENU_FRIEND_RESCUE: + CreateFriendRescueMenu(); + break; + case MENU_WONDER_MAIL: + CreateWonderMailMenu(); + break; + case MENU_DUAL_SLOT: + CreateDualSlotMenu(); + break; + case MENU_WIRELESS_COMMS: + CreateWirelessCommsMenu(); + break; + case MENU_DISPLAY_RESCUE_PASSWORD: + case MENU_RESCUE_PASSWORD_ENTRY: + CreateRescuePasswordMenu(sMainMenu->nextMenu); + break; + case MENU_ADVENTURE_LOG: + CreateAdventureLogMenu(); + break; + case 0x29: + case 0x2A: + case 0x2B: + case 0x2C: + case 0x2D: + case MENU_DELETE_SAVE: + CreateSaveMenu(sMainMenu->nextMenu); + break; + case MENU_DEBUG: + CreateDebugMenu(); + break; + } + + sMainMenu->currMenu = sMainMenu->nextMenu; +} + +s32 UpdateMenu(void) +{ + s32 nextMenu1; + s32 nextMenu; + + nextMenu = MENU_NO_SCREEN_CHANGE; + + switch (sMainMenu->nextMenu) { + case MENU_MAIN_SCREEN: + nextMenu = UpdateMainMenu(); + break; + case MENU_AWAITING_RESCUE: + case MENU_CONTINUE: + case MENU_DELETE_SAVE_PROMPT: + case MENU_DELETE_SAVE_CONFIRM: + nextMenu = UpdateLoadScreenMenu(); + break; + case MENU_TRADE_ITEMS: + nextMenu1 = UpdateTradeItemsMenu(); + nextMenu = MENU_MAIN_SCREEN; + if (nextMenu1 != 3) + nextMenu = MENU_NO_SCREEN_CHANGE; + break; + case MENU_FRIEND_RESCUE: + nextMenu1 = UpdateFriendRescueMenu(); + nextMenu = MENU_MAIN_SCREEN; + if (nextMenu1 != 3) + nextMenu = MENU_NO_SCREEN_CHANGE; + break; + case MENU_WONDER_MAIL: + nextMenu1 = UpdateWonderMailMenu(); + nextMenu = MENU_MAIN_SCREEN; + if (nextMenu1 != 3) + nextMenu = MENU_NO_SCREEN_CHANGE; + break; + case MENU_DUAL_SLOT: + nextMenu1 = UpdateDualSlotMenu(); + nextMenu = MENU_MAIN_SCREEN; + if (nextMenu1 != 3) + nextMenu = MENU_NO_SCREEN_CHANGE; + break; + case MENU_WIRELESS_COMMS: + nextMenu1 = UpdateWirelessCommsMenu(); + nextMenu = 5; + if (nextMenu1 != 3) { + nextMenu = MENU_NO_SCREEN_CHANGE; + if (nextMenu1 == 2) + nextMenu = MENU_MAIN_SCREEN; + } + break; + case MENU_DISPLAY_RESCUE_PASSWORD: + case MENU_RESCUE_PASSWORD_ENTRY: + nextMenu = UpdateRescuePasswordMenu(); + break; + case MENU_ADVENTURE_LOG: + nextMenu = UpdateAdventureLogMenu(); + break; + case 0x24: + case 0x25: + case 0x26: + case 0x27: + case 0x28: + nextMenu = sub_80383D4(); + break; + case 0x29: + case 0x2A: + case 0x2B: + case 0x2C: + case 0x2D: + case MENU_DELETE_SAVE: + nextMenu = UpdateSaveMenu(); + break; + case MENU_DEBUG: + nextMenu = UpdateDebugMenu(); + break; + } + + if (nextMenu != MENU_NO_SCREEN_CHANGE) + sMainMenu->nextMenu = nextMenu; + + return nextMenu; +} + +void CleanUpMenu(void) +{ + if (sMainMenu->lastMenu == sMainMenu->nextMenu) + return; + + switch (sMainMenu->lastMenu) { + case MENU_MAIN_SCREEN: + CleanMainMenu(); + break; + case MENU_AWAITING_RESCUE: + case MENU_CONTINUE: + case MENU_DELETE_SAVE_PROMPT: + case MENU_DELETE_SAVE_CONFIRM: + CleanLoadScreen(); + break; + case MENU_TRADE_ITEMS: + CleanTradeItemsMenu(); + break; + case MENU_COMMUNICATION_1: + case MENU_COMMUNICATION_2: + sub_80370D4(); + break; + case MENU_FRIEND_RESCUE: + CleanFriendRescueMenu(); + break; + case MENU_WONDER_MAIL: + CleanWonderMailMenu(); + break; + case MENU_DUAL_SLOT: + CleanDualSlotMenu(); + break; + case MENU_WIRELESS_COMMS: + CleanWirelessCommsMenu(); + break; + case MENU_DISPLAY_RESCUE_PASSWORD: + case MENU_RESCUE_PASSWORD_ENTRY: + CleanRescuePasswordMenu(); + break; + case MENU_ADVENTURE_LOG: + CleanAdventureLogMenu(); + break; + case 0x24: + case 0x25: + case 0x26: + case 0x27: + case 0x28: + sub_80383A8(); + break; + case 0x29: + case 0x2A: + case 0x2B: + case 0x2C: + case 0x2D: + case MENU_DELETE_SAVE: + CleanSaveMenu(); + break; + case MENU_DEBUG: + DeleteDebugMenu(); + break; + } + + sMainMenu->lastMenu = sMainMenu->nextMenu; +} + +UNUSED static void sub_8035C00(MainMenuSub *a0) +{ + sMainMenu->sub = *a0; +} + +UNUSED static MainMenuSub *sub_8035C10(void) +{ + return &sMainMenu->sub; +} + +void sub_8035C1C(void) +{ + sMainMenu->sub.unk2E = 0; + sMainMenu->sub.unk2C = 1; + sMainMenu->sub.unk2D = 0; +} + +void SetMenuItems(MenuStruct *a0, UnkTextStruct2 *a1, s32 index, const UnkTextStruct2 *a3, const MenuItem *menuItems, bool8 a5, u32 menuAction, u32 unused) +{ + a1[index] = *a3; + ResetUnusedInputStruct(); + sub_800641C(a1, TRUE, TRUE); + + if (a5) + sub_8012D60(&a0[index], menuItems, 0, 0, menuAction, index); + else + sub_8012E04(&a0[index], menuItems, 0, 0, 0, index); + + a0[index].unk4C = TRUE; +} + +void sub_8035CC0(UnkTextStruct2 *dataArray, u32 index) +{ + sub_8006518(dataArray); + dataArray[index] = sUnknown_80E59A8; + ResetUnusedInputStruct(); + sub_800641C(dataArray, TRUE, TRUE); +} + +void sub_8035CF4(MenuStruct *menu, u32 index, bool8 a2) +{ + menu[index].unk4C = a2; + menu[index].unk4D = 1; + menu[index].menuAction = -1; + sub_8012EBC(&menu[index]); +} + +void sub_8035D1C(void) +{ + sMainMenu->unk38 = -1; +} + +UNUSED static void sub_8035D30(s32 a0) +{ + sMainMenu->unk38 = a0; +} + +s16 sub_8035D3C(void) +{ + return sMainMenu->unk38; +} + +MainMenu1Work *GetMainMenu(void) +{ + return sMainMenu; +} + +UNUSED static void sub_8035D58(void) +{ + sMainMenu->unk3C = -1; +} + +UNUSED static void sub_8035D68(s32 a0) +{ + sMainMenu->unk3C = a0; +} + +s32 sub_8035D74(void) +{ + return sMainMenu->unk3C; +} + +UNUSED static void sub_8035D80(unkStruct_8035D94 *item) +{ +#ifndef NONMATCHING + register u32 numItem asm("r1"); +#else + u32 numItem; +#endif + + u32 itemIndex; + MainMenu1Work *preload; + + preload = sMainMenu; + numItem = item->numItems; + itemIndex = item->itemIndex.itemIndex_u32; + preload->unk30.itemIndex.itemIndex_u32 = itemIndex; + preload->unk30.numItems = numItem; +} + +unkStruct_8035D94 *sub_8035D94(void) +{ + return &sMainMenu->unk30; +} + +void sub_8035DA0(void) +{ + sMainMenu->unk30.itemIndex.itemIndex_u8 = ITEM_NOTHING; + sMainMenu->unk30.numItems = 0; +} + +static s32 sub_8035DB4(u32 currMenu) +{ + s32 returnVar = 8; + + switch (currMenu) { + case MENU_COMMUNICATION_1: + returnVar = 0; + break; + case MENU_COMMUNICATION_2: + returnVar = 1; + break; + case 0x15: + returnVar = 2; + break; + case 0x16: + returnVar = 3; + break; + case 0x17: + returnVar = 4; + break; + case 0x18: + returnVar = 5; + break; + case 0x19: + returnVar = 6; + break; + case 0x1A: + returnVar = 7; + break; + } + return returnVar; +} \ No newline at end of file diff --git a/src/main_menu2.c b/src/main_menu2.c new file mode 100644 index 000000000..1310418c3 --- /dev/null +++ b/src/main_menu2.c @@ -0,0 +1,296 @@ +#include "global.h" +#include "code_803D0D8.h" +#include "constants/main_menu.h" +#include "constants/wonder_mail.h" +#include "main_menu1.h" +#include "main_menu2.h" +#include "memory.h" +#include "menu_input.h" +#include "save.h" +#include "text1.h" + +static EWRAM_DATA_2 MainMenu2Work *sUnknown_203B34C = {0}; +static EWRAM_DATA_2 u32 sUnknown_203B350 = {0}; +static EWRAM_DATA_2 u32 sUnknown_203B354 = {0}; + +#include "data/main_menu2.h" + +static void SetMainMenuItems(void); +static bool8 SetMainMenuText(void); + +static void sub_803623C(void); + +void DrawMainMenu(void) +{ + s32 i; + + if (sUnknown_203B34C == NULL) { + sUnknown_203B34C = MemoryAlloc(sizeof(MainMenu2Work), 8); + MemoryFill8((u8 *)sUnknown_203B34C, 0, sizeof(MainMenu2Work)); + } + + for (i = 0; i < 4; i++) + sUnknown_203B34C->unk144[i] = sUnknown_80E59C8; + + ResetUnusedInputStruct(); + sub_800641C(sUnknown_203B34C->unk144, TRUE, TRUE); + SetMainMenuItems(); + sUnknown_203B34C->currMenuChoice = -1; + + if (SetMainMenuText()) + sub_8035CF4(sUnknown_203B34C->unk4, 2, FALSE); + + sub_8035CF4(sUnknown_203B34C->unk4, 0, TRUE); + sUnknown_203B34C->unk0 = 1; +} + +void CleanMainMenu(void) +{ + ResetUnusedInputStruct(); + sub_800641C(NULL, TRUE, TRUE); + + if (sUnknown_203B34C != NULL) { + MemoryFree(sUnknown_203B34C); + sUnknown_203B34C = NULL; + } +} + +u32 UpdateMainMenu(void) +{ + u32 nextMenu = MENU_NO_SCREEN_CHANGE; + + switch (sUnknown_203B34C->unk0) { + case 1: + sub_8012FD8(&sUnknown_203B34C->unk4[2]); + + if (!sub_8012FD8(sUnknown_203B34C->unk4)) + sub_8013114(sUnknown_203B34C->unk4, &nextMenu); + + if (SetMainMenuText()) { + sub_8035CF4(sUnknown_203B34C->unk4, 0, TRUE); + sub_8035CF4(sUnknown_203B34C->unk4, 2, FALSE); + } + + switch (nextMenu) { + case MENU_NO_SCREEN_CHANGE: + nextMenu = MENU_NO_SCREEN_CHANGE; + break; + case 0xFFDD: + sUnknown_203B34C->unk0 = 1; + nextMenu = MENU_NO_SCREEN_CHANGE; + ResetUnusedInputStruct(); + sub_8035CF4(sUnknown_203B34C->unk4, 0, TRUE); + sub_8035CF4(sUnknown_203B34C->unk4, 2, FALSE); + break; + case MENU_TRADE_ITEMS: + sub_8035DA0(); + sUnknown_203B350 = nextMenu; + break; + case MENU_NEW_GAME: + case MENU_AWAITING_RESCUE: + case MENU_CONTINUE: + case MENU_DELETE_SAVE_PROMPT: + case MENU_DELETE_SAVE_CONFIRM: + case MENU_ADVENTURE_LOG: + case MENU_FRIEND_RESCUE: + case MENU_WONDER_MAIL: + case MENU_DUAL_SLOT: + case MENU_WIRELESS_COMMS: + case MENU_DEBUG: + sUnknown_203B350 = nextMenu; + break; + } + break; + case 12: + if (!sub_8012FD8(&sUnknown_203B34C->unk4[1])) + sub_8013114(&sUnknown_203B34C->unk4[1], &nextMenu); + + switch (nextMenu) { + case 0xFFDD: + sub_803623C(); + sUnknown_203B34C->unk0 = 1; + nextMenu = MENU_NO_SCREEN_CHANGE; + break; + case MENU_SEND_ITEMS: + sUnknown_203B354 = nextMenu; + nextMenu = MENU_TRADE_ITEMS; + break; + case MENU_RECEIVE_ITEMS: + sUnknown_203B354 = nextMenu; + nextMenu = MENU_COMMUNICATION_2; + break; + case MENU_NO_SCREEN_CHANGE: + nextMenu = MENU_NO_SCREEN_CHANGE; + break; + default: + break; + } + break; + default: + case 13: // forces the bls switch + break; + } + + return nextMenu; +} + +static bool8 SetMainMenuText(void) +{ + u32 menuChoice; + const MenuItem *preload; + + // Have to load the pointer before the index + preload = sUnknown_203B34C->unk4[0].menuItems; + menuChoice = preload[sUnknown_203B34C->unk4[0].input.menuIndex].menuAction; // chosen menu action? + if (sUnknown_203B34C->currMenuChoice == menuChoice) + return FALSE; + + sUnknown_203B34C->currMenuChoice = menuChoice; + sub_8035CC0(sUnknown_203B34C->unk144, 2); + sub_8035CC0(sUnknown_203B34C->unk144, 3); + + switch (menuChoice) { + case MENU_WIRELESS_COMMS: + // Using wireless communications, you can go on an adventure to unknown worlds. + SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 2, &sUnknown_80E5CB4, sUnknown_80E6030, FALSE, 0, 0); + break; + case MENU_WONDER_MAIL: + // Using passwords, you can receive Wonder Mail + SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 2, &sUnknown_80E5CB4, sUnknown_80E5F80, FALSE, 0, 0); + break; + case MENU_AWAITING_RESCUE: + // You are awaiting resuce by a friend + // You can give up waiting for rescue + SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 2, &sUnknown_80E5CB4, sUnknown_80E5F1C, FALSE, 0, 0); + break; + case MENU_NEW_GAME: + // Start an entirely new adventure + SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 2, &sUnknown_80E5CB4, sUnknown_80E5CCC, FALSE, 0, 0); + break; + case MENU_CONTINUE: + // Resume your adventure from where you last saved + SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 2, &sUnknown_80E5CB4, sUnknown_80E5DA0, FALSE, 0, 0); + break; + case MENU_DELETE_SAVE_PROMPT: + // This will delete your saved game data. + // Beware! This will delete it forever + SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 2, &sUnknown_80E5CB4, sUnknown_80E5DF0, FALSE, 0, 0); + break; + case MENU_ADVENTURE_LOG: + // Check your career as an adventurer + SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 2, &sUnknown_80E5CB4, sUnknown_80E5D0C, FALSE, 0, 0); + break; + case MENU_FRIEND_RESCUE: + // Using a Game Link cable or passwords, friends may rescue each other + SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 2, &sUnknown_80E5CB4, sUnknown_80E5E5C, FALSE, 0, 0); + break; + case MENU_TRADE_ITEMS: + // Using a Game Link cable you can trade stored items with a friend + SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 2, &sUnknown_80E5CB4, sUnknown_80E5EBC, FALSE, 0, 0); + break; + case MENU_DUAL_SLOT: + // Using Dual Slot function, you can receive teams from your friends + SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 2, &sUnknown_80E5CB4, sUnknown_80E5FCC, FALSE, 0, 0); + break; + case MENU_DEBUG: + // This is the Debug Mode. + // It won't be in the release version + SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 2, &sUnknown_80E5CB4, sUnknown_80E5D48, FALSE, 0, 0); + break; + default: + break; + } + + return TRUE; +} + +static void sub_803623C(void) +{ + sub_8035CC0(sUnknown_203B34C->unk144, 1); + SetMainMenuItems(); + sUnknown_203B34C->currMenuChoice = -1; + + if (SetMainMenuText()) + sub_8035CF4(sUnknown_203B34C->unk4, 2, FALSE); + + sub_8035CF4(sUnknown_203B34C->unk4, 0, TRUE); +} + +static void SetMainMenuItems(void) +{ + if (sub_8011C34() != -1) { + if (CountMailType(WONDER_MAIL_TYPE_SOS) == 0) { + if (CountMailType(WONDER_MAIL_TYPE_OKD) != 0) { + if (sub_803D0D8()) { + // Revive Team + // Delete Save Data + // Adventure Log + // Friend Rescue + // Trade Items + // Wonder Mail + SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 0, &sUnknown_80E5A78, sUnknown_80E5C18, TRUE, sUnknown_203B350, 1); + } + else { + // Revive Team + // Delete Save Data + // Adventure Log + // Friend Rescue + // Trade Items + SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 0, &sUnknown_80E5BC4, sUnknown_80E5BDC, TRUE, sUnknown_203B350, 1); + } + } + else { + if (sub_803D0D8()) { + // Continue + // Delete Save Data + // Adventure Log + // Friend Rescue + // Trade Items + // Wonder Mail + SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 0, &sUnknown_80E5A78, sUnknown_80E5AFC, TRUE, sUnknown_203B350, 1); + } + else { + // Continue + // Delete Save Data + // Adventure Log + // Friend Rescue + // Trade Items + SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 0, &sUnknown_80E5A60, sUnknown_80E5A90, TRUE, sUnknown_203B350, 1); + } + } + } + else { + if (sub_803D0D8()) { + // Awaiting Rescue + // Delete Save Data + // Adventure Log + // Friend Rescue + // Trade Items + // Wonder Mail + SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 0, &sUnknown_80E5A78, sUnknown_80E5B8C, TRUE, sUnknown_203B350, 1); + } + else { + // Awaiting Rescue + // Delete Save Data + // Adventure Log + // Friend Rescue + // Trade Items + SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 0, &sUnknown_80E5B34, sUnknown_80E5B4C, TRUE, sUnknown_203B350, 1); + } + } + } + else { + // New Game + // Adventure Log + SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 0, &sUnknown_80E59E0, sUnknown_80E59F8, TRUE, sUnknown_203B350, 1); + } +} + +bool8 sub_80363E0(void) +{ + if (sUnknown_203B34C == NULL) + return FALSE; + if (sUnknown_203B34C->unk0 == 12) + return FALSE; + return TRUE; +} \ No newline at end of file diff --git a/src/options_menu.c b/src/options_menu.c index a41b83eb3..11815abf0 100644 --- a/src/options_menu.c +++ b/src/options_menu.c @@ -77,7 +77,6 @@ extern u32 HandleHintDisplayScreenInput(void); extern void DestroyHintDisplayScreen(void); extern u32 sub_801E218(void); extern void sub_801E2C4(void); -extern void SetWindowBGColor(void); enum { diff --git a/src/other_menus1.c b/src/other_menus1.c index 217e461db..effa69d92 100644 --- a/src/other_menus1.c +++ b/src/other_menus1.c @@ -6,6 +6,7 @@ #include "code_80118A4.h" #include "code_80130A8.h" #include "constants/communication_error_codes.h" +#include "constants/main_menu.h" #include "dungeon_global_data.h" #include "input.h" #include "items.h" @@ -63,7 +64,7 @@ void sub_8036FDC(s32 param_1) ResetUnusedInputStruct(); sub_800641C(sUnknown_203B35C->unk15C, TRUE, TRUE); - SetMenuItems(sUnknown_203B35C->unk1C, sUnknown_203B35C->unk15C, 0, &sUnknown_80E6CD0, sUnknown_80E6CE8, 0, 6, 0); + SetMenuItems(sUnknown_203B35C->unk1C, sUnknown_203B35C->unk15C, 0, &sUnknown_80E6CD0, sUnknown_80E6CE8, FALSE, 6, 0); sub_8035CF4(sUnknown_203B35C->unk1C, 0, TRUE); sub_80376CC(); } @@ -137,7 +138,7 @@ static void sub_80371B8(void) // Success! // The item exchange with your friend // went through successfully - SetMenuItems(sUnknown_203B35C->unk1C, sUnknown_203B35C->unk15C, 0, &sUnknown_80E6C50, sUnknown_80E6C68, 0, 6, 0); + SetMenuItems(sUnknown_203B35C->unk1C, sUnknown_203B35C->unk15C, 0, &sUnknown_80E6C50, sUnknown_80E6C68, FALSE, 6, 0); sub_8035CF4(sUnknown_203B35C->unk1C, 0, TRUE); } } @@ -199,7 +200,7 @@ static void sub_80371B8(void) break; } - SetMenuItems(sUnknown_203B35C->unk1C, sUnknown_203B35C->unk15C, 0, puVar5, MenuItems, 0, 6, 0); + SetMenuItems(sUnknown_203B35C->unk1C, sUnknown_203B35C->unk15C, 0, puVar5, MenuItems, FALSE, 6, 0); sub_8035CF4(sUnknown_203B35C->unk1C, 0, TRUE); if (sUnknown_203B35C->linkStatus != COMMS_GOOD && sUnknown_203B35C->unk0 == 0) { @@ -295,8 +296,7 @@ static void sub_8037400(void) case 4: mailIndex = sub_8035D74(); sUnknown_203B35C->unk28C = *GetMailatIndex(mailIndex); - // TODO: int16 memes? - if (sub_8035D3C() << 0x10 != 0xffff0000) { + if ((u16)sub_8035D3C() != 0xFFFF) { species = sub_8035D3C(); sUnknown_203B35C->unk2BC = gRecruitedPokemonRef->pokemon[(s16)species]; } diff --git a/src/other_menus2.c b/src/other_menus2.c index 7069b3707..0da04a099 100644 --- a/src/other_menus2.c +++ b/src/other_menus2.c @@ -3,7 +3,7 @@ #include "constants/communication_error_codes.h" #include "constants/dungeon.h" #include "dungeon_global_data.h" -#include "main_menu.h" +#include "main_menu1.h" #include "memory.h" #include "other_menus1.h" #include "other_menus2.h" @@ -253,8 +253,8 @@ static void sub_8037EBC(WonderMailStruct_203B2C0_sub *param_1, WonderMailStruct static void sub_8037F4C(unkStruct_203B480 *param_1, unkStruct_203B480 *param_2) { unkStruct_203B480 *mail; - MainMenu *mainMenu; - + MainMenu1Work *mainMenu; + if(sub_800D588() == 0) { param_2 = param_1; diff --git a/src/rescue_password_menu.c b/src/rescue_password_menu.c index 711ca8d5d..4df3ce39f 100644 --- a/src/rescue_password_menu.c +++ b/src/rescue_password_menu.c @@ -1,10 +1,11 @@ #include "global.h" #include "code_80130A8.h" #include "code_8094F88.h" +#include "constants/main_menu.h" #include "dungeon.h" #include "input.h" #include "items.h" -#include "main_menu.h" +#include "main_menu1.h" #include "memory.h" #include "menu_input.h" #include "pokemon.h" @@ -345,7 +346,7 @@ s32 UpdateRescuePasswordMenu(void) unkStruct_203B480 *mailPtr1; unkStruct_203B480 *mailPtr2; u32 iVar7; - MainMenu *mainMenuPtr; + MainMenu1Work *mainMenuPtr; s32 nextMenu; unkStruct_203B480 mail; u32 menuAction; @@ -554,31 +555,31 @@ void DisplayRescuePasswordError(u32 passwordError) sub_80155F0(); switch(passwordError) { case PASSWORD_ENTRY_INCORRECT_PASSWORD: - SetMenuItems(gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E71FC,gUnknown_80E7214,0,0xd,0); + SetMenuItems(gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E71FC,gUnknown_80E7214,FALSE,0xd,0); break; case PASSWORD_ENTRY_NOT_SOS_MAIL: - SetMenuItems(gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E72EC,gUnknown_80E7304,0,0xd,0); + SetMenuItems(gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E72EC,gUnknown_80E7304,FALSE,0xd,0); break; case PASSWORD_ENTRY_DUPLICATE_SOS_MAIL: - SetMenuItems(gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E7344,gUnknown_80E735C,0,0xd,0); + SetMenuItems(gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E7344,gUnknown_80E735C,FALSE,0xd,0); break; case PASSWORD_ENTRY_NO_SPACE: - SetMenuItems(gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E7588,gUnknown_80E75A0,0,0xd,0); + SetMenuItems(gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E7588,gUnknown_80E75A0,FALSE,0xd,0); break; case PASSWORD_ENTRY_NOT_AOK_MAIL: - SetMenuItems(gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E73AC,gUnknown_80E73C4,0,0xd,0); + SetMenuItems(gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E73AC,gUnknown_80E73C4,FALSE,0xd,0); break; case PASSWORD_ENTRY_DUPLICATE_AOK_MAIL: - SetMenuItems(gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E7408,gUnknown_80E7420,0,0xd,0); + SetMenuItems(gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E7408,gUnknown_80E7420,FALSE,0xd,0); break; case PASSWORD_ENTRY_NOT_THANK_YOU_MAIL: - SetMenuItems(gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E7468,gUnknown_80E7480,0,0xd,0); + SetMenuItems(gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E7468,gUnknown_80E7480,FALSE,0xd,0); break; case PASSWORD_ENTRY_DUPLICATE_THANK_YOU_MAIL: - SetMenuItems(gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E74C8,gUnknown_80E74E0,0,0xd,0); + SetMenuItems(gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E74C8,gUnknown_80E74E0,FALSE,0xd,0); break; case PASSWORD_ENTRY_NOT_WONDER_MAIL: - SetMenuItems(gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E752C,gUnknown_80E7544,0,0xd,0); + SetMenuItems(gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E752C,gUnknown_80E7544,FALSE,0xd,0); break; default: break; @@ -592,7 +593,7 @@ void DisplayPasswordAcceptScreen(void) ResetUnusedInputStruct(); sub_800641C(NULL, TRUE, TRUE); sub_80155F0(); - SetMenuItems(gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E7278,gUnknown_80E7290,0,0xd,0); + SetMenuItems(gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E7278,gUnknown_80E7290,FALSE,0xd,0); sub_8035CF4(gRescuePasswordMenu->unk8,0,TRUE); } diff --git a/src/save_menu.c b/src/save_menu.c index 1e36db6cf..f4dd5f840 100644 --- a/src/save_menu.c +++ b/src/save_menu.c @@ -1,24 +1,15 @@ #include "global.h" -#include "main_menu.h" -#include "memory.h" -#include "text1.h" -#include "save.h" -#include "menu_input.h" -#include "sprite.h" #include "code_80130A8.h" +#include "constants/main_menu.h" +#include "main_menu1.h" +#include "memory.h" +#include "menu_input.h" +#include "save.h" +#include "save_menu.h" +#include "sprite.h" +#include "text1.h" -struct unkStruct_203B360 -{ - // size: 0x1b4 - u32 currMenu; - u32 unk4; - MenuStruct unk8[4]; - UnkTextStruct2 unk148[4]; - SpriteOAM unk1A8; - u32 unk1B0; // Sprite count? -}; - -EWRAM_DATA_2 struct unkStruct_203B360 *gUnknown_203B364 = {0}; +static EWRAM_DATA_2 SaveMenuWork *sUnknown_203B364 = {0}; const UnkTextStruct2 gUnknown_80E6F20 = { @@ -134,29 +125,29 @@ void CreateSaveMenu(s32 currMenu) { s32 index; - if (gUnknown_203B364 == NULL) { - gUnknown_203B364 = MemoryAlloc(sizeof(struct unkStruct_203B360),8); - MemoryFill8((u8 *)gUnknown_203B364,0,sizeof(struct unkStruct_203B360)); + if (sUnknown_203B364 == NULL) { + sUnknown_203B364 = MemoryAlloc(sizeof(SaveMenuWork),8); + MemoryFill8((u8 *)sUnknown_203B364,0,sizeof(SaveMenuWork)); } for(index = 0; index < 4; index++){ - gUnknown_203B364->unk148[index] = gUnknown_80E6F20; + sUnknown_203B364->unk148[index] = gUnknown_80E6F20; } ResetUnusedInputStruct(); - sub_800641C(gUnknown_203B364->unk148, TRUE, TRUE); + sub_800641C(sUnknown_203B364->unk148, TRUE, TRUE); if (currMenu == MENU_DELETE_SAVE) { // Beware, Deleting your Adventure - SetMenuItems(gUnknown_203B364->unk8,gUnknown_203B364->unk148,0,&gUnknown_80E6F38,gDeletingYourAdventureMenuItems, - 0,6,0); + SetMenuItems(sUnknown_203B364->unk8,sUnknown_203B364->unk148,0,&gUnknown_80E6F38,gDeletingYourAdventureMenuItems, + FALSE,6,0); } else { // Saving your Adventure - SetMenuItems(gUnknown_203B364->unk8,gUnknown_203B364->unk148,0,&gUnknown_80E6F38,gSavingAdventureMenuItems, - 0,6,0); + SetMenuItems(sUnknown_203B364->unk8,sUnknown_203B364->unk148,0,&gUnknown_80E6F38,gSavingAdventureMenuItems, + FALSE,6,0); } - sub_8035CF4(gUnknown_203B364->unk8,0,TRUE); - gUnknown_203B364->unk4 = 0; - gUnknown_203B364->currMenu = currMenu; + sub_8035CF4(sUnknown_203B364->unk8,0,TRUE); + sUnknown_203B364->unk4 = 0; + sUnknown_203B364->currMenu = currMenu; sub_8038830(); } @@ -164,31 +155,31 @@ void CleanSaveMenu(void) { ResetUnusedInputStruct(); sub_800641C(NULL, TRUE, TRUE); - if (gUnknown_203B364 != NULL) { - MemoryFree(gUnknown_203B364); - gUnknown_203B364 = NULL; + if (sUnknown_203B364 != NULL) { + MemoryFree(sUnknown_203B364); + sUnknown_203B364 = NULL; } } s32 UpdateSaveMenu(void) { - int saveStatus; - MainMenu *mainMenu; + s32 saveStatus; + MainMenu1Work *mainMenu; u32 menu; u32 uStack_18; u32 action; - + menu = MENU_NO_SCREEN_CHANGE; action = 3; - switch(gUnknown_203B364->unk4) + switch(sUnknown_203B364->unk4) { default: case 2: menu = MENU_NO_SCREEN_CHANGE; break; case 0: - sub_8012FD8(&gUnknown_203B364->unk8[0]); + sub_8012FD8(&sUnknown_203B364->unk8[0]); uStack_18 = 0; sub_80140F8(); saveStatus = WriteSavetoPak(&uStack_18,sub_8011C1C()); @@ -196,76 +187,76 @@ s32 UpdateSaveMenu(void) switch(saveStatus) { case SAVE_COMPLETED: - sub_8035CC0(gUnknown_203B364->unk148,0); - if (gUnknown_203B364->currMenu == MENU_DELETE_SAVE) { - SetMenuItems(gUnknown_203B364->unk8,gUnknown_203B364->unk148,0,&gUnknown_80E6F38, - gDeletedSaveMenuItems,0,6,0); + sub_8035CC0(sUnknown_203B364->unk148,0); + if (sUnknown_203B364->currMenu == MENU_DELETE_SAVE) { + SetMenuItems(sUnknown_203B364->unk8,sUnknown_203B364->unk148,0,&gUnknown_80E6F38, + gDeletedSaveMenuItems,FALSE,6,0); } else { - SetMenuItems(gUnknown_203B364->unk8,gUnknown_203B364->unk148,0,&gUnknown_80E6F38, - gAdventureSavedMenuItems,0,6,0); + SetMenuItems(sUnknown_203B364->unk8,sUnknown_203B364->unk148,0,&gUnknown_80E6F38, + gAdventureSavedMenuItems,FALSE,6,0); } - if (gUnknown_203B364->currMenu == 0x2d) { - gUnknown_203B364->unk4 = 1; + if (sUnknown_203B364->currMenu == 0x2d) { + sUnknown_203B364->unk4 = 1; return MENU_COMMUNICATION_1; } - sub_8035CF4(gUnknown_203B364->unk8,0,TRUE); - gUnknown_203B364->unk4 = 1; + sub_8035CF4(sUnknown_203B364->unk8,0,TRUE); + sUnknown_203B364->unk4 = 1; break; case SAVE_NOT_WRTTEN: sub_80141B4(gUnknown_80E7178,0,0,0); - gUnknown_203B364->unk4 = 5; + sUnknown_203B364->unk4 = 5; break; default: - sub_8035CC0(gUnknown_203B364->unk148,0); - if (gUnknown_203B364->currMenu == MENU_DELETE_SAVE) { - SetMenuItems(gUnknown_203B364->unk8,gUnknown_203B364->unk148,0,&gUnknown_80E6F38, - gAdventureCouldNotBeDeletedMenuItems,0,6,0); + sub_8035CC0(sUnknown_203B364->unk148,0); + if (sUnknown_203B364->currMenu == MENU_DELETE_SAVE) { + SetMenuItems(sUnknown_203B364->unk8,sUnknown_203B364->unk148,0,&gUnknown_80E6F38, + gAdventureCouldNotBeDeletedMenuItems,FALSE,6,0); } else { - SetMenuItems(gUnknown_203B364->unk8,gUnknown_203B364->unk148,0,&gUnknown_80E6F38, - gAdventureCouldNotBeSavedMenuItems,0,6,0); + SetMenuItems(sUnknown_203B364->unk8,sUnknown_203B364->unk148,0,&gUnknown_80E6F38, + gAdventureCouldNotBeSavedMenuItems,FALSE,6,0); } - sub_8035CF4(gUnknown_203B364->unk8,0,TRUE); - gUnknown_203B364->unk4 = 1; + sub_8035CF4(sUnknown_203B364->unk8,0,TRUE); + sUnknown_203B364->unk4 = 1; break; } menu = MENU_NO_SCREEN_CHANGE; break; case 1: - if (sub_80130A8(&gUnknown_203B364->unk8[0]) == '\0') { - sub_8013114(&gUnknown_203B364->unk8[0],&action); + if (sub_80130A8(&sUnknown_203B364->unk8[0]) == '\0') { + sub_8013114(&sUnknown_203B364->unk8[0],&action); } switch(action) { case 2: case 4: - if ((gUnknown_203B364->currMenu == 0x29) || (gUnknown_203B364->currMenu == MENU_DELETE_SAVE)) { - gUnknown_203B364->unk4 = 1; + if ((sUnknown_203B364->currMenu == 0x29) || (sUnknown_203B364->currMenu == MENU_DELETE_SAVE)) { + sUnknown_203B364->unk4 = 1; menu = MENU_MAIN_SCREEN; } - else if (gUnknown_203B364->currMenu == 0x2d) { - gUnknown_203B364->unk4 = 1; + else if (sUnknown_203B364->currMenu == 0x2d) { + sUnknown_203B364->unk4 = 1; menu = MENU_COMMUNICATION_1; } - else if (gUnknown_203B364->currMenu == 0x2c) { - gUnknown_203B364->unk4 = 1; + else if (sUnknown_203B364->currMenu == 0x2c) { + sUnknown_203B364->unk4 = 1; menu = 0x1f; } else { mainMenu = GetMainMenu(); if (mainMenu->unk3A != 0) { - gUnknown_203B364->unk4 = 1; + sUnknown_203B364->unk4 = 1; menu = 0x35; } else { - gUnknown_203B364->unk4 = 1; - menu = gUnknown_203B364->currMenu == 0x2b ? MENU_WONDER_MAIL : MENU_FRIEND_RESCUE; + sUnknown_203B364->unk4 = 1; + menu = sUnknown_203B364->currMenu == 0x2b ? MENU_WONDER_MAIL : MENU_FRIEND_RESCUE; } } break; case 3: - gUnknown_203B364->unk4 = 1; + sUnknown_203B364->unk4 = 1; break; } sub_80388C4(); @@ -288,7 +279,7 @@ void sub_8038830(void) SpriteOAM *sprite; r5 = 0; - sprite = &gUnknown_203B364->unk1A8; + sprite = &sUnknown_203B364->unk1A8; r1 = sprite->attrib1; r0 = (u16)~SPRITEOAM_MASK_AFFINEMODE1; @@ -329,14 +320,14 @@ void sub_8038830(void) r2 |= r1; sprite->unk6 = r2; - gUnknown_203B364->unk1B0 = r5; + sUnknown_203B364->unk1B0 = r5; ResetSprites(FALSE); } void sub_80388C4(void) { - if (gUnknown_203B364->unk1B0 & 8) - AddSprite(&gUnknown_203B364->unk1A8, 0x100, NULL, NULL); + if (sUnknown_203B364->unk1B0 & 8) + AddSprite(&sUnknown_203B364->unk1A8, 0x100, NULL, NULL); - gUnknown_203B364->unk1B0++; + sUnknown_203B364->unk1B0++; } diff --git a/src/thank_you_wonder_mail.c b/src/thank_you_wonder_mail.c index 44e234513..fcc7074f6 100644 --- a/src/thank_you_wonder_mail.c +++ b/src/thank_you_wonder_mail.c @@ -8,7 +8,7 @@ #include "constants/communication_error_codes.h" #include "cpu.h" #include "items.h" -#include "main_menu.h" +#include "main_menu1.h" #include "memory.h" #include "menu_input.h" #include "other_menus2.h" @@ -1278,7 +1278,7 @@ void UpdateThankYouMailText(void) break; case 0x11: sub_8006518(gUnknown_203B2C4->unk35C); - SetMenuItems(gUnknown_203B2C4->unk21C,gUnknown_203B2C4->unk35C,3,&gUnknown_80DED60,gUnknown_80DED78,1,0,0); + SetMenuItems(gUnknown_203B2C4->unk21C,gUnknown_203B2C4->unk35C,3,&gUnknown_80DED60,gUnknown_80DED78,TRUE,0,0); sub_803092C(); sub_8035CF4(gUnknown_203B2C4->unk21C,3,TRUE); break; @@ -1294,7 +1294,7 @@ void UpdateThankYouMailText(void) break; case 0x14: sub_8006518(gUnknown_203B2C4->unk35C); - SetMenuItems(gUnknown_203B2C4->unk21C,gUnknown_203B2C4->unk35C,3,&gUnknown_80DED48,gUnknown_80DED78,1,0,0); + SetMenuItems(gUnknown_203B2C4->unk21C,gUnknown_203B2C4->unk35C,3,&gUnknown_80DED48,gUnknown_80DED78,TRUE,0,0); sub_801CCD8(); sub_8035CF4(gUnknown_203B2C4->unk21C,3,TRUE); break; diff --git a/src/trade_items_menu.c b/src/trade_items_menu.c index 1b8772735..df15f7b20 100644 --- a/src/trade_items_menu.c +++ b/src/trade_items_menu.c @@ -6,7 +6,7 @@ #include "constants/communication_error_codes.h" #include "cpu.h" #include "items.h" -#include "main_menu.h" +#include "main_menu1.h" #include "memory.h" #include "menu_input.h" #include "other_menus2.h" @@ -22,8 +22,6 @@ static EWRAM_DATA_2 struct TradeItemsMenu *sTradeItemsMenu = {0}; #include "data/trade_items_menu.h" -extern void sub_8035C1C(); - extern u32 sub_801D008(); extern s32 sub_8037B28(u32); @@ -522,7 +520,7 @@ void sub_8036B28(void) case TRADE_ITEMS_SEND_ITEM_POPUP_MENU: sub_8006518(sTradeItemsMenu->unk184); SetMenuItems(sTradeItemsMenu->unk44,sTradeItemsMenu->unk184,3,&sUnknown_80E60EC, - sUnknown_80E6104,1,0,0); + sUnknown_80E6104,TRUE,0,0); sub_801CCD8(); sub_8035CF4(sTradeItemsMenu->unk44,3,TRUE); break; diff --git a/src/unk_menu_203B360.c b/src/unk_menu_203B360.c index 49d1b154f..9f764c4bd 100644 --- a/src/unk_menu_203B360.c +++ b/src/unk_menu_203B360.c @@ -1,25 +1,25 @@ #include "global.h" -#include "input.h" -#include "main_menu.h" +#include "constants/main_menu.h" +#include "main_menu1.h" #include "memory.h" -#include "menu.h" -#include "text1.h" #include "menu_input.h" #include "sprite.h" +#include "text1.h" +#include "unk_menu_203B360.h" -// Similar to RescuePasswordMenu -struct unkStruct_203B360 +// Size: 0x1B4. Similar to SaveMenuWork +typedef struct unkStruct_203B360 { - // size: 0x1b4 - u32 currMenu; + /* 0x0 */ u32 currMenu; u32 unk4; // state MenuStruct unk8[4]; UnkTextStruct2 unk148[4]; SpriteOAM unk1A8; u32 unk1B0; // sprite count? -}; +} unkStruct_203B360; + +static EWRAM_DATA_2 unkStruct_203B360 *sUnknown_203B360 = {0}; -EWRAM_DATA_2 struct unkStruct_203B360 *gUnknown_203B360 = {0}; const UnkTextStruct2 gUnknown_80E6E7C = { 0x00, 0x00, 0x00, 0x00, 0x03, @@ -61,25 +61,25 @@ void sub_80382E4(s32 currMenu) { s32 index; - if (gUnknown_203B360 == NULL) { - gUnknown_203B360 = MemoryAlloc(sizeof(struct unkStruct_203B360), 8); - MemoryFill8((u8 *)gUnknown_203B360, 0, sizeof(struct unkStruct_203B360)); + if (sUnknown_203B360 == NULL) { + sUnknown_203B360 = MemoryAlloc(sizeof(unkStruct_203B360), 8); + MemoryFill8((u8 *)sUnknown_203B360, 0, sizeof(unkStruct_203B360)); } for(index = 0; index < 4; index++){ - gUnknown_203B360->unk148[index] = gUnknown_80E6E7C; + sUnknown_203B360->unk148[index] = gUnknown_80E6E7C; } ResetUnusedInputStruct(); - sub_800641C(gUnknown_203B360->unk148, TRUE, TRUE); + sub_800641C(sUnknown_203B360->unk148, TRUE, TRUE); if (currMenu == 0x25) { // Caution! // The storage space is empty! // Please check again. - SetMenuItems(gUnknown_203B360->unk8,gUnknown_203B360->unk148,0,&gUnknown_80E6E94,gUnknown_80E6EAC, - 0,4,0); + SetMenuItems(sUnknown_203B360->unk8,sUnknown_203B360->unk148,0,&gUnknown_80E6E94,gUnknown_80E6EAC, + FALSE,4,0); } - sub_8035CF4(gUnknown_203B360->unk8,0,TRUE); - gUnknown_203B360->currMenu = currMenu; - gUnknown_203B360->unk4 = 0; + sub_8035CF4(sUnknown_203B360->unk8,0,TRUE); + sUnknown_203B360->currMenu = currMenu; + sUnknown_203B360->unk4 = 0; sub_8038440(); } @@ -87,9 +87,9 @@ void sub_80383A8(void) { ResetUnusedInputStruct(); sub_800641C(NULL, TRUE, TRUE); - if (gUnknown_203B360 != 0) { - MemoryFree(gUnknown_203B360); - gUnknown_203B360 = 0; + if (sUnknown_203B360 != 0) { + MemoryFree(sUnknown_203B360); + sUnknown_203B360 = 0; } } @@ -101,19 +101,19 @@ u32 sub_80383D4(void) menuAction = 2; nextMenu = MENU_NO_SCREEN_CHANGE; - if (gUnknown_203B360->unk4 == 0){ - if (sub_80130A8(&gUnknown_203B360->unk8[0]) == '\0') { - sub_8013114(&gUnknown_203B360->unk8[0], &menuAction); + if (sUnknown_203B360->unk4 == 0){ + if (sub_80130A8(&sUnknown_203B360->unk8[0]) == '\0') { + sub_8013114(&sUnknown_203B360->unk8[0], &menuAction); } switch(menuAction) { case 3: case 1: - gUnknown_203B360->unk4 = 0; + sUnknown_203B360->unk4 = 0; nextMenu = MENU_MAIN_SCREEN; break; case 2: - gUnknown_203B360->unk4 = 0; + sUnknown_203B360->unk4 = 0; default: break; } @@ -138,7 +138,7 @@ void sub_8038440(void) SpriteOAM *sprite; r5 = 0; - sprite = &gUnknown_203B360->unk1A8; + sprite = &sUnknown_203B360->unk1A8; r1 = sprite->attrib1; r0 = (u16)~SPRITEOAM_MASK_AFFINEMODE1; @@ -181,15 +181,15 @@ void sub_8038440(void) r2 |= r1; sprite->unk6 = r2; - gUnknown_203B360->unk1B0 = r5; + sUnknown_203B360->unk1B0 = r5; } void sub_80384D0(void) { - if ((gUnknown_203B360->unk1B0 & 8) != 0) { - AddSprite(&gUnknown_203B360->unk1A8, 0x100, NULL, NULL); + if ((sUnknown_203B360->unk1B0 & 8) != 0) { + AddSprite(&sUnknown_203B360->unk1A8, 0x100, NULL, NULL); } - gUnknown_203B360->unk1B0++; + sUnknown_203B360->unk1B0++; } diff --git a/src/wonder_mail.c b/src/wonder_mail.c index 7a869701c..c26efa85b 100644 --- a/src/wonder_mail.c +++ b/src/wonder_mail.c @@ -7,7 +7,7 @@ #include "constants/communication_error_codes.h" #include "cpu.h" #include "items.h" -#include "main_menu.h" +#include "main_menu1.h" #include "memory.h" #include "menu_input.h" #include "other_menus2.h" @@ -542,7 +542,7 @@ void sub_8028348(void) break; case 0x34: sub_8006518(gUnknown_203B2C0->unk35C); - SetMenuItems(gUnknown_203B2C0->unk21C, gUnknown_203B2C0->unk35C, 3, &gUnknown_80DDAE4, gUnknown_80DDAFC, 1, 0, 0); + SetMenuItems(gUnknown_203B2C0->unk21C, gUnknown_203B2C0->unk35C, 3, &gUnknown_80DDAE4, gUnknown_80DDAFC, TRUE, 0, 0); sub_8023DA4(); sub_8035CF4(gUnknown_203B2C0->unk21C, 3, TRUE); break; @@ -697,7 +697,7 @@ void sub_8028348(void) case 0x20: case 0x2B: sub_8006518(gUnknown_203B2C0->unk35C); - SetMenuItems(gUnknown_203B2C0->unk21C, gUnknown_203B2C0->unk35C, 3, &gUnknown_80DDACC, gUnknown_80DDAFC, 1, 0, 0); + SetMenuItems(gUnknown_203B2C0->unk21C, gUnknown_203B2C0->unk35C, 3, &gUnknown_80DDACC, gUnknown_80DDAFC, TRUE, 0, 0); sub_803092C(); sub_8035CF4(gUnknown_203B2C0->unk21C, 3, TRUE); break; diff --git a/src/wonder_mail_main_menu.c b/src/wonder_mail_main_menu.c index 38195a6de..a032b6c2e 100644 --- a/src/wonder_mail_main_menu.c +++ b/src/wonder_mail_main_menu.c @@ -15,6 +15,7 @@ #include "text2.h" #include "wonder_mail.h" #include "wonder_mail_3.h" +#include "wonder_mail_main_menu.h" #define SELECT_WONDER_MAIL_MODE_MAIN_SCREEN 0 #define SEND_WONDER_MAIL_MAIN_SCREEN 1 @@ -186,7 +187,7 @@ bool8 CreateWonderMailMenu(void) return 1; } -u8 UpdateWonderMailMenu(void) +u32 UpdateWonderMailMenu(void) { switch(gUnknown_203B3E8->state) { case RECEIVE_WONDER_MAIL_MAIN_SCREEN: diff --git a/sym_ewram2.txt b/sym_ewram2.txt index 27c91c416..bbd222b66 100644 --- a/sym_ewram2.txt +++ b/sym_ewram2.txt @@ -325,7 +325,8 @@ gUnknown_203B328: /* 203B328 (wonder_mail_6) */ .include "src/friend_rescue.o" .include "src/credits1.o" .include "src/credits2.o" -.include "src/main_menu.o" +.include "src/main_menu1.o" +.include "src/main_menu2.o" .include "src/trade_items_menu.o" .include "src/other_menus1.o" .include "src/unk_menu_203B360.o"