13#define LEGORACECAR_UNKNOWN_0 0
19#define LEGORACECAR_UNKNOWN_1 1
25#define LEGORACECAR_KICK1 2
31#define LEGORACECAR_KICK2 4
120 void Animate(
float p_time)
override;
183 return "LegoRaceCar";
228 void Animate(
float p_time)
override;
[AI] Specialized actor class for car-based racing in LEGO Island racing sequences....
MxU32 VTable0x6c(LegoPathBoundary *p_boundary, Vector3 &p_v1, Vector3 &p_v2, float p_f1, float p_f2, Vector3 &p_v3) override
[AI] Performs collision detection and/or special logic while moving the car actor along a boundary.
void SwitchBoundary(LegoPathBoundary *&p_boundary, LegoUnknown100db7f4 *&p_edge, float &p_unk0xe4) override
[AI] Handles switching from one path boundary to another, updating relevant edge and position paramet...
MxBool IsA(const char *p_name) const override
[AI] Checks if the object is a given class name (used for runtime type identification).
[AI] A racing actor subclass representing jetski (water-based) vehicles. Modifies car parameters and ...
MxU32 VTable0x6c(LegoPathBoundary *p_boundary, Vector3 &p_v1, Vector3 &p_v2, float p_f1, float p_f2, Vector3 &p_v3) override
[AI] Collision and path interaction routine specialized for jetski actors.
MxBool IsA(const char *p_name) const override
[AI] Checks if the object is a given class name (used for runtime type identification).
[AI] Represents a Jetski actor in the race, combining behavior from LegoJetskiRaceActor and LegoRaceM...
void SwitchBoundary(LegoPathBoundary *&p_boundary, LegoUnknown100db7f4 *&p_edge, float &p_unk0xe4) override
[AI] Switches the current boundary and tracking edge based on race logic.
MxU32 VTable0x6c(LegoPathBoundary *p_boundary, Vector3 &p_v1, Vector3 &p_v2, float p_f1, float p_f2, Vector3 &p_v3) override
[AI] Thin override that delegates path boundary-related animation calculation to base implementation.
static void InitSoundIndices()
[AI] Initializes static indices for jetski-specific sound arrays to randomized starting positions.
void ParseAction(char *p_extra) override
[AI] Parses an action string to configure or trigger Jetski behaviors such as switching race boundari...
void SetWorldSpeed(MxFloat p_worldSpeed) override
[AI] Sets world speed for the jetski, influencing both physics and animation logic.
MxLong Notify(MxParam &p_param) override
[AI] Processes notifications/events for the LegoJetski instance (see MxCore).
const char * ClassName() const override
[AI] Returns the runtime class name ("LegoJetski").
MxBool IsA(const char *p_name) const override
[AI] Determines if this object is of the given class type or derives from it.
MxResult VTable0x9c() override
[AI] Used for post-animation logic (purpose inferred as clean up or ready-check; see base classes).
virtual void FUN_100136f0(float p_worldSpeed)
[AI] Custom world speed handler for clamping or setting maximum velocity for the jetski.
MxResult HitActor(LegoPathActor *p_actor, MxBool p_bool) override
[AI] Handles collision/hit logic between this jetski and another race actor.
void Animate(float p_time) override
[AI] Updates jetski animation for the current frame.
[AI] An actor that moves along a predefined path, supporting boundary transitions,...
virtual void SwitchBoundary(LegoPathBoundary *&p_boundary, LegoUnknown100db7f4 *&p_edge, float &p_unk0xe4)
[AI] Switches current path boundary and destination edge, typically called on transitions or respawns...
virtual MxResult VTable0x9c()
[AI] Handles exit transition and next-edge search logic; also used for collision reaction and fallbac...
[AI] Represents a path segment or boundary in the navigation network for actors (vehicles,...
[AI] Represents a Race Car actor in the game, combining advanced pathing, skeleton kick logic,...
MxBool IsA(const char *p_name) const override
[AI] Determines if this object is of the given class type or derives from it.
void ParseAction(char *p_extra) override
[AI] Parses an action string to configure or trigger car behaviors (e.g., updates kick animation refe...
const char * ClassName() const override
[AI] Returns the runtime class name ("LegoRaceCar").
MxResult HitActor(LegoPathActor *p_actor, MxBool p_bool) override
[AI] Handles player/AI actor collision—score, animation, and sound effects, as well as respawn logic ...
static void InitSoundIndices()
[AI] Initializes sound playback array indices for collision sounds to randomized values.
MxU32 VTable0x6c(LegoPathBoundary *p_boundary, Vector3 &p_v1, Vector3 &p_v2, float p_f1, float p_f2, Vector3 &p_v3) override
[AI] Delegates advanced animation calculation to base class; see base for logic.
MxLong Notify(MxParam &p_param) override
[AI] Processes notifications/events for the LegoRaceCar (see MxCore).
void Animate(float p_time) override
[AI] Main animation tick function; handles skeleton kick special states when user-controlled.
void SetWorldSpeed(MxFloat p_worldSpeed) override
[AI] Sets world speed for the race car, either for user nav or animation context.
virtual MxU32 HandleSkeletonKicks(float p_param1)
[AI] Handles transition between skeleton kick phases based on animation time and current boundary.
virtual void SetMaxLinearVelocity(float p_maxLinearVelocity)
[AI] Sets the maximum linear velocity the car is allowed to attain (and can force 0 for "despawn" eff...
static void FUN_10012de0()
[AI] Resets static sound state variables for the car (last sound time, stopped flag,...
MxResult VTable0x9c() override
[AI] Finalizes animation phase/post-kick state machine.
virtual void FUN_10012ff0(float p_param)
[AI] Handles skeleton kick transition logic for given time; switches state as needed.
void SwitchBoundary(LegoPathBoundary *&p_boundary, LegoUnknown100db7f4 *&p_edge, float &p_unk0xe4) override
[AI] Delegates boundary/edge switch operation to base race car logic.
[AI] Represents the world-space to screen-space mapping and rendering handler for the interactive rac...
[AI] Represents a 3D point with floating-point precision, inheriting from Vector3.
[AI] MxParam serves as a polymorphic base class for parameter passing in event and notification syste...
[AI] 3D vector class, providing vector and cross-product operations in 3D space.
[AI] Associates a named edge (string) to a LegoPathBoundary, used within skeleton kick phases to assi...
LegoPathBoundary * m_b
[AI] Boundary pointer; set to NULL until mapped by ParseAction or similar initialization.
const char * m_name
[AI] Name of the edge to be resolved to an actual boundary in the current world instance.
[AI] Holds per-animation instance data for a LegoAnimActor.
[AI] Represents an advanced edge in the LEGO Island geometry system, with direction,...
[AI] Represents a phase of the skeleton kick animation/action, delimiting animation intervals along a...
MxU8 m_userState
[AI] State to switch to if currently within this phase. LEGORACECAR_KICK1 or LEGORACECAR_KICK2.
float m_lower
[AI] Lower normalized bound of animation phase where this skeleton kick is applicable....
float m_upper
[AI] Upper normalized bound of animation phase where this skeleton kick is applicable....
EdgeReference * m_edgeRef
[AI] Pointer to the EdgeReference describing which boundary this phase is associated with.