Paper Mario DX
Paper Mario (N64) modding
 
Loading...
Searching...
No Matches
filemenu_main.c File Reference

Go to the source code of this file.

Macros

#define SAVE_OFFSET_X   25
 
#define COPY_OFFSET_X   16
 
#define LOCALE_FILE_NUMBER_X   33
 
#define OFFSET_WIDTH   0
 
#define DELETE_OFFSET_X   8
 
#define CENTER_CANCEL_X   18
 
#define RIGHT_CANCEL_X   20
 
#define FILE_X   5
 
#define FILE_NUMBER_X   33
 
#define FILE_NAME_X   46
 
#define NUMBER_OFFSET_Y   0
 

Functions

void filemenu_draw_contents_title (MenuPanel *menu, s32 baseX, s32 baseY, s32 width, s32 height, s32 opacity, s32 darkening)
 
void filemenu_draw_contents_stereo (MenuPanel *menu, s32 baseX, s32 baseY, s32 width, s32 height, s32 opacity, s32 darkening)
 
void filemenu_draw_contents_mono (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_option_center (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)
 
void filemenu_draw_contents_file_info (s32 fileIdx, 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)
 
void filemenu_draw_contents_file_0_info (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_file_2_info (MenuPanel *menu, s32 baseX, s32 baseY, s32 width, s32 height, s32 opacity, s32 darkening)
 
void filemenu_draw_contents_file_3_info (MenuPanel *menu, s32 baseX, s32 baseY, s32 width, s32 height, s32 opacity, s32 darkening)
 
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_1_title (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)
 
void filemenu_draw_contents_file_3_title (MenuPanel *menu, s32 baseX, s32 baseY, s32 width, s32 height, s32 opacity, s32 darkening)
 
void filemenu_main_init (MenuPanel *menu)
 
void filemenu_main_handle_input (MenuPanel *menu)
 
void filemenu_main_update (MenuPanel *menu)
 
void filemenu_main_cleanup (MenuPanel *menu)
 

Variables

HudScript HES_Spirit1
 
HudScript HES_Spirit2
 
HudScript HES_Spirit3
 
HudScript HES_Spirit4
 
HudScript HES_Spirit5
 
HudScript HES_Spirit6
 
HudScript HES_Spirit7
 
HudScript HES_Spirit1Missing
 
HudScript HES_Spirit2Missing
 
HudScript HES_Spirit3Missing
 
HudScript HES_Spirit4Missing
 
HudScript HES_Spirit5Missing
 
HudScript HES_Spirit6Missing
 
HudScript HES_Spirit7Missing
 
HudScript HES_JpFile
 
HudScript HES_JpFileDisabled
 
HudScript HES_OptionMonoOn
 
HudScript HES_OptionMonoOff
 
HudScript HES_OptionStereoOn
 
HudScript HES_OptionStereoOff
 
BSS u8 filemenu_filename [8]
 
HudScript HES_OptionMonoOn_de
 
HudScript HES_OptionMonoOff_de
 
HudScript HES_OptionStereoOn_de
 
HudScript HES_OptionStereoOff_de
 
HudScript HES_OptionMonoOn_fr
 
HudScript HES_OptionMonoOff_fr
 
HudScript HES_OptionStereoOn_fr
 
HudScript HES_OptionStereoOff_fr
 
HudScript HES_OptionMonoOn_es
 
HudScript HES_OptionMonoOff_es
 
HudScript HES_OptionStereoOn_es
 
HudScript HES_OptionStereoOff_es
 
HudScriptfilemenu_main_hudScripts [][20]
 
u8 filemenu_main_gridData []
 
MenuWindowBP filemenu_main_windowBPs []
 
MenuPanel filemenu_main_menuBP
 

Macro Definition Documentation

◆ SAVE_OFFSET_X

#define SAVE_OFFSET_X   25

Definition at line 47 of file filemenu_main.c.

Referenced by filemenu_draw_contents_title().

◆ COPY_OFFSET_X

#define COPY_OFFSET_X   16

Definition at line 48 of file filemenu_main.c.

Referenced by filemenu_draw_contents_title().

◆ LOCALE_FILE_NUMBER_X

#define LOCALE_FILE_NUMBER_X   33

Definition at line 53 of file filemenu_main.c.

◆ OFFSET_WIDTH

#define OFFSET_WIDTH   0

Definition at line 66 of file filemenu_main.c.

Referenced by filemenu_draw_contents_option_left().

◆ DELETE_OFFSET_X

#define DELETE_OFFSET_X   8

Definition at line 67 of file filemenu_main.c.

Referenced by filemenu_draw_contents_title().

◆ CENTER_CANCEL_X

#define CENTER_CANCEL_X   18

Definition at line 68 of file filemenu_main.c.

Referenced by filemenu_draw_contents_option_center().

◆ RIGHT_CANCEL_X

#define RIGHT_CANCEL_X   20

Definition at line 69 of file filemenu_main.c.

Referenced by filemenu_draw_contents_option_right().

◆ FILE_X

#define FILE_X   5

Definition at line 70 of file filemenu_main.c.

Referenced by filemenu_draw_contents_file_title().

◆ FILE_NUMBER_X

#define FILE_NUMBER_X   33

Definition at line 71 of file filemenu_main.c.

Referenced by filemenu_draw_contents_file_title().

◆ FILE_NAME_X

#define FILE_NAME_X   46

Definition at line 72 of file filemenu_main.c.

Referenced by filemenu_draw_contents_file_title().

◆ NUMBER_OFFSET_Y

#define NUMBER_OFFSET_Y   0

Function Documentation

◆ filemenu_draw_contents_title()

void filemenu_draw_contents_title ( MenuPanel * menu,
s32 baseX,
s32 baseY,
s32 width,
s32 height,
s32 opacity,
s32 darkening )

Definition at line 347 of file filemenu_main.c.

352 {
353 char strBuf[64];
354 u8 msgBuf[64];
355 s32 msgWidth;
356 s32 msgIdx;
357 s32 xOffset;
358 s32 yOffset;
359
360 switch (menu->state) {
361 default:
364 xOffset = 9;
365 yOffset = 4;
366 break;
369 xOffset = DELETE_OFFSET_X;
370 yOffset = 4;
371 break;
374 xOffset = SAVE_OFFSET_X;
375 yOffset = 4;
376 break;
379 xOffset = COPY_OFFSET_X;
380 yOffset = 4;
381 break;
382 }
383
384 filemenu_draw_message(filemenu_get_menu_message(msgIdx), baseX + xOffset, baseY + yOffset, 255, 0, 0);
385
386 sprintf(strBuf, "%s (v%d.%d.%d)", DX_MOD_NAME, DX_MOD_VER_MAJOR, DX_MOD_VER_MINOR, DX_MOD_VER_PATCH);
387 dx_string_to_msg(msgBuf, strBuf);
388 msgWidth = get_msg_width((s32)msgBuf, 0);
389 filemenu_draw_message(msgBuf, (SCREEN_WIDTH - msgWidth) / 2, 245 - baseY, 255, 0, 0);
390}
#define DX_MOD_VER_MAJOR
Definition config.h:8
#define DX_MOD_NAME
Creates the version string that appears on the file select menu.
Definition config.h:7
#define DX_MOD_VER_PATCH
Definition config.h:10
#define DX_MOD_VER_MINOR
Definition config.h:9
#define get_msg_width
@ FILE_MESSAGE_SELECT_FILE_TO_START
Definition enums.h:5336
@ FILE_MESSAGE_COPY_WHICH_FILE
Definition enums.h:5341
@ FILE_MESSAGE_COPY_TO_WHICH_FILE
Definition enums.h:5342
@ FILE_MESSAGE_SELECT_FILE_TO_DELETE
Definition enums.h:5337
@ FM_MAIN_SELECT_FILE
Definition filemenu.h:25
@ FM_MAIN_SELECT_COPY_TO
Definition filemenu.h:28
@ FM_MAIN_SELECT_DELETE
Definition filemenu.h:26
@ FM_MAIN_SELECT_COPY_FROM
Definition filemenu.h:27
void filemenu_draw_message(u8 *, s32, s32, s32, s32, u32)
#define SAVE_OFFSET_X
#define DELETE_OFFSET_X
#define COPY_OFFSET_X
u8 * filemenu_get_menu_message(s32 idx)
#define SCREEN_WIDTH
Definition macros.h:109
u8 * dx_string_to_msg(u8 *msg, const char *str)
Definition utils.c:16

◆ filemenu_draw_contents_stereo()

void filemenu_draw_contents_stereo ( MenuPanel * menu,
s32 baseX,
s32 baseY,
s32 width,
s32 height,
s32 opacity,
s32 darkening )

Definition at line 392 of file filemenu_main.c.

397 {
399 hud_element_set_render_pos(filemenu_mainHIDs[18], baseX + 34, baseY + 10);
401 } else {
402 hud_element_set_render_pos(filemenu_mainHIDs[19], baseX + 34, baseY + 10);
404 }
405}
@ SOUND_OUT_STEREO
Definition enums.h:278
HudElemID filemenu_mainHIDs[20]
void hud_element_draw_without_clipping(s32 id)
void hud_element_set_render_pos(s32 id, s32 x, s32 y)
GameStatus * gGameStatusPtr
Definition main_loop.c:32

◆ filemenu_draw_contents_mono()

void filemenu_draw_contents_mono ( MenuPanel * menu,
s32 baseX,
s32 baseY,
s32 width,
s32 height,
s32 opacity,
s32 darkening )

Definition at line 407 of file filemenu_main.c.

412 {
414 hud_element_set_render_pos(filemenu_mainHIDs[16], baseX + 34, baseY + 10);
416 } else {
417 hud_element_set_render_pos(filemenu_mainHIDs[17], baseX + 34, baseY + 10);
419 }
420}
@ SOUND_OUT_MONO
Definition enums.h:277

