diff options
-rw-r--r-- | data/data_80D47B8.s | 63 | ||||
-rw-r--r-- | data/data_80DED44.s | 167 | ||||
-rw-r--r-- | data/data_80E59A8.s | 163 | ||||
-rw-r--r-- | include/ds_menus.h | 11 | ||||
-rw-r--r-- | include/load_screen.h | 9 | ||||
-rw-r--r-- | src/ds_menus.c | 2 | ||||
-rw-r--r-- | src/main_menu.c | 252 | ||||
-rw-r--r-- | src/wonder_mail.c | 50 | ||||
-rw-r--r-- | src/wonder_mail_2.c | 116 |
9 files changed, 360 insertions, 473 deletions
diff --git a/data/data_80D47B8.s b/data/data_80D47B8.s index 1b63067..b0eb331 100644 --- a/data/data_80D47B8.s +++ b/data/data_80D47B8.s @@ -4894,66 +4894,3 @@ gUnknown_80DDAE4: @ 80DDAE4 .byte 0x06, 0x00, 0x04, 0x00 .byte 0x04, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80DDAFC -gUnknown_80DDAFC: @ 80DDAFC - .4byte Confirm_80DDB1C - .byte 0xB, 0x00, 0x00, 0x00 - .4byte Info_80DDB14 - .byte 0xC, 0x00, 0x00, 0x00 - .byte 0x0, 0x00, 0x00, 0x00 - .byte 0xA, 0x00, 0x00, 0x00 - - .global Info_80DDB14 - Info_80DDB14: - .string "Info\0" - .align 2,0 - - .global Confirm_80DDB1C - Confirm_80DDB1C: - .string "Confirm\0" - .align 2,0 - - .global gUnknown_80DDB24 -gUnknown_80DDB24: @ 80DDB24 - .4byte GameLinkCable_80DDB50 - .byte 0xD, 0x00, 0x00, 0x00 - .4byte Password_80DDB44 - .byte 0xF, 0x00, 0x00, 0x00 - .4byte gWonderMailCancel - .byte 0xA, 0x00, 0x00, 0x00 - .byte 0x0, 0x00, 0x00, 0x00 - .byte 0xA, 0x00, 0x00, 0x00 - - .global Password_80DDB44 - Password_80DDB44: - .string "Password\0" - .align 2,0 - - .global GameLinkCable_80DDB50 - GameLinkCable_80DDB50: - .string "Game Link cable\0" - .align 2,0 - - .global gUnknown_80DDB60 -gUnknown_80DDB60: @ 80DDB60 - - .4byte SendPokemon_80DDB98 - .byte 0x11, 0x00, 0x00, 0x00 - .4byte DontSendPokemon_80DDB80 - .byte 0x12, 0x00, 0x00, 0x00 - .4byte gWonderMailCancel - .byte 0x0a, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x0a, 0x00, 0x00, 0x00 - - .global DontSendPokemon_80DDB80 - DontSendPokemon_80DDB80: - .string "Don{APOSTROPHE}t Send Pokémon\0" - .align 2,0 - - .global SendPokemon_80DDB98 - SendPokemon_80DDB98: - .string "Send Pokémon\0" - .align 2,0 - diff --git a/data/data_80DED44.s b/data/data_80DED44.s index 758d88b..2f6040a 100644 --- a/data/data_80DED44.s +++ b/data/data_80DED44.s @@ -1,98 +1,7 @@ .section .rodata - .global gUnknown_80DFBD0 -gUnknown_80DFBD0: @ 80DFBD0 - .byte 0x00, 0x00, 0x00, 0x00 - - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .byte 0x00, 0x00, 0x00, 0x00 - - - .global gUnknown_80DFBE8 -gUnknown_80DFBE8: @ 80DFBE8 - .byte 0x01, 0x00, 0x0c, 0x00 - - .global gUnknown_80DFBEC -gUnknown_80DFBEC: @ 80DFBEC - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x06, 0x00, 0x00, 0x00 - .byte 0x02, 0x00, 0x02, 0x00 - .byte 0x18, 0x00, 0x0e, 0x00 - .byte 0x0e, 0x00, 0x00, 0x00 - .4byte gUnknown_80DFBE8 - - - .global gUnknown_80DFC04 -gUnknown_80DFC04: @ 80DFC04 - .string "News List\0" - .align 2,0 - .string "pksdir0\0" - - .global gUnknown_80DFC18 -gUnknown_80DFC18: @ 80DFC18 - .byte 0x00, 0x00, 0x00, 0x00 - - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnkData_80DFC30 - gUnkData_80DFC30: - .byte 0x01, 0x00, 0x16, 0x00 - - .global gUnknown_80DFC34 -gUnknown_80DFC34: @ 80DFC34 - .byte 0x00, 0x00, 0x00, 0x00 - - .byte 0x06, 0x00, 0x00, 0x00 - .byte 0x02, 0x00, 0x02, 0x00 - .byte 0x1A, 0x00, 0x10, 0x00 - .byte 0x10, 0x00, 0x00, 0x00 - - .4byte gUnkData_80DFC30 - - .global gUnknown_80DFC4C -gUnknown_80DFC4C: @ 80DFC4C - .string "She\0" - - .global gUnknown_80DFC50 -gUnknown_80DFC50: @ 80DFC50 - .string "He\0" - .align 2,0 - .string "pksdir0\0" - - .global gUnknown_80DFC5C -gUnknown_80DFC5C: @ 80DFC5C - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80DFC74 -gUnknown_80DFC74: @ 80DFC74 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x06, 0x00, 0x00, 0x00 - .byte 0x02, 0x00, 0x02, 0x00 - .byte 0x18, 0x00, 0x0e, 0x00 - .byte 0x0e, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gMailboxText -gMailboxText: @ 80DFC8C - .string "Mailbox\0" - .string "pksdir0\0" - - .global gUnknown_80DFC9C -gUnknown_80DFC9C: @ 80DFC9C + .global gUnknown_80DFCE4 +gUnknown_80DFCE4: @ 80DFCE4 .byte 0x00, 0x00, 0x00, 0x00 .byte 0x03, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 @@ -100,8 +9,8 @@ gUnknown_80DFC9C: @ 80DFC9C .byte 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 - .global gUnknown_80DFCB4 -gUnknown_80DFCB4: @ 80DFCB4 + .global gUnknown_80DFCFC +gUnknown_80DFCFC: @ 80DFCFC .byte 0x00, 0x00, 0x00, 0x00 .byte 0x06, 0x00, 0x00, 0x00 .byte 0x02, 0x00, 0x02, 0x00 @@ -109,36 +18,6 @@ gUnknown_80DFCB4: @ 80DFCB4 .byte 0x0e, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 - .global gBulletinBoardText -gBulletinBoardText: @ 80DFCCC - .string "Bulletin Board\0" - .align 2,0 - .string "pksdir0\0" - - .global gUnknown_80DFCE4 -gUnknown_80DFCE4: @ 80DFCE4 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80DFCFC -gUnknown_80DFCFC: @ 80DFCFC - .byte 0x00, 0x00 - .byte 0x00, 0x00 - .byte 0x06, 0x00 - .byte 0x00, 0x00 - .byte 0x02, 0x00 - .byte 0x02, 0x00 - .byte 0x18, 0x00 - .byte 0x0e, 0x00 - .byte 0x0e, 0x00 - .byte 0x00, 0x00 - .byte 0x00, 0x00 - .byte 0x00, 0x00 - .global gUnknown_80DFD14 gUnknown_80DFD14: @ 80DFD14 .string "Job List\0" @@ -156,33 +35,21 @@ gUnknown_80DFD28: @ 80DFD28 .global gUnknown_80DFD40 gUnknown_80DFD40: @ 80DFD40 - .byte 0x00, 0x00 - .byte 0x00, 0x00 - .byte 0x04, 0x00 - .byte 0x00, 0x00 - .byte 0x15, 0x00 - .byte 0x06, 0x00 - .byte 0x07, 0x00 - .byte 0x03, 0x00 - .byte 0x03, 0x00 - .byte 0x00, 0x00 - .byte 0x00, 0x00 - .byte 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x04, 0x00, 0x00, 0x00 + .byte 0x15, 0x00, 0x06, 0x00 + .byte 0x07, 0x00, 0x03, 0x00 + .byte 0x03, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 .global gUnknown_80DFD58 gUnknown_80DFD58: @ 80DFD58 - .byte 0x00, 0x00 - .byte 0x00, 0x00 - .byte 0x04, 0x00 - .byte 0x00, 0x00 - .byte 0x15, 0x00 - .byte 0x0f, 0x00 - .byte 0x06, 0x00 - .byte 0x03, 0x00 - .byte 0x03, 0x00 - .byte 0x00, 0x00 - .byte 0x00, 0x00 - .byte 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x04, 0x00, 0x00, 0x00 + .byte 0x15, 0x00, 0x0f, 0x00 + .byte 0x06, 0x00, 0x03, 0x00 + .byte 0x03, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 .global gUnknown_80DFD70 gUnknown_80DFD70: @ 80DFD70 @@ -207,7 +74,7 @@ gUnknown_80DFD8C: @ 80DFD8C gUnknown_80DFDA4: @ 80DFDA4 .byte 0x00, 0x00, 0x00, 0x00 .byte 0x06, 0x00, 0x00, 0x00 - .byte 0x02, 0x00, 0x02, 0x0 + .byte 0x02, 0x00, 0x02, 0x00 .byte 0x18, 0x00, 0x0e, 0x00 .byte 0x0e, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 diff --git a/data/data_80E59A8.s b/data/data_80E59A8.s index 9e16004..23b0695 100644 --- a/data/data_80E59A8.s +++ b/data/data_80E59A8.s @@ -1,168 +1,5 @@ .section .rodata - .global gUnknown_80E5CB4 -gUnknown_80E5CB4: @ 80E5CB4 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x02, 0x00, 0x0F, 0x00 - .byte 0x1A, 0x00, 0x03, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80E5CCC -gUnknown_80E5CCC: @ 80E5CCC - .byte 0xe8, 0x5c, 0x0e, 0x08 - .byte 0xde, 0xff, 0x00, 0x00 - .byte 0xe4, 0x5c, 0x0e, 0x08 - .byte 0xde, 0xff, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0xdd, 0xff, 0x00, 0x00 - -sUnknown_80E5CE4: @ 80E5CE4 - .string " \0" - .align 2,0 - - .string "Start an entirely new adventure.\0" - .align 2,0 - - .global gUnknown_80E5D0C -gUnknown_80E5D0C: @ 80E5D0C - .4byte sUnknown_80E5D24, 0xFFDE - .4byte sUnknown_80E5CE4, 0xFFDE - .4byte 0, 0xFFDD - -sUnknown_80E5D24: @ 80E5D24 - .string "Check your career as an adventurer.\0" - .align 2, 0 - - .global gUnknown_80E5D48 -gUnknown_80E5D48: @ 80E5D48 - .4byte sUnknown_80E5D88, 0xFFDE - .4byte sUnknown_80E5D60, 0xFFDE - .4byte 0, 0xFFDD - -sUnknown_80E5D60: @ 80E5D60 - .string "It won~27t be in the release version.\0" - .align 2, 0 - -sUnknown_80E5D88: @ 80E5D88 - .string "This is the Debug Mode.\0" - .align 2, 0 - - .global gUnknown_80E5DA0 -gUnknown_80E5DA0: @ 80E5DA0 - .4byte sUnknown_80E5DCC, 0xFFDE - .4byte sUnknown_80E5DB8, 0xFFDE - .4byte 0, 0xFFDD - -sUnknown_80E5DB8: - .string "you last saved. \0" - .align 2, 0 - -sUnknown_80E5DCC: - .string "Resume your adventure from where\0" - .align 2, 0 - - .global gUnknown_80E5DF0 -gUnknown_80E5DF0: @ 80E5DF0 - .4byte sUnknown_80E5E34, 0xFFDE - .4byte sUnknown_80E5E08, 0xFFDE - .4byte 0, 0xFFDD - -sUnknown_80E5E08: - .string "#C2Beware#R! This will delete it forever!\0" - .align 2, 0 - -sUnknown_80E5E34: - .string "This will delete your saved game data.\0" - .align 2, 0 - - .global gUnknown_80E5E5C -gUnknown_80E5E5C: @ 80E5E5C - .4byte sUnknown_80E5EA0, 0xFFDE - .4byte sUnknown_80E5E74, 0xFFDE - .4byte 0, 0xFFDD - -sUnknown_80E5E74: - .string "passwords~2c friends may rescue each other.\0" - .align 2, 0 - -sUnknown_80E5EA0: - .string "Using a Game Link cable or\0" - .align 2, 0 - - .global gUnknown_80E5EBC -gUnknown_80E5EBC: @ 80E5EBC - .4byte sUnknown_80E5EF8, 0xFFDE - .4byte sUnknown_80E5ED4, 0xFFDE - .4byte 0, 0xFFDD - -sUnknown_80E5ED4: - .string "trade stored items with a friend.\0" - .align 2, 0 - -sUnknown_80E5EF8: - .string "Using a Game Link cable~2c you can\0" - .align 2, 0 - - .global gUnknown_80E5F1C -gUnknown_80E5F1C: @ 80E5F1C - .4byte sUnknown_80E5F58, 0xFFDE - .4byte sUnknown_80E5F34, 0xFFDE - .4byte 0, 0xFFDD - -sUnknown_80E5F34: - .string "You can give up waiting for rescue.\0" - .align 2, 0 - -sUnknown_80E5F58: - .string "You are awaiting rescue by a friend.\0" - .align 2, 0 - - .global gUnknown_80E5F80 -gUnknown_80E5F80: @ 80E5F80 - .4byte sUnknown_80E5FB0, 0xFFDE - .4byte sUnknown_80E5F98, 0xFFDE - .4byte 0, 0xFFDD - -sUnknown_80E5F98: - .string "receive Wonder Mail.\0" - .align 2, 0 - -sUnknown_80E5FB0: - .string "Using passwords~2c you can\0" - .align 2, 0 - - .global gUnknown_80E5FCC -gUnknown_80E5FCC: @ 80E5FCC - .4byte sUnknown_80E6008, 0xFFDE - .4byte sUnknown_80E5FE4, 0xFFDE - .4byte 0, 0xFFDD - -sUnknown_80E5FE4: - .string "receive teams from your friends.\0" - .align 2, 0 - -sUnknown_80E6008: - .string "Using the Dual Slot function~2c you can\0" - .align 2, 0 - - .global gUnknown_80E6030 -gUnknown_80E6030: @ 80E6030 - .4byte sUnknown_80E6070, 0xFFDE - .4byte sUnknown_80E6048, 0xFFDE - .4byte 0, 0xFFDD - -sUnknown_80E6048: - .string "go on an adventure to unknown worlds.\0" - .align 2, 0 - -sUnknown_80E6070: - .string "Using wireless communication~2c you can\0" - .align 2, 0 - - .string "pksdir0\0" - @ Start of Trade Items Data .global gUnknown_80E60A0 diff --git a/include/ds_menus.h b/include/ds_menus.h new file mode 100644 index 0000000..4c7d90f --- /dev/null +++ b/include/ds_menus.h @@ -0,0 +1,11 @@ +#ifndef GUARD_DS_MENUS_H +#define GUARD_DS_MENUS_H + +u32 CreateDualSlotMenu(void); +u32 UpdateDualSlotMenu(void); +void CleanDualSlotMenu(void); +u32 CreateWirelessCommsMenu(void); +u32 UpdateWirelessCommsMenu(void); +void CleanWirelessCommsMenu(void); + +#endif // GUARD_DS_MENUS_H diff --git a/include/load_screen.h b/include/load_screen.h new file mode 100644 index 0000000..690ed1c --- /dev/null +++ b/include/load_screen.h @@ -0,0 +1,9 @@ +#ifndef GUARD_LOAD_SCREEN_H +#define GUARD_LOAD_SCREEN_H + +void CreateLoadScreen(u32); +s32 UpdateLoadScreenMenu(void); +void CleanLoadScreen(void); + +#endif // GUARD_LOAD_SCREEN_H + diff --git a/src/ds_menus.c b/src/ds_menus.c index 4e53311..42c4d13 100644 --- a/src/ds_menus.c +++ b/src/ds_menus.c @@ -12,7 +12,7 @@ u32 UpdateDualSlotMenu(void) return 0; } -void CleanDualSlotMenu() +void CleanDualSlotMenu(void) { } diff --git a/src/main_menu.c b/src/main_menu.c index 37cd217..557f277 100644 --- a/src/main_menu.c +++ b/src/main_menu.c @@ -1,5 +1,7 @@ #include "global.h" #include "debug_menu.h" +#include "ds_menus.h" +#include "load_screen.h" #include "main_menu.h" #include "adventure_log.h" #include "input.h" @@ -22,31 +24,56 @@ // Deletes the Save +struct unkStruct_Menu +{ + // size 0x50; + u8 fil0[0x4C]; + u8 unk4C; + u8 fill4D[0x50 - 0x4D]; +}; + +struct unkStruct_203B34C +{ + // size: 0x1A8 + u32 unk0; + u32 unk4; + struct MenuItem *unk8; // Array of menu choices?? + u8 fillC[0x30 - 0xC]; + s16 menuIndex; + u8 fill32[0x54 - 0x32]; + + u32 unk54; + u8 fill58[0xA4 - 0x58]; + + u32 unkA4; + u32 unkA8; + u8 fillAC[0x144 - 0xAC]; + struct UnkTextStruct2 unk144[4]; + /* 0x1A4 */ u32 currMenuChoice; +}; + +EWRAM_DATA struct MainMenu *gMainMenu; +EWRAM_DATA struct unkStruct_203B34C *gUnknown_203B34C; +EWRAM_DATA u32 gUnknown_203B350; +EWRAM_DATA u32 gUnknown_203B354; // unused everywhere else except here.. + + extern void sub_8094C14(void); extern void sub_8099690(u32); extern void sub_8036FDC(s32); -extern void CreateWirelessCommsMenu(void); extern void CreateFriendRescueMenu(void); -extern void CreateDualSlotMenu(void); extern void CreateWonderMailMenu(void); -extern void CreateLoadScreen(u32); extern void CreateRescuePasswordMenu(u32); extern void CreateSaveMenu(u32); extern u32 UpdateMainMenu(void); -extern s32 UpdateLoadScreenMenu(void); extern s32 UpdateFriendRescueMenu(void); extern s32 UpdateWonderMailMenu(void); -extern s32 UpdateDualSlotMenu(void); -extern s32 UpdateWirelessCommsMenu(void); extern s32 UpdateRescuePasswordMenu(void); extern s32 sub_80383D4(void); extern s32 UpdateSaveMenu(void); -extern void CleanLoadScreen(void); extern void sub_80370D4(void); extern void CleanFriendRescueMenu(void); extern void CleanWonderMailMenu(void); -extern void CleanDualSlotMenu(void); -extern void CleanWirelessCommsMenu(void); extern void CleanRescuePasswordMenu(void); extern void sub_80383A8(void); extern void CleanSaveMenu(void); @@ -55,6 +82,8 @@ extern void sub_8013114(u32 *, s32 *); extern u8 sub_803D0D8(); extern s32 sub_8011C34(); extern s32 sub_8095324(u32); +extern void sub_8012D60(struct unkStruct_Menu *, const struct MenuItem *, u32, u32, u32, u32); +extern void sub_8012E04(struct unkStruct_Menu *, const struct MenuItem *, u32, u32, u32, u32); void CleanMainMenu(void); void DrawMainMenu(void); @@ -64,43 +93,38 @@ bool8 SetMainMenuText(); void SetMainMenuItems(); void sub_8035DA0(void); -struct unkStruct_203B34C -{ - // size: 0x1A8 - u32 unk0; - u32 unk4; - struct MenuItem *unk8; // Array of menu choices?? - u8 fillC[0x30 - 0xC]; - s16 menuIndex; - u8 fill32[0x54 - 0x32]; - - u32 unk54; - u8 fill58[0xA4 - 0x58]; - - u32 unkA4; - u32 unkA8; - u8 fillAC[0x144 - 0xAC]; - struct UnkTextStruct2 unk144[4]; - /* 0x1A4 */ u32 currMenuChoice; -}; - -EWRAM_DATA struct MainMenu *gMainMenu; -EWRAM_DATA struct unkStruct_203B34C *gUnknown_203B34C; -EWRAM_DATA u32 gUnknown_203B350; -EWRAM_DATA u32 gUnknown_203B354; // unused everywhere else except here.. - - -extern const char NewGame_80E5A20[]; -extern const char AdventureLog_80E5A10[]; -extern const char WonderMail_80E5A54[]; -extern const char Continue_80E5AF0[]; -extern const char DeleteSaveData_80E5ADC[]; -extern const char FriendRescue_80E5ACC[]; -extern const char TradeItems_80E5AC0[]; -extern const char ReviveTeam_80E5C0C[]; -extern const char SendItems_80E5C90[]; -extern const char ReceiveItems_80E5C80[]; -extern const char AwaitingRescue_80E5B7C[]; +static const char NewGame_80E5A20[]; +static const char AdventureLog_80E5A10[]; +static const char WonderMail_80E5A54[]; +static const char Continue_80E5AF0[]; +static const char DeleteSaveData_80E5ADC[]; +static const char FriendRescue_80E5ACC[]; +static const char TradeItems_80E5AC0[]; +static const char ReviveTeam_80E5C0C[]; +static const char SendItems_80E5C90[]; +static const char ReceiveItems_80E5C80[]; +static const char AwaitingRescue_80E5B7C[]; +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[]; +static const u8 sUnknown_80E6048[]; +static const u8 sUnknown_80E6070[]; const struct UnkTextStruct2 gUnknown_80E59A8 = { 0x00, 0x00, 0x00, 0x00, @@ -186,11 +210,10 @@ const struct MenuItem gUnknown_80E5A90[] = {NULL, 0xffdd}, }; -const char TradeItems_80E5AC0[] = "Trade Items"; -const char FriendRescue_80E5ACC[] = "Friend Rescue"; -const char DeleteSaveData_80E5ADC[] = "Delete Save Data"; -const char Continue_80E5AF0[] = "Continue"; - +static const char TradeItems_80E5AC0[] = "Trade Items"; +static const char FriendRescue_80E5ACC[] = "Friend Rescue"; +static const char DeleteSaveData_80E5ADC[] = "Delete Save Data"; +static const char Continue_80E5AF0[] = "Continue"; const struct MenuItem gUnknown_80E5AFC[] = { @@ -281,8 +304,8 @@ const struct MenuItem gUnknown_80E5C68[] = {NULL, 0xffdd}, }; -const char ReceiveItems_80E5C80[] = "Receive Items"; -const char SendItems_80E5C90[] = "Send Items"; +static const char ReceiveItems_80E5C80[] = "Receive Items"; +static const char SendItems_80E5C90[] = "Send Items"; const struct MenuItem gUnknown_80E5C9C[] = { @@ -291,32 +314,117 @@ const struct MenuItem gUnknown_80E5C9C[] = {NULL, 0xffdd}, }; -extern const struct UnkTextStruct2 gUnknown_80E5CB4; -extern const struct MenuItem gUnknown_80E5CCC[]; -extern const struct MenuItem gUnknown_80E5D0C[]; -extern const struct MenuItem gUnknown_80E5D48[]; -extern const struct MenuItem gUnknown_80E5DA0[]; -extern const struct MenuItem gUnknown_80E5DF0[]; -extern const struct MenuItem gUnknown_80E5E5C[]; -extern const struct MenuItem gUnknown_80E5EBC[]; -extern const struct MenuItem gUnknown_80E5F1C[]; -extern const struct MenuItem gUnknown_80E5F80[]; -extern const struct MenuItem gUnknown_80E5FCC[]; -extern const struct MenuItem gUnknown_80E6030[]; +const struct UnkTextStruct2 gUnknown_80E5CB4 = { + 0x00, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x0F, 0x00, + 0x1A, 0x03, + 0x03, 0x00, + NULL +}; +const struct 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."; -struct unkStruct_Menu +const struct MenuItem gUnknown_80E5D0C[] = { - // size 0x50; - u8 fil0[0x4C]; - u8 unk4C; - u8 fill4D[0x50 - 0x4D]; + {sUnknown_80E5D24, 0xffde}, + {sUnknown_80E5CE4, 0xffde}, + {NULL, 0xffdd}, }; -extern void sub_8012D60(struct unkStruct_Menu *, const struct MenuItem *, u32, u32, u32, u32); -extern void sub_8012E04(struct unkStruct_Menu *, const struct MenuItem *, u32, u32, u32, u32); +static const u8 sUnknown_80E5D24[] = "Check your career as an adventurer."; + +const struct 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 struct 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 struct MenuItem gUnknown_80E5DF0[] = { + {sUnknown_80E5E34, 0xFFDE}, + {sUnknown_80E5E08, 0xFFDE}, + {0, 0xFFDD} +}; + +static const u8 sUnknown_80E5E08[] = _("#C2Beware#R! This will delete it forever!"); +static const u8 sUnknown_80E5E34[] = "This will delete your saved game data."; + +const struct 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 struct 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 struct 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 struct 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 struct 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"); + +const struct 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"); +static const u8 sMainMenu_fill0[] = "pksdir0"; void InitMainMenu(void) { diff --git a/src/wonder_mail.c b/src/wonder_mail.c index fd5e1df..b4c0a5d 100644 --- a/src/wonder_mail.c +++ b/src/wonder_mail.c @@ -23,6 +23,46 @@ extern void sub_80310B4(); extern u32 sub_8095350(); extern u8 sub_80A2824(u8); +extern const u8 DontSendPokemon_80DDB80[]; +extern const u8 SendPokemon_80DDB98[]; +extern const u8 gWonderMailCancel[]; +extern const u8 Password_80DDB44[]; +extern const u8 GameLinkCable_80DDB50[]; +extern const u8 Confirm_80DDB1C[]; +extern const u8 Info_80DDB14[]; + +const struct MenuItem gUnknown_80DDAFC[] = +{ + {Confirm_80DDB1C, 0xB}, + {Info_80DDB14, 0xC}, + {NULL, 0xA}, +}; + +ALIGNED(4) const u8 Info_80DDB14[] = "Info"; +ALIGNED(4) const u8 Confirm_80DDB1C[] = "Confirm"; + +const struct MenuItem gUnknown_80DDB24[] = +{ + {GameLinkCable_80DDB50, 0xD}, + {Password_80DDB44, 0xF}, + {gWonderMailCancel, 0xA}, + {NULL, 0xA}, +}; + +ALIGNED(4) const u8 Password_80DDB44[] = "Password"; +ALIGNED(4) const u8 GameLinkCable_80DDB50[] = "Game Link cable"; + +const struct MenuItem gUnknown_80DDB60[] = +{ + {SendPokemon_80DDB98, 0x11}, + {DontSendPokemon_80DDB80, 0x12}, + {gWonderMailCancel, 0xA}, + {NULL, 0xA}, +}; + +ALIGNED(4) const u8 DontSendPokemon_80DDB80[] = _("Don{APOSTROPHE}t Send Pokémon"); +ALIGNED(4) const u8 SendPokemon_80DDB98[] = _("Send Pokémon"); + #include "data/wonder_mail_1.h" extern u8 sub_809539C(u32, u32); @@ -51,7 +91,7 @@ extern void sub_803092C(void); extern u32 sub_80154F0(); extern u32 sub_8039068(u32, u8 *r1, u8 *r0); -extern void sub_8014248(const char *r0, u32, u32, struct MenuItem *r4, u32, u32, u32, void *r5, u32); +extern void sub_8014248(const char *r0, u32, u32, const struct MenuItem *r4, u32, u32, u32, void *r5, u32); extern void sub_8095274(u32); extern void sub_80155F0(); extern void sub_80951BC(u8 *r0); @@ -83,16 +123,14 @@ extern void sub_8031E10(void); extern void sub_803084C(void); extern void sub_8030DE4(); extern u8 gUnknown_80DDAE4[]; +extern u8 gUnknown_80DDACC[]; extern struct MenuItem gUnknown_80DDAA0[]; extern struct MenuItem gUnknown_80DDA80[]; -extern struct MenuItem gUnknown_80DDAFC[]; -extern struct MenuItem gUnknown_80DDB60[]; extern struct MenuItem gUnknown_80DDA64[]; -extern struct MenuItem gUnknown_80DDB24[]; extern struct MenuItem gUnknown_80DD9EC[]; -extern u8 gUnknown_80DDACC[]; extern struct MenuItem gUnknown_80DD970[]; + extern void nullsub_23(u32); extern s32 sub_8037D64(u32, void *, void *); extern s32 sub_80381F4(u32, void *, void *); @@ -108,7 +146,7 @@ extern u32 sub_8023CE8(void); extern u32 sub_8030894(void); extern void sub_8030F58(u32); extern void sub_8023DA4(void); -extern void SetMenuItems(void *, struct UnkTextStruct2 *, u32, u8 *, struct MenuItem *, u32, u32, u32); +extern void SetMenuItems(void *, struct UnkTextStruct2 *, u32, u8 *, const struct MenuItem *, u32, u32, u32); extern void sub_8029B34(void); extern void sub_8029AD8(void); extern void sub_8029AF4(void); diff --git a/src/wonder_mail_2.c b/src/wonder_mail_2.c index 3ce4aa2..816dba2 100644 --- a/src/wonder_mail_2.c +++ b/src/wonder_mail_2.c @@ -119,14 +119,6 @@ extern void sub_802BB28(void); extern void sub_8013E54(void); extern s32 sub_8012A64(u32 *, u32); -extern struct UnkTextStruct2 gUnknown_80DFBEC; - -extern struct UnkTextStruct2 gUnknown_80DFBD0; - -extern struct UnkTextStruct2 gUnknown_80DFC34; - -extern struct UnkTextStruct2 gUnknown_80DFC18; - extern struct unkStruct_203B2C8 *gUnknown_203B2C8; extern void sub_8014248(const char *r0, u32, u32, const struct MenuItem *r4, u32, u32, u32, struct OpenedFile **r5, u32); @@ -135,8 +127,6 @@ extern void sub_80920D8(u8 *buffer); extern void sub_8097790(void); extern char gUnknown_202E5D8[0x50]; extern char gAvailablePokemonNames[0x50]; -extern u8 gUnknown_80DFC4C[]; -extern u8 gUnknown_80DFC50[]; extern u32 sub_802F298(void); extern void sub_802F2C0(void); extern u8 sub_8099394(u8 *); @@ -158,15 +148,11 @@ extern u8 sub_80023E4(u32); extern void nullsub_131(void); extern void sub_802ABF8(void); -extern u8 gUnknown_80DFC04[]; -extern u8 gUnknown_80DFBE8[]; -extern struct UnkTextStruct2 gUnknown_80DFC74; -extern struct UnkTextStruct2 gUnknown_80DFC5C; extern void sub_8008C54(u32); extern void sub_80073B8(u32); extern void sub_802BC7C(void); extern void sub_80073E0(u32); -extern void xxx_call_draw_string(s32 x, u32 y, u8 *, u32 , u32); +extern void xxx_call_draw_string(s32 x, u32 y, const u8 *, u32 , u32); extern void sub_8012BC4(u32 x, u32 y, u32, u32, u32, u32); extern void xxx_format_and_draw(u32, u32, const u8 *, u32, u32); extern void sub_803B6B0(u32, u32, u32, u32); @@ -182,9 +168,8 @@ extern void sub_8012D34(struct UnkTextStruct2 *, u32); extern s32 CountEmptyMailSlots(void); extern void sub_8013848(u32 *, s32, u32, u32); -ALIGNED(4) const char gUnknown_80DF9F0[] = "????"; +ALIGNED(4) const char gRescueTeamNamePlaceholder[] = "????"; -// NOTE: had to be pre-proc'd to match ALIGNED(4) const char gUnknown_80DF9F8[] = _( " Oh{COMMA} hello!\n" "Your rescue mission went well{COMMA} didn{APOSTROPHE}t it?\n" @@ -209,7 +194,102 @@ ALIGNED(4) const char gUnknown_80DFB14[] = _( ALIGNED(4) const char wonder_mail_2_fill[] = "pksdir0"; +const struct UnkTextStruct2 gUnknown_80DFBD0 = +{ + 0x00, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, + 0x00, 0x00, + NULL +}; + +const u8 gUnknown_80DFBE8[] = { 0x01, 0x00, 0x0C, 0x00 }; + +const struct UnkTextStruct2 gUnknown_80DFBEC = +{ + 0x00, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x02, 0x00, + 0x18, 0x0E, + 0x0E, 0x00, + gUnknown_80DFBE8 +}; + +ALIGNED(4) const u8 gUnknown_80DFC04[] = "News List"; +ALIGNED(4) static const char wonder_mail_2_fill1[] = "pksdir0"; + +const struct UnkTextStruct2 gUnknown_80DFC18 = +{ + 0x00, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, + 0x00, 0x00, + NULL +}; + +const u8 gUnkData_80DFC30[] = { 0x01, 0x00, 0x16, 0x00 }; + +const struct UnkTextStruct2 gUnknown_80DFC34 = +{ + 0x00, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x02, 0x00, + 0x1A, 0x10, + 0x10, 0x00, + gUnkData_80DFC30 +}; + +ALIGNED(4) const u8 gUnknown_80DFC4C[] = "She"; +ALIGNED(4) const u8 gUnknown_80DFC50[] = "He"; +ALIGNED(4) static const char wonder_mail_2_fill2[] = "pksdir0"; + +const struct UnkTextStruct2 gUnknown_80DFC5C = +{ + 0x00, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, + 0x00, 0x00, + NULL +}; + +const struct UnkTextStruct2 gUnknown_80DFC74 = +{ + 0x00, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x02, 0x00, + 0x18, 0x0E, + 0x0E, 0x00, + NULL +}; + +ALIGNED(4) const u8 gMailboxText[] = "Mailbox"; +ALIGNED(4) static const char wonder_mail_2_fill3[] = "pksdir0"; + +const struct UnkTextStruct2 gUnknown_80DFC9C = +{ + 0x00, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, + 0x00, 0x00, + NULL +}; + +const struct UnkTextStruct2 gUnknown_80DFCB4 = +{ + 0x00, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x02, 0x00, + 0x18, 0x0E, + 0x0E, 0x00, + NULL +}; +ALIGNED(4) const u8 gBulletinBoardText[] = "Bulletin Board"; +ALIGNED(4) static const char wonder_mail_2_fill4[] = "pksdir0"; u32 sub_802B2D4(void) { @@ -291,7 +371,7 @@ void sub_802B3E0(void) } else { // Copy "????" to buffer - strcpy(teamNameBuffer,gUnknown_80DF9F0); + strcpy(teamNameBuffer,gRescueTeamNamePlaceholder); } // Print and expand placeholders? ExpandPlaceholdersBuffer(gUnknown_203B2C8->teamName,gUnknown_80DF9F8,teamNameBuffer); |