Mario Kart 64
Loading...
Searching...
No Matches
cpu_vehicles_camera_path.h File Reference
#include "vehicles.h"
#include "camera.h"
#include "path.h"
#include <assets/common_data.h>
Include dependency graph for cpu_vehicles_camera_path.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  unexpiredActors
 
struct  TrackPositionFactorInstruction
 
struct  CpuItemStrategyData
 
struct  UnkStruct_46D0
 
struct  Path2D
 

Macros

#define SEVERE_WRONG_DIRECTION_MIN   136
 
#define SEVERE_WRONG_DIRECTION_MAX   225
 
#define SEVERE_CORRECT_DIRECTION_MIN   45
 
#define SEVERE_CORRECT_DIRECTION_MAX   316
 
#define WRONG_DIRECTION_FRAMES_LIMIT   5
 

Enumerations

enum  CpuItemStrategyEnum {
  CPU_STRATEGY_WAIT_NEXT_ITEM = 0 , CPU_STRATEGY_ITEM_BANANA , CPU_STRATEGY_HOLD_BANANA , CPU_STRATEGY_DROP_BANANA ,
  CPU_STRATEGY_ITEM_GREEN_SHELL , CPU_STRATEGY_HOLD_GREEN_SHELL , CPU_STRATEGY_THROW_GREEN_SHELL , CPU_STRATEGY_ITEM_RED_SHELL ,
  CPU_STRATEGY_HOLD_RED_SHELL , CPU_STRATEGY_THROW_RED_SHELL , CPU_STRATEGY_ITEM_BANANA_BUNCH , CPU_STRATEGY_WAIT_INIT_BANANA_BUNCH ,
  CPU_STRATEGY_DROP_BANANA_BUNCH , CPU_STRATEGY_ITEM_FAKE_ITEM_BOX , CPU_STRATEGY_HOLD_FAKE_ITEM_BOX , CPU_STRATEGY_THROW_FAKE_ITEM_BOX ,
  CPU_STRATEGY_ITEM_THUNDERBOLT = 0x16 , CPU_STRATEGY_END_THUNDERBOLT , CPU_STRATEGY_ITEM_STAR = 0x19 , CPU_STRATEGY_END_ITEM_STAR ,
  CPU_STRATEGY_ITEM_BOO , CPU_STRATEGY_WAIT_END_BOO , CPU_STRATEGY_ITEM_MUSHROOM , CPU_STRATEGY_ITEM_DOUBLE_MUSHROOM ,
  CPU_STRATEGY_ITEM_TRIPLE_MUSHROOM , CPU_STRATEGY_ITEM_SUPER_MUSHROOM , CPU_STRATEGY_USE_SUPER_MUSHROOM , CPU_STRATEGY_THROW_BANANA ,
  CPU_STRATEGY_HOLD_THROW_BANANA , CPU_STRATEGY_END_THROW_BANANA
}
 
enum  { cpu_BEHAVIOUR_STATE_NONE , cpu_BEHAVIOUR_STATE_START , cpu_BEHAVIOUR_STATE_RUNNING }
 
enum  { SPEED_cpu_BEHAVIOUR_NORMAL , SPEED_cpu_BEHAVIOUR_FAST , SPEED_cpu_BEHAVIOUR_SLOW , SPEED_cpu_BEHAVIOUR_MAX }
 

Functions

s16 get_angle_between_path (Vec3f, Vec3f)
 
s32 is_collide_with_vehicle (f32, f32, f32, f32, f32, f32, f32, f32)
 
void adjust_position_by_angle (Vec3f, Vec3f, s16)
 
s32 set_vehicle_render_distance_flags (Vec3f, f32, s32)
 
void detect_wrong_player_direction (s32, Player *)
 
void set_places (void)
 
void update_player_rankings (void)
 
void set_places_end_course_with_time (void)
 
s32 is_path_point_in_range (u16, u16, u16, u16, u16)
 
void func_80007D04 (s32, Player *)
 
void func_80007FA4 (s32, Player *, f32)
 
void regulate_cpu_speed (s32, f32, Player *)
 
bool func_800088D8 (s32, s16, s16)
 
void set_current_path (s32)
 
s32 update_player_path_selection (s32, s32)
 
void update_player_completion (s32)
 
void yoshi_valley_cpu_path (s32)
 
void update_cpu_path_completion (s32, Player *)
 
f32 func_80009258 (s32, f32, f32)
 
void update_player_path_completion (s32, Player *)
 
void update_vehicles (void)
 
void play_cpu_sound_effect (s32, Player *)
 
void update_player_timer_sound (s32, Player *)
 
void update_player (s32)
 
void func_8000B140 (s32)
 
s32 are_in_curve (s32, u16)
 
bool is_far_from_path (s32)
 
f32 calculate_track_position_factor (f32, f32, u16, s32)
 
void update_player_position_factor (s32, u16, s32)
 
void calculate_track_offset_position (u16, f32, f32, s16)
 
void set_track_offset_position (u16, f32, s16)
 
s16 func_8000BD94 (f32, f32, f32, s32)
 
s16 find_closest_pathPoint_track_section (f32, f32, f32, u16, s32 *)
 
s16 update_path_index_with_track (f32, f32, f32, s16, s32, u16)
 
s16 update_path_index (f32, f32, f32, s16, s32)
 
void tweak_path_index_wario_stadium (f32, f32, f32, s16 *, s32)
 
void adjust_path_at_start_line (f32, f32, f32, s16 *, s32)
 
s16 update_path_index_track_section (f32, f32, f32, Player *, s32, s32 *)
 
s16 update_player_path (f32, f32, f32, s16, Player *, s32, s32)
 
s16 find_closest_vehicles_pathPoint (f32, f32, f32, s16)
 
s16 func_8000D24C (f32, f32, f32, s32 *)
 
s16 func_8000D2B4 (f32, f32, f32, s16, s32)
 
s16 func_8000D33C (f32, f32, f32, s16, s32)
 
f32 cpu_track_position_factor (s32)
 
void determine_ideal_cpu_position_offset (s32, u16)
 
s16 func_8000D6D0 (Vec3f, s16 *, f32, f32, s16, s16)
 
s16 func_8000D940 (Vec3f, s16 *, f32, f32, s16)
 
s16 update_vehicle_following_path (Vec3f, s16 *, f32)
 
void set_bomb_kart_spawn_positions (void)
 
void func_8000DF8C (s32)
 
s32 add_actor_in_unexpired_actor_list (s32, s16)
 
s32 add_red_shell_in_unexpired_actor_list (s32)
 
s32 add_green_shell_in_unexpired_actor_list (s32)
 
s32 add_blue_shell_in_unexpired_actor_list (s32)
 
void delete_actor_in_unexpired_actor_list (s32)
 
void func_8000EEDC (void)
 
void generate_player_smoke (void)
 
void func_8000F0E0 (void)
 
void func_8000F124 (void)
 