◆ filemenu_draw_contents_option_left()

void filemenu_draw_contents_option_left ( MenuPanel * menu,
s32 baseX,
s32 baseY,
s32 width,
s32 height,
s32 opacity,
s32 darkening )

Definition at line 422 of file filemenu_main.c.

427 {
428 if (menu->col == 0 && menu->row == 2) {
430 }
432}
@ FILE_MESSAGE_DELETE_FILE
Definition enums.h:5346
@ WIN_FILES_OPTION_LEFT
Definition enums.h:5296
#define OFFSET_WIDTH
void filemenu_set_cursor_goal_pos(s32 windowIndex, s32 posX, s32 posY)

◆ filemenu_draw_contents_option_center()

void filemenu_draw_contents_option_center ( MenuPanel * menu,
s32 baseX,
s32 baseY,
s32 width,
s32 height,
s32 opacity,
s32 darkening )

Definition at line 469 of file filemenu_main.c.

474 {
475 s32 msgIdx;
476 s32 xOffset;
477 s32 yOffset;
478
479 switch (menu->state) {
483 msgIdx = FILE_MESSAGE_CANCEL;
484 xOffset = CENTER_CANCEL_X;
485 yOffset = 0;
486 if (menu->col == 1 && menu->row == 2) {
488 }
489 break;
490 default:
491 msgIdx = FILE_MESSAGE_COPY_FILE;
492 xOffset = 14;
493 yOffset = 0;
494 if (menu->col == 1 && menu->row == 2) {
496 }
497 break;
498 }
499
500 filemenu_draw_message(filemenu_get_menu_message(msgIdx), baseX + xOffset, baseY + yOffset + 2, 255, 0, 1);
501}
@ FILE_MESSAGE_COPY_FILE
Definition enums.h:5348
@ FILE_MESSAGE_CANCEL
Definition enums.h:5347
@ WIN_FILES_OPTION_CENTER
Definition enums.h:5297
#define CENTER_CANCEL_X

◆ filemenu_draw_contents_option_right()

void filemenu_draw_contents_option_right ( MenuPanel * menu,
s32 baseX,
s32 baseY,
s32 width,
s32 height,
s32 opacity,
s32 darkening )

Definition at line 504 of file filemenu_main.c.

509 {
510 if (menu->col == 2 && menu->row == 2) {
512 }
514}
@ WIN_FILES_OPTION_RIGHT
Definition enums.h:5298
#define RIGHT_CANCEL_X

◆ filemenu_draw_contents_file_info()

void filemenu_draw_contents_file_info ( s32 fileIdx,
MenuPanel * menu,
s32 baseX,
s32 baseY,
s32 width,
s32 height,
s32 opacity,
s32 darkening )

Definition at line 516 of file filemenu_main.c.

