diff options
Diffstat (limited to 'src/wonder_mail_main_menu.c')
-rw-r--r-- | src/wonder_mail_main_menu.c | 156 |
1 files changed, 126 insertions, 30 deletions
diff --git a/src/wonder_mail_main_menu.c b/src/wonder_mail_main_menu.c index 87166b9..84c0d25 100644 --- a/src/wonder_mail_main_menu.c +++ b/src/wonder_mail_main_menu.c @@ -5,7 +5,9 @@ #include "input.h" #include "sub_8095228.h" #include "wonder_mail.h" +#include "menu.h" +#define SELECT_WONDER_MAIL_MODE_MAIN_SCREEN 0 #define SEND_WONDER_MAIL_MAIN_SCREEN 1 #define SEND_GAME_LINK_CABLE 2 #define RECEIVE_WONDER_MAIL_MAIN_SCREEN 4 @@ -22,6 +24,120 @@ #define PASSWORD_INVALID 19 #define PASSWORD_ENTRY_SCREEN 18 +extern const char Cancel_80E7D24[]; +extern const char Cancel_80E78B4[]; +extern const char Yes_80E7D2C[]; +extern const char Yes_80E7910[]; +extern const char GameLinkCable_80E78C8[]; +extern const char Password_80E78BC[]; + +extern const char Receive_80E7884[]; +extern const char Send_80E788C[]; + +const struct MenuItem gSelectWonderMailModeMainMenuItems[3] = +{ + {Send_80E788C, WONDER_MAIL_MODE_SEND}, + {Receive_80E7884, WONDER_MAIL_MODE_RECEIVE}, + {NULL, 0} +}; + +ALIGNED(4) const char Receive_80E7884[] = "Receive"; +ALIGNED(4) const char Send_80E788C[] = "Send"; + + +const struct MenuItem gSendWonderMailMainMenuItems[4] = +{ + {GameLinkCable_80E78C8, WONDER_MAIL_GAME_LINK}, + {Password_80E78BC, -1}, + {Cancel_80E78B4, 8}, + {NULL, 0} + +}; + +ALIGNED(4) const char Cancel_80E78B4[] = "Cancel"; +ALIGNED(4) const char Password_80E78BC[] = "Password"; +ALIGNED(4) const char GameLinkCable_80E78C8[] = "Game Link cable"; + +const struct MenuItem gReceiveWonderMailMainMenuItems[4] = +{ + {GameLinkCable_80E78C8, WONDER_MAIL_GAME_LINK}, + {Password_80E78BC, WONDER_MAIL_PASSWORD}, + {Cancel_80E78B4, 8}, + {NULL, 0} +}; + +const struct MenuItem gUnknown_80E78F8[3] = +{ + {Yes_80E7910, 6}, + {Cancel_80E78B4, 0}, + {NULL, 0} +}; + +ALIGNED(4) const char Yes_80E7910[] = "Yes"; + +ALIGNED(4) const char gUnknown_80E7914[] = "There was a communication error."; + +ALIGNED(4) const char gUnknown_80E7938[] = "An incorrect number of GBA systems are\n" + "connected.\n" + "Please redo this process from the start."; + +ALIGNED(4) const char gUnknown_80E7994[] = "There is no response from your friend.\n" + "Please redo this process from the start."; + +ALIGNED(4) const char gUnknown_80E79E4[] = "The sender and receiver appear to be\n" + "in different modes.\n" + "Please redo the process from the start."; + +ALIGNED(4) const char gUnknown_80E7A48[] = "There is no response from your friend.\n" + "Please make sure the sender and receiver\n" + "are ready~2c then redo this from the start."; + +ALIGNED(4) const char gUnknown_80E7AC4[] = "What would you like to do?"; + +ALIGNED(4) const char gUnknown_80E7AE0[] = "How would you like to send your\n" + "#CGWonder Mail#R?"; + +ALIGNED(4) const char gUnknown_80E7B14[] = "How would you like to receive the\n" + "#CGWonder Mail#R?"; + +ALIGNED(4) const char gUnknown_80E7B48[] = "Your adventure will be saved."; + +ALIGNED(4) const char gUnknown_80E7B68[] = "Your #CGWonder Mail#R was sent."; + +ALIGNED(4) const char gUnknown_80E7B88[] = "The received #CGWonder Mail#R was\n" + "added to the #CGJob List#R."; + +ALIGNED(4) const char gUnknown_80E7BC8[] = "The #CGWonder Mail#R was refused."; + +ALIGNED(4) const char gUnknown_80E7BEC[] = _("Connect a #CGGame Link cable#R.\n" + "When you and your friend are ready~2c\n" + "you may communicate. "); + +ALIGNED(4) const char gUnknown_80E7C48[] = _("#+In communication...\n" + "#+Please wait with the power on.\n" + "#+To cancel~2c press {B_BUTTON}."); + +ALIGNED(4) const char gUnknown_80E7C98[] = "Please enter the\n" + "#CGWonder Mail password#R."; + +ALIGNED(4) const char gUnknown_80E7CC4[] = "This password is incorrect.\n" + "Would you like to enter it again?"; + +ALIGNED(4) const char wonder_mail_main_fill0[] = "pksdir0"; + +const struct MenuItem WonderMailMainUnused[3] = +{ + {Yes_80E7D2C, 1}, + {Cancel_80E7D24, 0}, + {NULL, 0}, +}; + +ALIGNED(4) const char Cancel_80E7D24[] = "Cancel"; +ALIGNED(4) const char Yes_80E7D2C[] = "Yes"; + +ALIGNED(4) const char wonder_mail_main_fill1[] = "pksdir0"; +ALIGNED(4) const char wonder_mail_main_fill2[] = "pksdir0"; + struct unkStruct_803B344 { @@ -64,10 +180,11 @@ struct unkStruct_203B3E8 u8 unk498; }; +EWRAM_DATA struct unkStruct_203B3E8 *gUnknown_203B3E8; + extern u32 sub_8095324(u32); extern u32 sub_80144A4(s32 *); extern u32 sub_8011C1C(void); -extern struct unkStruct_203B3E8 *gUnknown_203B3E8; extern void SetWonderMailMainMenuState(u8); extern void sub_8030DE4(void); extern void sub_801B450(void); @@ -82,7 +199,7 @@ extern s32 sub_80381F4(u32, void *, void *); extern void sub_8011830(void); extern void sub_80151C0(u32, u8 *); extern void xxx_call_start_bg_music(void); -extern void sub_8014248(u8 *, u32, u32, u8 *, u32, u32, u32, u32, u32); +extern void sub_8014248(const char *, u32, u32, const struct MenuItem *, u32, u32, u32, u32, u32); extern void nullsub_23(u32); extern void sub_802EF48(void); extern void sub_802D098(struct WonderMail *); @@ -92,21 +209,6 @@ extern struct unkStruct_803B344 *sub_803B344(u8); -extern u8 gUnknown_80E7CC4[]; -extern u8 gUnknown_80E78F8; -extern u8 gUnknown_80E7AC4[]; -extern u8 gUnknown_80E786C; -extern u8 gUnknown_80E7AE0[]; -extern u8 gUnknown_80E7894; -extern u8 gUnknown_80E7C48[]; -extern u8 gUnknown_80E7B14[]; -extern u8 gUnknown_80E78D8; -extern u8 gUnknown_80E7B68[]; -extern u8 gUnknown_80E7BEC[]; -extern u8 gUnknown_80E7BC8[]; -extern u8 gUnknown_80E7B88[]; -extern u8 gUnknown_80E7C98[]; -extern u8 gUnknown_80E7B48[]; extern s32 sub_8037B28(u32); extern u32 sub_802D0E0(); @@ -116,7 +218,7 @@ extern void sub_802D184(); extern s32 sub_80154F0(); extern bool8 DecodeWonderMailPassword(u8 *, struct WonderMail *); extern bool8 IsValidWonderMail(struct WonderMail *WonderMailData); -extern void sub_80141B4(u8 *r0, u32, u32 *r1, u32); +extern void sub_80141B4(const char *r0, u32, u32 *r1, u32); void PrintWonderMailMainMenuError(u32); void HandleWonderMailMainScreen(void); @@ -135,12 +237,6 @@ void HandlePasswordEntryScreen(void); void HandleInvalidPasswordMenu(void); -extern u8 gUnknown_80E7914[]; -extern u8 gUnknown_80E7938[]; -extern u8 gUnknown_80E7994[]; -extern u8 gUnknown_80E79E4[]; -extern u8 gUnknown_80E7A48[]; - bool8 sub_8039880(void) { return (sub_8095324(1) != 0 || sub_8095324(7) != 0 || sub_8011C1C() == 2); @@ -504,11 +600,11 @@ void WonderMailMainMenuCallback(void) struct unkStruct_803B344 *temp; switch(gUnknown_203B3E8->state) { - case 0: - sub_8014248(gUnknown_80E7AC4,0,1,&gUnknown_80E786C,0,4,0,0,0x101); + case SELECT_WONDER_MAIL_MODE_MAIN_SCREEN: + sub_8014248(gUnknown_80E7AC4,0,1,gSelectWonderMailModeMainMenuItems,0,4,0,0,0x101); break; case SEND_WONDER_MAIL_MAIN_SCREEN: - sub_8014248(gUnknown_80E7AE0,0,3,&gUnknown_80E7894,0,4,0,0,0x101); + sub_8014248(gUnknown_80E7AE0,0,3,gSendWonderMailMainMenuItems,0,4,0,0,0x101); break; case 3: ResetUnusedInputStruct(); @@ -516,7 +612,7 @@ void WonderMailMainMenuCallback(void) sub_802EF48(); break; case RECEIVE_WONDER_MAIL_MAIN_SCREEN: - sub_8014248(gUnknown_80E7B14,0,3,&gUnknown_80E78D8,0,4,0,0,0x101); + sub_8014248(gUnknown_80E7B14,0,3,gReceiveWonderMailMainMenuItems,0,4,0,0,0x101); break; case PASSWORD_SUCCESS: gUnknown_203B3E8->unk474 = gUnknown_203B3E8->unk3C0.unk0; @@ -561,7 +657,7 @@ void WonderMailMainMenuCallback(void) } break; case GAME_LINK_CABLE_MENU: - sub_8014248(gUnknown_80E7BEC,0,6,&gUnknown_80E78F8,0,4,0,0,0x101); + sub_8014248(gUnknown_80E7BEC,0,6,gUnknown_80E78F8,0,4,0,0,0x101); break; case 6: nullsub_23(0); @@ -620,7 +716,7 @@ void WonderMailMainMenuCallback(void) sub_80151C0(5,gUnknown_203B3E8->PasswordEntryBuffer); break; case PASSWORD_INVALID: - sub_8014248(gUnknown_80E7CC4,0,6,&gUnknown_80E78F8,0,4,0,0,0x101); + sub_8014248(gUnknown_80E7CC4,0,6,gUnknown_80E78F8,0,4,0,0,0x101); break; } } |