move some more menu items over and figure out sub_8035CF4

This commit is contained in:
Seth Barberee 2023-02-13 16:59:10 -08:00
parent 78d49f5ca6
commit 1c92acbef7
9 changed files with 449 additions and 491 deletions

View File

@ -520,358 +520,3 @@ gUnknown_80E6EAC: @ 80E6EAC
.asciz "pksdir0"
.global gUnknown_80E6F20
gUnknown_80E6F20: @ 80E6F20
.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_80E6F38
gUnknown_80E6F38: @ 80E6F38
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x00, 0x00
.byte 0x05, 0x00, 0x08, 0x00
.byte 0x15, 0x00, 0x05, 0x00
.byte 0x05, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80E6F50
gUnknown_80E6F50: @ 80E6F50
.4byte sUnknown_80E6FAC, 0x4
.4byte sUnknown_80E6F90, 0x4
.4byte sUnknown_80E6F70, 0x4
.4byte 0, 0x2
sUnknown_80E6F70:
.string "#+Don~27t turn off the power.\0"
.align 2, 0
sUnknown_80E6F90:
.string "#+Saving your adventure!\0"
.align 2, 0
sUnknown_80E6FAC:
.string "#+#C2Beware!#R \0"
.align 2, 0
.global gUnknown_80E6FBC
gUnknown_80E6FBC: @ 80E6FBC
.4byte sUnknown_80E7008, 0x4
.4byte sUnknown_80E6FF0, 0x4
.4byte sUnknown_80E6FDC, 0x4
.4byte 0, 0x2
sUnknown_80E6FDC:
.string "#+has been saved.\0"
.align 2, 0
sUnknown_80E6FF0:
.string "#+Your adventure so far\0"
.align 2, 0
sUnknown_80E7008:
.string "#+#CGSuccess!#R \0"
.align 2, 0
.global gUnknown_80E701C
gUnknown_80E701C: @ 80E701C
.4byte sUnknown_80E7078, 0x4
.4byte sUnknown_80E7050, 0x4
.4byte sUnknown_80E703C, 0x4
.4byte 0, 0x2
sUnknown_80E703C:
.string "#+Please try again.\0"
.align 2, 0
sUnknown_80E7050:
.string "#+Your adventure could not be saved.\0"
.align 2, 0
sUnknown_80E7078:
.string "#+#C2Save failed!#R \0"
.align 2, 0
.global gUnknown_80E7090
gUnknown_80E7090: @ 80E7090
.4byte sUnknown_80E6FAC, 0x4
.4byte DeletingAdventure_80E70B0, 0x4
.4byte sUnknown_80E6F70, 0x4
.4byte 0, 0x2
DeletingAdventure_80E70B0:
.string "{CENTER_ALIGN}Deleting your adventure!\0"
.align 2, 0
.global gUnknown_80E70CC
gUnknown_80E70CC: @ 80E70CC
.4byte sUnknown_80E7008, 0x4
.4byte AdventureDeleted_80E70F0, 0x4
.4byte Data_80E70EC, 0x4
.4byte 0, 0x2
Data_80E70EC:
.string " \0"
.align 2, 0
AdventureDeleted_80E70F0:
.string "{CENTER_ALIGN}Your adventure has been deleted.\0"
.align 2, 0
.global gUnknown_80E7114
gUnknown_80E7114: @ 80E7114
.4byte sUnknown_80E715C, 0x4
.4byte sUnknown_80E7134, 0x4
.4byte sUnknown_80E703C, 0x4
.4byte 0, 0x2
sUnknown_80E7134:
.string "#+Your adventure could not be deleted.\0"
.align 2, 0
sUnknown_80E715C:
.string "#+#C2Deletion failed!#R \0"
.align 2, 0
.global gUnknown_80E7178
gUnknown_80E7178: @ 80E7178
.string "#+The data could not be written.\n"
.string "#+Please turn off the power and remove\n"
.string "#+and reinsert the DS Card.\0"
.align 2, 0
.string "pksdir0\0"
.global gUnknown_80E71E4
gUnknown_80E71E4: @ 80E71E4
.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_80E71FC
gUnknown_80E71FC: @ 80E71FC
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x09, 0x00
.byte 0x17, 0x00, 0x05, 0x00
.byte 0x05, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80E7214
gUnknown_80E7214: @ 80E7214
.4byte Error_80E7268, 0xC
.4byte IncorrectPassword_80E7250, 0xC
.4byte CheckAgain_80E7234, 0xC
.4byte 0, 0xA
CheckAgain_80E7234:
.string "{CENTER_ALIGN}Please check it again.\0"
.align 2, 0
IncorrectPassword_80E7250:
.string "{CENTER_ALIGN}Incorrect password!\0"
.align 2, 0
Error_80E7268:
.string "{CENTER_ALIGN}{COLOR_1 RED}Error!{END_COLOR_TEXT_1} \0"
.align 2, 0
.global gUnknown_80E7278
gUnknown_80E7278: @ 80E7278
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x09, 0x00
.byte 0x17, 0x00, 0x05, 0x00
.byte 0x05, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80E7290
gUnknown_80E7290: @ 80E7290
.4byte Success_80E72D8, 0xC
.4byte PasswordAccept_80E72B4, 0xC
.4byte DATA_80E72B0, 0xC
.4byte 0, 0xA
DATA_80E72B0:
.string " \0"
.align 2, 0
PasswordAccept_80E72B4:
.string "{CENTER_ALIGN}The password has been accepted.\0"
.align 2, 0
Success_80E72D8:
.string "{CENTER_ALIGN}{COLOR_1 LIGHT_BLUE_2}Success!{END_COLOR_TEXT_1} \0"
.align 2, 0
.global gUnknown_80E72EC
gUnknown_80E72EC: @ 80E72EC
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x09, 0x00
.byte 0x17, 0x00, 0x05, 0x00
.byte 0x05, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80E7304
gUnknown_80E7304: @ 80E7304
.4byte Error_80E7268, 0xC
.4byte NotSOSMail_80E7324, 0xC
.4byte CheckAgain_80E7234, 0xC
.4byte 0, 0xA
NotSOSMail_80E7324:
.string "{CENTER_ALIGN}This is not an {COLOR_1 LIGHT_BLUE_2}SOS Mail{END_COLOR_TEXT_1}.\0"
.align 2, 0
.global gUnknown_80E7344
gUnknown_80E7344: @ 80E7344
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x09, 0x00
.byte 0x17, 0x00, 0x05, 0x00
.byte 0x05, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80E735C
gUnknown_80E735C: @ 80E735C
.4byte Error_80E7268, 0xC
.4byte ReceiveSOSMail_80E737C, 0xC
.4byte CheckAgain_80E7234, 0xC
.4byte 0, 0xA
ReceiveSOSMail_80E737C:
.string "{CENTER_ALIGN}This {COLOR_1 LIGHT_BLUE_2}SOS Mail{END_COLOR_TEXT_1} has been received already.\0"
.align 2, 0
.global gUnknown_80E73AC
gUnknown_80E73AC: @ 80E73AC
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x09, 0x00
.byte 0x17, 0x00, 0x05, 0x00
.byte 0x05, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80E73C4
gUnknown_80E73C4: @ 80E73C4
.4byte Error_80E7268, 0xC
.4byte sUnknown_80E73E4, 0xC
.4byte CheckAgain_80E7234, 0xC
.4byte 0, 0xA
sUnknown_80E73E4:
.string "#+This is not an #CGA-OK Mail#R.\0"
.align 2, 0
.global gUnknown_80E7408
gUnknown_80E7408: @ 80E7408
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x09, 0x00
.byte 0x17, 0x00, 0x05, 0x00
.byte 0x05, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80E7420
gUnknown_80E7420: @ 80E7420
.4byte Error_80E7268, 0xC
.4byte sUnknown_80E7440, 0xC
.4byte CheckAgain_80E7234, 0xC
.4byte 0, 0xA
sUnknown_80E7440:
.string "#+This #CGA-OK Mail#R cannot be used.\0"
.align 2, 0
.global gUnknown_80E7468
gUnknown_80E7468: @ 80E7468
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x09, 0x00
.byte 0x17, 0x00, 0x05, 0x00
.byte 0x05, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80E7480
gUnknown_80E7480: @ 80E7480
.4byte Error_80E7268, 0xC
.4byte sUnknown_80E74A0, 0xC
.4byte CheckAgain_80E7234, 0xC
.4byte 0, 0xA
sUnknown_80E74A0:
.string "#+This is not a #CGThank-You Mail#R.\0"
.align 2, 0
.global gUnknown_80E74C8
gUnknown_80E74C8: @ 80E74C8
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x09, 0x00
.byte 0x17, 0x00, 0x05, 0x00
.byte 0x05, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80E74E0
gUnknown_80E74E0: @ 80E74E0
.4byte Error_80E7268, 0xC
.4byte sUnknown_80E7500, 0xC
.4byte CheckAgain_80E7234, 0xC
.4byte 0, 0xA
sUnknown_80E7500:
.string "#+This #CGThank-You Mail#R cannot be used.\0"
.align 2, 0
.global gUnknown_80E752C
gUnknown_80E752C: @ 80E752C
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x09, 0x00
.byte 0x17, 0x00, 0x05, 0x00
.byte 0x05, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80E7544
gUnknown_80E7544: @ 80E7544
.4byte Error_80E7268, 0xC
.4byte sUnknown_80E7564, 0xC
.4byte CheckAgain_80E7234, 0xC
.4byte 0, 0xA
sUnknown_80E7564:
.string "#+This is not a #CGWonder Mail#R.\0"
.align 2, 0
.global gUnknown_80E7588
gUnknown_80E7588: @ 80E7588
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x09, 0x00
.byte 0x17, 0x00, 0x05, 0x00
.byte 0x05, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80E75A0
gUnknown_80E75A0: @ 80E75A0
.4byte Error_80E7268, 0xC
.4byte sUnknown_80E75CC, 0xC
.4byte sUnknown_80E75C0, 0xC
.4byte 0, 0xA
sUnknown_80E75C0:
.string "#+new mail.\0"
.align 2, 0
sUnknown_80E75CC:
.string "#+There is no space for receiving\0"
.align 2, 0
.string "pksdir0\0"