521 {
522 s32 xOffset;
523 s32 temp_s0_3;
524 s32 temp_s1_2;
525 s32 temp_s3_2;
526 s32 temp_s3;
527 s32 id;
528 s32 i;
529 const int MAX_DISPLAYED_TIME = 100*60*60*60 - 1; // 100 hours minus one frame at 60 fps
530
531 if (!gSaveSlotMetadata[fileIdx].hasData) {
532#if VERSION_PAL
533 xOffset = D_filemenu_802508E0[gCurrentLanguage];
534#else
535 xOffset = 50;
536#endif
537 filemenu_draw_message(filemenu_get_menu_message(FILE_MESSAGE_NEW), baseX + xOffset, baseY + 20, 255, 0xA, 0);
538 return;
539 }
540
541 // do not show file summary from mods that don't match the current one
542 if (!gSaveSlotMetadata[fileIdx].validData) {
543 u8 buf[32];
544 if (gSaveSlotMetadata[fileIdx].modName[0] == '\0') {
545 dx_string_to_msg(buf, "Paper Mario");
546 } else {
547 dx_string_to_msg(buf, gSaveSlotMetadata[fileIdx].modName);
548 }
549 xOffset = 66 - get_msg_width((s32)&buf, 0) / 2;
550 filemenu_draw_message(buf, baseX + xOffset, baseY + 20, 255, MSG_PAL_RED, 0);
551 return;
552 }
553
554 if (gSaveSlotSummary[fileIdx].timePlayed == 0) {
555#if VERSION_PAL
556 xOffset = D_filemenu_802508E4[gCurrentLanguage];
557#else
558 xOffset = 30;
559#endif
560 filemenu_draw_message(filemenu_get_menu_message(FILE_MESSAGE_FIRST_PLAY), baseX + xOffset, baseY + 20, 255, 0xA, 0);
561 return;
562 }
563
564#if VERSION_PAL
565 xOffset = D_filemenu_802508D8[gCurrentLanguage];
566#else
567 xOffset = 34;
568#endif
569 filemenu_draw_message(filemenu_get_menu_message(FILE_MESSAGE_LEVEL), baseX + xOffset, baseY + 10, 255, 0xA, 1);
570 temp_s3_2 = gSaveSlotSummary[fileIdx].level;
571 temp_s3 = temp_s3_2;
574#if VERSION_PAL
575 xOffset = D_filemenu_802508DC[gCurrentLanguage];
576#else
577 xOffset = 11;
578#endif
579 filemenu_draw_message(filemenu_get_menu_message(FILE_MESSAGE_PLAY_TIME), baseX + xOffset, baseY + 24, 255, 0xA, 1);
580
581 temp_s3_2 = gSaveSlotSummary[fileIdx].timePlayed;
582 if (temp_s3_2 > MAX_DISPLAYED_TIME) {
583 temp_s3_2 = MAX_DISPLAYED_TIME;
584 }
585
586 draw_number((temp_s3_2 / 2160000) % 10, baseX + 76, baseY + 24 + NUMBER_OFFSET_Y, DRAW_NUMBER_CHARSET_THIN, MSG_PAL_STANDARD, 255, DRAW_NUMBER_STYLE_MONOSPACE);
587 temp_s1_2 = temp_s3_2 / 216000;
588 draw_number(temp_s1_2 - ((temp_s3_2 / 2160000) * 10), baseX + 85, baseY + 24 + NUMBER_OFFSET_Y, DRAW_NUMBER_CHARSET_THIN, MSG_PAL_STANDARD, 255, DRAW_NUMBER_STYLE_MONOSPACE);
589 filemenu_draw_message(filemenu_get_menu_message(FILE_MESSAGE_PERIOD_13), baseX + 95, baseY + 23, 255, 0xA, 1);
590 filemenu_draw_message(filemenu_get_menu_message(FILE_MESSAGE_PERIOD_13), baseX + 95, baseY + 18, 255, 0xA, 1);
591 temp_s0_3 = temp_s3_2 / 36000;
592 draw_number(temp_s0_3 - (temp_s1_2 * 6), baseX + 100, baseY + 24 + NUMBER_OFFSET_Y, DRAW_NUMBER_CHARSET_THIN, MSG_PAL_STANDARD, 255, DRAW_NUMBER_STYLE_MONOSPACE);
593 draw_number((temp_s3_2 / 3600) - (temp_s0_3 * 10), baseX + 109, baseY + 24 + NUMBER_OFFSET_Y, DRAW_NUMBER_CHARSET_THIN, MSG_PAL_STANDARD, 255, DRAW_NUMBER_STYLE_MONOSPACE);
594
595 for (i = 0; i < 7; i++) {
596 if (i < gSaveSlotSummary[fileIdx].spiritsRescued) {
597 id = filemenu_mainHIDs[i];
598 } else {
599 id = filemenu_mainHIDs[i + 7];
600 }
601 hud_element_set_render_pos(id, baseX + 17 + (i * 16), baseY + 44);
602 if (i == 0) {
604 } else {
606 }
607 }
608}
@ DRAW_NUMBER_STYLE_MONOSPACE
Definition enums.h:5393
@ MSG_PAL_STANDARD
Definition enums.h:5414
@ MSG_PAL_RED
Definition enums.h:5411
@ DRAW_NUMBER_CHARSET_THIN
Definition enums.h:5400
@ FILE_MESSAGE_NEW
Definition enums.h:5343
@ FILE_MESSAGE_PERIOD_13
Definition enums.h:5350
@ FILE_MESSAGE_LEVEL
Definition enums.h:5344
@ FILE_MESSAGE_PLAY_TIME
Definition enums.h:5345
@ FILE_MESSAGE_FIRST_PLAY
Definition enums.h:5349
#define NUMBER_OFFSET_Y
SaveFileSummary gSaveSlotSummary[4]
SaveSlotMetadata gSaveSlotMetadata[4]
void draw_number(s32 value, s32 x, s32 y, s32 variableWidthChars, s32 palette, s32 opacity, u16 style)
Definition msg.c:2223
void hud_element_draw_next(s32 id)
#define gCurrentLanguage
Definition variables.h:115

Referenced by filemenu_draw_contents_file_0_info(), filemenu_draw_contents_file_1_info(), filemenu_draw_contents_file_2_info(), and filemenu_draw_contents_file_3_info().

◆ filemenu_draw_contents_file_title()

void filemenu_draw_contents_file_title ( s32 fileIdx,
MenuPanel * menu,
s32 baseX,
s32 baseY,
s32 width,
s32 height,
s32 opacity,
s32 darkening )

Definition at line 643 of file filemenu_main.c.

649{
650 if (filemenu_currentMenu == FILE_MENU_MAIN && menu->selected == fileIdx) {
651 filemenu_set_cursor_goal_pos(fileIdx + 60, baseX - 3, baseY + 8);
652 }
653
655
656 if (!gSaveSlotMetadata[fileIdx].hasData) {
658 } else {
661 gSaveSlotSummary[fileIdx].filename,
662 ARRAY_COUNT(gSaveSlotSummary[fileIdx].filename),
663 baseX + FILE_NAME_X, baseY + 1, 255, 0, 1, 9);
664 }
665}
@ MSG_PAL_WHITE
Definition enums.h:5404
@ FILE_MESSAGE_FILE_26
Definition enums.h:5363
void filemenu_draw_file_name(u8 *, s32, s32, s32, s32, s32, s32, s32)
@ FILE_MENU_MAIN
Definition filemenu.h:18
s8 filemenu_currentMenu
#define FILE_NUMBER_X
#define FILE_NAME_X
#define FILE_X
#define ARRAY_COUNT(arr)
Definition macros.h:40

Referenced by filemenu_draw_contents_file_0_title(), filemenu_draw_contents_file_1_title(), filemenu_draw_contents_file_2_title(), and filemenu_draw_contents_file_3_title().

◆ filemenu_draw_contents_file_0_info()

void filemenu_draw_contents_file_0_info ( MenuPanel * menu,
s32 baseX,
s32 baseY,
s32 width,
s32 height,
s32 opacity,
s32 darkening )

Definition at line 668 of file filemenu_main.c.

673 {
674 filemenu_draw_contents_file_info(0, menu, baseX, baseY, width, height, opacity, darkening);
675}
void filemenu_draw_contents_file_info(s32 fileIdx, MenuPanel *menu, s32 baseX, s32 baseY, s32 width, s32 height, s32 opacity, s32 darkening)

◆ filemenu_draw_contents_file_1_info()

void filemenu_draw_contents_file_1_info ( MenuPanel * menu,
s32 baseX,
s32 baseY,
s32 width,
s32 height,
s32 opacity,
s32 darkening )