void clear_pathPoint (TrackPathPoint *, size_t)
 
void init_course_path_point (void)
 
void init_players (void)
 
void load_track_path (s32)
 
void calculate_track_boundaries (s32)
 
f32 calculate_track_curvature (s32, u16)
 
void analize_track_section (s32)
 
s16 calculate_angle_path (s32, s32)
 
void analyse_angle_path (s32)
 
void analisze_curved_path (s32)
 
f32 func_80010F40 (f32, f32, f32, s32, s32)
 
f32 func_80010FA0 (f32, f32, f32, s32, s32)
 
s32 func_80011014 (TrackPathPoint *, TrackPathPoint *, s32, s32)
 
s32 process_path_data (TrackPathPoint *, TrackPathPoint *)
 
s32 generate_2d_path (Path2D *, TrackPathPoint *, s32)
 
void copy_courses_cpu_behaviour (void)
 
void reset_cpu_behaviour_none (s32)
 
void reset_cpu_behaviour (s32)
 
void cpu_behaviour_start (s32, Player *)
 
void cpu_behaviour_end (s32, Player *)
 
void cpu_behaviour (s32)
 
void func_80011EC0 (s32, Player *, s32, u16)
 
void generate_train_path (void)
 
void generate_ferry_path (void)
 
void spawn_vehicle_on_road (VehicleStuff *)
 
void spawn_course_vehicles (void)
 
void set_vehicle_pos_pathPoint (TrainCarStuff *, Path2D *, u16)
 
void init_vehicles_trains (void)
 
void sync_train_components (TrainCarStuff *, s16)
 sync the train components vehicle with the actor
 
void update_vehicle_trains (void)
 
void handle_trains_interactions (s32, Player *)
 
void func_80013054 (void)
 
void check_ai_crossing_distance (s32)
 
void init_vehicles_ferry (void)
 
void update_vehicle_paddle_boats (void)
 
void handle_paddleBoats_interactions (Player *)
 
void initialize_toads_turnpike_vehicle (f32, f32, s32, s32, VehicleStuff *, TrackPathPoint *)
 
f32 func_80013C74 (s16, s16)
 
void update_vehicle_follow_pathPoint (VehicleStuff *)
 
void handle_vehicle_interactions (s32, Player *, VehicleStuff *, f32, f32, s32, u32)
 
f32 player_track_position_factor_vehicle (s16, f32, s16)
 
void update_player_track_position_factor_from_vehicle (s32, s32, VehicleStuff *)
 
void init_vehicles_box_trucks (void)
 
void update_vehicle_box_trucks (void)
 
void handle_box_trucks_interactions (s32, Player *)
 
void update_player_track_position_factor_from_box_trucks (s32)
 
void init_vehicles_school_buses (void)
 
void update_vehicle_school_bus (void)
 
void handle_school_buses_interactions (s32, Player *)
 
void update_player_track_position_factor_from_buses (s32)
 
void init_vehicles_trucks (void)
 
void update_vehicle_tanker_trucks (void)
 
void handle_tanker_trucks_interactions (s32, Player *)
 
void update_player_track_position_factor_from_tanker_truck (s32)
 
void init_vehicles_cars (void)
 
void update_vehicle_cars (void)
 
void handle_cars_interactions (s32, Player *)
 
void update_player_track_position_factor_from_cars (s32)
 
void func_80014D30 (s32, s32)
 
void func_80014DE4 (s32)
 
f32 func_80014EE4 (f32, s32)
 
void calculate_camera_up_vector (Camera *, s32)
 
void func_8001530C (void)
 
void func_80015314 (s32, f32, s32)
 
void func_80015390 (Camera *, Player *, s32)
 
void func_80015544 (s32, f32, s32, s32)
 
void func_8001577C (Camera *, UNUSED Player *, s32, s32)
 
void func_80015A9C (s32, f32, s32, s16)
 
void func_80015C94 (Camera *, Player *, s32, s32)
 
void func_800162CC (s32, f32, s32, s16)
 
void func_80016494 (Camera *, Player *, s32, s32)
 
void func_80016C3C (s32, f32, s32)
 
void func_80017720 (s32, f32, s32, s16)
 
void func_800178F4 (Camera *, Player *, s32, s32)
 
void func_80017F10 (s32, f32, s32, s16)
 
void func_800180F0 (Camera *, Player *, s32, s32)
 
void func_80018718 (s32, f32, s32, s16)
 
void func_800188F4 (Camera *, Player *, s32, s32)
 
void func_80019118 (s32, f32, s32, s16)
 
void func_8001933C (Camera *, UNUSED Player *, s32, s32)
 
void func_8001968C (void)
 
void func_8001969C (s32, f32, s32, s16)
 
void func_80019760 (Camera *, UNUSED Player *, s32, s32)
 
void func_80019890 (s32, s32)
 
void func_80019B50 (s32, u16)
 
void func_80019C50 (s32)
 
void func_80019D2C (Camera *, Player *, s32)
 
void func_80019DE4 (void)
 
void func_80019DF4 (void)
 
void func_80019E58 (void)
 
void func_80019ED0 (void)
 
void func_80019FB4 (s32)
 
void func_8001A0A4 (u16 *, Camera *, Player *, s8, s32)
 
void func_8001A0DC (u16 *, Camera *, Player *, s8, s32)
 
void func_8001A124 (s32, s32)
 
s32 func_8001A310 (s32, s32)
 
void func_8001A348 (s32, f32, s32)
 
void func_8001A3D8 (s32, f32, s32)
 
void func_8001A450 (s32, s32, s32)
 
void func_8001A518 (s32, s32, s32)
 
void func_8001A588 (u16 *, Camera *, Player *, s8, s32)
 
void func_8001AAAC (s16, s16, s16)
 
void func_8001AB00 (void)
 
void cpu_decisions_branch_item (s32, s16 *, s32)
 
void func_8001ABE0 (s32, CpuItemStrategyData *)
 
void clear_expired_strategies (CpuItemStrategyData *)
 
void cpu_use_item_strategy (s32)
 
void func_8001BE78 (void)
 
void func_8001C05C (void)
 
void func_8001C14C (void)
 
void func_8001C3C4 (s32)
 
void func_8001C42C (void)
 

Variables

Collision D_80162E70
 
s16 D_80162EB0
 
s16 D_80162EB2
 
CPUBehaviourgCoursesCPUBehaviour []
 
s16 D_80162F10 []
 
s16 D_80162F50 []
 
Vec3f gOffsetPosition
 
Vec3f D_80162FB0
 
Vec3f D_80162FC0
 
s16 gTrainSmokeTimer
 
s16 D_80162FD0
 
f32 gCourseCompletionPercentByRank []
 
s16 D_80162FF8 []
 
s16 D_80163010 []
 
f32 cpu_TargetSpeed []
 
s16 gPreviousAngleSteering []
 
f32 gTrackPositionFactor []
 
