Rename funcs in game.c (#670)

* trole

* name particle dummy asset

* spatial audio debug strings

* home some strings and fix warns

* Update collision.c

* rename game.c

* format
This commit is contained in:
Fazana
2025-07-08 22:03:38 +01:00
committed by GitHub
parent cb8a9107c8
commit 51371a709e
20 changed files with 404 additions and 414 deletions
+1 -1
View File
@@ -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);
+35 -35
View File
@@ -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;
}
+22 -22
View File
@@ -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
+20 -22
View File
@@ -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;
+2 -2
View File
@@ -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) {
+1 -1
View File
@@ -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;
+39 -39
View File
@@ -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;
+11 -10
View File
@@ -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;
+56 -64
View File
@@ -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";
UNUSED const char sPureAnguishString[] = "ARGHHHHHHHHH\n";
+18 -17
View File
@@ -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;
+17 -17
View File
@@ -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;
}
+24 -24
View File
@@ -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++) {
+2 -2
View File
@@ -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);
+4 -5
View File
@@ -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();
}
+22 -23
View File
@@ -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++;
+26 -26
View File
@@ -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
+26 -26
View File
@@ -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
+26 -26
View File
@@ -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;
+26 -26
View File
@@ -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
+26 -26
View File
@@ -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;