Definition at line 677 of file filemenu_main.c.

682 {
683 filemenu_draw_contents_file_info(1, menu, baseX, baseY, width, height, opacity, darkening);
684}

◆ filemenu_draw_contents_file_2_info()

void filemenu_draw_contents_file_2_info ( MenuPanel * menu,
s32 baseX,
s32 baseY,
s32 width,
s32 height,
s32 opacity,
s32 darkening )

Definition at line 686 of file filemenu_main.c.

691 {
692 filemenu_draw_contents_file_info(2, menu, baseX, baseY, width, height, opacity, darkening);
693}

◆ filemenu_draw_contents_file_3_info()

void filemenu_draw_contents_file_3_info ( MenuPanel * menu,
s32 baseX,
s32 baseY,
s32 width,
s32 height,
s32 opacity,
s32 darkening )

Definition at line 695 of file filemenu_main.c.

700 {
701 filemenu_draw_contents_file_info(3, menu, baseX, baseY, width, height, opacity, darkening);
702}

◆ filemenu_draw_contents_file_0_title()

void filemenu_draw_contents_file_0_title ( MenuPanel * menu,
s32 baseX,
s32 baseY,
s32 width,
s32 height,
s32 opacity,
s32 darkening )

Definition at line 704 of file filemenu_main.c.

709 {
710 filemenu_draw_contents_file_title(0, menu, baseX, baseY, width, height, opacity, darkening);
711}
void filemenu_draw_contents_file_title(s32 fileIdx, MenuPanel *menu, s32 baseX, s32 baseY, s32 width, s32 height, s32 opacity, s32 darkening)

◆ filemenu_draw_contents_file_1_title()

void filemenu_draw_contents_file_1_title ( MenuPanel * menu,
s32 baseX,
s32 baseY,
s32 width,
s32 height,
s32 opacity,
s32 darkening )

Definition at line 713 of file filemenu_main.c.

718 {
719 filemenu_draw_contents_file_title(1, menu, baseX, baseY, width, height, opacity, darkening);
720}

◆ filemenu_draw_contents_file_2_title()

void filemenu_draw_contents_file_2_title ( MenuPanel * menu,
s32 baseX,
s32 baseY,
s32 width,
s32 height,
s32 opacity,
s32 darkening )

Definition at line 722 of file filemenu_main.c.

727 {
728 filemenu_draw_contents_file_title(2, menu, baseX, baseY, width, height, opacity, darkening);
729}

◆ filemenu_draw_contents_file_3_title()

void filemenu_draw_contents_file_3_title ( MenuPanel * menu,
s32 baseX,
s32 baseY,
s32 width,
s32 height,
s32 opacity,
s32 darkening )

Definition at line 731 of file filemenu_main.c.

736 {
737 filemenu_draw_contents_file_title(3, menu, baseX, baseY, width, height, opacity, darkening);
738}

◆ filemenu_main_init()

void filemenu_main_init ( MenuPanel * menu)

Definition at line 740 of file filemenu_main.c.

740 {
741 s32 i;
742
743 for (i = 0; i < ARRAY_COUNT(filemenu_mainHIDs); i++) {
746 }
747
748 for (i = 0; i < ARRAY_COUNT(filemenu_main_windowBPs); i++) {
750 }
751
754
758
761
762 if (menu->state != FM_MAIN_SELECT_FILE) {
767 }
768 menu->initialized = TRUE;
769}
@ WINDOW_UPDATE_HIDE
Definition enums.h:5311
@ WIN_FILES_TITLE
Definition enums.h:5288
@ WIN_FILES_STEREO
Definition enums.h:5294
@ WIN_FILES_MONO
Definition enums.h:5295
#define CENTER_WINDOW_X(id)
Definition filemenu.h:7
HudScript * filemenu_main_hudScripts[][20]
MenuWindowBP filemenu_main_windowBPs[]
void set_window_update(s32 panelID, s32)
Definition windows.c:434
void setup_pause_menu_tab(MenuWindowBP *bpArray, s32 arraySize)
Definition windows.c:461
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.
@ HUD_ELEMENT_FLAG_80
Definition hud_element.h:78
#define MENU_PANEL_SELECTED_GRID_DATA(panel)
Definition macros.h:76
MenuPanel * tab
Window gWindows[64]
Definition windows.c:23

◆ filemenu_main_handle_input()

void filemenu_main_handle_input ( MenuPanel * menu)

Definition at line 771 of file filemenu_main.c.

