Super Mario 64 OpenGL port for PC. Mirror of https://github.com/sm64pc/sm64pc https://github.com/sm64pc/sm64pc
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

140 lines
3.7 KiB

#ifndef FILE_SELECT_H
#define FILE_SELECT_H
#include "types.h"
#define MENU_LAYER_MAIN 1
#define MENU_LAYER_SUBMENU 2
#define MENU_ERASE_HOVER_NONE 0
#define MENU_ERASE_HOVER_YES 1
#define MENU_ERASE_HOVER_NO 2
enum MainMenuButtonStates {
MENU_BUTTON_STATE_DEFAULT,
MENU_BUTTON_STATE_GROWING,
MENU_BUTTON_STATE_FULLSCREEN,
MENU_BUTTON_STATE_SHRINKING,
MENU_BUTTON_STATE_ZOOM_IN_OUT,
MENU_BUTTON_STATE_ZOOM_IN,
MENU_BUTTON_STATE_ZOOM_OUT
};
enum MenuButtonTypes {
MENU_BUTTON_NONE = -1, // no button selected (on main menu screen)
// Main Menu (SELECT FILE)
MENU_BUTTON_MAIN_MIN,
MENU_BUTTON_PLAY_FILE_A = MENU_BUTTON_MAIN_MIN,
MENU_BUTTON_PLAY_FILE_B,
MENU_BUTTON_PLAY_FILE_C,
MENU_BUTTON_PLAY_FILE_D,
MENU_BUTTON_SCORE,
MENU_BUTTON_COPY,
MENU_BUTTON_ERASE,
MENU_BUTTON_MAIN_MAX,
// Score Menu (CHECK FILE)
MENU_BUTTON_SCORE_MIN = MENU_BUTTON_MAIN_MAX,
MENU_BUTTON_SCORE_FILE_A = MENU_BUTTON_SCORE_MIN,
MENU_BUTTON_SCORE_FILE_B,
MENU_BUTTON_SCORE_FILE_C,
MENU_BUTTON_SCORE_FILE_D,
MENU_BUTTON_SCORE_RETURN,
MENU_BUTTON_SCORE_COPY_FILE,
MENU_BUTTON_SCORE_ERASE_FILE,
MENU_BUTTON_SCORE_MAX,
// Copy Menu (COPY FILE)
MENU_BUTTON_COPY_MIN = MENU_BUTTON_SCORE_MAX,
MENU_BUTTON_COPY_FILE_A = MENU_BUTTON_COPY_MIN,
MENU_BUTTON_COPY_FILE_B,
MENU_BUTTON_COPY_FILE_C,
MENU_BUTTON_COPY_FILE_D,
MENU_BUTTON_COPY_RETURN,
MENU_BUTTON_COPY_CHECK_SCORE,
MENU_BUTTON_COPY_ERASE_FILE,
MENU_BUTTON_COPY_MAX,
// Erase Menu (ERASE FILE)
MENU_BUTTON_ERASE_MIN = MENU_BUTTON_COPY_MAX,
MENU_BUTTON_ERASE_FILE_A = MENU_BUTTON_ERASE_MIN,
MENU_BUTTON_ERASE_FILE_B,
MENU_BUTTON_ERASE_FILE_C,
MENU_BUTTON_ERASE_FILE_D,
MENU_BUTTON_ERASE_RETURN,
MENU_BUTTON_ERASE_CHECK_SCORE,
MENU_BUTTON_ERASE_COPY_FILE,
MENU_BUTTON_ERASE_MAX,
// Sound Mode Menu (SOUND SELECT)
// This menu includes language settings on PAL
MENU_BUTTON_SOUND_MODE = MENU_BUTTON_ERASE_MAX,
MENU_BUTTON_OPTION_MIN,
MENU_BUTTON_STEREO = MENU_BUTTON_OPTION_MIN,
MENU_BUTTON_MONO,
MENU_BUTTON_HEADSET,
#ifdef VERSION_EU
// Language Menu
MENU_BUTTON_LANGUAGE_MIN,
MENU_BUTTON_LANGUAGE_ENGLISH = MENU_BUTTON_LANGUAGE_MIN,
MENU_BUTTON_LANGUAGE_FRENCH,
MENU_BUTTON_LANGUAGE_GERMAN,
MENU_BUTTON_LANGUAGE_RETURN,
#endif
MENU_BUTTON_OPTION_MAX
};
enum ScoreMenuMessageID {
SCORE_MSG_CHECK_FILE,
SCORE_MSG_NOSAVE_DATA
};
enum CopyMenuMessageID {
COPY_MSG_MAIN_TEXT,
COPY_MSG_COPY_WHERE,
COPY_MSG_NOSAVE_EXISTS,
COPY_MSG_COPY_COMPLETE,
COPY_MSG_SAVE_EXISTS
};
enum CopyMenuActionPhase {
COPY_PHASE_MAIN,
COPY_PHASE_COPY_WHERE,
COPY_PHASE_COPY_COMPLETE
};
enum EraseMenuMessageID {
ERASE_MSG_MAIN_TEXT,
ERASE_MSG_PROMPT,
ERASE_MSG_NOSAVE_EXISTS,
ERASE_MSG_MARIO_ERASED,
ERASE_MSG_SAVE_EXISTS
};
enum EraseMenuActionPhase {
ERASE_PHASE_MAIN,
ERASE_PHASE_PROMPT,
ERASE_PHASE_MARIO_ERASED
};
enum SoundModeMenuActionPhase {
SOUND_MODE_PHASE_MAIN
};
extern u32 gGlobalTimer;
extern void beh_yellow_background_menu_init(void);
extern void beh_yellow_background_menu_loop(void);
extern void bhv_menu_button_init(void);
extern void bhv_menu_button_loop(void);
extern void bhv_menu_button_manager_init(void);
extern void bhv_menu_button_manager_loop(void);
extern Gfx *geo_file_select_strings_and_menu_cursor(s32 callContext, struct GraphNode *node,
f32 mtx[4][4]);
extern s32 lvl_init_menu_values_and_cursor_pos(s32 arg, s32 unused);
extern s32 lvl_update_obj_and_load_file_selected(s32 arg, s32 unused);
#endif /* FILE_SELECT_H */