32extern u8 D_filemenu_802508D0[4];
33extern u8 D_filemenu_802508D4[4];
34extern u8 D_filemenu_802508D8[4];
35extern u8 D_filemenu_802508DC[4];
36extern u8 D_filemenu_802508E0[4];
37extern u8 D_filemenu_802508E4[4];
38extern u8 D_filemenu_802508E8[4];
39extern u8 D_filemenu_802508EC[4];
40extern u8 D_filemenu_802508F0[4];
41extern u8 D_filemenu_802508F4[4];
42extern u8 D_filemenu_80250938[4];
43extern u8 D_filemenu_8025093C[4];
44#define COPY_OFFSET_X (D_filemenu_8025093C[gCurrentLanguage])
45#define SAVE_OFFSET_X (D_filemenu_80250938[gCurrentLanguage])
47#define SAVE_OFFSET_X 25
48#define COPY_OFFSET_X 16
53#define LOCALE_FILE_NUMBER_X 33
58#define DELETE_OFFSET_X 9
59#define CENTER_CANCEL_X 30
60#define RIGHT_CANCEL_X 24
62#define FILE_NUMBER_X 36
64#define NUMBER_OFFSET_Y 1
67#define DELETE_OFFSET_X 8
68#define CENTER_CANCEL_X 18
69#define RIGHT_CANCEL_X 20
71#define FILE_NUMBER_X 33
73#define NUMBER_OFFSET_Y 0
123 0, 0, 1, 2, 2, 3, 4, 5, 6,
124 0, 0, 1, 2, 2, 3, 6, 6, 6,
125 0, 0, 1, 2, 2, 3, 6, 6, 6,
126 0, 0, 1, 2, 2, 3, 6, 6, 6,
128 0, 0, 1, 2, 2, 3, 6, 6, 6,
136 .pos = { .x = 0, .y = 0 },
150 .pos = { .x = -2, .y = 6 },
164 .pos = { .x = 221, .y = 6 },
178 .pos = { .x = 5, .y = 171 },
192 .pos = { .x = 0, .y = 171 },
206 .pos = { .x = 195, .y = 171 },
220 .pos = { .x = 9, .y = 110 },
234 .pos = { .x = 3, .y = -8 },
248 .pos = { .x = 149, .y = 110 },
262 .pos = { .x = 3, .y = -8 },
276 .pos = { .x = 9, .y = 41 },
290 .pos = { .x = 3, .y = -8 },
304 .pos = { .x = 149, .y = 41 },
318 .pos = { .x = 3, .y = -8 },
349 s32 baseX, s32 baseY,
350 s32 width, s32 height,
351 s32 opacity, s32 darkening
360 switch (menu->
state) {
394 s32 baseX, s32 baseY,
395 s32 width, s32 height,
396 s32 opacity, s32 darkening
409 s32 baseX, s32 baseY,
410 s32 width, s32 height,
411 s32 opacity, s32 darkening
424 s32 baseX, s32 baseY,
425 s32 width, s32 height,
426 s32 opacity, s32 darkening
428 if (menu->
col == 0 && menu->
row == 2) {
437 s32 baseX, s32 baseY,
438 s32 width, s32 height,
439 s32 opacity, s32 darkening
445 switch (menu->
state) {
452 if (menu->
col == 1 && menu->
row == 2) {
460 if (menu->
col == 1 && menu->
row == 2) {
471 s32 baseX, s32 baseY,
472 s32 width, s32 height,
473 s32 opacity, s32 darkening
479 switch (menu->
state) {
486 if (menu->
col == 1 && menu->
row == 2) {
494 if (menu->
col == 1 && menu->
row == 2) {
506 s32 baseX, s32 baseY,
507 s32 width, s32 height,
508 s32 opacity, s32 darkening
510 if (menu->
col == 2 && menu->
row == 2) {
518 s32 baseX, s32 baseY,
519 s32 width, s32 height,
520 s32 opacity, s32 darkening
529 const int MAX_DISPLAYED_TIME = 100*60*60*60 - 1;
582 if (temp_s3_2 > MAX_DISPLAYED_TIME) {
583 temp_s3_2 = MAX_DISPLAYED_TIME;
587 temp_s1_2 = temp_s3_2 / 216000;
591 temp_s0_3 = temp_s3_2 / 36000;
595 for (i = 0; i < 7; i++) {
614 s32 baseX, s32 baseY,
615 s32 width, s32 height,
616 s32 opacity, s32 darkening)
624 if (!gSaveSlotHasData[fileIdx]) {
631 baseX + tmp, baseY + 1, 255, 0, 1);
639 baseY + 1, 255, 0, 1, 9);
646 s32 baseX, s32 baseY,
647 s32 width, s32 height,
648 s32 opacity, s32 darkening)
670 s32 baseX, s32 baseY,
671 s32 width, s32 height,
672 s32 opacity, s32 darkening
679 s32 baseX, s32 baseY,
680 s32 width, s32 height,
681 s32 opacity, s32 darkening
688 s32 baseX, s32 baseY,
689 s32 width, s32 height,
690 s32 opacity, s32 darkening
697 s32 baseX, s32 baseY,
698 s32 width, s32 height,
699 s32 opacity, s32 darkening
706 s32 baseX, s32 baseY,
707 s32 width, s32 height,
708 s32 opacity, s32 darkening
715 s32 baseX, s32 baseY,
716 s32 width, s32 height,
717 s32 opacity, s32 darkening
724 s32 baseX, s32 baseY,
725 s32 width, s32 height,
726 s32 opacity, s32 darkening
733 s32 baseX, s32 baseY,
734 s32 width, s32 height,
735 s32 opacity, s32 darkening
772 s32 originalSelected = menu->
selected;
816 switch (menu->
state) {
819 if (menu->
col == 1 && (u8) menu->
row < 2) {
827 if (menu->
col == 1 && (u8) menu->
row < 2) {
831 if (menu->
row == 2) {
838 if (originalSelected != menu->
selected) {
867 switch (menu->
state) {
1070 switch (menu->
state) {
1085 switch (menu->
state) {
void audio_set_stereo(void)
void audio_set_mono(void)
WindowStyleCustom * customStyle
#define DX_MOD_NAME
Creates the version string that appears on the file select menu.
@ DRAW_NUMBER_STYLE_MONOSPACE
@ DRAW_NUMBER_CHARSET_THIN
@ FILE_MESSAGE_SELECT_FILE_TO_START
@ FILE_MESSAGE_COPY_WHICH_FILE
@ FILE_MESSAGE_DELETE_FILE
@ FILE_MESSAGE_COPY_TO_WHICH_FILE
@ FILE_MESSAGE_FIRST_PLAY
@ FILE_MESSAGE_SELECT_FILE_TO_DELETE
@ SOUND_FILE_MENU_MOVE_CURSOR
@ WIN_FILES_OPTION_CENTER
@ WIN_FILES_INPUT_KEYBOARD
@ WIN_FILES_CONFIRM_PROMPT
@ WIN_FILES_CONFIRM_OPTIONS
HudScript HES_OptionMonoOn_es
HudScript HES_Spirit6Missing
void filemenu_draw_contents_file_2_info(MenuPanel *menu, s32 baseX, s32 baseY, s32 width, s32 height, s32 opacity, s32 darkening)
HudScript HES_OptionStereoOn_fr
HudScript HES_Spirit1Missing
HudScript HES_Spirit5Missing
void filemenu_draw_contents_file_info(s32 fileIdx, MenuPanel *menu, s32 baseX, s32 baseY, s32 width, s32 height, s32 opacity, s32 darkening)
HudScript HES_Spirit4Missing
HudScript HES_OptionMonoOff
HudScript HES_OptionStereoOn_es
HudScript HES_Spirit3Missing
void filemenu_draw_contents_file_3_title(MenuPanel *menu, s32 baseX, s32 baseY, s32 width, s32 height, s32 opacity, s32 darkening)
void filemenu_draw_contents_option_left(MenuPanel *menu, s32 baseX, s32 baseY, s32 width, s32 height, s32 opacity, s32 darkening)
void filemenu_draw_contents_file_1_info(MenuPanel *menu, s32 baseX, s32 baseY, s32 width, s32 height, s32 opacity, s32 darkening)
void filemenu_draw_contents_option_right(MenuPanel *menu, s32 baseX, s32 baseY, s32 width, s32 height, s32 opacity, s32 darkening)
MenuPanel filemenu_main_menuBP
void filemenu_main_cleanup(MenuPanel *menu)
void filemenu_draw_contents_file_0_title(MenuPanel *menu, s32 baseX, s32 baseY, s32 width, s32 height, s32 opacity, s32 darkening)
void filemenu_draw_contents_file_title(s32 fileIdx, MenuPanel *menu, s32 baseX, s32 baseY, s32 width, s32 height, s32 opacity, s32 darkening)
HudScript * filemenu_main_hudScripts[][20]
HudScript HES_Spirit2Missing
HudScript HES_OptionStereoOn_de
HudScript HES_OptionStereoOff_fr
BSS u8 filemenu_filename[8]
void filemenu_draw_contents_stereo(MenuPanel *menu, s32 baseX, s32 baseY, s32 width, s32 height, s32 opacity, s32 darkening)
void filemenu_draw_contents_file_2_title(MenuPanel *menu, s32 baseX, s32 baseY, s32 width, s32 height, s32 opacity, s32 darkening)
HudScript HES_OptionStereoOff_es
HudScript HES_OptionMonoOn
HudScript HES_OptionMonoOff_de
MenuWindowBP filemenu_main_windowBPs[]
void filemenu_draw_contents_option_center(MenuPanel *menu, s32 baseX, s32 baseY, s32 width, s32 height, s32 opacity, s32 darkening)
void filemenu_draw_contents_title(MenuPanel *menu, s32 baseX, s32 baseY, s32 width, s32 height, s32 opacity, s32 darkening)
void filemenu_draw_contents_file_0_info(MenuPanel *menu, s32 baseX, s32 baseY, s32 width, s32 height, s32 opacity, s32 darkening)
void filemenu_main_handle_input(MenuPanel *menu)
HudScript HES_OptionStereoOn
void filemenu_main_init(MenuPanel *menu)
HudScript HES_JpFileDisabled
void filemenu_draw_contents_file_1_title(MenuPanel *menu, s32 baseX, s32 baseY, s32 width, s32 height, s32 opacity, s32 darkening)
HudScript HES_OptionMonoOff_es
HudScript HES_OptionStereoOff_de
void filemenu_main_update(MenuPanel *menu)
HudScript HES_OptionMonoOn_fr
void filemenu_draw_contents_mono(MenuPanel *menu, s32 baseX, s32 baseY, s32 width, s32 height, s32 opacity, s32 darkening)
u8 filemenu_main_gridData[]
HudScript HES_OptionMonoOn_de
HudScript HES_Spirit7Missing
HudScript HES_OptionMonoOff_fr
HudScript HES_OptionStereoOff
void filemenu_draw_contents_file_3_info(MenuPanel *menu, s32 baseX, s32 baseY, s32 width, s32 height, s32 opacity, s32 darkening)
b32 fio_load_game(s32 saveSlot)
void fio_save_game(s32 saveSlot)
SaveFileSummary gSaveSlotSummary[4]
SaveSlotMetadata gSaveSlotMetadata[4]
void set_window_update(s32 panelID, s32)
void filemenu_set_cursor_goal_pos(s32 windowIndex, s32 posX, s32 posY)
void setup_pause_menu_tab(MenuWindowBP *bpArray, s32 arraySize)
u8 * filemenu_get_menu_message(s32 idx)
void filemenu_set_selected(MenuPanel *menu, s32 col, s32 row)
void draw_number(s32 value, s32 x, s32 y, s32 variableWidthChars, s32 palette, s32 opacity, u16 style)
void set_game_mode(s32 modeID)
@ GAME_MODE_END_FILE_SELECT
void hud_element_draw_without_clipping(s32 id)
void hud_element_draw_next(s32 id)
void hud_element_set_render_pos(s32 id, s32 x, s32 y)
s32 hud_element_create(HudScript *anim)
Creates a new HUD element and returns its ID.
void hud_element_set_flags(s32 id, s32 flags)
Turns on the given flags.
void hud_element_free(s32 id)
void sfx_play_sound(s32 soundID)
#define MENU_PANEL_SELECTED_GRID_DATA(panel)
u8 * dx_string_to_msg(u8 *msg, const char *str)
GameStatus * gGameStatusPtr
WindowStyle gWindowStyles[]