f32 D_80163090 []
 
bool gIsPlayerInCurve []
 
u16 gCurrentNearestPathPoint
 
s16 gIsPlayerNewPathPoint
 
s16 D_801630E8 []
 
s16 gFerrySmokeTimer
 
s32 D_80163100 []
 
s32 D_80163128 []
 
s32 D_80163150 []
 
f32 gPreviousPlayerAiOffsetX []
 
f32 gPreviousPlayerAiOffsetZ []
 
s16 sVehicleSoundRenderCounter
 
s32 D_801631CC
 
TrackPathPointgCurrentTrackLeftPath
 
TrackPathPointgCurrentTrackRightPath
 
s16gCurrentTrackSectionTypesPath
 
u16 D_801631E0 []
 
u16 D_801631F8 []
 
f32 gCurrentCpuTargetSpeed
 
f32 gPreviousCpuTargetSpeed []
 
s32 D_80163238
 
u16 D_80163240 []
 
u16 gWrongDirectionCounter []
 
u16 gIsPlayerWrongDirection []
 
s32 gPreviousLapProgressScore []
 
CPUBehavioursCurrentCPUBehaviour
 
u16 gCurrentCPUBehaviourId []
 
u16 gPreviousCPUBehaviourId []
 
u16 cpu_BehaviourState []
 
s16 sPlayerAngle []
 
u16 gPlayersTrackSectionId []
 
u16 D_80163330 []
 
u16 D_80163344 []
 
u16 D_80163348 []
 
u16 D_8016334C []
 
u16 gSpeedCPUBehaviour []
 
s32 D_80163368 []
 
s32 gIncrementUpdatePlayer
 
s32 D_8016337C
 
s16 gCurrentPlayerLookAhead []
 
s16 D_80163398 []
 
s16 D_801633B0 []
 
s16 D_801633C8 []
 
s16 D_801633E0 []
 
s16 D_801633F8 []
 
s16 D_80163410 []
 
f32 D_80163418 []
 
f32 D_80163428 []
 
f32 D_80163438 []
 
s32 gPlayerPathIndex
 
f32 gPathStartZ
 
f32 gPreviousPlayerZ []
 
s16 gBestRankedHumanPlayer
 
s16 gIsInExtra
 
s16 D_8016347C
 
s16 D_8016347E
 
s32 D_80163480
 
s32 D_80163484
 
s32 D_80163488
 
s16 D_8016348C
 
s16 cpu_enteringPathIntersection []
 
s16 cpu_exitingPathIntersection []
 
s16 D_801634C0 []
 
s16 bStopAICrossing []
 
s16 D_801634EC
 
s32 D_801634F0
 
s32 D_801634F4
 
TrackPositionFactorInstruction gPlayerTrackPositionFactorInstruction []
 
Path2DgVehicle2DPathPoint
 
s32 gVehicle2DPathLength
 
u16 isCrossingTriggeredByIndex []
 
u16 sCrossingActiveTimer []
 
s32 D_80163DD8 []
 
struct unexpiredActors gUnexpiredActorsList []
 
CpuItemStrategyData cpu_ItemStrategy []
 
s16 D_80164358
 
s16 D_8016435A
 
s16 D_8016435C
 
s16 gGPCurrentRacePlayerIdByRank []
 
s16 D_80164378 []
 
s32 gLapCountByPlayerId []
 
s32 gGPCurrentRaceRankByPlayerId []
 
s32 gPreviousGPCurrentRaceRankByPlayerId []
 
s32 gGPCurrentRaceRankByPlayerIdDup []
 
u16 gSelectedPathCount
 
u16 gNearestPathPointByPlayerId []
 
s32 gNumPathPointsTraversed []
 
s16 gGetPlayerByCharacterId []
 
s32 D_8016448C
 
f32 D_80164498 []
 
f32 gLapCompletionPercentByPlayerId []
 
f32 gCourseCompletionPercentByPlayerId []
 
s16 bInMultiPathSection []
 
f32 gPlayerPathY []
 
s16 D_80164538 []
 
s32 D_801645D0 []
 
s32 D_801645E8 []
 
f32 D_801645F8 []
 
s32 D_80164608 []
 
f32 D_80164618 []
 
s32 D_80164628 []
 
f32 D_80164638 []
 
f32 D_80164648 []
 
f32 D_80164658 []
 
s16 D_80164670 []
 
s16 D_80164678 []
 
s16 D_80164680 []
 
f32 D_80164688 []
 
f32 D_80164698
 
f32 D_8016469C
 
f32 D_801646A0
 
s16 D_801646C0 []
 
u32 D_801646C8
 
u16 D_801646CC
 
UnkStruct_46D0 D_801646D0 []
 
u16 D_801637BE
 
u16 D_80163E2A
 

Macro Definition Documentation

◆ SEVERE_CORRECT_DIRECTION_MAX

#define SEVERE_CORRECT_DIRECTION_MAX   316

◆ SEVERE_CORRECT_DIRECTION_MIN

#define SEVERE_CORRECT_DIRECTION_MIN   45

◆ SEVERE_WRONG_DIRECTION_MAX

#define SEVERE_WRONG_DIRECTION_MAX   225

◆ SEVERE_WRONG_DIRECTION_MIN

#define SEVERE_WRONG_DIRECTION_MIN   136

◆ WRONG_DIRECTION_FRAMES_LIMIT

#define WRONG_DIRECTION_FRAMES_LIMIT   5

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
cpu_BEHAVIOUR_STATE_NONE 
cpu_BEHAVIOUR_STATE_START 
cpu_BEHAVIOUR_STATE_RUNNING 

◆ anonymous enum

anonymous enum
Enumerator
SPEED_cpu_BEHAVIOUR_NORMAL 
SPEED_cpu_BEHAVIOUR_FAST 
SPEED_cpu_BEHAVIOUR_SLOW 
SPEED_cpu_BEHAVIOUR_MAX 

◆ CpuItemStrategyEnum