771 {
772 s32 originalSelected = menu->selected;
773 s32 i;
774
776 while (TRUE) {
777 menu->col--;
778 if (menu->col < 0) {
779 menu->col = 0;
780 break;
781 }
782 if (menu->selected != MENU_PANEL_SELECTED_GRID_DATA(menu)) {
783 break;
784 }
785 }
786 }
787
789 while (TRUE) {
790 menu->col++;
791 if (menu->col >= menu->numCols) {
792 menu->col = menu->numCols - 1;
793 break;
794 }
795
796 if (menu->selected != MENU_PANEL_SELECTED_GRID_DATA(menu)) {
797 break;
798 }
799 }
800 }
801
803 menu->row--;
804 if (menu->row < 0) {
805 menu->row = 0;
806 }
807 }
808
810 menu->row++;
811 if (menu->row >= menu->numRows) {
812 menu->row = menu->numRows - 1;
813 }
814 }
815
816 switch (menu->state) {
818 // force selection to column 0 when navigating up from bottom row
819 if (menu->col == 1 && (u8) menu->row < 2) {
820 menu->col = 0;
821 }
822 break;
826 // force selection to column 0 when navigating up from bottom row
827 if (menu->col == 1 && (u8) menu->row < 2) {
828 menu->col = 0;
829 }
830 // force selection to column 1 when navigating down to bottom row
831 if (menu->row == 2) {
832 menu->col = 1;
833 }
834 break;
835 }
836
838 if (originalSelected != menu->selected) {
840 }
841
842 if (menu->state == FM_MAIN_SELECT_FILE) {
843 s32 originalOutputMode = gGameStatusPtr->soundOutputMode;
844
847 }
850 }
851
852 if (originalOutputMode != gGameStatusPtr->soundOutputMode) {
856 } else {
858 }
859 }
860 }
861
864 }
865
867 switch (menu->state) {
870 // selected a file with no data
871 for (i = 0; i < ARRAY_COUNT(filemenu_filename); i++) {
873 }
892 break;
893 }
894
895 if (menu->selected == FM_MAIN_OPT_CANCEL) {
896 // selected "Cancel" button
909 } else if (menu->selected == FM_MAIN_OPT_DELETE) {
910 // selected "Delete File" button
913 filemenu_set_selected(menu, 1, 2);
918 } else if (menu->selected == FM_MAIN_OPT_COPY) {
919 // selected "Copy File" button
922 filemenu_set_selected(menu, 1, 2);
927 } else if (menu->selected <= FM_MAIN_OPT_FILE_4) {
928 // selected a file
944
949
954
959 } else {
961 }
962 }
963 break;
965 if (menu->selected == FM_MAIN_OPT_CANCEL) {
966 // selected "Cancel" button
973 filemenu_set_selected(menu, 0, 2);
974 } else if (menu->selected <= FM_MAIN_OPT_FILE_4) {
975 // selected a file
979
984
989
993 } else {
995 }
996 }
997 break;
999 if (menu->selected == FM_MAIN_OPT_CANCEL) {
1000 // selected "Cancel" button
1002 menu->state = FM_MAIN_SELECT_FILE;
1007 filemenu_set_selected(menu, 0, 1);
1008 } else if (menu->selected <= FM_MAIN_OPT_FILE_4) {
1009 // selected a file
1010 if (gSaveSlotMetadata[menu->selected].hasData) {
1014 } else {
1016 }
1017 }
1018 break;
1020 if (menu->selected == FM_MAIN_OPT_CANCEL) {
1021 // selected "Cancel" button
1024 filemenu_set_selected(menu, 0, 2);
1025 } else if (menu->selected <= FM_MAIN_OPT_FILE_4) {
1026 // selected a file
1027 if (filemenu_CopyFromFileIdx == menu->selected) {
1029 } else {
1031 if (!gSaveSlotMetadata[menu->selected].hasData) {
1039
1046 } else {
1053
1058
1062 }
1063 }
1064 }
1065 break;
1066 }
1067 }
1068
1070 switch (menu->state) {
1072 filemenu_set_selected(menu, 2, 2);
1073 break;
1075 filemenu_set_selected(menu, 1, 2);
1076 break;
1078 filemenu_set_selected(menu, 1, 2);
1079 break;
1081 filemenu_set_selected(menu, 1, 2);
1082 break;
1083 }
1084
1085 switch (menu->state) {
1099 break;
1101 menu->state = FM_MAIN_SELECT_FILE;
1102 filemenu_set_selected(menu, 0, 2);
1108 break;
1110 menu->state = FM_MAIN_SELECT_FILE;
1111 filemenu_set_selected(menu, 1, 2);
1117 break;
1122 break;
1123 }
1124 }
1125}
void audio_set_stereo(void)
Definition 30450.c:839
void audio_set_mono(void)
Definition 30450.c:844
@ BUTTON_A
Definition enums.h:2790
@ BUTTON_START
Definition enums.h:2787
@ BUTTON_R
Definition enums.h:2781
@ BUTTON_STICK_UP
Definition enums.h:2791
@ BUTTON_STICK_DOWN
Definition enums.h:2792
@ BUTTON_STICK_LEFT
Definition enums.h:2793
@ BUTTON_STICK_RIGHT
Definition enums.h:2794
@ BUTTON_B
Definition enums.h:2789
@ BUTTON_Z
Definition enums.h:2788
@ WINDOW_UPDATE_SHOW
Definition enums.h:5310
@ SOUND_MENU_BACK
Definition enums.h:701
@ SOUND_FILE_MENU_MOVE_CURSOR
Definition enums.h:1539
@ SOUND_MENU_CHANGE_TAB
Definition enums.h:699
@ SOUND_MENU_NEXT
Definition enums.h:700
@ SOUND_FILE_MENU_OUT
Definition enums.h:711
@ SOUND_MENU_ERROR
Definition enums.h:933
@ MSG_CHAR_READ_SPACE
Definition enums.h:6049
@ WIN_FILES_SLOT3_BODY
Definition enums.h:5301
@ WIN_FILES_MESSAGE
Definition enums.h:5290
@ WIN_FILES_INPUT_FIELD
Definition enums.h:5291
@ WIN_FILES_SLOT1_BODY
Definition enums.h:5299
@ WIN_FILES_SLOT2_BODY
Definition enums.h:5300
@ WIN_FILES_INPUT_KEYBOARD
Definition enums.h:5292
@ WIN_FILES_CONFIRM_PROMPT
Definition enums.h:5289
@ WIN_FILES_CONFIRM_OPTIONS
Definition enums.h:5293
@ WIN_FILES_SLOT4_BODY
Definition enums.h:5302
@ FILE_MENU_INPUT_NAME
Definition filemenu.h:21
@ FILE_MENU_CONFIRM
Definition filemenu.h:19
@ FILE_MENU_MESSAGE
Definition filemenu.h:20
void filemenu_update_hidden_with_rotation(s32 windowIdx, s32 *flags, s32 *posX, s32 *posY, s32 *posZ, f32 *scaleX, f32 *scaleY, f32 *rotX, f32 *rotY, f32 *rotZ, s32 *darkening, s32 *opacity)
@ FM_MESSAGE_COPIED
Definition filemenu.h:36
@ FM_CONFIRM_START
Definition filemenu.h:33
@ FM_CONFIRM_COPY
Definition filemenu.h:32
@ FM_INPUT_CHARSET_A
Definition filemenu.h:39
@ FM_CONFIRM_DELETE
Definition filemenu.h:30
void filemenu_update_hidden_options_left(s32 windowIdx, s32 *flags, s32 *posX, s32 *posY, s32 *posZ, f32 *scaleX, f32 *scaleY, f32 *rotX, f32 *rotY, f32 *rotZ, s32 *darkening, s32 *opacity)
s32 filemenu_heldButtons
MenuPanel * filemenu_menus[]
s32 filemenu_CopyFromFileIdx
@ FM_MAIN_OPT_DELETE
Definition filemenu.h:48
@ FM_MAIN_OPT_COPY
Definition filemenu.h:49
@ FM_MAIN_OPT_FILE_4
Definition filemenu.h:47
@ FM_MAIN_OPT_CANCEL
Definition filemenu.h:50
void filemenu_update_hidden_options_bottom(s32 windowIdx, s32 *flags, s32 *posX, s32 *posY, s32 *posZ, f32 *scaleX, f32 *scaleY, f32 *rotX, f32 *rotY, f32 *rotZ, s32 *darkening, s32 *opacity)
void filemenu_update_show_options_left(s32 windowIdx, s32 *flags, s32 *posX, s32 *posY, s32 *posZ, f32 *scaleX, f32 *scaleY, f32 *rotX, f32 *rotY, f32 *rotZ, s32 *darkening, s32 *opacity)
void filemenu_update_hidden_title(s32 windowIdx, s32 *flags, s32 *posX, s32 *posY, s32 *posZ, f32 *scaleX, f32 *scaleY, f32 *rotX, f32 *rotY, f32 *rotZ, s32 *darkening, s32 *opacity)
void filemenu_update_show_options_right(s32 windowIdx, s32 *flags, s32 *posX, s32 *posY, s32 *posZ, f32 *scaleX, f32 *scaleY, f32 *rotX, f32 *rotY, f32 *rotZ, s32 *darkening, s32 *opacity)
void filemenu_update_show_name_confirm(s32 windowIdx, s32 *flags, s32 *posX, s32 *posY, s32 *posZ, f32 *scaleX, f32 *scaleY, f32 *rotX, f32 *rotY, f32 *rotZ, s32 *darkening, s32 *opacity)
void filemenu_update_select_file(s32 windowIdx, s32 *flags, s32 *posX, s32 *posY, s32 *posZ, f32 *scaleX, f32 *scaleY, f32 *rotX, f32 *rotY, f32 *rotZ, s32 *darkening, s32 *opacity)
void filemenu_update_hidden_options_right(s32 windowIdx, s32 *flags, s32 *posX, s32 *posY, s32 *posZ, f32 *scaleX, f32 *scaleY, f32 *rotX, f32 *rotY, f32 *rotZ, s32 *darkening, s32 *opacity)
s32 filemenu_CopyToFileIdx
s8 filemenu_filename_pos
void filemenu_update_show_options_bottom(s32 windowIdx, s32 *flags, s32 *posX, s32 *posY, s32 *posZ, f32 *scaleX, f32 *scaleY, f32 *rotX, f32 *rotY, f32 *rotZ, s32 *darkening, s32 *opacity)
void filemenu_update_show_name_input(s32 windowIdx, s32 *flags, s32 *posX, s32 *posY, s32 *posZ, f32 *scaleX, f32 *scaleY, f32 *rotX, f32 *rotY, f32 *rotZ, s32 *darkening, s32 *opacity)
#define CENTER_WINDOW_Y(id)
Definition filemenu.h:12
s32 filemenu_pressedButtons
BSS u8 filemenu_filename[8]
b32 fio_load_game(s32 saveSlot)
Definition fio.c:167
void fio_save_game(s32 saveSlot)
Definition fio.c:184
void filemenu_set_selected(MenuPanel *menu, s32 col, s32 row)
void set_game_mode(s32 modeID)
Definition game_modes.c:127
@ GAME_MODE_END_FILE_SELECT
Definition game_modes.h:20
void sfx_play_sound(s32 soundID)
Definition sfx.c:517

