diff --git a/src/borders.c b/src/borders.c index 7be4fb80..006af437 100644 --- a/src/borders.c +++ b/src/borders.c @@ -34,7 +34,7 @@ void divider_draw(Gfx **dList) { gDPFillRectangle((*dList)++, height * 0, y, width, y + yOffset); break; case VIEWPORT_LAYOUT_3_PLAYERS: - levelHeader = get_current_level_header(); + levelHeader = level_header(); // Draw black square in the bottom-right corner. if (hud_setting() || (levelHeader->race_type & RACETYPE_CHALLENGE)) { gDPFillRectangle((*dList)++, width >> 1, height >> 1, width, height); diff --git a/src/game.c b/src/game.c index 2316856d..0baa9cce 100644 --- a/src/game.c +++ b/src/game.c @@ -63,7 +63,7 @@ s16 gLevelPropertyStack[5 * 4]; // Stores level info for cutscenes. 5 sets of fo * Additionally loads other globally accessed information, like level names, then runs a checksum compare, for good * measure. */ -void init_level_globals(void) { +void level_global_init(void) { s32 i; s32 size; UNUSED s32 pad; @@ -244,10 +244,10 @@ UNUSED s32 search_level_properties_backwards(s32 levelID, s8 raceType, s8 worldI } /** - * Return the number of tracks that fall under a certain race type. + * Return the number of tracks that aren't challenge maps. */ -UNUSED s32 get_race_type_count(s8 raceType) { - if (raceType >= 0 && raceType < 16) { +UNUSED s32 leveltable_non_challenge_count(s8 raceType) { + if (raceType >= RACETYPE_DEFAULT && raceType < 16) { return gRaceTypeCountTable[raceType]; } return 0; @@ -256,7 +256,7 @@ UNUSED s32 get_race_type_count(s8 raceType) { /** * Returns the number of levels that belong to one hub world. */ -UNUSED s32 get_world_level_count(s8 worldID) { +UNUSED s32 leveltable_world_level_count(s8 worldID) { s32 out, i; out = 0; for (i = 0; i < gNumberOfLevelHeaders; i++) { @@ -270,7 +270,7 @@ UNUSED s32 get_world_level_count(s8 worldID) { /** * Returns the default vehicle from the set map ID. */ -Vehicle get_map_default_vehicle(s32 mapId) { +Vehicle leveltable_vehicle_default(s32 mapId) { if (mapId > 0 && mapId < gNumberOfLevelHeaders) { return gGlobalLevelTable[mapId].vehicles & 0xF; } @@ -280,7 +280,7 @@ Vehicle get_map_default_vehicle(s32 mapId) { /** * Returns the available vehicles from the set map ID. */ -s32 get_map_available_vehicles(s32 mapId) { +s32 leveltable_vehicle_usable(s32 mapId) { if (mapId > 0 && mapId < gNumberOfLevelHeaders) { s32 temp = gGlobalLevelTable[mapId].vehicles; if (temp != 0) { @@ -293,7 +293,7 @@ s32 get_map_available_vehicles(s32 mapId) { /** * Returns the race type from the set map ID. */ -s8 get_map_race_type(s32 mapId) { +s8 leveltable_type(s32 mapId) { if (mapId >= 0 && mapId < gNumberOfLevelHeaders) { return gGlobalLevelTable[mapId].raceType; } @@ -303,7 +303,7 @@ s8 get_map_race_type(s32 mapId) { /** * Returns the world ID from the set map ID. */ -s8 get_map_world_id(s32 mapId) { +s8 leveltable_world(s32 mapId) { if (mapId >= 0 && mapId < gNumberOfLevelHeaders) { return gGlobalLevelTable[mapId].world; } @@ -313,7 +313,7 @@ s8 get_map_world_id(s32 mapId) { /** * Returns the ID of the current hub world. Example: Dino Domain. */ -s32 get_hub_area_id(s32 worldId) { +s32 level_world_id(s32 worldId) { s8 *hubAreaIds; if (worldId < 0 || worldId >= gNumberOfWorlds) { @@ -327,7 +327,7 @@ s32 get_hub_area_id(s32 worldId) { /** * Writes the level and hub count to the two arguments passed through. */ -void get_number_of_levels_and_worlds(s32 *outLevelCount, s32 *outWorldCount) { +void level_count(s32 *outLevelCount, s32 *outWorldCount) { *outLevelCount = gNumberOfLevelHeaders; *outWorldCount = gNumberOfWorlds; } @@ -336,7 +336,7 @@ void get_number_of_levels_and_worlds(s32 *outLevelCount, s32 *outWorldCount) { * Returns true if the current event is a regular race or a boss race. * Returns false if it's a menu, challenge or hubworld. */ -s32 check_if_in_race(void) { +s32 level_is_race(void) { return gIsInRace; } @@ -345,7 +345,7 @@ s32 check_if_in_race(void) { * Sets weather, fog and active cutscenes where applicable. * Official Name: levelInit */ -void load_level(s32 levelId, s32 numberOfPlayers, s32 entranceId, Vehicle vehicleId, s32 cutsceneId) { +void level_load(s32 levelId, s32 numberOfPlayers, s32 entranceId, Vehicle vehicleId, s32 cutsceneId) { s8 *someAsset; s32 i; s32 size; @@ -391,9 +391,9 @@ void load_level(s32 levelId, s32 numberOfPlayers, s32 entranceId, Vehicle vehicl D_800DD330 = 0; prevLevelID = levelId; if (gCurrentLevelHeader->race_type == RACETYPE_DEFAULT) { - clear_level_property_stack(); + level_properties_reset(); } - if (get_level_property_stack_pos() == 0 && D_800DD32C == 0) { + if (level_properties_get() == 0 && D_800DD32C == 0) { if (gCurrentLevelHeader->race_type == RACETYPE_BOSS) { var_s0 = settings->courseFlagsPtr[levelId]; wizpig = FALSE; @@ -402,7 +402,7 @@ void load_level(s32 levelId, s32 numberOfPlayers, s32 entranceId, Vehicle vehicl wizpig = TRUE; } if (!(var_s0 & 1) || wizpig) { - push_level_property_stack(levelId, entranceId, vehicleId, cutsceneId); + level_properties_push(levelId, entranceId, vehicleId, cutsceneId); if (settings->bosses & (1 << settings->worldId)) { cutsceneId = CUTSCENE_ID_UNK_7; } else { @@ -429,7 +429,7 @@ void load_level(s32 levelId, s32 numberOfPlayers, s32 entranceId, Vehicle vehicl if (settings->keys & (1 << var_s0) && !(settings->cutsceneFlags & (CUTSCENE_DINO_DOMAIN_KEY << (var_s0 + 31)))) { // Trigger World Key unlocking Challenge Door cutscene. - push_level_property_stack(levelId, entranceId, vehicleId, cutsceneId); + level_properties_push(levelId, entranceId, vehicleId, cutsceneId); settings->cutsceneFlags |= CUTSCENE_DINO_DOMAIN_KEY << (var_s0 + 31); someAsset = (s8 *) get_misc_asset(ASSET_MISC_68); levelId = someAsset[var_s0 - 1]; @@ -441,7 +441,7 @@ void load_level(s32 levelId, s32 numberOfPlayers, s32 entranceId, Vehicle vehicl if (gCurrentLevelHeader->race_type == RACETYPE_HUBWORLD && gCurrentLevelHeader->world == WORLD_CENTRAL_AREA && !(settings->cutsceneFlags & CUTSCENE_WIZPIG_FACE) && settings->wizpigAmulet >= 4) { // Trigger wizpig face cutscene - push_level_property_stack(levelId, entranceId, vehicleId, cutsceneId); + level_properties_push(levelId, entranceId, vehicleId, cutsceneId); entranceId = 0; cutsceneId = CUTSCENE_NONE; settings->cutsceneFlags |= CUTSCENE_WIZPIG_FACE; @@ -457,7 +457,7 @@ void load_level(s32 levelId, s32 numberOfPlayers, s32 entranceId, Vehicle vehicl load_asset_to_address(ASSET_LEVEL_HEADERS, (u32) gCurrentLevelHeader, offset, size); } mempool_free(gTempAssetTable); - set_ai_level((s8 *) &gCurrentLevelHeader->AILevelTable); + aitable_init((s8 *) &gCurrentLevelHeader->AILevelTable); func_8000CBC0(); gMapId = levelId; for (var_s0 = 0; var_s0 < 7; var_s0++) { @@ -597,7 +597,7 @@ void load_level(s32 levelId, s32 numberOfPlayers, s32 entranceId, Vehicle vehicl /** * If the level's music ID is nonzero, set the current background music. */ -void start_level_music(f32 tempo) { +void level_music_start(f32 tempo) { if (gCurrentLevelHeader->music != SEQUENCE_NONE) { music_channel_reset_all(); music_play(gCurrentLevelHeader->music); @@ -609,7 +609,7 @@ void start_level_music(f32 tempo) { /** * Return the current map ID. */ -s32 get_current_map_id(void) { +s32 level_id(void) { return gMapId; } @@ -617,7 +617,7 @@ s32 get_current_map_id(void) { * Return the race type ID of the current level. * Official name: levelGetType */ -u8 get_current_level_race_type(void) { +u8 level_type(void) { return gCurrentLevelHeader->race_type; } @@ -625,21 +625,21 @@ u8 get_current_level_race_type(void) { * Return the header data of the current level. * Official Name: levelGetLevel */ -LevelHeader *get_current_level_header(void) { +LevelHeader *level_header(void) { return gCurrentLevelHeader; } /** * Returns the amount of level headers there are in the game. */ -UNUSED u8 get_total_level_header_count(void) { +UNUSED u8 level_header_count(void) { return gNumberOfLevelHeaders - 1; } /** * Returns the name of the level from the passed ID */ -char *get_level_name(s32 levelId) { +char *level_name(s32 levelId) { char *levelName; u8 numberOfNullPointers = 0; @@ -677,8 +677,8 @@ char *get_level_name(s32 levelId) { /** * Call multiple functions to stop and free audio, then free track, weather and wave data. */ -void clear_audio_and_track(void) { - free_ai_behaviour_table(); +void level_free(void) { + aitable_free(); bgdraw_primcolour(0, 0, 0); mempool_free(gCurrentLevelHeader); sndp_stop_all_looped(); @@ -702,7 +702,7 @@ void clear_audio_and_track(void) { * Set the skill level of the AI. * Apply offsets based on game mode. */ -void set_ai_level(s8 *aiLevelTable) { +void aitable_init(s8 *aiLevelTable) { s32 temp; UNUSED s32 temp2; s16 tableIndexCount; @@ -755,21 +755,21 @@ void set_ai_level(s8 *aiLevelTable) { /** * Frees the AI behaviour table from memory. */ -void free_ai_behaviour_table(void) { +void aitable_free(void) { mempool_free(gAIBehaviourTable); } /** * Return the behaviour value table for AI racers. */ -AIBehaviourTable *get_ai_behaviour_table(void) { +AIBehaviourTable *aitable_get(void) { return gAIBehaviourTable; } /** * Return whether it is a standard race with two players in adventure mode. */ -s8 is_two_player_adventure_race(void) { +s8 race_is_adventure_2P(void) { return gTwoPlayerAdvRace; } @@ -777,7 +777,7 @@ s8 is_two_player_adventure_race(void) { * Pushes the current level data onto a stack. * Used for preserving certain properties when viewing cutscenes, where this information would otherwise be lost. */ -void push_level_property_stack(s32 levelId, s32 entranceId, Vehicle vehicleId, s32 cutsceneId) { +void level_properties_push(s32 levelId, s32 entranceId, Vehicle vehicleId, s32 cutsceneId) { gLevelPropertyStack[gLevelPropertyStackPos++] = levelId; gLevelPropertyStack[gLevelPropertyStackPos++] = entranceId; gLevelPropertyStack[gLevelPropertyStackPos++] = vehicleId; @@ -788,7 +788,7 @@ void push_level_property_stack(s32 levelId, s32 entranceId, Vehicle vehicleId, s * Reads the level data from the stack, then pops it. * Used after cutscenes to properly restore the previous level status. */ -void pop_level_property_stack(s32 *levelId, s32 *entranceId, s32 *vehicleId, s32 *cutsceneId) { +void level_properties_pop(s32 *levelId, s32 *entranceId, s32 *vehicleId, s32 *cutsceneId) { s32 tempVehicleID; gLevelPropertyStackPos--; @@ -807,7 +807,7 @@ void pop_level_property_stack(s32 *levelId, s32 *entranceId, s32 *vehicleId, s32 /** * Resets the position in the level propert stack, effectively clearing it. */ -void clear_level_property_stack(void) { +void level_properties_reset(void) { gLevelPropertyStackPos = 0; } @@ -815,7 +815,7 @@ void clear_level_property_stack(void) { * Returns the position of the level property stack. * Should always return a multiple of 4. */ -s16 get_level_property_stack_pos(void) { +s16 level_properties_get(void) { return gLevelPropertyStackPos; } diff --git a/src/game.h b/src/game.h index 2e1aeffc..4f9ecf80 100644 --- a/src/game.h +++ b/src/game.h @@ -31,28 +31,28 @@ enum CutsceneIDs { CUTSCENE_ID_UNK_64 = 0x64 }; -Vehicle get_map_default_vehicle(s32 mapId); -s32 get_map_available_vehicles(s32 mapId); -s8 get_map_race_type(s32 mapId); -s8 get_map_world_id(s32 mapId); -s32 get_hub_area_id(s32 worldId); -void get_number_of_levels_and_worlds(s32 *outLevelCount, s32 *outWorldCount); -s32 check_if_in_race(void); -void start_level_music(f32 tempo); -s32 get_current_map_id(void); -u8 get_current_level_race_type(void); -LevelHeader *get_current_level_header(void); -u8 get_total_level_header_count(void); -char *get_level_name(s32 levelId); -void clear_audio_and_track(void); -void set_ai_level(s8 *aiLevelTable); -void free_ai_behaviour_table(void); -AIBehaviourTable *get_ai_behaviour_table(void); -s8 is_two_player_adventure_race(void); -void push_level_property_stack(s32 levelId, s32 entranceId, Vehicle vehicleId, s32 cutsceneId); -void pop_level_property_stack(s32 *levelId, s32 *entranceId, s32 *vehicleId, s32 *cutsceneId); -void clear_level_property_stack(void); -s16 get_level_property_stack_pos(void); +Vehicle leveltable_vehicle_default(s32 mapId); +s32 leveltable_vehicle_usable(s32 mapId); +s8 leveltable_type(s32 mapId); +s8 leveltable_world(s32 mapId); +s32 level_world_id(s32 worldId); +void level_count(s32 *outLevelCount, s32 *outWorldCount); +s32 level_is_race(void); +void level_music_start(f32 tempo); +s32 level_id(void); +u8 level_type(void); +LevelHeader *level_header(void); +u8 level_header_count(void); +char *level_name(s32 levelId); +void level_free(void); +void aitable_init(s8 *aiLevelTable); +void aitable_free(void); +AIBehaviourTable *aitable_get(void); +s8 race_is_adventure_2P(void); +void level_properties_push(s32 levelId, s32 entranceId, Vehicle vehicleId, s32 cutsceneId); +void level_properties_pop(s32 *levelId, s32 *entranceId, s32 *vehicleId, s32 *cutsceneId); +void level_properties_reset(void); +s16 level_properties_get(void); s32 func_8006C300(void); #endif diff --git a/src/game_ui.c b/src/game_ui.c index 7f5684c3..511c3ee6 100644 --- a/src/game_ui.c +++ b/src/game_ui.c @@ -399,7 +399,7 @@ void hud_init_element(void) { s32 k; s32 temp; - temp = get_current_level_race_type(); + temp = level_type(); if (temp == RACETYPE_UNK1 || temp == RACETYPE_HUBWORLD) { gHudOffsetX = 0; gHudRaceStart = TRUE; @@ -573,7 +573,7 @@ void hud_init_element(void) { gCurrentHud->entry[HUD_LAP_COUNT_LABEL].pos.x += -58.0f; gCurrentHud->entry[HUD_LAP_COUNT_FLAG].pos.x += -58.0f; } - switch (get_current_level_race_type()) { + switch (level_type()) { case RACETYPE_BOSS: gCurrentHud->entry[HUD_BANANA_COUNT_ICON_SPIN].pos.x += -120.0f; gCurrentHud->entry[HUD_BANANA_COUNT_NUMBER_1].pos.x += -120.0f; @@ -630,7 +630,7 @@ void hud_init_element(void) { gCurrentHud->entry[HUD_BALLOON_COUNT_NUMBER_1].spriteID = 9; gCurrentHud->entry[HUD_BALLOON_COUNT_NUMBER_2].spriteID = 9; } - if (get_current_level_race_type() & RACETYPE_CHALLENGE) { + if (level_type() & RACETYPE_CHALLENGE) { gPrevToggleSetting = gHudToggleSettings[1]; gHudToggleSettings[1] = 0; } else { @@ -683,7 +683,7 @@ void hud_render_player(Gfx **dList, Mtx **mtx, Vertex **vertexList, Object *obj, if (D_8012718A) { obj = get_racer_object_by_port(1 - gHudCurrentViewport); } - gHudLevelHeader = get_current_level_header(); + gHudLevelHeader = level_header(); if (obj == NULL) { if (cutscene_id() == 10) { obj = get_racer_object_by_port(PLAYER_ONE); @@ -759,7 +759,7 @@ void hud_render_player(Gfx **dList, Mtx **mtx, Vertex **vertexList, Object *obj, music_play(SEQUENCE_RACE_START_FANFARE); sndp_set_active_sound_limit(12); } else { - start_level_music(1.0f); + level_music_start(1.0f); } gRaceStartShowHudStep += 1; } @@ -811,7 +811,7 @@ void hud_render_player(Gfx **dList, Mtx **mtx, Vertex **vertexList, Object *obj, hud_balloons(racer); cam_set_sprite_anim_mode(SPRITE_ANIM_NORMALIZED); } else { - switch (get_current_level_race_type()) { + switch (level_type()) { case RACETYPE_DEFAULT: case RACETYPE_HORSESHOE_GULCH: if (is_taj_challenge()) { @@ -844,7 +844,7 @@ void hud_render_player(Gfx **dList, Mtx **mtx, Vertex **vertexList, Object *obj, hud_time_trial_finish(racer, updateRate); } else if (cam_get_viewport_layout() == VIEWPORT_LAYOUT_1_PLAYER && racer->finishPosition == 1) { if (is_in_two_player_adventure()) { - if (get_current_level_race_type() == RACETYPE_BOSS) { + if (level_type() == RACETYPE_BOSS) { goto showFinishRace; } goto block_95; @@ -1406,7 +1406,7 @@ void hud_main_boss(s32 countdown, Object *obj, s32 updateRate) { hud_race_time(racer, updateRate); hud_weapon(obj, updateRate); - level = get_current_level_header(); + level = level_header(); if (level->laps > 1) { hud_lap_count(racer, updateRate); } @@ -1629,8 +1629,7 @@ void hud_main_time_trial(s32 arg0, Object *playerRacerObj, s32 updateRate) { if ((curRacer->lap > 0) && (curRacer->lap < gHudLevelHeader->laps) && (curRacer->lap_times[curRacer->lap] < 20) && (gHUDVoiceSoundMask == 0) && (curRacer->vehicleID <= VEHICLE_PLANE)) { gHudSettings = get_settings(); - if (curRacer->lap_times[curRacer->lap - 1] < - gHudSettings->flapTimesPtr[curRacer->vehicleID][get_current_map_id()]) { + if (curRacer->lap_times[curRacer->lap - 1] < gHudSettings->flapTimesPtr[curRacer->vehicleID][level_id()]) { stopwatchTimer = curRacer->lap_times[curRacer->lap - 1]; for (i = 0; i < curRacer->lap - 1; i++) { if (stopwatchTimer >= curRacer->lap_times[i]) { @@ -1937,7 +1936,7 @@ void hud_race_start(s32 countdown, s32 updateRate) { if (cam_get_viewport_layout() > TWO_PLAYERS) { music_play(SEQUENCE_NONE); } else { - start_level_music(1.0f); + level_music_start(1.0f); } sound_play(SOUND_WHOOSH1, NULL); gRaceStartShowHudStep++; @@ -2192,7 +2191,7 @@ void hud_race_position(Object_Racer *racer, s32 updateRate) { } place = racer->racePosition; if (get_race_countdown()) { - if (get_current_level_race_type() == RACETYPE_BOSS || is_taj_challenge()) { + if (level_type() == RACETYPE_BOSS || is_taj_challenge()) { place = 2; } else { settings = get_settings(); @@ -2552,7 +2551,7 @@ void hud_finish_position(Object_Racer *racer) { hud_element_render(&gHudDL, &gHudMtx, &gHudVtx, &gCurrentHud->entry[HUD_CHALLENGE_FINISH_POS_1]); hud_element_render(&gHudDL, &gHudMtx, &gHudVtx, &gCurrentHud->entry[HUD_CHALLENGE_FINISH_POS_2]); - if (!(get_current_level_race_type() & RACETYPE_CHALLENGE_BATTLE) && is_in_two_player_adventure() == FALSE) { + if (!(level_type() & RACETYPE_CHALLENGE_BATTLE) && is_in_two_player_adventure() == FALSE) { get_racer_objects(&racerCount); if (gNumActivePlayers >= 2 && (is_in_two_player_adventure() == FALSE || is_postrace_viewport_active() == FALSE)) { @@ -2599,7 +2598,7 @@ void hud_race_finish_multiplayer(Object_Racer *racer, s32 updateRate) { LevelHeader *curLevelHeader; s32 temp_v0_4; - raceType = get_current_level_race_type(); + raceType = level_type(); if (is_in_two_player_adventure() && is_postrace_viewport_active() && gAdventurePlayerFinish == FALSE) { if (func_8000E184()) { gCurrentHud->entry[HUD_CHALLENGE_FINISH_POS_1].pos.y -= 108.0f; @@ -2717,7 +2716,7 @@ void hud_race_finish_multiplayer(Object_Racer *racer, s32 updateRate) { break; } if (gNumActivePlayers != 1) { - curLevelHeader = get_current_level_header(); + curLevelHeader = level_header(); totalRaceTime = 0; fastestLapTime = racer->lap_times[0]; temp_v0_4 = 0; @@ -2849,7 +2848,7 @@ void hud_time_trial_message(s16 *playerID) { if (playerID != NULL) { #if VERSION >= VERSION_79 - if (settings->racers[*playerID].best_times & 0x80 && (get_current_level_race_type() == RACETYPE_DEFAULT)) { + if (settings->racers[*playerID].best_times & 0x80 && (level_type() == RACETYPE_DEFAULT)) { #else if (settings->racers[*playerID].best_times & 0x80) { #endif @@ -3389,7 +3388,7 @@ void hud_render_general(Gfx **dList, Mtx **mtx, Vertex **vtx, s32 updateRate) { } } - gHudLevelHeader = get_current_level_header(); + gHudLevelHeader = level_header(); objectGroup = get_racer_objects_by_port(&objectCount); gHudDL = *dList; gHudMtx = *mtx; @@ -3613,9 +3612,8 @@ void hud_render_general(Gfx **dList, Mtx **mtx, Vertex **vtx, s32 updateRate) { gMinimapScreenY = -gMinimapDotOffsetY / 2; break; case THREE_PLAYERS: - if (get_current_level_race_type() == RACETYPE_CHALLENGE_EGGS || - get_current_level_race_type() == RACETYPE_CHALLENGE_BATTLE || - get_current_level_race_type() == RACETYPE_CHALLENGE_BANANAS) { + if (level_type() == RACETYPE_CHALLENGE_EGGS || level_type() == RACETYPE_CHALLENGE_BATTLE || + level_type() == RACETYPE_CHALLENGE_BANANAS) { gMinimapScreenX = (gMinimapDotOffsetX / 2) - 8; gMinimapScreenY = -gMinimapDotOffsetY / 2; } else { @@ -3729,11 +3727,11 @@ void hud_render_general(Gfx **dList, Mtx **mtx, Vertex **vtx, s32 updateRate) { gHudMinimapColours[someRacer->characterId].green, gHudMinimapColours[someRacer->characterId].blue, opacity); } - if (!(get_current_level_race_type() & RACETYPE_CHALLENGE) || (!someRacer->raceFinished)) { + if (!(level_type() & RACETYPE_CHALLENGE) || (!someRacer->raceFinished)) { if (osTvType == OS_TV_TYPE_PAL) { gCurrentHud->entry[HUD_MINIMAP_MARKER].pos.x -= 4.0f; } - if (get_current_level_race_type() == RACETYPE_CHALLENGE_BATTLE) { + if (level_type() == RACETYPE_CHALLENGE_BATTLE) { switch (someRacer->elevation) { case ELEVATION_LOW: gCurrentHud->entry[HUD_MINIMAP_MARKER].scale = 0.8f; diff --git a/src/joypad.c b/src/joypad.c index 157402a6..7e912401 100644 --- a/src/joypad.c +++ b/src/joypad.c @@ -6,7 +6,7 @@ s32 sNoControllerPluggedIn = FALSE; // Looks to be a boolean for whether a controller is plugged in. FALSE if plugged in, and TRUE if not. -u16 gButtonMask = 0xFFFF; // Used when anti-cheat/anti-tamper has failed in init_level_globals() +u16 gButtonMask = 0xFFFF; // Used when anti-cheat/anti-tamper has failed in level_global_init() OSMesgQueue sSIMesgQueue; OSMesg sSIMesgBuf; @@ -237,7 +237,7 @@ s8 input_clamp_stick_mag(s8 stickMag) { } /** - * Used when anti-cheat/anti-tamper has failed in init_level_globals() + * Used when anti-cheat/anti-tamper has failed in level_global_init() * Official Name: joySetSecurity */ void drm_disable_input(void) { diff --git a/src/lights.c b/src/lights.c index 04c01577..8fc3e449 100644 --- a/src/lights.c +++ b/src/lights.c @@ -110,7 +110,7 @@ ObjectLight *func_80031CAC(Object *obj, LevelObjectEntry_RgbaLight *lightEntry) light->unk42 = 0; light->unk44 = NULL; if (lightEntry->unk1C < 7) { - levelHeader = get_current_level_header(); + levelHeader = level_header(); if (((s32) levelHeader->unk74[lightEntry->unk1C]) != -1) { light->unk44_asset = (MiscAssetObjectHeader24 *) levelHeader->unk74[lightEntry->unk1C]; light->unk48 = light->unk44_asset->unk0; diff --git a/src/menu.c b/src/menu.c index 5de49d32..ffd59d27 100644 --- a/src/menu.c +++ b/src/menu.c @@ -2453,7 +2453,7 @@ void init_save_data(void) { s32 saveFileSize; s32 offset; - get_number_of_levels_and_worlds(&numLevels, &numWorlds); + level_count(&numLevels, &numWorlds); courseFlagsPtrSize = numLevels * sizeof(s32); saveFileSize = courseFlagsPtrSize; saveFileSize += numWorlds * sizeof(s16); // balloonsPtrSize; @@ -3061,7 +3061,7 @@ void trackmenu_set_records(void) { Settings *settings; settings = get_settings(); - get_number_of_levels_and_worlds(&numLevels, &numWorlds); + level_count(&numLevels, &numWorlds); for (i = 0; i < numLevels; i++) { settings->courseFlagsPtr[i] = RACE_UNATTEMPTED; @@ -7519,7 +7519,7 @@ void menu_file_select_init(void) { UNUSED s32 numLevels; UNUSED s32 numWorlds; - get_number_of_levels_and_worlds(&numLevels, &numWorlds); // Unused + level_count(&numLevels, &numWorlds); // Unused menu_assetgroup_load(gFileSelectObjectIndices); menu_imagegroup_load(gFileSelectImageIndices); func_8007FFEC(6); @@ -8245,7 +8245,7 @@ void menu_track_select_init(void) { load_font(ASSET_FONTS_BIGFONT); #endif settings = get_settings(); - get_number_of_levels_and_worlds(&levelCount, &worldCount); + level_count(&levelCount, &worldCount); trackIds = (s8 *) get_misc_asset(ASSET_MISC_TRACKS_MENU_IDS); if (gTitleScreenLoaded != FALSE) { gTrackSelectCursorX = 0; @@ -8425,7 +8425,7 @@ void trackmenu_assets(s32 type) { gTrackSelectTargetY = gTrackSelectY; break; case TRACKMENU_TYPE_FREE: - vehicle = get_map_default_vehicle(gTrackIdForPreview); + vehicle = leveltable_vehicle_default(gTrackIdForPreview); for (i = 0; i < gNumberOfActivePlayers; i++) { gPlayerSelectConfirm[i] = 0; gPlayerSelectVehicle[i] = vehicle; @@ -8739,7 +8739,7 @@ void trackmenu_render_2D(s32 x, s32 y, char *hubName, char *trackName, s32 rectO opacity = 255; } if (hubName != gTrackMenuHubName) { - temp = (s32) get_level_name(get_hub_area_id(WORLD_SNOWFLAKE_MOUNTAIN)); + temp = (s32) level_name(level_world_id(WORLD_SNOWFLAKE_MOUNTAIN)); if ((s32) hubName == temp) { set_kerning(TRUE); } @@ -8845,11 +8845,11 @@ void func_8008FF1C(UNUSED s32 updateRate) { cur->visible = 0; } else { cur->visible = 1; - hubName = get_level_name(get_hub_area_id(trackY + 1)); + hubName = level_name(level_world_id(trackY + 1)); temp4 = gTrackSelectIDs[trackY][trackX]; cur->hubName = hubName; if ((temp4) != -1) { - cur->trackName = get_level_name(trackMenuIds[(trackY * 6) + trackX]); + cur->trackName = level_name(trackMenuIds[(trackY * 6) + trackX]); if (trackX == 4) { if (((settings->trophies >> (trackY * 2)) & 3) == 3) { cur->visible = 2; @@ -8961,7 +8961,7 @@ void trackmenu_track_view(s32 updateRate) { gTrackmenuLoadedLevel = gTrackIdForPreview; gSelectedTrackX = gTrackSelectCursorX; gSelectedTrackY = gTrackSelectCursorY; - set_level_default_vehicle(get_map_default_vehicle(gTrackIdForPreview)); + set_level_default_vehicle(leveltable_vehicle_default(gTrackIdForPreview)); } } x1 = ((gSelectedTrackX * SCREEN_WIDTH) - gTrackSelectX) + SCREEN_WIDTH_FLOAT_HALF - 80.0f; @@ -9164,7 +9164,7 @@ void trackmenu_setup_render(UNUSED s32 updateRate) { if (sMenuGuiOpacity < 0) { sMenuGuiOpacity = 0; } - availableVehicleFlags = get_map_available_vehicles(gTrackIdForPreview); + availableVehicleFlags = leveltable_vehicle_usable(gTrackIdForPreview); #if VERSION >= VERSION_79 if (gNumberOfActivePlayers >= 2) { if (gTrackIdForPreview == ASSET_LEVEL_SPACEPORTALPHA) { @@ -9175,7 +9175,7 @@ void trackmenu_setup_render(UNUSED s32 updateRate) { } } #endif - i = (s32) get_level_name(gTrackIdForPreview); + i = (s32) level_name(gTrackIdForPreview); set_text_font(ASSET_FONTS_BIGFONT); set_text_colour(192, 192, 255, 0, sMenuGuiOpacity); set_text_background_colour(0, 0, 0, 0); @@ -9533,7 +9533,7 @@ void func_80092188(s32 updateRate) { } camEnableUserView(0, TRUE); if (menuDelay == 0) { - availableVehicles = get_map_available_vehicles(gTrackIdForPreview); + availableVehicles = leveltable_vehicle_usable(gTrackIdForPreview); #if VERSION >= VERSION_79 if (gNumberOfActivePlayers >= 2) { if (gTrackIdForPreview == ASSET_LEVEL_SPACEPORTALPHA) { @@ -9792,8 +9792,8 @@ void menu_adventure_track_init(void) { gOptionBlinkTimer = 0; gMenuDelay = 0; mapId = settings->unk4C->mapID; - gPlayerSelectVehicle[PLAYER_ONE] = get_map_default_vehicle(mapId); - raceType = get_map_race_type(mapId); + gPlayerSelectVehicle[PLAYER_ONE] = leveltable_vehicle_default(mapId); + raceType = leveltable_type(mapId); if (raceType == RACETYPE_HUBWORLD || raceType == RACETYPE_BOSS || (!(raceType & RACETYPE_CHALLENGE) && (!(settings->courseFlagsPtr[mapId] & RACE_CLEARED)))) { ttVoiceLine = gTTVoiceLines[mapId]; @@ -9839,8 +9839,8 @@ void menu_adventure_track_init(void) { load_level_for_menu(mapId, -1, 1); } dialogue_clear(7); - if (get_map_race_type(mapId) & RACETYPE_CHALLENGE) { - set_current_text(get_map_world_id(mapId) + ASSET_GAME_TEXT_59); + if (leveltable_type(mapId) & RACETYPE_CHALLENGE) { + set_current_text(leveltable_world(mapId) + ASSET_GAME_TEXT_59); } } @@ -9873,15 +9873,15 @@ void adventuretrack_render(UNUSED s32 updateRate, s32 arg1, s32 arg2) { mtx_ortho(&sMenuCurrDisplayList, &sMenuCurrHudMat); if (gMenuDelay >= -20) { if (gMenuDelay <= 20) { - mask = get_map_available_vehicles(mapID); - levelName = get_level_name(mapID); + mask = leveltable_vehicle_usable(mapID); + levelName = level_name(mapID); set_text_font(FONT_LARGE); set_text_background_colour(0, 0, 0, 0); set_text_colour(0, 0, 0, 255, 128); draw_text(&sMenuCurrDisplayList, SCREEN_WIDTH_HALF + 1, 46, levelName, ALIGN_MIDDLE_CENTER); set_text_colour(255, 255, 255, 0, 255); draw_text(&sMenuCurrDisplayList, SCREEN_WIDTH_HALF, 43, levelName, ALIGN_MIDDLE_CENTER); - if (!(get_map_race_type(mapID) & RACETYPE_CHALLENGE)) { + if (!(leveltable_type(mapID) & RACETYPE_CHALLENGE)) { if (arg2 == 0) { if (is_time_trial_enabled()) { if (trackmenu_staff_beaten(mapID) >= 0) { @@ -9950,7 +9950,7 @@ void adventuretrack_render(UNUSED s32 updateRate, s32 arg1, s32 arg2) { savedY = y; for (i = 0; i <= VEHICLE_PLANE; i++) { - alpha = (arg1 < 2 && get_map_default_vehicle(mapID) != (Vehicle) i) ? 128 : 255; + alpha = (arg1 < 2 && leveltable_vehicle_default(mapID) != (Vehicle) i) ? 128 : 255; if ((1 << i) & mask) { if (i == gPlayerSelectVehicle[0]) { texrect_draw(&sMenuCurrDisplayList, gRaceSelectionImages[i * 3 + 1], 104, y, 255, 255, @@ -10043,7 +10043,7 @@ s32 menu_adventure_track_loop(s32 updateRate) { if (settings->courseFlagsPtr[mapId] & RACE_CLEARED_SILVER_COINS) { sp1C = 2; } - if (get_map_race_type(mapId) & RACETYPE_CHALLENGE) { + if (leveltable_type(mapId) & RACETYPE_CHALLENGE) { challenge = TRUE; } sp20 = FALSE; @@ -10057,10 +10057,10 @@ s32 menu_adventure_track_loop(s32 updateRate) { gOptionBlinkTimer = (gOptionBlinkTimer + updateRate) & 0x3F; adventuretrack_render(updateRate, sp1C, sp20); if (sp1C < 2) { - gPlayerSelectVehicle[PLAYER_ONE] = get_map_default_vehicle(mapId); + gPlayerSelectVehicle[PLAYER_ONE] = leveltable_vehicle_default(mapId); } vehicle = gPlayerSelectVehicle[PLAYER_ONE]; - vehicleFlags = get_map_available_vehicles(mapId); + vehicleFlags = leveltable_vehicle_usable(mapId); vehicle2 = vehicle; menu_input(); if (gMenuDelay == 0) { @@ -10167,7 +10167,7 @@ void menu_pause_init(void) { gMenuOptionText[0] = gMenuText[ASSET_MENU_TEXT_CONTINUE]; gMenuOptionCap = 1; if (gTrophyRaceWorldId == 0) { - raceType = get_map_race_type(settings->courseId); + raceType = leveltable_type(settings->courseId); if (settings->worldId == WORLD_CENTRAL_AREA && is_taj_challenge()) { gMenuOptionText[1] = gMenuText[ASSET_MENU_TEXT_ABANDONCHALLENGE]; gMenuOptionCap = 2; @@ -10453,7 +10453,7 @@ void postrace_start(s32 finishState, s32 worldID) { LevelHeader *header; rumble_init(FALSE); - header = get_current_level_header(); + header = level_header(); gPostraceFinishState = finishState; if (is_in_two_player_adventure()) { set_scene_viewport_num(VIEWPORT_LAYOUT_1_PLAYER); @@ -10911,7 +10911,7 @@ s32 menu_postrace(Gfx **dList, Mtx **matrices, Vertex **vertices, s32 updateRate gMenuImages[4].trans.x_position = 0.0f; gMenuImages[4].trans.y_position = 36.0f; gMenuImages[4].trans.scale = sMenuImageProperties[4].trans.scale; - if (get_map_race_type(settings->courseId) & RACETYPE_CHALLENGE) { + if (leveltable_type(settings->courseId) & RACETYPE_CHALLENGE) { gMenuStage = POSTRACE_STAGE_OPTIONS; } else if (!settings->display_times) { postrace_offsets(gRaceOrderMenuElements, 0.5f, 15.0f, 0.5f, textOffsetY, timeOffsetY); @@ -11171,7 +11171,7 @@ void postrace_free(void) { s32 headerWorldTex; LevelHeader *header; - header = get_current_level_header(); + header = level_header(); menu_assetgroup_free(gRaceResultsObjectIndices); headerWorldTex = header->world - 1; @@ -11955,10 +11955,10 @@ void menu_trophy_race_round_init(void) { } while (index == -1); for (i = 0; i < gNumberOfActivePlayers; i++) { - gPlayerSelectVehicle[i] = get_map_default_vehicle(index); + gPlayerSelectVehicle[i] = leveltable_vehicle_default(index); } - set_level_default_vehicle(get_map_default_vehicle(index)); + set_level_default_vehicle(leveltable_vehicle_default(index)); load_level_for_menu(index, -1, 1); gMenuDelay = 0; @@ -11990,8 +11990,8 @@ void trophyround_render(UNUSED s32 updateRate) { yPos = 0; } - worldName = get_level_name(get_hub_area_id(gTrophyRaceWorldId)); - levelName = get_level_name(levelIds[((gTrophyRaceWorldId - 1) * 6) + gTrophyRaceRound]); + worldName = level_name(level_world_id(gTrophyRaceWorldId)); + levelName = level_name(levelIds[((gTrophyRaceWorldId - 1) * 6) + gTrophyRaceRound]); set_text_background_colour(0, 0, 0, 0); set_text_font(ASSET_FONTS_BIGFONT); // Text Shadows first @@ -12405,7 +12405,7 @@ s32 menu_trophy_race_rankings_loop(s32 updateRate) { } } else { ret = MENU_RESULT_RETURN_TO_GAME; - settings->courseId = get_hub_area_id(settings->worldId); + settings->courseId = level_world_id(settings->worldId); if (gInAdvModeTrophyRace) { gInAdvModeTrophyRace = FALSE; ret = settings->courseId | MENU_RESULT_FLAGS_200; @@ -12632,11 +12632,11 @@ void ghostmenu_render(UNUSED s32 updateRate) { while (scroll < gGhostMenuTotal && numToDraw > 0) { if (gGhostDataElementPositions[0]) {} // Fakematch - currentWorldId = get_map_world_id(gGhostLevelIDsMenu[scroll]) - 1; + currentWorldId = leveltable_world(gGhostLevelIDsMenu[scroll]) - 1; if (currentWorldId < 0 || currentWorldId >= WORLD_FUTURE_FUN_LAND) { currentWorldId = 0; } - levelName = get_level_name(gGhostLevelIDsMenu[scroll]); + levelName = level_name(gGhostLevelIDsMenu[scroll]); #if REGION == REGION_JP for (i = 0; levelName[i] != '\0'; i += 2) { textBuffer[i] = levelName[i]; @@ -13203,7 +13203,7 @@ s32 menu_credits_loop(s32 updateRate) { gCreditsMenuElements[creditsMenuElementIndex].filterGreen = 0; gCreditsMenuElements[creditsMenuElementIndex].filterBlendFactor = 48; gCreditsMenuElements[creditsMenuElementIndex].t.asciiText = - get_level_name(mainTrackIds[gCreditsControlData[var_s4]]); + level_name(mainTrackIds[gCreditsControlData[var_s4]]); creditsMenuElementIndex++; gCreditsMenuElements[creditsMenuElementIndex].top = textPos + 14; @@ -13653,13 +13653,13 @@ s32 get_filtered_cheats(void) { if (!gIsInTracksMode || is_time_trial_enabled()) { cheats &= CHEATS_ALLOWED_IN_ADVENTURE_AND_TIME_TRIAL; } - if (!check_if_in_race()) { + if (!level_is_race()) { cheats &= ~CHEAT_MIRRORED_TRACKS; // Disable mirroring } - if (get_map_race_type(get_settings()->courseId) & RACETYPE_CHALLENGE) { + if (leveltable_type(get_settings()->courseId) & RACETYPE_CHALLENGE) { cheats &= CHEATS_ALLOWED_IN_CHALLENGES; } - if (gIsInAdventureTwo && check_if_in_race()) { + if (gIsInAdventureTwo && level_is_race()) { cheats |= CHEAT_MIRRORED_TRACKS; // Enable mirroring } return cheats; @@ -13678,7 +13678,7 @@ s32 get_number_of_active_players(void) { * as it would otherwise return 1. */ s32 get_active_player_count(void) { - LevelHeader *header = get_current_level_header(); + LevelHeader *header = level_header(); if (gIsInTwoPlayerAdventure && !gIsInTracksMode) { if (header->race_type == RACETYPE_DEFAULT || header->race_type & RACETYPE_CHALLENGE) { return 2; diff --git a/src/object_functions.c b/src/object_functions.c index 21536717..9fb60896 100644 --- a/src/object_functions.c +++ b/src/object_functions.c @@ -598,7 +598,7 @@ void obj_loop_trophycab(Object *obj, s32 updateRate) { s32 bossFlags; settings = get_settings(); - header = get_current_level_header(); + header = level_header(); jingle_state = obj->jingle_state; if (obj->properties.trophyCabinet.trophy == FALSE) { if (header->race_type != RACETYPE_CUTSCENE_2 && header->race_type != RACETYPE_CUTSCENE_1) { @@ -1216,7 +1216,7 @@ void obj_loop_stopwatchman(Object *obj, s32 updateRate) { tt->animFrameF = 0.0f; } } - header = get_current_level_header(); + header = level_header(); distance = 0.0f; obj->x_velocity = 0.0f; obj->z_velocity = 0.0f; @@ -2559,7 +2559,7 @@ void obj_loop_parkwarden(Object *obj, s32 updateRate) { updateRateF *= 1.2; } taj = obj->npc; - levelHeader = get_current_level_header(); + levelHeader = level_header(); obj->particleEmittersEnabled = OBJ_EMIT_NONE; if (obj->animFrame == 0 && taj->animFrameF > 1.0) { taj->animFrameF = 0.0f; @@ -3886,7 +3886,7 @@ void obj_loop_trigger(Object *obj, UNUSED s32 updateRate) { trigger = obj->trigger; settings = get_settings(); courseFlags = settings->courseFlagsPtr[settings->courseId]; - curRaceType = get_current_level_race_type(); + curRaceType = level_type(); if (triggerEntry->index >= 0) { flags = 0x10000 << triggerEntry->index; if (obj->interactObj->distance < trigger->radius) { @@ -4394,7 +4394,7 @@ void obj_loop_banana(Object *obj, s32 updateRate) { properties->intangibleTimer = 0; } if (obj->interactObj->distance < 120) { - if (get_current_level_race_type() == RACETYPE_CHALLENGE_BANANAS) { + if (level_type() == RACETYPE_CHALLENGE_BANANAS) { racerObj = obj->interactObj->obj; if (racerObj != NULL && racerObj->header->behaviorId == BHV_RACER) { racer = racerObj->racer; @@ -4408,7 +4408,7 @@ void obj_loop_banana(Object *obj, s32 updateRate) { racerObj = obj->interactObj->obj; if (racerObj != NULL && racerObj->header->behaviorId == BHV_RACER) { racer = racerObj->racer; - if (get_current_level_race_type() != RACETYPE_CHALLENGE_BANANAS || racer->bananas < 2) { + if (level_type() != RACETYPE_CHALLENGE_BANANAS || racer->bananas < 2) { prevSoundMask = racer->bananaSoundMask; audspat_play_sound_at_position(SOUND_SELECT, racerObj->trans.x_position, racerObj->trans.y_position, racerObj->trans.z_position, AUDIO_POINT_FLAG_ONE_TIME_TRIGGER, @@ -4498,7 +4498,7 @@ void obj_loop_silvercoin(Object *obj, s32 updateRate) { Object *racerObj; s32 twoPlayerAdv; - twoPlayerAdv = is_two_player_adventure_race(); + twoPlayerAdv = race_is_adventure_2P(); if ((twoPlayerAdv && obj->properties.silverCoin.action != SILVER_COIN_INACTIVE) || (!twoPlayerAdv && obj->properties.silverCoin.action == SILVER_COIN_ACTIVE)) { interactObj = obj->interactObj; @@ -4690,7 +4690,7 @@ void obj_loop_weaponballoon(Object *weaponBalloonObj, s32 updateRate) { racer->balloon_level = 0; } // Disallow level 3 balloons in challenge mode - if (get_current_level_race_type() & RACETYPE_CHALLENGE) { + if (level_type() & RACETYPE_CHALLENGE) { if (racer->balloon_level > 1) { racer->balloon_level = 1; } @@ -5160,7 +5160,8 @@ void weapon_trap(Object *weaponObj, s32 updateRate) { generate_collision_candidates(1, (Vec3f *) &weaponObj->trans.x_position, (Vec3f *) &intendedPos.x, -1); hasCollision = FALSE; surface = SURFACE_NONE; - resolve_collisions((Vec3f *) &weaponObj->trans.x_position, (Vec3f *) &intendedPos, &radius, &surface, 1, &hasCollision); + resolve_collisions((Vec3f *) &weaponObj->trans.x_position, (Vec3f *) &intendedPos, &radius, &surface, 1, + &hasCollision); weaponObj->x_velocity = (intendedPos.x - weaponObj->trans.x_position) / updateRateF; weaponObj->y_velocity = (intendedPos.y - weaponObj->trans.y_position) / updateRateF; weaponObj->z_velocity = (intendedPos.z - weaponObj->trans.z_position) / updateRateF; @@ -6583,7 +6584,7 @@ void obj_loop_levelname(Object *obj, s32 updateRate) { } } if (properties->opacity > 0) { - levelName = get_level_name(properties->levelID); + levelName = level_name(properties->levelID); textWidth = (get_text_width(levelName, 0, 0) + 24) >> 1; x1 = SCREEN_WIDTH_HALF - textWidth; x2 = textWidth + SCREEN_WIDTH_HALF; diff --git a/src/objects.c b/src/objects.c index e5b2e153..f50173ca 100644 --- a/src/objects.c +++ b/src/objects.c @@ -970,7 +970,7 @@ void track_spawn_objects(s32 mapID, s32 index) { if (is_in_tracks_mode()) { gIsSilverCoinRace = FALSE; } - if (get_current_level_race_type()) { + if (level_type()) { gIsSilverCoinRace = FALSE; } @@ -1092,7 +1092,7 @@ void track_setup_racers(Vehicle vehicle, u32 entranceID, s32 playerCount) { gNumRacers = 0; D_8011AF00 = 0; set_taj_status(TAJ_WANDER); - levelHeader = get_current_level_header(); + levelHeader = level_header(); raceType = levelHeader->race_type; if (raceType == RACETYPE_CUTSCENE_1 || raceType == RACETYPE_CUTSCENE_2) { return; @@ -1149,7 +1149,7 @@ void track_setup_racers(Vehicle vehicle, u32 entranceID, s32 playerCount) { numPlayers = playerCount + 1; gNumRacers = 8; D_800DC740 = 0; - if (is_two_player_adventure_race()) { + if (race_is_adventure_2P()) { numPlayers = 2; D_800DC740 = 1; set_scene_viewport_num(VIEWPORT_LAYOUT_2_PLAYERS); @@ -1164,7 +1164,7 @@ void track_setup_racers(Vehicle vehicle, u32 entranceID, s32 playerCount) { } if (raceType == RACETYPE_HUBWORLD || numPlayers >= 3) { gNumRacers = numPlayers; - if (get_level_property_stack_pos() == 0 && D_800DC708 != 0) { + if (level_properties_get() == 0 && D_800DC708 != 0) { spawnAngle[0] += D_800DC708; D_800DC708 = 0; } @@ -1261,7 +1261,7 @@ void track_setup_racers(Vehicle vehicle, u32 entranceID, s32 playerCount) { } else if (D_8011AD3C == 2) { vehicle = levelHeader->vehicle; } else { - if (racerEntry->playerIndex == 4 || is_two_player_adventure_race()) { + if (racerEntry->playerIndex == 4 || race_is_adventure_2P()) { vehicle = get_player_selected_vehicle(PLAYER_ONE); } else if (numPlayers >= 2) { vehicle = get_player_selected_vehicle(racerEntry->playerIndex); @@ -1416,7 +1416,7 @@ void track_setup_racers(Vehicle vehicle, u32 entranceID, s32 playerCount) { curRacer->transparency = 96; } // Spawn staff ghost - if (timetrial_init_staff_ghost(get_current_map_id())) { + if (timetrial_init_staff_ghost(level_id())) { objectID = gRacerObjectTable[(gMapDefaultVehicle * NUM_CHARACTERS) + 8]; racerEntry->common.size = ((objectID & 0x100) >> 1) | 0x10; @@ -1478,7 +1478,7 @@ void track_setup_racers(Vehicle vehicle, u32 entranceID, s32 playerCount) { gEventCountdown = 0; } if (raceType == RACETYPE_DEFAULT && (playerCount + 1) == 1 && is_in_adventure_two() == FALSE) { - if (is_two_player_adventure_race() == FALSE) { + if (race_is_adventure_2P() == FALSE) { for (j = 0; j < 3; j++) { racerEntry->common.objectID = ASSET_OBJECT_ID_POSARROW; racerEntry->common.size = sizeof(LevelObjectEntryCommon); @@ -1528,7 +1528,7 @@ void track_setup_racers(Vehicle vehicle, u32 entranceID, s32 playerCount) { if (racetype_demo()) { rumble_init(FALSE); gEventCountdown = 0; - start_level_music(1.0f); + level_music_start(1.0f); } //!@bug: Free timer is already 0 when loading levels. mempool_free_timer(0); @@ -2872,7 +2872,7 @@ void obj_update(s32 updateRate) { for (i = 0; i < gNumRacers; i++) { update_player_racer((*gRacers)[i], updateRate); } - if (get_current_level_race_type() == RACETYPE_DEFAULT) { + if (level_type() == RACETYPE_DEFAULT) { for (i = 0; i < gNumRacers; i++) { racer = gRacersByPosition[i]->racer; if (racer->playerIndex != -1) { @@ -5188,7 +5188,7 @@ void obj_collision_transform(Object *obj) { // https://decomp.me/scratch/S3kHf #ifdef NON_MATCHING -s32 collision_objectmodel(Object *obj, s32 arg1, s32* arg2, Vec3f *arg3, f32* arg4, f32* arg5, s8* surface) { +s32 collision_objectmodel(Object *obj, s32 arg1, s32 *arg2, Vec3f *arg3, f32 *arg4, f32 *arg5, s8 *surface) { ModelInstance *modInst; s32 sp170; s32 sp16C; @@ -5212,16 +5212,19 @@ s32 collision_objectmodel(Object *obj, s32 arg1, s32* arg2, Vec3f *arg3, f32* ar MtxF *spDC; s32 spB4[10]; f32 sp8C[10]; - + sp160 = 0; - + for (sp170 = 0; sp170 < gCollisionObjectCount; sp170++) { sp158 = gCollisionObjects[sp170]; modInst = sp158->modelInstances[sp158->modelIndex]; sp154 = modInst->objModel; temp = sp158->trans.x_position - obj->trans.x_position; - dist = sqrtf((temp) * (temp) + (sp158->trans.y_position - obj->trans.y_position) * (sp158->trans.y_position - obj->trans.y_position) + (sp158->trans.z_position - obj->trans.z_position) * (sp158->trans.z_position - obj->trans.z_position)); + dist = sqrtf( + (temp) * (temp) + + (sp158->trans.y_position - obj->trans.y_position) * (sp158->trans.y_position - obj->trans.y_position) + + (sp158->trans.z_position - obj->trans.z_position) * (sp158->trans.z_position - obj->trans.z_position)); j = dist; if (sp158->interactObj->flags & 0x20) { @@ -5261,40 +5264,33 @@ s32 collision_objectmodel(Object *obj, s32 arg1, s32* arg2, Vec3f *arg3, f32* ar modInst = sp158->modelInstances[sp158->modelIndex]; sp154 = modInst->objModel; collision = sp158->collisionData; - #ifdef AVOID_UB +#ifdef AVOID_UB spDC = &collision->matrices[((sp158->collisionData->mtxFlip + 1) & 1)]; - #else +#else spDC = (MtxF *) &collision->_matrices[((sp158->collisionData->mtxFlip + 1) & 1) << 1]; - #endif - +#endif + sp14C = func_8001790C(obj, sp158); if (sp14C != NULL) { for (i = 0, j = 0; j < arg1; j++, i += 3) { sp13C[j] = sp14C->unk0C[i + 0]; sp12C[j] = sp14C->unk0C[i + 1]; sp11C[j] = sp14C->unk0C[i + 2]; - mtxf_transform_point(spDC, - arg4[i], arg4[i + 1], arg4[i + 2], - &sp100[j], &spF0[j], &spE0[j]); + mtxf_transform_point(spDC, arg4[i], arg4[i + 1], arg4[i + 2], &sp100[j], &spF0[j], &spE0[j]); } } else { for (i = 0, j = 0; j < arg1; j++, i++) { - mtxf_transform_point(spDC, - arg3[i].x, arg3[i].y, arg3[i].z, - &sp13C[j], &sp12C[j], &sp11C[j]); + mtxf_transform_point(spDC, arg3[i].x, arg3[i].y, arg3[i].z, &sp13C[j], &sp12C[j], &sp11C[j]); } } - for (i = 0, j = 0; j < arg1; j++, i+= 3) { - mtxf_transform_point(spDC, - arg4[i], arg4[i + 1], arg4[i + 2], - &sp100[j], &spF0[j], &spE0[j]); + for (i = 0, j = 0; j < arg1; j++, i += 3) { + mtxf_transform_point(spDC, arg4[i], arg4[i + 1], arg4[i + 2], &sp100[j], &spF0[j], &spE0[j]); } arg2[0] = 0; - tempv0 = func_80017A18(sp154, arg1, arg2, - sp13C, sp12C, sp11C, sp100, spF0, spE0, - arg5, surface, 1.0 / sp158->trans.scale); + tempv0 = func_80017A18(sp154, arg1, arg2, sp13C, sp12C, sp11C, sp100, spF0, spE0, arg5, surface, + 1.0 / sp158->trans.scale); if (tempv0 != 0) { // @fake @@ -5302,20 +5298,20 @@ s32 collision_objectmodel(Object *obj, s32 arg1, s32* arg2, Vec3f *arg3, f32* ar sp158->collisionData->collidedObj = obj; } - + if (D_8011AD24[0] == 0) { sp14C = func_80017978(obj, sp158); } - #ifdef AVOID_UB +#ifdef AVOID_UB spDC = &sp158->collisionData->matrices[(sp158->collisionData->mtxFlip + 2)]; - #else +#else spDC = (MtxF *) &sp158->collisionData->_matrices[(sp158->collisionData->mtxFlip + 2) << 1]; - #endif - +#endif + // @fake - if (sp158){} - + if (sp158) {} + sp16C = 1; for (i = 0, j = 0; j < arg1; j++, i += 3, sp16C <<= 1) { if (sp14C != NULL) { @@ -5324,9 +5320,7 @@ s32 collision_objectmodel(Object *obj, s32 arg1, s32* arg2, Vec3f *arg3, f32* ar sp14C->unk0C[i + 2] = spE0[j]; } if (tempv0 & sp16C) { - mtxf_transform_point(spDC, - sp100[j], spF0[j], spE0[j], - &arg4[i + 0], &arg4[i + 1], &arg4[i + 2]); + mtxf_transform_point(spDC, sp100[j], spF0[j], spE0[j], &arg4[i + 0], &arg4[i + 1], &arg4[i + 2]); } } @@ -6147,7 +6141,7 @@ void race_check_finish(s32 updateRate) { s8 flags[3]; s32 camera; - currentLevelHeader = get_current_level_header(); + currentLevelHeader = level_header(); settings = get_settings(); numHumanRacersFinished = 0; numHumanRacers = 0; @@ -6290,9 +6284,9 @@ void race_check_finish(s32 updateRate) { } postrace_start(0, 30); } else { - push_level_property_stack(SPECIAL_MAP_ID_NO_LEVEL, 0, VEHICLE_CAR, CUTSCENE_ID_NONE); - push_level_property_stack(ASSET_LEVEL_TTAMULETSEQUENCE, 0, VEHICLE_NO_OVERRIDE, - settings->ttAmulet - 1); + level_properties_push(SPECIAL_MAP_ID_NO_LEVEL, 0, VEHICLE_CAR, CUTSCENE_ID_NONE); + level_properties_push(ASSET_LEVEL_TTAMULETSEQUENCE, 0, VEHICLE_NO_OVERRIDE, + settings->ttAmulet - 1); race_finish_adventure(TRUE); } gRaceFinishTriggered = TRUE; @@ -6680,7 +6674,7 @@ void race_transition_adventure(s32 updateRate) { if (gRaceEndStage == 4) { set_anti_aliasing(TRUE); disable_racer_input(); - if (!(get_current_level_race_type() & RACETYPE_CHALLENGE_BATTLE)) { + if (!(level_type() & RACETYPE_CHALLENGE_BATTLE)) { if (osTvType == OS_TV_TYPE_PAL) { cutsceneTimerLimit = 415; } else { @@ -6741,7 +6735,7 @@ void race_finish_time_trial(void) { Settings *settings; LevelHeader *levelHeader; - levelHeader = get_current_level_header(); + levelHeader = level_header(); settings = get_settings(); settings->timeTrialRacer = 0; settings->unk115[1] = 0; @@ -6800,13 +6794,12 @@ void race_finish_time_trial(void) { } if (((!vehicleID) && (!vehicleID)) && (!vehicleID)) {} // Fakematch if (settings->timeTrialRacer == 0) { - if (bestCourseTime < 10800 && - (vehicleID != gTimeTrialVehicle || timetrial_map_id() != get_current_map_id() || - bestCourseTime < gTimeTrialTime)) { + if (bestCourseTime < 10800 && (vehicleID != gTimeTrialVehicle || timetrial_map_id() != level_id() || + bestCourseTime < gTimeTrialTime)) { gTimeTrialTime = bestCourseTime; gTimeTrialVehicle = gPrevTimeTrialVehicle; gTimeTrialCharacter = settings->racers[0].character; - timetrial_swap_player_ghost(get_current_map_id()); + timetrial_swap_player_ghost(level_id()); gHasGhostToSave = TRUE; } if (osTvType == OS_TV_TYPE_PAL) { @@ -6814,7 +6807,7 @@ void race_finish_time_trial(void) { } if (bestCourseTime < gTTGhostTimeToBeat) { if (gTimeTrialStaffGhost) { - tt_ghost_beaten(get_current_map_id(), &bestRacer->playerIndex); + tt_ghost_beaten(level_id(), &bestRacer->playerIndex); } else { hud_time_trial_message(&bestRacer->playerIndex); } @@ -6829,7 +6822,7 @@ void race_finish_time_trial(void) { * Returns true if the player ghost data is valid for playback. */ s32 timetrial_valid_player_ghost(void) { - if (timetrial_map_id() != get_current_map_id()) { + if (timetrial_map_id() != level_id()) { return FALSE; } else { if (gTimeTrialVehicle != gPrevTimeTrialVehicle) { @@ -6859,7 +6852,7 @@ s32 timetrial_load_staff_ghost(s32 mapId) { s32 ret; TTGhostTable *nextGhostTable; - gMapDefaultVehicle = get_map_default_vehicle(mapId); + gMapDefaultVehicle = leveltable_vehicle_default(mapId); ghostTable = (TTGhostTable *) load_asset_section_from_rom(ASSET_TTGHOSTS_TABLE); nextGhostTable = ghostTable; @@ -6941,7 +6934,7 @@ u8 timetrial_init_staff_ghost(s32 trackId) { gBeatStaffGhost = FALSE; gTimeTrialStaffGhost = FALSE; settings = get_settings(); - if (get_map_default_vehicle(trackId) == (Vehicle) gPrevTimeTrialVehicle) { + if (leveltable_vehicle_default(trackId) == (Vehicle) gPrevTimeTrialVehicle) { mainTrackIds = (s8 *) get_misc_asset(ASSET_MISC_MAIN_TRACKS_IDS); staffTime = (u16 *) get_misc_asset(ASSET_MISC_GHOST_UNLOCK_TIMES); for (i = 0; mainTrackIds[i] != -1 && trackId != mainTrackIds[i]; i++) {} @@ -6985,9 +6978,8 @@ s32 timetrial_init_player_ghost(s32 playerID) { s32 ghostMapID; ghostMapID = timetrial_map_id(); - if (get_current_map_id() != ghostMapID || gTimeTrialVehicle != gPrevTimeTrialVehicle) { - cpakStatus = - timetrial_load_player_ghost(playerID, get_current_map_id(), gPrevTimeTrialVehicle, &characterID, &time); + if (level_id() != ghostMapID || gTimeTrialVehicle != gPrevTimeTrialVehicle) { + cpakStatus = timetrial_load_player_ghost(playerID, level_id(), gPrevTimeTrialVehicle, &characterID, &time); if (cpakStatus == CONTROLLER_PAK_GOOD) { gTimeTrialVehicle = gPrevTimeTrialVehicle; gTimeTrialCharacter = characterID; @@ -6995,7 +6987,7 @@ s32 timetrial_init_player_ghost(s32 playerID) { } return cpakStatus; } - return timetrial_load_player_ghost(playerID, get_current_map_id(), gPrevTimeTrialVehicle, NULL, NULL); + return timetrial_load_player_ghost(playerID, level_id(), gPrevTimeTrialVehicle, NULL, NULL); } /** @@ -8601,7 +8593,7 @@ void func_8001F23C(Object *obj, LevelObjectEntry_Animation *animEntry) { camera = newObj->animatedObject; camera->unk44 = D_8011AD3E; viewportCount = cam_get_viewport_layout(); - if (is_two_player_adventure_race()) { + if (race_is_adventure_2P()) { viewportCount = VIEWPORT_LAYOUT_2_PLAYERS; } for (i = 0; i < viewportCount;) { @@ -9705,7 +9697,7 @@ void mode_init_taj_race(void) { gTajRaceInit -= 1; if (gTajRaceInit == 0) { - levelHeader = get_current_level_header(); + levelHeader = level_header(); gChallengePrevMusic = levelHeader->music; gChallengePrevInstruments = levelHeader->instruments; levelHeader->music = SEQUENCE_TAJS_RACES; @@ -9814,7 +9806,7 @@ void mode_end_taj_race(s32 reason) { Object *obj; LevelHeader *levelHeader; - levelHeader = get_current_level_header(); + levelHeader = level_header(); levelHeader->race_type = RACETYPE_HUBWORLD; levelHeader->music = gChallengePrevMusic; levelHeader->instruments = gChallengePrevInstruments; @@ -9875,7 +9867,7 @@ void mode_end_taj_race(s32 reason) { } music_change_on(); hud_audio_init(); - start_level_music(1.0f); + level_music_start(1.0f); gIsTajChallenge = FALSE; } @@ -10001,7 +9993,7 @@ Object *find_furthest_telepoint(f32 x, f32 z) { s32 func_80023568(void) { if (D_8011AD3C != 0) { return D_8011AD24[1] + 1; - } else if (get_current_level_race_type() == RACETYPE_BOSS) { + } else if (level_type() == RACETYPE_BOSS) { return D_8011AD24[1] + 1; } return 0; @@ -10838,4 +10830,4 @@ void func_800245B4(s16 arg0) { } UNUSED const char sReadOutErrorString[] = "RO error %d!!\n"; -UNUSED const char sPureAnguishString[] = "ARGHHHHHHHHH\n"; \ No newline at end of file +UNUSED const char sPureAnguishString[] = "ARGHHHHHHHHH\n"; diff --git a/src/racer.c b/src/racer.c index 8500b92d..daedfca6 100644 --- a/src/racer.c +++ b/src/racer.c @@ -219,9 +219,9 @@ void func_80042D20(Object *obj, Object_Racer *racer, s32 updateRate) { sp6E = racer->unk1CA; miscAsset1 = (s8 *) get_misc_asset(ASSET_MISC_1); miscAsset2 = (s8 *) get_misc_asset(ASSET_MISC_2); - header = get_current_level_header(); + header = level_header(); racerGroup = get_racer_objects_by_position(&numRacers); - sp54 = get_ai_behaviour_table(); + sp54 = aitable_get(); if (racer->unk1C6 > 0) { racer->unk1C6 -= updateRate; } else { @@ -547,7 +547,7 @@ void increment_ai_behaviour_chances(Object *obj, Object_Racer *racer, s32 update sBalloonLevelAI = 0; return; } - aiTable = get_ai_behaviour_table(); + aiTable = aitable_get(); if (racer->boostTimer) { if (sAIStartedBoosting == FALSE) { aiTable->percentages[AI_BLUE_BALLOON][AI_MIN] += aiTable->percentages[AI_BLUE_BALLOON][AI_MIN_STEP]; @@ -609,7 +609,7 @@ void increment_ai_behaviour_chances(Object *obj, Object_Racer *racer, s32 update void racer_AI_pathing_inputs(Object *obj, Object_Racer *racer, s32 updateRate) { s32 raceType; - raceType = get_current_level_race_type(); + raceType = level_type(); switch (raceType) { case RACETYPE_CHALLENGE_BATTLE: @@ -711,7 +711,7 @@ void racer_ai_challenge(Object *aiRacerObj, Object_Racer *aiRacer, s32 updateRat return; } - levelHeader = get_current_level_header(); + levelHeader = level_header(); raceType = levelHeader->race_type; sp38 = levelHeader->unk2A; if (aiRacer->unk1CD == 0) { @@ -1083,7 +1083,7 @@ void racer_ai_eggs(Object *obj, Object_Racer *racer, s32 updateRate) { return; } - header = get_current_level_header()->unk2A; + header = level_header()->unk2A; if (racer->groundedWheels) { racer->unk1C6 += updateRate; if (racer->unk1C6 > 60) { @@ -4211,7 +4211,7 @@ void update_player_racer(Object *obj, s32 updateRate) { } else { tempRacer->unk201 = 0; } - header = get_current_level_header(); + header = level_header(); gCurrentCourseHeight = header->course_height; tempRacer->throttleReleased = FALSE; if (tempRacer->playerIndex == PLAYER_COMPUTER) { @@ -4495,7 +4495,7 @@ void update_player_racer(Object *obj, s32 updateRate) { } } if (tempRacer->playerIndex != PLAYER_COMPUTER && tempRacer->lap + 1 == header->laps && !D_8011D580 && - get_current_level_race_type() == RACETYPE_DEFAULT) { + level_type() == RACETYPE_DEFAULT) { music_tempo_set_relative(1.12f); D_8011D580 = 1; } @@ -4814,7 +4814,7 @@ void func_8004F7F4(s32 updateRate, f32 updateRateF, Object *racerObj, Object_Rac spB8 = racer->buoyancy - 10.0; racerObj->y_velocity += spB8 * 0.065 * updateRateF; } - currentLevelHeader = get_current_level_header(); + currentLevelHeader = level_header(); if ((racer->buoyancy != 0.0 && currentLevelHeader->unk2 != 0) || gCurrentSurfaceType == SURFACE_FROZEN_WATER) { if (racer->unk1F0 != 0) { racer->checkpoint_distance -= 0.3; @@ -6334,7 +6334,7 @@ void update_onscreen_AI_racer(Object *obj, Object_Racer *racer, s32 updateRate, update_car_velocity_offground(obj, racer, updateRate, updateRateF); } apply_vehicle_rotation_offset(racer, updateRate, 0, 0, 0); - header = get_current_level_header(); + header = level_header(); if ((racer->buoyancy != 0.0 && header->unk2) || gCurrentSurfaceType == SURFACE_FROZEN_WATER) { if (racer->unk1F0) { racer->checkpoint_distance -= 0.3; @@ -6860,7 +6860,8 @@ void onscreen_ai_racer_physics(Object *obj, Object_Racer *racer, UNUSED s32 upda hasCollision = FALSE; flags = 0; if (racer->playerIndex != PLAYER_COMPUTER || racer->vehicleIDPrev < VEHICLE_BOSSES) { - flags = collision_objectmodel(obj, 1, &hasCollision, (Vec3f *) racer->unkD8, (f32 *) &tempPos, &radius, &surface); + flags = + collision_objectmodel(obj, 1, &hasCollision, (Vec3f *) racer->unkD8, (f32 *) &tempPos, &radius, &surface); } if (flags & 0x80) { D_8011D548 = tempPos.x - obj->trans.x_position; @@ -7277,7 +7278,7 @@ Object *func_8005698C(Object *racerObj, Object_Racer *racer, f32 *outDistance) { s32 isChallengeRace; s32 raceType; - raceType = get_current_level_race_type(); + raceType = level_type(); isChallengeRace = raceType & RACETYPE_CHALLENGE; if (racer->playerIndex == PLAYER_COMPUTER && !isChallengeRace) { curDistance = 0.0f; @@ -7605,7 +7606,7 @@ void drop_bananas(Object *obj, Object_Racer *racer, s32 number) { newObject.objectID = ASSET_OBJECT_ID_COIN; i = number; do { - if (get_current_level_race_type() != RACETYPE_CHALLENGE) { + if (level_type() != RACETYPE_CHALLENGE) { bananaObj = spawn_object(&newObject, OBJECT_SPAWN_UNK01); if (bananaObj != NULL) { bananaObj->level_entry = NULL; @@ -8162,7 +8163,7 @@ void func_80059208(Object *obj, Object_Racer *racer, s32 updateRate) { if (temp_v0 == 0) { return; } - if ((get_current_map_id() == 0) && (racer->checkpoint >= temp_v0)) { + if ((level_id() == 0) && (racer->checkpoint >= temp_v0)) { racer->lap = 0; racer->checkpoint = 0; racer->courseCheckpoint = 0; @@ -8482,7 +8483,7 @@ s32 timetrial_ghost_read(Object *obj) { #endif return FALSE; } - if (ghostDataIndex != 2 && get_current_map_id() != gGhostMapID) { + if (ghostDataIndex != 2 && level_id() != gGhostMapID) { return FALSE; } nodeIndex = commonUnk0s32 - 1; @@ -8682,7 +8683,7 @@ void update_AI_racer(Object *obj, Object_Racer *racer, s32 updateRate, f32 updat gCurrentPlayerIndex = -1; gameMode = get_game_mode(); - levelHeader = get_current_level_header(); + levelHeader = level_header(); if (racer->unk1F6 > 0) { racer->unk1F6 -= updateRate; } else { @@ -8998,7 +8999,7 @@ void func_8005B818(Object *obj, Object_Racer *racer, s32 updateRate, f32 updateR #endif gCurrentRacerMiscAssetPtr = (f32 *) get_misc_asset(ASSET_MISC_RACERACCELERATION_UNKNOWN0); - levelHeader = get_current_level_header(); + levelHeader = level_header(); checkpointCount = get_checkpoint_count(); if (checkpointCount == 0) { return; diff --git a/src/save_data.c b/src/save_data.c index 81fc55c9..54681668 100644 --- a/src/save_data.c +++ b/src/save_data.c @@ -367,7 +367,7 @@ void populate_settings_from_save_data(Settings *settings, u8 *saveData) { u8 temp_v1; clear_game_progress(settings); - get_number_of_levels_and_worlds(&levelCount, &worldCount); + level_count(&levelCount, &worldCount); D_801241EC = saveData; D_801241F0 = D_801241F4 = 0; var_a0 = func_80072C54(16) - 5; @@ -377,7 +377,7 @@ void populate_settings_from_save_data(Settings *settings, u8 *saveData) { // clang-format on if (var_a0 == 0) { for (i = 0, var_s1 = 0; i < levelCount; i++) { - raceType = get_map_race_type(i); + raceType = leveltable_type(i); if ((raceType == RACETYPE_DEFAULT) || (raceType & RACETYPE_CHALLENGE) || (raceType == RACETYPE_BOSS)) { temp_v1 = func_80072C54(2); if (temp_v1 > 0) { @@ -405,7 +405,7 @@ void populate_settings_from_save_data(Settings *settings, u8 *saveData) { settings->ttAmulet = func_80072C54(3); settings->wizpigAmulet = func_80072C54(3); for (i = 0; i < worldCount; i++) { - settings->courseFlagsPtr[get_hub_area_id(i)] |= func_80072C54(16) << 16; + settings->courseFlagsPtr[level_world_id(i)] |= func_80072C54(16) << 16; } settings->keys = func_80072C54(8); settings->cutsceneFlags = func_80072C54(32); @@ -424,13 +424,13 @@ void func_800732E8(Settings *settings, u8 *saveData) { s32 i; s32 var_s0; - get_number_of_levels_and_worlds(&levelCount, &worldCount); + level_count(&levelCount, &worldCount); D_801241EC = saveData; D_801241F0 = 0; D_801241F4 = 128; func_80072E28(16, 0); for (i = 0, var_s0 = 0; i < levelCount; i++) { - raceType = get_map_race_type(i); + raceType = leveltable_type(i); if ((raceType == RACETYPE_DEFAULT) || (raceType & RACETYPE_CHALLENGE) || (raceType == RACETYPE_BOSS)) { courseStatus = 0; // Map visited @@ -459,7 +459,7 @@ void func_800732E8(Settings *settings, u8 *saveData) { func_80072E28(3, settings->ttAmulet); func_80072E28(3, settings->wizpigAmulet); for (i = 0; i < worldCount; i++) { - func_80072E28(16, (settings->courseFlagsPtr[get_hub_area_id(i)] >> 16) & 0xFFFF); + func_80072E28(16, (settings->courseFlagsPtr[level_world_id(i)] >> 16) & 0xFFFF); } func_80072E28(8, settings->keys); func_80072E28(32, settings->cutsceneFlags); @@ -484,7 +484,7 @@ void func_80073588(Settings *settings, u8 *saveData, u8 arg2) { s16 sum; clear_lap_records(settings, arg2); - get_number_of_levels_and_worlds(&levelCount, &worldCount); + level_count(&levelCount, &worldCount); if (arg2 & 1) { D_801241EC = saveData; @@ -496,8 +496,8 @@ void func_80073588(Settings *settings, u8 *saveData, u8 arg2) { sum -= func_80072C54(16); if (sum == 0) { for (i = 0; i < levelCount; i++) { - if (get_map_race_type(i) == RACETYPE_DEFAULT) { - availableVehicles = get_map_available_vehicles(i); + if (leveltable_type(i) == RACETYPE_DEFAULT) { + availableVehicles = leveltable_vehicle_usable(i); // Car Available if (availableVehicles & (1 << VEHICLE_CAR)) { settings->flapTimesPtr[0][i] = func_80072C54(16); @@ -527,8 +527,8 @@ void func_80073588(Settings *settings, u8 *saveData, u8 arg2) { sum -= func_80072C54(16); if (sum == 0) { for (i = 0; i < levelCount; i++) { - if (get_map_race_type(i) == RACETYPE_DEFAULT) { - availableVehicles = get_map_available_vehicles(i); + if (leveltable_type(i) == RACETYPE_DEFAULT) { + availableVehicles = leveltable_vehicle_usable(i); // Car Available if (availableVehicles & (1 << VEHICLE_CAR)) { settings->courseTimesPtr[0][i] = func_80072C54(16); @@ -558,14 +558,14 @@ void func_800738A4(Settings *settings, u8 *saveData) { s32 vehicleCount; s16 sum; - get_number_of_levels_and_worlds(&levelCount, &worldCount); + level_count(&levelCount, &worldCount); D_801241EC = saveData; D_801241F0 = 0; D_801241F4 = 128; func_80072E28(16, 0); for (vehicleCount = 0, i = 0; i < levelCount; i++) { - if (get_map_race_type(i) == RACETYPE_DEFAULT) { - availableVehicles = get_map_available_vehicles(i); + if (leveltable_type(i) == RACETYPE_DEFAULT) { + availableVehicles = leveltable_vehicle_usable(i); // Car Available if (availableVehicles & (1 << VEHICLE_CAR)) { func_80072E28(16, settings->flapTimesPtr[0][i]); @@ -605,8 +605,8 @@ void func_800738A4(Settings *settings, u8 *saveData) { D_801241F4 = 128; func_80072E28(16, 0); for (i = 0; i < levelCount; i++) { - if (get_map_race_type(i) == RACETYPE_DEFAULT) { - availableVehicles = get_map_available_vehicles(i); + if (leveltable_type(i) == RACETYPE_DEFAULT) { + availableVehicles = leveltable_vehicle_usable(i); // Car Available if (availableVehicles & (1 << VEHICLE_CAR)) { func_80072E28(16, settings->courseTimesPtr[0][i]); @@ -880,7 +880,7 @@ void erase_save_file(s32 saveFileNum, Settings *settings) { s32 i; if (osEepromProbe(si_mesg()) != 0) { - get_number_of_levels_and_worlds(&levelCount, &worldCount); + level_count(&levelCount, &worldCount); for (i = 0; i < levelCount; i++) { settings->courseFlagsPtr[i] = 0; } diff --git a/src/thread3_main.c b/src/thread3_main.c index 229ffb5a..a122d2d6 100644 --- a/src/thread3_main.c +++ b/src/thread3_main.c @@ -379,7 +379,7 @@ void load_next_ingame_level(s32 numPlayers, s32 trackID, Vehicle vehicle) { } /** - * Calls load_level() with the same arguments except for the cutsceneId, + * Calls level_load() with the same arguments except for the cutsceneId, * which is the value at gGameCurrentCutscene. Also does some other stuff. * Used when ingame. */ @@ -388,7 +388,7 @@ void load_level_game(s32 levelId, s32 numberOfPlayers, s32 entranceId, Vehicle v mempool_free_timer(0); cam_init(); load_game_text_table(); - load_level(levelId, numberOfPlayers, entranceId, vehicleId, gGameCurrentCutscene); + level_load(levelId, numberOfPlayers, entranceId, vehicleId, gGameCurrentCutscene); hud_init(cam_get_viewport_layout()); init_particle_buffers(8, 16, 150, 100, 50, 0); ainode_update(); @@ -410,7 +410,7 @@ void unload_level_game(void) { } gSkipGfxTask = TRUE; } - clear_audio_and_track(); + level_free(); transition_begin(&D_800DD3F4); reset_particles(); hud_free(); @@ -447,9 +447,9 @@ void mode_game(s32 updateRate) { if (!gIsPaused) { obj_update(updateRate); if (check_if_showing_cutscene_camera() == 0 || get_race_countdown()) { - if (buttonPressedInputs & START_BUTTON && get_level_property_stack_pos() == 0 && - gDrumstickSceneLoadTimer == 0 && gGameMode == GAMEMODE_INGAME && gPostRaceViewPort == FALSE && - gLevelLoadTimer == 0 && gPauseLockTimer == 0) { + if (buttonPressedInputs & START_BUTTON && level_properties_get() == 0 && gDrumstickSceneLoadTimer == 0 && + gGameMode == GAMEMODE_INGAME && gPostRaceViewPort == FALSE && gLevelLoadTimer == 0 && + gPauseLockTimer == 0) { buttonPressedInputs = 0; gIsPaused = TRUE; menu_pause_init(); @@ -483,7 +483,7 @@ void mode_game(s32 updateRate) { func_8006D8F0(-1); break; case POSTRACE_OPT_4: - clear_level_property_stack(); + level_properties_reset(); gDrumstickSceneLoadTimer = 0; buttonHeldInputs |= (L_TRIG | R_TRIG); break; @@ -564,7 +564,7 @@ void mode_game(s32 updateRate) { gDrumstickSceneLoadTimer = 0; sound_clear_delayed(); reset_delayed_text(); - clear_level_property_stack(); + level_properties_reset(); buttonHeldInputs |= (L_TRIG | R_TRIG); break; } @@ -586,8 +586,8 @@ void mode_game(s32 updateRate) { gDrumstickSceneLoadTimer -= updateRate; if (gDrumstickSceneLoadTimer <= 0) { gDrumstickSceneLoadTimer = 0; - push_level_property_stack(ASSET_LEVEL_CENTRALAREAHUB, 0, VEHICLE_CAR, CUTSCENE_ID_NONE); - push_level_property_stack(ASSET_LEVEL_WIZPIGAMULETSEQUENCE, 0, -1, CUTSCENE_ID_UNK_A); + level_properties_push(ASSET_LEVEL_CENTRALAREAHUB, 0, VEHICLE_CAR, CUTSCENE_ID_NONE); + level_properties_push(ASSET_LEVEL_WIZPIGAMULETSEQUENCE, 0, -1, CUTSCENE_ID_UNK_A); sp3C = TRUE; } } @@ -621,8 +621,8 @@ void mode_game(s32 updateRate) { } } if (sp3C) { - if (get_level_property_stack_pos() != 0) { - pop_level_property_stack(&gPlayableMapId, &gGameCurrentEntrance, &i, &gGameCurrentCutscene); + if (level_properties_get() != 0) { + level_properties_pop(&gPlayableMapId, &gGameCurrentEntrance, &i, &gGameCurrentCutscene); set_frame_blackout_timer(); if (gPlayableMapId < 0) { if (gPlayableMapId == SPECIAL_MAP_ID_NO_LEVEL || gPlayableMapId == SPECIAL_MAP_ID_UNK_NEG10) { @@ -644,7 +644,7 @@ void mode_game(s32 updateRate) { } } else { sp3C = func_8006C300(); - if (get_level_property_stack_pos()) { + if (level_properties_get()) { if (gLevelLoadTimer == 0) { i = func_800214C4(); if ((i != 0) || ((buttonPressedInputs & A_BUTTON) && (sp3C != 0))) { @@ -652,7 +652,7 @@ void mode_game(s32 updateRate) { music_change_on(); } set_frame_blackout_timer(); - pop_level_property_stack(&gPlayableMapId, &gGameCurrentEntrance, &i, &gGameCurrentCutscene); + level_properties_pop(&gPlayableMapId, &gGameCurrentEntrance, &i, &gGameCurrentCutscene); if (gPlayableMapId < 0) { if (gPlayableMapId == -1 || gPlayableMapId == -10) { if (gPlayableMapId == -10 && is_in_two_player_adventure()) { @@ -731,7 +731,7 @@ void mode_game(s32 updateRate) { gPlayableMapId = gLevelSettings[0]; gGameCurrentEntrance = gLevelSettings[15]; gGameCurrentCutscene = gLevelSettings[gLevelSettings[1] + 8]; - gLevelDefaultVehicleID = get_map_default_vehicle(gPlayableMapId); + gLevelDefaultVehicleID = leveltable_vehicle_default(gPlayableMapId); if (gGameCurrentCutscene < 0) { gGameCurrentCutscene = CUTSCENE_ID_UNK_64; } @@ -872,14 +872,14 @@ Vehicle get_level_default_vehicle(void) { } /** - * Calls load_level() with the same arguments, but also does some other stuff. + * Calls level_load() with the same arguments, but also does some other stuff. * Used for menus. */ void load_level_menu(s32 levelId, s32 numberOfPlayers, s32 entranceId, Vehicle vehicleId, s32 cutsceneId) { mempool_free_timer(0); cam_init(); load_game_text_table(); - load_level(levelId, numberOfPlayers, entranceId, vehicleId, cutsceneId); + level_load(levelId, numberOfPlayers, entranceId, vehicleId, cutsceneId); hud_init(cam_get_viewport_layout()); init_particle_buffers(4, 4, 110, 48, 32, 0); ainode_update(); @@ -895,7 +895,7 @@ void unload_level_menu(void) { if (!gIsLoading) { gIsLoading = TRUE; mempool_free_timer(0); - clear_audio_and_track(); + level_free(); transition_begin(&D_800DD3F4); reset_particles(); hud_free(); @@ -950,7 +950,7 @@ void mode_menu(s32 updateRate) { gDPFullSync(gCurrDisplayList++); gSPEndDisplayList(gCurrDisplayList++); gPlayableMapId = menuLoopResult & 0x7F; - gLevelDefaultVehicleID = get_map_default_vehicle(gPlayableMapId); + gLevelDefaultVehicleID = leveltable_vehicle_default(gPlayableMapId); gGameCurrentEntrance = 0; gGameCurrentCutscene = CUTSCENE_ID_UNK_64; gGameMode = GAMEMODE_INGAME; @@ -1001,7 +1001,7 @@ void mode_menu(s32 updateRate) { gPlayableMapId = gLevelSettings[0]; gGameCurrentEntrance = gLevelSettings[15]; gGameCurrentCutscene = gLevelSettings[gLevelSettings[1] + 8]; - gLevelDefaultVehicleID = get_map_default_vehicle(gPlayableMapId); + gLevelDefaultVehicleID = leveltable_vehicle_default(gPlayableMapId); load_level_game(gPlayableMapId, gGameNumPlayers, gGameCurrentEntrance, gLevelDefaultVehicleID); break; default: @@ -1077,9 +1077,9 @@ void calc_and_alloc_heap_for_settings(void) { u32 sizes[15]; s32 numWorlds, numLevels; - init_level_globals(); + level_global_init(); reset_character_id_slots(); - get_number_of_levels_and_worlds(&numLevels, &numWorlds); + level_count(&numLevels, &numWorlds); sizes[0] = sizeof(Settings); sizes[1] = sizes[0] + (numLevels * 4); // balloonsPtr sizes[2] = sizes[1] + (numWorlds * 2); // flapInitialsPtr[0] @@ -1162,7 +1162,7 @@ void clear_lap_records(Settings *settings, s32 flags) { s32 index; u16 *temp_v0; - get_number_of_levels_and_worlds(&numLevels, &numWorlds); + level_count(&numLevels, &numWorlds); temp_v0 = (u16 *) get_misc_asset(ASSET_MISC_23); for (i = 0; i < NUMBER_OF_SAVE_FILES; i++) { for (j = 0; j < numLevels; j++) { @@ -1187,7 +1187,7 @@ void clear_game_progress(Settings *settings) { s32 worldCount; s32 levelCount; - get_number_of_levels_and_worlds(&levelCount, &worldCount); + level_count(&levelCount, &worldCount); settings->newGame = TRUE; for (i = 0; i < worldCount; i++) { diff --git a/src/thread3_main.h b/src/thread3_main.h index c27ba774..0d52255d 100644 --- a/src/thread3_main.h +++ b/src/thread3_main.h @@ -125,8 +125,8 @@ void mode_intro(void); s32 is_controller_missing(void); s32 drm_validate_imem(void); void mode_game(s32 updateRate); -void load_level(s32 levelId, s32 numberOfPlayers, s32 entranceId, Vehicle vehicleId, s32 cutsceneId); -void init_level_globals(void); +void level_load(s32 levelId, s32 numberOfPlayers, s32 entranceId, Vehicle vehicleId, s32 cutsceneId); +void level_global_init(void); void alloc_displaylist_heap(s32 numberOfPlayers); void default_alloc_displaylist_heap(void); void mode_menu(s32 updateRate); diff --git a/src/tracks.c b/src/tracks.c index c530f1a7..b51a117c 100644 --- a/src/tracks.c +++ b/src/tracks.c @@ -199,7 +199,7 @@ void init_track(u32 geometry, u32 skybox, s32 numberOfPlayers, Vehicle vehicle, u32 arg6) { s32 i; - gCurrentLevelHeader2 = get_current_level_header(); + gCurrentLevelHeader2 = level_header(); D_8011B0F8 = FALSE; gTTCamPlayerID = 0; gTTCamID = 0; @@ -398,9 +398,8 @@ void render_scene(Gfx **dList, Mtx **mtx, Vertex **vtx, Triangle **tris, s32 upd updateRate); } // Show TT Cam toggle for the fourth viewport when playing 3 player. - if (numViewports == 3 && get_current_level_race_type() != RACETYPE_CHALLENGE_EGGS && - get_current_level_race_type() != RACETYPE_CHALLENGE_BATTLE && - get_current_level_race_type() != RACETYPE_CHALLENGE_BANANAS) { + if (numViewports == 3 && level_type() != RACETYPE_CHALLENGE_EGGS && level_type() != RACETYPE_CHALLENGE_BATTLE && + level_type() != RACETYPE_CHALLENGE_BANANAS) { if (hud_setting() == 0) { if (flip) { gSPSetGeometryMode(gTrackDL++, G_CULL_FRONT); @@ -1708,7 +1707,7 @@ void initialise_player_viewport_vars(s32 updateRate) { gSceneActiveCamera->trans.z_position, get_current_viewport(), updateRate); } } - get_current_level_header()->unk3 = 1; + level_header()->unk3 = 1; render_level_geometry_and_objects(); } diff --git a/src/vehicle_tricky.c b/src/vehicle_tricky.c index ef5aee80..156bae07 100644 --- a/src/vehicle_tricky.c +++ b/src/vehicle_tricky.c @@ -302,22 +302,22 @@ void racer_boss_finish(Object_Racer *racer, s8 *sceneTimer) { } if (settings->worldId == WORLD_CENTRAL_AREA) { if (finishPos == 1) { - push_level_property_stack(SPECIAL_MAP_ID_UNK_NEG2, 0, VEHICLE_CAR, 0); - push_level_property_stack(miscAsset68Byte5, 0, -1, 0); - push_level_property_stack(i, 0, -1, 1); + level_properties_push(SPECIAL_MAP_ID_UNK_NEG2, 0, VEHICLE_CAR, 0); + level_properties_push(miscAsset68Byte5, 0, -1, 0); + level_properties_push(i, 0, -1, 1); } else { - push_level_property_stack(SPECIAL_MAP_ID_UNK_NEG10, 0, VEHICLE_CAR, 0); - push_level_property_stack(i, 0, -1, 2); + level_properties_push(SPECIAL_MAP_ID_UNK_NEG10, 0, VEHICLE_CAR, 0); + level_properties_push(i, 0, -1, 2); } } else if (finishPos == 1) { set_eeprom_settings_value(1); // Set Adventure Two Unlocked - push_level_property_stack(SPECIAL_MAP_ID_UNK_NEG2, 0, VEHICLE_CAR, 0); - push_level_property_stack(miscAsset68Byte7, 0, -1, 0); - push_level_property_stack(miscAsset68Byte6, 0, -1, 0); - push_level_property_stack(i, 0, -1, 1); + level_properties_push(SPECIAL_MAP_ID_UNK_NEG2, 0, VEHICLE_CAR, 0); + level_properties_push(miscAsset68Byte7, 0, -1, 0); + level_properties_push(miscAsset68Byte6, 0, -1, 0); + level_properties_push(i, 0, -1, 1); } else { - push_level_property_stack(SPECIAL_MAP_ID_UNK_NEG10, 0, VEHICLE_CAR, 0); - push_level_property_stack(i, 0, -1, 2); + level_properties_push(SPECIAL_MAP_ID_UNK_NEG10, 0, VEHICLE_CAR, 0); + level_properties_push(i, 0, -1, 2); } if (finishPos == 1) { level_transition_begin(4); @@ -346,8 +346,8 @@ void racer_boss_finish(Object_Racer *racer, s8 *sceneTimer) { settings->courseFlagsPtr[settings->courseId] |= 2; if (!(settings->bosses & worldBit)) { settings->bosses |= worldBit; - push_level_property_stack(SPECIAL_MAP_ID_NO_LEVEL, 0, VEHICLE_CAR, 0); - push_level_property_stack(i, 4, -1, 4); + level_properties_push(SPECIAL_MAP_ID_NO_LEVEL, 0, VEHICLE_CAR, 0); + level_properties_push(i, 4, -1, 4); } else { worldBit <<= 6; if (!(settings->bosses & worldBit)) { @@ -362,24 +362,23 @@ void racer_boss_finish(Object_Racer *racer, s8 *sceneTimer) { settings->wizpigAmulet = worldBit; } if (worldBit != 0) { - push_level_property_stack(SPECIAL_MAP_ID_NO_LEVEL, 0, VEHICLE_CAR, 0); - push_level_property_stack(ASSET_LEVEL_WIZPIGAMULETSEQUENCE_NAME, 0, -1, - settings->wizpigAmulet - 1); - push_level_property_stack(i, 6, -1, 6); + level_properties_push(SPECIAL_MAP_ID_NO_LEVEL, 0, VEHICLE_CAR, 0); + level_properties_push(ASSET_LEVEL_WIZPIGAMULETSEQUENCE_NAME, 0, -1, settings->wizpigAmulet - 1); + level_properties_push(i, 6, -1, 6); } else { - push_level_property_stack(SPECIAL_MAP_ID_NO_LEVEL, 0, VEHICLE_CAR, 0); - push_level_property_stack(i, 4, -1, 4); + level_properties_push(SPECIAL_MAP_ID_NO_LEVEL, 0, VEHICLE_CAR, 0); + level_properties_push(i, 4, -1, 4); } } else { - push_level_property_stack(SPECIAL_MAP_ID_NO_LEVEL, 0, VEHICLE_CAR, 0); - push_level_property_stack(i, 4, -1, 4); + level_properties_push(SPECIAL_MAP_ID_NO_LEVEL, 0, VEHICLE_CAR, 0); + level_properties_push(i, 4, -1, 4); } } level_transition_begin(4); instShowBearBar(); } else { - push_level_property_stack(SPECIAL_MAP_ID_UNK_NEG10, 0, VEHICLE_CAR, 0); - push_level_property_stack(i, 5, -1, 5); + level_properties_push(SPECIAL_MAP_ID_UNK_NEG10, 0, VEHICLE_CAR, 0); + level_properties_push(i, 5, -1, 5); level_transition_begin(3); } arg1_ret++; diff --git a/ver/symbols/symbol_addrs.jpn.v79.txt b/ver/symbols/symbol_addrs.jpn.v79.txt index ab8801e7..d1c7169c 100644 --- a/ver/symbols/symbol_addrs.jpn.v79.txt +++ b/ver/symbols/symbol_addrs.jpn.v79.txt @@ -953,35 +953,35 @@ input_clamp_stick_mag = 0x8006A6F4; drm_disable_input = 0x8006A770; // game.c .text -init_level_globals = 0x8006A780; +level_global_init = 0x8006A780; func_8006ABB4 = 0x8006AC84; search_level_properties_forwards = 0x8006ACD0; search_level_properties_backwards = 0x8006AEFC; -get_race_type_count = 0x8006B0E8; -get_world_level_count = 0x8006B124; -get_map_default_vehicle = 0x8006B17C; -get_map_available_vehicles = 0x8006B1C8; -get_map_race_type = 0x8006B21C; -get_map_world_id = 0x8006B260; -get_hub_area_id = 0x8006B2A4; -get_number_of_levels_and_worlds = 0x8006B2F4; -check_if_in_race = 0x8006B310; -load_level = 0x8006B320; -start_level_music = 0x8006BDE0; -get_current_map_id = 0x8006BE58; -get_current_level_race_type = 0x8006BE68; -get_current_level_header = 0x8006BE80; -get_total_level_header_count = 0x8006BE90; -get_level_name = 0x8006BEAC; -clear_audio_and_track = 0x8006BFCC; -set_ai_level = 0x8006C098; -free_ai_behaviour_table = 0x8006C234; -get_ai_behaviour_table = 0x8006C25C; -is_two_player_adventure_race = 0x8006C26C; -push_level_property_stack = 0x8006C27C; -pop_level_property_stack = 0x8006C2FC; -clear_level_property_stack = 0x8006C3B4; -get_level_property_stack_pos = 0x8006C3C0; +leveltable_non_challenge_count = 0x8006B0E8; +leveltable_world_level_count = 0x8006B124; +leveltable_vehicle_default = 0x8006B17C; +leveltable_vehicle_usable = 0x8006B1C8; +leveltable_type = 0x8006B21C; +leveltable_world = 0x8006B260; +level_world_id = 0x8006B2A4; +level_count = 0x8006B2F4; +level_is_race = 0x8006B310; +level_load = 0x8006B320; +level_music_start = 0x8006BDE0; +level_id = 0x8006BE58; +level_type = 0x8006BE68; +level_header = 0x8006BE80; +level_header_count = 0x8006BE90; +level_name = 0x8006BEAC; +level_free = 0x8006BFCC; +aitable_init = 0x8006C098; +aitable_free = 0x8006C234; +aitable_get = 0x8006C25C; +race_is_adventure_2P = 0x8006C26C; +level_properties_push = 0x8006C27C; +level_properties_pop = 0x8006C2FC; +level_properties_reset = 0x8006C3B4; +level_properties_get = 0x8006C3C0; func_8006C300 = 0x8006C3D0; // thread3_main.c .text diff --git a/ver/symbols/symbol_addrs.pal.v77.txt b/ver/symbols/symbol_addrs.pal.v77.txt index 24e0bae6..94eacfd5 100644 --- a/ver/symbols/symbol_addrs.pal.v77.txt +++ b/ver/symbols/symbol_addrs.pal.v77.txt @@ -951,35 +951,35 @@ input_clamp_stick_mag = 0x8006A624; drm_disable_input = 0x8006A6A0; // game.c .text -init_level_globals = 0x8006A6B0; +level_global_init = 0x8006A6B0; func_8006ABB4 = 0x8006ABB4; search_level_properties_forwards = 0x8006AC00; search_level_properties_backwards = 0x8006AE2C; -get_race_type_count = 0x8006B018; -get_world_level_count = 0x8006B054; -get_map_default_vehicle = 0x8006B0AC; -get_map_available_vehicles = 0x8006B0F8; -get_map_race_type = 0x8006B14C; -get_map_world_id = 0x8006B190; -get_hub_area_id = 0x8006B1D4; -get_number_of_levels_and_worlds = 0x8006B224; -check_if_in_race = 0x8006B240; -load_level = 0x8006B250; -start_level_music = 0x8006BD10; -get_current_map_id = 0x8006BD88; -get_current_level_race_type = 0x8006BD98; -get_current_level_header = 0x8006BDB0; -get_total_level_header_count = 0x8006BDC0; -get_level_name = 0x8006BDDC; -clear_audio_and_track = 0x8006BEFC; -set_ai_level = 0x8006BFC8; -free_ai_behaviour_table = 0x8006C164; -get_ai_behaviour_table = 0x8006C18C; -is_two_player_adventure_race = 0x8006C19C; -push_level_property_stack = 0x8006C1AC; -pop_level_property_stack = 0x8006C22C; -clear_level_property_stack = 0x8006C2E4; -get_level_property_stack_pos = 0x8006C2F0; +leveltable_non_challenge_count = 0x8006B018; +leveltable_world_level_count = 0x8006B054; +leveltable_vehicle_default = 0x8006B0AC; +leveltable_vehicle_usable = 0x8006B0F8; +leveltable_type = 0x8006B14C; +leveltable_world = 0x8006B190; +level_world_id = 0x8006B1D4; +level_count = 0x8006B224; +level_is_race = 0x8006B240; +level_load = 0x8006B250; +level_music_start = 0x8006BD10; +level_id = 0x8006BD88; +level_type = 0x8006BD98; +level_header = 0x8006BDB0; +level_header_count = 0x8006BDC0; +level_name = 0x8006BDDC; +level_free = 0x8006BEFC; +aitable_init = 0x8006BFC8; +aitable_free = 0x8006C164; +aitable_get = 0x8006C18C; +race_is_adventure_2P = 0x8006C19C; +level_properties_push = 0x8006C1AC; +level_properties_pop = 0x8006C22C; +level_properties_reset = 0x8006C2E4; +level_properties_get = 0x8006C2F0; func_8006C300 = 0x8006C300; // thread3_main.c .text diff --git a/ver/symbols/symbol_addrs.pal.v80.txt b/ver/symbols/symbol_addrs.pal.v80.txt index a6ac0349..3b779ae8 100644 --- a/ver/symbols/symbol_addrs.pal.v80.txt +++ b/ver/symbols/symbol_addrs.pal.v80.txt @@ -893,35 +893,35 @@ input_clamp_stick_x = 0x8006A7DC; input_clamp_stick_y = 0x8006A820; input_clamp_stick_mag = 0x8006A864; drm_disable_input = 0x8006A8E0; -init_level_globals = 0x8006A8F0; +level_global_init = 0x8006A8F0; func_8006ABB4 = 0x8006ADF4; search_level_properties_forwards = 0x8006AE40; search_level_properties_backwards = 0x8006B06C; -get_race_type_count = 0x8006B258; -get_world_level_count = 0x8006B294; -get_map_default_vehicle = 0x8006B2EC; -get_map_available_vehicles = 0x8006B338; -get_map_race_type = 0x8006B38C; -get_map_world_id = 0x8006B3D0; -get_hub_area_id = 0x8006B414; -get_number_of_levels_and_worlds = 0x8006B464; -check_if_in_race = 0x8006B480; -load_level = 0x8006B490; -start_level_music = 0x8006BF50; -get_current_map_id = 0x8006BFC8; -get_current_level_race_type = 0x8006BFD8; -get_current_level_header = 0x8006BFF0; -get_total_level_header_count = 0x8006C000; -get_level_name = 0x8006C01C; -clear_audio_and_track = 0x8006C13C; -set_ai_level = 0x8006C208; -free_ai_behaviour_table = 0x8006C3A4; -get_ai_behaviour_table = 0x8006C3CC; -is_two_player_adventure_race = 0x8006C3DC; -push_level_property_stack = 0x8006C3EC; -pop_level_property_stack = 0x8006C46C; -clear_level_property_stack = 0x8006C524; -get_level_property_stack_pos = 0x8006C530; +leveltable_non_challenge_count = 0x8006B258; +leveltable_world_level_count = 0x8006B294; +leveltable_vehicle_default = 0x8006B2EC; +leveltable_vehicle_usable = 0x8006B338; +leveltable_type = 0x8006B38C; +leveltable_world = 0x8006B3D0; +level_world_id = 0x8006B414; +level_count = 0x8006B464; +level_is_race = 0x8006B480; +level_load = 0x8006B490; +level_music_start = 0x8006BF50; +level_id = 0x8006BFC8; +level_type = 0x8006BFD8; +level_header = 0x8006BFF0; +level_header_count = 0x8006C000; +level_name = 0x8006C01C; +level_free = 0x8006C13C; +aitable_init = 0x8006C208; +aitable_free = 0x8006C3A4; +aitable_get = 0x8006C3CC; +race_is_adventure_2P = 0x8006C3DC; +level_properties_push = 0x8006C3EC; +level_properties_pop = 0x8006C46C; +level_properties_reset = 0x8006C524; +level_properties_get = 0x8006C530; func_8006C300 = 0x8006C540; thread3_main = 0x8006C570; init_game = 0x8006C620; diff --git a/ver/symbols/symbol_addrs.us.v77.txt b/ver/symbols/symbol_addrs.us.v77.txt index 2c4eea68..ee51d195 100644 --- a/ver/symbols/symbol_addrs.us.v77.txt +++ b/ver/symbols/symbol_addrs.us.v77.txt @@ -951,35 +951,35 @@ input_clamp_stick_mag = 0x8006A624; drm_disable_input = 0x8006A6A0; // game.c .text -init_level_globals = 0x8006A6B0; +level_global_init = 0x8006A6B0; func_8006ABB4 = 0x8006ABB4; search_level_properties_forwards = 0x8006AC00; search_level_properties_backwards = 0x8006AE2C; -get_race_type_count = 0x8006B018; -get_world_level_count = 0x8006B054; -get_map_default_vehicle = 0x8006B0AC; -get_map_available_vehicles = 0x8006B0F8; -get_map_race_type = 0x8006B14C; -get_map_world_id = 0x8006B190; -get_hub_area_id = 0x8006B1D4; -get_number_of_levels_and_worlds = 0x8006B224; -check_if_in_race = 0x8006B240; -load_level = 0x8006B250; -start_level_music = 0x8006BD10; -get_current_map_id = 0x8006BD88; -get_current_level_race_type = 0x8006BD98; -get_current_level_header = 0x8006BDB0; -get_total_level_header_count = 0x8006BDC0; -get_level_name = 0x8006BDDC; -clear_audio_and_track = 0x8006BEFC; -set_ai_level = 0x8006BFC8; -free_ai_behaviour_table = 0x8006C164; -get_ai_behaviour_table = 0x8006C18C; -is_two_player_adventure_race = 0x8006C19C; -push_level_property_stack = 0x8006C1AC; -pop_level_property_stack = 0x8006C22C; -clear_level_property_stack = 0x8006C2E4; -get_level_property_stack_pos = 0x8006C2F0; +leveltable_non_challenge_count = 0x8006B018; +leveltable_world_level_count = 0x8006B054; +leveltable_vehicle_default = 0x8006B0AC; +leveltable_vehicle_usable = 0x8006B0F8; +leveltable_type = 0x8006B14C; +leveltable_world = 0x8006B190; +level_world_id = 0x8006B1D4; +level_count = 0x8006B224; +level_is_race = 0x8006B240; +level_load = 0x8006B250; +level_music_start = 0x8006BD10; +level_id = 0x8006BD88; +level_type = 0x8006BD98; +level_header = 0x8006BDB0; +level_header_count = 0x8006BDC0; +level_name = 0x8006BDDC; +level_free = 0x8006BEFC; +aitable_init = 0x8006BFC8; +aitable_free = 0x8006C164; +aitable_get = 0x8006C18C; +race_is_adventure_2P = 0x8006C19C; +level_properties_push = 0x8006C1AC; +level_properties_pop = 0x8006C22C; +level_properties_reset = 0x8006C2E4; +level_properties_get = 0x8006C2F0; func_8006C300 = 0x8006C300; // thread3_main.c .text diff --git a/ver/symbols/symbol_addrs.us.v80.txt b/ver/symbols/symbol_addrs.us.v80.txt index 1a0cc2f0..cd0f459a 100644 --- a/ver/symbols/symbol_addrs.us.v80.txt +++ b/ver/symbols/symbol_addrs.us.v80.txt @@ -893,35 +893,35 @@ input_clamp_stick_x = 0x8006A7DC; input_clamp_stick_y = 0x8006A820; input_clamp_stick_mag = 0x8006A864; drm_disable_input = 0x8006A8E0; -init_level_globals = 0x8006A8F0; +level_global_init = 0x8006A8F0; func_8006ABB4 = 0x8006ADF4; search_level_properties_forwards = 0x8006AE40; search_level_properties_backwards = 0x8006B06C; -get_race_type_count = 0x8006B258; -get_world_level_count = 0x8006B294; -get_map_default_vehicle = 0x8006B2EC; -get_map_available_vehicles = 0x8006B338; -get_map_race_type = 0x8006B38C; -get_map_world_id = 0x8006B3D0; -get_hub_area_id = 0x8006B414; -get_number_of_levels_and_worlds = 0x8006B464; -check_if_in_race = 0x8006B480; -load_level = 0x8006B490; -start_level_music = 0x8006BF50; -get_current_map_id = 0x8006BFC8; -get_current_level_race_type = 0x8006BFD8; -get_current_level_header = 0x8006BFF0; -get_total_level_header_count = 0x8006C000; -get_level_name = 0x8006C01C; -clear_audio_and_track = 0x8006C13C; -set_ai_level = 0x8006C208; -free_ai_behaviour_table = 0x8006C3A4; -get_ai_behaviour_table = 0x8006C3CC; -is_two_player_adventure_race = 0x8006C3DC; -push_level_property_stack = 0x8006C3EC; -pop_level_property_stack = 0x8006C46C; -clear_level_property_stack = 0x8006C524; -get_level_property_stack_pos = 0x8006C530; +leveltable_non_challenge_count = 0x8006B258; +leveltable_world_level_count = 0x8006B294; +leveltable_vehicle_default = 0x8006B2EC; +leveltable_vehicle_usable = 0x8006B338; +leveltable_type = 0x8006B38C; +leveltable_world = 0x8006B3D0; +level_world_id = 0x8006B414; +level_count = 0x8006B464; +level_is_race = 0x8006B480; +level_load = 0x8006B490; +level_music_start = 0x8006BF50; +level_id = 0x8006BFC8; +level_type = 0x8006BFD8; +level_header = 0x8006BFF0; +level_header_count = 0x8006C000; +level_name = 0x8006C01C; +level_free = 0x8006C13C; +aitable_init = 0x8006C208; +aitable_free = 0x8006C3A4; +aitable_get = 0x8006C3CC; +race_is_adventure_2P = 0x8006C3DC; +level_properties_push = 0x8006C3EC; +level_properties_pop = 0x8006C46C; +level_properties_reset = 0x8006C524; +level_properties_get = 0x8006C530; func_8006C300 = 0x8006C540; thread3_main = 0x8006C570; init_game = 0x8006C620;