Enumerator
CPU_STRATEGY_WAIT_NEXT_ITEM 
CPU_STRATEGY_ITEM_BANANA 
CPU_STRATEGY_HOLD_BANANA 
CPU_STRATEGY_DROP_BANANA 
CPU_STRATEGY_ITEM_GREEN_SHELL 
CPU_STRATEGY_HOLD_GREEN_SHELL 
CPU_STRATEGY_THROW_GREEN_SHELL 
CPU_STRATEGY_ITEM_RED_SHELL 
CPU_STRATEGY_HOLD_RED_SHELL 
CPU_STRATEGY_THROW_RED_SHELL 
CPU_STRATEGY_ITEM_BANANA_BUNCH 
CPU_STRATEGY_WAIT_INIT_BANANA_BUNCH 
CPU_STRATEGY_DROP_BANANA_BUNCH 
CPU_STRATEGY_ITEM_FAKE_ITEM_BOX 
CPU_STRATEGY_HOLD_FAKE_ITEM_BOX 
CPU_STRATEGY_THROW_FAKE_ITEM_BOX 
CPU_STRATEGY_ITEM_THUNDERBOLT 
CPU_STRATEGY_END_THUNDERBOLT 
CPU_STRATEGY_ITEM_STAR 
CPU_STRATEGY_END_ITEM_STAR 
CPU_STRATEGY_ITEM_BOO 
CPU_STRATEGY_WAIT_END_BOO 
CPU_STRATEGY_ITEM_MUSHROOM 
CPU_STRATEGY_ITEM_DOUBLE_MUSHROOM 
CPU_STRATEGY_ITEM_TRIPLE_MUSHROOM 
CPU_STRATEGY_ITEM_SUPER_MUSHROOM 
CPU_STRATEGY_USE_SUPER_MUSHROOM 
CPU_STRATEGY_THROW_BANANA 
CPU_STRATEGY_HOLD_THROW_BANANA 
CPU_STRATEGY_END_THROW_BANANA 

Function Documentation

◆ add_actor_in_unexpired_actor_list()

s32 add_actor_in_unexpired_actor_list ( s32 actorIndex,
s16 arg1 )
Here is the caller graph for this function:

◆ add_blue_shell_in_unexpired_actor_list()

s32 add_blue_shell_in_unexpired_actor_list ( s32 arg0)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ add_green_shell_in_unexpired_actor_list()

s32 add_green_shell_in_unexpired_actor_list ( s32 actorIndex)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ add_red_shell_in_unexpired_actor_list()

s32 add_red_shell_in_unexpired_actor_list ( s32 actorIndex)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ adjust_path_at_start_line()

void adjust_path_at_start_line ( f32 ,
f32 ,
f32 ,
s16 * ,
s32  )

◆ adjust_position_by_angle()

void adjust_position_by_angle ( Vec3f newPos,
Vec3f oldPos,
s16 orientationY )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ analisze_curved_path()

void analisze_curved_path ( s32 pathIndex)
Here is the caller graph for this function:

◆ analize_track_section()

void analize_track_section ( s32 pathIndex)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ analyse_angle_path()

void analyse_angle_path ( s32 pathIndex)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ are_in_curve()

s32 are_in_curve ( s32 ,
u16  )

◆ calculate_angle_path()

s16 calculate_angle_path ( s32 pathIndex,
s32 pathPointIndex )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ calculate_camera_up_vector()

void calculate_camera_up_vector ( Camera * camera,
s32 cameraIndex )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ calculate_track_boundaries()

void calculate_track_boundaries ( s32 pathIndex)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ calculate_track_curvature()

f32 calculate_track_curvature ( s32 pathIndex,
u16 pathPointIndex )

Calculates the track curvature using two sets of three path. Returns a normalized value indicating curve direction and severity:

  • Positive: Right turn
  • Negative: Left turn
  • Near zero: Straight section
Parameters
pathIndexTrack path index
pathPointIndexStarting pathPoint for calculation
Returns
Normalized curvature value (-1 to 1)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ calculate_track_offset_position()

void calculate_track_offset_position ( u16 pathPointIndex,
f32 lerpFactor,
f32 offsetDistance,
s16 pathIndex )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ calculate_track_position_factor()

f32 calculate_track_position_factor ( f32 posX,
f32 posZ,
u16 pathPointIndex,
s32 pathIndex )

Calculates a factor representing where the player is positioned between left and right track boundaries Returns a value between -1.0 and 1.0: -1.0 = On the left boundary 0.0 = In the middle of the track 1.0 = On the right boundary

Parameters
posXPlayer's X position
posZPlayer's Z position
pathPointIndexCurrent pathPoint index
pathIndexCurrent path/track index
Returns
Position factor between track boundaries
Here is the caller graph for this function:

◆ check_ai_crossing_distance()

void check_ai_crossing_distance ( s32 playerId)
Here is the call graph for this function:

◆ clear_expired_strategies()

void clear_expired_strategies ( CpuItemStrategyData * arg0)

◆ clear_pathPoint()

void clear_pathPoint ( TrackPathPoint * arg0,
size_t size )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ copy_courses_cpu_behaviour()

void copy_courses_cpu_behaviour ( void )
Here is the caller graph for this function:

◆ cpu_behaviour()

void cpu_behaviour ( s32 playerIndex)
Here is the call graph for this function:

◆ cpu_behaviour_end()

void cpu_behaviour_end ( s32 playerIndex,
Player * player )
Here is the caller graph for this function:

◆ cpu_behaviour_start()

void cpu_behaviour_start ( s32 playerId,
Player * player )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ cpu_decisions_branch_item()

void cpu_decisions_branch_item ( s32 ,
s16 * ,
s32  )

◆ cpu_track_position_factor()

f32 cpu_track_position_factor ( s32 playerId)
Here is the caller graph for this function:

◆ cpu_use_item_strategy()

void cpu_use_item_strategy ( s32 )

◆ delete_actor_in_unexpired_actor_list()

void delete_actor_in_unexpired_actor_list ( s32 actorIndex)
Here is the caller graph for this function:

◆ detect_wrong_player_direction()

void detect_wrong_player_direction ( s32 playerId,
Player * player )

◆ determine_ideal_cpu_position_offset()

void determine_ideal_cpu_position_offset ( s32 playerId,
u16 pathPoint )
Here is the call graph for this function:

◆ find_closest_pathPoint_track_section()

s16 find_closest_pathPoint_track_section ( f32 posX,
f32 posY,
f32 posZ,
u16 trackSectionId,
s32 * pathIndex )
Here is the caller graph for this function:

◆ find_closest_vehicles_pathPoint()

s16 find_closest_vehicles_pathPoint ( f32 ,
f32 ,
f32 ,
s16  )

◆ func_80007D04()

void func_80007D04 ( s32 playerId,
Player * player )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ func_80007FA4()

void func_80007FA4 ( s32 playerId,
Player * player,
f32 arg2 )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ func_800088D8()

bool func_800088D8 ( s32 ,
s16 ,
s16  )
Here is the caller graph for this function:

◆ func_80009258()

f32 func_80009258 ( s32 ,
f32 ,
f32  )

◆ func_8000B140()

void func_8000B140 ( s32 )

◆ func_8000BD94()

s16 func_8000BD94 ( f32 posX,
f32 posY,
f32 posZ,
s32 pathIndex )
Here is the caller graph for this function:

◆ func_8000D24C()

s16 func_8000D24C ( f32 posX,
f32 posY,
f32 posZ,
s32 * pathIndex )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ func_8000D2B4()

s16 func_8000D2B4 ( f32 posX,
f32 posY,
f32 posZ,
s16 pathPointIndex,
s32 pathIndex )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ func_8000D33C()

s16 func_8000D33C ( f32 posX,
f32 posY,
f32 posZ,
s16 pathPointIndex,
s32 pathIndex )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ func_8000D6D0()

