Fix compile

This commit is contained in:
MegaMech 2025-01-01 07:36:36 -07:00
parent 1080a7fb19
commit 35fd8a412c
6 changed files with 208 additions and 62 deletions

View File

@ -48,25 +48,6 @@
#define HOLD_ALL_DPAD_AND_C_BUTTONS \
(U_JPAD | L_JPAD | R_JPAD | D_JPAD | U_CBUTTONS | L_CBUTTONS | R_CBUTTONS | D_CBUTTONS)
/**
* @brief Options for gDebugMenuSelection
*/
#define DEBUG_MENU_DISABLED 1
#define DEBUG_MENU_DEBUG_MODE 2
#define DEBUG_MENU_COURSE 3
#define DEBUG_MENU_SCREEN_MODE 4
#define DEBUG_MENU_PLAYER 5
#define DEBUG_MENU_SOUND_MODE 6
#define DEBUG_MENU_GIVE_ALL_GOLD_CUP 7
#define DEBUG_MENU_EXITED 64
/**
* @brief Options for gDebugGotoScene
*/
#define DEBUG_GOTO_RACING 0
#define DEBUG_GOTO_ENDING 1
#define DEBUG_GOTO_CREDITS_SEQUENCE_CC_50 2
#define DEBUG_GOTO_CREDITS_SEQUENCE_CC_EXTRA 3
/**
* @brief Jump to demo mode from the debug menu using L and A
@ -228,20 +209,6 @@ enum { COURSE_ONE, COURSE_TWO, COURSE_THREE, COURSE_FOUR };
#define CONFIRM_OK_SELECTION_FROM_BACK_OUT 7
#define TIME_TRIALS_DATA_SELECTION_FROM_BACK_OUT 8
/**
* @brief Options for gControllerPakMenuSelection
*/
#define CONTROLLER_PAK_MENU_SELECT_RECORD 1
#define CONTROLLER_PAK_MENU_END 2
#define CONTROLLER_PAK_MENU_ERASE 3
#define CONTROLLER_PAK_MENU_QUIT 4
#define CONTROLLER_PAK_MENU_TABLE_GAME_DATA 5
#define CONTROLLER_PAK_MENU_GO_TO_ERASING 6
#define CONTROLLER_PAK_MENU_ERASING 7
#define CONTROLLER_PAK_MENU_ERASE_ERROR_NOT_ERASED 8
#define CONTROLLER_PAK_MENU_ERASE_ERROR_NO_PAK 9
#define CONTROLLER_PAK_MENU_ERASE_ERROR_PAK_CHANGED 10
/**
* @brief Options for gScreenModeSelection and gActiveScreenMode
*/

View File

