diff options
Diffstat (limited to 'src/wonder_mail_main_menu_pre.c')
-rw-r--r-- | src/wonder_mail_main_menu_pre.c | 442 |
1 files changed, 0 insertions, 442 deletions
diff --git a/src/wonder_mail_main_menu_pre.c b/src/wonder_mail_main_menu_pre.c deleted file mode 100644 index 288d352..0000000 --- a/src/wonder_mail_main_menu_pre.c +++ /dev/null @@ -1,442 +0,0 @@ -#include "global.h" -#include "save.h" - -#define EXIT_TO_MAIN_MENU 5 -#define PASSWORD_SUCCESS 13 -#define PASSWORD_INVALID 19 -#define PASSWORD_ENTRY_SCREEN 18 - -struct unkWonderMailData -{ - u8 unk0[20]; -}; - -struct unkStruct_203B3E8 -{ - // size: 0x49C - u8 unk0; // state variable? - u8 PasswordEntryBuffer[0x36]; // Wonder Mail Buffer... - struct unkWonderMailData unk38; // 0x30 - 0x14 - u8 unk38_1[0x30 - 20]; // TODO: split for the ldm/stm stuff (fix dumb hack) - u8 fill68[0x1EC - 0x68]; - u32 unk1EC; - u8 fill1F0[0x24C - 0x1F0]; - u32 unk24C; - u32 unk250; - u8 fill254[0x3C0 - 0x254]; - struct unkWonderMailData unk3C0; // 0x3C0 + 0x14 - u8 fill3D0[0x490 - 0x3D4]; - u32 unk490; - u32 unk494; - u8 unk498; - u8 unk499; - u8 unk49A; - u8 unk49B; -}; - -extern u32 sub_8095324(u32); -extern u32 sub_80144A4(s32 *); -extern u32 sub_8011C1C(void); -extern struct unkStruct_203B3E8 *gUnknown_203B3E8; -extern void* MemoryAlloc(u32, u32); -extern void MemoryFree(void *); -extern void MemoryFill8(u8 *dest, u8 value, s32 size); -extern void sub_803A1C0(u8); -extern void ResetUnusedInputStruct(void); -extern void sub_800641C(void *, u32, u32); -extern void sub_8030DE4(void); -extern void sub_801B450(void); -extern void sub_803084C(void); -extern void sub_801CBB8(void); -extern void sub_80155F0(void); -extern void sub_8031E10(void); - -extern u32 sub_802D0E0(); -extern u8 sub_802D178(); -extern void sub_802D184(); - -extern s32 sub_80154F0(); -extern bool8 sub_803D358(u8 *, void *); -extern bool8 sub_80959C0(void *); -extern void sub_80141B4(u32 *r0, u32, u32 *r1, u32); - -void sub_8039BAC(u32); -void sub_8039A18(void); -void sub_8039AA8(void); -void sub_8039B14(void); -void sub_8039B20(void); -void sub_8039B58(void); -void sub_8039D88(void); -void sub_8039D28(void); -void sub_8039D68(void); -void sub_8039DA4(void); -void sub_8039DCC(void); -void sub_8039B3C(void); -void sub_8039D0C(void); -void sub_8039C60(void); -void sub_8039DE8(void); - - -extern u32 gUnknown_80E7914; -extern u32 gUnknown_80E7938; -extern u32 gUnknown_80E7994; -extern u32 gUnknown_80E79E4; -extern u32 gUnknown_80E7A48; - -bool8 sub_8039880(void) -{ - return (sub_8095324(1) != 0 || sub_8095324(7) != 0 || sub_8011C1C() == 2); -} - -bool8 CreateWonderMailMenu(void) -{ - int iVar2; - - ResetUnusedInputStruct(); - sub_800641C(0,1,1); - - gUnknown_203B3E8 = MemoryAlloc(sizeof(struct unkStruct_203B3E8), 8); - MemoryFill8((u8 *)gUnknown_203B3E8, 0, sizeof(struct unkStruct_203B3E8)); - - for(iVar2 = 0; iVar2 < 0x36; iVar2++){ - gUnknown_203B3E8->PasswordEntryBuffer[iVar2] = 0; - } - - gUnknown_203B3E8->unk490 = 3; - gUnknown_203B3E8->unk494 = 2; - gUnknown_203B3E8->unk498 = 1; - gUnknown_203B3E8->unk490 = 5; // ??? Why? - sub_803A1C0(0x11); // 0x11 -> Display "Enter Wonder Mail Password" - return 1; -} - -u8 UpdateWonderMailMenu(void) -{ - switch(gUnknown_203B3E8->unk0) { - case 4: - sub_8039A18(); - break; - case EXIT_TO_MAIN_MENU: // When you exit out of the menu - return 3; - case 8: - sub_8039AA8(); - break; - case 11: - break; - case 12: - sub_8039B14(); - break; - case 6: - sub_8039B20(); - break; - case 9: - sub_8039B58(); - break; - case 7: - sub_8039D88(); - break; - case PASSWORD_SUCCESS: - sub_8039D28(); - break; - case 14: - sub_8039D68(); - break; - case 15: // Saving adventure - sub_8039DA4(); - break; - case 16: // Display "Recieved Wonder Mail was added" and go back to main menu - sub_8039DCC(); - break; - case 10: - sub_8039B3C(); - break; - case 17: // "Please enter the Wonder Mail Password" Screen - sub_8039D0C(); - break; - case PASSWORD_ENTRY_SCREEN: // Password Entry - sub_8039C60(); - break; - case PASSWORD_INVALID: - sub_8039DE8(); - } - return 0; -} - -void CleanWonderMailMenu(void) -{ - if (gUnknown_203B3E8 != NULL) { - MemoryFree(gUnknown_203B3E8); - gUnknown_203B3E8 = NULL; - sub_8030DE4(); // Frees 203B324 - sub_801B450(); // Frees 203B230 - sub_803084C(); // Frees 203B320 - sub_801CBB8(); // Frees 203B244 - sub_80155F0(); // Frees 203B1FC - sub_8031E10(); // Frees 203B334 - } -} - -void sub_8039A18(void) -{ - s32 local_8; - - if (sub_80144A4(&local_8) == 0) { - gUnknown_203B3E8->unk24C = 10; - switch(local_8) { - case 3: - case 4: - gUnknown_203B3E8->unk490 = 3; - sub_803A1C0(8); - break; - case 5: - gUnknown_203B3E8->unk490 = 5; - sub_803A1C0(17); - break; - case 0: - case 8: - sub_803A1C0(EXIT_TO_MAIN_MENU); - break; - } - } -} - -void sub_8039AA8(void) -{ - s32 local_8; - - if (sub_80144A4(&local_8) == 0) { - switch(local_8){ - case 6: - if (gUnknown_203B3E8->unk494 == 1) { - sub_803A1C0(2); - } - else { - sub_803A1C0(12); - } - break; - case 0: - if (gUnknown_203B3E8->unk494 == 1) { - sub_803A1C0(1); - } - else { - sub_803A1C0(4); - } - break; - } - } -} - -void sub_8039B14(void) -{ - sub_803A1C0(6); -} - -void sub_8039B20(void) -{ - s32 local_8; - - if (sub_80144A4(&local_8) == 0) { - sub_803A1C0(9); - } -} - -void sub_8039B3C(void) -{ - s32 local_8; - - if (sub_80144A4(&local_8) == 0) { - sub_803A1C0(4); - } -} - -void sub_8039B58(void) -{ - s32 temp; - - if (sub_80144A4(&temp) == 0) { - if (gUnknown_203B3E8->unk250 == 0) { - switch(gUnknown_203B3E8->unk24C){ - case 9: - sub_803A1C0(7); - break; - case 10: - sub_803A1C0(PASSWORD_SUCCESS); - break; - } - } - else { - sub_8039BAC(gUnknown_203B3E8->unk250); - sub_803A1C0(10); - } - } -} - -void sub_8039BAC(u32 arg) -{ - switch(arg) - { - case 0: - break; - case 1: - // "Communication Error" - sub_80141B4(&gUnknown_80E7914, 0, 0, 0x101); - break; - case 3: - // Incorrect number of GBA Systems - sub_80141B4(&gUnknown_80E7938, 0, 0, 0x101); - break; - case 2: - // No response from friend. Redo from start - sub_80141B4(&gUnknown_80E7994, 0, 0, 0x101); - break; - case 4: - // Sender and receiver in different modes - sub_80141B4(&gUnknown_80E79E4, 0, 0, 0x101); - break; - case 5: - // "Communication Error" - sub_80141B4(&gUnknown_80E7914, 0, 0, 0x101); - break; - case 14: - // "Communication Error" - sub_80141B4(&gUnknown_80E7914, 0, 0, 0x101); - break; - case 15: // "No response from your friend. Make sure sender and receiver are ready" - sub_80141B4(&gUnknown_80E7A48, 0, 0, 0x101); - break; - case 6: - case 7: - case 8: - case 9: - case 10: - case 11: - case 12: - case PASSWORD_SUCCESS: - default: - // "Communication Error" - sub_80141B4(&gUnknown_80E7914, 0, 0, 0x101); - break; - - } -} - -void sub_8039C60(void) -{ - int iVar2; - - iVar2 = sub_80154F0(); - MemoryFill8((u8 *)&gUnknown_203B3E8->unk38, 0, 0x30); - switch(iVar2){ - case 3: - sub_80155F0(); - ResetUnusedInputStruct(); - sub_800641C(&gUnknown_203B3E8->unk1EC,1,1); - if ( !sub_803D358(gUnknown_203B3E8->PasswordEntryBuffer, &gUnknown_203B3E8->unk38) || !sub_80959C0(&gUnknown_203B3E8->unk38) ) - { - // Invalid password - sub_803A1C0(PASSWORD_INVALID); - } - else { - // Successful password - // Copy the decoded data to another buffer? - gUnknown_203B3E8->unk3C0 = gUnknown_203B3E8->unk38; - - gUnknown_203B3E8->unk498 = 1; - sub_803A1C0(PASSWORD_SUCCESS); - } - break; - case 2: - sub_80155F0(); - ResetUnusedInputStruct(); - sub_800641C(&gUnknown_203B3E8->unk1EC,1,1); - sub_803A1C0(EXIT_TO_MAIN_MENU); - break; - } -} - -void sub_8039D0C(void) -{ - int iVar2; - if(sub_80144A4(&iVar2) == 0) - { - sub_803A1C0(PASSWORD_ENTRY_SCREEN); - } -} - -void sub_8039D28(void) -{ - if (sub_802D0E0() == 3) { - gUnknown_203B3E8->unk498 = sub_802D178(); - sub_802D184(); - if (gUnknown_203B3E8->unk498 != 0) { - sub_803A1C0(0xe); - } - else { - sub_803A1C0(0x10); - } - } -} - -void sub_8039D68(void) -{ - int iVar2; - if(sub_80144A4(&iVar2) == 0) - { - sub_803A1C0(0xF); - sub_8012574(0); // "Saving Adventure.." - } -} - -void sub_8039D88(void) -{ - int iVar2; - if(sub_80144A4(&iVar2) == 0) - { - sub_803A1C0(8); - } -} - -void sub_8039DA4(void) -{ - int iVar2; - if(sub_80144A4(&iVar2) == 0) - { - if(!sub_8012600()) - { - sub_8012750(); - sub_803A1C0(0x10); - } - } -} - -void sub_8039DCC(void) -{ - int iVar2; - if(sub_80144A4(&iVar2) == 0) - { - sub_803A1C0(EXIT_TO_MAIN_MENU); - } -} - -void sub_8039DE8(void) -{ - int iVar2; - - // Prompt to re-enter password - if(sub_80144A4(&iVar2) == 0) - { - switch(iVar2) - { - case 6: // Yes - sub_803A1C0(0x11); - break; - case 0: // No - sub_803A1C0(EXIT_TO_MAIN_MENU); - break; - } - } -} - -void nullsub_54(void) -{ -} |