From 1a98bce670b2e400a0f7bb2ef8bbb3463615b137 Mon Sep 17 00:00:00 2001 From: Alex Bates Date: Sun, 2 Jun 2024 12:20:53 +0100 Subject: [PATCH 1/4] don't use IDO for osFlash.c --- src/os/osFlash.c | 1 - tools/build/configure.py | 2 -- 2 files changed, 3 deletions(-) diff --git a/src/os/osFlash.c b/src/os/osFlash.c index e22cdb076..58632068b 100644 --- a/src/os/osFlash.c +++ b/src/os/osFlash.c @@ -1,7 +1,6 @@ #include "ultra64.h" #include "PR/os_flash.h" -// BSS u32 __osFlashID[4]; OSIoMesg __osFlashMsg; OSMesgQueue __osFlashMessageQ; diff --git a/tools/build/configure.py b/tools/build/configure.py index 6400193bd..ca9f3f6c2 100755 --- a/tools/build/configure.py +++ b/tools/build/configure.py @@ -674,8 +674,6 @@ def build( if entry.src_paths[0].suffixes[-1] == ".s": task = "as" - elif seg.name.endswith("osFlash"): - task = "cc_ido" elif "gcc_272" in cflags: task = "cc_272" cflags = cflags.replace("gcc_272", "") From 31fbcfcd8c37c3a08656a017ef2aa30e9ced08a9 Mon Sep 17 00:00:00 2001 From: z64a Date: Mon, 3 Jun 2024 16:36:51 -0400 Subject: [PATCH 2/4] fix improper menu state during file creation --- include/common_structs.h | 2 +- include/enums.h | 16 +-- include/filemenu.h | 7 ++ src/filemenu/filemenu_createfile.c | 8 +- src/filemenu/filemenu_main.c | 171 +++++++++-------------------- src/filemenu/filemenu_yesno.c | 10 +- src/windows.c | 4 +- 7 files changed, 80 insertions(+), 138 deletions(-) diff --git a/include/common_structs.h b/include/common_structs.h index 67116ca38..04e04641b 100644 --- a/include/common_structs.h +++ b/include/common_structs.h @@ -2078,7 +2078,7 @@ typedef struct PauseMapSpace { } PauseMapSpace; // size = 0x14 typedef struct MenuPanel { - /* 0x00 */ u8 initialized; + /* 0x00 */ b8 initialized; /* 0x01 */ s8 col; /* 0x02 */ s8 row; /* 0x03 */ u8 selected; // usually set to the current value from gridData diff --git a/include/enums.h b/include/enums.h index 6405d7e7b..b3678a41b 100644 --- a/include/enums.h +++ b/include/enums.h @@ -5255,14 +5255,14 @@ enum WindowID { WIN_FILES_OPTION_LEFT = 53, WIN_FILES_OPTION_CENTER = 54, WIN_FILES_OPTION_RIGHT = 55, - WIN_FILES_SLOT0_BODY = 56, - WIN_FILES_SLOT1_BODY = 57, - WIN_FILES_SLOT2_BODY = 58, - WIN_FILES_SLOT3_BODY = 59, - WIN_FILES_SLOT0_TITLE = 60, - WIN_FILES_SLOT1_TITLE = 61, - WIN_FILES_SLOT2_TITLE = 62, - WIN_FILES_SLOT3_TITLE = 63, + WIN_FILES_SLOT1_BODY = 56, + WIN_FILES_SLOT2_BODY = 57, + WIN_FILES_SLOT3_BODY = 58, + WIN_FILES_SLOT4_BODY = 59, + WIN_FILES_SLOT1_TITLE = 60, + WIN_FILES_SLOT2_TITLE = 61, + WIN_FILES_SLOT3_TITLE = 62, + WIN_FILES_SLOT4_TITLE = 63, }; enum SimpleWindowUpdateID { diff --git a/include/filemenu.h b/include/filemenu.h index 1bbb9978c..773d96c05 100644 --- a/include/filemenu.h +++ b/include/filemenu.h @@ -25,18 +25,25 @@ enum { FM_MAIN_SELECT_DELETE = 1, // choose which file to delete FM_MAIN_SELECT_COPY_FROM = 2, FM_MAIN_SELECT_COPY_TO = 3, + FM_CONFIRM_DELETE = 0, FM_CONFIRM_CREATE = 1, FM_CONFIRM_COPY = 2, // unused FM_CONFIRM_START = 3, + FM_MESSAGE_DELETED = 0, FM_MESSAGE_COPIED = 1, FM_MESSAGE_CREATED = 2, + FM_INPUT_CHARSET_A = 0, FM_INPUT_CHARSET_B = 1, }; enum { + FM_MAIN_OPT_FILE_1 = 0, + FM_MAIN_OPT_FILE_2 = 1, + FM_MAIN_OPT_FILE_3 = 2, + FM_MAIN_OPT_FILE_4 = 3, FM_MAIN_OPT_DELETE = 4, FM_MAIN_OPT_COPY = 5, FM_MAIN_OPT_CANCEL = 6, diff --git a/src/filemenu/filemenu_createfile.c b/src/filemenu/filemenu_createfile.c index 95ca0815e..3d57ebec4 100644 --- a/src/filemenu/filemenu_createfile.c +++ b/src/filemenu/filemenu_createfile.c @@ -17,7 +17,6 @@ s32 D_8024A18C = -4; #define WINDOW_2_Y (55) #define WINDOW_2_HEIGHT (133) #define ROWS (8) -#define INPUT_FINAL_PAGE (1) extern u8 D_filemenu_80250958[]; extern u8 D_filemenu_80250960[]; #else @@ -25,7 +24,6 @@ extern u8 D_filemenu_80250960[]; #define WINDOW_2_Y (67) #define WINDOW_2_HEIGHT (113) #define ROWS (6) -#define INPUT_FINAL_PAGE (2) #endif MenuWindowBP filemenu_createfile_windowBPs[] = { @@ -488,7 +486,7 @@ void filemenu_choose_name_handle_input(MenuPanel* menu) { gWindows[WIN_FILES_CONFIRM_PROMPT].pos.y = -70; filemenu_currentMenu = FILE_MENU_CONFIRM; - filemenu_menus[filemenu_currentMenu]->state = INPUT_FINAL_PAGE; + filemenu_menus[filemenu_currentMenu]->state = FM_CONFIRM_CREATE; filemenu_set_selected(filemenu_menus[filemenu_currentMenu], 0, 0); return; default: @@ -528,10 +526,10 @@ void filemenu_choose_name_handle_input(MenuPanel* menu) { set_window_update(WIN_FILES_OPTION_CENTER, (s32) &filemenu_update_show_with_rotation); set_window_update(WIN_FILES_OPTION_RIGHT, (s32) &filemenu_update_show_with_rotation); set_window_update(WIN_FILES_OPTION_LEFT, (s32) &filemenu_update_show_with_rotation); - set_window_update(WIN_FILES_SLOT0_BODY, (s32) &filemenu_update_show_with_rotation); set_window_update(WIN_FILES_SLOT1_BODY, (s32) &filemenu_update_show_with_rotation); set_window_update(WIN_FILES_SLOT2_BODY, (s32) &filemenu_update_show_with_rotation); set_window_update(WIN_FILES_SLOT3_BODY, (s32) &filemenu_update_show_with_rotation); + set_window_update(WIN_FILES_SLOT4_BODY, (s32) &filemenu_update_show_with_rotation); filemenu_currentMenu = FILE_MENU_MAIN; return; } @@ -571,7 +569,7 @@ void filemenu_choose_name_handle_input(MenuPanel* menu) { gWindows[WIN_FILES_CONFIRM_PROMPT].pos.y = -70; filemenu_currentMenu = FILE_MENU_CONFIRM; - filemenu_menus[FILE_MENU_CONFIRM]->state = INPUT_FINAL_PAGE; + filemenu_menus[FILE_MENU_CONFIRM]->state = FM_CONFIRM_CREATE; filemenu_set_selected(filemenu_menus[FILE_MENU_CONFIRM], 0, 0); } } diff --git a/src/filemenu/filemenu_main.c b/src/filemenu/filemenu_main.c index 0ecf4a703..f710e36b2 100644 --- a/src/filemenu/filemenu_main.c +++ b/src/filemenu/filemenu_main.c @@ -215,7 +215,7 @@ MenuWindowBP filemenu_main_windowBPs[] = { .style = { .customStyle = &filemenu_windowStyles[6] } }, { - .windowID = WIN_FILES_SLOT2_BODY, + .windowID = WIN_FILES_SLOT3_BODY, .unk_01 = 0, .pos = { .x = 9, .y = 110 }, .width = 130, @@ -229,7 +229,7 @@ MenuWindowBP filemenu_main_windowBPs[] = { .style = { .customStyle = &filemenu_windowStyles[9] } }, { - .windowID = WIN_FILES_SLOT2_TITLE, + .windowID = WIN_FILES_SLOT3_TITLE, .unk_01 = 0, .pos = { .x = 3, .y = -8 }, .width = 124 + OFFSET_WIDTH, @@ -237,13 +237,13 @@ MenuWindowBP filemenu_main_windowBPs[] = { .priority = WINDOW_PRIORITY_0, .fpDrawContents = &filemenu_draw_contents_file_2_title, .tab = NULL, - .parentID = WIN_FILES_SLOT2_BODY, + .parentID = WIN_FILES_SLOT3_BODY, .fpUpdate = { WINDOW_UPDATE_SHOW }, .extraFlags = 0, .style = { .customStyle = &filemenu_windowStyles[13] } }, { - .windowID = WIN_FILES_SLOT3_BODY, + .windowID = WIN_FILES_SLOT4_BODY, .unk_01 = 0, .pos = { .x = 149, .y = 110 }, .width = 130, @@ -257,7 +257,7 @@ MenuWindowBP filemenu_main_windowBPs[] = { .style = { .customStyle = &filemenu_windowStyles[10] } }, { - .windowID = WIN_FILES_SLOT3_TITLE, + .windowID = WIN_FILES_SLOT4_TITLE, .unk_01 = 0, .pos = { .x = 3, .y = -8 }, .width = 124 + OFFSET_WIDTH, @@ -265,13 +265,13 @@ MenuWindowBP filemenu_main_windowBPs[] = { .priority = WINDOW_PRIORITY_0, .fpDrawContents = &filemenu_draw_contents_file_3_title, .tab = NULL, - .parentID = WIN_FILES_SLOT3_BODY, + .parentID = WIN_FILES_SLOT4_BODY, .fpUpdate = { WINDOW_UPDATE_SHOW }, .extraFlags = 0, .style = { .customStyle = &filemenu_windowStyles[14] } }, { - .windowID = WIN_FILES_SLOT0_BODY, + .windowID = WIN_FILES_SLOT1_BODY, .unk_01 = 0, .pos = { .x = 9, .y = 41 }, .width = 130 + OFFSET_WIDTH, @@ -285,7 +285,7 @@ MenuWindowBP filemenu_main_windowBPs[] = { .style = { .customStyle = &filemenu_windowStyles[7] } }, { - .windowID = WIN_FILES_SLOT0_TITLE, + .windowID = WIN_FILES_SLOT1_TITLE, .unk_01 = 0, .pos = { .x = 3, .y = -8 }, .width = 124 + OFFSET_WIDTH, @@ -293,13 +293,13 @@ MenuWindowBP filemenu_main_windowBPs[] = { .priority = WINDOW_PRIORITY_0, .fpDrawContents = &filemenu_draw_contents_file_0_title, .tab = NULL, - .parentID = WIN_FILES_SLOT0_BODY, + .parentID = WIN_FILES_SLOT1_BODY, .fpUpdate = { WINDOW_UPDATE_SHOW }, .extraFlags = 0, .style = { .customStyle = &filemenu_windowStyles[11] } }, { - .windowID = WIN_FILES_SLOT1_BODY, + .windowID = WIN_FILES_SLOT2_BODY, .unk_01 = 0, .pos = { .x = 149, .y = 41 }, .width = 130, @@ -313,7 +313,7 @@ MenuWindowBP filemenu_main_windowBPs[] = { .style = { .customStyle = &filemenu_windowStyles[8] } }, { - .windowID = WIN_FILES_SLOT1_TITLE, + .windowID = WIN_FILES_SLOT2_TITLE, .unk_01 = 0, .pos = { .x = 3, .y = -8 }, .width = 124 + OFFSET_WIDTH, @@ -321,7 +321,7 @@ MenuWindowBP filemenu_main_windowBPs[] = { .priority = WINDOW_PRIORITY_0, .fpDrawContents = &filemenu_draw_contents_file_1_title, .tab = NULL, - .parentID = WIN_FILES_SLOT1_BODY, + .parentID = WIN_FILES_SLOT2_BODY, .fpUpdate = { WINDOW_UPDATE_SHOW }, .extraFlags = 0, .style = { .customStyle = &filemenu_windowStyles[12] } @@ -738,54 +738,7 @@ void filemenu_draw_contents_file_3_title( filemenu_draw_contents_file_title(3, menu, baseX, baseY, width, height, opacity, darkening); } -// TODO figure out how to merge these nicer -#if VERSION_PAL -void filemenu_main_init(MenuPanel* menu) { - s32 halfWidth; - s32 i; - - for (i = 0; i < ARRAY_COUNT(filemenu_hudElemIDs); i++) { - filemenu_hudElemIDs[i] = hud_element_create(filemenu_main_hudElemScripts[gCurrentLanguage][i]); - hud_element_set_flags(filemenu_hudElemIDs[i], HUD_ELEMENT_FLAG_80); - } - - for (i = 0; i < ARRAY_COUNT(filemenu_main_windowBPs); i++) { - filemenu_main_windowBPs[i].tab = menu; - } - - setup_pause_menu_tab(filemenu_main_windowBPs, ARRAY_COUNT(filemenu_main_windowBPs)); - menu->selected = MENU_PANEL_SELECTED_GRID_DATA(menu); - - gWindows[WIN_FILES_TITLE].pos.y = 1; - gWindows[WIN_FILES_TITLE].width = 162; - gWindows[WIN_FILES_TITLE].height = 25; - - halfWidth = gWindows[WIN_FILES_TITLE].width / 2; - - gWindows[WIN_FILES_TITLE].pos.x = gWindows[WIN_FILES_TITLE].parent != WIN_NONE - ? (gWindows[gWindows[WIN_FILES_TITLE].parent].width / 2) - halfWidth - : SCREEN_WIDTH / 2 - halfWidth; - - halfWidth = gWindows[WIN_FILES_OPTION_CENTER].width / 2; - - gWindows[WIN_FILES_OPTION_CENTER].pos.x = gWindows[WIN_FILES_OPTION_CENTER].parent != WIN_NONE - ? (gWindows[gWindows[WIN_FILES_OPTION_CENTER].parent].width / 2) - halfWidth - : SCREEN_WIDTH / 2 - halfWidth; - - if (menu->page != 0) { - set_window_update(WIN_FILES_OPTION_LEFT, WINDOW_UPDATE_HIDE); - set_window_update(WIN_FILES_OPTION_RIGHT, WINDOW_UPDATE_HIDE); - set_window_update(WIN_FILES_STEREO, WINDOW_UPDATE_HIDE); - set_window_update(WIN_FILES_MONO, WINDOW_UPDATE_HIDE); - } - menu->initialized = 1; -} -#else void filemenu_main_init(MenuPanel* menu) { - s32 halfWidth; - s32 halfWidth2; - s16* posXPtr; - s32 x; s32 i; for (i = 0; i < ARRAY_COUNT(filemenu_hudElemIDs); i++) { @@ -804,23 +757,8 @@ void filemenu_main_init(MenuPanel* menu) { gWindows[WIN_FILES_TITLE].width = 162; gWindows[WIN_FILES_TITLE].height = 25; - halfWidth = gWindows[WIN_FILES_TITLE].width / 2; - posXPtr = &gWindows[WIN_FILES_TITLE].pos.x; - if (gWindows[WIN_FILES_TITLE].parent != WIN_NONE) { - x = (gWindows[gWindows[WIN_FILES_TITLE].parent].width / 2) - halfWidth; - } else { - x = SCREEN_WIDTH / 2 - halfWidth; - } - *posXPtr = x; - - halfWidth2 = gWindows[WIN_FILES_OPTION_CENTER].width / 2; - posXPtr = &gWindows[WIN_FILES_OPTION_CENTER].pos.x; - if (gWindows[WIN_FILES_OPTION_CENTER].parent != WIN_NONE) { - x = (gWindows[gWindows[WIN_FILES_OPTION_CENTER].parent].width / 2) - halfWidth2; - } else { - x = SCREEN_WIDTH / 2 - halfWidth2; - } - *posXPtr = x; + gWindows[WIN_FILES_TITLE].pos.x = CENTER_WINDOW_X(WIN_FILES_TITLE); + gWindows[WIN_FILES_OPTION_CENTER].pos.x = CENTER_WINDOW_X(WIN_FILES_OPTION_CENTER); if (menu->state != FM_MAIN_SELECT_FILE) { set_window_update(WIN_FILES_OPTION_LEFT, WINDOW_UPDATE_HIDE); @@ -828,9 +766,8 @@ void filemenu_main_init(MenuPanel* menu) { set_window_update(WIN_FILES_STEREO, WINDOW_UPDATE_HIDE); set_window_update(WIN_FILES_MONO, WINDOW_UPDATE_HIDE); } - menu->initialized = 1; + menu->initialized = TRUE; } -#endif void filemenu_main_handle_input(MenuPanel* menu) { s32 originalSelected = menu->selected; @@ -923,14 +860,14 @@ void filemenu_main_handle_input(MenuPanel* menu) { } } - if ((filemenu_pressedButtons & BUTTON_START) && menu->state == FM_MAIN_SELECT_FILE && menu->selected < 4) { + if ((filemenu_pressedButtons & BUTTON_START) && menu->state == FM_MAIN_SELECT_FILE && menu->selected <= FM_MAIN_OPT_FILE_4) { filemenu_pressedButtons = BUTTON_A; } if (filemenu_pressedButtons & BUTTON_A) { switch (menu->state) { case FM_MAIN_SELECT_FILE: - if (menu->selected < 4 && !gSaveSlotMetadata[menu->selected].hasData) { + if (menu->selected <= FM_MAIN_OPT_FILE_4 && !gSaveSlotMetadata[menu->selected].hasData) { // selected a file with no data for (i = 0; i < ARRAY_COUNT(filemenu_filename); i++) { filemenu_filename[i] = MSG_CHAR_READ_SPACE; @@ -945,10 +882,10 @@ void filemenu_main_handle_input(MenuPanel* menu) { set_window_update(WIN_FILES_OPTION_CENTER, (s32)filemenu_update_hidden_with_rotation); set_window_update(WIN_FILES_OPTION_RIGHT, (s32)filemenu_update_hidden_with_rotation); set_window_update(WIN_FILES_OPTION_LEFT, (s32)filemenu_update_hidden_with_rotation); - set_window_update(WIN_FILES_SLOT0_BODY, (s32)filemenu_update_hidden_with_rotation); set_window_update(WIN_FILES_SLOT1_BODY, (s32)filemenu_update_hidden_with_rotation); set_window_update(WIN_FILES_SLOT2_BODY, (s32)filemenu_update_hidden_with_rotation); set_window_update(WIN_FILES_SLOT3_BODY, (s32)filemenu_update_hidden_with_rotation); + set_window_update(WIN_FILES_SLOT4_BODY, (s32)filemenu_update_hidden_with_rotation); sfx_play_sound(SOUND_MENU_NEXT); filemenu_currentMenu = FILE_MENU_INPUT_NAME; filemenu_menus[FILE_MENU_INPUT_NAME]->state = FM_INPUT_CHARSET_A; @@ -956,21 +893,21 @@ void filemenu_main_handle_input(MenuPanel* menu) { break; } - if (menu->selected == 6) { + if (menu->selected == FM_MAIN_OPT_CANCEL) { // selected "Cancel" button set_window_update(WIN_FILES_STEREO, (s32)filemenu_update_hidden_options_left); set_window_update(WIN_FILES_MONO, (s32)filemenu_update_hidden_options_right); set_window_update(WIN_FILES_OPTION_LEFT, (s32)filemenu_update_hidden_options_bottom); set_window_update(WIN_FILES_OPTION_CENTER, (s32)filemenu_update_hidden_options_bottom); set_window_update(WIN_FILES_OPTION_RIGHT, (s32)filemenu_update_hidden_options_bottom); - set_window_update(WIN_FILES_SLOT0_BODY, (s32)filemenu_update_hidden_options_left); - set_window_update(WIN_FILES_SLOT1_BODY, (s32)filemenu_update_hidden_options_right); - set_window_update(WIN_FILES_SLOT2_BODY, (s32)filemenu_update_hidden_options_left); - set_window_update(WIN_FILES_SLOT3_BODY, (s32)filemenu_update_hidden_options_right); + set_window_update(WIN_FILES_SLOT1_BODY, (s32)filemenu_update_hidden_options_left); + set_window_update(WIN_FILES_SLOT2_BODY, (s32)filemenu_update_hidden_options_right); + set_window_update(WIN_FILES_SLOT3_BODY, (s32)filemenu_update_hidden_options_left); + set_window_update(WIN_FILES_SLOT4_BODY, (s32)filemenu_update_hidden_options_right); set_window_update(WIN_FILES_TITLE, (s32)filemenu_update_hidden_title); sfx_play_sound(SOUND_FILE_MENU_OUT); set_game_mode(GAME_MODE_END_FILE_SELECT); - } else if (menu->selected == 4) { + } else if (menu->selected == FM_MAIN_OPT_DELETE) { // selected "Delete File" button sfx_play_sound(SOUND_MENU_NEXT); menu->state = FM_MAIN_SELECT_DELETE; @@ -979,7 +916,7 @@ void filemenu_main_handle_input(MenuPanel* menu) { set_window_update(WIN_FILES_MONO, (s32)filemenu_update_hidden_options_right); set_window_update(WIN_FILES_OPTION_LEFT, (s32)filemenu_update_hidden_options_bottom); set_window_update(WIN_FILES_OPTION_RIGHT, (s32)filemenu_update_hidden_options_bottom); - } else if (menu->selected == 5) { + } else if (menu->selected == FM_MAIN_OPT_COPY) { // selected "Copy File" button sfx_play_sound(SOUND_MENU_NEXT); menu->state = FM_MAIN_SELECT_COPY_FROM; @@ -988,7 +925,7 @@ void filemenu_main_handle_input(MenuPanel* menu) { set_window_update(WIN_FILES_MONO, (s32)filemenu_update_hidden_options_right); set_window_update(WIN_FILES_OPTION_LEFT, (s32)filemenu_update_hidden_options_bottom); set_window_update(WIN_FILES_OPTION_RIGHT, (s32)filemenu_update_hidden_options_bottom); - } else if (menu->selected < 4) { + } else if (menu->selected <= FM_MAIN_OPT_FILE_4) { // selected a file sfx_play_sound(SOUND_MENU_NEXT); set_window_update(WIN_FILES_TITLE, (s32)filemenu_update_hidden_with_rotation); @@ -998,11 +935,11 @@ void filemenu_main_handle_input(MenuPanel* menu) { set_window_update(WIN_FILES_OPTION_CENTER, (s32)filemenu_update_hidden_with_rotation); set_window_update(WIN_FILES_OPTION_RIGHT, (s32)filemenu_update_hidden_with_rotation); set_window_update(WIN_FILES_OPTION_LEFT, (s32)filemenu_update_hidden_with_rotation); - set_window_update(WIN_FILES_SLOT0_BODY, (s32)filemenu_update_hidden_with_rotation); set_window_update(WIN_FILES_SLOT1_BODY, (s32)filemenu_update_hidden_with_rotation); set_window_update(WIN_FILES_SLOT2_BODY, (s32)filemenu_update_hidden_with_rotation); set_window_update(WIN_FILES_SLOT3_BODY, (s32)filemenu_update_hidden_with_rotation); - set_window_update(menu->selected + WIN_FILES_SLOT0_BODY, (s32)filemenu_update_select_file); + set_window_update(WIN_FILES_SLOT4_BODY, (s32)filemenu_update_hidden_with_rotation); + set_window_update(WIN_FILES_SLOT1_BODY + menu->selected, (s32)filemenu_update_select_file); sfx_play_sound(SOUND_MENU_NEXT); set_window_update(WIN_FILES_CONFIRM_OPTIONS, WINDOW_UPDATE_SHOW); @@ -1026,7 +963,7 @@ void filemenu_main_handle_input(MenuPanel* menu) { } break; case FM_MAIN_SELECT_DELETE: - if (menu->selected == 6) { + if (menu->selected == FM_MAIN_OPT_CANCEL) { // selected "Cancel" button sfx_play_sound(SOUND_MENU_NEXT); menu->state = FM_MAIN_SELECT_FILE; @@ -1035,7 +972,7 @@ void filemenu_main_handle_input(MenuPanel* menu) { set_window_update(WIN_FILES_OPTION_LEFT, (s32)filemenu_update_show_options_bottom); set_window_update(WIN_FILES_OPTION_RIGHT, (s32)filemenu_update_show_options_bottom); filemenu_set_selected(menu, 0, 2); - } else if (menu->selected < 4) { + } else if (menu->selected <= FM_MAIN_OPT_FILE_4) { // selected a file if (gSaveSlotMetadata[menu->selected].hasData) { sfx_play_sound(SOUND_MENU_NEXT); @@ -1060,7 +997,7 @@ void filemenu_main_handle_input(MenuPanel* menu) { } break; case FM_MAIN_SELECT_COPY_FROM: - if (menu->selected == 6) { + if (menu->selected == FM_MAIN_OPT_CANCEL) { // selected "Cancel" button sfx_play_sound(SOUND_MENU_NEXT); menu->state = FM_MAIN_SELECT_FILE; @@ -1069,7 +1006,7 @@ void filemenu_main_handle_input(MenuPanel* menu) { set_window_update(WIN_FILES_OPTION_LEFT, (s32)filemenu_update_show_options_bottom); set_window_update(WIN_FILES_OPTION_RIGHT, (s32)filemenu_update_show_options_bottom); filemenu_set_selected(menu, 0, 1); - } else if (menu->selected < 4) { + } else if (menu->selected <= FM_MAIN_OPT_FILE_4) { // selected a file if (gSaveSlotMetadata[menu->selected].hasData) { sfx_play_sound(SOUND_MENU_NEXT); @@ -1081,12 +1018,12 @@ void filemenu_main_handle_input(MenuPanel* menu) { } break; case FM_MAIN_SELECT_COPY_TO: - if (menu->selected == 6) { + if (menu->selected == FM_MAIN_OPT_CANCEL) { // selected "Cancel" button sfx_play_sound(SOUND_MENU_NEXT); menu->state = FM_MAIN_SELECT_COPY_FROM; filemenu_set_selected(menu, 0, 2); - } else if (menu->selected < 4) { + } else if (menu->selected <= FM_MAIN_OPT_FILE_4) { // selected a file if (filemenu_CopyFromFileIdx == menu->selected) { sfx_play_sound(SOUND_MENU_ERROR); @@ -1153,10 +1090,10 @@ void filemenu_main_handle_input(MenuPanel* menu) { set_window_update(WIN_FILES_OPTION_LEFT, (s32)filemenu_update_hidden_options_bottom); set_window_update(WIN_FILES_OPTION_CENTER, (s32)filemenu_update_hidden_options_bottom); set_window_update(WIN_FILES_OPTION_RIGHT, (s32)filemenu_update_hidden_options_bottom); - set_window_update(WIN_FILES_SLOT0_BODY, (s32)filemenu_update_hidden_options_left); - set_window_update(WIN_FILES_SLOT1_BODY, (s32)filemenu_update_hidden_options_right); - set_window_update(WIN_FILES_SLOT2_BODY, (s32)filemenu_update_hidden_options_left); - set_window_update(WIN_FILES_SLOT3_BODY, (s32)filemenu_update_hidden_options_right); + set_window_update(WIN_FILES_SLOT1_BODY, (s32)filemenu_update_hidden_options_left); + set_window_update(WIN_FILES_SLOT2_BODY, (s32)filemenu_update_hidden_options_right); + set_window_update(WIN_FILES_SLOT3_BODY, (s32)filemenu_update_hidden_options_left); + set_window_update(WIN_FILES_SLOT4_BODY, (s32)filemenu_update_hidden_options_right); set_window_update(WIN_FILES_TITLE, (s32)filemenu_update_hidden_title); sfx_play_sound(SOUND_FILE_MENU_OUT); set_game_mode(GAME_MODE_END_FILE_SELECT); @@ -1190,54 +1127,54 @@ void filemenu_main_handle_input(MenuPanel* menu) { void filemenu_main_update(MenuPanel* menu) { // set default styles for all file slot panels - gWindowStyles[WIN_FILES_SLOT0_BODY].customStyle = &filemenu_windowStyles[15]; gWindowStyles[WIN_FILES_SLOT1_BODY].customStyle = &filemenu_windowStyles[15]; gWindowStyles[WIN_FILES_SLOT2_BODY].customStyle = &filemenu_windowStyles[15]; gWindowStyles[WIN_FILES_SLOT3_BODY].customStyle = &filemenu_windowStyles[15]; - gWindowStyles[WIN_FILES_SLOT0_TITLE].customStyle = &filemenu_windowStyles[17]; + gWindowStyles[WIN_FILES_SLOT4_BODY].customStyle = &filemenu_windowStyles[15]; gWindowStyles[WIN_FILES_SLOT1_TITLE].customStyle = &filemenu_windowStyles[17]; gWindowStyles[WIN_FILES_SLOT2_TITLE].customStyle = &filemenu_windowStyles[17]; gWindowStyles[WIN_FILES_SLOT3_TITLE].customStyle = &filemenu_windowStyles[17]; + gWindowStyles[WIN_FILES_SLOT4_TITLE].customStyle = &filemenu_windowStyles[17]; // modify style for selected file slot panel to add highlight switch (menu->selected) { - case 0: - gWindowStyles[WIN_FILES_SLOT0_BODY].customStyle = &filemenu_windowStyles[16]; - gWindowStyles[WIN_FILES_SLOT0_TITLE].customStyle = &filemenu_windowStyles[18]; - break; - case 1: + case FM_MAIN_OPT_FILE_1: gWindowStyles[WIN_FILES_SLOT1_BODY].customStyle = &filemenu_windowStyles[16]; gWindowStyles[WIN_FILES_SLOT1_TITLE].customStyle = &filemenu_windowStyles[18]; break; - case 2: + case FM_MAIN_OPT_FILE_2: gWindowStyles[WIN_FILES_SLOT2_BODY].customStyle = &filemenu_windowStyles[16]; gWindowStyles[WIN_FILES_SLOT2_TITLE].customStyle = &filemenu_windowStyles[18]; break; - case 3: + case FM_MAIN_OPT_FILE_3: gWindowStyles[WIN_FILES_SLOT3_BODY].customStyle = &filemenu_windowStyles[16]; gWindowStyles[WIN_FILES_SLOT3_TITLE].customStyle = &filemenu_windowStyles[18]; break; + case FM_MAIN_OPT_FILE_4: + gWindowStyles[WIN_FILES_SLOT4_BODY].customStyle = &filemenu_windowStyles[16]; + gWindowStyles[WIN_FILES_SLOT4_TITLE].customStyle = &filemenu_windowStyles[18]; + break; } // alsoadd highlight to "copy to" target if (filemenu_menus[FILE_MENU_MAIN]->state == FM_MAIN_SELECT_COPY_TO) { switch (filemenu_CopyFromFileIdx) { - case 0: - gWindowStyles[WIN_FILES_SLOT0_BODY].customStyle = &filemenu_windowStyles[16]; - gWindowStyles[WIN_FILES_SLOT0_TITLE].customStyle = &filemenu_windowStyles[18]; - return; - case 1: + case FM_MAIN_OPT_FILE_1: gWindowStyles[WIN_FILES_SLOT1_BODY].customStyle = &filemenu_windowStyles[16]; gWindowStyles[WIN_FILES_SLOT1_TITLE].customStyle = &filemenu_windowStyles[18]; return; - case 2: + case FM_MAIN_OPT_FILE_2: gWindowStyles[WIN_FILES_SLOT2_BODY].customStyle = &filemenu_windowStyles[16]; gWindowStyles[WIN_FILES_SLOT2_TITLE].customStyle = &filemenu_windowStyles[18]; return; - case 3: + case FM_MAIN_OPT_FILE_3: gWindowStyles[WIN_FILES_SLOT3_BODY].customStyle = &filemenu_windowStyles[16]; gWindowStyles[WIN_FILES_SLOT3_TITLE].customStyle = &filemenu_windowStyles[18]; return; + case FM_MAIN_OPT_FILE_4: + gWindowStyles[WIN_FILES_SLOT4_BODY].customStyle = &filemenu_windowStyles[16]; + gWindowStyles[WIN_FILES_SLOT4_TITLE].customStyle = &filemenu_windowStyles[18]; + return; } } } diff --git a/src/filemenu/filemenu_yesno.c b/src/filemenu/filemenu_yesno.c index 3afa1221f..4948f7c7c 100644 --- a/src/filemenu/filemenu_yesno.c +++ b/src/filemenu/filemenu_yesno.c @@ -298,10 +298,10 @@ void filemenu_yesno_handle_input(MenuPanel* menu) { set_window_update(WIN_FILES_OPTION_CENTER, (s32)filemenu_update_show_with_rotation); set_window_update(WIN_FILES_OPTION_RIGHT, (s32)filemenu_update_show_with_rotation); set_window_update(WIN_FILES_OPTION_LEFT, (s32)filemenu_update_show_with_rotation); - set_window_update(WIN_FILES_SLOT0_BODY, (s32)filemenu_update_show_with_rotation); set_window_update(WIN_FILES_SLOT1_BODY, (s32)filemenu_update_show_with_rotation); set_window_update(WIN_FILES_SLOT2_BODY, (s32)filemenu_update_show_with_rotation); set_window_update(WIN_FILES_SLOT3_BODY, (s32)filemenu_update_show_with_rotation); + set_window_update(WIN_FILES_SLOT4_BODY, (s32)filemenu_update_show_with_rotation); set_window_update(WIN_FILES_CONFIRM_OPTIONS, (s32)filemenu_update_hidden_name_confirm); filemenu_currentMenu = FILE_MENU_MESSAGE; filemenu_menus[FILE_MENU_MESSAGE]->state = FM_MESSAGE_CREATED; @@ -346,11 +346,11 @@ void filemenu_yesno_handle_input(MenuPanel* menu) { set_window_update(WIN_FILES_OPTION_CENTER, (s32)filemenu_update_show_with_rotation); set_window_update(WIN_FILES_OPTION_RIGHT, (s32)filemenu_update_show_with_rotation); set_window_update(WIN_FILES_OPTION_LEFT, (s32)filemenu_update_show_with_rotation); - set_window_update(WIN_FILES_SLOT0_BODY, (s32)filemenu_update_show_with_rotation); set_window_update(WIN_FILES_SLOT1_BODY, (s32)filemenu_update_show_with_rotation); set_window_update(WIN_FILES_SLOT2_BODY, (s32)filemenu_update_show_with_rotation); set_window_update(WIN_FILES_SLOT3_BODY, (s32)filemenu_update_show_with_rotation); - set_window_update(selected + WIN_FILES_SLOT0_BODY, (s32)filemenu_update_deselect_file); + set_window_update(WIN_FILES_SLOT4_BODY, (s32)filemenu_update_show_with_rotation); + set_window_update(selected + WIN_FILES_SLOT1_BODY, (s32)filemenu_update_deselect_file); set_window_update(WIN_FILES_CONFIRM_OPTIONS, WINDOW_UPDATE_HIDE); break; } @@ -382,11 +382,11 @@ void filemenu_yesno_handle_input(MenuPanel* menu) { set_window_update(WIN_FILES_OPTION_CENTER, (s32)filemenu_update_show_with_rotation); set_window_update(WIN_FILES_OPTION_RIGHT, (s32)filemenu_update_show_with_rotation); set_window_update(WIN_FILES_OPTION_LEFT, (s32)filemenu_update_show_with_rotation); - set_window_update(WIN_FILES_SLOT0_BODY, (s32)filemenu_update_show_with_rotation); set_window_update(WIN_FILES_SLOT1_BODY, (s32)filemenu_update_show_with_rotation); set_window_update(WIN_FILES_SLOT2_BODY, (s32)filemenu_update_show_with_rotation); set_window_update(WIN_FILES_SLOT3_BODY, (s32)filemenu_update_show_with_rotation); - set_window_update(selected + WIN_FILES_SLOT0_BODY, (s32)filemenu_update_deselect_file); + set_window_update(WIN_FILES_SLOT4_BODY, (s32)filemenu_update_show_with_rotation); + set_window_update(selected + WIN_FILES_SLOT1_BODY, (s32)filemenu_update_deselect_file); set_window_update(WIN_FILES_CONFIRM_OPTIONS, WINDOW_UPDATE_HIDE); break; } diff --git a/src/windows.c b/src/windows.c index d8c53dcf9..f29b451ff 100644 --- a/src/windows.c +++ b/src/windows.c @@ -126,10 +126,10 @@ u8 gWindowDisappearFlags[] = { DRAW_FLAG_ROTSCALE, DRAW_FLAG_ROTSCALE, DRAW_FLAG DRAW_FLAG_ROTSCALE, DRAW_FLAG_ROTSCALE, 0 }; WindowGroup gWindowGroups[] = { - [WINDOW_GROUP_ALL] { WIN_UNUSED_0, WIN_FILES_SLOT3_TITLE }, + [WINDOW_GROUP_ALL] { WIN_UNUSED_0, WIN_FILES_SLOT4_TITLE }, [WINDOW_GROUP_BATTLE] { WIN_BTL_DESC_BOX, WIN_BTL_POPUP }, [WINDOW_GROUP_PAUSE] { WIN_PAUSE_MAIN, WIN_PAUSE_TAB_INVIS }, - [WINDOW_GROUP_FILES] { WIN_FILES_MAIN, WIN_FILES_SLOT3_TITLE }, + [WINDOW_GROUP_FILES] { WIN_FILES_MAIN, WIN_FILES_SLOT4_TITLE }, }; void clear_windows(void) { From ea4a872128434e7cb87598f5e7107d66cf4779d7 Mon Sep 17 00:00:00 2001 From: Alex Bates Date: Wed, 5 Jun 2024 16:54:24 +0100 Subject: [PATCH 3/4] ci: determine upstream automatically --- .github/workflows/sync.yml | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/.github/workflows/sync.yml b/.github/workflows/sync.yml index 0865c311a..c21ef51b4 100644 --- a/.github/workflows/sync.yml +++ b/.github/workflows/sync.yml @@ -3,7 +3,6 @@ # If the tests pass then the PR is automatically merged by GitHub. name: Sync upstream env: - UPSTREAM: pmret/papermario # If you forked dx, change this to star-haven/papermario-dx! (TODO: do this automatically) UPSTREAM_BRANCH: main BASE_BRANCH: main on: @@ -21,8 +20,15 @@ jobs: with: fetch-depth: 0 ref: ${{ env.BASE_BRANCH }} + - name: Determine upstream + run: | + if [[ "${{ github.repository }}" == "bates64/papermario-dx" ]]; then + echo "UPSTREAM=pmret/papermario" >> $GITHUB_ENV + else + echo "UPSTREAM=bates64/papermario-dx" >> $GITHUB_ENV + fi - name: Fetch upstream - run: git fetch https://github.com/${{ env.UPSTREAM }}.git ${UPSTREAM_BRANCH} + run: git fetch https://github.com/$UPSTREAM.git $UPSTREAM_BRANCH - name: Set git user # https://github.com/orgs/community/discussions/26560 run: | @@ -38,7 +44,7 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Create Pull Request run: | - gh pr create --title "Sync with ${{ env.UPSTREAM }}" --body "Automated PR to keep this repository in sync with upstream. Beep boop." --base ${BASE_BRANCH} + gh pr create --title "Sync with $UPSTREAM" --body "Automated PR to keep this repository in sync with upstream. Beep boop." --base ${BASE_BRANCH} env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - + From 0cec8ae60f3f9d0d27f8acabfa3ac25fd157beee Mon Sep 17 00:00:00 2001 From: Alex Bates Date: Wed, 5 Jun 2024 17:17:59 +0100 Subject: [PATCH 4/4] ci: fix? sync workflow --- .gitattributes | 5 +++++ .github/workflows/sync.yml | 4 ---- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/.gitattributes b/.gitattributes index 668ebff92..d67e1378d 100644 --- a/.gitattributes +++ b/.gitattributes @@ -2,3 +2,8 @@ # suppress asm/nonmatchings/ in GitHub diffs asm/nonmatchings/**/*.s linguist-generated + +*.c diff=cpp +*.h diff=cpp + +src/world/dead/**/* merge=ours diff --git a/.github/workflows/sync.yml b/.github/workflows/sync.yml index c21ef51b4..657fc589e 100644 --- a/.github/workflows/sync.yml +++ b/.github/workflows/sync.yml @@ -38,10 +38,6 @@ jobs: run: | git checkout ${BASE_BRANCH} git merge --no-ff --log FETCH_HEAD -m "Merge upstream changes" - - name: Push changes - run: git push origin ${BASE_BRANCH} - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Create Pull Request run: | gh pr create --title "Sync with $UPSTREAM" --body "Automated PR to keep this repository in sync with upstream. Beep boop." --base ${BASE_BRANCH}