@ -3772,9 +3772,9 @@ void func_80099AEC(void) {
#endif
}
#ifdef TARGET_N64
mio0decode(gMenuCompressedBuffer, (u8*) &gMenuTextureBuffer[sMenuTextureMap[var_s1->unk_4].offset]);
mio0decode(gMenuCompressedBuffer, (u8*) &gMenuTextureBuffer[sMenuTextureMap[var_s1->texNum].offset]);
#else
memcpy(&gMenuTextureBuffer[sMenuTextureMap[var_s1->unk_4].offset], var_s1->texture->textureData,
memcpy(&gMenuTextureBuffer[sMenuTextureMap[var_s1->texNum].offset], var_s1->texture->textureData,
var_s1->texture->width * var_s1->texture->height * 2);
#endif
var_s1->texture = NULL;
@ -4798,7 +4798,7 @@ void func_8009CE64(s32 arg0) {
s32 thing;
s32 var_a1;
UNUSED s32 stackPadding0;
MenuItem* temp_v0;
MenuItem* menuItem;
var_a1 = 0;
if (gGamestate == 5) {
@ -4827,9 +4827,9 @@ void func_8009CE64(s32 arg0) {
D_8018E7AC[arg0] = 5;
} else {
var_a1 = 0;
temp_v0 = find_menu_items(0x000000B0);
if (temp_v0 != NULL) {
switch (temp_v0->cursor) { /* switch 8; irregular */
menuItem = find_menu_items(0x000000B0);
if (menuItem != NULL) {
switch (menuItem->state) { /* switch 8; irregular */
case 10: /* switch 8 */
func_802903B0();
break;
@ -4846,9 +4846,9 @@ void func_8009CE64(s32 arg0) {
}
} else {
var_a1 = 0;
temp_v0 = find_menu_items(0x000000AC);
if (temp_v0 != NULL) {
switch (temp_v0->cursor) { /* switch 7; irregular */
menuItem = find_menu_items(0x000000AC);
if (menuItem != NULL) {
switch (menuItem->state) { /* switch 7; irregular */
case 11: /* switch 7 */
func_802903B0();
D_8016556E = 1;
@ -4860,9 +4860,9 @@ void func_8009CE64(s32 arg0) {
}
} else {
var_a1 = 0;
temp_v0 = find_menu_items(0x000000C7);
if (temp_v0 != NULL) {
switch (temp_v0->cursor) { /* switch 1 */
menuItem = find_menu_items(0x000000C7);
if (menuItem != NULL) {
switch (menuItem->state) { /* switch 1 */
case 12: /* switch 1 */
func_802903B0();
var_a1 = 1;
@ -4894,9 +4894,9 @@ void func_8009CE64(s32 arg0) {
gIsGamePaused = 0;
}
}
temp_v0 = find_menu_items(0x000000BD);
if (temp_v0 != NULL) {
switch (temp_v0->cursor) { /* switch 2 */
menuItem = find_menu_items(0x000000BD);
if (menuItem != NULL) {
switch (menuItem->state) { /* switch 2 */
case 11: /* switch 2 */
D_8015F892 = 1;
D_8015F890 = 0;
@ -7952,7 +7952,7 @@ void func_800A54EC(void) {
}
whyTheSequel = D_800F0B50[why];
sp50.column = var_v1->column - 8;
sp50.row = (var_v1->row + ((sp48->cursor - whyTheSequel) * 0xD)) - 8;
sp50.row = (var_v1->row + ((sp48->state - whyTheSequel) * 0xD)) - 8;
func_800A66A8(sp48, &sp50);
}
@ -8959,7 +8959,7 @@ void handle_menus_with_pri_arg(s32 priSpecial) {
case MENU_ITEM_TYPE_1CC:
case MENU_ITEM_TYPE_1CD:
case MENU_ITEM_TYPE_1CE:
func_800AF480(entry);
func_800AF480(menuItem);
break;
case MENU_ITEM_UI_NONE:
case MENU_ITEM_UI_START_BACKGROUND:
@ -8983,7 +8983,7 @@ void handle_menus_with_pri_arg(s32 priSpecial) {
} else if (priSpecial == 0) {
isRendered = true;
}
if ((isRendered) && (j == (s8) var_s1->priority)) {
if ((isRendered) && (j == (s8) menuItem->priority)) {
render_menus(menuItem);
}
}
@ -10273,7 +10273,7 @@ MenuItem* find_menu_items(s32 arg0) {
s32 get_character_menu_state(s32 arg0) {
MenuItem* temp;
temp = get_menu_item_character(arg0);
return temp->cursor;
return temp->state;
}
void hover_cursor_over_character_portrait(MenuItem* arg0, s32 arg1) {
@ -11071,7 +11071,7 @@ void func_800ACC50(MenuItem* arg0) {
}
break;
case 1:
if (find_menu_items_dupe(0x000000B1)->cursor >= 2) {
if (find_menu_items_dupe(0x000000B1)->state >= 2) {
arg0->state = 2;
}
break;
@ -11171,7 +11171,7 @@ void func_800ACF40(MenuItem* arg0) {
if (var_v1 == 0) {
arg0->param2++;
if (arg0->param2 >= 0x1F) {
if (find_menu_items_dupe(0x000000B0)->cursor >= 2) {
if (find_menu_items_dupe(0x000000B0)->state >= 2) {
func_8009A640(arg0->D_8018DEE0_index, 0, temp_a2,
segmented_to_virtual_dupe_2(gCharacterCelebrateAnimation[temp_a1]));
arg0->state = 3;

View File

@ -1176,7 +1176,7 @@ void splash_menu_act(struct Controller* controller, u16 arg1) {
if (btnAndStick & (A_BUTTON | START_BUTTON)) {
func_8009E1C0();
func_800CA330(0x19);
gDebugMenuSelection = DEBUG_MENU_EXITED;
gDebugMenuSelection = DEBUG_MENU_OPTION_SELECTED;
if (controller->button & CONT_L) {
gDemoMode = DEMO_MODE_ACTIVE;
@ -1188,15 +1188,15 @@ void splash_menu_act(struct Controller* controller, u16 arg1) {
if (btnAndStick & A_BUTTON) {
gDebugGotoScene = DEBUG_GOTO_ENDING;
} else {
gDebugGotoScene = DEBUG_GOTO_CREDITS_SEQUENCE_CC_EXTRA;
gDebugGotoScene = DEBUG_GOTO_CREDITS_SEQUENCE_EXTRA;
}
}
play_sound2(SOUND_MENU_OK_CLICKED);
} else if ((btnAndStick & B_BUTTON) && (controller->button & Z_TRIG)) {
func_8009E1C0();
func_800CA330(0x19);
gDebugMenuSelection = DEBUG_MENU_EXITED;
gDebugGotoScene = DEBUG_GOTO_CREDITS_SEQUENCE_CC_50;
gDebugMenuSelection = DEBUG_MENU_OPTION_SELECTED;
gDebugGotoScene = DEBUG_GOTO_CREDITS_SEQUENCE_DEFAULT;
play_sound2(SOUND_MENU_OK_CLICKED);
} else if (btnAndStick & CONT_R) {
gDebugMenuSelection = DEBUG_MENU_DISABLED;

View File

@ -14,6 +14,185 @@ union GameModePack {
s32 word;
};
/**
* @brief Options for gMenuFadeType
*/
enum MenuFadeTypes {
MENU_FADE_TYPE_MAIN,
MENU_FADE_TYPE_BACK,
MENU_FADE_TYPE_DEMO,
MENU_FADE_TYPE_DATA,
MENU_FADE_TYPE_OPTION,
MENU_FADE_TYPE_MAX
};
/**
* @brief Options for gSubMenuSelection
*/
enum SubMenuSelectionType {
SUB_MENU_NONE,
SUB_MENU_DATA, // 0x01, value repurposed in map select
SUB_MENU_MAP_SELECT_CUP = 0x01,
SUB_MENU_MAP_SELECT_COURSE,
SUB_MENU_MAP_SELECT_OK,
SUB_MENU_MAP_SELECT_BATTLE_COURSE,
SUB_MENU_DATA_OPTIONS = 0x0B,
SUB_MENU_DATA_ERASE_CONFIRM,
SUB_MENU_DATA_CANT_ERASE,
SUB_MENU_OPTION_MIN = 0x15,
SUB_MENU_OPTION_RETURN_GAME_SELECT = SUB_MENU_OPTION_MIN,
SUB_MENU_OPTION_SOUND_MODE,
SUB_MENU_OPTION_COPY_CONTROLLER_PAK,
SUB_MENU_OPTION_ERASE_ALL_DATA,
SUB_MENU_OPTION_MAX = SUB_MENU_OPTION_ERASE_ALL_DATA, // 0x18
SUB_MENU_ERASE_MIN = 0x1E,
SUB_MENU_ERASE_QUIT = SUB_MENU_ERASE_MIN,
SUB_MENU_ERASE_ERASE,
SUB_MENU_ERASE_MAX = SUB_MENU_ERASE_ERASE, // 0x1F
SUB_MENU_SAVE_DATA_ERASED, // 0x20
SUB_MENU_COPY_PAK_FROM_GHOST_MIN = 0x28,
SUB_MENU_COPY_PAK_FROM_GHOST1_1P = SUB_MENU_COPY_PAK_FROM_GHOST_MIN,
SUB_MENU_COPY_PAK_FROM_GHOST2_1P,
SUB_MENU_COPY_PAK_FROM_GHOST_MAX = SUB_MENU_COPY_PAK_FROM_GHOST2_1P, // 0x29
SUB_MENU_COPY_PAK_ERROR_2P_MIN, // 0x2A
SUB_MENU_COPY_PAK_ERROR_NO_GHOST_DATA = SUB_MENU_COPY_PAK_ERROR_2P_MIN,
SUB_MENU_COPY_PAK_ERROR_NO_GAME_DATA,
SUB_MENU_COPY_PAK_ERROR_NO_PAK_2P,
SUB_MENU_COPY_PAK_ERROR_BAD_READ_2P,
SUB_MENU_COPY_PAK_ERROR_2P_MAX = SUB_MENU_COPY_PAK_ERROR_BAD_READ_2P, // 0x2D
SUB_MENU_COPY_PAK_TO_GHOST_MIN = 0x32,
SUB_MENU_COPY_PAK_TO_GHOST1_2P = SUB_MENU_COPY_PAK_TO_GHOST_MIN,
SUB_MENU_COPY_PAK_TO_GHOST2_2P,
SUB_MENU_COPY_PAK_TO_GHOST_MAX = SUB_MENU_COPY_PAK_TO_GHOST2_2P, // 0x33
SUB_MENU_COPY_PAK_ERROR_1P_MIN,
SUB_MENU_COPY_PAK_ERROR_NO_PAK_1P = SUB_MENU_COPY_PAK_ERROR_1P_MIN, // 0x34
SUB_MENU_COPY_PAK_ERROR_BAD_READ_1P,
SUB_MENU_COPY_PAK_ERROR_CANT_CREATE_1P,
SUB_MENU_COPY_PAK_ERROR_NO_PAGES_1P,
SUB_MENU_COPY_PAK_ERROR_1P_MAX,
SUB_MENU_COPY_PAK_PROMPT_MIN = SUB_MENU_COPY_PAK_ERROR_1P_MAX, // 0x38
SUB_MENU_COPY_PAK_PROMPT_QUIT = SUB_MENU_COPY_PAK_PROMPT_MIN,
SUB_MENU_COPY_PAK_PROMPT_COPY,
SUB_MENU_COPY_PAK_PROMPT_MAX = SUB_MENU_COPY_PAK_PROMPT_COPY, // 0x39
SUB_MENU_COPY_PAK_ACTION_MIN,
SUB_MENU_COPY_PAK_START = SUB_MENU_COPY_PAK_ACTION_MIN, // 0x3A
SUB_MENU_COPY_PAK_COPYING,
SUB_MENU_COPY_PAK_COMPLETED,
SUB_MENU_COPY_PAK_ACTION_MAX = SUB_MENU_COPY_PAK_COMPLETED, // 0x3C
SUB_MENU_COPY_PAK_UNABLE_ERROR_MIN = 0x41,
SUB_MENU_COPY_PAK_UNABLE_COPY_FROM_1P = SUB_MENU_COPY_PAK_UNABLE_ERROR_MIN,
SUB_MENU_COPY_PAK_UNABLE_READ_FROM_2P,
SUB_MENU_COPY_PAK_UNABLE_ERROR_MAX = SUB_MENU_COPY_PAK_UNABLE_READ_FROM_2P,
SUB_MENU_COPY_PAK_CREATE_GAME_DATA_INIT = 0x46,
SUB_MENU_COPY_PAK_CREATE_GAME_DATA_DONE
};
/**
* @brief Options for gMainMenuSelection
*/
enum MainMenuSelectionType {
MAIN_MENU_NONE,
MAIN_MENU_OPTION,
MAIN_MENU_DATA,
MAIN_MENU_PLAYER_SELECT,
MAIN_MENU_MODE_SELECT, // Mario GP - T. Trials - VS - Battle
MAIN_MENU_MODE_SUB_SELECT, // CC Selection and T.Trials options (Begin, Data)
MAIN_MENU_OK_SELECT, // OK option after selecting a submode
MAIN_MENU_OK_SELECT_GO_BACK, // OK option after going back from player select
MAIN_MENU_MODE_SUB_SELECT_GO_BACK // Used in T.Trials after going back to Data option from course data
};
/**
* @brief Options for gPlayerSelectMenuSelection
*/
enum PlayerSelectMenuSelectionTypes {
PLAYER_SELECT_MENU_NONE,
PLAYER_SELECT_MENU_MAIN,
PLAYER_SELECT_MENU_OK, // OK option after selecting characters
PLAYER_SELECT_MENU_OK_GO_BACK // OK option after going back from map select
};
/**
* @brief Options for gDebugMenuSelection
*/
enum DebugMenuSelectionTypes {
DEBUG_MENU_NONE,
DEBUG_MENU_DISABLED,
DEBUG_MENU_DEBUG_MODE,
DEBUG_MENU_COURSE,
DEBUG_MENU_SCREEN_MODE,
DEBUG_MENU_PLAYER,
DEBUG_MENU_SOUND_MODE,
DEBUG_MENU_GIVE_ALL_GOLD_CUP,
DEBUG_MENU_OPTION_SELECTED = 0x40
};
/**
* @brief Options for gControllerPakMenuSelection
*/
enum ControllerPakMenuSelectionTypes {
CONTROLLER_PAK_MENU_NONE,
CONTROLLER_PAK_MENU_SELECT_RECORD,
CONTROLLER_PAK_MENU_END,
CONTROLLER_PAK_MENU_ERASE,
CONTROLLER_PAK_MENU_QUIT,
CONTROLLER_PAK_MENU_TABLE_GAME_DATA,
CONTROLLER_PAK_MENU_GO_TO_ERASING,
CONTROLLER_PAK_MENU_ERASING,
CONTROLLER_PAK_MENU_ERASE_ERROR_NOT_ERASED,
CONTROLLER_PAK_MENU_ERASE_ERROR_NO_PAK,
CONTROLLER_PAK_MENU_ERASE_ERROR_PAK_CHANGED
};
/**
* @brief Options for gCourseRecordsMenuSelection
*/
enum CourseRecordsMenuSelectionTypes {
COURSE_RECORDS_MENU_MIN,
COURSE_RECORDS_MENU_RETURN_MENU = COURSE_RECORDS_MENU_MIN,
COURSE_RECORDS_MENU_ERASE_RECORDS,
COURSE_RECORDS_MENU_ERASE_GHOST,
COURSE_RECORDS_MENU_MAX = COURSE_RECORDS_MENU_ERASE_GHOST
};
/**
* @brief Options for gCourseRecordsSubMenuSelection
*/
enum CourseRecordsSubMenuSelectionTypes {
COURSE_RECORDS_SUB_MENU_MIN,
COURSE_RECORDS_SUB_MENU_QUIT = COURSE_RECORDS_SUB_MENU_MIN,
COURSE_RECORDS_SUB_MENU_ERASE,
COURSE_RECORDS_SUB_MENU_MAX = COURSE_RECORDS_SUB_MENU_ERASE
};
/**
* @brief Options for gDebugGotoScene
*/
enum DebugGotoSceneTypes {
DEBUG_GOTO_RACING,
DEBUG_GOTO_ENDING,
DEBUG_GOTO_CREDITS_SEQUENCE_DEFAULT,
DEBUG_GOTO_CREDITS_SEQUENCE_EXTRA
};
/**
* @brief Options for gFadeModeSelection
*/
enum FadeModeSelectionTypes {
FADE_MODE_NONE,
FADE_MODE_MAIN,
FADE_MODE_LOGO
};
/**
* @brief Options for gControllerPakScrollDirection
*/
enum ControllerPakScrollDirectionTypes {
CONTROLLER_PAK_SCROLL_DIR_NONE,
CONTROLLER_PAK_SCROLL_DIR_DOWN,
CONTROLLER_PAK_SCROLL_DIR_UP
};
// This really, really shouldn't be in this header file, but I don't know where else to put it
void rmonPrintf(const char*, ...);

View File

@ -129,7 +129,7 @@ void networking_start_session(const char* data) {
gModeSelection = GRAND_PRIX;
gPlayerCount = 1;
// gCurrentCourseId = 8;
gDebugMenuSelection = DEBUG_MENU_EXITED;
gDebugMenuSelection = DEBUG_MENU_OPTION_SELECTED;
func_8009E1C0();
func_800CA330(0x19);
}

View File

@ -488,7 +488,7 @@ void func_80039DA4(void) {
};
if (((GetCupCursorPosition() == COURSE_ONE) && (D_8016556E == 0)) || (gDemoMode == 1) ||
(gDebugMenuSelection == DEBUG_MENU_EXITED)) {
(gDebugMenuSelection == DEBUG_MENU_OPTION_SELECTED)) {
for (i = 0; i < NUM_PLAYERS; i++) {
D_80165270[i] = sp2C[i];
}
@ -506,7 +506,7 @@ UNUSED s16 D_800E43A8 = 0;
void spawn_players_gp_one_player(f32* arg0, f32* arg1, f32 arg2) {
func_80039DA4();
if (((GetCupCursorPosition() == COURSE_ONE) && (D_8016556E == 0)) || (gDemoMode == 1) ||
(gDebugMenuSelection == DEBUG_MENU_EXITED)) {
(gDebugMenuSelection == DEBUG_MENU_OPTION_SELECTED)) {
s16 rand;
s16 i;
@ -639,7 +639,7 @@ void spawn_players_versus_one_player(f32* arg0, f32* arg1, f32 arg2) {
void spawn_players_gp_two_player(f32* arg0, f32* arg1, f32 arg2) {
func_80039DA4();
if ((GetCupCursorPosition() == COURSE_ONE) || (gDemoMode == 1) || (gDebugMenuSelection == DEBUG_MENU_EXITED)) {
if ((GetCupCursorPosition() == COURSE_ONE) || (gDemoMode == 1) || (gDebugMenuSelection == DEBUG_MENU_OPTION_SELECTED)) {
s16 rand;
s16 i;