◆ filemenu_main_update()

void filemenu_main_update ( MenuPanel * menu)

Definition at line 1127 of file filemenu_main.c.

1127 {
1128 // set default styles for all file slot panels
1137
1138 // modify style for selected file slot panel to add highlight
1139 switch (menu->selected) {
1140 case FM_MAIN_OPT_FILE_1:
1143 break;
1144 case FM_MAIN_OPT_FILE_2:
1147 break;
1148 case FM_MAIN_OPT_FILE_3:
1151 break;
1152 case FM_MAIN_OPT_FILE_4:
1155 break;
1156 }
1157
1158 // also add highlight to "copy to" target
1160 switch (filemenu_CopyFromFileIdx) {
1161 case FM_MAIN_OPT_FILE_1:
1164 return;
1165 case FM_MAIN_OPT_FILE_2:
1168 return;
1169 case FM_MAIN_OPT_FILE_3:
1172 return;
1173 case FM_MAIN_OPT_FILE_4:
1176 return;
1177 }
1178 }
1179}
WindowStyleCustom * customStyle
@ WIN_FILES_SLOT2_TITLE
Definition enums.h:5304
@ WIN_FILES_SLOT3_TITLE
Definition enums.h:5305
@ WIN_FILES_SLOT4_TITLE
Definition enums.h:5306
@ WIN_FILES_SLOT1_TITLE
Definition enums.h:5303
WindowStyleCustom filemenu_windowStyles[]
@ FM_MAIN_OPT_FILE_1
Definition filemenu.h:44
@ FM_MAIN_OPT_FILE_3
Definition filemenu.h:46
@ FM_MAIN_OPT_FILE_2
Definition filemenu.h:45
WindowStyle gWindowStyles[]
Definition windows.c:25

◆ filemenu_main_cleanup()

void filemenu_main_cleanup ( MenuPanel * menu)

Definition at line 1181 of file filemenu_main.c.

1181 {
1182 s32 i;
1183
1184 for (i = 0; i < ARRAY_COUNT(filemenu_mainHIDs); i++) {
1186 }
1187}
void hud_element_free(s32 id)

Variable Documentation

◆ HES_Spirit1

HudScript HES_Spirit1
extern

Definition at line 151 of file menu_hud_scripts.c.

◆ HES_Spirit2

HudScript HES_Spirit2
extern

Definition at line 155 of file menu_hud_scripts.c.

◆ HES_Spirit3

HudScript HES_Spirit3
extern

Definition at line 159 of file menu_hud_scripts.c.

◆ HES_Spirit4

HudScript HES_Spirit4
extern

Definition at line 163 of file menu_hud_scripts.c.

◆ HES_Spirit5

HudScript HES_Spirit5
extern

Definition at line 167 of file menu_hud_scripts.c.

◆ HES_Spirit6

HudScript HES_Spirit6
extern

Definition at line 171 of file menu_hud_scripts.c.

◆ HES_Spirit7

HudScript HES_Spirit7
extern

Definition at line 175 of file menu_hud_scripts.c.

◆ HES_Spirit1Missing

HudScript HES_Spirit1Missing
extern

Definition at line 153 of file menu_hud_scripts.c.

◆ HES_Spirit2Missing

HudScript HES_Spirit2Missing
extern

Definition at line 157 of file menu_hud_scripts.c.

◆ HES_Spirit3Missing

HudScript HES_Spirit3Missing
extern

Definition at line 161 of file menu_hud_scripts.c.

◆ HES_Spirit4Missing

HudScript HES_Spirit4Missing
extern

Definition at line 165 of file menu_hud_scripts.c.

◆ HES_Spirit5Missing

HudScript HES_Spirit5Missing
extern

Definition at line 169 of file menu_hud_scripts.c.

◆ HES_Spirit6Missing

HudScript HES_Spirit6Missing
extern

Definition at line 173 of file menu_hud_scripts.c.

◆ HES_Spirit7Missing

HudScript HES_Spirit7Missing
extern

Definition at line 177 of file menu_hud_scripts.c.

◆ HES_JpFile

HudScript HES_JpFile
extern

Definition at line 122 of file menu_hud_scripts.c.

◆ HES_JpFileDisabled

HudScript HES_JpFileDisabled
extern

Definition at line 124 of file menu_hud_scripts.c.

◆ HES_OptionMonoOn

HudScript HES_OptionMonoOn
extern

Definition at line 126 of file menu_hud_scripts.c.

◆ HES_OptionMonoOff

HudScript HES_OptionMonoOff
extern

Definition at line 128 of file menu_hud_scripts.c.

◆ HES_OptionStereoOn

HudScript HES_OptionStereoOn
extern

Definition at line 130 of file menu_hud_scripts.c.

◆ HES_OptionStereoOff

HudScript HES_OptionStereoOff
extern

Definition at line 132 of file menu_hud_scripts.c.

◆ filemenu_filename

◆ HES_OptionMonoOn_de

HudScript HES_OptionMonoOn_de
extern

◆ HES_OptionMonoOff_de

HudScript HES_OptionMonoOff_de
extern

◆ HES_OptionStereoOn_de

HudScript HES_OptionStereoOn_de
extern

◆ HES_OptionStereoOff_de

HudScript HES_OptionStereoOff_de
extern

◆ HES_OptionMonoOn_fr

HudScript HES_OptionMonoOn_fr
extern

◆ HES_OptionMonoOff_fr

HudScript HES_OptionMonoOff_fr
extern

