90 virtual void Animate(
float p_time);
272 return "LegoPathActor";
372 list<LegoPathBoundary*>& p_boundaries,
[AI] Represents an actor (character) entity in the LEGO Island 3D world, providing specific actor log...
MxBool IsA(const char *p_name) const override
[AI] Determines if the class is or derives from the given name.
[AI] An actor that moves along a predefined path, supporting boundary transitions,...
virtual void VTable0xc8(MxU8 p_unk0x148)
[AI] Sets the rolling state (animation index, mainly for camera turning/curves).
virtual MxResult VTable0x80(const Vector3 &p_point1, Vector3 &p_point2, Vector3 &p_point3, Vector3 &p_point4)
[AI] Calculates path interpolation for a set of points, updates state for path animation,...
MxFloat m_actorTime
[AI] Animation time for current path segment. [AI]
MxBool GetCollideBox()
[AI] Gets the actor's collision box flag (if TRUE, actor uses a precise collision shape).
void SetBoundary(LegoPathBoundary *p_boundary)
[AI] Assigns a new boundary for the actor (for path switching).
const char * ClassName() const override
[AI] Returns the class name string for RTTI-style checks.
virtual MxResult VTable0x88(LegoPathBoundary *p_boundary, float p_time, LegoEdge &p_srcEdge, float p_srcScale, LegoUnknown100db7f4 &p_destEdge, float p_destScale)
[AI] Moves the actor between two edges across a boundary, recalculates placement and orientation.
virtual MxFloat VTable0xb4()
[AI] Returns an internal value used in fallback collision/velocity calculation (proportional fudge fa...
virtual void Animate(float p_time)
[AI] Per-frame animation update.
MxFloat m_maxLinearVel
[AI] Maximum speed of actor while moving along path. [AI]
MxU32 GetActorState()
[AI] Gets the current navigation/animation state of the actor.
virtual MxU32 VTable0x90(float, Matrix4 &)
[AI] Placeholder for custom logic during per-timestep simulation for non-user-controlled animation.
LegoUnknown100db7f4 * m_destEdge
[AI] Current or target edge for path traversal. [AI]
virtual MxU32 VTable0x6c(LegoPathBoundary *p_boundary, Vector3 &p_v1, Vector3 &p_v2, float p_f1, float p_f2, Vector3 &p_v3)
[AI] Trace movement or collision through presenters (edge test), then through other actors.
MxFloat m_unk0x144
[AI] Damping factor for velocity after collision ("bounce" friction). [AI]
void SetActorTime(MxFloat p_actorTime)
[AI] Sets the global actor animation time value, adjusting how far along the animation is.
virtual void VTable0xc0(MxFloat p_unk0x144)
[AI] Sets the velocity damping factor after bump.
virtual MxBool GetUserNavFlag()
[AI] Returns user navigation state (whether actor follows player input).
virtual MxS32 VTable0x8c(float p_time, Matrix4 &p_transform)
[AI] Advance actor's position/state along the path for a given timeslice.
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...
LegoPathBoundary * m_boundary
[AI] Current boundary the actor is navigating on. [AI]
MxU32 m_actorState
[AI] State and flags bitfield for path following logic. [AI]
MxFloat m_unk0x7c
[AI] Interpolator/progress state along curve segment. [AI]
MxFloat m_unk0xe4
[AI] Position scalar on destination edge (0-1 across the edge). [AI]
virtual void SetUserNavFlag(MxBool p_userNavFlag)
[AI] Sets whether the actor is controlled by user navigation.
virtual void VTable0xc4()
[AI] Empty handler for optional custom per-tick transition logic.
void ParseAction(char *p_extra) override
[AI] Parses a set of key-value action commands and configures path navigation and collision for this ...
MxFloat m_unk0x140
[AI] Scaling factor for fallback/collision response logic. [AI]
virtual void SetMaxLinearVel(MxFloat p_maxLinearVel)
[AI] Sets the maximum linear velocity for actor navigation.
void SetController(LegoPathController *p_pathController)
[AI] Assigns a new path controller (used for actor transitions between paths).
virtual void VTable0x74(Matrix4 &p_transform)
[AI] Updates the ROI's transformation (typically matrix) with new values, applies world position/orie...
MxS32 m_unk0x14c
[AI] Rolling angle delta (variant for camera logic). [AI]
LegoPathController * m_pathController
[AI] Path controller/manages permitted boundaries for transitions. [AI]
MxU32 FUN_1002edd0(list< LegoPathBoundary * > &p_boundaries, LegoPathBoundary *p_boundary, Vector3 &p_v1, Vector3 &p_v2, float p_f1, float p_f2, Vector3 &p_v3, MxS32 p_und)
[AI] Recursively checks boundaries for collisions or collision path propagation up to a certain recur...
void SetLastTime(MxFloat p_lastTime)
[AI] Sets the time value for the last performed simulation tick.
ActorState
[AI] State and flags for a LegoPathActor during navigation along a path. [AI]
@ c_maxState
[AI] Max actor state (reserved for logic). [AI]
@ c_initial
[AI] Default state upon creation or reset. [AI]
@ c_disabled
[AI] Marks as disabled or inactive for path follow logic. [AI]
@ c_noCollide
[AI] Disables collision for this actor (e.g. ghosts, debug). [AI]
MxU8 m_unk0x148
[AI] Angle/animation mode for rolling/camera tilting. [AI]
virtual MxResult VTable0x9c()
[AI] Handles exit transition and next-edge search logic; also used for collision reaction and fallbac...
virtual MxResult VTable0x84(LegoPathBoundary *p_boundary, float p_time, Vector3 &p_p1, Vector3 &p_p4, LegoUnknown100db7f4 &p_destEdge, float p_destScale)
[AI] Moves actor to a destination edge.
LegoPathController * GetController()
[AI] Retrieves pointer to the path controller which governs this actor's movement.
MxMatrix m_unk0xec
[AI] World-to-local transformation matrix for this actor/ROI. [AI]
virtual void VTable0xa8()
[AI] Re-applies transform to ROI, updates camera if needed, and processes per-actor tick actions.
MxBool m_userNavFlag
[AI] TRUE if this actor is currently user/player controlled. [AI]
LegoPathEdgeContainer * m_grec
[AI] Edge/boundary helper for tracking transitions and stateful animation. [AI]
MxFloat GetLastTime()
[AI] Gets the previous animation time value from last simulation tick.
void PlaceActor(LegoNamedPlane &p_namedPlane)
[AI] Places this actor into the world at the given plane's name, location, and orientation.
virtual void VTable0xbc(MxFloat p_unk0x140)
[AI] Sets the fudge parameter for fallback collision push-back.
void UpdatePlane(LegoNamedPlane &p_namedPlane)
[AI] Updates a named plane to match this actor's world position, direction, and up vector.
LegoUnknown m_unk0x8c
[AI] Helper object for path curve interpolation and evaluation. [AI]
virtual MxFloat GetMaxLinearVel()
[AI] Gets the maximum allowed navigation speed for this actor.
virtual MxS32 VTable0xa0()
[AI] Placeholder for custom extension.
MxFloat m_unk0x150
[AI] Scalar factor for camera turn velocity logic. [AI]
virtual void VTable0xa4(MxBool &p_und1, MxS32 &p_und2)
[AI] Returns information depending on actor type.
MxBool IsA(const char *p_name) const override
[AI] RTTI-like check, matches against own or base class name for IsA hierarchy checks.
MxBool m_collideBox
[AI] Use bounding-box for more accurate collision. [AI]
virtual MxFloat VTable0xb8()
[AI] Returns a damping/multiplier factor used for velocity reduction after collisions.
virtual MxS32 VTable0x68(Vector3 &p_v1, Vector3 &p_v2, Vector3 &p_v3)
[AI] Checks for collision/intersection with boundaries, geometry, and other actors along a traced seg...
LegoPathActor()
[AI] Initializes the path actor, setting up default state and references. [AI]
virtual MxResult HitActor(LegoPathActor *, MxBool)
[AI] Handles logic when this actor hits (collides with) another path actor; can be overridden for cus...
MxFloat GetActorTime()
[AI] Returns the current animation time of the actor.
MxBool m_unk0xe9
[AI] Stores latest intersection/collision status/type. [AI]
MxFloat m_BADuration
[AI] Duration of current Bezier arc (distance along path/current edge). [AI]
MxFloat m_lastTime
[AI] Time of last update (used for delta calculations). [AI]
LegoPathBoundary * GetBoundary()
[AI] Retrieves the current path boundary associated with this actor.
void SetActorState(MxU32 p_actorState)
[AI] Sets the navigation/path state of the actor.
~LegoPathActor() override
[AI] Destructor, cleans up allocated containers. [AI]
[AI] Represents a path segment or boundary in the navigation network for actors (vehicles,...
[AI] Manager for controlling actors' movement along predefined geometric paths.
Opaque Bezier curve utility used for actor or path position interpolation.
[AI] Represents a face (polygon) composed of a list of edges in the LEGO Island world engine.
4x4 Matrix class with virtual interface for manipulation and transformation.
[AI] Represents a 4x4 transformation matrix, specialized for the LEGO Island engine and derived from ...
[AI] 3D vector class, providing vector and cross-product operations in 3D space.
const char * g_strHIT_WALL_SOUND
[AI] Variable table name for the wall hit sound [AI]
MxLong g_unk0x100f3308
[AI] Timer for wall hit sound playback throttling in navigation [AI]
[AI] Represents an edge in the LEGO world geometry graph.
[AI] Represents a named 3D plane with orientation and position, used to describe places or camera tar...
[AI] Container for path boundary edges, also stores position, direction, and flags.
[AI] Represents an advanced edge in the LEGO Island geometry system, with direction,...