Mario Kart 64
|
#include <ultra64.h>
#include <macros.h>
#include <defines.h>
#include <common_structs.h>
#include <mk64.h>
#include "menus.h"
#include "main.h"
#include "code_800029B0.h"
#include "actors.h"
#include "audio/external.h"
#include "code_80005FD0.h"
#include "code_80091750.h"
#include "code_800AF9B0.h"
#include "save.h"
#include "staff_ghosts.h"
#include "save_data.h"
#include <sounds.h>
#include "spawn_players.h"
Macros | |
#define | DEBUG_MODE_TOGGLE false |
#define | DEBUG_MENU_SELECTION DEBUG_MENU_DISABLED |
Functions | |
void | update_menus (void) |
void | options_menu_act (struct Controller *controller, u16 controllerIdx) |
void | data_menu_act (struct Controller *controller, UNUSED u16 controllerIdx) |
void | course_data_menu_act (struct Controller *controller, UNUSED u16 controllerIdx) |
void | logo_intro_menu_act (struct Controller *controller, UNUSED u16 controllerIdx) |
void | controller_pak_menu_act (struct Controller *controller, UNUSED u16 controllerIdx) |
void | splash_menu_act (struct Controller *controller, u16 controllerIdx) |
void | setup_game_mode_selected (void) |
bool | is_character_spot_free (s32 gridId) |
void | course_select_menu_act (struct Controller *arg0, u16 controllerIdx) |
void | load_menu_states (s32 menuSelection) |
void | reset_cycle_flash_menu (void) |
void | set_sound_mode (void) |
bool | is_screen_being_faded (void) |
UNUSED void | debug_print_ghost_kart_character_id (s32 arg0, s32 arg1) |
#define DEBUG_MENU_SELECTION DEBUG_MENU_DISABLED |
#define DEBUG_MODE_TOGGLE false |
void controller_pak_menu_act | ( | struct Controller * | controller, |
UNUSED u16 | controllerIdx ) |
Navigation of the controller pak table data
void course_data_menu_act | ( | struct Controller * | controller, |
UNUSED u16 | controllerIdx ) |
Navigation of the course records data menu
void course_select_menu_act | ( | struct Controller * | arg0, |
u16 | controllerIdx ) |
Navigation of the player select screen Grid positions are from right to left, then top to bottom Navigation of the map select course menu screen
void data_menu_act | ( | struct Controller * | controller, |
UNUSED u16 | controllerIdx ) |
Navigation of the data menu
Unused debug function, prints the character id for the player and both controller pak ghosts
Navigation of the main game mode select screen Check if there is no currently selected and/or hovered character at grid position gridId
bool is_screen_being_faded | ( | void | ) |
Checks is a fade render mode is active so menus can't be interacted while a fade transition is active
void load_menu_states | ( | s32 | menuSelection | ) |
Loads menu states so they are preserved between menu changes
void logo_intro_menu_act | ( | struct Controller * | controller, |
UNUSED u16 | controllerIdx ) |
On input skip logo screen
void options_menu_act | ( | struct Controller * | controller, |
u16 | controllerIdx ) |
Navigation of the options menu
void reset_cycle_flash_menu | ( | void | ) |
Self explanatory, gets reset when moving cursor option or after a fade
void set_sound_mode | ( | void | ) |
Self explanatory, changes sound mode pack
void setup_game_mode_selected | ( | void | ) |
void splash_menu_act | ( | struct Controller * | controller, |
u16 | controllerIdx ) |
Navigation of the main splash start screen menu Also handles debug menu options
void update_menus | ( | void | ) |
General menu main handler Includes opening logo and splash screens
s8 gBattleResultCursorSelection |
bool8 gCharacterGridIsSelected[4] |
s8 gCharacterGridSelections[4] |
s8 gControllerPakMenuSelection |
s8 gControllerPakScrollDirection = CONTROLLER_PAK_SCROLL_DIR_NONE |
s8 gControllerPakSelectedTableRow = 0 |
s8 gControllerPakVisibleTableRows[12] = { 0, 0, 1, 2, 3, 4, 5, 6, 0, 0, 0, 0 } |
s8 gCourseIndexInCup |
bool8 gCourseMapInit |
s8 gCourseRecordsMenuSelection |
s8 gCourseRecordsSubMenuSelection |
const s16 gCupCourseOrder[5][4] |
s8 gCupSelection |
s8 gDebugGotoScene |
s8 gDebugMenuSelection |
s8 gDemoUseController |
s32 gFadeModeSelection = FADE_MODE_NONE |
s8 gGameModeMenuColumn[4] = { 0, 0, 0, 0 } |
const s32 gGameModePlayerSelection[][3] |
s8 gGameModeSubMenuColumn[4][3] = { { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 } } |
bool8 gGhostPlayerInit |
f32 gIntroModelPosX |
f32 gIntroModelPosY |
f32 gIntroModelPosZ |
f32 gIntroModelRotX |
f32 gIntroModelRotY |
f32 gIntroModelRotZ |
f32 gIntroModelScale |
s32 gIntroModelZEye |
BSS
s8 gMainMenuSelection |
s32 gMenuDelayTimer |
s32 gMenuFadeType |
s32 gMenuSelection = LOGO_INTRO_MENU |
Data
s32 gMenuTimingCounter |
s8 gNextDemoId = 0 |
s8 gPlayerCount |
const s8 gPlayerModeSelection[] = { 1, 2, 1, 1 } |
s8 gPlayerSelectMenuSelection |
s8 gScreenModeListIndex |
u8 gSoundMode |
s8 gSubMenuSelection |
s8 gTimeTrialDataCourseIndex |
s8 gTimeTrialsResultCursorSelection |
s8 gVersusResultCursorSelection |
const s8 sCharacterGridOrder[] |
const s8 sGameModePlayerColumnDefault[][3] |
const s8 sGameModePlayerColumnExtra[][3] |
const s8 sScreenModeIdxFromPlayerMode[4] = { 0, 1, 3, 4 } |
const s8 sScreenModePlayerCount[] = { 1, 2, 2, 3, 4 } |
const s8 sScreenModePlayerTable[] |
RoData
const union GameModePack sSoundMenuPack = { { SOUND_STEREO, SOUND_HEADPHONES, SOUND_UNUSED, SOUND_MONO } } |
s8 sTempCupSelection |
u32 sVIGammaOffDitherOn = (OS_VI_GAMMA_OFF | OS_VI_DITHER_FILTER_ON) |
s8 unref_800E86E0[4] = { 0, 0, 0, 1 } |
const s8 unref_800F2BDC[4] = { 1, 0, 0, 0 } |
s8 unref_8018EE0C |
s8 unref_D_800E86D4[12] = { 0 } |