sm64

A Super Mario 64 decompilation
Log | Files | Refs | README | LICENSE

file_select.h (3686B)


      1 #ifndef FILE_SELECT_H
      2 #define FILE_SELECT_H
      3 
      4 #include <PR/ultratypes.h>
      5 #include <PR/gbi.h>
      6 
      7 #include "types.h"
      8 
      9 #define MENU_LAYER_MAIN 1
     10 #define MENU_LAYER_SUBMENU 2
     11 
     12 #define MENU_ERASE_HOVER_NONE 0
     13 #define MENU_ERASE_HOVER_YES 1
     14 #define MENU_ERASE_HOVER_NO 2
     15 
     16 enum MainMenuButtonStates {
     17     MENU_BUTTON_STATE_DEFAULT,
     18     MENU_BUTTON_STATE_GROWING,
     19     MENU_BUTTON_STATE_FULLSCREEN,
     20     MENU_BUTTON_STATE_SHRINKING,
     21     MENU_BUTTON_STATE_ZOOM_IN_OUT,
     22     MENU_BUTTON_STATE_ZOOM_IN,
     23     MENU_BUTTON_STATE_ZOOM_OUT
     24 };
     25 
     26 enum MenuButtonTypes {
     27     MENU_BUTTON_NONE = -1, // no button selected (on main menu screen)
     28 
     29     // Main Menu (SELECT FILE)
     30     MENU_BUTTON_MAIN_MIN,
     31     MENU_BUTTON_PLAY_FILE_A = MENU_BUTTON_MAIN_MIN,
     32     MENU_BUTTON_PLAY_FILE_B,
     33     MENU_BUTTON_PLAY_FILE_C,
     34     MENU_BUTTON_PLAY_FILE_D,
     35     MENU_BUTTON_SCORE,
     36     MENU_BUTTON_COPY,
     37     MENU_BUTTON_ERASE,
     38     MENU_BUTTON_MAIN_MAX,
     39 
     40     // Score Menu (CHECK FILE)
     41     MENU_BUTTON_SCORE_MIN = MENU_BUTTON_MAIN_MAX,
     42     MENU_BUTTON_SCORE_FILE_A = MENU_BUTTON_SCORE_MIN,
     43     MENU_BUTTON_SCORE_FILE_B,
     44     MENU_BUTTON_SCORE_FILE_C,
     45     MENU_BUTTON_SCORE_FILE_D,
     46     MENU_BUTTON_SCORE_RETURN,
     47     MENU_BUTTON_SCORE_COPY_FILE,
     48     MENU_BUTTON_SCORE_ERASE_FILE,
     49     MENU_BUTTON_SCORE_MAX,
     50 
     51     // Copy Menu (COPY FILE)
     52     MENU_BUTTON_COPY_MIN = MENU_BUTTON_SCORE_MAX,
     53     MENU_BUTTON_COPY_FILE_A = MENU_BUTTON_COPY_MIN,
     54     MENU_BUTTON_COPY_FILE_B,
     55     MENU_BUTTON_COPY_FILE_C,
     56     MENU_BUTTON_COPY_FILE_D,
     57     MENU_BUTTON_COPY_RETURN,
     58     MENU_BUTTON_COPY_CHECK_SCORE,
     59     MENU_BUTTON_COPY_ERASE_FILE,
     60     MENU_BUTTON_COPY_MAX,
     61 
     62     // Erase Menu (ERASE FILE)
     63     MENU_BUTTON_ERASE_MIN = MENU_BUTTON_COPY_MAX,
     64     MENU_BUTTON_ERASE_FILE_A = MENU_BUTTON_ERASE_MIN,
     65     MENU_BUTTON_ERASE_FILE_B,
     66     MENU_BUTTON_ERASE_FILE_C,
     67     MENU_BUTTON_ERASE_FILE_D,
     68     MENU_BUTTON_ERASE_RETURN,
     69     MENU_BUTTON_ERASE_CHECK_SCORE,
     70     MENU_BUTTON_ERASE_COPY_FILE,
     71     MENU_BUTTON_ERASE_MAX,
     72 
     73     // Sound Mode Menu (SOUND SELECT)
     74     // This menu includes language settings on EU
     75     MENU_BUTTON_SOUND_MODE = MENU_BUTTON_ERASE_MAX,
     76     MENU_BUTTON_OPTION_MIN,
     77     MENU_BUTTON_STEREO = MENU_BUTTON_OPTION_MIN,
     78     MENU_BUTTON_MONO,
     79     MENU_BUTTON_HEADSET,
     80 
     81 #ifdef VERSION_EU
     82     // Language Menu
     83     MENU_BUTTON_LANGUAGE_MIN,
     84     MENU_BUTTON_LANGUAGE_ENGLISH = MENU_BUTTON_LANGUAGE_MIN,
     85     MENU_BUTTON_LANGUAGE_FRENCH,
     86     MENU_BUTTON_LANGUAGE_GERMAN,
     87     MENU_BUTTON_LANGUAGE_RETURN,
     88 #endif
     89 
     90     MENU_BUTTON_OPTION_MAX
     91 };
     92 
     93 enum ScoreMenuMessageID {
     94     SCORE_MSG_CHECK_FILE,
     95     SCORE_MSG_NOSAVE_DATA
     96 };
     97 
     98 enum CopyMenuMessageID {
     99     COPY_MSG_MAIN_TEXT,
    100     COPY_MSG_COPY_WHERE,
    101     COPY_MSG_NOSAVE_EXISTS,
    102     COPY_MSG_COPY_COMPLETE,
    103     COPY_MSG_SAVE_EXISTS
    104 };
    105 
    106 enum CopyMenuActionPhase {
    107     COPY_PHASE_MAIN,
    108     COPY_PHASE_COPY_WHERE,
    109     COPY_PHASE_COPY_COMPLETE
    110 };
    111 
    112 enum EraseMenuMessageID {
    113     ERASE_MSG_MAIN_TEXT,
    114     ERASE_MSG_PROMPT,
    115     ERASE_MSG_NOSAVE_EXISTS,
    116     ERASE_MSG_MARIO_ERASED,
    117     ERASE_MSG_SAVE_EXISTS
    118 };
    119 
    120 enum EraseMenuActionPhase {
    121     ERASE_PHASE_MAIN,
    122     ERASE_PHASE_PROMPT,
    123     ERASE_PHASE_MARIO_ERASED
    124 };
    125 
    126 enum SoundModeMenuActionPhase {
    127     SOUND_MODE_PHASE_MAIN
    128 };
    129 
    130 void beh_yellow_background_menu_init(void);
    131 void beh_yellow_background_menu_loop(void);
    132 void bhv_menu_button_init(void);
    133 void bhv_menu_button_loop(void);
    134 void bhv_menu_button_manager_init(void);
    135 void bhv_menu_button_manager_loop(void);
    136 Gfx *geo_file_select_strings_and_menu_cursor(s32 callContext, UNUSED struct GraphNode *node, UNUSED Mat4 mtx);
    137 s32 lvl_init_menu_values_and_cursor_pos(UNUSED s32 arg, UNUSED s32 unused);
    138 s32 lvl_update_obj_and_load_file_selected(UNUSED s32 arg, UNUSED s32 unused);
    139 
    140 #endif // FILE_SELECT_H