Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
MorsGames
GitHub Repository: MorsGames/sm64plus
Path: blob/master/src/menu/file_select.h
7857 views
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
141
142