Mario Kart 64
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 course 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
130
147
158
168
178
183
192
193#define NUM_ROWS_GAME_MODE_MENU 4
194#define NUM_COLUMN_GAME_MODE_SUB_MENU 4
195#define NUM_ROWS_GAME_MODE_SUB_MENU 3
196
197// This really, really shouldn't be in this header file, but I don't know where else to put it
198void rmonPrintf(const char*, ...);
199
200/* functions */
201void update_menus(void);
202void options_menu_act(struct Controller*, u16);
203void data_menu_act(struct Controller*, u16);
207void splash_menu_act(struct Controller*, u16);
208void setup_game_mode_selected(void);
209void main_menu_act(struct Controller*, u16);
210bool is_character_spot_free(s32);
211void player_select_menu_act(struct Controller* controller, u16 arg1);
212void course_select_menu_act(struct Controller*, u16);
213void load_menu_states(s32);
214void reset_cycle_flash_menu(void);
215void set_sound_mode(void);
216bool is_screen_being_faded(void);
217
218/* data */
219extern s32 gIntroModelZEye;
220extern f32 gIntroModelScale;
221extern f32 gIntroModelRotX;
222extern f32 gIntroModelRotY;
223extern f32 gIntroModelRotZ;
224extern f32 gIntroModelPosX;
225extern f32 gIntroModelPosY;
226extern f32 gIntroModelPosZ;
227extern s32 gMenuFadeType;
228
229extern s8 gCharacterGridSelections[];
230extern bool gCharacterGridIsSelected[];
231extern s8 gSubMenuSelection;
232extern s8 gMainMenuSelection;
234extern s8 gDebugMenuSelection;
236extern s8 gScreenModeListIndex;
237extern u8 gSoundMode;
238extern s8 gPlayerCount;
245extern s8 gDebugGotoScene;
246extern bool gGhostPlayerInit;
247extern bool gCourseMapInit;
248extern s32 gMenuTimingCounter;
249extern s32 gMenuDelayTimer;
250extern s8 gDemoUseController;
251extern s8 gCupSelection;
252extern s8 sTempCupSelection;
253extern s8 gCourseIndexInCup;
254extern s8 unref_D_8018EE0C;
255
256extern s32 gMenuSelection; // D_800E86A0
257extern s32 gFadeModeSelection;
258extern s8 gCharacterSelections[];
259
260extern s8 gGameModeMenuColumn[];
262extern s8 gNextDemoId;
266extern s8 unref_D_800E86D4[];
267extern u32 sVIGammaOffDitherOn;
268
269extern const s8 sScreenModePlayerTable[5];
270extern const s8 sScreenModePlayerCount[5];
271extern const s8 gPlayerModeSelection[];
272extern const s8 sGameModePlayerColumnDefault[][3];
273extern const s8 sGameModePlayerColumnExtra[][3];
274extern const s32 gGameModePlayerSelection[][3];
275extern const s8 sCharacterGridOrder[8];
277
278extern const union GameModePack sSoundMenuPack;
279
280// end of menus.c variables
281
282#endif /* MENUS_H */
s8 gPlayerCount
Definition menus.c:43
#define NUM_COURSES_PER_CUP
Definition defines.h:171
@ NUM_CUPS
Definition defines.h:169
f32 gIntroModelRotZ
Definition menus.c:29
s8 gScreenModeListIndex
Definition menus.c:41
s8 gTimeTrialDataCourseIndex
Definition menus.c:48
bool gCourseMapInit
Definition menus.c:53
s32 gMenuFadeType
Definition menus.c:33
s8 gSubMenuSelection
Definition menus.c:36
f32 gIntroModelPosZ
Definition menus.c:32
f32 gIntroModelRotX
Definition menus.c:27
s32 gMenuTimingCounter
Definition menus.c:54
s32 gMenuDelayTimer
Definition menus.c:55
const s8 sGameModePlayerColumnDefault[][3]
Definition menus.c:104
const s16 gCupCourseOrder[5][4]
Definition menus.c:134
s8 gDemoUseController
Definition menus.c:56
const union GameModePack sSoundMenuPack
Definition menus.c:153
s8 gCharacterSelections[4]
Definition menus.c:65
s8 gControllerPakMenuSelection
Definition menus.c:40
bool gGhostPlayerInit
Definition menus.c:52
s8 gControllerPakSelectedTableRow
Definition menus.c:79
s8 unref_D_8018EE0C
Definition menus.c:60
s8 gCourseRecordsMenuSelection
Definition menus.c:49
s32 gIntroModelZEye
Definition menus.c:25
s8 gCupSelection
Definition menus.c:57
s32 gMenuSelection
Definition menus.c:63
s8 gCourseIndexInCup
Definition menus.c:59
f32 gIntroModelRotY
Definition menus.c:28
s8 gTimeTrialsResultCursorSelection
Definition menus.c:45
s8 gPlayerSelectMenuSelection
Definition menus.c:38
s8 gCourseRecordsSubMenuSelection
Definition menus.c:50
f32 gIntroModelScale
Definition menus.c:26
s8 gControllerPakScrollDirection
Definition menus.c:84
const s8 gPlayerModeSelection[]
Definition menus.c:101
s8 gDebugGotoScene
Definition menus.c:51
const s8 sGameModePlayerColumnExtra[][3]
Definition menus.c:113
bool gCharacterGridIsSelected[4]
Definition menus.c:35
f32 gIntroModelPosX
Definition menus.c:30
const s8 sCharacterGridOrder[]
Definition menus.c:130
s8 gDebugMenuSelection
Definition menus.c:39
s8 gMainMenuSelection
Definition menus.c:37
s8 gNextDemoId
Definition menus.c:78
s8 unref_D_800E86D4[12]
Definition menus.c:85
u8 gSoundMode
Definition menus.c:42
const s8 sScreenModePlayerCount[]
Definition menus.c:98
s32 gFadeModeSelection
Definition menus.c:64
s8 gBattleResultCursorSelection
Definition menus.c:47
s8 gVersusResultCursorSelection
Definition menus.c:44
s8 sTempCupSelection
Definition menus.c:58
s8 gControllerPakVisibleTableRows[12]
Definition menus.c:83
s8 gGameModeSubMenuColumn[NUM_COLUMN_GAME_MODE_SUB_MENU][NUM_ROWS_GAME_MODE_SUB_MENU]
Definition menus.c:74
s8 gCharacterGridSelections[4]
Definition menus.c:34
s8 gGameModeMenuColumn[NUM_ROWS_GAME_MODE_MENU]
Definition menus.c:69
const s32 gGameModePlayerSelection[][3]
Definition menus.c:121
f32 gIntroModelPosY
Definition menus.c:31
const s8 sScreenModePlayerTable[]
Definition menus.c:93
u32 sVIGammaOffDitherOn
Definition menus.c:88
FadeModeSelectionTypes
Options for gFadeModeSelection.
Definition menus.h:182
@ FADE_MODE_LOGO
Definition menus.h:182
@ FADE_MODE_MAIN
Definition menus.h:182
@ FADE_MODE_NONE
Definition menus.h:182
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:233
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:2070
void controller_pak_menu_act(struct Controller *, u16)
void splash_menu_act(struct Controller *, u16)
Definition menus.c:1017
void update_menus(void)
Definition menus.c:160
CourseRecordsMenuSelectionTypes
Options for gCourseRecordsMenuSelection.
Definition menus.h:151
@ COURSE_RECORDS_MENU_MAX
Definition menus.h:156
@ COURSE_RECORDS_MENU_ERASE_GHOST
Definition menus.h:155
@ COURSE_RECORDS_MENU_ERASE_RECORDS
Definition menus.h:154
@ COURSE_RECORDS_MENU_MIN
Definition menus.h:152
@ COURSE_RECORDS_MENU_RETURN_MENU
Definition menus.h:153
void reset_cycle_flash_menu(void)
Definition menus.c:2049
void data_menu_act(struct Controller *, u16)
ControllerPakMenuSelectionTypes
Options for gControllerPakMenuSelection.
Definition menus.h:134
@ CONTROLLER_PAK_MENU_SELECT_RECORD
Definition menus.h:136
@ CONTROLLER_PAK_MENU_ERASE_ERROR_PAK_CHANGED
Definition menus.h:145
@ CONTROLLER_PAK_MENU_TABLE_GAME_DATA
Definition menus.h:140
@ CONTROLLER_PAK_MENU_QUIT
Definition menus.h:139
@ CONTROLLER_PAK_MENU_ERASE_ERROR_NO_PAK
Definition menus.h:144
@ CONTROLLER_PAK_MENU_GO_TO_ERASING
Definition menus.h:141
@ CONTROLLER_PAK_MENU_END
Definition menus.h:137
@ CONTROLLER_PAK_MENU_ERASE_ERROR_NOT_ERASED
Definition menus.h:143
@ CONTROLLER_PAK_MENU_ERASE
Definition menus.h:138
@ CONTROLLER_PAK_MENU_ERASING
Definition menus.h:142
@ CONTROLLER_PAK_MENU_NONE
Definition menus.h:135
#define NUM_ROWS_GAME_MODE_SUB_MENU
Definition menus.h:195
void course_data_menu_act(struct Controller *, u16)
DebugGotoSceneTypes
Options for gDebugGotoScene.
Definition menus.h:172
@ DEBUG_GOTO_RACING
Definition menus.h:173
@ DEBUG_GOTO_CREDITS_SEQUENCE_DEFAULT
Definition menus.h:175
@ DEBUG_GOTO_ENDING
Definition menus.h:174
@ DEBUG_GOTO_CREDITS_SEQUENCE_EXTRA
Definition menus.h:176
void player_select_menu_act(struct Controller *controller, u16 arg1)
Definition menus.c:1548
bool is_character_spot_free(s32)
Definition menus.c:1531
CourseRecordsSubMenuSelectionTypes
Options for gCourseRecordsSubMenuSelection.
Definition menus.h:162
@ COURSE_RECORDS_SUB_MENU_MAX
Definition menus.h:166
@ COURSE_RECORDS_SUB_MENU_QUIT
Definition menus.h:164
@ COURSE_RECORDS_SUB_MENU_MIN
Definition menus.h:163
@ COURSE_RECORDS_SUB_MENU_ERASE
Definition menus.h:165
#define NUM_COLUMN_GAME_MODE_SUB_MENU
Definition menus.h:194
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:1249
void set_sound_mode(void)
Definition menus.c:2056
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:1857
ControllerPakScrollDirectionTypes
Options for gControllerPakScrollDirection.
Definition menus.h:187
@ CONTROLLER_PAK_SCROLL_DIR_NONE
Definition menus.h:188
@ CONTROLLER_PAK_SCROLL_DIR_DOWN
Definition menus.h:189
@ CONTROLLER_PAK_SCROLL_DIR_UP
Definition menus.h:190
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:128
@ DEBUG_MENU_GIVE_ALL_GOLD_CUP
Definition menus.h:127
@ DEBUG_MENU_PLAYER
Definition menus.h:125
@ DEBUG_MENU_DISABLED
Definition menus.h:120
@ 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:1742
Definition common_structs.h:66
Definition menus.h:12
s32 word
Definition menus.h:14
u8 modes[4]
Definition menus.h:13