From eac875afa021e184612cd4bcafa42467fe0b9581 Mon Sep 17 00:00:00 2001 From: Antonio Castelli Date: Mon, 7 Nov 2022 19:34:12 -0800 Subject: [PATCH] Split negative map IDs into separate enum. --- include/enums.h | 10 +++++++--- src/game.c | 6 +++--- src/menu.c | 2 +- src/unknown_05CEF0.c | 18 +++++++++--------- 4 files changed, 20 insertions(+), 16 deletions(-) diff --git a/include/enums.h b/include/enums.h index 8f915b0f..a2b9c07e 100644 --- a/include/enums.h +++ b/include/enums.h @@ -7,9 +7,6 @@ /* All the enums defined here can be used in asset files */ typedef enum MapId { - MAP_ID_UNK_NEG10 = -10, - MAP_ID_UNK_NEG2 = -2, - MAP_ID_UNK_NEG1 = -1, /* 0x00 */ MAP_ID_OVERWORLD, /* 0x01 */ MAP_ID_BLUEY1, /* 0x02 */ MAP_ID_DRAGON_FOREST, @@ -77,6 +74,13 @@ typedef enum MapId { /* 0x40 */ MAP_ID_FINAL_CUTSCENE2, } MapId; +// There are a few instances of comparing AssetLevelHeadersEnums with special, negative values. +typedef enum SpecialMapId { + SPECIAL_MAP_ID_UNK_NEG10 = -10, + SPECIAL_MAP_ID_UNK_NEG2 = -2, + SPECIAL_MAP_ID_UNK_NEG1 = -1, +} SpecialMapId; + typedef enum Vehicle { VEHICLE_CAR, VEHICLE_HOVERCRAFT, diff --git a/src/game.c b/src/game.c index 49ca030f..bd4a1ff1 100644 --- a/src/game.c +++ b/src/game.c @@ -1273,8 +1273,8 @@ void ingame_logic_loop(s32 updateRate) { func_8006C22C(&gPlayableMapId, &D_80123504, &i, &D_80123508); func_8006F42C(); if (gPlayableMapId < 0) { - if (gPlayableMapId == MAP_ID_UNK_NEG1 || gPlayableMapId == MAP_ID_UNK_NEG10) { - if (gPlayableMapId == MAP_ID_UNK_NEG10 && is_in_two_player_adventure()) { + if (gPlayableMapId == SPECIAL_MAP_ID_UNK_NEG1 || gPlayableMapId == SPECIAL_MAP_ID_UNK_NEG10) { + if (gPlayableMapId == SPECIAL_MAP_ID_UNK_NEG10 && is_in_two_player_adventure()) { func_8006F398(); } buttonHeldInputs |= L_TRIG; @@ -1670,7 +1670,7 @@ void load_level_for_menu(MapId levelId, s32 numberOfPlayers, s32 cutsceneId) { gSPEndDisplayList(gCurrDisplayList++); } } - if (levelId != MAP_ID_UNK_NEG1) { + if (levelId != SPECIAL_MAP_ID_UNK_NEG1) { load_level_3(levelId, numberOfPlayers, 0, VEHICLE_PLANE, cutsceneId); gIsLoading = FALSE; return; diff --git a/src/menu.c b/src/menu.c index e095472a..67629018 100644 --- a/src/menu.c +++ b/src/menu.c @@ -4816,7 +4816,7 @@ s32 menu_game_select_loop(s32 updateRate) { func_80000B28(); gIsInTracksMode = TRUE; func_8006E5BC(); - load_level_for_menu(MAP_ID_UNK_NEG1, -1, 0); + load_level_for_menu(SPECIAL_MAP_ID_UNK_NEG1, -1, 0); menu_init(MENU_TRACK_SELECT); } else { gIsInAdventureTwo = D_800DF460; diff --git a/src/unknown_05CEF0.c b/src/unknown_05CEF0.c index d68d8f16..060f0b6a 100644 --- a/src/unknown_05CEF0.c +++ b/src/unknown_05CEF0.c @@ -295,21 +295,21 @@ void func_8005CB68(Object_Racer *racer, s8 *arg1) { } if (settings->worldId == WORLD_CENTRAL_AREA) { if (racerUnk1AC == 1) { - func_8006C1AC(MAP_ID_UNK_NEG2, 0, VEHICLE_CAR, 0); + func_8006C1AC(SPECIAL_MAP_ID_UNK_NEG2, 0, VEHICLE_CAR, 0); func_8006C1AC(miscAsset68Byte5, 0, -1, 0); func_8006C1AC(miscAsset67CourseByte, 0, -1, 1); } else { - func_8006C1AC(MAP_ID_UNK_NEG10, 0, VEHICLE_CAR, 0); + func_8006C1AC(SPECIAL_MAP_ID_UNK_NEG10, 0, VEHICLE_CAR, 0); func_8006C1AC(miscAsset67CourseByte, 0, -1, 2); } } else if (racerUnk1AC == 1) { set_eeprom_settings_value(1); //Set Adventure Two Unlocked - func_8006C1AC(MAP_ID_UNK_NEG2, 0, VEHICLE_CAR, 0); + func_8006C1AC(SPECIAL_MAP_ID_UNK_NEG2, 0, VEHICLE_CAR, 0); func_8006C1AC(miscAsset68Byte7, 0, -1, 0); func_8006C1AC(miscAsset68Byte6, 0, -1, 0); func_8006C1AC(miscAsset67CourseByte, 0, -1, 1); } else { - func_8006C1AC(MAP_ID_UNK_NEG10, 0, VEHICLE_CAR, 0); + func_8006C1AC(SPECIAL_MAP_ID_UNK_NEG10, 0, VEHICLE_CAR, 0); func_8006C1AC(miscAsset67CourseByte, 0, -1, 2); } if (racerUnk1AC == 1) { @@ -339,7 +339,7 @@ void func_8005CB68(Object_Racer *racer, s8 *arg1) { settings->courseFlagsPtr[settings->courseId] |= 2; if (!(settings->bosses & bossId)) { settings->bosses |= bossId; - func_8006C1AC(MAP_ID_UNK_NEG1, 0, VEHICLE_CAR, 0); + func_8006C1AC(SPECIAL_MAP_ID_UNK_NEG1, 0, VEHICLE_CAR, 0); func_8006C1AC(miscAsset67CourseByte, 4, -1, 4); } else if (!(settings->bosses & (bossId << 6))) { settings->bosses |= bossId << 6; @@ -352,21 +352,21 @@ void func_8005CB68(Object_Racer *racer, s8 *arg1) { settings->wizpigAmulet = var_t1; } if (var_t1 != 0) { - func_8006C1AC(MAP_ID_UNK_NEG1, 0, VEHICLE_CAR, 0); + func_8006C1AC(SPECIAL_MAP_ID_UNK_NEG1, 0, VEHICLE_CAR, 0); func_8006C1AC(ASSET_LEVELNAME_WIZPIGAMULETSEQUENCE, 0, -1, settings->wizpigAmulet - 1); func_8006C1AC(miscAsset67CourseByte, 6, -1, 6); } else { - func_8006C1AC(MAP_ID_UNK_NEG1, 0, VEHICLE_CAR, 0); + func_8006C1AC(SPECIAL_MAP_ID_UNK_NEG1, 0, VEHICLE_CAR, 0); func_8006C1AC(miscAsset67CourseByte, 4, -1, 4); } } else { - func_8006C1AC(MAP_ID_UNK_NEG1, 0, VEHICLE_CAR, 0); + func_8006C1AC(SPECIAL_MAP_ID_UNK_NEG1, 0, VEHICLE_CAR, 0); func_8006C1AC(miscAsset67CourseByte, 4, -1, 4); } func_8006F140(4); func_8000E128(); } else { - func_8006C1AC(MAP_ID_UNK_NEG10, 0, VEHICLE_CAR, 0); + func_8006C1AC(SPECIAL_MAP_ID_UNK_NEG10, 0, VEHICLE_CAR, 0); func_8006C1AC(miscAsset67CourseByte, 5, -1, 5); func_8006F140(3); }