Isle
|
[AI] Represents a container for multiple MxDSAction objects, facilitating the grouping and management of several actions as a single entity. More...
#include <mxdsmultiaction.h>
Public Member Functions | |
MxDSMultiAction () | |
[AI] Constructs an MxDSMultiAction, initializing its type and instantiating an empty action list. More... | |
MxDSMultiAction (MxDSMultiAction &p_dsMultiAction) | |
[AI] Copy constructor for MxDSMultiAction, performing a deep copy of all actions in the source list. More... | |
~MxDSMultiAction () override | |
[AI] Destructor. More... | |
void | CopyFrom (MxDSMultiAction &p_dsMultiAction) |
[AI] Deeply copies all actions from another MxDSMultiAction. More... | |
MxDSMultiAction & | operator= (MxDSMultiAction &p_dsMultiAction) |
[AI] Assignment operator, deeply copies all state and actions from another MxDSMultiAction. More... | |
const char * | ClassName () const override |
[AI] Returns the class name for this object ("MxDSMultiAction"). More... | |
MxBool | IsA (const char *p_name) const override |
[AI] Checks whether a given class name matches this or any parent class. More... | |
undefined4 | VTable0x14 () override |
[AI] Hook for vtable entry 0x14. More... | |
MxU32 | GetSizeOnDisk () override |
[AI] Calculates the total disk size occupied by this multi-action and all its subactions. More... | |
void | Deserialize (MxU8 *&p_source, MxS16 p_unk0x24) override |
[AI] Reads the object's data from a raw byte buffer. More... | |
void | SetAtomId (MxAtomId p_atomId) override |
[AI] Propagates the given AtomId to this and all subactions. More... | |
MxDSAction * | Clone () override |
[AI] Constructs a deep clone of this multi-action, including all subactions. More... | |
void | MergeFrom (MxDSAction &p_dsAction) override |
[AI] Propagates a merge operation from the provided MxDSAction to all subactions, as well as self. More... | |
MxBool | HasId (MxU32 p_objectId) override |
[AI] Returns whether this action or any contained subaction matches the provided object id. More... | |
void | SetUnknown90 (MxLong p_unk0x90) override |
[AI] Propagates an unknown value to this and all subactions. More... | |
MxDSActionList * | GetActionList () const |
[AI] Returns the internal action list holding all subactions of this multi-action. More... | |
![]() | |
MxDSAction () | |
[AI] Default constructor. More... | |
~MxDSAction () override | |
[AI] Destructor. More... | |
MxDSAction (MxDSAction &p_dsAction) | |
[AI] Copy constructor from another MxDSAction More... | |
void | CopyFrom (MxDSAction &p_dsAction) |
[AI] Copies all properties from another MxDSAction (deep copy, including extra data string) More... | |
MxDSAction & | operator= (MxDSAction &p_dsAction) |
[AI] Assignment operator: deep-copy from a different MxDSAction, including base class data and extra fields. More... | |
const char * | ClassName () const override |
[AI] Returns the class name for RTTI or reflection purposes. More... | |
MxBool | IsA (const char *p_name) const override |
[AI] Run-time type check, compares provided name with this or any ancestor type. More... | |
undefined4 | VTable0x14 () override |
[AI] Unknown virtual placeholder, possibly for additional interfaces. More... | |
MxU32 | GetSizeOnDisk () override |
[AI] Serializes the size on disk of this action (all fields + extra data length) More... | |
void | Deserialize (MxU8 *&p_source, MxS16 p_unk0x24) override |
[AI] Deserializes this action's data from a binary buffer. More... | |
virtual MxLong | GetDuration () |
[AI] Gets the duration for which this action is intended to run. More... | |
virtual void | SetDuration (MxLong p_duration) |
[AI] Sets the duration of this action in ticks or time units. More... | |
virtual MxDSAction * | Clone () |
[AI] Clones (deep-copies) this action and returns a new pointer. More... | |
virtual void | MergeFrom (MxDSAction &p_dsAction) |
[AI] Copies/merges properties from another action. More... | |
virtual MxBool | HasId (MxU32 p_objectId) |
[AI] Checks if this action contains/was created for a specific SI object id. More... | |
virtual void | SetUnknown90 (MxLong p_unk0x90) |
[AI] Set unknown value at offset 0x90, used as baseline in GetElapsedTime. More... | |
virtual MxLong | GetUnknown90 () |
[AI] Gets the unknown value at offset 0x90, likely a start timestamp. More... | |
virtual MxLong | GetElapsedTime () |
[AI] Gets elapsed time for this action since the last time field 0x90 was set. More... | |
void | AppendExtra (MxU16 p_extraLength, const char *p_extraData) |
[AI] Concatenates or stores extra data associated with this action, robust for multi-part actions. More... | |
void | GetExtra (MxU16 &p_extraLength, char *&p_extraData) |
[AI] Retrieves the extra data and its length for this action. More... | |
MxU32 | GetFlags () |
[AI] Returns the flag field for this action (bitmask). More... | |
void | SetFlags (MxU32 p_flags) |
[AI] Sets the flag bitmask controlling action logic (enabled, looping, etc). More... | |
char * | GetExtraData () |
[AI] Accessor for extra data (not null-terminated). More... | |
MxU16 | GetExtraLength () const |
[AI] Returns the length (in bytes) of extra data. More... | |
MxLong | GetStartTime () const |
[AI] Gets the nominal start time for the action, as loaded or scheduled. More... | |
MxS32 | GetLoopCount () |
[AI] Returns the loop count for this action. More... | |
void | SetLoopCount (MxS32 p_loopCount) |
[AI] Sets the loop count for this action. More... | |
const Vector3 & | GetLocation () |
[AI] Gets the location vector for this action (world or local space). More... | |
const Vector3 & | GetDirection () |
[AI] Gets the direction vector (typically forward vector) for this action. More... | |
const Vector3 & | GetUp () |
[AI] Gets the up vector for this action (global or local). More... | |
void | SetLocation (const Vector3 &p_location) |
[AI] Sets the location vector for this action. More... | |
void | SetDirection (const Vector3 &p_direction) |
[AI] Sets the direction vector for this action. More... | |
void | SetUp (const Vector3 &p_up) |
[AI] Sets the up vector for this action. More... | |
MxCore * | GetUnknown84 () |
[AI] Returns a pointer to an associated or auxiliary core object. More... | |
void | SetUnknown84 (MxCore *p_unk0x84) |
[AI] Sets the auxiliary core pointer for this action. More... | |
MxCore * | GetOrigin () |
[AI] Returns a pointer to the "origin" core object, which may be used to localize the action. More... | |
void | SetOrigin (MxCore *p_origin) |
[AI] Sets the origin core pointer for this action, if spatially transforming/localizing this action. More... | |
MxBool | IsLooping () const |
[AI] Whether this action is set to loop based on current flags. More... | |
MxBool | IsBit3 () const |
[AI] Tests for the state of the (unknown purpose) bit 3 flag in m_flags. More... | |
![]() | |
MxDSObject () | |
[AI] Default constructor. Initializes to e_object and clears names and pointers. More... | |
~MxDSObject () override | |
[AI] Destructor. Frees allocated objectName/sourceName memory. More... | |
void | CopyFrom (MxDSObject &p_dsObject) |
[AI] Copy data from another MxDSObject, performing deep string copy for names. More... | |
MxDSObject (MxDSObject &p_dsObject) | |
[AI] Copy constructor. More... | |
MxDSObject & | operator= (MxDSObject &p_dsObject) |
[AI] Assignment operator. More... | |
void | SetObjectName (const char *p_objectName) |
[AI] Sets object (internal) unique name; deep copies the string. More... | |
void | SetSourceName (const char *p_sourceName) |
[AI] Sets the source name (usually source SI file); deep copies the string. More... | |
const char * | ClassName () const override |
[AI] Returns the class identifier string for run-time type ID. More... | |
MxBool | IsA (const char *p_name) const override |
[AI] Runtime type check; supports derived/parent class lookup by name. More... | |
virtual undefined4 | VTable0x14 () |
[AI] Placeholder for early vtable slot (purpose unknown, may be used for RTTI). More... | |
virtual MxU32 | GetSizeOnDisk () |
[AI] Calculates serialized size of this object on disk (for buffer allocation). More... | |
virtual void | Deserialize (MxU8 *&p_source, MxS16 p_unk0x24) |
[AI] Initializes this object from serialized (memory buffer) data. More... | |
virtual void | SetAtomId (MxAtomId p_atomId) |
[AI] Sets the atom id for this object instance, used for indexing or lookup. More... | |
Type | GetType () const |
[AI] Returns the object's type enum as stored in m_type. More... | |
const char * | GetSourceName () const |
[AI] Returns the source name string (typically the originating SI file). More... | |
const char * | GetObjectName () const |
[AI] Returns the object name string. More... | |
MxU32 | GetObjectId () |
[AI] Returns the object id numeric value. More... | |
const MxAtomId & | GetAtomId () |
[AI] Returns a const-reference to the object's atom identifier. More... | |
MxS16 | GetUnknown24 () |
[AI] Returns the unknown 0x24 value (may be data version or usage state). [AI] More... | |
MxPresenter * | GetUnknown28 () |
[AI] Returns the pointer stored at 0x28, likely a presenter or handler for this DS object. More... | |
void | SetType (Type p_type) |
[AI] Sets the DS object type. More... | |
void | SetObjectId (MxU32 p_objectId) |
[AI] Sets the object id (for serialization or lookup). More... | |
void | SetUnknown24 (MxS16 p_unk0x24) |
[AI] Sets the unknown field at 0x24 (possibly version/state). More... | |
void | SetUnknown28 (MxPresenter *p_unk0x28) |
[AI] Sets the pointer at 0x28 (presenter or handler). More... | |
void | ClearAtom () |
[AI] Clears the atom id, releasing its association. More... | |
![]() | |
MxCore () | |
[AI] Constructs a new MxCore object and assigns it a unique id. More... | |
virtual | ~MxCore () |
[AI] Virtual destructor. Required for correct polymorphic cleanup in derived classes. More... | |
virtual MxLong | Notify (MxParam &p_param) |
[AI] Virtual callback notification mechanism. More... | |
virtual MxResult | Tickle () |
[AI] Called by tickle managers to allow the object to update itself. More... | |
virtual const char * | ClassName () const |
[AI] Returns the runtime class name of this object. More... | |
virtual MxBool | IsA (const char *p_name) const |
[AI] Checks whether this object's class type or parents match the given name. More... | |
MxU32 | GetId () |
[AI] Gets the unique (per-process) id assigned to this object instance. More... | |
Protected Attributes | |
MxU32 | m_sizeOnDisk |
[AI] Stores the last-computed disk storage size for m_actionList and metadata. More... | |
MxDSActionList * | m_actionList |
[AI] List of contained actions (ownership: this owns and deletes subactions). More... | |
![]() | |
MxU32 | m_sizeOnDisk |
[AI] The size of this action's fields on disk, not counting ancestor size. More... | |
MxU32 | m_flags |
[AI] Bitfield for flags (enabled, looping, etc). More... | |
MxLong | m_startTime |
[AI] Time at which the action is meant to start, or INT_MIN for unset. More... | |
MxLong | m_duration |
[AI] The duration to run the action, or INT_MIN for undefined. More... | |
MxS32 | m_loopCount |
[AI] Number of times to repeat the action, or -1 for infinite/not-set. More... | |
Mx3DPointFloat | m_location |
[AI] Location in 3D world or local space (x, y, z). More... | |
Mx3DPointFloat | m_direction |
[AI] "Forward" direction vector for this action. More... | |
Mx3DPointFloat | m_up |
[AI] "Up" vector for this action. More... | |
char * | m_extraData |
[AI] Opaque extra data for custom or extended behavior. More... | |
MxU16 | m_extraLength |
[AI] Length of extra data in bytes. More... | |
MxCore * | m_unk0x84 |
[AI] Pointer to an auxiliary MxCore object, purpose unknown. More... | |
undefined4 | m_unk0x88 |
[AI] 4 bytes at 0x88; usage not known. More... | |
MxCore * | m_origin |
[AI] Pointer to an "origin" MxCore object, for spatial/ownership reference. More... | |
MxLong | m_unk0x90 |
[AI] Unknown field, appears to store a timestamp for GetElapsedTime logics. More... | |
![]() | |
MxU32 | m_sizeOnDisk |
[AI] Cached/calculated disk size of object data for serialization. [AI] More... | |
MxU16 | m_type |
[AI] Object type enum (see Type) as read from data or set in code. [AI] More... | |
char * | m_sourceName |
[AI] Heap copy: SI file or source identifier string. [AI] More... | |
undefined4 | m_unk0x14 |
[AI] Unknown usage, possibly flags or reserved SI-format field. [AI] More... | |
char * | m_objectName |
[AI] Heap copy: Logical object name as referenced in script/data. [AI] More... | |
MxU32 | m_objectId |
[AI] Numeric id (unique per file or context, often -1). [AI] More... | |
MxAtomId | m_atomId |
[AI] String/value pair for engine lookup/reference. [AI] More... | |
MxS16 | m_unk0x24 |
[AI] Unknown usage, possibly used for context or flags during loading. [AI] More... | |
MxPresenter * | m_unk0x28 |
[AI] Presenter or handler associated to this object (may be null). [AI] More... | |
Additional Inherited Members | |
![]() | |
enum | { c_looping = 0x01 , c_bit3 = 0x04 , c_bit4 = 0x08 , c_bit5 = 0x10 , c_enabled = 0x20 , c_bit7 = 0x40 , c_world = 0x80 , c_bit9 = 0x100 , c_bit10 = 0x200 , c_bit11 = 0x400 } |
[AI] Action bitmask flag options controlling flow (loop, enable, world-space, etc) More... | |
![]() | |
enum | Type { e_object = 0 , e_action , e_mediaAction , e_anim , e_sound , e_multiAction , e_serialAction , e_parallelAction , e_event , e_selectAction , e_still , e_objectAction } |
[AI] Enumerated type value for each kind of DS object. More... | |
[AI] Represents a container for multiple MxDSAction objects, facilitating the grouping and management of several actions as a single entity.
[AI] MxDSMultiAction acts as a composite DS action that can hold and execute a list of sub-actions (subclassed from MxDSAction). It handles serialization, deserialization, cloning, merging, and id management centrally for all contained actions. Used for composite instructions in the LEGO Island scripting system. [AI]
Definition at line 14 of file mxdsmultiaction.h.
MxDSMultiAction::MxDSMultiAction | ( | ) |
[AI] Constructs an MxDSMultiAction, initializing its type and instantiating an empty action list.
Definition at line 11 of file mxdsmultiaction.cpp.
MxDSMultiAction::MxDSMultiAction | ( | MxDSMultiAction & | p_dsMultiAction | ) |
[AI] Copy constructor for MxDSMultiAction, performing a deep copy of all actions in the source list.
p_dsMultiAction | The source MxDSMultiAction to copy from. [AI] |
Definition at line 40 of file mxdsmultiaction.cpp.
|
override |
[AI] Destructor.
Deletes all underlying MxDSAction objects in the contained list.
Definition at line 21 of file mxdsmultiaction.cpp.
|
inlineoverridevirtual |
[AI] Returns the class name for this object ("MxDSMultiAction").
Reimplemented from MxDSAction.
Reimplemented in MxDSParallelAction, MxDSSelectAction, and MxDSSerialAction.
Definition at line 51 of file mxdsmultiaction.h.
|
overridevirtual |
[AI] Constructs a deep clone of this multi-action, including all subactions.
Reimplemented from MxDSAction.
Reimplemented in MxDSParallelAction, MxDSSelectAction, and MxDSSerialAction.
Definition at line 105 of file mxdsmultiaction.cpp.
void MxDSMultiAction::CopyFrom | ( | MxDSMultiAction & | p_dsMultiAction | ) |
[AI] Deeply copies all actions from another MxDSMultiAction.
p_dsMultiAction | Source for the deep copy operation. [AI] |
[AI] Any existing actions are deleted and replaced with deep clones of those in the source. Used by assignment and copy construction. [AI]
Definition at line 28 of file mxdsmultiaction.cpp.
[AI] Reads the object's data from a raw byte buffer.
p_source | Reference to pointer for source byte stream (advanced during read) [AI] |
p_unk0x24 | Context/flags coming from caller. [AI] |
[AI] Deserializes the action's own data, then the list of sub-actions in sequence using the dispatch mechanism. [AI]
Reimplemented from MxDSAction.
Reimplemented in MxDSSelectAction.
Definition at line 152 of file mxdsmultiaction.cpp.
|
inline |
[AI] Returns the internal action list holding all subactions of this multi-action.
Definition at line 125 of file mxdsmultiaction.h.
|
overridevirtual |
[AI] Calculates the total disk size occupied by this multi-action and all its subactions.
[AI] Iterates through the contained action list, summing each subaction's disk size plus metadata. [AI]
Reimplemented from MxDSAction.
Reimplemented in MxDSSelectAction.
Definition at line 133 of file mxdsmultiaction.cpp.
[AI] Returns whether this action or any contained subaction matches the provided object id.
p_objectId | The unique id to check. [AI] |
Reimplemented from MxDSAction.
Definition at line 86 of file mxdsmultiaction.cpp.
|
inlineoverridevirtual |
[AI] Checks whether a given class name matches this or any parent class.
p_name | Name of the class to check. [AI] |
Reimplemented from MxDSAction.
Reimplemented in MxDSParallelAction, MxDSSelectAction, and MxDSSerialAction.
Definition at line 62 of file mxdsmultiaction.h.
|
overridevirtual |
[AI] Propagates a merge operation from the provided MxDSAction to all subactions, as well as self.
p_dsAction | The source action for merging. [AI] |
[AI] Useful for accumulating/deserializing multiple actions into a single structure hierarchically. [AI]
Reimplemented from MxDSAction.
Definition at line 73 of file mxdsmultiaction.cpp.
MxDSMultiAction & MxDSMultiAction::operator= | ( | MxDSMultiAction & | p_dsMultiAction | ) |
[AI] Assignment operator, deeply copies all state and actions from another MxDSMultiAction.
p_dsMultiAction | The source of the assignment. [AI] |
[AI] Differs from a shallow copy: also duplicates each contained MxDSAction by cloning. Avoids self-assignment. [AI]
Definition at line 47 of file mxdsmultiaction.cpp.
|
overridevirtual |
[AI] Propagates the given AtomId to this and all subactions.
p_atomId | The AtomId to set. [AI] |
Reimplemented from MxDSObject.
Definition at line 179 of file mxdsmultiaction.cpp.
|
overridevirtual |
[AI] Propagates an unknown value to this and all subactions.
p_unk0x90 | The value to set (purpose unclear, but typically a state or context value). [AI] |
Reimplemented from MxDSAction.
Definition at line 60 of file mxdsmultiaction.cpp.
|
overridevirtual |
[AI] Hook for vtable entry 0x14.
Implementation is mostly unknown.
[AI] Implementation iterates over all actions, invoking VTable0x14 on each and aggregating the results. [AI]
Reimplemented from MxDSAction.
Definition at line 118 of file mxdsmultiaction.cpp.
|
protected |
[AI] List of contained actions (ownership: this owns and deletes subactions).
Definition at line 141 of file mxdsmultiaction.h.
|
protected |
[AI] Stores the last-computed disk storage size for m_actionList and metadata.
[AI] Updated when GetSizeOnDisk() is called. Used to optimize serialization. [AI]
Definition at line 136 of file mxdsmultiaction.h.