s16 func_8000D6D0 ( Vec3f position,
s16 * pathPointIndex,
f32 speed,
f32 arg3,
s16 pathIndex,
s16 arg5 )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ func_8000D940()

s16 func_8000D940 ( Vec3f pos,
s16 * pathPointIndex,
f32 speed,
f32 arg3,
s16 pathIndex )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ func_8000DF8C()

void func_8000DF8C ( s32 bombKartId)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ func_8000EEDC()

void func_8000EEDC ( void )
Here is the caller graph for this function:

◆ func_8000F0E0()

void func_8000F0E0 ( void )
Here is the caller graph for this function:

◆ func_8000F124()

void func_8000F124 ( void )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ func_80010F40()

f32 func_80010F40 ( f32 ,
f32 ,
f32 ,
s32 ,
s32  )

◆ func_80010FA0()

f32 func_80010FA0 ( f32 ,
f32 ,
f32 ,
s32 ,
s32  )

◆ func_80011014()

s32 func_80011014 ( TrackPathPoint * ,
TrackPathPoint * ,
s32 ,
s32  )

◆ func_80011EC0()

void func_80011EC0 ( s32 ,
Player * ,
s32 ,
u16  )

◆ func_80013054()

void func_80013054 ( void )

Appears to check if the train is close to the crossing. Implements sCrossingActiveTimer as a counter

◆ func_80013C74()

f32 func_80013C74 ( s16 someType,
s16 pathPointIndex )
Here is the caller graph for this function:

◆ func_80014D30()

void func_80014D30 ( s32 cameraId,
s32 pathIndex )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ func_80014DE4()

void func_80014DE4 ( s32 cameraIndex)
Here is the caller graph for this function:

◆ func_80014EE4()

f32 func_80014EE4 ( f32 arg0,
s32 arg1 )
Here is the caller graph for this function:

◆ func_8001530C()

void func_8001530C ( void )

◆ func_80015314()

void func_80015314 ( s32 ,
f32 ,
s32  )

◆ func_80015390()

void func_80015390 ( Camera * ,
Player * ,
s32  )

◆ func_80015544()

void func_80015544 ( s32 playerId,
f32 arg1,
s32 cameraId,
s32 pathIndex )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ func_8001577C()

void func_8001577C ( Camera * ,
UNUSED Player * ,
s32 ,
s32  )

◆ func_80015A9C()

void func_80015A9C ( s32 playerId,
f32 arg1,
s32 cameraId,
s16 pathIndex )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ func_80015C94()

void func_80015C94 ( Camera * ,
Player * ,
s32 ,
s32  )

◆ func_800162CC()

void func_800162CC ( s32 playerId,
f32 arg1,
s32 cameraId,
s16 pathIndex )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ func_80016494()

void func_80016494 ( Camera * ,
Player * ,
s32 ,
s32  )

◆ func_80016C3C()

void func_80016C3C ( s32 ,
f32 ,
s32  )

◆ func_80017720()

void func_80017720 ( s32 ,
f32 ,
s32 ,
s16  )

◆ func_800178F4()

void func_800178F4 ( Camera * ,
Player * ,
s32 ,
s32  )

◆ func_80017F10()

void func_80017F10 ( s32 ,
f32 ,
s32 ,
s16  )

◆ func_800180F0()

void func_800180F0 ( Camera * ,
Player * ,
s32 ,
s32  )

◆ func_80018718()

void func_80018718 ( s32 ,
f32 ,
s32 ,
s16  )

◆ func_800188F4()

void func_800188F4 ( Camera * ,
Player * ,
s32 ,
s32  )

◆ func_80019118()

void func_80019118 ( s32 ,
f32 ,
s32 ,
s16  )

◆ func_8001933C()

void func_8001933C ( Camera * ,
UNUSED Player * ,
s32 ,
s32  )

◆ func_8001968C()

void func_8001968C ( void )
Here is the caller graph for this function:

◆ func_8001969C()

void func_8001969C ( s32 ,
f32 ,
s32 ,
s16  )

◆ func_80019760()

void func_80019760 ( Camera * ,
UNUSED Player * ,
s32 ,
s32  )

◆ func_80019890()

void func_80019890 ( s32 playerId,
s32 cameraId )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ func_80019B50()

void func_80019B50 ( s32 cameraIndex,
u16 arg1 )
Here is the caller graph for this function:

◆ func_80019C50()

void func_80019C50 ( s32 arg0)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ func_80019D2C()

void func_80019D2C ( Camera * camera,
Player * player,
s32 arg2 )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ func_80019DE4()

void func_80019DE4 ( void )
Here is the caller graph for this function:

◆ func_80019DF4()

void func_80019DF4 ( void )
Here is the caller graph for this function:

◆ func_80019E58()

void func_80019E58 ( void )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ func_80019ED0()

void func_80019ED0 ( void )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ func_80019FB4()

void func_80019FB4 ( s32 cameraId)
Here is the caller graph for this function:

◆ func_8001A0A4()

void func_8001A0A4 ( u16 * ,
Camera * ,
Player * ,
s8 ,
s32  )

◆ func_8001A0DC()

void func_8001A0DC ( u16 * arg0,
Camera * arg1,
Player * arg2,
s8 arg3,
s32 arg4 )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ func_8001A124()

void func_8001A124 ( s32 arg0,
s32 arg1 )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ func_8001A310()

s32 func_8001A310 ( s32 pathPoint,
s32 arg1 )
Here is the caller graph for this function:

◆ func_8001A348()

void func_8001A348 ( s32 cameraId,
f32 arg1,
s32 arg2 )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ func_8001A3D8()

void func_8001A3D8 ( s32 arg0,
f32 arg1,
s32 arg2 )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ func_8001A450()

void func_8001A450 ( s32 playerId,
s32 arg1,
s32 arg2 )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ func_8001A518()

void func_8001A518 ( s32 arg0,
s32 arg1,
s32 arg2 )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ func_8001A588()

void func_8001A588 ( u16 * ,
Camera * ,
Player * ,
s8 ,
s32  )

◆ func_8001AAAC()

void func_8001AAAC ( s16 arg0,
s16 arg1,
s16 arg2 )
Here is the caller graph for this function:

◆ func_8001AB00()

void func_8001AB00 ( void )
Here is the caller graph for this function:

◆ func_8001ABE0()

void func_8001ABE0 ( s32 ,
CpuItemStrategyData *  )

◆ func_8001BE78()

void func_8001BE78 ( void )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ func_8001C05C()

void func_8001C05C ( void )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ func_8001C14C()

void func_8001C14C ( void )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ func_8001C3C4()

void func_8001C3C4 ( s32 cameraId)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ func_8001C42C()

void func_8001C42C ( void )
Here is the call graph for this function:

◆ generate_2d_path()

s32 generate_2d_path ( Path2D * pathDest,
TrackPathPoint * pathSrc,
s32 numPathPoints )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ generate_ferry_path()