◆ HES_OptionStereoOn_fr

HudScript HES_OptionStereoOn_fr
extern

◆ HES_OptionStereoOff_fr

HudScript HES_OptionStereoOff_fr
extern

◆ HES_OptionMonoOn_es

HudScript HES_OptionMonoOn_es
extern

◆ HES_OptionMonoOff_es

HudScript HES_OptionMonoOff_es
extern

◆ HES_OptionStereoOn_es

HudScript HES_OptionStereoOn_es
extern

◆ HES_OptionStereoOff_es

HudScript HES_OptionStereoOff_es
extern

◆ filemenu_main_hudScripts

HudScript* filemenu_main_hudScripts[][20]

Definition at line 89 of file filemenu_main.c.

89 {
96 },
97#if VERSION_PAL
98 [LANGUAGE_DE] = {
104 },
105 [LANGUAGE_FR] = {
111 },
112 [LANGUAGE_ES] = {
118 }
119#endif
120};
@ LANGUAGE_DE
Definition enums.h:6400
@ LANGUAGE_ES
Definition enums.h:6402
@ LANGUAGE_FR
Definition enums.h:6401
#define LANGUAGE_DEFAULT
Definition enums.h:6397
HudScript HES_OptionMonoOn_es
HudScript HES_Spirit6Missing
HudScript HES_OptionStereoOn_fr
HudScript HES_Spirit1Missing
HudScript HES_Spirit5Missing
HudScript HES_Spirit4Missing
HudScript HES_OptionMonoOff
HudScript HES_OptionStereoOn_es
HudScript HES_Spirit5
HudScript HES_Spirit3Missing
HudScript HES_JpFile
HudScript HES_Spirit2
HudScript HES_Spirit7
HudScript HES_Spirit3
HudScript HES_Spirit2Missing
HudScript HES_Spirit6
HudScript HES_OptionStereoOn_de
HudScript HES_Spirit1
HudScript HES_OptionStereoOff_fr
HudScript HES_Spirit4
HudScript HES_OptionStereoOff_es
HudScript HES_OptionMonoOn
HudScript HES_OptionMonoOff_de
HudScript HES_OptionStereoOn
HudScript HES_JpFileDisabled
HudScript HES_OptionMonoOff_es
HudScript HES_OptionStereoOff_de
HudScript HES_OptionMonoOn_fr
HudScript HES_OptionMonoOn_de
HudScript HES_Spirit7Missing
HudScript HES_OptionMonoOff_fr
HudScript HES_OptionStereoOff

Referenced by filemenu_main_init().

◆ filemenu_main_gridData

u8 filemenu_main_gridData[]
Initial value:
= {
0, 0, 1, 2, 2, 3, 4, 5, 6,
0, 0, 1, 2, 2, 3, 6, 6, 6,
0, 0, 1, 2, 2, 3, 6, 6, 6,
0, 0, 1, 2, 2, 3, 6, 6, 6,
0, 0, 1, 2, 2, 3, 6, 6, 6,
}

Definition at line 122 of file filemenu_main.c.

122 {
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,
127#if !VERSION_PAL
128 0, 0, 1, 2, 2, 3, 6, 6, 6,
129#endif
130};

◆ filemenu_main_windowBPs

MenuWindowBP filemenu_main_windowBPs[]

Definition at line 132 of file filemenu_main.c.