233
data/data_80E6F20.s Normal file
View File

@ -0,0 +1,233 @@
.section .rodata
.global gUnknown_80E71E4
gUnknown_80E71E4: @ 80E71E4
.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_80E71FC
gUnknown_80E71FC: @ 80E71FC
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x09, 0x00
.byte 0x17, 0x00, 0x05, 0x00
.byte 0x05, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80E7214
gUnknown_80E7214: @ 80E7214
.4byte Error_80E7268, 0xC
.4byte IncorrectPassword_80E7250, 0xC
.4byte CheckAgain_80E7234, 0xC
.4byte 0, 0xA
CheckAgain_80E7234:
.string "{CENTER_ALIGN}Please check it again.\0"
.align 2, 0
IncorrectPassword_80E7250:
.string "{CENTER_ALIGN}Incorrect password!\0"
.align 2, 0
Error_80E7268:
.string "{CENTER_ALIGN}{COLOR_1 RED}Error!{END_COLOR_TEXT_1} \0"
.align 2, 0
.global gUnknown_80E7278
gUnknown_80E7278: @ 80E7278
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x09, 0x00
.byte 0x17, 0x00, 0x05, 0x00
.byte 0x05, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80E7290
gUnknown_80E7290: @ 80E7290
.4byte Success_80E72D8, 0xC
.4byte PasswordAccept_80E72B4, 0xC
.4byte DATA_80E72B0, 0xC
.4byte 0, 0xA
DATA_80E72B0:
.string " \0"
.align 2, 0
PasswordAccept_80E72B4:
.string "{CENTER_ALIGN}The password has been accepted.\0"
.align 2, 0
Success_80E72D8:
.string "{CENTER_ALIGN}{COLOR_1 LIGHT_BLUE_2}Success!{END_COLOR_TEXT_1} \0"
.align 2, 0
.global gUnknown_80E72EC
gUnknown_80E72EC: @ 80E72EC
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x09, 0x00
.byte 0x17, 0x00, 0x05, 0x00
.byte 0x05, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80E7304
gUnknown_80E7304: @ 80E7304
.4byte Error_80E7268, 0xC
.4byte NotSOSMail_80E7324, 0xC
.4byte CheckAgain_80E7234, 0xC
.4byte 0, 0xA
NotSOSMail_80E7324:
.string "{CENTER_ALIGN}This is not an {COLOR_1 LIGHT_BLUE_2}SOS Mail{END_COLOR_TEXT_1}.\0"
.align 2, 0
.global gUnknown_80E7344
gUnknown_80E7344: @ 80E7344
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x09, 0x00
.byte 0x17, 0x00, 0x05, 0x00
.byte 0x05, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80E735C
gUnknown_80E735C: @ 80E735C
.4byte Error_80E7268, 0xC
.4byte ReceiveSOSMail_80E737C, 0xC
.4byte CheckAgain_80E7234, 0xC
.4byte 0, 0xA
ReceiveSOSMail_80E737C:
.string "{CENTER_ALIGN}This {COLOR_1 LIGHT_BLUE_2}SOS Mail{END_COLOR_TEXT_1} has been received already.\0"
.align 2, 0
.global gUnknown_80E73AC
gUnknown_80E73AC: @ 80E73AC
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x09, 0x00
.byte 0x17, 0x00, 0x05, 0x00
.byte 0x05, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80E73C4
gUnknown_80E73C4: @ 80E73C4
.4byte Error_80E7268, 0xC
.4byte sUnknown_80E73E4, 0xC
.4byte CheckAgain_80E7234, 0xC
.4byte 0, 0xA
sUnknown_80E73E4:
.string "#+This is not an #CGA-OK Mail#R.\0"
.align 2, 0
.global gUnknown_80E7408
gUnknown_80E7408: @ 80E7408
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x09, 0x00
.byte 0x17, 0x00, 0x05, 0x00
.byte 0x05, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80E7420
gUnknown_80E7420: @ 80E7420
.4byte Error_80E7268, 0xC
.4byte sUnknown_80E7440, 0xC
.4byte CheckAgain_80E7234, 0xC
.4byte 0, 0xA
sUnknown_80E7440:
.string "#+This #CGA-OK Mail#R cannot be used.\0"
.align 2, 0
.global gUnknown_80E7468
gUnknown_80E7468: @ 80E7468
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x09, 0x00
.byte 0x17, 0x00, 0x05, 0x00
.byte 0x05, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80E7480
gUnknown_80E7480: @ 80E7480
.4byte Error_80E7268, 0xC
.4byte sUnknown_80E74A0, 0xC
.4byte CheckAgain_80E7234, 0xC
.4byte 0, 0xA
sUnknown_80E74A0:
.string "#+This is not a #CGThank-You Mail#R.\0"
.align 2, 0
.global gUnknown_80E74C8
gUnknown_80E74C8: @ 80E74C8
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x09, 0x00
.byte 0x17, 0x00, 0x05, 0x00
.byte 0x05, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80E74E0
gUnknown_80E74E0: @ 80E74E0
.4byte Error_80E7268, 0xC
.4byte sUnknown_80E7500, 0xC
.4byte CheckAgain_80E7234, 0xC
.4byte 0, 0xA
sUnknown_80E7500:
.string "#+This #CGThank-You Mail#R cannot be used.\0"
.align 2, 0
.global gUnknown_80E752C
gUnknown_80E752C: @ 80E752C
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x09, 0x00
.byte 0x17, 0x00, 0x05, 0x00
.byte 0x05, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80E7544
gUnknown_80E7544: @ 80E7544
.4byte Error_80E7268, 0xC
.4byte sUnknown_80E7564, 0xC
.4byte CheckAgain_80E7234, 0xC
.4byte 0, 0xA
sUnknown_80E7564:
.string "#+This is not a #CGWonder Mail#R.\0"
.align 2, 0
.global gUnknown_80E7588
gUnknown_80E7588: @ 80E7588
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x09, 0x00
.byte 0x17, 0x00, 0x05, 0x00
.byte 0x05, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80E75A0
gUnknown_80E75A0: @ 80E75A0
.4byte Error_80E7268, 0xC
.4byte sUnknown_80E75CC, 0xC
.4byte sUnknown_80E75C0, 0xC
.4byte 0, 0xA
sUnknown_80E75C0:
.string "#+new mail.\0"
.align 2, 0
sUnknown_80E75CC:
.string "#+There is no space for receiving\0"
.align 2, 0
.string "pksdir0\0"