void generate_ferry_path ( void )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ generate_player_smoke()

void generate_player_smoke ( void )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ generate_train_path()

void generate_train_path ( void )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_angle_between_path()

s16 get_angle_between_path ( Vec3f arg0,
Vec3f arg1 )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ handle_box_trucks_interactions()

void handle_box_trucks_interactions ( s32 playerId,
Player * player )
Here is the call graph for this function:

◆ handle_cars_interactions()

void handle_cars_interactions ( s32 playerId,
Player * player )
Here is the call graph for this function:

◆ handle_paddleBoats_interactions()

void handle_paddleBoats_interactions ( Player * player)
Here is the call graph for this function:

◆ handle_school_buses_interactions()

void handle_school_buses_interactions ( s32 playerId,
Player * player )
Here is the call graph for this function:

◆ handle_tanker_trucks_interactions()

void handle_tanker_trucks_interactions ( s32 playerId,
Player * player )
Here is the call graph for this function:

◆ handle_trains_interactions()

void handle_trains_interactions ( s32 playerId,
Player * player )
Here is the call graph for this function:

◆ handle_vehicle_interactions()

void handle_vehicle_interactions ( s32 playerId,
Player * player,
VehicleStuff * vehicle,
f32 distanceX,
f32 distanceY,
s32 vehicleCount,
u32 soundBits )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ init_course_path_point()

void init_course_path_point ( void )
Warning
does not appear to zero all the above allocated variables.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ init_players()

void init_players ( void )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ init_vehicles_box_trucks()

void init_vehicles_box_trucks ( void )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ init_vehicles_cars()

void init_vehicles_cars ( void )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ init_vehicles_ferry()

void init_vehicles_ferry ( void )
Here is the caller graph for this function:

◆ init_vehicles_school_buses()

void init_vehicles_school_buses ( void )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ init_vehicles_trains()

void init_vehicles_trains ( void )

Set pathPoint spawn locations for each rolling stock The railroad has 465 path

Here is the call graph for this function:
Here is the caller graph for this function:

◆ init_vehicles_trucks()

void init_vehicles_trucks ( void )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ initialize_toads_turnpike_vehicle()

void initialize_toads_turnpike_vehicle ( f32 speedA,
f32 speedB,
s32 numVehicles,
s32 arg3,
VehicleStuff * vehicleList,
TrackPathPoint * pathPointList )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ is_collide_with_vehicle()

s32 is_collide_with_vehicle ( f32 vehicleX,
f32 vehicleY,
f32 vehicleVelocityX,
f32 vehicleVelocityZ,
f32 distanceX,
f32 distanceY,
f32 playerX,
f32 playerZ )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ is_far_from_path()

bool is_far_from_path ( s32 playerIndex)
Here is the caller graph for this function:

◆ is_path_point_in_range()

s32 is_path_point_in_range ( u16 pathPoint,
u16 currentPathPoint,
u16 backwardRange,
u16 forwardRange,
u16 totalPathPoints )

Checks if a path point is within a valid range of another path point, accounting for track wrapping

Parameters
pathPointThe path point to check
currentPathPointThe reference path point
backwardRangeNumber of path to look behind
forwardRangeNumber of path to look ahead
totalPathPointsTotal number of path in the track
Returns
1: path point is within normal range -1: path point is within wrapped range 2: path point is out of range 0: invalid range parameters
Here is the caller graph for this function:

◆ load_track_path()

void load_track_path ( s32 pathIndex)
Todo
Confirm this comment
Here is the call graph for this function:
Here is the caller graph for this function:

◆ play_cpu_sound_effect()

void play_cpu_sound_effect ( s32 arg0,
Player * player )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ player_track_position_factor_vehicle()

f32 player_track_position_factor_vehicle ( s16 someType,
f32 arg1,
s16 pathIndex )
Here is the caller graph for this function:

◆ process_path_data()

s32 process_path_data ( TrackPathPoint * dest,
TrackPathPoint * src )
Here is the caller graph for this function:

◆ regulate_cpu_speed()

void regulate_cpu_speed ( s32 playerId,
f32 targetSpeed,
Player * player )
Here is the call graph for this function:

◆ reset_cpu_behaviour()

void reset_cpu_behaviour ( s32 playerIndex)

◆ reset_cpu_behaviour_none()

void reset_cpu_behaviour_none ( s32 playerIndex)
Here is the caller graph for this function:

◆ set_bomb_kart_spawn_positions()

void set_bomb_kart_spawn_positions ( void )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ set_current_path()

void set_current_path ( s32 pathIndex)
Here is the caller graph for this function:

◆ set_places()

void set_places ( void )

◆ set_places_end_course_with_time()

void set_places_end_course_with_time ( void )
Here is the caller graph for this function:

◆ set_track_offset_position()

void set_track_offset_position ( u16 pathPointIndex,
f32 trackOffset,
s16 pathIndex )

Calculates an interpolated position between left and right track paths.

Parameters
currentPathPointIndex of the current pathPoint
trackOffsetValue between 0.0 and 1.0 determining position between left (0.0) and right (1.0) path
pathIndexIndex of the track/path segment
Here is the caller graph for this function:

◆ set_vehicle_pos_pathPoint()

void set_vehicle_pos_pathPoint ( TrainCarStuff * trainCar,
Path2D * posXZ,
u16 pathPoint )
Here is the caller graph for this function:

◆ set_vehicle_render_distance_flags()

s32 set_vehicle_render_distance_flags ( Vec3f vehiclePos,
f32 renderDistance,
s32 flags )
Here is the caller graph for this function:

◆ spawn_course_vehicles()

void spawn_course_vehicles ( void )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ spawn_vehicle_on_road()

void spawn_vehicle_on_road ( VehicleStuff * vehicle)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ sync_train_components()

void sync_train_components ( TrainCarStuff * trainCar,
s16 orientationY )

sync the train components vehicle with the actor

Parameters
trainCar
orientationY
Here is the caller graph for this function:

◆ tweak_path_index_wario_stadium()

void tweak_path_index_wario_stadium ( f32 ,
f32 ,
f32 ,
s16 * ,
s32  )

◆ update_cpu_path_completion()

void update_cpu_path_completion ( s32 playerId,
Player * player )
Here is the call graph for this function:

◆ update_path_index()

s16 update_path_index ( f32 posX,
f32 posY,
f32 posZ,
s16 pathPointIndex,
s32 pathIndex )

Tries to find the pathPoint nearest to (posX, posY, posZ) Only considers path within 400 units of (posX, posY, posZ) Looks 3 path behind and 6 path ahead of pathPointIndex

This fake match is done to stop the compiler from optimzing out considerPathPoint. Maybe if no pathPoint was found some debugging info was printed out, but come production time they removed the debug printing but not the loop?

Here is the caller graph for this function:

◆ update_path_index_track_section()

