mirror of
https://github.com/izzy2lost/Diddy-Kong-Racing.git
synced 2026-06-19 01:16:26 -07:00
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:
+1
-1
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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++;
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user