View File

@ -5,6 +5,7 @@
#include "item.h"
#include "pokemon.h"
#include "wonder_mail.h"
#include "menu.h"
struct WonderMailStruct_203B33C
{
@ -21,13 +22,7 @@ struct WonderMailStruct_203B33C
struct unkStruct_203B480 unk1B8;
struct unkStruct_203B480 unk1E8;
u8 unk218;
u8 padding7[3];
u32 unk21C;
u8 padding[0x7C];
u32 unk29C;
u8 padding6[0x6C];
u32 unk30C;
u8 padding8[0x4C];
struct MenuStruct unk21C[4];
struct UnkTextStruct2 unk35C[4];
struct UnkTextStruct2 unk3BC[4];
struct Item unk41C;

View File

@ -55,14 +55,14 @@ struct UnkInputStruct
/* 0x2 */ u8 unk2;
/* 0x3 */ u8 unk3;
/* 0x4 */ u8 unk4;
/* 0x5 */ u32 unk5;
/* 0x9 */ u32 unk9;
/* 0xD */ u32 unkD;
/* 0x11 */ u32 unk11;
/* 0x15 */ u32 unk15;
/* 0x19 */ u32 unk19;
/* 0x1D */ u32 unk1D;
/* 0x21 */ u32 unk21;
/* 0x8 */ u32 unk8;
/* 0xC */ u32 unkC;
/* 0x10 */ u32 unk10;
/* 0x14 */ u32 unk14;
/* 0x18 */ u32 unk18;
/* 0x1C */ u32 unk1C;
/* 0x20 */ u32 unk20;
/* 0x24 */ u32 unk24;
/* 0x28 */ u8 unk28;
/* 0x29 */ u8 a_button;
/* 0x2A */ u8 b_button;

View File

@ -7,4 +7,25 @@ struct MenuItem
s32 menuAction; // action??
};
struct MenuStruct
{
// size: 0x50
u32 unk0;
/* 0x4 */ struct MenuItem *menuItems;
u32 unk8;
u16 *unkC;
s32 fill10;
/* 0x14 */ u32 unk14;
u8 fill18[0x2C - 0x18];
/* 0x2C */ s16 menuIndex;
s16 unk2E;
u8 fill30[0x38 - 0x30];
u16 unk38;
u8 fill3A[0x48 - 0x3A];
s32 menuAction;
u8 unk4C;
u8 unk4D;
};
#endif // GUARD_MENU_H

