18 m_unk0x00 = p_unk0x00;
19 m_AnimTreePtr = p_AnimTreePtr;
21 m_numROIs = p_numROIs;
111 for (i = 0; i < numROIs; i++) {
127 for (
MxU32 i = 0; i < numROIs; i++) {
156 assert(p_AnimTreePtr && p_roiMap);
160 for (vector<LegoAnimActorStruct*>::iterator it =
m_animMaps.begin(); it !=
m_animMaps.end(); it++) {
161 if (p_unk0x00 < (*it)->m_unk0x00) {
189 if (p_worldSpeed < 0) {
[AI] Path-based actor which supports skeletal/mesh animation via an animation tree and multiple anima...
void ParseAction(char *p_extra) override
[AI] Handles extra action strings, looks for animation assignments and delegates to presenters (overr...
void SetWorldSpeed(MxFloat p_worldSpeed) override
[AI] Sets the current world speed and chooses which animation (from the animation map list) should be...
virtual void ClearMaps()
[AI] Deallocates all animation map structures and selects no animation; resets current animation inde...
vector< LegoAnimActorStruct * > m_animMaps
[AI] List of animation structures, each representing a valid animation for different speed/phase rang...
~LegoAnimActor() override
[AI] Destructor cleans up all animation map structures.
virtual MxResult FUN_1001c360(float p_und, Matrix4 &p_transform)
[AI] Applies the animation transform for the current animation at the given phase,...
virtual MxResult FUN_1001c450(LegoAnim *p_AnimTreePtr, float p_unk0x00, LegoROI **p_roiMap, MxU32 p_numROIs)
[AI] Adds a new animation mapping (LegoAnimActorStruct) with a tree, threshold, and mesh mapping.
MxS16 m_curAnim
[AI] Index of currently selected animation map (-1 if none active). [AI]
virtual MxResult FUN_1001c1f0(float &p_und)
[AI] Computes the animation phase offset within the current animation, adjusts for looping.
void Animate(float p_time) override
[AI] Performs per-frame update; applies the appropriate animation to mesh ROIs based on speed and sta...
void VTable0x74(Matrix4 &p_transform) override
[AI] Applies the current animation's transforms to the provided matrix, propagates to mesh hierarchie...
[AI] Root class for all node-based animation blending/structure.
LegoTime GetDuration()
[AI] Duration (in time units) of the animation.
void FUN_10010c30()
[AI] Updates the camera transformation when this entity is the camera target. Used after movement or ...
MxBool m_cameraFlag
[AI] Set to TRUE if this entity is currently the camera target. [AI]
MxFloat m_worldSpeed
[AI] World-relative speed (can affect animation/movement logic). [AI]
LegoROI * m_roi
[AI] Pointer to this entity's currently assigned ROI (3D instance in the world). [AI]
[AI] Specialized presenter class for handling locomotion animation playback and state in the LEGO Isl...
void FUN_1006d680(LegoAnimActor *p_actor, MxFloat p_value)
[AI] Binds a LegoAnimActor to the internal animation context and ROI mapping.
MxFloat m_actorTime
[AI] Animation time for current path segment. [AI]
virtual void Animate(float p_time)
[AI] Per-frame animation update.
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]
void ParseAction(char *p_extra) override
[AI] Parses a set of key-value action commands and configures path navigation and collision for this ...
virtual void VTable0x74(Matrix4 &p_transform)
[AI] Updates the ROI's transformation (typically matrix) with new values, applies world position/orie...
@ c_initial
[AI] Default state upon creation or reset. [AI]
MxMatrix m_unk0xec
[AI] World-to-local transformation matrix for this actor/ROI. [AI]
MxBool m_userNavFlag
[AI] TRUE if this actor is currently user/player controlled. [AI]
MxFloat m_lastTime
[AI] Time of last update (used for delta calculations). [AI]
[AI] Represents a Real-time Object Instance enriched with LEGO-specific functionality.
static void FUN_100a8e80(LegoTreeNode *p_node, Matrix4 &p_matrix, LegoTime p_time, LegoROI **p_roiMap)
[AI] [Static] Recursively evaluates animation nodes, updating the transformation matrices and visibil...
[AI] Represents a node within a general, N-ary tree structure.
LegoU32 GetNumChildren()
[AI] Returns the number of direct children of this node. [AI]
LegoTreeNode * GetChild(LegoU32 p_i)
[AI] Gets the child node at the specified index (no bounds checking).
LegoU32 GetFlag0x10()
Returns TRUE if the 'disabled' flag is not set, otherwise FALSE.
Represents the active 3D world, holding all entity, animation, sound, path, and ROI objects.
MxCore * Find(const char *p_class, const char *p_name)
Finds an object of a given class and name in the world.
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 ...
void SetVisibility(unsigned char p_visible)
[AI] Sets the visibility flag to the provided value.
#define DECOMP_SIZE_ASSERT(T, S)
const char * g_strANIMATION
[AI] Keyword used for tagging animation properties, types, or script commands.
const char * g_parseExtraTokens
[AI] Delimiter tokens for parsing extra parameters in scripts or command strings.
#define NULL
[AI] Null pointer value (C/C++ semantics).
#define FAILURE
[AI] Used to indicate a failed operation in result codes.
#define SUCCESS
[AI] Used to indicate a successful operation in result codes.
LegoWorld * CurrentWorld()
[AI] Accessor for the currently active LegoWorld instance. [AI]
MxBool KeyValueStringParse(char *, const char *, const char *)
Searches p_string for a key command and copies its associated value to p_output.
[AI] Holds per-animation instance data for a LegoAnimActor.
float GetDuration()
[AI] Gets the length, in seconds, of the animation (delegates to anim tree).
LegoAnim * m_AnimTreePtr
[AI] Root of animation tree for this animation [AI]
vector< undefined * > m_unk0x10
[AI] Holds per-instance temporary or auxiliary animation data [AI_SUGGESTED_NAME: tempAnimationData]
~LegoAnimActorStruct()
[AI] Destructor: Deallocates dynamic vector data associated with the animation entry.