s16 update_path_index_track_section ( f32 posX,
f32 posY,
f32 posZ,
Player * player,
s32 playerId,
s32 * pathIndex )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ update_path_index_with_track()

s16 update_path_index_with_track ( f32 posX,
f32 posY,
f32 posZ,
s16 pathPointIndex,
s32 pathIndex,
u16 trackSectionId )

Tries to find the pathPoint nearest to (posX, posY, posZ) Only consider path in the same segment as trackSectionId Only considers path within 500 units of(posX, posY, posZ) Looks 3 path behind and 6 path ahead of pathPointIndex

Here is the caller graph for this function:

◆ update_player()

void update_player ( s32 )
Here is the caller graph for this function:

◆ update_player_completion()

void update_player_completion ( s32 playerId)
Here is the caller graph for this function:

◆ update_player_path()

s16 update_player_path ( f32 posX,
f32 posY,
f32 posZ,
s16 pathPointIndex,
Player * player,
s32 playerId,
s32 pathIndex )

Updates and validates a player's pathPoint position on the track Handles different logic for human players vs AI, and includes recovery mechanisms

Parameters
posXCurrent X position
posYCurrent Y position
posZCurrent Z position
pathPointIndexCurrent pathPoint index
playerPointer to player structure
playerIdPlayer's ID
pathIndexCurrent track path index
Returns
New pathPoint index or -1 if invalid
Here is the call graph for this function:
Here is the caller graph for this function:

◆ update_player_path_completion()

void update_player_path_completion ( s32 ,
Player *  )

◆ update_player_path_selection()

s32 update_player_path_selection ( s32 payerId,
s32 pathIndex )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ update_player_position_factor()

void update_player_position_factor ( s32 playerId,
u16 pathPointIndex,
s32 pathIndex )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ update_player_rankings()

void update_player_rankings ( void )
Here is the caller graph for this function:

◆ update_player_timer_sound()

void update_player_timer_sound ( s32 ,
Player *  )

◆ update_player_track_position_factor_from_box_trucks()

void update_player_track_position_factor_from_box_trucks ( s32 playerId)
Here is the call graph for this function:

◆ update_player_track_position_factor_from_buses()

void update_player_track_position_factor_from_buses ( s32 playerId)
Here is the call graph for this function:

◆ update_player_track_position_factor_from_cars()

void update_player_track_position_factor_from_cars ( s32 playerId)
Here is the call graph for this function:

◆ update_player_track_position_factor_from_tanker_truck()

void update_player_track_position_factor_from_tanker_truck ( s32 playerId)
Here is the call graph for this function:

◆ update_player_track_position_factor_from_vehicle()

void update_player_track_position_factor_from_vehicle ( s32 playerId,
s32 vehicleCount,
VehicleStuff * vehicle )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ update_vehicle_box_trucks()

void update_vehicle_box_trucks ( void )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ update_vehicle_cars()

void update_vehicle_cars ( void )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ update_vehicle_follow_pathPoint()

void update_vehicle_follow_pathPoint ( VehicleStuff * vehicle)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ update_vehicle_following_path()

s16 update_vehicle_following_path ( Vec3f pos,
s16 * pathPointIndex,
f32 speed )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ update_vehicle_paddle_boats()

void update_vehicle_paddle_boats ( void )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ update_vehicle_school_bus()

void update_vehicle_school_bus ( void )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ update_vehicle_tanker_trucks()

void update_vehicle_tanker_trucks ( void )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ update_vehicle_trains()

void update_vehicle_trains ( void )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ update_vehicles()

void update_vehicles ( void )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ yoshi_valley_cpu_path()

void yoshi_valley_cpu_path ( s32 playerId)

Variable Documentation

◆ bInMultiPathSection

s16 bInMultiPathSection[]
extern

◆ bStopAICrossing

s16 bStopAICrossing[]
extern

◆ cpu_BehaviourState

u16 cpu_BehaviourState[]
extern

◆ cpu_enteringPathIntersection

s16 cpu_enteringPathIntersection[]
extern

◆ cpu_exitingPathIntersection

s16 cpu_exitingPathIntersection[]
extern

◆ cpu_ItemStrategy

CpuItemStrategyData cpu_ItemStrategy[]
extern

◆ cpu_TargetSpeed

f32 cpu_TargetSpeed[]
extern

◆ D_80162E70

Collision D_80162E70
extern

◆ D_80162EB0

s16 D_80162EB0
extern

◆ D_80162EB2

s16 D_80162EB2
extern

◆ D_80162F10

s16 D_80162F10[]
extern

◆ D_80162F50

s16 D_80162F50[]
extern

◆ D_80162FB0

Vec3f D_80162FB0
extern

◆ D_80162FC0

Vec3f D_80162FC0
extern

◆ D_80162FD0

s16 D_80162FD0
extern

◆ D_80162FF8

s16 D_80162FF8[]
extern

◆ D_80163010

s16 D_80163010[]
extern

◆ D_80163090

f32 D_80163090[]
extern

◆ D_801630E8

s16 D_801630E8[]
extern

◆ D_80163100

s32 D_80163100[]
extern

◆ D_80163128

s32 D_80163128[]
extern

◆ D_80163150

s32 D_80163150[]
extern

◆ D_801631CC

s32 D_801631CC
extern

◆ D_801631E0

u16 D_801631E0[]
extern

◆ D_801631F8

u16 D_801631F8[]
extern

◆ D_80163238

s32 D_80163238
extern

◆ D_80163240

u16 D_80163240[]
extern

◆ D_80163330

u16 D_80163330[]
extern

◆ D_80163344

u16 D_80163344[]
extern

◆ D_80163348

u16 D_80163348[]
extern

◆ D_8016334C

u16 D_8016334C[]
extern

◆ D_80163368

s32 D_80163368[]
extern

◆ D_8016337C

s32 D_8016337C
extern

◆ D_80163398

s16 D_80163398[]
extern

◆ D_801633B0

s16 D_801633B0[]
extern

◆ D_801633C8

s16 D_801633C8[]
extern

◆ D_801633E0

s16 D_801633E0[]
extern

◆ D_801633F8

s16 D_801633F8[]
extern

◆ D_80163410

s16 D_80163410[]
extern

◆ D_80163418

f32 D_80163418[]
extern

◆ D_80163428

f32 D_80163428[]
extern

◆ D_80163438

f32 D_80163438[]
extern

◆ D_8016347C

s16 D_8016347C
extern

◆ D_8016347E

s16 D_8016347E
extern

◆ D_80163480

s32 D_80163480
extern

◆ D_80163484

s32 D_80163484
extern

◆ D_80163488

s32 D_80163488
extern

◆ D_8016348C

s16 D_8016348C
extern

◆ D_801634C0

s16 D_801634C0[]
extern

◆ D_801634EC

s16 D_801634EC
extern

◆ D_801634F0

s32 D_801634F0
extern

◆ D_801634F4