View File

@ -445,6 +445,8 @@ SECTIONS {
src/main_menu.o(.rodata);
src/trade_items_menu.o(.rodata);
data/data_80E59A8.o(.rodata);
src/save_menu.o(.rodata);
data/data_80E6F20.o(.rodata);
src/load_screen.o(.rodata);
src/wonder_mail_main_menu.o(.rodata);
src/debug_menu.o(.rodata);

View File

@ -45,10 +45,9 @@ extern u32 sub_80154F0();
extern void sub_80155F0();
extern void sub_80141B4(u8 *r0, u32, u32 *r1, u32);
extern void sub_8014248(const char *r0, u32, u32, struct MenuItem *r4, u32, u32, u32, u32 *r5, u32);
extern void SetMenuItems(void *menu, struct UnkTextStruct2 *, u32, const struct UnkTextStruct2 *, const struct MenuItem *entries, u32, u32, u32);
extern u8 sub_8012FD8(u32 *);
extern void sub_8013114(u32 *, s32 *);
extern u8 sub_8012FD8(struct MenuStruct *);
extern void sub_8013114(struct MenuStruct *, s32 *);
extern u32 sub_801CA08(u32);
extern void sub_801CBB8(void);
extern void sub_801CB5C(u32);
@ -56,7 +55,7 @@ extern void sub_8035CC0(struct UnkTextStruct2 *, u32);
extern void sub_801B3C0(struct Item *);
extern u32 sub_801B410(void);
extern void sub_801B450(void);
extern void sub_8035CF4(u32 *, u32, u32);
extern void sub_8035CF4(struct MenuStruct *, u32, u32);
extern u8 sub_801CB24(void);
extern u32 sub_8030DA0(void);
extern void sub_8030DE4(void);
@ -232,7 +231,6 @@ extern void sub_8023868(u32, u32, u32, u32);
extern u32 sub_801D008(void);
extern void sub_8023DA4(void);
extern void sub_8023C60(void);
extern void sub_8035CF4(u32 *, u32, u32);
extern s32 sub_8037B28(u32);
extern void sub_803092C(void);
extern void sub_801CCD8(void);
@ -240,7 +238,6 @@ extern void sub_80151C0(u32, u8 *);
extern void sub_801C8C4(u32, u32, s32 * , u32);
extern void xxx_call_start_bg_music(void);
extern u32 GetDungeonTeamRankPts(struct DungeonLocation *, u32);
extern void SetMenuItems(void *menu, struct UnkTextStruct2 *, u32, const struct UnkTextStruct2 *, const struct MenuItem *entries, u32, u32, u32);
extern void sub_802F204(struct unkStruct_802F204 *, u32);
extern void nullsub_23(u32);
extern s32 sub_8037D64(u32, void *, void *);
@ -828,8 +825,8 @@ void sub_8034074(void)
menuAction = -1;
sub_8030768(0);
if(!sub_8012FD8(&gUnknown_203B33C->unk30C))
sub_8013114(&gUnknown_203B33C->unk30C, &menuAction);
if(!sub_8012FD8(&gUnknown_203B33C->unk21C[3]))
sub_8013114(&gUnknown_203B33C->unk21C[3], &menuAction);
switch(menuAction)
{
case 9:
@ -865,7 +862,7 @@ void sub_8034130(void)
sub_803092C();
if(gUnknown_203B33C->fallbackState == 0x7E)
{
sub_8035CF4(&gUnknown_203B33C->unk21C, 3, 1);
sub_8035CF4(gUnknown_203B33C->unk21C, 3, 1);
SetFriendRescueMenuState(0x1E);
}
else
@ -911,8 +908,8 @@ void sub_8034254(void)
menuAction = -1;
sub_8023A94(0);
if(!sub_8012FD8(&gUnknown_203B33C->unk30C))
sub_8013114(&gUnknown_203B33C->unk30C, &menuAction);
if(!sub_8012FD8(&gUnknown_203B33C->unk21C[3]))
sub_8013114(&gUnknown_203B33C->unk21C[3], &menuAction);
switch(menuAction)
{
case 9:
@ -951,7 +948,7 @@ void sub_8034310(void)
sub_8023B7C(1);
if(gUnknown_203B33C->fallbackState == 0x7E)
{
sub_8035CF4(&gUnknown_203B33C->unk21C, 3, 1);
sub_8035CF4(gUnknown_203B33C->unk21C, 3, 1);
SetFriendRescueMenuState(0x27);
}
else
@ -1106,8 +1103,8 @@ void sub_8034590(void)
menuAction = -1;
sub_8030768(0);
if(!sub_8012FD8(&gUnknown_203B33C->unk30C))
sub_8013114(&gUnknown_203B33C->unk30C, &menuAction);
if(!sub_8012FD8(&gUnknown_203B33C->unk21C[3]))
sub_8013114(&gUnknown_203B33C->unk21C[3], &menuAction);
switch(menuAction)
{
case 9:
@ -1143,7 +1140,7 @@ void sub_803464C(void)
sub_803092C();
if(gUnknown_203B33C->fallbackState == 0x7E)
{
sub_8035CF4(&gUnknown_203B33C->unk21C, 3, 1);
sub_8035CF4(gUnknown_203B33C->unk21C, 3, 1);
SetFriendRescueMenuState(0x33);
}
else
@ -1431,8 +1428,8 @@ void sub_8034A70(void)
menuAction = -1;
sub_8030768(0);
if(!sub_8012FD8(&gUnknown_203B33C->unk30C))
sub_8013114(&gUnknown_203B33C->unk30C, &menuAction);
if(!sub_8012FD8(&gUnknown_203B33C->unk21C[3]))
sub_8013114(&gUnknown_203B33C->unk21C[3], &menuAction);
switch(menuAction)
{
case 9:
@ -1468,7 +1465,7 @@ void sub_8034B2C(void)
sub_803092C();
if(gUnknown_203B33C->fallbackState == 0x7E)
{
sub_8035CF4(&gUnknown_203B33C->unk21C, 3, 1);
sub_8035CF4(gUnknown_203B33C->unk21C, 3, 1);
SetFriendRescueMenuState(0x5D);
}
else
@ -1518,7 +1515,7 @@ void sub_8034C38(void)
sub_801CB5C(1);
if(gUnknown_203B33C->fallbackState == 0x7E)
{
sub_8035CF4(&gUnknown_203B33C->unk21C, 3, 1);
sub_8035CF4(gUnknown_203B33C->unk21C, 3, 1);
SetFriendRescueMenuState(0x60);
}
else
@ -1536,8 +1533,8 @@ void sub_8034C98(void)
menuAction = -1;
sub_801CA08(0);
if(!sub_8012FD8(&gUnknown_203B33C->unk30C))
sub_8013114(&gUnknown_203B33C->unk30C, &menuAction);
if(!sub_8012FD8(&gUnknown_203B33C->unk21C[3]))
sub_8013114(&gUnknown_203B33C->unk21C[3], &menuAction);
switch(menuAction)
{
case 9:

View File

@ -30,30 +30,12 @@
// 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 MenuStruct unk4[3];
u8 fillF4[0x144 - 0xF4];
struct UnkTextStruct2 unk144[4];
/* 0x1A4 */ u32 currMenuChoice;
};
@ -76,11 +58,12 @@ extern void sub_80370D4(void);
extern void CleanWonderMailMenu(void);
extern void sub_80383A8(void);
extern void CleanSaveMenu(void);
extern u8 sub_8012FD8(u32 *);
extern void sub_8013114(u32 *, s32 *);
extern u8 sub_8012FD8(struct MenuStruct *);
extern void sub_8013114(struct MenuStruct *, s32 *);
extern u8 sub_803D0D8();
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);
extern void sub_8012D60(struct MenuStruct *, const struct MenuItem *, u32, u32, u32, u32);
extern void sub_8012E04(struct MenuStruct *, const struct MenuItem *, u32, u32, u32, u32);
void sub_8012EBC(struct MenuStruct *);
void CleanMainMenu(void);
void DrawMainMenu(void);
@ -645,18 +628,18 @@ void sub_8035C1C(void)
}
void
SetMenuItems(struct unkStruct_Menu *param_1, struct UnkTextStruct2 *unkData, int param_3, const struct UnkTextStruct2 *param_4, const struct MenuItem *param_5, char param_6 ,u32 param_7, u32 unused_8)
SetMenuItems(struct MenuStruct *param_1, struct UnkTextStruct2 *unkData, int index, const struct UnkTextStruct2 *param_4, const struct MenuItem *param_5, char param_6 ,u32 param_7, u32 unused_8)
{
unkData[param_3] = *param_4;
unkData[index] = *param_4;
ResetUnusedInputStruct();
sub_800641C(unkData,1,1);
if (param_6 != '\0') {
sub_8012D60(&param_1[param_3],param_5,0,0,param_7,param_3);
if (param_6 != 0) {
sub_8012D60(&param_1[index],param_5,0,0,param_7,index);
}
else {
sub_8012E04(&param_1[param_3],param_5,0,0,0,param_3);
sub_8012E04(&param_1[index],param_5,0,0,0,index);
}
param_1[param_3].unk4C = 1;
param_1[index].unk4C = 1;
}
void sub_8035CC0(struct UnkTextStruct2 *dataArray, u32 index)
@ -667,27 +650,12 @@ void sub_8035CC0(struct UnkTextStruct2 *dataArray, u32 index)
sub_800641C(dataArray, 1, 1);
}
NAKED
void sub_8035CF4(void * Menu, u32 index, u8 r2)
{
asm_unified("\tpush {lr}\n"
"\tadds r3, r0, 0\n"
"\tlsls r0, r1, 2\n"
"\tadds r0, r1\n"
"\tlsls r0, 4\n"
"\tadds r0, r3\n"
"\tadds r1, r0, 0\n"
"\tadds r1, 0x4C\n"
"\tstrb r2, [r1]\n"
"\tadds r2, r0, 0\n"
"\tadds r2, 0x4D\n"
"\tmovs r1, 0x1\n"
"\tstrb r1, [r2]\n"
"\tsubs r1, 0x2\n"
"\tstr r1, [r0, 0x48]\n"
"\tbl sub_8012EBC\n"
"\tpop {r0}\n"
"\tbx r0");
void sub_8035CF4(struct MenuStruct * Menu, u32 index, u8 r2)
{
Menu[index].unk4C = r2;
Menu[index].unk4D = 1;
Menu[index].menuAction = -1;
sub_8012EBC(&Menu[index]);
}
void sub_8035D1C(void)
@ -814,10 +782,10 @@ void DrawMainMenu(void)
if(SetMainMenuText())
{
sub_8035CF4(&gUnknown_203B34C->unk4,2,0);
sub_8035CF4(gUnknown_203B34C->unk4,2,0);
}
sub_8035CF4(&gUnknown_203B34C->unk4,0,1);
sub_8035CF4(gUnknown_203B34C->unk4,0,1);
gUnknown_203B34C->unk0 = 1;
}
@ -838,14 +806,14 @@ u32 UpdateMainMenu(void)
switch(gUnknown_203B34C->unk0)
{
case 1:
sub_8012FD8(&gUnknown_203B34C->unkA4);
if(!sub_8012FD8(&gUnknown_203B34C->unk4))
sub_8013114(&gUnknown_203B34C->unk4, &nextMenu);
sub_8012FD8(&gUnknown_203B34C->unk4[2]);
if(!sub_8012FD8(gUnknown_203B34C->unk4))
sub_8013114(gUnknown_203B34C->unk4, &nextMenu);
if(SetMainMenuText())
{
sub_8035CF4(&gUnknown_203B34C->unk4, 0, 1);
sub_8035CF4(&gUnknown_203B34C->unk4, 2, 0);
sub_8035CF4(gUnknown_203B34C->unk4, 0, 1);
sub_8035CF4(gUnknown_203B34C->unk4, 2, 0);
}
switch(nextMenu)
{
@ -856,8 +824,8 @@ u32 UpdateMainMenu(void)
gUnknown_203B34C->unk0 = 1;
nextMenu = MENU_NO_SCREEN_CHANGE;
ResetUnusedInputStruct();
sub_8035CF4(&gUnknown_203B34C->unk4, 0, 1);
sub_8035CF4(&gUnknown_203B34C->unk4, 2, 0);
sub_8035CF4(gUnknown_203B34C->unk4, 0, 1);
sub_8035CF4(gUnknown_203B34C->unk4, 2, 0);
break;
case MENU_TRADE_ITEMS:
sub_8035DA0();
@ -880,8 +848,8 @@ u32 UpdateMainMenu(void)
}
break;
case 0xC:
if(!sub_8012FD8(&gUnknown_203B34C->unk54))
sub_8013114(&gUnknown_203B34C->unk54, &nextMenu);
if(!sub_8012FD8(&gUnknown_203B34C->unk4[1]))
sub_8013114(&gUnknown_203B34C->unk4[1], &nextMenu);
switch(nextMenu)
{
case 0xffdd:
@ -917,8 +885,8 @@ bool8 SetMainMenuText(void)
struct MenuItem *preload;
// Have to load the pointer before the index
preload = gUnknown_203B34C->unk8;
menuChoice = preload[gUnknown_203B34C->menuIndex].menuAction; // chosen menu action?
preload = gUnknown_203B34C->unk4[0].menuItems;
menuChoice = preload[gUnknown_203B34C->unk4[0].menuIndex].menuAction; // chosen menu action?
if (gUnknown_203B34C->currMenuChoice == menuChoice) {
return FALSE;
}
@ -929,50 +897,50 @@ bool8 SetMainMenuText(void)
switch(menuChoice) {
case MENU_WIRELESS_COMMS:
// Using wireless communications, you can go on an adventure to unknown worlds.
SetMenuItems((struct unkStruct_Menu *)&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E6030,0,0,0);
SetMenuItems((struct MenuStruct *)&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E6030,0,0,0);
break;
case MENU_WONDER_MAIL:
// Using passwords, you can receive Wonder Mail
SetMenuItems((struct unkStruct_Menu *)&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5F80,0,0,0);
SetMenuItems((struct MenuStruct *)&gUnknown_203B34C->unk4,gUnknown_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((struct unkStruct_Menu *)&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5F1C,0,0,0);
SetMenuItems((struct MenuStruct *)&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5F1C,0,0,0);
break;
case MENU_NEW_GAME:
// Start an entirely new adventure
SetMenuItems((struct unkStruct_Menu *)&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5CCC,0,0,0);
SetMenuItems((struct MenuStruct *)&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5CCC,0,0,0);
break;
case MENU_CONTINUE:
// Resume your adventure from where you last saved
SetMenuItems((struct unkStruct_Menu *)&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5DA0,0,0,0);
SetMenuItems((struct MenuStruct *)&gUnknown_203B34C->unk4,gUnknown_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((struct unkStruct_Menu *)&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5DF0,0,0,0);
SetMenuItems((struct MenuStruct *)&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5DF0,0,0,0);
break;
case MENU_ADVENTURE_LOG:
// Check your career as an adventurer
SetMenuItems((struct unkStruct_Menu *)&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5D0C,0,0,0);
SetMenuItems((struct MenuStruct *)&gUnknown_203B34C->unk4,gUnknown_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((struct unkStruct_Menu *)&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5E5C,0,0,0);
SetMenuItems((struct MenuStruct *)&gUnknown_203B34C->unk4,gUnknown_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((struct unkStruct_Menu *)&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5EBC,0,0,0);
SetMenuItems((struct MenuStruct *)&gUnknown_203B34C->unk4,gUnknown_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((struct unkStruct_Menu *)&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5FCC,0,0,0);
SetMenuItems((struct MenuStruct *)&gUnknown_203B34C->unk4,gUnknown_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((struct unkStruct_Menu *)&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5D48,0,0,0);
SetMenuItems((struct MenuStruct *)&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5D48,0,0,0);
break;
default:
break;
@ -986,9 +954,9 @@ void sub_803623C(void)
SetMainMenuItems();
gUnknown_203B34C->currMenuChoice = -1;
if (SetMainMenuText()) {
sub_8035CF4(&gUnknown_203B34C->unk4,2,0);
sub_8035CF4(gUnknown_203B34C->unk4,2,0);
}
sub_8035CF4(&gUnknown_203B34C->unk4,0,1);
sub_8035CF4(gUnknown_203B34C->unk4,0,1);
}
void SetMainMenuItems(void)
@ -1003,7 +971,7 @@ void SetMainMenuItems(void)
// Friend Rescue
// Trade Items
// Wonder Mail
SetMenuItems((struct unkStruct_Menu *)&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,0,&gUnknown_80E5A78,gUnknown_80E5C18,1,gUnknown_203B350,1);
SetMenuItems((struct MenuStruct *)&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,0,&gUnknown_80E5A78,gUnknown_80E5C18,1,gUnknown_203B350,1);
}
else {
// Revive Team
@ -1011,7 +979,7 @@ void SetMainMenuItems(void)
// Adventure Log
// Friend Rescue
// Trade Items
SetMenuItems((struct unkStruct_Menu *)&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,0,&gUnknown_80E5BC4,gUnknown_80E5BDC,1,gUnknown_203B350,1);
SetMenuItems((struct MenuStruct *)&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,0,&gUnknown_80E5BC4,gUnknown_80E5BDC,1,gUnknown_203B350,1);
}
}
else {
@ -1022,7 +990,7 @@ void SetMainMenuItems(void)
// Friend Rescue
// Trade Items
// Wonder Mail
SetMenuItems((struct unkStruct_Menu *)&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,0,&gUnknown_80E5A78,gUnknown_80E5AFC,1,gUnknown_203B350,1);
SetMenuItems((struct MenuStruct *)&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,0,&gUnknown_80E5A78,gUnknown_80E5AFC,1,gUnknown_203B350,1);
}
else {
// Continue
@ -1030,7 +998,7 @@ void SetMainMenuItems(void)
// Adventure Log
// Friend Rescue
// Trade Items
SetMenuItems((struct unkStruct_Menu *)&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,0,&gUnknown_80E5A60,gUnknown_80E5A90,1,gUnknown_203B350,1);
SetMenuItems((struct MenuStruct *)&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,0,&gUnknown_80E5A60,gUnknown_80E5A90,1,gUnknown_203B350,1);
}
}
}
@ -1042,7 +1010,7 @@ void SetMainMenuItems(void)
// Friend Rescue
// Trade Items
// Wonder Mail
SetMenuItems((struct unkStruct_Menu *)&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,0,&gUnknown_80E5A78,gUnknown_80E5B8C,1,gUnknown_203B350,1);
SetMenuItems((struct MenuStruct *)&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,0,&gUnknown_80E5A78,gUnknown_80E5B8C,1,gUnknown_203B350,1);
}
else {
// Awaiting Rescue
@ -1050,7 +1018,7 @@ void SetMainMenuItems(void)
// Adventure Log
// Friend Rescue
// Trade Items
SetMenuItems((struct unkStruct_Menu *)&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,0,&gUnknown_80E5B34,gUnknown_80E5B4C,1,gUnknown_203B350,1);
SetMenuItems((struct MenuStruct *)&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,0,&gUnknown_80E5B34,gUnknown_80E5B4C,1,gUnknown_203B350,1);
}
}
}
@ -1058,7 +1026,7 @@ void SetMainMenuItems(void)
{
// New Game
// Adventure Log
SetMenuItems((struct unkStruct_Menu *)&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,0,&gUnknown_80E59E0,gUnknown_80E59F8,1,gUnknown_203B350,1);
SetMenuItems((struct MenuStruct *)&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,0,&gUnknown_80E59E0,gUnknown_80E59F8,1,gUnknown_203B350,1);
}
}

View File

@ -1,3 +1,4 @@
#include "gba/defines.h"
#include "global.h"
#include "input.h"
#include "menu.h"
@ -27,19 +28,115 @@ struct unkStruct_203B360
};
extern struct unkStruct_203B360 *gUnknown_203B364;
extern struct UnkTextStruct2 gUnknown_80E6F20;
extern struct UnkTextStruct2 gUnknown_80E6F38;
extern struct MenuItem gUnknown_80E7090[];
extern struct MenuItem gUnknown_80E6F50[];
extern struct MenuItem gUnknown_80E70CC;
extern struct MenuItem gUnknown_80E6FBC;
extern struct MenuItem gUnknown_80E7114;
extern struct MenuItem gUnknown_80E701C;
extern u8 gUnknown_80E7178[];
const struct UnkTextStruct2 gUnknown_80E6F20 =
{
0x00, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00,
0x00, 0x00,
NULL
};
const struct UnkTextStruct2 gUnknown_80E6F38 =
{
0x00, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00,
0x05, 0x00, 0x08, 0x00,
0x15, 0x05,
0x05, 0x00,
NULL
};
const u8 sUnknown_80E6F70[];
const u8 sUnknown_80E6F90[];
const u8 sUnknown_80E6FAC[];
const struct MenuItem gSavingAdventureMenuItems[] = {
{sUnknown_80E6FAC, 4},
{sUnknown_80E6F90, 4},
{sUnknown_80E6F70, 4},
{NULL, 2}
};
ALIGNED(4) const u8 sUnknown_80E6F70[] = _("{CENTER_ALIGN}Don{APOSTROPHE}t turn off the power.");
ALIGNED(4) const u8 sUnknown_80E6F90[] = _("{CENTER_ALIGN}Saving your adventure!");
ALIGNED(4) const u8 sUnknown_80E6FAC[] = _("{CENTER_ALIGN}{COLOR_1 RED}Beware!{END_COLOR_TEXT_1} ");
extern const u8 sUnknown_80E6FDC[];
extern const u8 sUnknown_80E7008[];
extern const u8 sUnknown_80E6FF0[];
const struct MenuItem gAdventureSavedMenuItems[] = {
{sUnknown_80E7008, 4},
{sUnknown_80E6FF0, 4},
{sUnknown_80E6FDC, 4},
{NULL, 2}
};
ALIGNED(4) const u8 sUnknown_80E6FDC[] = _("{CENTER_ALIGN}has been saved.");
ALIGNED(4) const u8 sUnknown_80E6FF0[] = _("{CENTER_ALIGN}Your adventure so far");
ALIGNED(4) const u8 sUnknown_80E7008[] = _("{CENTER_ALIGN}{COLOR_1 LIGHT_BLUE_2}Success!{END_COLOR_TEXT_1} ");
extern const u8 sUnknown_80E7078[];
extern const u8 sUnknown_80E7050[];
extern const u8 sUnknown_80E703C[];
const struct MenuItem gAdventureCouldNotBeSavedMenuItems[] = {
{sUnknown_80E7078, 4},
{sUnknown_80E7050, 4},
{sUnknown_80E703C, 4},
{NULL, 2}
};
ALIGNED(4) const u8 sUnknown_80E703C[] = _("{CENTER_ALIGN}Please try again.");
ALIGNED(4) const u8 sUnknown_80E7050[] = _("{CENTER_ALIGN}Your adventure could not be saved.");
ALIGNED(4) const u8 sUnknown_80E7078[] = _("{CENTER_ALIGN}{COLOR_1 RED}Save failed!{END_COLOR_TEXT_1} ");
extern const u8 DeletingAdventure_80E70B0[];
const struct MenuItem gDeletingYourAdventureMenuItems[] = {
{sUnknown_80E6FAC, 4},
{DeletingAdventure_80E70B0, 4},
{sUnknown_80E6F70, 4},
{NULL, 2}
};
ALIGNED(4) const u8 DeletingAdventure_80E70B0[] = _("{CENTER_ALIGN}Deleting your adventure!");
extern const u8 Data_80E70EC[];
extern const u8 AdventureDeleted_80E70F0[];
const struct MenuItem gDeletedSaveMenuItems[] = {
{sUnknown_80E7008, 4},
{AdventureDeleted_80E70F0, 4},
{Data_80E70EC, 4},
{NULL, 2},
};
ALIGNED(4) const u8 Data_80E70EC[] = _(" ");
ALIGNED(4) const u8 AdventureDeleted_80E70F0[] = _("{CENTER_ALIGN}Your adventure has been deleted.");
extern const u8 sUnknown_80E7134[];
extern const u8 sUnknown_80E715C[];
const struct MenuItem gAdventureCouldNotBeDeletedMenuItems[] = {
{sUnknown_80E715C, 4},
{sUnknown_80E7134, 4},
{sUnknown_80E703C, 4},
{NULL, 2},
};
ALIGNED(4) const u8 sUnknown_80E7134[] = _("{CENTER_ALIGN}Your adventure could not be deleted.");
ALIGNED(4) const u8 sUnknown_80E715C[] = _("{CENTER_ALIGN}{COLOR_1 RED}Deletion failed!{END_COLOR_TEXT_1} ");
ALIGNED(4) const u8 gUnknown_80E7178[] = _("{CENTER_ALIGN}The data could not be written.\n"
"{CENTER_ALIGN}Please turn off the power and remove\n"
"{CENTER_ALIGN}and reinsert the DS Card.");
ALIGNED(4) static const u8 save_menu_fill0[] = "pksdir0";
extern void ResetSprites(u32);
extern void sub_8038440();
extern void sub_8035CF4(u32 *, u32, u32);
extern void SetMenuItems(void *, struct UnkTextStruct2 *, u32, struct UnkTextStruct2 *, struct MenuItem *, u32, u32, u32);
extern void SetMenuItems(void *, struct UnkTextStruct2 *, u32, const struct UnkTextStruct2 *, const struct MenuItem *, u32, u32, u32);
extern u8 sub_80130A8(u32 *);
extern void sub_8013114(u32 *, u32 *);
extern void sub_80384D0();
@ -68,12 +165,12 @@ void CreateSaveMenu(s32 currMenu)
if (currMenu == MENU_DELETE_SAVE) {
// Beware, Deleting your Adventure
SetMenuItems(&gUnknown_203B364->unk8,gUnknown_203B364->unk148,0,&gUnknown_80E6F38,gUnknown_80E7090,
SetMenuItems(&gUnknown_203B364->unk8,gUnknown_203B364->unk148,0,&gUnknown_80E6F38,gDeletingYourAdventureMenuItems,
0,6,0);
}
else {
// Saving your Adventure
SetMenuItems(&gUnknown_203B364->unk8,gUnknown_203B364->unk148,0,&gUnknown_80E6F38,gUnknown_80E6F50,
SetMenuItems(&gUnknown_203B364->unk8,gUnknown_203B364->unk148,0,&gUnknown_80E6F38,gSavingAdventureMenuItems,
0,6,0);
}
sub_8035CF4(&gUnknown_203B364->unk8,0,1);
@ -121,11 +218,11 @@ s32 UpdateSaveMenu(void)
sub_8035CC0(gUnknown_203B364->unk148,0);
if (gUnknown_203B364->currMenu == MENU_DELETE_SAVE) {
SetMenuItems(&gUnknown_203B364->unk8,gUnknown_203B364->unk148,0,&gUnknown_80E6F38,
&gUnknown_80E70CC,0,6,0);
gDeletedSaveMenuItems,0,6,0);
}
else {
SetMenuItems(&gUnknown_203B364->unk8,gUnknown_203B364->unk148,0,&gUnknown_80E6F38,
&gUnknown_80E6FBC,0,6,0);
gAdventureSavedMenuItems,0,6,0);
}
if (gUnknown_203B364->currMenu == 0x2d) {
gUnknown_203B364->unk4 = 1;
@ -142,11 +239,11 @@ s32 UpdateSaveMenu(void)
sub_8035CC0(gUnknown_203B364->unk148,0);
if (gUnknown_203B364->currMenu == MENU_DELETE_SAVE) {
SetMenuItems(&gUnknown_203B364->unk8,gUnknown_203B364->unk148,0,&gUnknown_80E6F38,
&gUnknown_80E7114,0,6,0);
gAdventureCouldNotBeDeletedMenuItems,0,6,0);
}
else {
SetMenuItems(&gUnknown_203B364->unk8,gUnknown_203B364->unk148,0,&gUnknown_80E6F38,
&gUnknown_80E701C,0,6,0);
gAdventureCouldNotBeSavedMenuItems,0,6,0);
}
sub_8035CF4(&gUnknown_203B364->unk8,0,1);
gUnknown_203B364->unk4 = 1;