diff --git a/README.md b/README.md index 639a6e1f..15cec12d 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ This is a work in progress decompilation of Metroid - Zero Mission. 2673/2721 functions decompiled (98.24%, 48 left) -0x38f844/0x76b014 bytes of data not in blobs (47.99%, 0x3db7d0 left) +0x38f960/0x76b014 bytes of data not in blobs (48.0%, 0x3db6b4 left) Progress can be seen here : https://docs.google.com/spreadsheets/d/1X8XarD5evY8ZI7r_GQqh1pYmdVMbBcINYfRBUlogmKY/edit#gid=0 diff --git a/database.txt b/database.txt index b93a31dd..9f692873 100644 --- a/database.txt +++ b/database.txt @@ -2704,5 +2704,4 @@ Blob_479400_4bfee4.bin;289508;0x479400;1 Blob_60c630_74f8b4.bin;1323652;0x60c630;1 Blob_754bd0_75e6a8.bin;39640;0x754bd0;1 Blob_75fae4_75fd64.bin;640;0x75fae4;1 -Blob_7602d4_7603f0.bin;284;0x7602d4;1 Blob_760d38_7f7734.bin;616956;0x760d38;1 diff --git a/include/data/internal_text_data.h b/include/data/internal_text_data.h new file mode 100644 index 00000000..2c8644e8 --- /dev/null +++ b/include/data/internal_text_data.h @@ -0,0 +1,15 @@ +#ifndef INTERNAL_TEXT_DATA +#define INTERNAL_TEXT_DATA + +#include "types.h" +#include "constants/game_state.h" + +extern const u16* const * const sDescriptionTextPointers[LANGUAGE_END]; + +extern u32 sArray_7602f0[9]; +extern u32 sArray_760314[9]; +extern u32 sArray_760338[8]; +extern u32 sArray_760398[8]; +extern u32 sArray_7603b8[8]; + +#endif /* INTERNAL_TEXT_DATA */ diff --git a/include/data/menus/internal_pause_screen_data.h b/include/data/menus/internal_pause_screen_data.h index 8c093435..d929b537 100644 --- a/include/data/menus/internal_pause_screen_data.h +++ b/include/data/menus/internal_pause_screen_data.h @@ -30,6 +30,5 @@ extern u32* sPauseScreen_7602a8; extern u8 sMapDownloadLineTrailOamOffsets[4]; extern const u32 sPauseScreen_7602b0[9]; -extern const u8 sPauseScreen_7603ea[6]; #endif /* INTERNAL_PAUSE_SCREEN_DATA_H */ diff --git a/include/data/menus/internal_status_screen_data.h b/include/data/menus/internal_status_screen_data.h new file mode 100644 index 00000000..d844a57c --- /dev/null +++ b/include/data/menus/internal_status_screen_data.h @@ -0,0 +1,9 @@ +#ifndef INTERNAL_STATUS_SCREEN_DATA_H +#define INTERNAL_STATUS_SCREEN_DATA_H + +#include "types.h" + +extern const u8 sStatusScreenRowsData[6][3]; +extern const u8 sPauseScreen_7603ea[6]; + +#endif /* INTERNAL_STATUS_SCREEN_DATA_H */ diff --git a/include/data/menus/status_screen_data.h b/include/data/menus/status_screen_data.h index 288d9895..4d5db962 100644 --- a/include/data/menus/status_screen_data.h +++ b/include/data/menus/status_screen_data.h @@ -16,10 +16,4 @@ extern const u8 sStatusScreen_40df64[8]; extern const u8 sStatusScreen_40df6c[6]; extern const u8 sStatusScreen_40df72[6]; -// ... - -extern const u8 sStatusScreenRowsData[6][3]; - -// ... - #endif /* STATUS_SCREEN_MENU_DATA_H */ diff --git a/include/data/text_data.h b/include/data/text_data.h index e3ebd45d..15983133 100644 --- a/include/data/text_data.h +++ b/include/data/text_data.h @@ -403,10 +403,4 @@ extern const u16 sEnglishText_FileScreen_TimeAttackRecordUnlock[]; extern const u16 sEnglishText_FileScreen_SoundTestUnlock[]; extern const u16 sEnglishText_FileScreen_NesMetroidUnlock[]; -extern u32 sArray_7602f0[9]; -extern u32 sArray_760314[9]; -extern u32 sArray_760338[24]; -extern u32 sArray_760398[8]; -extern u32 sArray_7603b8[8]; - #endif /* TEXT_DATA_H */ diff --git a/include/data/text_pointers.h b/include/data/text_pointers.h index 15c47d10..20ae56b4 100644 --- a/include/data/text_pointers.h +++ b/include/data/text_pointers.h @@ -34,7 +34,6 @@ extern const u16* const sEnglishTextPointers_FileScreen[FILE_SCREEN_TEXT_END]; extern const u16** const sStoryTextPointers[LANGUAGE_END]; -extern const u16** const sDescriptionTextPointers[LANGUAGE_END]; #endif /* TEXT_POINTERS_DATA_H */ diff --git a/include/structs/menus/file_select.h b/include/structs/menus/file_select.h index f0ac3cbe..d5a1b41c 100644 --- a/include/structs/menus/file_select.h +++ b/include/structs/menus/file_select.h @@ -86,7 +86,7 @@ struct FileSelectData { u8 currentFile; u8 eraseFile; - struct FileSelectMenuCursors fileSelectData; + struct FileSelectMenuCursors fileSelectCursors; u8 unk_34; u8 unk_35; u8 unk_36; diff --git a/include/types.h b/include/types.h index 36ba91ac..9179286d 100644 --- a/include/types.h +++ b/include/types.h @@ -28,7 +28,7 @@ typedef volatile signed int vs32; #define INT_MIN (-2147483648) #define INT_MAX (2147483647) -#define UINT_MAX ((u32)4294967295) +#define UINT_MAX ((u32)0xFFFFFFFF) #define SUB_PIXEL_RATIO 4 #define SUB_PIXEL_NUMBER 16 diff --git a/linker.ld b/linker.ld index 1b0be009..9ad493f9 100644 --- a/linker.ld +++ b/linker.ld @@ -729,7 +729,8 @@ SECTIONS { src/data/cutscenes/internal_enter_tourian_data.o(.rodata); src/data/cutscenes/internal_samus_in_blue_ship_data.o(.rodata); src/data/menus/internal_pause_screen_data.o(.rodata); - /* 7602d4-7603f0 */ + src/data/internal_text_data.o(.rodata); + src/data/menus/internal_status_screen_data.o(.rodata); src/data/menus/internal_pause_screen_sub_menus_data.o(.rodata); src/data/internal_save_file_data.o(.rodata); src/data/menus/internal_erase_sram_data.o(.rodata) diff --git a/src/data/internal_text_data.c b/src/data/internal_text_data.c new file mode 100644 index 00000000..bd0e3fa9 --- /dev/null +++ b/src/data/internal_text_data.c @@ -0,0 +1,97 @@ +#include "data/internal_text_data.h" +#include "data/text_pointers.h" +#include "macros.h" + +const u16* const * const sDescriptionTextPointers[LANGUAGE_END] = { + [LANGUAGE_JAPANESE] = sJapaneseTextPointers_Description, + [LANGUAGE_HIRAGANA] = sHiraganaTextPointers_Description, + [LANGUAGE_ENGLISH] = sEnglishTextPointers_Description, + [LANGUAGE_GERMAN] = sEnglishTextPointers_Description, + [LANGUAGE_FRENCH] = sEnglishTextPointers_Description, + [LANGUAGE_ITALIAN] = sEnglishTextPointers_Description, + [LANGUAGE_SPANISH] = sEnglishTextPointers_Description +}; + +FORCE_RODATA +u32 sArray_7602f0[9] = { + [0] = UINT_MAX ^ (UINT_MAX << 0 * sizeof(u32)), + [1] = UINT_MAX ^ (UINT_MAX << 1 * sizeof(u32)), + [2] = UINT_MAX ^ (UINT_MAX << 2 * sizeof(u32)), + [3] = UINT_MAX ^ (UINT_MAX << 3 * sizeof(u32)), + [4] = UINT_MAX ^ (UINT_MAX << 4 * sizeof(u32)), + [5] = UINT_MAX ^ (UINT_MAX << 5 * sizeof(u32)), + [6] = UINT_MAX ^ (UINT_MAX << 6 * sizeof(u32)), + [7] = UINT_MAX ^ (UINT_MAX << 7 * sizeof(u32)), + [8] = UINT_MAX +}; + +FORCE_RODATA +u32 sArray_760314[9] = { + [0] = UINT_MAX ^ (UINT_MAX >> 0 * sizeof(u32)), + [1] = UINT_MAX ^ (UINT_MAX >> 1 * sizeof(u32)), + [2] = UINT_MAX ^ (UINT_MAX >> 2 * sizeof(u32)), + [3] = UINT_MAX ^ (UINT_MAX >> 3 * sizeof(u32)), + [4] = UINT_MAX ^ (UINT_MAX >> 4 * sizeof(u32)), + [5] = UINT_MAX ^ (UINT_MAX >> 5 * sizeof(u32)), + [6] = UINT_MAX ^ (UINT_MAX >> 6 * sizeof(u32)), + [7] = UINT_MAX ^ (UINT_MAX >> 7 * sizeof(u32)), + [8] = UINT_MAX +}; + +FORCE_RODATA +u32 sArray_760338[8] = { + [0] = 15 << 0 * sizeof(u32), + [1] = 15 << 1 * sizeof(u32), + [2] = 15 << 2 * sizeof(u32), + [3] = 15 << 3 * sizeof(u32), + [4] = 15 << 4 * sizeof(u32), + [5] = 15 << 5 * sizeof(u32), + [6] = 15 << 6 * sizeof(u32), + [7] = 15 << 7 * sizeof(u32) +}; + +const u32 sArray_760358[8] = { + [0] = 2 << 0 * sizeof(u32), + [1] = 2 << 1 * sizeof(u32), + [2] = 2 << 2 * sizeof(u32), + [3] = 2 << 3 * sizeof(u32), + [4] = 2 << 4 * sizeof(u32), + [5] = 2 << 5 * sizeof(u32), + [6] = 2 << 6 * sizeof(u32), + [7] = 2 << 7 * sizeof(u32) +}; + +const u32 sArray_760378[8] = { + [0] = 1 << 0 * sizeof(u32), + [1] = 1 << 1 * sizeof(u32), + [2] = 1 << 2 * sizeof(u32), + [3] = 1 << 3 * sizeof(u32), + [4] = 1 << 4 * sizeof(u32), + [5] = 1 << 5 * sizeof(u32), + [6] = 1 << 6 * sizeof(u32), + [7] = 1 << 7 * sizeof(u32) +}; + +FORCE_RODATA +u32 sArray_760398[8] = { + [0] = 4 << 0 * sizeof(u32), + [1] = 4 << 1 * sizeof(u32), + [2] = 4 << 2 * sizeof(u32), + [3] = 4 << 3 * sizeof(u32), + [4] = 4 << 4 * sizeof(u32), + [5] = 4 << 5 * sizeof(u32), + [6] = 4 << 6 * sizeof(u32), + [7] = 4 << 7 * sizeof(u32) +}; + +FORCE_RODATA +u32 sArray_7603b8[8] = { + [0] = 15 << 0 * sizeof(u32), + [1] = 15 << 1 * sizeof(u32), + [2] = 15 << 2 * sizeof(u32), + [3] = 15 << 3 * sizeof(u32), + [4] = 15 << 4 * sizeof(u32), + [5] = 15 << 5 * sizeof(u32), + [6] = 15 << 6 * sizeof(u32), + [7] = 15 << 7 * sizeof(u32) +}; diff --git a/src/data/menus/internal_pause_screen_data.c b/src/data/menus/internal_pause_screen_data.c index eedaa232..a6c1099b 100644 --- a/src/data/menus/internal_pause_screen_data.c +++ b/src/data/menus/internal_pause_screen_data.c @@ -158,5 +158,3 @@ const u32 sPauseScreen_7602b0[9] = { 0xFFFFFFFF ^ 0xFFFFFFF, 0xFFFFFFFF ^ 0xFFFFFFFF, }; - -const u8 sTempArray_7602d4[0x11c] = INCBIN_U8("data/Blob_7602d4_7603f0.bin"); diff --git a/src/data/menus/internal_status_screen_data.c b/src/data/menus/internal_status_screen_data.c new file mode 100644 index 00000000..e14841a7 --- /dev/null +++ b/src/data/menus/internal_status_screen_data.c @@ -0,0 +1,45 @@ +#include "data/menus/internal_status_screen_data.h" + +#include "constants/menus/status_screen.h" + +const u8 sStatusScreenRowsData[6][3] = { + [0] = { + [0] = ABILITY_GROUP_CURRENT_ENERGY, + [1] = 1, + [2] = 9 + }, + [1] = { + [0] = ABILITY_GROUP_BOMBS, + [1] = 4, + [2] = 12 + }, + [2] = { + [0] = ABILITY_GROUP_BEAMS, + [1] = 7, + [2] = 8 + }, + [3] = { + [0] = ABILITY_GROUP_SUITS, + [1] = 4, + [2] = 10 + }, + [4] = { + [0] = ABILITY_GROUP_MISC, + [1] = 8, + [2] = 10 + }, + [5] = { + [0] = ABILITY_GROUP_MISSILES, + [1] = 6, + [2] = 9 + }, +}; + +const u8 sPauseScreen_7603ea[6] = { + [0] = 0, + [1] = 1, + [2] = 3, + [3] = 0, + [4] = 0, + [5] = 0 +}; diff --git a/src/menus/file_select.c b/src/menus/file_select.c index 96966cf6..5bb67af0 100644 --- a/src/menus/file_select.c +++ b/src/menus/file_select.c @@ -833,7 +833,7 @@ u32 FileSelectCopyFileSubroutine(void) FileSelectUpdateCopyCursor(CURSOR_COPY_POSE_DEFAULT, FILE_SELECT_DATA.copySourceFile); FileSelectUpdateTilemap(TILEMAP_REQUEST_COPY_SPAWN_INIT); - FILE_SELECT_DATA.fileSelectData.confirmCopy = sFileSelectionData_Empty.confirmCopy; + FILE_SELECT_DATA.fileSelectCursors.confirmCopy = sFileSelectionData_Empty.confirmCopy; FILE_SELECT_DATA.unk_3A = 0; FILE_SELECT_DATA.subroutineStage++; @@ -938,7 +938,7 @@ u32 FileSelectCopyFileSubroutine(void) } else if (action == 2) { - FILE_SELECT_DATA.fileSelectData.confirmCopy = sFileSelectionData_Empty.confirmCopy; + FILE_SELECT_DATA.fileSelectCursors.confirmCopy = sFileSelectionData_Empty.confirmCopy; FileSelectUpdateCopyArrow(ARROW_COPY_POSE_COPYING, FILE_SELECT_DATA.currentFile); if ((FILE_SELECT_DATA.enabledMenus >> FILE_SELECT_DATA.currentFile) & 1) @@ -959,7 +959,7 @@ u32 FileSelectCopyFileSubroutine(void) case 5: if (FileSelectUpdateTilemap(TILEMAP_REQUEST_COPY_OVERRIDE_SPAWN)) { - unk_7e3fc(4, FILE_SELECT_DATA.fileSelectData.confirmCopy); + unk_7e3fc(4, FILE_SELECT_DATA.fileSelectCursors.confirmCopy); FILE_SELECT_DATA.subroutineStage++; } break; @@ -971,7 +971,7 @@ u32 FileSelectCopyFileSubroutine(void) { if (gChangedInput & KEY_A) { - if (FILE_SELECT_DATA.fileSelectData.confirmCopy != 0) + if (FILE_SELECT_DATA.fileSelectCursors.confirmCopy != 0) FILE_SELECT_DATA.subroutineStage = 7; else { @@ -986,19 +986,19 @@ u32 FileSelectCopyFileSubroutine(void) } else if (gChangedInput & KEY_LEFT) { - if (FILE_SELECT_DATA.fileSelectData.confirmCopy != 0) + if (FILE_SELECT_DATA.fileSelectCursors.confirmCopy != 0) { action = 0; - FILE_SELECT_DATA.fileSelectData.confirmCopy = 0; + FILE_SELECT_DATA.fileSelectCursors.confirmCopy = 0; FileSelectPlayMenuSound(MENU_SOUND_REQUEST_SUB_MENU_CURSOR); } } else if (gChangedInput & KEY_RIGHT) { - if (FILE_SELECT_DATA.fileSelectData.confirmCopy == 0) + if (FILE_SELECT_DATA.fileSelectCursors.confirmCopy == 0) { action = 1; - FILE_SELECT_DATA.fileSelectData.confirmCopy = 1; + FILE_SELECT_DATA.fileSelectCursors.confirmCopy = 1; FileSelectPlayMenuSound(MENU_SOUND_REQUEST_SUB_MENU_CURSOR); } } @@ -1044,7 +1044,7 @@ u32 FileSelectCopyFileSubroutine(void) if (SramCopyFile(FILE_SELECT_DATA.copySourceFile, FILE_SELECT_DATA.currentFile)) { FILE_SELECT_DATA.unk_3A = 1; - if (FILE_SELECT_DATA.fileSelectData.confirmCopy != 0) + if (FILE_SELECT_DATA.fileSelectCursors.confirmCopy != 0) FILE_SELECT_DATA.subroutineStage = 14; else FILE_SELECT_DATA.subroutineStage = 12; @@ -1175,8 +1175,8 @@ u32 FileSelectEraseFileSubroutine(void) case 3: if (FileSelectUpdateTilemap(TILEMAP_REQUEST_ERASE_YES_NO_SPAWN)) { - FILE_SELECT_DATA.fileSelectData.confirmErase = sFileSelectionData_Empty.confirmErase; - unk_7e3fc(3, FILE_SELECT_DATA.fileSelectData.confirmErase); + FILE_SELECT_DATA.fileSelectCursors.confirmErase = sFileSelectionData_Empty.confirmErase; + unk_7e3fc(3, FILE_SELECT_DATA.fileSelectCursors.confirmErase); FILE_SELECT_DATA.subroutineStage++; } break; @@ -1188,7 +1188,7 @@ u32 FileSelectEraseFileSubroutine(void) { if (gChangedInput & KEY_A) { - if (FILE_SELECT_DATA.fileSelectData.confirmErase != 0) + if (FILE_SELECT_DATA.fileSelectCursors.confirmErase != 0) FILE_SELECT_DATA.subroutineStage = 5; else { @@ -1203,19 +1203,19 @@ u32 FileSelectEraseFileSubroutine(void) } else if (gChangedInput & KEY_LEFT) { - if (FILE_SELECT_DATA.fileSelectData.confirmErase != 0) + if (FILE_SELECT_DATA.fileSelectCursors.confirmErase != 0) { action = 0; - FILE_SELECT_DATA.fileSelectData.confirmErase = 0; + FILE_SELECT_DATA.fileSelectCursors.confirmErase = 0; FileSelectPlayMenuSound(MENU_SOUND_REQUEST_SUB_MENU_CURSOR); } } else if (gChangedInput & KEY_RIGHT) { - if (FILE_SELECT_DATA.fileSelectData.confirmErase == 0) + if (FILE_SELECT_DATA.fileSelectCursors.confirmErase == 0) { action = 1; - FILE_SELECT_DATA.fileSelectData.confirmErase = 1; + FILE_SELECT_DATA.fileSelectCursors.confirmErase = 1; FileSelectPlayMenuSound(MENU_SOUND_REQUEST_SUB_MENU_CURSOR); } } @@ -3614,7 +3614,7 @@ void FileSelectInit(void) write16(REG_BG2CNT, FILE_SELECT_DATA.bg2cnt = FILE_SELECT_DATA.unk_16); write16(REG_BG3CNT, FILE_SELECT_DATA.bg3cnt = FILE_SELECT_DATA.unk_14); - FILE_SELECT_DATA.fileSelectData = sFileSelectionData_Empty; + FILE_SELECT_DATA.fileSelectCursors = sFileSelectionData_Empty; FILE_SELECT_DATA.unk_34 = 0; FILE_SELECT_DATA.unk_35 = UCHAR_MAX; @@ -4223,8 +4223,8 @@ u8 FileSelectUpdateSubMenu(void) if (temp < 5) { gSaveFilesInfo[gMostRecentSaveFile].exists = FALSE; - gSaveFilesInfo[gMostRecentSaveFile].difficulty = FILE_SELECT_DATA.fileSelectData.difficulty; - gSaveFilesInfo[gMostRecentSaveFile].timeAttack = FILE_SELECT_DATA.fileSelectData.completedFileOptions == 2; + gSaveFilesInfo[gMostRecentSaveFile].difficulty = FILE_SELECT_DATA.fileSelectCursors.difficulty; + gSaveFilesInfo[gMostRecentSaveFile].timeAttack = FILE_SELECT_DATA.fileSelectCursors.completedFileOptions == 2; } } } @@ -4371,7 +4371,7 @@ u8 FileSelectProcessFileSelection(void) FILE_SELECT_DATA.unk_3A = 0; - FILE_SELECT_DATA.fileSelectData = sFileSelectionData_Empty; + FILE_SELECT_DATA.fileSelectCursors = sFileSelectionData_Empty; if (FILE_SELECT_DATA.fileSelectCursorPosition != FILE_SELECT_CURSOR_POSITION_FILE_A) FILE_SELECT_DATA.fileScreenOam[FILE_SELECT_OAM_FILE_A_LOGO].notDrawn = TRUE; @@ -4450,7 +4450,7 @@ u8 FileSelectProcessFileSelection(void) break; case 5: - unk_7e3fc(0, FILE_SELECT_DATA.fileSelectData.startGame); + unk_7e3fc(0, FILE_SELECT_DATA.fileSelectCursors.startGame); FILE_SELECT_DATA.subroutineStage = 6; break; @@ -4491,7 +4491,7 @@ u8 FileSelectProcessFileSelection(void) if (FileSelectCheckInputtingTimeAttackCode()) { action = 0x80; - FILE_SELECT_DATA.fileSelectData.completedFileOptions = 2; + FILE_SELECT_DATA.fileSelectCursors.completedFileOptions = 2; FILE_SELECT_DATA.inputtedTimeAttack = TRUE; FILE_SELECT_DATA.subroutineStage = 8; } @@ -4527,7 +4527,7 @@ u8 FileSelectProcessFileSelection(void) case 10: if (FileSelectUpdateTilemap(0x1E)) { - unk_7e3fc(5, FILE_SELECT_DATA.fileSelectData.completedFileOptions); + unk_7e3fc(5, FILE_SELECT_DATA.fileSelectCursors.completedFileOptions); FILE_SELECT_DATA.subroutineStage++; } break; @@ -4553,9 +4553,9 @@ u8 FileSelectProcessFileSelection(void) } else if (gChangedInput & KEY_UP) { - if (FILE_SELECT_DATA.fileSelectData.completedFileOptions != 0) + if (FILE_SELECT_DATA.fileSelectCursors.completedFileOptions != 0) { - action = --FILE_SELECT_DATA.fileSelectData.completedFileOptions; + action = --FILE_SELECT_DATA.fileSelectCursors.completedFileOptions; FileSelectPlayMenuSound(MENU_SOUND_REQUEST_SUB_MENU_CURSOR); } @@ -4564,16 +4564,16 @@ u8 FileSelectProcessFileSelection(void) { if (FILE_SELECT_DATA.unk_39 == 0x10) { - if (FILE_SELECT_DATA.fileSelectData.completedFileOptions < 2) + if (FILE_SELECT_DATA.fileSelectCursors.completedFileOptions < 2) { - action = ++FILE_SELECT_DATA.fileSelectData.completedFileOptions; + action = ++FILE_SELECT_DATA.fileSelectCursors.completedFileOptions; FileSelectPlayMenuSound(MENU_SOUND_REQUEST_SUB_MENU_CURSOR); } } - else if (FILE_SELECT_DATA.fileSelectData.completedFileOptions == 0) + else if (FILE_SELECT_DATA.fileSelectCursors.completedFileOptions == 0) { - action = ++FILE_SELECT_DATA.fileSelectData.completedFileOptions; + action = ++FILE_SELECT_DATA.fileSelectCursors.completedFileOptions; FileSelectPlayMenuSound(MENU_SOUND_REQUEST_SUB_MENU_CURSOR); } @@ -4587,8 +4587,8 @@ u8 FileSelectProcessFileSelection(void) case 12: if (FileSelectUpdateTilemap(0x20)) { - if (FILE_SELECT_DATA.fileSelectData.completedFileOptions == 2) - FILE_SELECT_DATA.fileSelectData.completedFileOptions = 0; + if (FILE_SELECT_DATA.fileSelectCursors.completedFileOptions == 2) + FILE_SELECT_DATA.fileSelectCursors.completedFileOptions = 0; FILE_SELECT_DATA.subroutineStage = 5; } break; @@ -4596,7 +4596,7 @@ u8 FileSelectProcessFileSelection(void) case 13: FILE_SELECT_DATA.subroutineTimer = 0; - if (FILE_SELECT_DATA.fileSelectData.completedFileOptions == 0) + if (FILE_SELECT_DATA.fileSelectCursors.completedFileOptions == 0) { FILE_SELECT_DATA.unk_3A = 1; FILE_SELECT_DATA.subroutineStage = 34; @@ -4619,8 +4619,8 @@ u8 FileSelectProcessFileSelection(void) case 16: if (FileSelectUpdateTilemap(0x22)) { - FILE_SELECT_DATA.fileSelectData.confirmOverwritingCompleted = sFileSelectionData_Empty.confirmOverwritingCompleted; - unk_7e3fc(6, FILE_SELECT_DATA.fileSelectData.confirmOverwritingCompleted); + FILE_SELECT_DATA.fileSelectCursors.confirmOverwritingCompleted = sFileSelectionData_Empty.confirmOverwritingCompleted; + unk_7e3fc(6, FILE_SELECT_DATA.fileSelectCursors.confirmOverwritingCompleted); FILE_SELECT_DATA.subroutineStage++; } break; @@ -4635,7 +4635,7 @@ u8 FileSelectProcessFileSelection(void) FILE_SELECT_DATA.subroutineTimer = 0; action = 0x80; - if (FILE_SELECT_DATA.fileSelectData.confirmOverwritingCompleted != 0) + if (FILE_SELECT_DATA.fileSelectCursors.confirmOverwritingCompleted != 0) SoundPlay(0x209); else FileSelectPlayMenuSound(MENU_SOUND_REQUEST_ACCEPT_CONFIRM_MENU); @@ -4651,19 +4651,19 @@ u8 FileSelectProcessFileSelection(void) } else if (gChangedInput & KEY_LEFT) { - if (FILE_SELECT_DATA.fileSelectData.confirmOverwritingCompleted != 0) + if (FILE_SELECT_DATA.fileSelectCursors.confirmOverwritingCompleted != 0) { action = 0; - FILE_SELECT_DATA.fileSelectData.confirmOverwritingCompleted = 0; + FILE_SELECT_DATA.fileSelectCursors.confirmOverwritingCompleted = 0; FileSelectPlayMenuSound(MENU_SOUND_REQUEST_SUB_MENU_CURSOR); } } else if (gChangedInput & KEY_RIGHT) { - if (FILE_SELECT_DATA.fileSelectData.confirmOverwritingCompleted == 0) + if (FILE_SELECT_DATA.fileSelectCursors.confirmOverwritingCompleted == 0) { action = 1; - FILE_SELECT_DATA.fileSelectData.confirmOverwritingCompleted = 1; + FILE_SELECT_DATA.fileSelectCursors.confirmOverwritingCompleted = 1; FileSelectPlayMenuSound(MENU_SOUND_REQUEST_SUB_MENU_CURSOR); } } @@ -4677,13 +4677,13 @@ u8 FileSelectProcessFileSelection(void) if (FILE_SELECT_DATA.subroutineTimer <= 10) break; - if (FILE_SELECT_DATA.fileSelectData.confirmOverwritingCompleted != 0) + if (FILE_SELECT_DATA.fileSelectCursors.confirmOverwritingCompleted != 0) { FILE_SELECT_DATA.subroutineStage = 19; break; } - if (FILE_SELECT_DATA.fileSelectData.completedFileOptions != 2) + if (FILE_SELECT_DATA.fileSelectCursors.completedFileOptions != 2) { unk_7e3fc(6, 0x81); FileSelectUpdateTilemap(0x23); @@ -4691,13 +4691,13 @@ u8 FileSelectProcessFileSelection(void) break; } - FILE_SELECT_DATA.unk_3A = FILE_SELECT_DATA.fileSelectData.completedFileOptions; + FILE_SELECT_DATA.unk_3A = FILE_SELECT_DATA.fileSelectCursors.completedFileOptions; FILE_SELECT_DATA.subroutineStage = 34; break; case 19: FileSelectUpdateTilemap(0x25); - unk_7e3fc(5, FILE_SELECT_DATA.fileSelectData.completedFileOptions); + unk_7e3fc(5, FILE_SELECT_DATA.fileSelectCursors.completedFileOptions); FILE_SELECT_DATA.subroutineStage = 11; break; @@ -4709,9 +4709,9 @@ u8 FileSelectProcessFileSelection(void) case 21: FILE_SELECT_DATA.subroutineStage = 28; - if (FILE_SELECT_DATA.fileSelectData.completedFileOptions == 2) + if (FILE_SELECT_DATA.fileSelectCursors.completedFileOptions == 2) { - FILE_SELECT_DATA.fileSelectData.difficulty = 1; + FILE_SELECT_DATA.fileSelectCursors.difficulty = 1; } else { @@ -4732,7 +4732,7 @@ u8 FileSelectProcessFileSelection(void) case 23: if (FileSelectUpdateTilemap(0x3)) { - unk_7e3fc(1, FILE_SELECT_DATA.fileSelectData.japaneseText); + unk_7e3fc(1, FILE_SELECT_DATA.fileSelectCursors.japaneseText); FILE_SELECT_DATA.subroutineStage++; } break; @@ -4758,19 +4758,19 @@ u8 FileSelectProcessFileSelection(void) } else if (gChangedInput & KEY_UP) { - if (FILE_SELECT_DATA.fileSelectData.japaneseText != 0) + if (FILE_SELECT_DATA.fileSelectCursors.japaneseText != 0) { action = 0; - FILE_SELECT_DATA.fileSelectData.japaneseText = 0; + FILE_SELECT_DATA.fileSelectCursors.japaneseText = 0; FileSelectPlayMenuSound(MENU_SOUND_REQUEST_SUB_MENU_CURSOR); } } else if (gChangedInput & KEY_DOWN) { - if (FILE_SELECT_DATA.fileSelectData.japaneseText == 0) + if (FILE_SELECT_DATA.fileSelectCursors.japaneseText == 0) { action = 1; - FILE_SELECT_DATA.fileSelectData.japaneseText = 1; + FILE_SELECT_DATA.fileSelectCursors.japaneseText = 1; FileSelectPlayMenuSound(MENU_SOUND_REQUEST_SUB_MENU_CURSOR); } } @@ -4797,7 +4797,7 @@ u8 FileSelectProcessFileSelection(void) if (FILE_SELECT_DATA.subroutineTimer <= 10) break; - if (FILE_SELECT_DATA.fileSelectData.completedFileOptions == 2) + if (FILE_SELECT_DATA.fileSelectCursors.completedFileOptions == 2) { FILE_SELECT_DATA.unk_3A = 3; FILE_SELECT_DATA.subroutineStage = 34; @@ -4813,7 +4813,7 @@ u8 FileSelectProcessFileSelection(void) if (FileSelectUpdateTilemap(0x5)) { FILE_SELECT_DATA.subroutineStage = 28; - FILE_SELECT_DATA.fileSelectData.difficulty = FILE_SELECT_DATA.fileSelectData.japaneseText ^ 1; + FILE_SELECT_DATA.fileSelectCursors.difficulty = FILE_SELECT_DATA.fileSelectCursors.japaneseText ^ 1; } break; @@ -4825,7 +4825,7 @@ u8 FileSelectProcessFileSelection(void) case 29: if (FileSelectUpdateTilemap(TILEMAP_REQUEST_DIFFICULTY_SPAWN)) { - unk_7e3fc(2, FILE_SELECT_DATA.fileSelectData.difficulty); + unk_7e3fc(2, FILE_SELECT_DATA.fileSelectCursors.difficulty); FILE_SELECT_DATA.subroutineStage++; } break; @@ -4851,9 +4851,9 @@ u8 FileSelectProcessFileSelection(void) } else if (gChangedInput & KEY_UP) { - if (FILE_SELECT_DATA.fileSelectData.difficulty != 0) + if (FILE_SELECT_DATA.fileSelectCursors.difficulty != 0) { - action = --FILE_SELECT_DATA.fileSelectData.difficulty; + action = --FILE_SELECT_DATA.fileSelectCursors.difficulty; FileSelectPlayMenuSound(MENU_SOUND_REQUEST_SUB_MENU_CURSOR); } } @@ -4861,15 +4861,15 @@ u8 FileSelectProcessFileSelection(void) { if (FILE_SELECT_DATA.unk_38 == 0x13) { - if (FILE_SELECT_DATA.fileSelectData.difficulty <= 1) + if (FILE_SELECT_DATA.fileSelectCursors.difficulty <= 1) { - action = ++FILE_SELECT_DATA.fileSelectData.difficulty; + action = ++FILE_SELECT_DATA.fileSelectCursors.difficulty; FileSelectPlayMenuSound(MENU_SOUND_REQUEST_SUB_MENU_CURSOR); } } - else if (FILE_SELECT_DATA.fileSelectData.difficulty == 0) + else if (FILE_SELECT_DATA.fileSelectCursors.difficulty == 0) { - action = ++FILE_SELECT_DATA.fileSelectData.difficulty; + action = ++FILE_SELECT_DATA.fileSelectCursors.difficulty; FileSelectPlayMenuSound(MENU_SOUND_REQUEST_SUB_MENU_CURSOR); } } @@ -4937,22 +4937,22 @@ u8 FileSelectProcessFileSelection(void) break; case 1: - unk_7e3fc(5, FILE_SELECT_DATA.fileSelectData.completedFileOptions); + unk_7e3fc(5, FILE_SELECT_DATA.fileSelectCursors.completedFileOptions); FILE_SELECT_DATA.subroutineStage = 11; break; case 2: - unk_7e3fc(6, FILE_SELECT_DATA.fileSelectData.confirmOverwritingCompleted); + unk_7e3fc(6, FILE_SELECT_DATA.fileSelectCursors.confirmOverwritingCompleted); FILE_SELECT_DATA.subroutineStage = 17; break; case 3: - unk_7e3fc(1, FILE_SELECT_DATA.fileSelectData.japaneseText); + unk_7e3fc(1, FILE_SELECT_DATA.fileSelectCursors.japaneseText); FILE_SELECT_DATA.subroutineStage = 24; break; case 4: - unk_7e3fc(2, FILE_SELECT_DATA.fileSelectData.difficulty); + unk_7e3fc(2, FILE_SELECT_DATA.fileSelectCursors.difficulty); FILE_SELECT_DATA.subroutineStage = 30; break; } diff --git a/src/menus/status_screen.c b/src/menus/status_screen.c index ec90fac9..bdba5b21 100644 --- a/src/menus/status_screen.c +++ b/src/menus/status_screen.c @@ -6,6 +6,7 @@ #include "data/menus/status_screen_data.h" #include "data/menus/pause_screen_data.h" #include "data/menus/internal_pause_screen_data.h" +#include "data/menus/internal_status_screen_data.h" #include "constants/connection.h" #include "constants/demo.h" diff --git a/src/text.c b/src/text.c index cd9b0f4c..db94cb79 100644 --- a/src/text.c +++ b/src/text.c @@ -4,6 +4,7 @@ #include "data/text_data.h" #include "data/text_pointers.h" +#include "data/internal_text_data.h" #include "data/shortcut_pointers.h" #include "data/menus/pause_screen_data.h"