132 {
133 {
134 .windowID = WIN_FILES_TITLE,
135 .unk_01 = 0,
136 .pos = { .x = 0, .y = 0 },
137 .width = 0,
138 .height = 0,
139 .priority = WINDOW_PRIORITY_0,
140 .fpDrawContents = &filemenu_draw_contents_title,
141 .tab = NULL,
142 .parentID = WIN_FILES_MAIN,
143 .fpUpdate = { .func = &filemenu_update_show_title },
144 .extraFlags = 0,
145 .style = { .customStyle = &filemenu_windowStyles[3] }
146 },
147 {
148 .windowID = WIN_FILES_STEREO,
149 .unk_01 = 0,
150 .pos = { .x = -2, .y = 6 },
151 .width = 68,
152 .height = 20,
153 .priority = WINDOW_PRIORITY_0,
154 .fpDrawContents = &filemenu_draw_contents_stereo,
155 .tab = NULL,
156 .parentID = WIN_FILES_MAIN,
157 .fpUpdate = { .func = &filemenu_update_show_options_left },
158 .extraFlags = 0,
159 .style = { .customStyle = &filemenu_windowStyles[2] }
160 },
161 {
162 .windowID = WIN_FILES_MONO,
163 .unk_01 = 0,
164 .pos = { .x = 221, .y = 6 },
165 .width = 68,
166 .height = 20,
167 .priority = WINDOW_PRIORITY_0,
168 .fpDrawContents = &filemenu_draw_contents_mono,
169 .tab = NULL,
170 .parentID = WIN_FILES_MAIN,
171 .fpUpdate = { .func = &filemenu_update_show_options_right },
172 .extraFlags = 0,
173 .style = { .customStyle = &filemenu_windowStyles[2] }
174 },
175 {
176 .windowID = WIN_FILES_OPTION_LEFT,
177 .unk_01 = 0,
178 .pos = { .x = 5, .y = 171 },
179 .width = 88,
180 .height = 16,
181 .priority = WINDOW_PRIORITY_0,
182 .fpDrawContents = &filemenu_draw_contents_option_left,
183 .tab = NULL,
184 .parentID = WIN_FILES_MAIN,
185 .fpUpdate = { .func = &filemenu_update_show_options_bottom },
186 .extraFlags = 0,
187 .style = { .customStyle = &filemenu_windowStyles[4] }
188 },
189 {
190 .windowID = WIN_FILES_OPTION_CENTER,
191 .unk_01 = 0,
192 .pos = { .x = 0, .y = 171 },
193 .width = 88,
194 .height = 16,
195 .priority = WINDOW_PRIORITY_0,
196 .fpDrawContents = &filemenu_draw_contents_option_center,
197 .tab = NULL,
198 .parentID = WIN_FILES_MAIN,
199 .fpUpdate = { .func = &filemenu_update_show_options_bottom },
200 .extraFlags = 0,
201 .style = { .customStyle = &filemenu_windowStyles[5] }
202 },
203 {
204 .windowID = WIN_FILES_OPTION_RIGHT,
205 .unk_01 = 0,
206 .pos = { .x = 195, .y = 171 },
207 .width = 88,
208 .height = 16,
209 .priority = WINDOW_PRIORITY_0,
210 .fpDrawContents = &filemenu_draw_contents_option_right,
211 .tab = NULL,
212 .parentID = WIN_FILES_MAIN,
213 .fpUpdate = { .func = &filemenu_update_show_options_bottom },
214 .extraFlags = 0,
215 .style = { .customStyle = &filemenu_windowStyles[6] }
216 },
217 {
218 .windowID = WIN_FILES_SLOT3_BODY,
219 .unk_01 = 0,
220 .pos = { .x = 9, .y = 110 },
221 .width = 130,
222 .height = 54,
223 .priority = WINDOW_PRIORITY_0,
224 .fpDrawContents = &filemenu_draw_contents_file_2_info,
225 .tab = NULL,
226 .parentID = WIN_FILES_MAIN,
227 .fpUpdate = { .func = &filemenu_update_show_options_left },
228 .extraFlags = 0,
229 .style = { .customStyle = &filemenu_windowStyles[9] }
230 },
231 {
232 .windowID = WIN_FILES_SLOT3_TITLE,
233 .unk_01 = 0,
234 .pos = { .x = 3, .y = -8 },
235 .width = 124 + OFFSET_WIDTH,
236 .height = 15,
237 .priority = WINDOW_PRIORITY_0,
238 .fpDrawContents = &filemenu_draw_contents_file_2_title,
239 .tab = NULL,
240 .parentID = WIN_FILES_SLOT3_BODY,
241 .fpUpdate = { WINDOW_UPDATE_SHOW },
242 .extraFlags = 0,
243 .style = { .customStyle = &filemenu_windowStyles[13] }
244 },
245 {
246 .windowID = WIN_FILES_SLOT4_BODY,
247 .unk_01 = 0,
248 .pos = { .x = 149, .y = 110 },
249 .width = 130,
250 .height = 54,
251 .priority = WINDOW_PRIORITY_0,
252 .fpDrawContents = &filemenu_draw_contents_file_3_info,
253 .tab = NULL,
254 .parentID = WIN_FILES_MAIN,
255 .fpUpdate = { .func = &filemenu_update_show_options_right },
256 .extraFlags = 0,
257 .style = { .customStyle = &filemenu_windowStyles[10] }
258 },
259 {
260 .windowID = WIN_FILES_SLOT4_TITLE,
261 .unk_01 = 0,
262 .pos = { .x = 3, .y = -8 },
263 .width = 124 + OFFSET_WIDTH,
264 .height = 15,
265 .priority = WINDOW_PRIORITY_0,
266 .fpDrawContents = &filemenu_draw_contents_file_3_title,
267 .tab = NULL,
268 .parentID = WIN_FILES_SLOT4_BODY,
269 .fpUpdate = { WINDOW_UPDATE_SHOW },
270 .extraFlags = 0,
271 .style = { .customStyle = &filemenu_windowStyles[14] }
272 },
273 {
274 .windowID = WIN_FILES_SLOT1_BODY,
275 .unk_01 = 0,
276 .pos = { .x = 9, .y = 41 },
277 .width = 130 + OFFSET_WIDTH,
278 .height = 54,
279 .priority = WINDOW_PRIORITY_0,
280 .fpDrawContents = &filemenu_draw_contents_file_0_info,
281 .tab = NULL,
282 .parentID = WIN_FILES_MAIN,
283 .fpUpdate = { .func = &filemenu_update_show_options_left },
284 .extraFlags = 0,
285 .style = { .customStyle = &filemenu_windowStyles[7] }
286 },
287 {
288 .windowID = WIN_FILES_SLOT1_TITLE,
289 .unk_01 = 0,
290 .pos = { .x = 3, .y = -8 },
291 .width = 124 + OFFSET_WIDTH,
292 .height = 15,
293 .priority = WINDOW_PRIORITY_0,
294 .fpDrawContents = &filemenu_draw_contents_file_0_title,
295 .tab = NULL,
296 .parentID = WIN_FILES_SLOT1_BODY,
297 .fpUpdate = { WINDOW_UPDATE_SHOW },
298 .extraFlags = 0,
299 .style = { .customStyle = &filemenu_windowStyles[11] }
300 },
301 {
302 .windowID = WIN_FILES_SLOT2_BODY,
303 .unk_01 = 0,
304 .pos = { .x = 149, .y = 41 },
305 .width = 130,
306 .height = 54,
307 .priority = WINDOW_PRIORITY_0,
308 .fpDrawContents = &filemenu_draw_contents_file_1_info,
309 .tab = NULL,
310 .parentID = WIN_FILES_MAIN,
311 .fpUpdate = { .func = &filemenu_update_show_options_right },
312 .extraFlags = 0,
313 .style = { .customStyle = &filemenu_windowStyles[8] }
314 },
315 {
316 .windowID = WIN_FILES_SLOT2_TITLE,
317 .unk_01 = 0,
318 .pos = { .x = 3, .y = -8 },
319 .width = 124 + OFFSET_WIDTH,
320 .height = 15,
321 .priority = WINDOW_PRIORITY_0,
322 .fpDrawContents = &filemenu_draw_contents_file_1_title,
323 .tab = NULL,
324 .parentID = WIN_FILES_SLOT2_BODY,
325 .fpUpdate = { WINDOW_UPDATE_SHOW },
326 .extraFlags = 0,
327 .style = { .customStyle = &filemenu_windowStyles[12] }
328 },
329};
@ WINDOW_PRIORITY_0
Definition enums.h:3182
@ WIN_FILES_MAIN
Definition enums.h:5287
void filemenu_update_show_title(s32 windowIdx, s32 *flags, s32 *posX, s32 *posY, s32 *posZ, f32 *scaleX, f32 *scaleY, f32 *rotX, f32 *rotY, f32 *rotZ, s32 *darkening, s32 *opacity)
void filemenu_draw_contents_file_2_info(MenuPanel *menu, s32 baseX, s32 baseY, s32 width, s32 height, s32 opacity, s32 darkening)
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)
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_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)
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_draw_contents_file_1_title(MenuPanel *menu, s32 baseX, s32 baseY, s32 width, s32 height, s32 opacity, s32 darkening)
void filemenu_draw_contents_mono(MenuPanel *menu, s32 baseX, s32 baseY, s32 width, s32 height, s32 opacity, s32 darkening)
void filemenu_draw_contents_file_3_info(MenuPanel *menu, s32 baseX, s32 baseY, s32 width, s32 height, s32 opacity, s32 darkening)

Referenced by filemenu_main_init().

◆ filemenu_main_menuBP

MenuPanel filemenu_main_menuBP
Initial value:
= {
.initialized = FALSE,
.col = 0,
.row = 0,
.selected = 0,
.state = 0,
.numCols = 3,
.numRows = 3,
.numPages = 0,
.fpInit = &filemenu_main_init,
.fpHandleInput = &filemenu_main_handle_input,
.fpUpdate = &filemenu_main_update,
.fpCleanup = &filemenu_main_cleanup
}
void filemenu_main_cleanup(MenuPanel *menu)
void filemenu_main_handle_input(MenuPanel *menu)
void filemenu_main_init(MenuPanel *menu)
void filemenu_main_update(MenuPanel *menu)
u8 filemenu_main_gridData[]

Definition at line 331 of file filemenu_main.c.

331 {
332 .initialized = FALSE,
333 .col = 0,
334 .row = 0,
335 .selected = 0,
336 .state = 0,
337 .numCols = 3,
338 .numRows = 3,
339 .numPages = 0,
340 .gridData = filemenu_main_gridData,
341 .fpInit = &filemenu_main_init,
342 .fpHandleInput = &filemenu_main_handle_input,
343 .fpUpdate = &filemenu_main_update,
344 .fpCleanup = &filemenu_main_cleanup
345};