mirror of https://github.com/pmret/papermario.git
filemenu state upstreams from dx (#1215)
This commit is contained in:
parent
bf0741ce15
commit
b1ca4bd051
|
@ -2164,7 +2164,7 @@ typedef struct MenuPanel {
|
|||
/* 0x01 */ s8 col;
|
||||
/* 0x02 */ s8 row;
|
||||
/* 0x03 */ u8 selected; // usually set to the current value from gridData
|
||||
/* 0x04 */ s8 page; // filemenu: 0 = select, 1 = delete, 3 = copy from, 4 = copy to, all else = save
|
||||
/* 0x04 */ s8 state; // filemenu: 0 = select, 1 = delete, 3 = copy from, 4 = copy to, all else = save
|
||||
/* 0x05 */ s8 numCols;
|
||||
/* 0x06 */ s8 numRows;
|
||||
/* 0x07 */ s8 numPages; // unsure
|
||||
|
|
|
@ -5369,14 +5369,14 @@ enum FileMenuMessages {
|
|||
/* 31 */ FILE_MESSAGE_HAS_BEEN_CREATED, // has been created.[End]
|
||||
#if VERSION_PAL
|
||||
// TODO: determine where these new entries should be placed
|
||||
UNK1,
|
||||
UNK2,
|
||||
FILE_MESSAGE_PAL_UNK1,
|
||||
FILE_MESSAGE_PAL_UNK2,
|
||||
#endif
|
||||
/* 32 */ FILE_MESSAGE_ENTER_A_FILE_NAME, // Enter a file name![End]
|
||||
/* 33 */ FILE_MESSAGE_QUESTION, // ?[End]
|
||||
/* 34 */ FILE_MESSAGE_PERIOD_34, // .[End]
|
||||
#if VERSION_PAL
|
||||
FILE_MESSAGE_BASE_UNK,
|
||||
FILE_MESSAGE_PAL_UNK3,
|
||||
#endif
|
||||
};
|
||||
|
||||
|
@ -6033,6 +6033,12 @@ enum MsgChars {
|
|||
|
||||
MSG_CHAR_UNK_C3 = 0xC3,
|
||||
|
||||
MSG_CHAR_MENU_SPACE = 0xC6,
|
||||
MSG_CHAR_MENU_USE_CHARSET_B = 0xC7,
|
||||
MSG_CHAR_MENU_USE_CHARSET_A = 0xC8,
|
||||
MSG_CHAR_MENU_BACK = 0xC9,
|
||||
MSG_CHAR_MENU_END = 0xCA,
|
||||
|
||||
// special character codes used when reading from the source buffer
|
||||
MSG_CHAR_READ_ENDL = 0xF0,
|
||||
MSG_CHAR_READ_WAIT = 0xF1,
|
||||
|
|
|
@ -4,14 +4,65 @@
|
|||
#include "common.h"
|
||||
#include "filemenu.h"
|
||||
|
||||
#define CENTER_WINDOW_X(id) (((gWindows[id].parent != WIN_NONE) \
|
||||
? (gWindows[gWindows[id].parent].width / 2) \
|
||||
: (SCREEN_WIDTH / 2)) \
|
||||
- (gWindows[id].width / 2))
|
||||
|
||||
#define CENTER_WINDOW_Y(id) (((gWindows[id].parent != WIN_NONE) \
|
||||
? (gWindows[gWindows[id].parent].height / 2) \
|
||||
: (SCREEN_HEIGHT / 2)) \
|
||||
- (gWindows[id].height / 2))
|
||||
|
||||
enum {
|
||||
PAGE_0,
|
||||
PAGE_1,
|
||||
FILE_MENU_MAIN = 0, // file selection
|
||||
FILE_MENU_CONFIRM = 1, // confirmation prompt is open
|
||||
FILE_MENU_MESSAGE = 2, // message is displayed, e.g. "File X has been deleted."
|
||||
FILE_MENU_INPUT_NAME = 3, // "Enter a file name!" screen
|
||||
FILE_MENU_SELECT_LANG = 4, // PAL only
|
||||
};
|
||||
|
||||
enum {
|
||||
// states for main menu
|
||||
FM_MAIN_SELECT_FILE = 0, // choose which file to load
|
||||
FM_MAIN_SELECT_DELETE, // choose which file to delete
|
||||
#if !VERSION_PAL
|
||||
PAGE_2,
|
||||
FM_MAIN_SELECT_LANG_DUMMY, // non-PAL versions have an unimplemented dummy language select
|
||||
#endif
|
||||
PAGE_3,
|
||||
PAGE_4,
|
||||
FM_MAIN_SELECT_COPY_FROM,
|
||||
FM_MAIN_SELECT_COPY_TO,
|
||||
FM_MAIN_SELECT_LANG_PAL,
|
||||
|
||||
// states for confirm submenu
|
||||
FM_CONFIRM_DELETE = 0,
|
||||
#if !VERSION_PAL
|
||||
FM_CONFIRM_DUMMY,
|
||||
#endif
|
||||
FM_CONFIRM_CREATE,
|
||||
FM_CONFIRM_COPY, // unused
|
||||
FM_CONFIRM_START,
|
||||
|
||||
// states for message submenu
|
||||
FM_MESSAGE_DELETED = 0,
|
||||
#if !VERSION_PAL
|
||||
FM_MESSAGE_DUMMY,
|
||||
#endif
|
||||
FM_MESSAGE_COPIED,
|
||||
FM_MESSAGE_CREATED,
|
||||
|
||||
// states for input submenu
|
||||
FM_INPUT_CHARSET_A = 0,
|
||||
FM_INPUT_CHARSET_B,
|
||||
};
|
||||
|
||||
enum {
|
||||
FM_MAIN_OPT_FILE_1,
|
||||
FM_MAIN_OPT_FILE_2,
|
||||
FM_MAIN_OPT_FILE_3,
|
||||
FM_MAIN_OPT_FILE_4,
|
||||
FM_MAIN_OPT_DELETE,
|
||||
FM_MAIN_OPT_COPY,
|
||||
FM_MAIN_OPT_CANCEL,
|
||||
};
|
||||
|
||||
extern MenuPanel* filemenu_menus[];
|
||||
|
@ -44,7 +95,7 @@ extern u8 D_filemenu_8025095C[4];
|
|||
f32* scaleX, f32* scaleY,\
|
||||
f32* rotX, f32* rotY, f32* rotZ,\
|
||||
s32* darkening,\
|
||||
s32* opacity);\
|
||||
s32* opacity)
|
||||
|
||||
WINDOW_UPDATE_FUNC(filemenu_update_show_name_input);
|
||||
WINDOW_UPDATE_FUNC(filemenu_update_show_options_left);
|
||||
|
|
|
@ -110,10 +110,10 @@ void pause_handle_input(s32 buttonsPressed, s32 buttonsHeld);
|
|||
void pause_cleanup(void);
|
||||
|
||||
// file menu stuff
|
||||
void filemenu_init(s32);
|
||||
void filemenu_init(s32 mode);
|
||||
void filemenu_cleanup(void);
|
||||
void filemenu_update(void);
|
||||
s32 func_80244BC4(void);
|
||||
s32 filemenu_get_exit_mode(void);
|
||||
void filemenu_set_selected(MenuPanel* menu, s32 col, s32 row);
|
||||
void filemenu_set_cursor_alpha(s32 arg0);
|
||||
void filemenu_set_cursor_goal_pos(s32 windowIndex, s32 posX, s32 posY);
|
||||
|
|
|
@ -81,7 +81,7 @@
|
|||
#define ITEM_MENU_PAGE(index) (&gPauseItemsPages[index])
|
||||
|
||||
#define MENU_PANEL_SELECTED_GRID_DATA(panel) \
|
||||
(panel)->gridData[(panel)->page * (panel)->numCols * (panel)->numRows + \
|
||||
(panel)->gridData[(panel)->state * (panel)->numCols * (panel)->numRows + \
|
||||
(panel)->numCols * (panel)->row + \
|
||||
(panel)->col]
|
||||
|
||||
|
|
|
@ -444,11 +444,11 @@ BSS s32 D_802AD6D4;
|
|||
void create_battle_popup_menu(PopupMenu* popup);
|
||||
|
||||
s32 get_player_anim_for_status(s32 animID);
|
||||
void func_802A3C98(void* data, s32 x, s32 y);
|
||||
void func_802A43DC(void* data, s32 x, s32 y);
|
||||
void func_802A4448(void* data, s32 x, s32 y);
|
||||
void func_802A4494(void* data, s32 x, s32 y);
|
||||
void func_802A4534(void* data, s32 x, s32 y);
|
||||
void btl_menu_moves_draw_content(void* data, s32 x, s32 y);
|
||||
void btl_menu_moves_show_title(void* data, s32 x, s32 y);
|
||||
void btl_menu_moves_show_icon(void* data, s32 x, s32 y);
|
||||
void btl_menu_moves_show_desc(void* data, s32 x, s32 y);
|
||||
void btl_menu_moves_show_error(void* data, s32 x, s32 y);
|
||||
void btl_menu_strats_draw_content(void* data, s32 x, s32 y);
|
||||
void btl_menu_strats_show_title(void* data, s32 x, s32 y);
|
||||
void btl_menu_strats_show_desc(void* data, s32 x, s32 y);
|
||||
|
@ -1191,21 +1191,21 @@ s32 btl_submenu_moves_update(void) {
|
|||
moveX = BattleMenu_Moves_PosX;
|
||||
moveY = BattleMenu_Moves_PosY;
|
||||
if (!BattleMenu_UsingSpiritsSubmenu) {
|
||||
set_window_properties(1, moveX, moveY, 150, (D_802AD10E * 13) + 28, 0, func_802A3C98, NULL, -1);
|
||||
set_window_properties(2, moveX + 16, moveY - 6, 90, 16, 1, func_802A43DC, NULL, -1);
|
||||
set_window_properties(3, moveX + 114, moveY - 12, 32, 32, 1, func_802A4448, NULL, -1);
|
||||
set_window_properties(WIN_BTL_MOVES_MENU, moveX, moveY, 150, (D_802AD10E * 13) + 28, 0, btl_menu_moves_draw_content, NULL, -1);
|
||||
set_window_properties(WIN_BTL_MOVES_TITLE, moveX + 16, moveY - 6, 90, 16, 1, btl_menu_moves_show_title, NULL, -1);
|
||||
set_window_properties(WIN_BTL_MOVES_ICON, moveX + 114, moveY - 12, 32, 32, 1, btl_menu_moves_show_icon, NULL, -1);
|
||||
} else {
|
||||
s16 new_var;
|
||||
|
||||
set_window_properties(1, moveX, moveY, 144, (D_802AD10E * 13) + 28, 0, func_802A3C98, NULL, -1);
|
||||
set_window_properties(WIN_BTL_MOVES_MENU, moveX, moveY, 144, (D_802AD10E * 13) + 28, 0, btl_menu_moves_draw_content, NULL, -1);
|
||||
new_var = moveY; // todo required to match
|
||||
set_window_properties(4, moveX + 10, new_var - 6, 100, 16, 1, func_802A43DC, 0, -1);
|
||||
set_window_properties(5, moveX + 110, new_var - 12, 32, 35, 1, func_802A4448, 0, -1);
|
||||
set_window_properties(WIN_BTL_SPIRITS_TITLE, moveX + 10, new_var - 6, 100, 16, 1, btl_menu_moves_show_title, 0, -1);
|
||||
set_window_properties(WIN_BTL_SPIRITS_ICON, moveX + 110, new_var - 12, 32, 35, 1, btl_menu_moves_show_icon, 0, -1);
|
||||
}
|
||||
|
||||
moveX = 20;
|
||||
moveY = BattleMenu_Moves_PosY;
|
||||
set_window_properties(8, moveX, 186, 280, 32, WINDOW_PRIORITY_20, func_802A4494, NULL, -1);
|
||||
set_window_properties(WIN_BTL_DESC_BOX, moveX, 186, 280, 32, WINDOW_PRIORITY_20, btl_menu_moves_show_desc, NULL, -1);
|
||||
set_window_update(WIN_BTL_MOVES_MENU, WINDOW_UPDATE_SHOW);
|
||||
if (!BattleMenu_UsingSpiritsSubmenu) {
|
||||
set_window_update(WIN_BTL_MOVES_TITLE, WINDOW_UPDATE_SHOW);
|
||||
|
@ -1419,7 +1419,7 @@ s32 btl_submenu_moves_update(void) {
|
|||
|
||||
msgWidth = get_msg_width(msgID, 0) + 23;
|
||||
moveX = (SCREEN_WIDTH / 2) - (msgWidth / 2);
|
||||
set_window_properties(9, moveX, 80, msgWidth, D_802AB340[get_msg_lines(msgID) - 1], 20, func_802A4534, NULL, -1);
|
||||
set_window_properties(WIN_BTL_POPUP, moveX, 80, msgWidth, D_802AB340[get_msg_lines(msgID) - 1], 20, btl_menu_moves_show_error, NULL, -1);
|
||||
set_window_update(WIN_BTL_POPUP, WINDOW_UPDATE_SHOW);
|
||||
D_802AD10B = 60;
|
||||
battle_menu_moveState = BTL_SUBMENU_MOVES_STATE_UNK_2A;
|
||||
|
@ -1458,7 +1458,7 @@ s32 btl_submenu_moves_update(void) {
|
|||
#define X_VAR2 93
|
||||
#endif
|
||||
|
||||
void func_802A3C98(void* data, s32 x, s32 y) {
|
||||
void btl_menu_moves_draw_content(void* data, s32 x, s32 y) {
|
||||
s32 var_t0;
|
||||
s32 temp_f6;
|
||||
s32 xPos, yPos;
|
||||
|
@ -1662,7 +1662,7 @@ void func_802A3C98(void* data, s32 x, s32 y) {
|
|||
}
|
||||
}
|
||||
|
||||
void func_802A43DC(void* data, s32 x, s32 y) {
|
||||
void btl_menu_moves_show_title(void* data, s32 x, s32 y) {
|
||||
s32 msgID;
|
||||
s32 posX;
|
||||
s32 posY;
|
||||
|
@ -1685,7 +1685,7 @@ void func_802A43DC(void* data, s32 x, s32 y) {
|
|||
draw_msg(msgID, posX, posY, opacity, palette, DRAW_MSG_STYLE_MENU);
|
||||
}
|
||||
|
||||
void func_802A4448(void* data, s32 x, s32 y) {
|
||||
void btl_menu_moves_show_icon(void* data, s32 x, s32 y) {
|
||||
s32 icon = BattleMenu_Moves_TitleID;
|
||||
|
||||
hud_element_set_render_pos(icon, x + 16, y + 15);
|
||||
|
@ -1693,7 +1693,7 @@ void func_802A4448(void* data, s32 x, s32 y) {
|
|||
hud_element_draw_clipped(icon);
|
||||
}
|
||||
|
||||
void func_802A4494(void* data, s32 x, s32 y) {
|
||||
void btl_menu_moves_show_desc(void* data, s32 x, s32 y) {
|
||||
switch (battle_menu_moveState) {
|
||||
case BTL_SUBMENU_MOVES_STATE_UNK_NEGATIVE_ONE:
|
||||
case BTL_SUBMENU_MOVES_STATE_UNK_1:
|
||||
|
@ -1708,7 +1708,7 @@ void func_802A4494(void* data, s32 x, s32 y) {
|
|||
}
|
||||
}
|
||||
|
||||
void func_802A4534(void* data, s32 x, s32 y) {
|
||||
void btl_menu_moves_show_error(void* data, s32 x, s32 y) {
|
||||
s32 posY = y;
|
||||
s32 posX;
|
||||
s32 msgID;
|
||||
|
|
|
@ -195,7 +195,7 @@ void filemenu_draw_rect(s32 ulx, s32 uly, s32 lrx, s32 lry, s32 tileIdx, s32 uls
|
|||
void filemenu_set_selected(MenuPanel* menu, s32 col, s32 row) {
|
||||
menu->col = col;
|
||||
menu->row = row;
|
||||
menu->selected = menu->gridData[(menu->page * menu->numCols * menu->numRows) +
|
||||
menu->selected = menu->gridData[(menu->state * menu->numCols * menu->numRows) +
|
||||
(menu->numCols * menu->row) + menu->col];
|
||||
}
|
||||
|
||||
|
@ -217,7 +217,7 @@ void filemenu_set_cursor_goal_pos(s32 windowID, s32 posX, s32 posY) {
|
|||
Window* window = &gWindows[i];
|
||||
s8 parent = window->parent;
|
||||
|
||||
if ((parent == -1 || parent == WIN_FILES_MAIN) && (window->flags & WINDOW_FLAG_INITIAL_ANIMATION)) {
|
||||
if ((parent == WIN_NONE || parent == WIN_FILES_MAIN) && (window->flags & WINDOW_FLAG_INITIAL_ANIMATION)) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -230,7 +230,7 @@ void filemenu_set_cursor_goal_pos(s32 windowID, s32 posX, s32 posY) {
|
|||
filemenu_cursor_targetY = posY;
|
||||
filemenu_cursor_posY = posY;
|
||||
} else if (!(window->flags & WINDOW_FLAG_INITIAL_ANIMATION) &&
|
||||
(window->parent == -1 || !(gWindows[window->parent].flags & WINDOW_FLAG_INITIAL_ANIMATION))) {
|
||||
(window->parent == WIN_NONE || !(gWindows[window->parent].flags & WINDOW_FLAG_INITIAL_ANIMATION))) {
|
||||
filemenu_cursor_targetX = posX;
|
||||
filemenu_cursor_targetY = posY;
|
||||
}
|
||||
|
@ -272,7 +272,7 @@ void filemenu_update_cursor(void) {
|
|||
Window* window = &gWindows[i];
|
||||
s8 parent = window->parent;
|
||||
|
||||
if ((parent == -1 || parent == WIN_FILES_MAIN) && (window->flags & WINDOW_FLAG_INITIAL_ANIMATION)) {
|
||||
if ((parent == WIN_NONE || parent == WIN_FILES_MAIN) && (window->flags & WINDOW_FLAG_INITIAL_ANIMATION)) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -309,7 +309,7 @@ void filemenu_update(void) {
|
|||
s32 i;
|
||||
|
||||
for (i = WIN_FILES_MAIN; i < ARRAY_COUNT(gWindows); i++) {
|
||||
if ((gWindows[i].parent == -1 || gWindows[i].parent == WIN_FILES_MAIN) &&
|
||||
if ((gWindows[i].parent == WIN_NONE || gWindows[i].parent == WIN_FILES_MAIN) &&
|
||||
(gWindows[i].flags & WINDOW_FLAG_INITIAL_ANIMATION))
|
||||
{
|
||||
break;
|
||||
|
@ -880,143 +880,152 @@ void filemenu_selectlanguage_80248018(
|
|||
#endif
|
||||
|
||||
void filemenu_draw_cursor(MenuPanel* menu, s32 baseX, s32 baseY, s32 width, s32 height, s32 opacity, s32 darkening) {
|
||||
s32 temp_a1;
|
||||
s32 alpha;
|
||||
|
||||
filemenu_update_cursor();
|
||||
temp_a1 = filemenu_cursor_alpha;
|
||||
if (temp_a1 > 0) {
|
||||
if (temp_a1 > 255) {
|
||||
temp_a1 = 255;
|
||||
alpha = filemenu_cursor_alpha;
|
||||
if (alpha > 0) {
|
||||
if (alpha > 255) {
|
||||
alpha = 255;
|
||||
}
|
||||
hud_element_set_alpha(filemenu_cursorHIDs[0], temp_a1);
|
||||
hud_element_set_alpha(filemenu_cursorHIDs[0], alpha);
|
||||
hud_element_set_render_pos(filemenu_cursorHIDs[0], baseX + filemenu_cursor_posX, baseY + filemenu_cursor_posY);
|
||||
hud_element_draw_without_clipping(filemenu_cursorHIDs[0]);
|
||||
}
|
||||
}
|
||||
|
||||
#if VERSION_PAL
|
||||
#define PAGE_4 (3)
|
||||
#else
|
||||
#define PAGE_4 (4)
|
||||
#endif
|
||||
|
||||
void filemenu_draw_contents_copy_arrow(MenuPanel* menu, s32 baseX, s32 baseY, s32 width, s32 height, s32 opacity,
|
||||
s32 darkening)
|
||||
{
|
||||
Matrix4f sp20, sp60;
|
||||
MenuPanel* menu0 = filemenu_menus[0];
|
||||
Matrix4f transformMtx, tempMtx;
|
||||
f32 startX, startZ;
|
||||
f32 endX, endZ;
|
||||
f32 temp_f28;
|
||||
f32 rotAngle;
|
||||
|
||||
if (menu0->page == PAGE_4 && menu0->selected < 4) {
|
||||
if (menu0->selected != filemenu_loadedFileIdx && filemenu_currentMenu != 2) {
|
||||
switch (filemenu_loadedFileIdx) {
|
||||
case 0:
|
||||
startX = 130.0f;
|
||||
startZ = 90.0f;
|
||||
break;
|
||||
case 1:
|
||||
startX = 190.0f;
|
||||
startZ = 90.0f;
|
||||
break;
|
||||
case 2:
|
||||
startX = 130.0f;
|
||||
startZ = 150.0f;
|
||||
break;
|
||||
default:
|
||||
startX = 190.0f;
|
||||
startZ = 150.0f;
|
||||
break;
|
||||
}
|
||||
|
||||
switch (filemenu_menus[0]->selected) {
|
||||
case 0:
|
||||
endX = 130.0f;
|
||||
endZ = 90.0f;
|
||||
break;
|
||||
case 1:
|
||||
endX = 190.0f;
|
||||
endZ = 90.0f;
|
||||
break;
|
||||
case 2:
|
||||
endX = 130.0f;
|
||||
endZ = 150.0f;
|
||||
break;
|
||||
default:
|
||||
endX = 190.0f;
|
||||
endZ = 150.0f;
|
||||
break;
|
||||
}
|
||||
|
||||
temp_f28 = -atan2(startX, startZ, endX, endZ) - 90.0f;
|
||||
|
||||
gSPViewport(gMainGfxPos++, &D_80249D60);
|
||||
|
||||
guOrthoF(sp20, 0.0f, SCREEN_WIDTH, SCREEN_HEIGHT, 0.0f, -100.0f, 100.0f, 1.0f);
|
||||
guMtxF2L(sp20, &gDisplayContext->matrixStack[gMatrixListPos]);
|
||||
|
||||
gSPMatrix(gMainGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++],
|
||||
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION);
|
||||
gSPDisplayList(gMainGfxPos++, filemenu_dl_copyarrow);
|
||||
gDPSetPrimColor(gMainGfxPos++, 0, 0, 0, 0, 0, 128);
|
||||
gDPSetEnvColor(gMainGfxPos++, 0, 0, 0, 0);
|
||||
|
||||
guTranslateF(sp20, startX + 4.0f, startZ + 4.0f, 0.0f);
|
||||
guScaleF(sp60, -1.0f, 1.0f, 1.0f);
|
||||
guMtxCatF(sp60, sp20, sp20);
|
||||
guRotateF(sp60, temp_f28, 0.0f, 0.0f, 1.0f);
|
||||
guMtxCatF(sp60, sp20, sp20);
|
||||
guMtxF2L(sp20, &gDisplayContext->matrixStack[gMatrixListPos]);
|
||||
|
||||
gSPMatrix(gMainGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++],
|
||||
G_MTX_PUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
gSPDisplayList(gMainGfxPos++, D_8024B6F0);
|
||||
gSPPopMatrix(gMainGfxPos++, G_MTX_MODELVIEW);
|
||||
|
||||
guTranslateF(sp60, D_80249D70[gGameStatusPtr->frameCounter % ARRAY_COUNT(D_80249D70)], 0.0f, 0.0f);
|
||||
guMtxCatF(sp60, sp20, sp20);
|
||||
guMtxF2L(sp20, &gDisplayContext->matrixStack[gMatrixListPos]);
|
||||
|
||||
gSPMatrix(gMainGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++],
|
||||
G_MTX_PUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
gDPSetTileSize(gMainGfxPos++, 1, (gGameStatusPtr->frameCounter * 8) % 512, 0,
|
||||
((gGameStatusPtr->frameCounter * 8) % 512) + 60, 0);
|
||||
gSPDisplayList(gMainGfxPos++, D_8024B708);
|
||||
gSPPopMatrix(gMainGfxPos++, G_MTX_MODELVIEW);
|
||||
gDPSetPrimColor(gMainGfxPos++, 0, 0, 230, 230, 230, 255);
|
||||
gDPSetEnvColor(gMainGfxPos++, 232, 40, 160, 0);
|
||||
|
||||
guTranslateF(sp20, startX, startZ, 0.0f);
|
||||
guScaleF(sp60, -1.0f, 1.0f, 1.0f);
|
||||
guMtxCatF(sp60, sp20, sp20);
|
||||
guRotateF(sp60, temp_f28, 0.0f, 0.0f, 1.0f);
|
||||
guMtxCatF(sp60, sp20, sp20);
|
||||
guMtxF2L(sp20, &gDisplayContext->matrixStack[gMatrixListPos]);
|
||||
|
||||
gSPMatrix(gMainGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++],
|
||||
G_MTX_PUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
gSPDisplayList(gMainGfxPos++, D_8024B6F0);
|
||||
gSPPopMatrix(gMainGfxPos++, G_MTX_MODELVIEW);
|
||||
|
||||
guTranslateF(sp60, D_80249D70[(gGameStatusPtr->frameCounter % ARRAY_COUNT(D_80249D70))], 0.0f, 0.0f);
|
||||
guMtxCatF(sp60, sp20, sp20);
|
||||
guMtxF2L(sp20, &gDisplayContext->matrixStack[gMatrixListPos]);
|
||||
|
||||
gSPMatrix(gMainGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++],
|
||||
G_MTX_PUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
gDPSetTileSize(gMainGfxPos++, 1, (gGameStatusPtr->frameCounter * 8) % 512, 0,
|
||||
((gGameStatusPtr->frameCounter * 8) % 512) + 60, 0);
|
||||
gSPDisplayList(gMainGfxPos++, D_8024B708);
|
||||
gSPPopMatrix(gMainGfxPos++, G_MTX_MODELVIEW);
|
||||
}
|
||||
if (filemenu_menus[FILE_MENU_MAIN]->state != FM_MAIN_SELECT_COPY_TO) {
|
||||
return;
|
||||
}
|
||||
|
||||
// check for invalid selection
|
||||
if (filemenu_menus[FILE_MENU_MAIN]->selected >= 4) {
|
||||
return;
|
||||
}
|
||||
|
||||
// check if different files are selected
|
||||
if (filemenu_menus[FILE_MENU_MAIN]->selected == filemenu_loadedFileIdx) {
|
||||
return;
|
||||
}
|
||||
|
||||
// do not show while message menu is showing
|
||||
if (filemenu_currentMenu == FILE_MENU_MESSAGE) {
|
||||
return;
|
||||
}
|
||||
|
||||
switch (filemenu_loadedFileIdx) {
|
||||
case 0:
|
||||
startX = 130.0f;
|
||||
startZ = 90.0f;
|
||||
break;
|
||||
case 1:
|
||||
startX = 190.0f;
|
||||
startZ = 90.0f;
|
||||
break;
|
||||
case 2:
|
||||
startX = 130.0f;
|
||||
startZ = 150.0f;
|
||||
break;
|
||||
default:
|
||||
startX = 190.0f;
|
||||
startZ = 150.0f;
|
||||
break;
|
||||
}
|
||||
|
||||
switch (filemenu_menus[FILE_MENU_MAIN]->selected) {
|
||||
case 0:
|
||||
endX = 130.0f;
|
||||
endZ = 90.0f;
|
||||
break;
|
||||
case 1:
|
||||
endX = 190.0f;
|
||||
endZ = 90.0f;
|
||||
break;
|
||||
case 2:
|
||||
endX = 130.0f;
|
||||
endZ = 150.0f;
|
||||
break;
|
||||
default:
|
||||
endX = 190.0f;
|
||||
endZ = 150.0f;
|
||||
break;
|
||||
}
|
||||
|
||||
rotAngle = -atan2(startX, startZ, endX, endZ) - 90.0f;
|
||||
|
||||
gSPViewport(gMainGfxPos++, &D_80249D60);
|
||||
|
||||
guOrthoF(transformMtx, 0.0f, SCREEN_WIDTH, SCREEN_HEIGHT, 0.0f, -100.0f, 100.0f, 1.0f);
|
||||
guMtxF2L(transformMtx, &gDisplayContext->matrixStack[gMatrixListPos]);
|
||||
|
||||
gSPMatrix(gMainGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++],
|
||||
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION);
|
||||
gSPDisplayList(gMainGfxPos++, filemenu_dl_copyarrow);
|
||||
gDPSetPrimColor(gMainGfxPos++, 0, 0, 0, 0, 0, 128);
|
||||
gDPSetEnvColor(gMainGfxPos++, 0, 0, 0, 0);
|
||||
|
||||
guTranslateF(transformMtx, startX + 4.0f, startZ + 4.0f, 0.0f);
|
||||
guScaleF(tempMtx, -1.0f, 1.0f, 1.0f);
|
||||
guMtxCatF(tempMtx, transformMtx, transformMtx);
|
||||
guRotateF(tempMtx, rotAngle, 0.0f, 0.0f, 1.0f);
|
||||
guMtxCatF(tempMtx, transformMtx, transformMtx);
|
||||
guMtxF2L(transformMtx, &gDisplayContext->matrixStack[gMatrixListPos]);
|
||||
|
||||
gSPMatrix(gMainGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++],
|
||||
G_MTX_PUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
gSPDisplayList(gMainGfxPos++, D_8024B6F0);
|
||||
gSPPopMatrix(gMainGfxPos++, G_MTX_MODELVIEW);
|
||||
|
||||
guTranslateF(tempMtx, D_80249D70[gGameStatusPtr->frameCounter % ARRAY_COUNT(D_80249D70)], 0.0f, 0.0f);
|
||||
guMtxCatF(tempMtx, transformMtx, transformMtx);
|
||||
guMtxF2L(transformMtx, &gDisplayContext->matrixStack[gMatrixListPos]);
|
||||
|
||||
gSPMatrix(gMainGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++],
|
||||
G_MTX_PUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
gDPSetTileSize(gMainGfxPos++, 1, (gGameStatusPtr->frameCounter * 8) % 512, 0,
|
||||
((gGameStatusPtr->frameCounter * 8) % 512) + 60, 0);
|
||||
gSPDisplayList(gMainGfxPos++, D_8024B708);
|
||||
gSPPopMatrix(gMainGfxPos++, G_MTX_MODELVIEW);
|
||||
gDPSetPrimColor(gMainGfxPos++, 0, 0, 230, 230, 230, 255);
|
||||
gDPSetEnvColor(gMainGfxPos++, 232, 40, 160, 0);
|
||||
|
||||
guTranslateF(transformMtx, startX, startZ, 0.0f);
|
||||
guScaleF(tempMtx, -1.0f, 1.0f, 1.0f);
|
||||
guMtxCatF(tempMtx, transformMtx, transformMtx);
|
||||
guRotateF(tempMtx, rotAngle, 0.0f, 0.0f, 1.0f);
|
||||
guMtxCatF(tempMtx, transformMtx, transformMtx);
|
||||
guMtxF2L(transformMtx, &gDisplayContext->matrixStack[gMatrixListPos]);
|
||||
|
||||
gSPMatrix(gMainGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++],
|
||||
G_MTX_PUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
gSPDisplayList(gMainGfxPos++, D_8024B6F0);
|
||||
gSPPopMatrix(gMainGfxPos++, G_MTX_MODELVIEW);
|
||||
|
||||
guTranslateF(tempMtx, D_80249D70[(gGameStatusPtr->frameCounter % ARRAY_COUNT(D_80249D70))], 0.0f, 0.0f);
|
||||
guMtxCatF(tempMtx, transformMtx, transformMtx);
|
||||
guMtxF2L(transformMtx, &gDisplayContext->matrixStack[gMatrixListPos]);
|
||||
|
||||
gSPMatrix(gMainGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++],
|
||||
G_MTX_PUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
gDPSetTileSize(gMainGfxPos++, 1, (gGameStatusPtr->frameCounter * 8) % 512, 0,
|
||||
((gGameStatusPtr->frameCounter * 8) % 512) + 60, 0);
|
||||
gSPDisplayList(gMainGfxPos++, D_8024B708);
|
||||
gSPPopMatrix(gMainGfxPos++, G_MTX_MODELVIEW);
|
||||
|
||||
}
|
||||
|
||||
void func_PAL_8002B574(void); // TODO identify
|
||||
|
||||
// TODO bad match, look into
|
||||
void filemenu_init(s32 arg0) {
|
||||
void filemenu_init(s32 mode) {
|
||||
MenuPanel** panelIt;
|
||||
MenuPanel* menu;
|
||||
s32 i;
|
||||
|
@ -1029,19 +1038,19 @@ void filemenu_init(s32 arg0) {
|
|||
}
|
||||
|
||||
filemenu_cursorHID = filemenu_cursorHIDs[0];
|
||||
if (arg0 == 0) {
|
||||
if (mode == 0) {
|
||||
filemenu_common_windowBPs[0].style.customStyle->background.imgData = NULL; // ???
|
||||
}
|
||||
setup_pause_menu_tab(filemenu_common_windowBPs, ARRAY_COUNT(filemenu_common_windowBPs));
|
||||
|
||||
#if VERSION_PAL
|
||||
if (arg0 != 2) {
|
||||
filemenu_currentMenu = 0;
|
||||
menu = filemenu_menus[0];
|
||||
menu->page = filemenu_currentMenu;
|
||||
if (mode != 2) {
|
||||
filemenu_currentMenu = FILE_MENU_MAIN;
|
||||
menu = filemenu_menus[FILE_MENU_MAIN];
|
||||
menu->state = FM_MAIN_SELECT_FILE;
|
||||
func_PAL_8002B574();
|
||||
|
||||
if (menu->page == 0) {
|
||||
if (menu->state == FM_MAIN_SELECT_FILE) {
|
||||
fio_load_globals();
|
||||
if (gSaveGlobals.lastFileSelected >= 4) {
|
||||
gSaveGlobals.lastFileSelected = 0;
|
||||
|
@ -1059,12 +1068,12 @@ void filemenu_init(s32 arg0) {
|
|||
}
|
||||
update_window_hierarchy(WIN_PAUSE_DECRIPTION, 64);
|
||||
} else {
|
||||
filemenu_currentMenu = 4;
|
||||
filemenu_set_selected(filemenu_menus[4], 0, gCurrentLanguage);
|
||||
filemenu_currentMenu = FM_MAIN_SELECT_LANG_PAL;
|
||||
filemenu_set_selected(filemenu_menus[FM_MAIN_SELECT_LANG_PAL], 0, gCurrentLanguage);
|
||||
|
||||
panelIt = filemenu_menus;
|
||||
for (i = 0; i < ARRAY_COUNT(filemenu_menus); i++, panelIt++) {
|
||||
if (i == 4) {
|
||||
if (i == FM_MAIN_SELECT_LANG_PAL) {
|
||||
if ((*panelIt)->fpInit != NULL) {
|
||||
(*panelIt)->fpInit((*panelIt));
|
||||
}
|
||||
|
@ -1073,16 +1082,16 @@ void filemenu_init(s32 arg0) {
|
|||
update_window_hierarchy(WIN_PAUSE_DECRIPTION, 64);
|
||||
}
|
||||
#else
|
||||
menu = filemenu_menus[0];
|
||||
filemenu_currentMenu = 0;
|
||||
filemenu_currentMenu = FILE_MENU_MAIN;
|
||||
menu = filemenu_menus[FILE_MENU_MAIN];
|
||||
|
||||
if (arg0 == 0) {
|
||||
menu->page = 0;
|
||||
if (mode == 0) {
|
||||
menu->state = FM_MAIN_SELECT_FILE;
|
||||
} else {
|
||||
menu->page = 2;
|
||||
menu->state = FM_MAIN_SELECT_LANG_DUMMY;
|
||||
}
|
||||
|
||||
if (menu->page == 0) {
|
||||
if (menu->state == FM_MAIN_SELECT_FILE) {
|
||||
for (i = 0; i < ARRAY_COUNT(filemenu_menus); i++) {
|
||||
if (!fio_load_game(i)) {
|
||||
gSaveSlotHasData[i] = FALSE;
|
||||
|
@ -1092,7 +1101,7 @@ void filemenu_init(s32 arg0) {
|
|||
}
|
||||
}
|
||||
|
||||
if (menu->page == 0) {
|
||||
if (menu->state == FM_MAIN_SELECT_FILE) {
|
||||
fio_load_globals();
|
||||
if (gSaveGlobals.lastFileSelected >= 4) {
|
||||
gSaveGlobals.lastFileSelected = 0;
|
||||
|
@ -1137,15 +1146,22 @@ void filemenu_cleanup(void) {
|
|||
|
||||
set_window_update(WIN_PAUSE_TUTORIAL, WINDOW_UPDATE_HIDE);
|
||||
set_window_update(WIN_PAUSE_DECRIPTION, WINDOW_UPDATE_HIDE);
|
||||
func_80244BC4();
|
||||
filemenu_get_exit_mode(); // part of a conditional that optimized out?
|
||||
}
|
||||
|
||||
s32 func_80244BC4() {
|
||||
if (filemenu_menus[0]->page == 0 && filemenu_currentMenu == 1 && filemenu_menus[1]->selected == 0) {
|
||||
s32 filemenu_get_exit_mode() {
|
||||
if (filemenu_menus[FILE_MENU_MAIN]->state == FM_MAIN_SELECT_FILE
|
||||
&& filemenu_currentMenu == FILE_MENU_CONFIRM
|
||||
&& filemenu_menus[FILE_MENU_CONFIRM]->selected == 0
|
||||
) {
|
||||
return 2;
|
||||
} else if (filemenu_menus[0]->page == 0 && filemenu_menus[0]->selected < 4) {
|
||||
return 1;
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (filemenu_menus[FILE_MENU_MAIN]->state == FM_MAIN_SELECT_FILE
|
||||
&& filemenu_menus[FILE_MENU_MAIN]->selected <= FM_MAIN_OPT_FILE_4
|
||||
) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -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[] = {
|
||||
|
@ -64,7 +62,7 @@ MenuPanel filemenu_createfile_menuBP = {
|
|||
.col = 0,
|
||||
.row = 0,
|
||||
.selected = 0,
|
||||
.page = 0,
|
||||
.state = 0,
|
||||
.numCols = 13,
|
||||
.numRows = ROWS,
|
||||
.numPages = 0,
|
||||
|
@ -118,7 +116,7 @@ void filemenu_draw_contents_file_create_header(
|
|||
}
|
||||
}
|
||||
|
||||
if (filemenu_currentMenu == 3) {
|
||||
if (filemenu_currentMenu == FILE_MENU_INPUT_NAME) {
|
||||
if (filemenu_filename_pos == 8) {
|
||||
xOffset = temp_s2 + 86;
|
||||
} else {
|
||||
|
@ -148,7 +146,7 @@ void filemenu_draw_contents_file_create_header(
|
|||
}
|
||||
|
||||
tempAmt = 8;
|
||||
if (filemenu_currentMenu == 3) {
|
||||
if (filemenu_currentMenu == FILE_MENU_INPUT_NAME) {
|
||||
s32 phi_v0 = 122;
|
||||
|
||||
if (filemenu_filename_pos != tempAmt) {
|
||||
|
@ -194,8 +192,8 @@ void filemenu_draw_contents_choose_name(
|
|||
|
||||
if ((window->flags & WINDOW_FLAG_INITIAL_ANIMATION) && window->fpUpdate.func == filemenu_update_change_layout) {
|
||||
changeLayoutOffset = window->updateCounter * 2;
|
||||
currentPage = menu->page;
|
||||
previousPage = menu->page != 1;
|
||||
currentPage = menu->state;
|
||||
previousPage = menu->state != 1;
|
||||
if (changeLayoutOffset > 16) {
|
||||
changeLayoutOffset = 16;
|
||||
}
|
||||
|
@ -221,7 +219,7 @@ void filemenu_draw_contents_choose_name(
|
|||
|
||||
for (col = 0; col < menu->numCols; col++) {
|
||||
c = menu->gridData[page * menu->numCols * menu->numRows + menu->numCols * row + col];
|
||||
if (c != 0xF7) {
|
||||
if (c != MSG_CHAR_READ_SPACE) {
|
||||
if (col == menu->col && row == menu->row) {
|
||||
flags = 8;
|
||||
color = 0;
|
||||
|
@ -236,23 +234,23 @@ void filemenu_draw_contents_choose_name(
|
|||
#endif
|
||||
specialChar = c;
|
||||
if (c >= 0xA2 && c < 0xF0) {
|
||||
if (c >= 0xC6) {
|
||||
if (c >= MSG_CHAR_MENU_SPACE) {
|
||||
hud_element_set_render_pos(filemenu_createfile_HIDs[2], baseX + xOffset + 22, baseY + yOffset + 8);
|
||||
hud_element_draw_without_clipping(filemenu_createfile_HIDs[2]);
|
||||
flags = 0;
|
||||
}
|
||||
}
|
||||
if (specialChar == 0xC6) {
|
||||
if (specialChar == MSG_CHAR_MENU_SPACE) {
|
||||
xOffset--;
|
||||
}
|
||||
if (specialChar == 0xC9) {
|
||||
if (specialChar == MSG_CHAR_MENU_BACK) {
|
||||
#if VERSION_PAL
|
||||
xOffset += 16;
|
||||
#else
|
||||
xOffset += 5;
|
||||
#endif
|
||||
}
|
||||
if (specialChar == 0xCA) {
|
||||
if (specialChar == MSG_CHAR_MENU_END) {
|
||||
#if VERSION_PAL
|
||||
if (gCurrentLanguage == LANGUAGE_DE) {
|
||||
xOffset += 4;
|
||||
|
@ -263,7 +261,7 @@ void filemenu_draw_contents_choose_name(
|
|||
xOffset += 8;
|
||||
#endif
|
||||
}
|
||||
if (specialChar == 0xC6 || specialChar == 0xCA || specialChar == 0xC9) {
|
||||
if (specialChar == MSG_CHAR_MENU_SPACE || specialChar == MSG_CHAR_MENU_END || specialChar == MSG_CHAR_MENU_BACK) {
|
||||
yOffset--;
|
||||
xNudge = 9;
|
||||
}
|
||||
|
@ -280,8 +278,8 @@ void filemenu_draw_contents_choose_name(
|
|||
} else {
|
||||
for (col = 0; col < menu->numCols; col++) {
|
||||
for (row = 0; row < menu->numRows; row++) {
|
||||
c = menu->gridData[menu->page * menu->numCols * menu->numRows + menu->numCols * row + col];
|
||||
if (c != 0xF7) {
|
||||
c = menu->gridData[menu->state * menu->numCols * menu->numRows + menu->numCols * row + col];
|
||||
if (c != MSG_CHAR_READ_SPACE) {
|
||||
if (col == menu->col && row == menu->row) {
|
||||
flags = 8;
|
||||
color = 0;
|
||||
|
@ -296,19 +294,19 @@ void filemenu_draw_contents_choose_name(
|
|||
#endif
|
||||
specialChar = c;
|
||||
if (c >= 0xA2 && c < 0xF0) {
|
||||
if (c >= 0xC6) {
|
||||
if (c >= MSG_CHAR_MENU_SPACE) {
|
||||
hud_element_set_render_pos(filemenu_createfile_HIDs[2], baseX + xOffset + 22, baseY + yOffset + 8);
|
||||
hud_element_draw_without_clipping(filemenu_createfile_HIDs[2]);
|
||||
flags = 0;
|
||||
}
|
||||
}
|
||||
if (specialChar == 0xC6) {
|
||||
if (specialChar == MSG_CHAR_MENU_SPACE) {
|
||||
xOffset--;
|
||||
}
|
||||
if (specialChar == 0xC9) {
|
||||
if (specialChar == MSG_CHAR_MENU_BACK) {
|
||||
xOffset += FILEMENU_C9_OFFSET;
|
||||
}
|
||||
if (specialChar == 0xCA) {
|
||||
if (specialChar == MSG_CHAR_MENU_END) {
|
||||
#if VERSION_PAL
|
||||
if (gCurrentLanguage == LANGUAGE_DE) {
|
||||
xOffset += 4;
|
||||
|
@ -319,7 +317,7 @@ void filemenu_draw_contents_choose_name(
|
|||
xOffset += 8;
|
||||
#endif
|
||||
}
|
||||
if (specialChar == 0xC6 || specialChar == 0xCA || specialChar == 0xC9) {
|
||||
if (specialChar == MSG_CHAR_MENU_SPACE || specialChar == MSG_CHAR_MENU_END || specialChar == MSG_CHAR_MENU_BACK) {
|
||||
yOffset--;
|
||||
xNudge = 9;
|
||||
}
|
||||
|
@ -333,7 +331,7 @@ void filemenu_draw_contents_choose_name(
|
|||
}
|
||||
}
|
||||
|
||||
if (filemenu_currentMenu == 3) {
|
||||
if (filemenu_currentMenu == FILE_MENU_INPUT_NAME) {
|
||||
if (filemenu_heldButtons & (BUTTON_STICK_RIGHT | BUTTON_STICK_LEFT | BUTTON_STICK_DOWN | BUTTON_STICK_UP)) {
|
||||
D_8024A18C = -4;
|
||||
}
|
||||
|
@ -359,31 +357,19 @@ void filemenu_choose_name_init(MenuPanel* menu) {
|
|||
|
||||
setup_pause_menu_tab(filemenu_createfile_windowBPs, ARRAY_COUNT(filemenu_createfile_windowBPs));
|
||||
|
||||
gWindows[WIN_FILES_INPUT_FIELD].pos.x = ((gWindows[WIN_FILES_INPUT_FIELD].parent != -1)
|
||||
? (gWindows[gWindows[WIN_FILES_INPUT_FIELD].parent].width / 2)
|
||||
: SCREEN_WIDTH / 2) - gWindows[WIN_FILES_INPUT_FIELD].width / 2;
|
||||
|
||||
gWindows[WIN_FILES_INPUT_KEYBOARD].pos.x = ((gWindows[WIN_FILES_INPUT_KEYBOARD].parent != -1)
|
||||
? (gWindows[gWindows[WIN_FILES_INPUT_KEYBOARD].parent].width / 2)
|
||||
: SCREEN_WIDTH / 2) - gWindows[WIN_FILES_INPUT_KEYBOARD].width / 2;
|
||||
gWindows[WIN_FILES_INPUT_FIELD].pos.x = CENTER_WINDOW_X(WIN_FILES_INPUT_FIELD);
|
||||
gWindows[WIN_FILES_INPUT_KEYBOARD].pos.x = CENTER_WINDOW_X(WIN_FILES_INPUT_KEYBOARD);
|
||||
|
||||
menu->initialized = TRUE;
|
||||
}
|
||||
|
||||
void filemenu_choose_name_handle_input(MenuPanel* menu) {
|
||||
s32 oldSelected = menu->selected;
|
||||
MenuPanel* newMenu;
|
||||
MenuPanel* newMenu2;
|
||||
s32 i;
|
||||
|
||||
#if VERSION_PAL
|
||||
s32 halfWidth;
|
||||
|
||||
gWindows[WIN_FILES_INPUT_FIELD].width = D_filemenu_80250958[gCurrentLanguage];
|
||||
halfWidth = gWindows[WIN_FILES_INPUT_FIELD].width / 2;
|
||||
gWindows[WIN_FILES_INPUT_FIELD].pos.x = gWindows[WIN_FILES_INPUT_FIELD].parent != -1 ?
|
||||
(gWindows[gWindows[WIN_FILES_INPUT_FIELD].parent].width / 2) - halfWidth :
|
||||
SCREEN_WIDTH / 2 - halfWidth;
|
||||
gWindows[WIN_FILES_INPUT_FIELD].pos.x = CENTER_WINDOW_X(WIN_FILES_INPUT_FIELD);
|
||||
#endif
|
||||
|
||||
if (filemenu_heldButtons & BUTTON_STICK_LEFT) {
|
||||
|
@ -441,39 +427,42 @@ void filemenu_choose_name_handle_input(MenuPanel* menu) {
|
|||
}
|
||||
|
||||
if (filemenu_pressedButtons & BUTTON_A) {
|
||||
MenuPanel* confirmMenu;
|
||||
|
||||
switch (menu->selected) {
|
||||
case 0xC6:
|
||||
case MSG_CHAR_MENU_SPACE:
|
||||
sfx_play_sound(SOUND_CREATE_FILE_SET_CHARACTER);
|
||||
if (filemenu_filename_pos == ARRAY_COUNT(filemenu_filename)) {
|
||||
filemenu_filename_pos = ARRAY_COUNT(filemenu_filename) - 1;
|
||||
}
|
||||
filemenu_filename[filemenu_filename_pos] = 0xF7;
|
||||
filemenu_filename[filemenu_filename_pos] = MSG_CHAR_READ_SPACE;
|
||||
filemenu_filename_pos++;
|
||||
if (filemenu_filename_pos > ARRAY_COUNT(filemenu_filename)) {
|
||||
filemenu_filename_pos = ARRAY_COUNT(filemenu_filename);
|
||||
}
|
||||
break;
|
||||
case 0xC9:
|
||||
case MSG_CHAR_MENU_BACK:
|
||||
// handled later to combine with B-input detection
|
||||
break;
|
||||
case 0xC7:
|
||||
if (menu->page != 1) {
|
||||
case MSG_CHAR_MENU_USE_CHARSET_B:
|
||||
if (menu->state != FM_INPUT_CHARSET_B) {
|
||||
sfx_play_sound(SOUND_CREATE_FILE_CHANGE_CHARSET);
|
||||
menu->page = 1;
|
||||
menu->state = FM_INPUT_CHARSET_B;
|
||||
filemenu_set_selected(menu, menu->col, menu->row);
|
||||
set_window_update(WIN_FILES_INPUT_KEYBOARD, (s32)filemenu_update_change_layout);
|
||||
}
|
||||
break;
|
||||
case 0xC8:
|
||||
if (menu->page != 0) {
|
||||
case MSG_CHAR_MENU_USE_CHARSET_A:
|
||||
if (menu->state != FM_INPUT_CHARSET_A) {
|
||||
sfx_play_sound(SOUND_CREATE_FILE_CHANGE_CHARSET);
|
||||
menu->page = 0;
|
||||
menu->state = FM_INPUT_CHARSET_A;
|
||||
filemenu_set_selected(menu, menu->col, menu->row);
|
||||
set_window_update(WIN_FILES_INPUT_KEYBOARD, (s32)filemenu_update_change_layout);
|
||||
}
|
||||
break;
|
||||
case 0xCA:
|
||||
case MSG_CHAR_MENU_END:
|
||||
for (i = 0; i < ARRAY_COUNT(filemenu_filename); i++) {
|
||||
if (filemenu_filename[i] != 0xF7) {
|
||||
if (filemenu_filename[i] != MSG_CHAR_READ_SPACE) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -487,30 +476,23 @@ void filemenu_choose_name_handle_input(MenuPanel* menu) {
|
|||
gWindows[WIN_FILES_CONFIRM_OPTIONS].pos.y = 121;
|
||||
gWindows[WIN_FILES_CONFIRM_OPTIONS].width = 69;
|
||||
gWindows[WIN_FILES_CONFIRM_OPTIONS].height = 44;
|
||||
gWindows[WIN_FILES_CONFIRM_OPTIONS].pos.x = ((gWindows[WIN_FILES_CONFIRM_OPTIONS].parent != -1)
|
||||
? (gWindows[gWindows[WIN_FILES_CONFIRM_OPTIONS].parent].width / 2)
|
||||
: SCREEN_WIDTH / 2) - gWindows[WIN_FILES_CONFIRM_OPTIONS].width / 2;
|
||||
gWindows[WIN_FILES_CONFIRM_OPTIONS].pos.x = CENTER_WINDOW_X(WIN_FILES_CONFIRM_OPTIONS);
|
||||
|
||||
gWindows[WIN_FILES_CONFIRM_PROMPT].pos.y = -70;
|
||||
#if VERSION_PAL
|
||||
gWindows[WIN_FILES_CONFIRM_PROMPT].width = D_filemenu_80250960[gCurrentLanguage];
|
||||
halfWidth = gWindows[WIN_FILES_CONFIRM_PROMPT].width / 2;
|
||||
gWindows[WIN_FILES_CONFIRM_PROMPT].height = 62;
|
||||
gWindows[WIN_FILES_CONFIRM_PROMPT].pos.x = gWindows[WIN_FILES_CONFIRM_PROMPT].parent != -1
|
||||
? (gWindows[gWindows[WIN_FILES_CONFIRM_PROMPT].parent].width / 2) - halfWidth
|
||||
: SCREEN_WIDTH / 2 - halfWidth;
|
||||
gWindows[WIN_FILES_CONFIRM_PROMPT].pos.x = CENTER_WINDOW_X(WIN_FILES_CONFIRM_PROMPT);
|
||||
#else
|
||||
gWindows[WIN_FILES_CONFIRM_PROMPT].width = 164;
|
||||
gWindows[WIN_FILES_CONFIRM_PROMPT].height = 62;
|
||||
gWindows[WIN_FILES_CONFIRM_PROMPT].pos.x = ((gWindows[WIN_FILES_CONFIRM_PROMPT].parent != -1)
|
||||
? (gWindows[gWindows[WIN_FILES_CONFIRM_PROMPT].parent].width / 2)
|
||||
: SCREEN_WIDTH / 2) - gWindows[WIN_FILES_CONFIRM_PROMPT].width / 2;
|
||||
gWindows[WIN_FILES_CONFIRM_PROMPT].pos.x = CENTER_WINDOW_X(WIN_FILES_CONFIRM_PROMPT);
|
||||
#endif
|
||||
|
||||
filemenu_currentMenu = 1;
|
||||
newMenu = filemenu_menus[filemenu_currentMenu];
|
||||
newMenu->page = INPUT_FINAL_PAGE;
|
||||
filemenu_set_selected(newMenu, 0, 0);
|
||||
filemenu_currentMenu = FILE_MENU_CONFIRM;
|
||||
confirmMenu = filemenu_menus[filemenu_currentMenu];
|
||||
confirmMenu->state = FM_CONFIRM_CREATE;
|
||||
filemenu_set_selected(confirmMenu, 0, 0);
|
||||
return;
|
||||
default:
|
||||
sfx_play_sound(SOUND_CREATE_FILE_SET_CHARACTER);
|
||||
|
@ -526,13 +508,16 @@ void filemenu_choose_name_handle_input(MenuPanel* menu) {
|
|||
break;
|
||||
}
|
||||
|
||||
if (menu->selected != 0xC7 && menu->selected != 0xC8 && menu->selected != 0xC9 &&
|
||||
filemenu_filename_pos == ARRAY_COUNT(filemenu_filename)) {
|
||||
if (menu->selected != MSG_CHAR_MENU_USE_CHARSET_A
|
||||
&& menu->selected != MSG_CHAR_MENU_USE_CHARSET_B
|
||||
&& menu->selected != MSG_CHAR_MENU_BACK
|
||||
&& filemenu_filename_pos == ARRAY_COUNT(filemenu_filename)
|
||||
) {
|
||||
filemenu_set_selected(menu, menu->numCols - 3, menu->numRows - 1);
|
||||
}
|
||||
}
|
||||
|
||||
if ((filemenu_pressedButtons & BUTTON_B) || ((filemenu_pressedButtons & BUTTON_A) && menu->selected == 0xC9)) {
|
||||
if ((filemenu_pressedButtons & BUTTON_B) || ((filemenu_pressedButtons & BUTTON_A) && menu->selected == MSG_CHAR_MENU_BACK)) {
|
||||
sfx_play_sound(SOUND_CREATE_FILE_BACKSPACE);
|
||||
filemenu_filename_pos--;
|
||||
if (filemenu_filename_pos < 0) {
|
||||
|
@ -550,18 +535,20 @@ void filemenu_choose_name_handle_input(MenuPanel* menu) {
|
|||
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 = 0;
|
||||
filemenu_currentMenu = FILE_MENU_MAIN;
|
||||
return;
|
||||
}
|
||||
|
||||
for (i = filemenu_filename_pos; i < ARRAY_COUNT(filemenu_filename); i++) {
|
||||
filemenu_filename[i] = 0xF7;
|
||||
filemenu_filename[i] = MSG_CHAR_READ_SPACE;
|
||||
}
|
||||
}
|
||||
|
||||
if (filemenu_pressedButtons & BUTTON_START) {
|
||||
MenuPanel* confirmMenu;
|
||||
|
||||
for (i = 0; i < ARRAY_COUNT(filemenu_filename); i++) {
|
||||
if (filemenu_filename[i] != 0xF7) {
|
||||
if (filemenu_filename[i] != MSG_CHAR_READ_SPACE) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -577,36 +564,26 @@ void filemenu_choose_name_handle_input(MenuPanel* menu) {
|
|||
gWindows[WIN_FILES_CONFIRM_OPTIONS].pos.y = 121;
|
||||
gWindows[WIN_FILES_CONFIRM_OPTIONS].width = 69;
|
||||
gWindows[WIN_FILES_CONFIRM_OPTIONS].height = 44;
|
||||
gWindows[WIN_FILES_CONFIRM_OPTIONS].pos.x = ((gWindows[WIN_FILES_CONFIRM_OPTIONS].parent != -1)
|
||||
? (gWindows[gWindows[WIN_FILES_CONFIRM_OPTIONS].parent].width / 2)
|
||||
: SCREEN_WIDTH / 2) - gWindows[WIN_FILES_CONFIRM_OPTIONS].width / 2;
|
||||
gWindows[WIN_FILES_CONFIRM_OPTIONS].pos.x = CENTER_WINDOW_X(WIN_FILES_CONFIRM_OPTIONS);
|
||||
|
||||
gWindows[WIN_FILES_CONFIRM_PROMPT].pos.y = -70;
|
||||
#if VERSION_PAL
|
||||
gWindows[WIN_FILES_CONFIRM_PROMPT].width = D_filemenu_80250960[gCurrentLanguage];
|
||||
gWindows[WIN_FILES_CONFIRM_PROMPT].height = 62;
|
||||
halfWidth = gWindows[WIN_FILES_CONFIRM_PROMPT].width / 2;
|
||||
gWindows[WIN_FILES_CONFIRM_PROMPT].pos.x = gWindows[WIN_FILES_CONFIRM_PROMPT].parent != -1
|
||||
? (gWindows[gWindows[WIN_FILES_CONFIRM_PROMPT].parent].width / 2) - halfWidth
|
||||
: SCREEN_WIDTH / 2 - halfWidth;
|
||||
gWindows[WIN_FILES_CONFIRM_PROMPT].pos.x = CENTER_WINDOW_X(WIN_FILES_CONFIRM_PROMPT);
|
||||
#else
|
||||
|
||||
gWindows[WIN_FILES_CONFIRM_PROMPT].width = 164;
|
||||
gWindows[WIN_FILES_CONFIRM_PROMPT].height = 62;
|
||||
gWindows[WIN_FILES_CONFIRM_PROMPT].pos.x = ((gWindows[WIN_FILES_CONFIRM_PROMPT].parent != -1)
|
||||
? (gWindows[gWindows[WIN_FILES_CONFIRM_PROMPT].parent].width / 2)
|
||||
: SCREEN_WIDTH / 2) - gWindows[WIN_FILES_CONFIRM_PROMPT].width / 2;
|
||||
gWindows[WIN_FILES_CONFIRM_PROMPT].pos.x = CENTER_WINDOW_X(WIN_FILES_CONFIRM_PROMPT);
|
||||
#endif
|
||||
|
||||
filemenu_currentMenu = 1;
|
||||
newMenu2 = filemenu_menus[filemenu_currentMenu];
|
||||
newMenu2->page = INPUT_FINAL_PAGE;
|
||||
filemenu_set_selected(newMenu2, 0, 0);
|
||||
filemenu_currentMenu = FILE_MENU_CONFIRM;
|
||||
confirmMenu = filemenu_menus[filemenu_currentMenu];
|
||||
confirmMenu->state = FM_CONFIRM_CREATE;
|
||||
filemenu_set_selected(confirmMenu, 0, 0);
|
||||
}
|
||||
}
|
||||
|
||||
static const f32 padding[2] = { 0.0f, 0.0f }; // not sure why this is needed
|
||||
|
||||
void filemenu_choose_name_update(MenuPanel* menu) {
|
||||
}
|
||||
|
||||
|
|
|
@ -45,7 +45,7 @@ MenuPanel filemenu_info_menuBP = {
|
|||
.col = 0,
|
||||
.row = 0,
|
||||
.selected = 0,
|
||||
.page = 0,
|
||||
.state = 0,
|
||||
.numCols = 1,
|
||||
.numRows = 1,
|
||||
.numPages = 0,
|
||||
|
@ -65,18 +65,17 @@ void filemenu_info_draw_message_contents(
|
|||
#if VERSION_PAL
|
||||
s32 xOffset;
|
||||
|
||||
// TODO figure out FILE_MESSAGE constants
|
||||
switch (menu->page) {
|
||||
case 0:
|
||||
switch (menu->state) {
|
||||
case FM_MESSAGE_DELETED:
|
||||
filemenu_draw_message(filemenu_get_menu_message(FILE_MESSAGE_28), baseX + 10, baseY + 4, 255, 0, 0);
|
||||
xOffset = D_filemenu_80250934[gCurrentLanguage] + 10;
|
||||
filemenu_draw_message(filemenu_get_menu_message(FILE_MESSAGE_FILE_26), baseX + xOffset, baseY + 4, 255, 0, 0);
|
||||
xOffset += D_filemenu_802508FC[gCurrentLanguage];
|
||||
draw_number(filemenu_menus[0]->selected + 1, baseX + xOffset, baseY + 6, 0, 0, 255, 3);
|
||||
draw_number(filemenu_menus[FILE_MENU_MAIN]->selected + 1, baseX + xOffset, baseY + 6, 0, 0, 255, 3);
|
||||
xOffset++;
|
||||
filemenu_draw_message(filemenu_get_menu_message(FILE_MESSAGE_HAS_BEEN_DELETED), baseX + xOffset, baseY + 4, 255, 0, 0);
|
||||
break;
|
||||
case 1:
|
||||
case FM_MESSAGE_COPIED:
|
||||
filemenu_draw_message(filemenu_get_menu_message(FILE_MESSAGE_COPY_FROM), baseX + 10, baseY + 4, 255, 0, 0);
|
||||
xOffset = D_filemenu_80250948[gCurrentLanguage] + 10;
|
||||
filemenu_draw_message(filemenu_get_menu_message(FILE_MESSAGE_FILE_26), baseX + xOffset, baseY + 4, 255, 0, 0);
|
||||
|
@ -90,24 +89,24 @@ void filemenu_info_draw_message_contents(
|
|||
xOffset += D_filemenu_80250950[gCurrentLanguage];
|
||||
filemenu_draw_message(filemenu_get_menu_message(FILE_MESSAGE_HAS_BEEN_CREATED), baseX + xOffset, baseY + 18, 255, 0, 0);
|
||||
break;
|
||||
case 2:
|
||||
filemenu_draw_message(filemenu_get_menu_message(0x20), baseX + 10, baseY + 4, 255, 0, 0);
|
||||
case FM_MESSAGE_CREATED:
|
||||
filemenu_draw_message(filemenu_get_menu_message(FILE_MESSAGE_PAL_UNK2), baseX + 10, baseY + 4, 255, 0, 0);
|
||||
xOffset = D_filemenu_80250968[gCurrentLanguage] + 10;
|
||||
filemenu_draw_message(filemenu_get_menu_message(FILE_MESSAGE_FILE_26), baseX + xOffset, baseY + 4, 255, 0, 0);
|
||||
xOffset += D_filemenu_802508FC[gCurrentLanguage];
|
||||
draw_number(filemenu_menus[0]->selected + 1, baseX + xOffset, baseY + 6, 0, 0, 255, 3);
|
||||
draw_number(filemenu_menus[FILE_MENU_MAIN]->selected + 1, baseX + xOffset, baseY + 6, 0, 0, 255, 3);
|
||||
xOffset++;
|
||||
filemenu_draw_message(filemenu_get_menu_message(0x1F), baseX + xOffset, baseY + 4, 255, 0, 0);
|
||||
filemenu_draw_message(filemenu_get_menu_message(FILE_MESSAGE_PAL_UNK1), baseX + xOffset, baseY + 4, 255, 0, 0);
|
||||
break;
|
||||
}
|
||||
#else
|
||||
switch (menu->page) {
|
||||
case 0:
|
||||
switch (menu->state) {
|
||||
case FM_MESSAGE_DELETED:
|
||||
filemenu_draw_message(filemenu_get_menu_message(FILE_MESSAGE_FILE_26), baseX + 10, baseY + 4, 255, 0, 0);
|
||||
draw_number(filemenu_menus[0]->selected + 1, baseX + 48, baseY + 6 + NUMBER_OFFSET_Y, DRAW_NUMBER_CHARSET_NORMAL, MSG_PAL_WHITE, 255, DRAW_NUMBER_STYLE_MONOSPACE | DRAW_NUMBER_STYLE_ALIGN_RIGHT);
|
||||
draw_number(filemenu_menus[FILE_MENU_MAIN]->selected + 1, baseX + 48, baseY + 6 + NUMBER_OFFSET_Y, DRAW_NUMBER_CHARSET_NORMAL, MSG_PAL_WHITE, 255, DRAW_NUMBER_STYLE_MONOSPACE | DRAW_NUMBER_STYLE_ALIGN_RIGHT);
|
||||
filemenu_draw_message(filemenu_get_menu_message(FILE_MESSAGE_HAS_BEEN_DELETED), baseX + 49, baseY + 4, 255, 0, 0);
|
||||
break;
|
||||
case 2:
|
||||
case FM_MESSAGE_COPIED:
|
||||
#if VERSION_IQUE
|
||||
filemenu_draw_message(filemenu_get_menu_message(FILE_MESSAGE_COPY_FROM), baseX + 10, baseY + 7, 255, 0, 0);
|
||||
filemenu_draw_message(filemenu_get_menu_message(FILE_MESSAGE_FILE_26), baseX + 42, baseY + 7, 255, 0, 0);
|
||||
|
@ -126,12 +125,12 @@ void filemenu_info_draw_message_contents(
|
|||
filemenu_draw_message(filemenu_get_menu_message(FILE_MESSAGE_PERIOD_34), baseX + 65, baseY + 18, 255, 0, 0);
|
||||
#endif
|
||||
break;
|
||||
case 1:
|
||||
case FM_MESSAGE_DUMMY:
|
||||
filemenu_draw_message(filemenu_get_menu_message(FILE_MESSAGE_28), baseX + 10, baseY + 4, 255, 0, 0);
|
||||
break;
|
||||
case 3:
|
||||
case FM_MESSAGE_CREATED:
|
||||
filemenu_draw_message(filemenu_get_menu_message(FILE_MESSAGE_FILE_26), baseX + 10, baseY + 4, 255, 0, 0);
|
||||
draw_number(filemenu_menus[0]->selected + 1, baseX + CREATE_SUCCESS_NUMBER_X, baseY + 6 + NUMBER_OFFSET_Y, DRAW_NUMBER_CHARSET_NORMAL, MSG_PAL_WHITE, 255, DRAW_NUMBER_STYLE_MONOSPACE | DRAW_NUMBER_STYLE_ALIGN_RIGHT);
|
||||
draw_number(filemenu_menus[FILE_MENU_MAIN]->selected + 1, baseX + CREATE_SUCCESS_NUMBER_X, baseY + 6 + NUMBER_OFFSET_Y, DRAW_NUMBER_CHARSET_NORMAL, MSG_PAL_WHITE, 255, DRAW_NUMBER_STYLE_MONOSPACE | DRAW_NUMBER_STYLE_ALIGN_RIGHT);
|
||||
filemenu_draw_message(filemenu_get_menu_message(FILE_MESSAGE_HAS_BEEN_CREATED), baseX + 49, baseY + 4, 255, 0, 0);
|
||||
break;
|
||||
}
|
||||
|
@ -152,21 +151,21 @@ void filemenu_info_init(MenuPanel* tab) {
|
|||
|
||||
void filemenu_info_handle_input(MenuPanel* menu) {
|
||||
if (filemenu_pressedButtons & (BUTTON_A | BUTTON_B)) {
|
||||
MenuPanel* menu = filemenu_menus[0];
|
||||
MenuPanel* menu = filemenu_menus[FILE_MENU_MAIN];
|
||||
|
||||
filemenu_currentMenu = 0;
|
||||
filemenu_currentMenu = FILE_MENU_MAIN;
|
||||
|
||||
switch (menu->page) {
|
||||
case PAGE_1:
|
||||
menu->page = PAGE_0;
|
||||
switch (menu->state) {
|
||||
case FM_MAIN_SELECT_DELETE:
|
||||
menu->state = FM_MAIN_SELECT_FILE;
|
||||
set_window_update(WIN_FILES_STEREO, (s32)filemenu_update_show_options_left);
|
||||
set_window_update(WIN_FILES_MONO, (s32)filemenu_update_show_options_right);
|
||||
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);
|
||||
break;
|
||||
case PAGE_4:
|
||||
menu->page = PAGE_0;
|
||||
case FM_MAIN_SELECT_COPY_TO:
|
||||
menu->state = FM_MAIN_SELECT_FILE;
|
||||
set_window_update(WIN_FILES_STEREO, (s32)filemenu_update_show_options_left);
|
||||
set_window_update(WIN_FILES_MONO, (s32)filemenu_update_show_options_right);
|
||||
set_window_update(WIN_FILES_OPTION_LEFT, (s32)filemenu_update_show_options_bottom);
|
||||
|
@ -174,8 +173,8 @@ void filemenu_info_handle_input(MenuPanel* menu) {
|
|||
filemenu_set_selected(menu, 1, 2);
|
||||
break;
|
||||
#if !VERSION_PAL
|
||||
case PAGE_2:
|
||||
menu->page = 2;
|
||||
case FM_MAIN_SELECT_LANG_DUMMY:
|
||||
menu->state = FM_MAIN_SELECT_LANG_DUMMY;
|
||||
filemenu_set_selected(menu, 1, 2);
|
||||
break;
|
||||
#endif
|
||||
|
|
|
@ -328,7 +328,7 @@ MenuPanel filemenu_main_menuBP = {
|
|||
.col = 0,
|
||||
.row = 0,
|
||||
.selected = 0,
|
||||
.page = 0,
|
||||
.state = 0,
|
||||
.numCols = 3,
|
||||
.numRows = 3,
|
||||
.numPages = 0,
|
||||
|
@ -349,29 +349,29 @@ void filemenu_draw_contents_title(
|
|||
s32 xOffset;
|
||||
s32 yOffset;
|
||||
|
||||
switch (menu->page) {
|
||||
case PAGE_0:
|
||||
switch (menu->state) {
|
||||
case FM_MAIN_SELECT_FILE:
|
||||
msgIdx = FILE_MESSAGE_SELECT_FILE_TO_START;
|
||||
xOffset = 9;
|
||||
yOffset = 4;
|
||||
break;
|
||||
case PAGE_1:
|
||||
case FM_MAIN_SELECT_DELETE:
|
||||
msgIdx = FILE_MESSAGE_SELECT_FILE_TO_DELETE;
|
||||
xOffset = DELETE_OFFSET_X;
|
||||
yOffset = 4;
|
||||
break;
|
||||
case PAGE_3:
|
||||
case FM_MAIN_SELECT_COPY_FROM:
|
||||
msgIdx = FILE_MESSAGE_COPY_WHICH_FILE;
|
||||
xOffset = SAVE_OFFSET_X;
|
||||
yOffset = 4;
|
||||
break;
|
||||
case PAGE_4:
|
||||
case FM_MAIN_SELECT_COPY_TO:
|
||||
msgIdx = FILE_MESSAGE_COPY_TO_WHICH_FILE;
|
||||
xOffset = COPY_OFFSET_X;
|
||||
yOffset = 4;
|
||||
break;
|
||||
#if !VERSION_PAL
|
||||
case PAGE_2:
|
||||
case FM_MAIN_SELECT_LANG_DUMMY:
|
||||
default:
|
||||
msgIdx = FILE_MESSAGE_SELECT_FILE_TO_SAVE;
|
||||
xOffset = 10;
|
||||
|
@ -427,7 +427,7 @@ void filemenu_draw_contents_option_left(
|
|||
}
|
||||
filemenu_draw_message(filemenu_get_menu_message(FILE_MESSAGE_DELETE_FILE), baseX + offset + OFFSET_WIDTH, baseY + 2, 255, 0, 1);
|
||||
#else
|
||||
if (menu->page != 2) {
|
||||
if (menu->state != FM_MAIN_SELECT_LANG_DUMMY) {
|
||||
if (menu->col == 0 && menu->row == 2) {
|
||||
filemenu_set_cursor_goal_pos(WIN_FILES_OPTION_LEFT, baseX, baseY + 8);
|
||||
}
|
||||
|
@ -447,10 +447,10 @@ void filemenu_draw_contents_option_center(
|
|||
s32 xOffset;
|
||||
s32 yOffset;
|
||||
|
||||
switch (menu->page) {
|
||||
case 1:
|
||||
case 2:
|
||||
case 3:
|
||||
switch (menu->state) {
|
||||
case FM_MAIN_SELECT_DELETE:
|
||||
case FM_MAIN_SELECT_COPY_FROM:
|
||||
case FM_MAIN_SELECT_COPY_TO:
|
||||
msgIdx = FILE_MESSAGE_CANCEL;
|
||||
xOffset = D_filemenu_802508F4[gCurrentLanguage];
|
||||
yOffset = 0;
|
||||
|
@ -481,11 +481,11 @@ void filemenu_draw_contents_option_center(
|
|||
s32 xOffset;
|
||||
s32 yOffset;
|
||||
|
||||
switch (menu->page) {
|
||||
case 1:
|
||||
case 2:
|
||||
case 3:
|
||||
case 4:
|
||||
switch (menu->state) {
|
||||
case FM_MAIN_SELECT_DELETE:
|
||||
case FM_MAIN_SELECT_LANG_DUMMY:
|
||||
case FM_MAIN_SELECT_COPY_FROM:
|
||||
case FM_MAIN_SELECT_COPY_TO:
|
||||
msgIdx = FILE_MESSAGE_CANCEL;
|
||||
xOffset = CENTER_CANCEL_X;
|
||||
yOffset = 0;
|
||||
|
@ -521,7 +521,7 @@ void filemenu_draw_contents_option_right(
|
|||
}
|
||||
filemenu_draw_message(filemenu_get_menu_message(FILE_MESSAGE_CANCEL), baseX + offset, baseY + 2, 255, 0, 1);
|
||||
#else
|
||||
if (menu->page != 2) {
|
||||
if (menu->state != 2) {
|
||||
if (menu->col == 2 && menu->row == 2) {
|
||||
filemenu_set_cursor_goal_pos(WIN_FILES_OPTION_RIGHT, baseX + 8, baseY + 8);
|
||||
}
|
||||
|
@ -619,19 +619,19 @@ void filemenu_draw_contents_file_title(
|
|||
s32 width, s32 height,
|
||||
s32 opacity, s32 darkening)
|
||||
{
|
||||
if (filemenu_currentMenu == 0 && menu->selected == fileIdx) {
|
||||
if (filemenu_currentMenu == FILE_MENU_MAIN && menu->selected == fileIdx) {
|
||||
filemenu_set_cursor_goal_pos(fileIdx + 60, baseX - 3, baseY + 8);
|
||||
}
|
||||
|
||||
filemenu_draw_message(filemenu_get_menu_message(FILE_MESSAGE_OK), baseX + FILE_X, baseY + 1, 255, 0, 1);
|
||||
|
||||
if (!gSaveSlotHasData[fileIdx]) {
|
||||
filemenu_draw_message(filemenu_get_menu_message(fileIdx + FILE_MESSAGE_BASE_UNK),
|
||||
filemenu_draw_message(filemenu_get_menu_message(fileIdx + FILE_MESSAGE_PAL_UNK3),
|
||||
baseX + D_filemenu_802508D0[gCurrentLanguage], baseY + 1, 255, 0, 1);
|
||||
} else {
|
||||
s32 tmp = D_filemenu_802508D0[gCurrentLanguage];
|
||||
|
||||
filemenu_draw_message(filemenu_get_menu_message(fileIdx + FILE_MESSAGE_BASE_UNK),
|
||||
filemenu_draw_message(filemenu_get_menu_message(fileIdx + FILE_MESSAGE_PAL_UNK3),
|
||||
baseX + tmp, baseY + 1, 255, 0, 1);
|
||||
|
||||
tmp += D_filemenu_802508D4[gCurrentLanguage];
|
||||
|
@ -651,7 +651,7 @@ void filemenu_draw_contents_file_title(
|
|||
s32 width, s32 height,
|
||||
s32 opacity, s32 darkening)
|
||||
{
|
||||
if (filemenu_currentMenu == 0 && menu->selected == fileIdx) {
|
||||
if (filemenu_currentMenu == FILE_MENU_MAIN && menu->selected == fileIdx) {
|
||||
filemenu_set_cursor_goal_pos(fileIdx + 60, baseX - 3, baseY + 8);
|
||||
}
|
||||
|
||||
|
@ -741,12 +741,8 @@ 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;
|
||||
s32 tmp;
|
||||
|
||||
for (i = 0; i < ARRAY_COUNT(filemenu_mainHIDs); i++) {
|
||||
filemenu_mainHIDs[i] = hud_element_create(filemenu_main_hudScripts[gCurrentLanguage][i]);
|
||||
|
@ -760,53 +756,12 @@ void filemenu_main_init(MenuPanel* menu) {
|
|||
setup_pause_menu_tab(filemenu_main_windowBPs, ARRAY_COUNT(filemenu_main_windowBPs));
|
||||
menu->selected = MENU_PANEL_SELECTED_GRID_DATA(menu);
|
||||
|
||||
#if VERSION_PAL
|
||||
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 != -1
|
||||
? (gWindows[gWindows[WIN_FILES_TITLE].parent].width / 2) - halfWidth
|
||||
: SCREEN_WIDTH / 2 - halfWidth;
|
||||
|
||||
tmp = 1;
|
||||
halfWidth = gWindows[WIN_FILES_OPTION_CENTER].width / 2;
|
||||
|
||||
gWindows[WIN_FILES_OPTION_CENTER].pos.x = gWindows[WIN_FILES_OPTION_CENTER].parent != -1
|
||||
? (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 = tmp;
|
||||
}
|
||||
#else
|
||||
void filemenu_main_init(MenuPanel* menu) {
|
||||
s32 halfWidth;
|
||||
s32 halfWidth2;
|
||||
s16* posXPtr;
|
||||
s32 x;
|
||||
s32 i;
|
||||
s32 tmp;
|
||||
|
||||
for (i = 0; i < ARRAY_COUNT(filemenu_mainHIDs); i++) {
|
||||
filemenu_mainHIDs[i] = hud_element_create(filemenu_main_hudScripts[gCurrentLanguage][i]);
|
||||
hud_element_set_flags(filemenu_mainHIDs[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);
|
||||
|
||||
if (menu->page == 2) {
|
||||
if (menu->state == FM_MAIN_SELECT_LANG_DUMMY) {
|
||||
gWindows[WIN_FILES_TITLE].pos.y = 1;
|
||||
gWindows[WIN_FILES_TITLE].width = 211;
|
||||
gWindows[WIN_FILES_TITLE].height = 25;
|
||||
|
@ -815,34 +770,18 @@ void filemenu_main_init(MenuPanel* menu) {
|
|||
gWindows[WIN_FILES_TITLE].width = 162;
|
||||
gWindows[WIN_FILES_TITLE].height = 25;
|
||||
}
|
||||
#endif
|
||||
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);
|
||||
|
||||
halfWidth = gWindows[WIN_FILES_TITLE].width / 2;
|
||||
posXPtr = &gWindows[WIN_FILES_TITLE].pos.x;
|
||||
if (gWindows[WIN_FILES_TITLE].parent != -1) {
|
||||
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 != -1) {
|
||||
x = (gWindows[gWindows[WIN_FILES_OPTION_CENTER].parent].width / 2) - halfWidth2;
|
||||
} else {
|
||||
x = SCREEN_WIDTH / 2 - halfWidth2;
|
||||
}
|
||||
*posXPtr = x;
|
||||
|
||||
if (menu->page != 0) {
|
||||
if (menu->state != FM_MAIN_SELECT_FILE) {
|
||||
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;
|
||||
menu->initialized = TRUE;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if VERSION_PAL
|
||||
INCLUDE_ASM(void, "filemenu/filemenu_main", filemenu_main_handle_input);
|
||||
|
@ -892,40 +831,49 @@ void filemenu_main_handle_input(MenuPanel* menu) {
|
|||
}
|
||||
}
|
||||
|
||||
switch (menu->page) {
|
||||
case 0:
|
||||
switch (menu->state) {
|
||||
case FM_MAIN_SELECT_FILE:
|
||||
// force selection to column 0 when navigating up from bottom row
|
||||
if (menu->col == 1 && (u8) menu->row < 2) {
|
||||
menu->col = 0;
|
||||
}
|
||||
break;
|
||||
case 1: // TODO required to duplicate cases 1-4 instead of using fallthrough
|
||||
case FM_MAIN_SELECT_DELETE: // TODO required to duplicate cases 1-4 instead of using fallthrough
|
||||
// force selection to column 0 when navigating up from bottom row
|
||||
if (menu->col == 1 && (u8) menu->row < 2) {
|
||||
menu->col = 0;
|
||||
}
|
||||
// force selection to column 1 when navigating down to bottom row
|
||||
if (menu->row == 2) {
|
||||
menu->col = 1;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
case FM_MAIN_SELECT_LANG_DUMMY:
|
||||
// force selection to column 0 when navigating up from bottom row
|
||||
if (menu->col == 1 && (u8) menu->row < 2) {
|
||||
menu->col = 0;
|
||||
}
|
||||
// force selection to column 1 when navigating down to bottom row
|
||||
if (menu->row == 2) {
|
||||
menu->col = 1;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
case FM_MAIN_SELECT_COPY_FROM:
|
||||
// force selection to column 0 when navigating up from bottom row
|
||||
if (menu->col == 1 && (u8) menu->row < 2) {
|
||||
menu->col = 0;
|
||||
}
|
||||
// force selection to column 1 when navigating down to bottom row
|
||||
if (menu->row == 2) {
|
||||
menu->col = 1;
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
case FM_MAIN_SELECT_COPY_TO:
|
||||
// force selection to column 0 when navigating up from bottom row
|
||||
if (menu->col == 1 && (u8) menu->row < 2) {
|
||||
menu->col = 0;
|
||||
}
|
||||
// force selection to column 1 when navigating down to bottom row
|
||||
if (menu->row == 2) {
|
||||
menu->col = 1;
|
||||
}
|
||||
|
@ -937,7 +885,7 @@ void filemenu_main_handle_input(MenuPanel* menu) {
|
|||
sfx_play_sound(SOUND_FILE_MENU_MOVE_CURSOR);
|
||||
}
|
||||
|
||||
if (menu->page == 0) {
|
||||
if (menu->state == FM_MAIN_SELECT_FILE) {
|
||||
s32 originalOutputMode = gGameStatusPtr->soundOutputMode;
|
||||
|
||||
if (filemenu_pressedButtons & BUTTON_Z) {
|
||||
|
@ -957,23 +905,24 @@ void filemenu_main_handle_input(MenuPanel* menu) {
|
|||
}
|
||||
}
|
||||
|
||||
if ((filemenu_pressedButtons & BUTTON_START) && menu->page == 0 && 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) {
|
||||
s32 cond = FALSE;
|
||||
|
||||
switch (menu->page) {
|
||||
case 0:
|
||||
if (menu->selected < 4 && !gSaveSlotHasData[menu->selected]) {
|
||||
switch (menu->state) {
|
||||
case FM_MAIN_SELECT_FILE:
|
||||
if (menu->selected <= FM_MAIN_OPT_FILE_4 && !gSaveSlotHasData[menu->selected]) {
|
||||
cond = TRUE;
|
||||
}
|
||||
|
||||
if (cond) {
|
||||
MenuPanel* temp_a0;
|
||||
// selected a file with no data
|
||||
MenuPanel* inputMenu;
|
||||
for (i = 0; i < ARRAY_COUNT(filemenu_filename); i++) {
|
||||
filemenu_filename[i] = 0xF7;
|
||||
filemenu_filename[i] = MSG_CHAR_READ_SPACE;
|
||||
}
|
||||
filemenu_filename_pos = 0;
|
||||
set_window_update(WIN_FILES_INPUT_FIELD, (s32)filemenu_update_show_name_input);
|
||||
|
@ -990,14 +939,15 @@ void filemenu_main_handle_input(MenuPanel* menu) {
|
|||
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 = 3;
|
||||
temp_a0 = filemenu_menus[filemenu_currentMenu];
|
||||
temp_a0->page = 0;
|
||||
filemenu_set_selected(temp_a0, 0, 0);
|
||||
filemenu_currentMenu = FILE_MENU_INPUT_NAME;
|
||||
inputMenu = filemenu_menus[FILE_MENU_INPUT_NAME];
|
||||
inputMenu->state = FM_INPUT_CHARSET_A;
|
||||
filemenu_set_selected(inputMenu, 0, 0);
|
||||
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);
|
||||
|
@ -1010,24 +960,25 @@ void filemenu_main_handle_input(MenuPanel* menu) {
|
|||
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->page = 1;
|
||||
menu->state = FM_MAIN_SELECT_DELETE;
|
||||
filemenu_set_selected(menu, 1, 2);
|
||||
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_RIGHT, (s32)filemenu_update_hidden_options_bottom);
|
||||
} else if (menu->selected == 5) {
|
||||
} else if (menu->selected == FM_MAIN_OPT_COPY) {
|
||||
sfx_play_sound(SOUND_MENU_NEXT);
|
||||
menu->page = 3;
|
||||
menu->state = FM_MAIN_SELECT_COPY_FROM;
|
||||
filemenu_set_selected(menu, 1, 2);
|
||||
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_RIGHT, (s32)filemenu_update_hidden_options_bottom);
|
||||
} else if (menu->selected < 4) {
|
||||
MenuPanel* temp_a0;
|
||||
} else if (menu->selected <= FM_MAIN_OPT_FILE_4) {
|
||||
MenuPanel* confirmMenu;
|
||||
|
||||
sfx_play_sound(SOUND_MENU_NEXT);
|
||||
set_window_update(WIN_FILES_TITLE, (s32)filemenu_update_hidden_with_rotation);
|
||||
|
@ -1048,35 +999,33 @@ void filemenu_main_handle_input(MenuPanel* menu) {
|
|||
gWindows[WIN_FILES_CONFIRM_OPTIONS].pos.y = 143;
|
||||
gWindows[WIN_FILES_CONFIRM_OPTIONS].width = 69;
|
||||
gWindows[WIN_FILES_CONFIRM_OPTIONS].height = 44;
|
||||
gWindows[WIN_FILES_CONFIRM_OPTIONS].pos.x = ((gWindows[WIN_FILES_CONFIRM_OPTIONS].parent != -1)
|
||||
? (gWindows[gWindows[WIN_FILES_CONFIRM_OPTIONS].parent].width / 2)
|
||||
: SCREEN_WIDTH / 2) - gWindows[WIN_FILES_CONFIRM_OPTIONS].width / 2;
|
||||
gWindows[WIN_FILES_CONFIRM_OPTIONS].pos.x = CENTER_WINDOW_X(WIN_FILES_CONFIRM_OPTIONS);
|
||||
|
||||
gWindows[WIN_FILES_CONFIRM_PROMPT].pos.y = -29;
|
||||
gWindows[WIN_FILES_CONFIRM_PROMPT].width = 192;
|
||||
gWindows[WIN_FILES_CONFIRM_PROMPT].height = 25;
|
||||
gWindows[WIN_FILES_CONFIRM_PROMPT].pos.x = ((gWindows[WIN_FILES_CONFIRM_PROMPT].parent != -1)
|
||||
? (gWindows[gWindows[WIN_FILES_CONFIRM_PROMPT].parent].width / 2)
|
||||
: SCREEN_WIDTH / 2) - gWindows[WIN_FILES_CONFIRM_PROMPT].width / 2;
|
||||
gWindows[WIN_FILES_CONFIRM_PROMPT].pos.x = CENTER_WINDOW_X(WIN_FILES_CONFIRM_PROMPT);
|
||||
|
||||
filemenu_currentMenu = 1;
|
||||
temp_a0 = filemenu_menus[filemenu_currentMenu];
|
||||
temp_a0->page = 4;
|
||||
filemenu_set_selected(temp_a0, 0, 0);
|
||||
filemenu_currentMenu = FILE_MENU_CONFIRM;
|
||||
confirmMenu = filemenu_menus[FILE_MENU_CONFIRM];
|
||||
confirmMenu->state = FM_CONFIRM_START;
|
||||
filemenu_set_selected(confirmMenu, 0, 0);
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
if (menu->selected == 6) {
|
||||
case FM_MAIN_SELECT_DELETE:
|
||||
if (menu->selected == FM_MAIN_OPT_CANCEL) {
|
||||
// selected "Cancel" button
|
||||
sfx_play_sound(SOUND_MENU_NEXT);
|
||||
menu->page = 0;
|
||||
menu->state = FM_MAIN_SELECT_FILE;
|
||||
set_window_update(WIN_FILES_STEREO, (s32)filemenu_update_show_options_left);
|
||||
set_window_update(WIN_FILES_MONO, (s32)filemenu_update_show_options_right);
|
||||
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 (gSaveSlotHasData[menu->selected]) {
|
||||
MenuPanel* temp_a0;
|
||||
MenuPanel* confirmMenu;
|
||||
|
||||
sfx_play_sound(SOUND_MENU_NEXT);
|
||||
set_window_update(WIN_FILES_CONFIRM_OPTIONS, (s32)filemenu_update_show_name_confirm);
|
||||
|
@ -1084,67 +1033,63 @@ void filemenu_main_handle_input(MenuPanel* menu) {
|
|||
gWindows[WIN_FILES_CONFIRM_OPTIONS].pos.y = 121;
|
||||
gWindows[WIN_FILES_CONFIRM_OPTIONS].width = 69;
|
||||
gWindows[WIN_FILES_CONFIRM_OPTIONS].height = 44;
|
||||
gWindows[WIN_FILES_CONFIRM_OPTIONS].pos.x = ((gWindows[WIN_FILES_CONFIRM_OPTIONS].parent != -1)
|
||||
? (gWindows[gWindows[WIN_FILES_CONFIRM_OPTIONS].parent].width / 2)
|
||||
: SCREEN_WIDTH / 2) - gWindows[WIN_FILES_CONFIRM_OPTIONS].width / 2;
|
||||
gWindows[WIN_FILES_CONFIRM_OPTIONS].pos.x = CENTER_WINDOW_X(WIN_FILES_CONFIRM_OPTIONS);
|
||||
|
||||
gWindows[WIN_FILES_CONFIRM_PROMPT].pos.y = -29;
|
||||
gWindows[WIN_FILES_CONFIRM_PROMPT].width = 118;
|
||||
gWindows[WIN_FILES_CONFIRM_PROMPT].height = 25;
|
||||
gWindows[WIN_FILES_CONFIRM_PROMPT].pos.x = ((gWindows[WIN_FILES_CONFIRM_PROMPT].parent != -1)
|
||||
? (gWindows[gWindows[WIN_FILES_CONFIRM_PROMPT].parent].width / 2)
|
||||
: SCREEN_WIDTH / 2) - gWindows[WIN_FILES_CONFIRM_PROMPT].width / 2;
|
||||
gWindows[WIN_FILES_CONFIRM_PROMPT].pos.x = CENTER_WINDOW_X(WIN_FILES_CONFIRM_PROMPT);
|
||||
|
||||
filemenu_currentMenu = 1;
|
||||
temp_a0 = filemenu_menus[filemenu_currentMenu];
|
||||
temp_a0->page = 0;
|
||||
filemenu_set_selected(temp_a0, 0, 1);
|
||||
filemenu_currentMenu = FILE_MENU_CONFIRM;
|
||||
confirmMenu = filemenu_menus[FILE_MENU_CONFIRM];
|
||||
confirmMenu->state = FM_CONFIRM_DELETE;
|
||||
filemenu_set_selected(confirmMenu, 0, 1);
|
||||
} else {
|
||||
sfx_play_sound(SOUND_MENU_ERROR);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
if (menu->selected == 6) {
|
||||
case FM_MAIN_SELECT_COPY_FROM:
|
||||
if (menu->selected == FM_MAIN_OPT_CANCEL) {
|
||||
// selected "Cancel" button
|
||||
sfx_play_sound(SOUND_MENU_NEXT);
|
||||
menu->page = 0;
|
||||
menu->state = FM_MAIN_SELECT_FILE;
|
||||
set_window_update(WIN_FILES_STEREO, (s32)filemenu_update_show_options_left);
|
||||
set_window_update(WIN_FILES_MONO, (s32)filemenu_update_show_options_right);
|
||||
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 (gSaveSlotHasData[menu->selected]) {
|
||||
sfx_play_sound(SOUND_MENU_NEXT);
|
||||
menu->page = 4;
|
||||
menu->state = FM_MAIN_SELECT_COPY_TO;
|
||||
filemenu_loadedFileIdx = menu->selected;
|
||||
} else {
|
||||
sfx_play_sound(SOUND_MENU_ERROR);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
if (menu->selected == 6) {
|
||||
case FM_MAIN_SELECT_COPY_TO:
|
||||
if (menu->selected == FM_MAIN_OPT_CANCEL) {
|
||||
// selected "Cancel" button
|
||||
sfx_play_sound(SOUND_MENU_NEXT);
|
||||
menu->page = 3;
|
||||
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_loadedFileIdx == menu->selected) {
|
||||
sfx_play_sound(SOUND_MENU_ERROR);
|
||||
} else {
|
||||
filemenu_iterFileIdx = menu->selected;
|
||||
if (!gSaveSlotHasData[menu->selected]) {
|
||||
sfx_play_sound(SOUND_MENU_NEXT);
|
||||
filemenu_currentMenu = 2;
|
||||
filemenu_menus[filemenu_currentMenu]->page = 2;
|
||||
filemenu_currentMenu = FILE_MENU_MESSAGE;
|
||||
filemenu_menus[filemenu_currentMenu]->state = FM_MESSAGE_COPIED;
|
||||
gWindows[WIN_FILES_MESSAGE].width = 154;
|
||||
gWindows[WIN_FILES_MESSAGE].height = 39;
|
||||
gWindows[WIN_FILES_MESSAGE].pos.x = ((gWindows[WIN_FILES_MESSAGE].parent != -1)
|
||||
? (gWindows[gWindows[WIN_FILES_MESSAGE].parent].width / 2)
|
||||
: SCREEN_WIDTH / 2) - gWindows[WIN_FILES_MESSAGE].width / 2;
|
||||
gWindows[WIN_FILES_MESSAGE].pos.y = ((gWindows[WIN_FILES_MESSAGE].parent != -1)
|
||||
? (gWindows[gWindows[WIN_FILES_MESSAGE].parent].height / 2)
|
||||
: SCREEN_HEIGHT / 2) - gWindows[WIN_FILES_MESSAGE].height / 2;
|
||||
gWindows[WIN_FILES_MESSAGE].pos.x = CENTER_WINDOW_X(WIN_FILES_MESSAGE);
|
||||
gWindows[WIN_FILES_MESSAGE].pos.y = CENTER_WINDOW_Y(WIN_FILES_MESSAGE);
|
||||
|
||||
set_window_update(WIN_FILES_MESSAGE, WINDOW_UPDATE_SHOW);
|
||||
set_window_update(WIN_FILES_CONFIRM_OPTIONS, WINDOW_UPDATE_HIDE);
|
||||
|
@ -1153,69 +1098,63 @@ void filemenu_main_handle_input(MenuPanel* menu) {
|
|||
fio_save_game(filemenu_iterFileIdx);
|
||||
gSaveSlotHasData[filemenu_iterFileIdx] = TRUE;
|
||||
} else {
|
||||
MenuPanel* temp_a0;
|
||||
MenuPanel* confirmMenu;
|
||||
|
||||
sfx_play_sound(SOUND_MENU_NEXT);
|
||||
set_window_update(WIN_FILES_CONFIRM_OPTIONS, (s32)filemenu_update_show_name_confirm);
|
||||
gWindows[WIN_FILES_CONFIRM_OPTIONS].pos.y = 121;
|
||||
gWindows[WIN_FILES_CONFIRM_OPTIONS].width = 69;
|
||||
gWindows[WIN_FILES_CONFIRM_OPTIONS].height = 44;
|
||||
gWindows[WIN_FILES_CONFIRM_OPTIONS].pos.x = ((gWindows[WIN_FILES_CONFIRM_OPTIONS].parent != -1)
|
||||
? (gWindows[gWindows[WIN_FILES_CONFIRM_OPTIONS].parent].width / 2)
|
||||
: SCREEN_WIDTH / 2) - gWindows[WIN_FILES_CONFIRM_OPTIONS].width / 2;
|
||||
gWindows[WIN_FILES_CONFIRM_OPTIONS].pos.x = CENTER_WINDOW_X(WIN_FILES_CONFIRM_OPTIONS);
|
||||
|
||||
gWindows[WIN_FILES_CONFIRM_PROMPT].pos.y = -43;
|
||||
gWindows[WIN_FILES_CONFIRM_PROMPT].width = 182;
|
||||
gWindows[WIN_FILES_CONFIRM_PROMPT].height = 39;
|
||||
gWindows[WIN_FILES_CONFIRM_PROMPT].pos.x = ((gWindows[WIN_FILES_CONFIRM_PROMPT].parent != -1)
|
||||
? (gWindows[gWindows[WIN_FILES_CONFIRM_PROMPT].parent].width / 2)
|
||||
: SCREEN_WIDTH / 2) - gWindows[WIN_FILES_CONFIRM_PROMPT].width / 2;
|
||||
gWindows[WIN_FILES_CONFIRM_PROMPT].pos.x = CENTER_WINDOW_X(WIN_FILES_CONFIRM_PROMPT);
|
||||
|
||||
filemenu_currentMenu = 1;
|
||||
temp_a0 = filemenu_menus[filemenu_currentMenu];
|
||||
temp_a0->page = 3;
|
||||
filemenu_set_selected(temp_a0, 0, 1);
|
||||
filemenu_currentMenu = FILE_MENU_CONFIRM;
|
||||
confirmMenu = filemenu_menus[filemenu_currentMenu];
|
||||
confirmMenu->state = FM_CONFIRM_COPY;
|
||||
filemenu_set_selected(confirmMenu, 0, 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
if (menu->selected == 6) {
|
||||
case FM_MAIN_SELECT_LANG_DUMMY:
|
||||
if (menu->selected == FM_MAIN_OPT_CANCEL) {
|
||||
// selected "Cancel" button
|
||||
sfx_play_sound(SOUND_MENU_NEXT);
|
||||
set_game_mode(GAME_MODE_END_LANGUAGE_SELECT);
|
||||
} else if (menu->selected < 4) {
|
||||
} else if (menu->selected <= FM_MAIN_OPT_FILE_4) {
|
||||
// selected a file
|
||||
if (!gSaveSlotHasData[menu->selected]) {
|
||||
sfx_play_sound(SOUND_MENU_NEXT);
|
||||
filemenu_currentMenu = 2;
|
||||
filemenu_menus[filemenu_currentMenu]->page = 1;
|
||||
filemenu_currentMenu = FILE_MENU_MESSAGE;
|
||||
filemenu_menus[filemenu_currentMenu]->state = FM_MESSAGE_DUMMY;
|
||||
set_window_update(WIN_FILES_MAIN, (s32)main_menu_window_update);
|
||||
set_window_update(WIN_FILES_MESSAGE, WINDOW_UPDATE_SHOW);
|
||||
set_window_update(WIN_FILES_CONFIRM_OPTIONS, WINDOW_UPDATE_HIDE);
|
||||
fio_save_game(menu->selected);
|
||||
gSaveSlotHasData[menu->selected] = TRUE;
|
||||
} else {
|
||||
MenuPanel* temp_a0;
|
||||
MenuPanel* confirmMenu;
|
||||
|
||||
sfx_play_sound(SOUND_MENU_NEXT);
|
||||
set_window_update(WIN_FILES_CONFIRM_OPTIONS, (s32)filemenu_update_show_name_confirm);
|
||||
gWindows[WIN_FILES_CONFIRM_OPTIONS].pos.y = 127;
|
||||
gWindows[WIN_FILES_CONFIRM_OPTIONS].width = 69;
|
||||
gWindows[WIN_FILES_CONFIRM_OPTIONS].height = 44;
|
||||
gWindows[WIN_FILES_CONFIRM_OPTIONS].pos.x = ((gWindows[WIN_FILES_CONFIRM_OPTIONS].parent != -1)
|
||||
? (gWindows[gWindows[WIN_FILES_CONFIRM_OPTIONS].parent].width / 2)
|
||||
: SCREEN_WIDTH / 2) - gWindows[WIN_FILES_CONFIRM_OPTIONS].width / 2;
|
||||
gWindows[WIN_FILES_CONFIRM_OPTIONS].pos.x = CENTER_WINDOW_X(WIN_FILES_CONFIRM_OPTIONS);
|
||||
|
||||
gWindows[WIN_FILES_CONFIRM_PROMPT].pos.y = -50;
|
||||
gWindows[WIN_FILES_CONFIRM_PROMPT].width = 148;
|
||||
gWindows[WIN_FILES_CONFIRM_PROMPT].height = 38;
|
||||
gWindows[WIN_FILES_CONFIRM_PROMPT].pos.x = ((gWindows[WIN_FILES_CONFIRM_PROMPT].parent != -1)
|
||||
? (gWindows[gWindows[WIN_FILES_CONFIRM_PROMPT].parent].width / 2)
|
||||
: SCREEN_WIDTH / 2) - gWindows[WIN_FILES_CONFIRM_PROMPT].width / 2;
|
||||
gWindows[WIN_FILES_CONFIRM_PROMPT].pos.x = CENTER_WINDOW_X(WIN_FILES_CONFIRM_PROMPT);
|
||||
|
||||
filemenu_currentMenu = 1;
|
||||
temp_a0 = filemenu_menus[filemenu_currentMenu];
|
||||
temp_a0->page = 1;
|
||||
filemenu_set_selected(temp_a0, 0, 1);
|
||||
filemenu_currentMenu = FILE_MENU_CONFIRM;
|
||||
confirmMenu = filemenu_menus[filemenu_currentMenu];
|
||||
confirmMenu->state = FM_CONFIRM_DUMMY;
|
||||
filemenu_set_selected(confirmMenu, 0, 1);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
@ -1223,26 +1162,26 @@ void filemenu_main_handle_input(MenuPanel* menu) {
|
|||
}
|
||||
|
||||
if (filemenu_pressedButtons & BUTTON_B) {
|
||||
switch (menu->page) {
|
||||
case 0:
|
||||
switch (menu->state) {
|
||||
case FM_MAIN_SELECT_FILE:
|
||||
filemenu_set_selected(menu, 2, 2);
|
||||
break;
|
||||
case 1:
|
||||
case FM_MAIN_SELECT_DELETE:
|
||||
filemenu_set_selected(menu, 1, 2);
|
||||
break;
|
||||
case 2:
|
||||
case FM_MAIN_SELECT_LANG_DUMMY:
|
||||
filemenu_set_selected(menu, 1, 2);
|
||||
break;
|
||||
case 3:
|
||||
case FM_MAIN_SELECT_COPY_FROM:
|
||||
filemenu_set_selected(menu, 1, 2);
|
||||
break;
|
||||
case 4:
|
||||
case FM_MAIN_SELECT_COPY_TO:
|
||||
filemenu_set_selected(menu, 1, 2);
|
||||
break;
|
||||
}
|
||||
|
||||
switch (menu->page) {
|
||||
case 0:
|
||||
switch (menu->state) {
|
||||
case FM_MAIN_SELECT_FILE:
|
||||
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);
|
||||
|
@ -1256,8 +1195,8 @@ void filemenu_main_handle_input(MenuPanel* menu) {
|
|||
sfx_play_sound(SOUND_FILE_MENU_OUT);
|
||||
set_game_mode(GAME_MODE_END_FILE_SELECT);
|
||||
break;
|
||||
case 1:
|
||||
menu->page = 0;
|
||||
case FM_MAIN_SELECT_DELETE:
|
||||
menu->state = FM_MAIN_SELECT_FILE;
|
||||
filemenu_set_selected(menu, 0, 2);
|
||||
set_window_update(WIN_FILES_STEREO, (s32)filemenu_update_show_options_left);
|
||||
set_window_update(WIN_FILES_MONO, (s32)filemenu_update_show_options_right);
|
||||
|
@ -1265,8 +1204,8 @@ void filemenu_main_handle_input(MenuPanel* menu) {
|
|||
set_window_update(WIN_FILES_OPTION_RIGHT, (s32)filemenu_update_show_options_bottom);
|
||||
sfx_play_sound(SOUND_MENU_BACK);
|
||||
break;
|
||||
case 3:
|
||||
menu->page = 0;
|
||||
case FM_MAIN_SELECT_COPY_FROM:
|
||||
menu->state = FM_MAIN_SELECT_FILE;
|
||||
filemenu_set_selected(menu, 1, 2);
|
||||
set_window_update(WIN_FILES_STEREO, (s32)filemenu_update_show_options_left);
|
||||
set_window_update(WIN_FILES_MONO, (s32)filemenu_update_show_options_right);
|
||||
|
@ -1274,12 +1213,12 @@ void filemenu_main_handle_input(MenuPanel* menu) {
|
|||
set_window_update(WIN_FILES_OPTION_RIGHT, (s32)filemenu_update_show_options_bottom);
|
||||
sfx_play_sound(SOUND_MENU_BACK);
|
||||
break;
|
||||
case 4:
|
||||
menu->page = 3;
|
||||
case FM_MAIN_SELECT_COPY_TO:
|
||||
menu->state = FM_MAIN_SELECT_COPY_FROM;
|
||||
filemenu_set_selected(menu, (filemenu_loadedFileIdx % 2) * 2, filemenu_loadedFileIdx / 2);
|
||||
sfx_play_sound(SOUND_MENU_BACK);
|
||||
break;
|
||||
case 2:
|
||||
case FM_MAIN_SELECT_LANG_DUMMY:
|
||||
sfx_play_sound(SOUND_MENU_BACK);
|
||||
set_game_mode(GAME_MODE_END_LANGUAGE_SELECT);
|
||||
break;
|
||||
|
@ -1289,6 +1228,7 @@ void filemenu_main_handle_input(MenuPanel* menu) {
|
|||
#endif
|
||||
|
||||
void filemenu_main_update(MenuPanel* menu) {
|
||||
// set default styles for all file slot panels
|
||||
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];
|
||||
|
@ -1298,40 +1238,42 @@ void filemenu_main_update(MenuPanel* menu) {
|
|||
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:
|
||||
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 1:
|
||||
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 2:
|
||||
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 3:
|
||||
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;
|
||||
}
|
||||
|
||||
if (filemenu_menus[0]->page == PAGE_4) {
|
||||
// also add highlight to "copy to" target
|
||||
if (filemenu_menus[FILE_MENU_MAIN]->state == FM_MAIN_SELECT_COPY_TO) {
|
||||
switch (filemenu_loadedFileIdx) {
|
||||
case 0:
|
||||
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 1:
|
||||
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 2:
|
||||
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 3:
|
||||
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;
|
||||
|
|
|
@ -589,21 +589,21 @@ s32 filemenu_draw_char(s32 c, s32 x, s32 y, s32 flag1, s32 color, s32 flag2) {
|
|||
}
|
||||
#endif
|
||||
|
||||
if (c == 0xF7) {
|
||||
if (c == MSG_CHAR_READ_SPACE) {
|
||||
return charWidth - 6;
|
||||
}
|
||||
|
||||
switch (c) {
|
||||
case 0xF3:
|
||||
case MSG_CHAR_READ_VARIANT0:
|
||||
filemenu_charset_raster_id = 0;
|
||||
break;
|
||||
case 0xF4:
|
||||
case MSG_CHAR_READ_VARIANT1:
|
||||
filemenu_charset_raster_id = 1;
|
||||
break;
|
||||
case 0xF5:
|
||||
case MSG_CHAR_READ_VARIANT2:
|
||||
filemenu_charset_raster_id = 2;
|
||||
break;
|
||||
case 0xF6:
|
||||
case MSG_CHAR_READ_VARIANT3:
|
||||
filemenu_charset_raster_id = 3;
|
||||
break;
|
||||
}
|
||||
|
@ -637,7 +637,7 @@ void filemenu_draw_message(u8* message, s32 x, s32 y, s32 alpha, s32 color, u32
|
|||
u8* tmp;
|
||||
filemenu_draw_char(0xF3, x, y, flag1, color, flag2);
|
||||
tmp = message;
|
||||
while (*tmp != 0xFD) {
|
||||
while (*tmp != MSG_CHAR_READ_END) {
|
||||
#if VERSION_IQUE
|
||||
int ord = *tmp;
|
||||
if (ord >= MSG_CHAR_MULTIBYTE_FIRST && ord <= MSG_CHAR_MULTIBYTE_LAST) {
|
||||
|
@ -671,7 +671,7 @@ void filemenu_draw_file_name(u8* filename, s32 length, s32 x, s32 y, s32 alpha,
|
|||
for (i = 0; i < length; i++) {
|
||||
u32 c = filename[i];
|
||||
|
||||
if (c != 0xF7) {
|
||||
if (c != MSG_CHAR_READ_SPACE) {
|
||||
#if VERSION_IQUE
|
||||
// Numerals get drawn one pixel lower than other characters
|
||||
if (c >= MSG_CHAR_DIGIT_0 && c <= MSG_CHAR_DIGIT_9) {
|
||||
|
|
|
@ -140,7 +140,7 @@ MenuPanel filemenu_selectlanguage_menuBP = {
|
|||
.col = 0,
|
||||
.row = 0,
|
||||
.selected = 0,
|
||||
.page = 0,
|
||||
.state = 0,
|
||||
.numCols =1,
|
||||
.numRows = 4,
|
||||
.numPages = 0,
|
||||
|
@ -158,7 +158,7 @@ void filemenu_draw_pal_8024d6a0(MenuPanel* menu, s32 baseX, s32 baseY, s32 width
|
|||
void func_filemenu_8024D710(s32 arg0, MenuPanel* menu, s32 baseX, s32 baseY, s32 width, s32 height, s32 opacity, s32 darkening) {
|
||||
s32 var_a1;
|
||||
|
||||
if (filemenu_currentMenu == 4 && menu->selected == arg0) {
|
||||
if (filemenu_currentMenu == FILE_MENU_SELECT_LANG && menu->selected == arg0) {
|
||||
filemenu_set_cursor_goal_pos(arg0 + 60, baseX + 4, baseY + 10);
|
||||
}
|
||||
|
||||
|
@ -226,10 +226,10 @@ void filemenu_selectlanguage_init(MenuPanel* menu) {
|
|||
gWindows[WIN_FILES_TITLE].height = 25;
|
||||
|
||||
posXPtr = &gWindows[WIN_FILES_TITLE].pos.x;
|
||||
if (gWindows[WIN_FILES_TITLE].parent != -1) {
|
||||
if (gWindows[WIN_FILES_TITLE].parent != WIN_NONE) {
|
||||
x = (gWindows[gWindows[WIN_FILES_TITLE].parent].width / 2) - (gWindows[WIN_FILES_TITLE].width / 2);
|
||||
} else {
|
||||
x = 64;
|
||||
x = 64; // different from CENTER_WINDOW_X macro
|
||||
}
|
||||
*posXPtr = x;
|
||||
|
||||
|
|
|
@ -29,12 +29,12 @@
|
|||
|
||||
u8 filemenu_yesno_gridData[] = {
|
||||
0, 1,
|
||||
0, 1,
|
||||
0, 1,
|
||||
0, 1,
|
||||
#if !VERSION_PAL
|
||||
0, 1
|
||||
0, 1,
|
||||
#endif
|
||||
0, 1,
|
||||
0, 1,
|
||||
0, 1,
|
||||
};
|
||||
|
||||
MenuWindowBP filemenu_yesno_windowBPs[] = {
|
||||
|
@ -73,7 +73,7 @@ MenuPanel filemenu_yesno_menuBP = {
|
|||
.col = 0,
|
||||
.row = 0,
|
||||
.selected = 0,
|
||||
.page = 0,
|
||||
.state = 0,
|
||||
.numCols = 1,
|
||||
.numRows = 2,
|
||||
.numPages = 0,
|
||||
|
@ -97,45 +97,45 @@ void filemenu_yesno_draw_options_contents(
|
|||
s32 cursorGoalXOffset;
|
||||
s32 cursorGoalYOffset;
|
||||
|
||||
switch (menu->page) {
|
||||
case 0:
|
||||
xOffset1 = 28;
|
||||
yOffset1 = 4;
|
||||
xOffset2 = 28;
|
||||
yOffset2 = 21;
|
||||
break;
|
||||
case 1:
|
||||
xOffset1 = 28;
|
||||
yOffset1 = 4;
|
||||
xOffset2 = 28;
|
||||
yOffset2 = 21;
|
||||
break;
|
||||
case 2:
|
||||
xOffset1 = 28;
|
||||
yOffset1 = 4;
|
||||
xOffset2 = 28;
|
||||
yOffset2 = 21;
|
||||
break;
|
||||
case 3:
|
||||
switch (menu->state) {
|
||||
case FM_CONFIRM_DELETE:
|
||||
xOffset1 = 28;
|
||||
yOffset1 = 4;
|
||||
xOffset2 = 28;
|
||||
yOffset2 = 21;
|
||||
break;
|
||||
#if !VERSION_PAL
|
||||
case 4:
|
||||
case FM_CONFIRM_DUMMY:
|
||||
xOffset1 = 28;
|
||||
yOffset1 = 4;
|
||||
xOffset2 = 28;
|
||||
yOffset2 = 21;
|
||||
break;
|
||||
#endif
|
||||
case FM_CONFIRM_CREATE:
|
||||
xOffset1 = 28;
|
||||
yOffset1 = 4;
|
||||
xOffset2 = 28;
|
||||
yOffset2 = 21;
|
||||
break;
|
||||
case FM_CONFIRM_COPY:
|
||||
xOffset1 = 28;
|
||||
yOffset1 = 4;
|
||||
xOffset2 = 28;
|
||||
yOffset2 = 21;
|
||||
break;
|
||||
case FM_CONFIRM_START:
|
||||
xOffset1 = 28;
|
||||
yOffset1 = 4;
|
||||
xOffset2 = 28;
|
||||
yOffset2 = 21;
|
||||
break;
|
||||
}
|
||||
|
||||
filemenu_draw_message(filemenu_get_menu_message(FILE_MESSAGE_YES), baseX + xOffset1, baseY + yOffset1, 0xFF, 0, 0);
|
||||
filemenu_draw_message(filemenu_get_menu_message(FILE_MESSAGE_NO), baseX + xOffset2, baseY + yOffset2, 0xFF, 0, 0);
|
||||
|
||||
if (filemenu_currentMenu == 1) {
|
||||
if (filemenu_currentMenu == FILE_MENU_CONFIRM) {
|
||||
if (menu->selected == 0) {
|
||||
cursorGoalXOffset = xOffset1 - 10;
|
||||
cursorGoalYOffset = yOffset1 + 8;
|
||||
|
@ -159,27 +159,27 @@ void filemenu_yesno_draw_prompt_contents(
|
|||
s32 xOffset;
|
||||
s32 i;
|
||||
|
||||
switch (menu->page) {
|
||||
case 0:
|
||||
switch (menu->state) {
|
||||
case FM_CONFIRM_DELETE:
|
||||
filemenu_draw_message(filemenu_get_menu_message(FILE_MESSAGE_DELETE), baseX + DELETE_FILE_DELETE_X, baseY + 4, 0xFF, 0, 0);
|
||||
filemenu_draw_message(filemenu_get_menu_message(FILE_MESSAGE_FILE_22), baseX + DELETE_FILE_FILE_X, baseY + 4, 0xFF, 0, 0);
|
||||
draw_number(filemenu_menus[0]->selected + 1, baseX + DELETE_FILE_NUMBER_X, baseY + 6 + NUMBER_OFFSET_Y, DRAW_NUMBER_CHARSET_NORMAL, MSG_PAL_WHITE, 0xFF, DRAW_NUMBER_STYLE_MONOSPACE | DRAW_NUMBER_STYLE_ALIGN_RIGHT);
|
||||
draw_number(filemenu_menus[FILE_MENU_MAIN]->selected + 1, baseX + DELETE_FILE_NUMBER_X, baseY + 6 + NUMBER_OFFSET_Y, DRAW_NUMBER_CHARSET_NORMAL, MSG_PAL_WHITE, 0xFF, DRAW_NUMBER_STYLE_MONOSPACE | DRAW_NUMBER_STYLE_ALIGN_RIGHT);
|
||||
filemenu_draw_message(filemenu_get_menu_message(FILE_MESSAGE_QUESTION), baseX + DELETE_FILE_QMARK_X, baseY + 4, 0xFF, 0, 0); break;
|
||||
case 3:
|
||||
case FM_CONFIRM_COPY:
|
||||
filemenu_draw_message(filemenu_get_menu_message(FILE_MESSAGE_FILE_22), baseX + 10, baseY + 4, 0xFF, 0, 0);
|
||||
draw_number(filemenu_menus[0]->selected + 1, baseX + COPY_FILE_NUMBER_X, baseY + 6 + NUMBER_OFFSET_Y, DRAW_NUMBER_CHARSET_NORMAL, MSG_PAL_WHITE, 0xFF, DRAW_NUMBER_STYLE_MONOSPACE | DRAW_NUMBER_STYLE_ALIGN_RIGHT);
|
||||
draw_number(filemenu_menus[FILE_MENU_MAIN]->selected + 1, baseX + COPY_FILE_NUMBER_X, baseY + 6 + NUMBER_OFFSET_Y, DRAW_NUMBER_CHARSET_NORMAL, MSG_PAL_WHITE, 0xFF, DRAW_NUMBER_STYLE_MONOSPACE | DRAW_NUMBER_STYLE_ALIGN_RIGHT);
|
||||
filemenu_draw_message(filemenu_get_menu_message(FILE_MESSAGE_WILL_BE_DELETED), baseX + 49, baseY + 4, 0xFF, 0, 0);
|
||||
filemenu_draw_message(filemenu_get_menu_message(FILE_MESSAGE_OK_TO_COPY_TO_THIS_FILE), baseX + 10, baseY + 18, 0xFF, 0, 0);
|
||||
break;
|
||||
case 1:
|
||||
case FM_CONFIRM_DUMMY:
|
||||
filemenu_draw_message(filemenu_get_menu_message(FILE_MESSAGE_OVERRIDE_TO_NEW_DATA), baseX + 10, baseY + 4, 0xFF, 0, 0);
|
||||
filemenu_draw_message(filemenu_get_menu_message(FILE_MESSAGE_SAVE_OK), baseX + 10, baseY + 18, 0xFF, 0, 0);
|
||||
break;
|
||||
case 2:
|
||||
case FM_CONFIRM_CREATE:
|
||||
filemenu_draw_message(filemenu_get_menu_message(FILE_MESSAGE_FILE_NAME_IS), baseX + 10, baseY + 6, 0xFF, 0, 0);
|
||||
|
||||
for (i = ARRAY_COUNT(filemenu_filename) - 1; i >= 0; i--) {
|
||||
if (filemenu_filename[i] != 0xF7) {
|
||||
if (filemenu_filename[i] != MSG_CHAR_READ_SPACE) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -190,10 +190,10 @@ void filemenu_yesno_draw_prompt_contents(
|
|||
filemenu_draw_message(filemenu_get_menu_message(FILE_MESSAGE_PERIOD_20), baseX + xOffset, baseY + 22, 0xFF, 0, 0);
|
||||
filemenu_draw_message(filemenu_get_menu_message(FILE_MESSAGE_OK), baseX + 70, baseY + 38, 0xFF, 0, 0);
|
||||
break;
|
||||
case 4:
|
||||
case FM_CONFIRM_START:
|
||||
filemenu_draw_message(filemenu_get_menu_message(FILE_MESSAGE_START_GAME_WITH), baseX + START_GAME_START_WITH_X, baseY + 4, 0xFF, 0, 0);
|
||||
filemenu_draw_message(filemenu_get_menu_message(FILE_MESSAGE_FILE_22), baseX + START_GAME_FILE_X, baseY + 4, 0xFF, 0, 0);
|
||||
draw_number(filemenu_menus[0]->selected + 1, baseX + START_GAME_NUMBER_X, baseY + 6 + NUMBER_OFFSET_Y, DRAW_NUMBER_CHARSET_NORMAL, MSG_PAL_WHITE, 0xFF, DRAW_NUMBER_STYLE_MONOSPACE | DRAW_NUMBER_STYLE_ALIGN_RIGHT);
|
||||
draw_number(filemenu_menus[FILE_MENU_MAIN]->selected + 1, baseX + START_GAME_NUMBER_X, baseY + 6 + NUMBER_OFFSET_Y, DRAW_NUMBER_CHARSET_NORMAL, MSG_PAL_WHITE, 0xFF, DRAW_NUMBER_STYLE_MONOSPACE | DRAW_NUMBER_STYLE_ALIGN_RIGHT);
|
||||
filemenu_draw_message(filemenu_get_menu_message(FILE_MESSAGE_QUESTION), baseX + START_GAME_QMARK_X, baseY + 4, 0xFF, 0, 0);
|
||||
break;
|
||||
}
|
||||
|
@ -237,7 +237,7 @@ void filemenu_yesno_handle_input(MenuPanel* menu) {
|
|||
sfx_play_sound(SOUND_MENU_CHANGE_SELECTION);
|
||||
}
|
||||
|
||||
if ((filemenu_pressedButtons & BUTTON_START) && menu->page == 4) {
|
||||
if ((filemenu_pressedButtons & BUTTON_START) && menu->state == FM_CONFIRM_START) {
|
||||
filemenu_set_selected(menu, 0, 0);
|
||||
filemenu_pressedButtons = BUTTON_A;
|
||||
}
|
||||
|
@ -252,25 +252,21 @@ void filemenu_yesno_handle_input(MenuPanel* menu) {
|
|||
sfx_play_sound(SOUND_MENU_NEXT);
|
||||
|
||||
switch (menu->selected) {
|
||||
case 0:
|
||||
switch (menu->page) {
|
||||
case 0:
|
||||
filemenu_currentMenu = 2;
|
||||
filemenu_menus[filemenu_currentMenu]->page = 0;
|
||||
case 0: // YES
|
||||
switch (menu->state) {
|
||||
case FM_CONFIRM_DELETE:
|
||||
filemenu_currentMenu = FILE_MENU_MESSAGE;
|
||||
filemenu_menus[FILE_MENU_MESSAGE]->state = FM_MESSAGE_DELETED;
|
||||
gWindows[WIN_FILES_MESSAGE].width = 182;
|
||||
gWindows[WIN_FILES_MESSAGE].height = 25;
|
||||
gWindows[WIN_FILES_MESSAGE].pos.x = ((gWindows[WIN_FILES_MESSAGE].parent != -1)
|
||||
? (gWindows[gWindows[WIN_FILES_MESSAGE].parent].width / 2)
|
||||
: SCREEN_WIDTH / 2) - gWindows[WIN_FILES_MESSAGE].width / 2;
|
||||
gWindows[WIN_FILES_MESSAGE].pos.y = ((gWindows[WIN_FILES_MESSAGE].parent != -1)
|
||||
? (gWindows[gWindows[WIN_FILES_MESSAGE].parent].height / 2)
|
||||
: SCREEN_HEIGHT / 2) - gWindows[WIN_FILES_MESSAGE].height / 2;
|
||||
gWindows[WIN_FILES_MESSAGE].pos.x = CENTER_WINDOW_X(WIN_FILES_MESSAGE);
|
||||
gWindows[WIN_FILES_MESSAGE].pos.y = CENTER_WINDOW_Y(WIN_FILES_MESSAGE);
|
||||
set_window_update(WIN_FILES_MESSAGE, WINDOW_UPDATE_SHOW);
|
||||
set_window_update(WIN_FILES_CONFIRM_OPTIONS, (s32)filemenu_update_hidden_name_confirm);
|
||||
|
||||
slot = filemenu_menus[0]->selected;
|
||||
slot = filemenu_menus[FILE_MENU_MAIN]->selected;
|
||||
for (i = 0; i < ARRAY_COUNT(gSaveSlotMetadata->filename); i++) {
|
||||
gSaveSlotMetadata[slot].filename[i] = 0xF7;
|
||||
gSaveSlotMetadata[slot].filename[i] = MSG_CHAR_READ_SPACE;
|
||||
}
|
||||
gSaveSlotMetadata[slot].level = 0;
|
||||
gSaveSlotMetadata[slot].timePlayed = 0;
|
||||
|
@ -278,17 +274,13 @@ void filemenu_yesno_handle_input(MenuPanel* menu) {
|
|||
fio_erase_game(slot);
|
||||
gSaveSlotHasData[slot] = FALSE;
|
||||
break;
|
||||
case 3:
|
||||
filemenu_currentMenu = 2;
|
||||
filemenu_menus[filemenu_currentMenu]->page = 2;
|
||||
case FM_CONFIRM_COPY:
|
||||
filemenu_currentMenu = FILE_MENU_MESSAGE;
|
||||
filemenu_menus[filemenu_currentMenu]->state = FM_MESSAGE_COPIED;
|
||||
gWindows[WIN_FILES_MESSAGE].width = 154;
|
||||
gWindows[WIN_FILES_MESSAGE].height = 39;
|
||||
gWindows[WIN_FILES_MESSAGE].pos.x = ((gWindows[WIN_FILES_MESSAGE].parent != -1)
|
||||
? (gWindows[gWindows[WIN_FILES_MESSAGE].parent].width / 2)
|
||||
: SCREEN_WIDTH / 2) - gWindows[WIN_FILES_MESSAGE].width / 2;
|
||||
gWindows[WIN_FILES_MESSAGE].pos.y = ((gWindows[WIN_FILES_MESSAGE].parent != -1)
|
||||
? (gWindows[gWindows[WIN_FILES_MESSAGE].parent].height / 2)
|
||||
: SCREEN_HEIGHT / 2) - gWindows[WIN_FILES_MESSAGE].height / 2;
|
||||
gWindows[WIN_FILES_MESSAGE].pos.x = CENTER_WINDOW_X(WIN_FILES_MESSAGE);
|
||||
gWindows[WIN_FILES_MESSAGE].pos.y = CENTER_WINDOW_Y(WIN_FILES_MESSAGE);
|
||||
set_window_update(WIN_FILES_MESSAGE, WINDOW_UPDATE_SHOW);
|
||||
set_window_update(WIN_FILES_CONFIRM_OPTIONS, (s32)filemenu_update_hidden_name_confirm);
|
||||
fio_load_game(filemenu_loadedFileIdx);
|
||||
|
@ -296,24 +288,20 @@ void filemenu_yesno_handle_input(MenuPanel* menu) {
|
|||
fio_save_game(filemenu_iterFileIdx);
|
||||
gSaveSlotHasData[filemenu_iterFileIdx] = TRUE;
|
||||
break;
|
||||
case 1:
|
||||
filemenu_currentMenu = 2;
|
||||
filemenu_menus[filemenu_currentMenu]->page = 1;
|
||||
case FM_CONFIRM_DUMMY:
|
||||
filemenu_currentMenu = FILE_MENU_MESSAGE;
|
||||
filemenu_menus[filemenu_currentMenu]->state = FM_MESSAGE_DUMMY;
|
||||
gWindows[WIN_FILES_MESSAGE].width = 153;
|
||||
gWindows[WIN_FILES_MESSAGE].height = 25;
|
||||
gWindows[WIN_FILES_MESSAGE].pos.x = ((gWindows[WIN_FILES_MESSAGE].parent != -1)
|
||||
? (gWindows[gWindows[WIN_FILES_MESSAGE].parent].width / 2)
|
||||
: SCREEN_WIDTH / 2) - gWindows[WIN_FILES_MESSAGE].width / 2;
|
||||
gWindows[WIN_FILES_MESSAGE].pos.y = ((gWindows[WIN_FILES_MESSAGE].parent != -1)
|
||||
? (gWindows[gWindows[WIN_FILES_MESSAGE].parent].height / 2)
|
||||
: SCREEN_HEIGHT / 2) - gWindows[WIN_FILES_MESSAGE].height / 2;
|
||||
gWindows[WIN_FILES_MESSAGE].pos.x = CENTER_WINDOW_X(WIN_FILES_MESSAGE);
|
||||
gWindows[WIN_FILES_MESSAGE].pos.y = CENTER_WINDOW_Y(WIN_FILES_MESSAGE);
|
||||
set_window_update(WIN_FILES_MESSAGE, WINDOW_UPDATE_SHOW);
|
||||
set_window_update(WIN_FILES_CONFIRM_OPTIONS, (s32)filemenu_update_hidden_name_confirm);
|
||||
gSaveSlotMetadata[filemenu_menus[0]->selected] = gSaveSlotMetadata[gGameStatusPtr->saveSlot];
|
||||
fio_save_game(filemenu_menus[0]->selected);
|
||||
gSaveSlotHasData[filemenu_menus[0]->selected] = TRUE;
|
||||
gSaveSlotMetadata[filemenu_menus[FILE_MENU_MAIN]->selected] = gSaveSlotMetadata[gGameStatusPtr->saveSlot];
|
||||
fio_save_game(filemenu_menus[FILE_MENU_MAIN]->selected);
|
||||
gSaveSlotHasData[filemenu_menus[FILE_MENU_MAIN]->selected] = TRUE;
|
||||
break;
|
||||
case 2:
|
||||
case FM_CONFIRM_CREATE:
|
||||
clear_player_data();
|
||||
clear_saved_variables();
|
||||
gGameStatusPtr->areaID = AREA_KMR;
|
||||
|
@ -321,7 +309,7 @@ void filemenu_yesno_handle_input(MenuPanel* menu) {
|
|||
gGameStatusPtr->entryID = 0;
|
||||
evt_set_variable(NULL, GB_StoryProgress, STORY_INTRO);
|
||||
|
||||
slot2 = filemenu_menus[0]->selected;
|
||||
slot2 = filemenu_menus[FILE_MENU_MAIN]->selected;
|
||||
for (i = 0; i < ARRAY_COUNT(gSaveSlotMetadata->filename); i++) {
|
||||
gSaveSlotMetadata[slot2].filename[i] = filemenu_filename[i];
|
||||
}
|
||||
|
@ -341,20 +329,16 @@ void filemenu_yesno_handle_input(MenuPanel* menu) {
|
|||
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 = 2;
|
||||
filemenu_menus[2]->page = 3;
|
||||
filemenu_currentMenu = FILE_MENU_MESSAGE;
|
||||
filemenu_menus[FILE_MENU_MESSAGE]->state = FM_MESSAGE_CREATED;
|
||||
gWindows[WIN_FILES_MESSAGE].width = 184;
|
||||
gWindows[WIN_FILES_MESSAGE].height = 25;
|
||||
gWindows[WIN_FILES_MESSAGE].pos.x = ((gWindows[WIN_FILES_MESSAGE].parent != -1)
|
||||
? (gWindows[gWindows[WIN_FILES_MESSAGE].parent].width / 2)
|
||||
: SCREEN_WIDTH / 2) - gWindows[WIN_FILES_MESSAGE].width / 2;
|
||||
gWindows[WIN_FILES_MESSAGE].pos.y = ((gWindows[WIN_FILES_MESSAGE].parent != -1)
|
||||
? (gWindows[gWindows[WIN_FILES_MESSAGE].parent].height / 2)
|
||||
: SCREEN_HEIGHT / 2) - gWindows[WIN_FILES_MESSAGE].height / 2;
|
||||
gWindows[WIN_FILES_MESSAGE].pos.x = CENTER_WINDOW_X(WIN_FILES_MESSAGE);
|
||||
gWindows[WIN_FILES_MESSAGE].pos.y = CENTER_WINDOW_Y(WIN_FILES_MESSAGE);
|
||||
set_window_update(WIN_FILES_MESSAGE, WINDOW_UPDATE_SHOW);
|
||||
break;
|
||||
case 4:
|
||||
slot3 = filemenu_menus[0]->selected;
|
||||
case FM_CONFIRM_START:
|
||||
slot3 = filemenu_menus[FILE_MENU_MAIN]->selected;
|
||||
if (gGameStatusPtr->soundOutputMode != 1 - gSaveGlobals.useMonoSound ||
|
||||
slot3 != (u8)gSaveGlobals.lastFileSelected)
|
||||
{
|
||||
|
@ -367,21 +351,21 @@ void filemenu_yesno_handle_input(MenuPanel* menu) {
|
|||
break;
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
switch (menu->page) {
|
||||
case 0:
|
||||
case 1:
|
||||
case 3:
|
||||
filemenu_currentMenu = 0;
|
||||
case 1: // NO
|
||||
switch (menu->state) {
|
||||
case FM_CONFIRM_DELETE:
|
||||
case FM_CONFIRM_DUMMY:
|
||||
case FM_CONFIRM_COPY:
|
||||
filemenu_currentMenu = FILE_MENU_MAIN;
|
||||
set_window_update(WIN_FILES_CONFIRM_OPTIONS, (s32)filemenu_update_hidden_name_confirm);
|
||||
break;
|
||||
case 2:
|
||||
filemenu_currentMenu = 3;
|
||||
case FM_CONFIRM_CREATE:
|
||||
filemenu_currentMenu = FILE_MENU_INPUT_NAME;
|
||||
set_window_update(WIN_FILES_CONFIRM_OPTIONS, (s32)filemenu_update_hidden_name_confirm);
|
||||
break;
|
||||
case 4:
|
||||
filemenu_currentMenu = 0;
|
||||
slot4 = filemenu_menus[0]->selected;
|
||||
case FM_CONFIRM_START:
|
||||
filemenu_currentMenu = FILE_MENU_MAIN;
|
||||
slot4 = filemenu_menus[FILE_MENU_MAIN]->selected;
|
||||
set_window_update(WIN_FILES_TITLE, (s32)filemenu_update_show_with_rotation);
|
||||
set_window_update(WIN_FILES_STEREO, (s32)filemenu_update_show_with_rotation);
|
||||
set_window_update(WIN_FILES_MONO, (s32)filemenu_update_show_with_rotation);
|
||||
|
@ -407,20 +391,20 @@ void filemenu_yesno_handle_input(MenuPanel* menu) {
|
|||
sfx_play_sound(SOUND_MENU_BACK);
|
||||
filemenu_set_selected(menu, 0, 1);
|
||||
|
||||
switch (menu->page) {
|
||||
case 0:
|
||||
case 1:
|
||||
case 3:
|
||||
filemenu_currentMenu = 0;
|
||||
switch (menu->state) {
|
||||
case FM_CONFIRM_DELETE:
|
||||
case FM_CONFIRM_DUMMY:
|
||||
case FM_CONFIRM_COPY:
|
||||
filemenu_currentMenu = FILE_MENU_MAIN;
|
||||
set_window_update(WIN_FILES_CONFIRM_OPTIONS, (s32)filemenu_update_hidden_name_confirm);
|
||||
break;
|
||||
case 2:
|
||||
filemenu_currentMenu = 3;
|
||||
case FM_CONFIRM_CREATE:
|
||||
filemenu_currentMenu = FILE_MENU_INPUT_NAME;
|
||||
set_window_update(WIN_FILES_CONFIRM_OPTIONS, (s32)filemenu_update_hidden_name_confirm);
|
||||
break;
|
||||
case 4:
|
||||
filemenu_currentMenu = 0;
|
||||
slot = filemenu_menus[0]->selected;
|
||||
case FM_CONFIRM_START:
|
||||
filemenu_currentMenu = FILE_MENU_MAIN;
|
||||
slot = filemenu_menus[FILE_MENU_MAIN]->selected;
|
||||
set_window_update(WIN_FILES_TITLE, (s32)filemenu_update_show_with_rotation);
|
||||
set_window_update(WIN_FILES_STEREO, (s32)filemenu_update_show_with_rotation);
|
||||
set_window_update(WIN_FILES_MONO, (s32)filemenu_update_show_with_rotation);
|
||||
|
|
|
@ -112,7 +112,7 @@ MenuPanel gPausePanelBadges = {
|
|||
.col = 0,
|
||||
.row = 0,
|
||||
.selected = 0,
|
||||
.page = 0,
|
||||
.state = 0,
|
||||
.numCols = 0,
|
||||
.numRows = 0,
|
||||
.numPages = 0,
|
||||
|
|
|
@ -54,7 +54,7 @@ MenuPanel gPausePanelItems = {
|
|||
.col = 0,
|
||||
.row = 0,
|
||||
.selected = 0,
|
||||
.page = 0,
|
||||
.state = 0,
|
||||
.numCols = 0,
|
||||
.numRows = 0,
|
||||
.numPages = 0,
|
||||
|
|
|
@ -219,7 +219,7 @@ void pause_set_cursor_pos_immediate(s32 windowID, s32 posX, s32 posY) {
|
|||
gPauseCursorTargetPosY = posY;
|
||||
gPauseCursorPosY = posY;
|
||||
|
||||
} else if ((window->flags & WINDOW_FLAG_INITIAL_ANIMATION) == 0 && (window->parent == -1 || !(gWindows[window->parent].flags & WINDOW_FLAG_INITIAL_ANIMATION))) {
|
||||
} else if ((window->flags & WINDOW_FLAG_INITIAL_ANIMATION) == 0 && (window->parent == WIN_NONE || !(gWindows[window->parent].flags & WINDOW_FLAG_INITIAL_ANIMATION))) {
|
||||
gPauseCursorTargetPosX = posX;
|
||||
gPauseCursorPosX = posX;
|
||||
gPauseCursorTargetPosY = posY;
|
||||
|
@ -240,7 +240,7 @@ void pause_set_cursor_pos(s32 windowID, s32 posX, s32 posY) {
|
|||
Window* window = &gWindows[i];
|
||||
s8 parent = window->parent;
|
||||
|
||||
if ((parent == -1 || parent == WIN_PAUSE_MAIN) && (window->flags & WINDOW_FLAG_INITIAL_ANIMATION)) {
|
||||
if ((parent == WIN_NONE || parent == WIN_PAUSE_MAIN) && (window->flags & WINDOW_FLAG_INITIAL_ANIMATION)) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -252,7 +252,7 @@ void pause_set_cursor_pos(s32 windowID, s32 posX, s32 posY) {
|
|||
gPauseCursorPosX = posX;
|
||||
gPauseCursorTargetPosY = posY;
|
||||
gPauseCursorPosY = posY;
|
||||
} else if ((window->flags & WINDOW_FLAG_INITIAL_ANIMATION) == 0 && (window->parent == -1 || !(gWindows[window->parent].flags & WINDOW_FLAG_INITIAL_ANIMATION))) {
|
||||
} else if ((window->flags & WINDOW_FLAG_INITIAL_ANIMATION) == 0 && (window->parent == WIN_NONE || !(gWindows[window->parent].flags & WINDOW_FLAG_INITIAL_ANIMATION))) {
|
||||
gPauseCursorTargetPosX = posX;
|
||||
gPauseCursorTargetPosY = posY;
|
||||
}
|
||||
|
|
|
@ -78,7 +78,7 @@ MenuPanel gPausePanelMap = {
|
|||
.col = 0,
|
||||
.row = 0,
|
||||
.selected = 0,
|
||||
.page = 0,
|
||||
.state = 0,
|
||||
.numCols = 0,
|
||||
.numRows = 0,
|
||||
.numPages = 0,
|
||||
|
|
|
@ -273,7 +273,7 @@ MenuPanel gPausePanelPartners = {
|
|||
.col = 0,
|
||||
.row = 1,
|
||||
.selected = 0,
|
||||
.page = 0,
|
||||
.state = 0,
|
||||
.numCols = 4,
|
||||
.numRows = 2,
|
||||
.numPages = 0,
|
||||
|
|
|
@ -132,7 +132,7 @@ MenuPanel gPausePanelSpirits = {
|
|||
.col = 2,
|
||||
.row = 0,
|
||||
.selected = 0,
|
||||
.page = 0,
|
||||
.state = 0,
|
||||
.numCols = 5,
|
||||
.numRows = 2,
|
||||
.numPages = 0,
|
||||
|
|
|
@ -151,7 +151,7 @@ MenuPanel gPausePanelStats = {
|
|||
.col = 0,
|
||||
.row = 0,
|
||||
.selected = 0,
|
||||
.page = 0,
|
||||
.state = 0,
|
||||
.numCols = 2,
|
||||
.numRows = 7,
|
||||
.numPages = 0,
|
||||
|
|
|
@ -187,7 +187,7 @@ MenuPanel gPausePanelTabs = {
|
|||
.col = 0,
|
||||
.row = 0,
|
||||
.selected = 0,
|
||||
.page = 0,
|
||||
.state = 0,
|
||||
.numCols = 6,
|
||||
.numRows = 1,
|
||||
.numPages = 0,
|
||||
|
|
|
@ -232,7 +232,7 @@ void state_init_exit_file_select(void) {
|
|||
D_800A0932[0] = 0;
|
||||
D_800A0930 = 0;
|
||||
|
||||
if (func_80244BC4() == 0) {
|
||||
if (filemenu_get_exit_mode() == 0) {
|
||||
set_map_transition_effect(TRANSITION_SLOW_FADE_TO_WHITE);
|
||||
} else {
|
||||
set_map_transition_effect(TRANSITION_ENTER_WORLD);
|
||||
|
@ -377,7 +377,7 @@ void state_step_exit_language_select(void) {
|
|||
}
|
||||
|
||||
void state_step_exit_file_select(void) {
|
||||
s32 temp_s0 = func_80244BC4();
|
||||
s32 exitMode = filemenu_get_exit_mode();
|
||||
s32 flagSum;
|
||||
s32 i;
|
||||
|
||||
|
@ -388,7 +388,7 @@ void state_step_exit_file_select(void) {
|
|||
for (i = 44; i < ARRAY_COUNT(gWindows); i++) {
|
||||
Window* window = &gWindows[i];
|
||||
|
||||
if (window->parent == WIN_FILES_MAIN || window->parent == -1) {
|
||||
if (window->parent == WIN_FILES_MAIN || window->parent == WIN_NONE) {
|
||||
flagSum += window->flags & WINDOW_FLAG_INITIAL_ANIMATION;
|
||||
}
|
||||
}
|
||||
|
@ -398,7 +398,7 @@ void state_step_exit_file_select(void) {
|
|||
}
|
||||
break;
|
||||
case 1:
|
||||
if (temp_s0 == 0 || update_exit_map_screen_overlay(D_800A0932) != 0) {
|
||||
if (exitMode == 0 || update_exit_map_screen_overlay(D_800A0932) != 0) {
|
||||
D_800A0931 = 2;
|
||||
}
|
||||
break;
|
||||
|
@ -408,7 +408,7 @@ void state_step_exit_file_select(void) {
|
|||
D_800A0931 = 3;
|
||||
case 3:
|
||||
set_time_freeze_mode(TIME_FREEZE_NONE);
|
||||
if (temp_s0 == 0) {
|
||||
if (exitMode == 0) {
|
||||
set_game_mode(GAME_MODE_TITLE_SCREEN);
|
||||
gOverrideFlags &= ~GLOBAL_OVERRIDES_WINDOWS_OVER_CURTAINS;
|
||||
} else {
|
||||
|
|
|
@ -321,7 +321,7 @@ void render_windows(s32* windowsArray, s32 parent, s32 flags, s32 baseX, s32 bas
|
|||
posY += baseY;
|
||||
}
|
||||
|
||||
if (parent == -1) {
|
||||
if (parent == WIN_NONE) {
|
||||
boxTranslateX = SCREEN_WIDTH;
|
||||
} else {
|
||||
boxTranslateX = window->width;
|
||||
|
|
|
@ -65,7 +65,7 @@ pause_handle_input = 0x80243BF4;
|
|||
pause_cleanup = 0x80243EC4;
|
||||
filemenu_init = 0x802440B0;
|
||||
filemenu_cleanup = 0x802442D0;
|
||||
func_80244BC4 = 0x80244394;
|
||||
filemenu_get_exit_mode = 0x80244394;
|
||||
heap_collisionHead = 0x80268000;
|
||||
shim_create_audio_system_obfuscated = 0x802B2000;
|
||||
shim_load_engine_data_obfuscated = 0x802B203C;
|
||||
|
|
|
@ -6343,7 +6343,7 @@ filemenu_draw_cursor = 0x80244030; // type:func rom:0x164890
|
|||
filemenu_draw_contents_copy_arrow = 0x802440BC; // type:func rom:0x16491C
|
||||
filemenu_init = 0x802448E0; // type:func rom:0x165140
|
||||
filemenu_cleanup = 0x80244B00; // type:func rom:0x165360
|
||||
func_80244BC4 = 0x80244BC4; // type:func rom:0x165424
|
||||
filemenu_get_exit_mode = 0x80244BC4; // type:func rom:0x165424
|
||||
filemenu_draw_contents_title = 0x80244C30; // type:func rom:0x165490
|
||||
filemenu_draw_contents_stereo = 0x80244CEC; // type:func rom:0x16554C
|
||||
filemenu_draw_contents_mono = 0x80244D60; // type:func rom:0x1655C0
|
||||
|
@ -9016,11 +9016,11 @@ func_802A2910 = 0x802A2910; // type:func rom:0x4176A0
|
|||
func_802A2AB8 = 0x802A2AB8; // type:func rom:0x417848
|
||||
func_802A2C58 = 0x802A2C58; // type:func rom:0x4179E8
|
||||
btl_submenu_moves_update = 0x802A2C84; // type:func rom:0x417A14
|
||||
func_802A3C98 = 0x802A3C98; // type:func rom:0x418A28
|
||||
func_802A43DC = 0x802A43DC; // type:func rom:0x41916C
|
||||
func_802A4448 = 0x802A4448; // type:func rom:0x4191D8
|
||||
func_802A4494 = 0x802A4494; // type:func rom:0x419224
|
||||
func_802A4534 = 0x802A4534; // type:func rom:0x4192C4
|
||||
btl_menu_moves_draw_content = 0x802A3C98; // type:func rom:0x418A28
|
||||
btl_menu_moves_show_title = 0x802A43DC; // type:func rom:0x41916C
|
||||
btl_menu_moves_show_icon = 0x802A4448; // type:func rom:0x4191D8
|
||||
btl_menu_moves_show_desc = 0x802A4494; // type:func rom:0x419224
|
||||
btl_menu_moves_show_error = 0x802A4534; // type:func rom:0x4192C4
|
||||
func_802A45D8 = 0x802A45D8; // type:func rom:0x419368
|
||||
func_802A4718 = 0x802A4718; // type:func rom:0x4194A8
|
||||
func_802A472C = 0x802A472C; // type:func rom:0x4194BC
|
||||
|
|
Loading…
Reference in New Issue