[AI] Represents a 3D point with floating-point precision, inheriting from Vector3.
[AI] Base virtual class for all Mindscape engine (Mx) objects.
[AI] Represents an action deserialized from SI chunks, holding key animation or script parameters suc...
char * GetExtraData()
[AI] Accessor for extra data (not null-terminated).
MxU32 GetFlags()
[AI] Returns the flag field for this action (bitmask).
undefined4 VTable0x14() override
[AI] Unknown virtual placeholder, possibly for additional interfaces.
virtual void SetDuration(MxLong p_duration)
[AI] Sets the duration of this action in ticks or time units.
MxU32 GetSizeOnDisk() override
[AI] Serializes the size on disk of this action (all fields + extra data length)
undefined4 m_unk0x88
[AI] 4 bytes at 0x88; usage not known.
void SetLocation(const Vector3 &p_location)
[AI] Sets the location vector for this action.
MxDSAction & operator=(MxDSAction &p_dsAction)
[AI] Assignment operator: deep-copy from a different MxDSAction, including base class data and extra ...
MxLong GetStartTime() const
[AI] Gets the nominal start time for the action, as loaded or scheduled.
MxBool IsLooping() const
[AI] Whether this action is set to loop based on current flags.
virtual MxBool HasId(MxU32 p_objectId)
[AI] Checks if this action contains/was created for a specific SI object id.
char * m_extraData
[AI] Opaque extra data for custom or extended behavior.
MxCore * GetUnknown84()
[AI] Returns a pointer to an associated or auxiliary core object.
void CopyFrom(MxDSAction &p_dsAction)
[AI] Copies all properties from another MxDSAction (deep copy, including extra data string)
MxBool IsBit3() const
[AI] Tests for the state of the (unknown purpose) bit 3 flag in m_flags.
const char * ClassName() const override
[AI] Returns the class name for RTTI or reflection purposes.
void GetExtra(MxU16 &p_extraLength, char *&p_extraData)
[AI] Retrieves the extra data and its length for this action.
void Deserialize(MxU8 *&p_source, MxS16 p_unk0x24) override
[AI] Deserializes this action's data from a binary buffer.
Mx3DPointFloat m_up
[AI] "Up" vector for this action.
MxS32 GetLoopCount()
[AI] Returns the loop count for this action.
virtual void SetUnknown90(MxLong p_unk0x90)
[AI] Set unknown value at offset 0x90, used as baseline in GetElapsedTime.
MxBool IsA(const char *p_name) const override
[AI] Run-time type check, compares provided name with this or any ancestor type.
MxDSAction()
[AI] Default constructor.
virtual MxLong GetUnknown90()
[AI] Gets the unknown value at offset 0x90, likely a start timestamp.
void SetDirection(const Vector3 &p_direction)
[AI] Sets the direction vector for this action.
void SetOrigin(MxCore *p_origin)
[AI] Sets the origin core pointer for this action, if spatially transforming/localizing this action.
MxS32 m_loopCount
[AI] Number of times to repeat the action, or -1 for infinite/not-set.
MxU32 m_flags
[AI] Bitfield for flags (enabled, looping, etc).
Mx3DPointFloat m_location
[AI] Location in 3D world or local space (x, y, z).
const Vector3 & GetLocation()
[AI] Gets the location vector for this action (world or local space).
MxCore * m_origin
[AI] Pointer to an "origin" MxCore object, for spatial/ownership reference.
void AppendExtra(MxU16 p_extraLength, const char *p_extraData)
[AI] Concatenates or stores extra data associated with this action, robust for multi-part actions.
void SetFlags(MxU32 p_flags)
[AI] Sets the flag bitmask controlling action logic (enabled, looping, etc).
const Vector3 & GetUp()
[AI] Gets the up vector for this action (global or local).
MxU16 m_extraLength
[AI] Length of extra data in bytes.
const Vector3 & GetDirection()
[AI] Gets the direction vector (typically forward vector) for this action.
virtual MxLong GetDuration()
[AI] Gets the duration for which this action is intended to run.
MxLong m_duration
[AI] The duration to run the action, or INT_MIN for undefined.
virtual MxLong GetElapsedTime()
[AI] Gets elapsed time for this action since the last time field 0x90 was set.
MxCore * m_unk0x84
[AI] Pointer to an auxiliary MxCore object, purpose unknown.
MxU16 GetExtraLength() const
[AI] Returns the length (in bytes) of extra data.
MxLong m_startTime
[AI] Time at which the action is meant to start, or INT_MIN for unset.
void SetUnknown84(MxCore *p_unk0x84)
[AI] Sets the auxiliary core pointer for this action.
void SetLoopCount(MxS32 p_loopCount)
[AI] Sets the loop count for this action.
void SetUp(const Vector3 &p_up)
[AI] Sets the up vector for this action.
virtual MxDSAction * Clone()
[AI] Clones (deep-copies) this action and returns a new pointer.
virtual void MergeFrom(MxDSAction &p_dsAction)
[AI] Copies/merges properties from another action.
MxCore * GetOrigin()
[AI] Returns a pointer to the "origin" core object, which may be used to localize the action.
@ c_looping
[AI] Action or media should repeat in a loop [AI]
@ c_bit5
[AI] Unknown - possibly reserved [AI]
@ c_world
[AI] Action is described in world-space coordinates [AI]
@ c_enabled
[AI] Action is currently enabled [AI]
@ c_bit11
[AI] Unknown - possibly reserved [AI]
@ c_bit10
[AI] Unknown - possibly reserved [AI]
@ c_bit7
[AI] Unknown - possibly reserved [AI]
@ c_bit3
[AI] Unknown - possibly reserved [AI]
@ c_bit4
[AI] Unknown - possibly reserved [AI]
@ c_bit9
[AI] Unknown - possibly reserved [AI]
MxU32 m_sizeOnDisk
[AI] The size of this action's fields on disk, not counting ancestor size.
MxLong m_unk0x90
[AI] Unknown field, appears to store a timestamp for GetElapsedTime logics.
~MxDSAction() override
[AI] Destructor.
Mx3DPointFloat m_direction
[AI] "Forward" direction vector for this action.
[AI] Base class for any object deserialized from an SI (script/data) file in the LEGO Island engine.
MxBool IsA(const char *p_name) const override
[AI] Runtime type check; supports derived/parent class lookup by name.
[AI] Central subsystem coordinator and singleton of the LEGO Island engine.
[AI] 3D vector class, providing vector and cross-product operations in 3D space.