s32 D_801634F4
extern

◆ D_801637BE

u16 D_801637BE
extern

◆ D_80163DD8

s32 D_80163DD8[]
extern

◆ D_80163E2A

u16 D_80163E2A
extern

◆ D_80164358

s16 D_80164358
extern

◆ D_8016435A

s16 D_8016435A
extern

◆ D_8016435C

s16 D_8016435C
extern

◆ D_80164378

s16 D_80164378[]
extern

◆ D_8016448C

s32 D_8016448C
extern

◆ D_80164498

f32 D_80164498[]
extern

◆ D_80164538

s16 D_80164538[]
extern

◆ D_801645D0

s32 D_801645D0[]
extern

◆ D_801645E8

s32 D_801645E8[]
extern

◆ D_801645F8

f32 D_801645F8[]
extern

◆ D_80164608

s32 D_80164608[]
extern

◆ D_80164618

f32 D_80164618[]
extern

◆ D_80164628

s32 D_80164628[]
extern

◆ D_80164638

f32 D_80164638[]
extern

◆ D_80164648

f32 D_80164648[]
extern

◆ D_80164658

f32 D_80164658[]
extern

◆ D_80164670

s16 D_80164670[]
extern

◆ D_80164678

s16 D_80164678[]
extern

◆ D_80164680

s16 D_80164680[]
extern

◆ D_80164688

f32 D_80164688[]
extern

◆ D_80164698

f32 D_80164698
extern

◆ D_8016469C

f32 D_8016469C
extern

◆ D_801646A0

f32 D_801646A0
extern

◆ D_801646C0

s16 D_801646C0[]
extern

◆ D_801646C8

u32 D_801646C8
extern

◆ D_801646CC

u16 D_801646CC
extern

◆ D_801646D0

UnkStruct_46D0 D_801646D0[]
extern

◆ gBestRankedHumanPlayer

s16 gBestRankedHumanPlayer
extern

◆ gCourseCompletionPercentByPlayerId

f32 gCourseCompletionPercentByPlayerId[]
extern

◆ gCourseCompletionPercentByRank

f32 gCourseCompletionPercentByRank[NUM_PLAYERS]
extern

◆ gCoursesCPUBehaviour

CPUBehaviour* gCoursesCPUBehaviour[]
extern

◆ gCurrentCPUBehaviourId

u16 gCurrentCPUBehaviourId[]
extern

◆ gCurrentCpuTargetSpeed

f32 gCurrentCpuTargetSpeed
extern

◆ gCurrentNearestPathPoint

u16 gCurrentNearestPathPoint
extern

◆ gCurrentPlayerLookAhead

s16 gCurrentPlayerLookAhead[]
extern

◆ gCurrentTrackLeftPath

TrackPathPoint* gCurrentTrackLeftPath
extern

◆ gCurrentTrackRightPath

TrackPathPoint* gCurrentTrackRightPath
extern

◆ gCurrentTrackSectionTypesPath

s16* gCurrentTrackSectionTypesPath
extern

◆ gFerrySmokeTimer

s16 gFerrySmokeTimer
extern

◆ gGetPlayerByCharacterId

s16 gGetPlayerByCharacterId[]
extern

◆ gGPCurrentRacePlayerIdByRank

s16 gGPCurrentRacePlayerIdByRank[]
extern

◆ gGPCurrentRaceRankByPlayerId

s32 gGPCurrentRaceRankByPlayerId[]
extern

◆ gGPCurrentRaceRankByPlayerIdDup

s32 gGPCurrentRaceRankByPlayerIdDup[]
extern

◆ gIncrementUpdatePlayer

s32 gIncrementUpdatePlayer
extern

◆ gIsInExtra

s16 gIsInExtra
extern

◆ gIsPlayerInCurve

bool gIsPlayerInCurve[]
extern

◆ gIsPlayerNewPathPoint

s16 gIsPlayerNewPathPoint
extern

◆ gIsPlayerWrongDirection

u16 gIsPlayerWrongDirection[]
extern

◆ gLapCompletionPercentByPlayerId

f32 gLapCompletionPercentByPlayerId[]
extern

◆ gLapCountByPlayerId

s32 gLapCountByPlayerId[]
extern

◆ gNearestPathPointByPlayerId

u16 gNearestPathPointByPlayerId[]
extern

◆ gNumPathPointsTraversed

s32 gNumPathPointsTraversed[]
extern

◆ gOffsetPosition

Vec3f gOffsetPosition
extern

◆ gPathStartZ

f32 gPathStartZ
extern

◆ gPlayerPathIndex

s32 gPlayerPathIndex
extern

◆ gPlayerPathY

f32 gPlayerPathY[]
extern

◆ gPlayersTrackSectionId

u16 gPlayersTrackSectionId[]
extern

◆ gPlayerTrackPositionFactorInstruction

TrackPositionFactorInstruction gPlayerTrackPositionFactorInstruction[]
extern

◆ gPreviousAngleSteering

s16 gPreviousAngleSteering[]
extern

◆ gPreviousCPUBehaviourId

u16 gPreviousCPUBehaviourId[]
extern

◆ gPreviousCpuTargetSpeed

f32 gPreviousCpuTargetSpeed[]
extern

◆ gPreviousGPCurrentRaceRankByPlayerId

s32 gPreviousGPCurrentRaceRankByPlayerId[]
extern

◆ gPreviousLapProgressScore

s32 gPreviousLapProgressScore[]
extern

◆ gPreviousPlayerAiOffsetX

f32 gPreviousPlayerAiOffsetX[]
extern

◆ gPreviousPlayerAiOffsetZ

f32 gPreviousPlayerAiOffsetZ[]
extern

◆ gPreviousPlayerZ

f32 gPreviousPlayerZ[]
extern

◆ gSelectedPathCount

u16 gSelectedPathCount
extern

◆ gSpeedCPUBehaviour

u16 gSpeedCPUBehaviour[]
extern

◆ gTrackPositionFactor

f32 gTrackPositionFactor[]
extern

◆ gTrainSmokeTimer

s16 gTrainSmokeTimer
extern

◆ gUnexpiredActorsList

struct unexpiredActors gUnexpiredActorsList[]
extern

◆ gVehicle2DPathLength

s32 gVehicle2DPathLength
extern

◆ gVehicle2DPathPoint

Path2D* gVehicle2DPathPoint
extern

◆ gWrongDirectionCounter

u16 gWrongDirectionCounter[]
extern

◆ isCrossingTriggeredByIndex

u16 isCrossingTriggeredByIndex[]
extern

◆ sCrossingActiveTimer

u16 sCrossingActiveTimer[]
extern

◆ sCurrentCPUBehaviour

CPUBehaviour* sCurrentCPUBehaviour
extern

◆ sPlayerAngle

s16 sPlayerAngle[]
extern

◆ sVehicleSoundRenderCounter

s16 sVehicleSoundRenderCounter
extern