SpaghettiKart
Loading...
Searching...
No Matches
menus.h
Go to the documentation of this file.
1#ifndef MENUS_H
2#define MENUS_H
3
4#include <common_structs.h>
5#include <defines.h>
6
7// gSubMenuSelection is position on options screen?
9
10// needs to be a union (or array...?) to go into rodata as a const
11// terrible for endianness... Best guess as to what this is for..
13 u8 modes[4];
14 s32 word;
15};
16
28
34 SUB_MENU_DATA, // 0x01, value repurposed in map select
88};
89
98 MAIN_MENU_MODE_SELECT, // Mario GP - T. Trials - VS - Battle
99 MAIN_MENU_MODE_SUB_SELECT, // CC Selection and T.Trials options (Begin, Data)
100 MAIN_MENU_OK_SELECT, // OK option after selecting a submode
101 MAIN_MENU_OK_SELECT_GO_BACK, // OK option after going back from player select
102 MAIN_MENU_MODE_SUB_SELECT_GO_BACK // Used in T.Trials after going back to Data option from track data
103};
104
111 PLAYER_SELECT_MENU_OK, // OK option after selecting characters
112 PLAYER_SELECT_MENU_OK_GO_BACK // OK option after going back from map select
113};
114
131
148
159
169
179
184
193
194#define NUM_ROWS_GAME_MODE_MENU 4
195#define NUM_COLUMN_GAME_MODE_SUB_MENU 4
196#define NUM_ROWS_GAME_MODE_SUB_MENU 3
197
198// This really, really shouldn't be in this header file, but I don't know where else to put it
199void rmonPrintf(const char*, ...);
200
201/* functions */
202void update_menus(void);
203void options_menu_act(struct Controller*, u16);
204void data_menu_act(struct Controller*, u16);
208void splash_menu_act(struct Controller*, u16);
209void setup_game_mode_selected(void);
210void main_menu_act(struct Controller*, u16);
211bool is_character_spot_free(s32);
212void player_select_menu_act(struct Controller* controller, u16 arg1);
213void course_select_menu_act(struct Controller*, u16);
214void load_menu_states(s32);
215void reset_cycle_flash_menu(void);
216void set_sound_mode(void);
217bool is_screen_being_faded(void);
218
219/* data */
220extern s32 gIntroModelZEye;
221extern f32 gIntroModelScale;
222extern f32 gIntroModelRotX;
223extern f32 gIntroModelRotY;
224extern f32 gIntroModelRotZ;
225extern f32 gIntroModelPosX;
226extern f32 gIntroModelPosY;
227extern f32 gIntroModelPosZ;
228extern s32 gMenuFadeType;
229
230extern s8 gCharacterGridSelections[];
231extern bool gCharacterGridIsSelected[];
232extern s8 gSubMenuSelection;
233extern s8 gMainMenuSelection;
235extern s8 gDebugMenuSelection;
237extern s8 gScreenModeListIndex;
238extern u8 gSoundMode;
239extern s8 gPlayerCount;
246extern s8 gDebugGotoScene;
247extern bool gGhostPlayerInit;
248extern bool gTrackMapInit;
249extern s32 gMenuTimingCounter;
250extern s32 gMenuDelayTimer;
251extern s8 gDemoUseController;
252extern s8 gCupSelection;
253extern s8 sTempCupSelection;
254extern s8 gCourseIndexInCup;
255extern s8 unref_D_8018EE0C;
256
257extern s32 gMenuSelection; // D_800E86A0
258extern s32 gFadeModeSelection;
259extern s8 gCharacterSelections[];
260
261extern s8 gGameModeMenuColumn[];
263extern s8 gNextDemoId;
267extern s8 unref_D_800E86D4[];
268extern u32 sVIGammaOffDitherOn;
269
270extern const s8 sScreenModePlayerTable[5];
271extern const s8 sScreenModePlayerCount[5];
272extern const s8 gPlayerModeSelection[];
273extern const s8 sGameModePlayerColumnDefault[][3];
274extern const s8 sGameModePlayerColumnExtra[][3];
275extern const s32 gGameModePlayerSelection[][3];
276extern const s8 sCharacterGridOrder[8];
278
279extern const union GameModePack sSoundMenuPack;
280
281// end of menus.c variables
282
283#endif /* MENUS_H */
s8 gPlayerCount
Definition menus.c:46
#define NUM_COURSES_PER_CUP
Definition defines.h:183
@ NUM_CUPS
Definition defines.h:181
f32 gIntroModelRotZ
Definition menus.c:32
s8 gScreenModeListIndex
Definition menus.c:44
s8 gTimeTrialDataCourseIndex
Definition menus.c:51
s32 gMenuFadeType
Definition menus.c:36
s8 gSubMenuSelection
Definition menus.c:39
f32 gIntroModelPosZ
Definition menus.c:35
f32 gIntroModelRotX
Definition menus.c:30
s32 gMenuTimingCounter
Definition menus.c:57
s32 gMenuDelayTimer
Definition menus.c:58
const s8 sGameModePlayerColumnDefault[][3]
Definition menus.c:107
const s16 gCupCourseOrder[5][4]
Definition menus.c:137
s8 gDemoUseController
Definition menus.c:59
const union GameModePack sSoundMenuPack
Definition menus.c:156
s8 gCharacterSelections[4]
Definition menus.c:68
s8 gControllerPakMenuSelection
Definition menus.c:43
bool gGhostPlayerInit
Definition menus.c:55
s8 gControllerPakSelectedTableRow
Definition menus.c:82
s8 unref_D_8018EE0C
Definition menus.c:63
s8 gCourseRecordsMenuSelection
Definition menus.c:52
s32 gIntroModelZEye
Definition menus.c:28
s8 gCupSelection
Definition menus.c:60
s32 gMenuSelection
Definition menus.c:66
s8 gCourseIndexInCup
Definition menus.c:62
f32 gIntroModelRotY
Definition menus.c:31
s8 gTimeTrialsResultCursorSelection
Definition menus.c:48
s8 gPlayerSelectMenuSelection
Definition menus.c:41
s8 gCourseRecordsSubMenuSelection
Definition menus.c:53
f32 gIntroModelScale
Definition menus.c:29
s8 gControllerPakScrollDirection
Definition menus.c:87
const s8 gPlayerModeSelection[]
Definition menus.c:104
s8 gDebugGotoScene
Definition menus.c:54
const s8 sGameModePlayerColumnExtra[][3]
Definition menus.c:116
bool gCharacterGridIsSelected[4]
Definition menus.c:38
f32 gIntroModelPosX
Definition menus.c:33
const s8 sCharacterGridOrder[]
Definition menus.c:133
s8 gDebugMenuSelection
Definition menus.c:42
s8 gMainMenuSelection
Definition menus.c:40
s8 gNextDemoId
Definition menus.c:81
s8 unref_D_800E86D4[12]
Definition menus.c:88
u8 gSoundMode
Definition menus.c:45
const s8 sScreenModePlayerCount[]
Definition menus.c:101
s32 gFadeModeSelection
Definition menus.c:67
s8 gBattleResultCursorSelection
Definition menus.c:50
s8 gVersusResultCursorSelection
Definition menus.c:47
s8 sTempCupSelection
Definition menus.c:61
s8 gControllerPakVisibleTableRows[12]
Definition menus.c:86
s8 gGameModeSubMenuColumn[NUM_COLUMN_GAME_MODE_SUB_MENU][NUM_ROWS_GAME_MODE_SUB_MENU]
Definition menus.c:77
s8 gCharacterGridSelections[4]
Definition menus.c:37
s8 gGameModeMenuColumn[NUM_ROWS_GAME_MODE_MENU]
Definition menus.c:72
const s32 gGameModePlayerSelection[][3]
Definition menus.c:124
f32 gIntroModelPosY
Definition menus.c:34
const s8 sScreenModePlayerTable[]
Definition menus.c:96
u32 sVIGammaOffDitherOn
Definition menus.c:91
bool gTrackMapInit
Definition menus.c:56
FadeModeSelectionTypes
Options for gFadeModeSelection.
Definition menus.h:183
@ FADE_MODE_LOGO
Definition menus.h:183
@ FADE_MODE_MAIN
Definition menus.h:183
@ FADE_MODE_NONE
Definition menus.h:183
void logo_intro_menu_act(struct Controller *, u16)
void rmonPrintf(const char *,...)
Definition is_debug.c:93
void options_menu_act(struct Controller *, u16)
Definition menus.c:236
PlayerSelectMenuSelectionTypes
Options for gPlayerSelectMenuSelection.
Definition menus.h:108
@ PLAYER_SELECT_MENU_MAIN
Definition menus.h:110
@ PLAYER_SELECT_MENU_OK
Definition menus.h:111
@ PLAYER_SELECT_MENU_NONE
Definition menus.h:109
@ PLAYER_SELECT_MENU_OK_GO_BACK
Definition menus.h:112
void main_menu_act(struct Controller *, u16)
MenuOptionsCursorPositions
Definition menus.h:8
@ MENU_OPTIONS_CSRPOS_SOUNDMODE
Definition menus.h:8
bool is_screen_being_faded(void)
Definition menus.c:2092
void controller_pak_menu_act(struct Controller *, u16)
void splash_menu_act(struct Controller *, u16)
Definition menus.c:1020
void update_menus(void)
Definition menus.c:163
CourseRecordsMenuSelectionTypes
Options for gCourseRecordsMenuSelection.
Definition menus.h:152
@ COURSE_RECORDS_MENU_MAX
Definition menus.h:157
@ COURSE_RECORDS_MENU_ERASE_GHOST
Definition menus.h:156
@ COURSE_RECORDS_MENU_ERASE_RECORDS
Definition menus.h:155
@ COURSE_RECORDS_MENU_MIN
Definition menus.h:153
@ COURSE_RECORDS_MENU_RETURN_MENU
Definition menus.h:154
void reset_cycle_flash_menu(void)
Definition menus.c:2064
void data_menu_act(struct Controller *, u16)
ControllerPakMenuSelectionTypes
Options for gControllerPakMenuSelection.
Definition menus.h:135
@ CONTROLLER_PAK_MENU_SELECT_RECORD
Definition menus.h:137
@ CONTROLLER_PAK_MENU_ERASE_ERROR_PAK_CHANGED
Definition menus.h:146
@ CONTROLLER_PAK_MENU_TABLE_GAME_DATA
Definition menus.h:141
@ CONTROLLER_PAK_MENU_QUIT
Definition menus.h:140
@ CONTROLLER_PAK_MENU_ERASE_ERROR_NO_PAK
Definition menus.h:145
@ CONTROLLER_PAK_MENU_GO_TO_ERASING
Definition menus.h:142
@ CONTROLLER_PAK_MENU_END
Definition menus.h:138
@ CONTROLLER_PAK_MENU_ERASE_ERROR_NOT_ERASED
Definition menus.h:144
@ CONTROLLER_PAK_MENU_ERASE
Definition menus.h:139
@ CONTROLLER_PAK_MENU_ERASING
Definition menus.h:143
@ CONTROLLER_PAK_MENU_NONE
Definition menus.h:136
#define NUM_ROWS_GAME_MODE_SUB_MENU
Definition menus.h:196
void course_data_menu_act(struct Controller *, u16)
DebugGotoSceneTypes
Options for gDebugGotoScene.
Definition menus.h:173
@ DEBUG_GOTO_RACING
Definition menus.h:174
@ DEBUG_GOTO_CREDITS_SEQUENCE_DEFAULT
Definition menus.h:176
@ DEBUG_GOTO_ENDING
Definition menus.h:175
@ DEBUG_GOTO_CREDITS_SEQUENCE_EXTRA
Definition menus.h:177
void player_select_menu_act(struct Controller *controller, u16 arg1)
Definition menus.c:1564
bool is_character_spot_free(s32)
Definition menus.c:1544
CourseRecordsSubMenuSelectionTypes
Options for gCourseRecordsSubMenuSelection.
Definition menus.h:163
@ COURSE_RECORDS_SUB_MENU_MAX
Definition menus.h:167
@ COURSE_RECORDS_SUB_MENU_QUIT
Definition menus.h:165
@ COURSE_RECORDS_SUB_MENU_MIN
Definition menus.h:164
@ COURSE_RECORDS_SUB_MENU_ERASE
Definition menus.h:166
#define NUM_COLUMN_GAME_MODE_SUB_MENU
Definition menus.h:195
SubMenuSelectionType
Options for gSubMenuSelection.
Definition menus.h:32
@ SUB_MENU_COPY_PAK_ERROR_1P_MAX
Definition menus.h:72
@ SUB_MENU_COPY_PAK_FROM_GHOST2_1P
Definition menus.h:55
@ SUB_MENU_MAP_SELECT_COURSE
Definition menus.h:36
@ SUB_MENU_COPY_PAK_TO_GHOST1_2P
Definition menus.h:64
@ SUB_MENU_COPY_PAK_START
Definition menus.h:78
@ SUB_MENU_COPY_PAK_TO_GHOST2_2P
Definition menus.h:65
@ SUB_MENU_COPY_PAK_ERROR_BAD_READ_1P
Definition menus.h:69
@ SUB_MENU_DATA_OPTIONS
Definition menus.h:39
@ SUB_MENU_COPY_PAK_FROM_GHOST_MAX
Definition menus.h:56
@ SUB_MENU_COPY_PAK_UNABLE_COPY_FROM_1P
Definition menus.h:83
@ SUB_MENU_COPY_PAK_PROMPT_MAX
Definition menus.h:76
@ SUB_MENU_COPY_PAK_CREATE_GAME_DATA_DONE
Definition menus.h:87
@ SUB_MENU_COPY_PAK_UNABLE_ERROR_MAX
Definition menus.h:85
@ SUB_MENU_COPY_PAK_ERROR_NO_PAGES_1P
Definition menus.h:71
@ SUB_MENU_COPY_PAK_TO_GHOST_MIN
Definition menus.h:63
@ SUB_MENU_COPY_PAK_ERROR_NO_GHOST_DATA
Definition menus.h:58
@ SUB_MENU_COPY_PAK_ACTION_MIN
Definition menus.h:77
@ SUB_MENU_DATA_CANT_ERASE
Definition menus.h:41
@ SUB_MENU_ERASE_QUIT
Definition menus.h:49
@ SUB_MENU_COPY_PAK_ERROR_2P_MAX
Definition menus.h:62
@ SUB_MENU_COPY_PAK_PROMPT_COPY
Definition menus.h:75
@ SUB_MENU_COPY_PAK_PROMPT_MIN
Definition menus.h:73
@ SUB_MENU_MAP_SELECT_OK
Definition menus.h:37
@ SUB_MENU_COPY_PAK_ERROR_NO_PAK_2P
Definition menus.h:60
@ SUB_MENU_COPY_PAK_TO_GHOST_MAX
Definition menus.h:66
@ SUB_MENU_ERASE_MAX
Definition menus.h:51
@ SUB_MENU_COPY_PAK_FROM_GHOST1_1P
Definition menus.h:54
@ SUB_MENU_COPY_PAK_ERROR_CANT_CREATE_1P
Definition menus.h:70
@ SUB_MENU_COPY_PAK_ERROR_1P_MIN
Definition menus.h:67
@ SUB_MENU_MAP_SELECT_BATTLE_COURSE
Definition menus.h:38
@ SUB_MENU_DATA
Definition menus.h:34
@ SUB_MENU_COPY_PAK_ERROR_BAD_READ_2P
Definition menus.h:61
@ SUB_MENU_OPTION_SOUND_MODE
Definition menus.h:44
@ SUB_MENU_OPTION_MAX
Definition menus.h:47
@ SUB_MENU_NONE
Definition menus.h:33
@ SUB_MENU_COPY_PAK_ERROR_2P_MIN
Definition menus.h:57
@ SUB_MENU_MAP_SELECT_CUP
Definition menus.h:35
@ SUB_MENU_COPY_PAK_UNABLE_READ_FROM_2P
Definition menus.h:84
@ SUB_MENU_COPY_PAK_COPYING
Definition menus.h:79
@ SUB_MENU_COPY_PAK_ERROR_NO_GAME_DATA
Definition menus.h:59
@ SUB_MENU_OPTION_RETURN_GAME_SELECT
Definition menus.h:43
@ SUB_MENU_ERASE_MIN
Definition menus.h:48
@ SUB_MENU_COPY_PAK_FROM_GHOST_MIN
Definition menus.h:53
@ SUB_MENU_COPY_PAK_CREATE_GAME_DATA_INIT
Definition menus.h:86
@ SUB_MENU_COPY_PAK_ERROR_NO_PAK_1P
Definition menus.h:68
@ SUB_MENU_COPY_PAK_UNABLE_ERROR_MIN
Definition menus.h:82
@ SUB_MENU_ERASE_ERASE
Definition menus.h:50
@ SUB_MENU_DATA_ERASE_CONFIRM
Definition menus.h:40
@ SUB_MENU_SAVE_DATA_ERASED
Definition menus.h:52
@ SUB_MENU_OPTION_ERASE_ALL_DATA
Definition menus.h:46
@ SUB_MENU_COPY_PAK_PROMPT_QUIT
Definition menus.h:74
@ SUB_MENU_OPTION_COPY_CONTROLLER_PAK
Definition menus.h:45
@ SUB_MENU_OPTION_MIN
Definition menus.h:42
@ SUB_MENU_COPY_PAK_ACTION_MAX
Definition menus.h:81
@ SUB_MENU_COPY_PAK_COMPLETED
Definition menus.h:80
void setup_game_mode_selected(void)
Definition menus.c:1262
void set_sound_mode(void)
Definition menus.c:2071
MainMenuSelectionType
Options for gMainMenuSelection.
Definition menus.h:93
@ MAIN_MENU_NONE
Definition menus.h:94
@ MAIN_MENU_OK_SELECT_GO_BACK
Definition menus.h:101
@ MAIN_MENU_DATA
Definition menus.h:96
@ MAIN_MENU_PLAYER_SELECT
Definition menus.h:97
@ MAIN_MENU_OPTION
Definition menus.h:95
@ MAIN_MENU_OK_SELECT
Definition menus.h:100
@ MAIN_MENU_MODE_SELECT
Definition menus.h:98
@ MAIN_MENU_MODE_SUB_SELECT_GO_BACK
Definition menus.h:102
@ MAIN_MENU_MODE_SUB_SELECT
Definition menus.h:99
void load_menu_states(s32)
Definition menus.c:1872
ControllerPakScrollDirectionTypes
Options for gControllerPakScrollDirection.
Definition menus.h:188
@ CONTROLLER_PAK_SCROLL_DIR_NONE
Definition menus.h:189
@ CONTROLLER_PAK_SCROLL_DIR_DOWN
Definition menus.h:190
@ CONTROLLER_PAK_SCROLL_DIR_UP
Definition menus.h:191
DebugMenuSelectionTypes
Options for gDebugMenuSelection.
Definition menus.h:118
@ DEBUG_MENU_DEBUG_MODE
Definition menus.h:121
@ DEBUG_MENU_NONE
Definition menus.h:119
@ DEBUG_MENU_CC
Definition menus.h:123
@ DEBUG_MENU_COURSE
Definition menus.h:122
@ DEBUG_MENU_SCREEN_MODE
Definition menus.h:124
@ DEBUG_MENU_OPTION_SELECTED
Definition menus.h:129
@ DEBUG_MENU_GIVE_ALL_GOLD_CUP
Definition menus.h:128
@ DEBUG_MENU_PLAYER
Definition menus.h:125
@ DEBUG_MENU_DISABLED
Definition menus.h:120
@ DEBUG_MENU_LAUNCH_EDITOR
Definition menus.h:127
@ DEBUG_MENU_SOUND_MODE
Definition menus.h:126
MenuFadeTypes
Options for gMenuFadeType.
Definition menus.h:20
@ MENU_FADE_TYPE_MAIN
Definition menus.h:21
@ MENU_FADE_TYPE_OPTION
Definition menus.h:25
@ MENU_FADE_TYPE_MAX
Definition menus.h:26
@ MENU_FADE_TYPE_DEMO
Definition menus.h:23
@ MENU_FADE_TYPE_DATA
Definition menus.h:24
@ MENU_FADE_TYPE_BACK
Definition menus.h:22
void course_select_menu_act(struct Controller *, u16)
Definition menus.c:1758
Definition common_structs.h:66
Definition menus.h:12
s32 word
Definition menus.h:14
u8 modes[4]
Definition menus.h:13