Isle
|
[AI] Represents a "select" action within a DS (Script/Scene) file, deserialized from SI files to select from a set of available actions at runtime based on a variable or random value. More...
#include <mxdsselectaction.h>
Public Member Functions | |
MxDSSelectAction () | |
[AI] Default constructor. More... | |
MxDSSelectAction (MxDSSelectAction &p_dsSelectAction) | |
[AI] Copy constructor. More... | |
~MxDSSelectAction () override | |
[AI] Destructor. More... | |
void | CopyFrom (MxDSSelectAction &p_dsSelectAction) |
[AI] Copies all internal data from another MxDSSelectAction including string list and selection variable. More... | |
MxDSSelectAction & | operator= (MxDSSelectAction &p_dsSelectAction) |
[AI] Assignment operator; performs a deep copy of the source select action, including all sub-actions and strings. More... | |
const char * | ClassName () const override |
[AI] Returns the class name string for runtime type identification. More... | |
MxBool | IsA (const char *p_name) const override |
[AI] Determines if the object is of the specified type or derives from it. More... | |
MxU32 | GetSizeOnDisk () override |
[AI] Computes the total size needed to serialize this object to disk, including selection strings and all choices. More... | |
void | Deserialize (MxU8 *&p_source, MxS16 p_unk0x24) override |
[AI] Loads (deserializes) this action from a binary source buffer. More... | |
MxDSAction * | Clone () override |
[AI] Creates a deep copy ("clone") of this select action, including its internal strings and selected child action(s). More... | |
![]() | |
MxDSParallelAction () | |
[AI] Constructs a parallel action object. More... | |
MxDSParallelAction (MxDSParallelAction &p_dsParallelAction) | |
[AI] Copy constructor for parallel actions. More... | |
~MxDSParallelAction () override | |
[AI] Destroys the parallel action. More... | |
void | CopyFrom (MxDSParallelAction &p_dsParallelAction) |
[AI] Copies all member data from another parallel action into this one. More... | |
MxDSParallelAction & | operator= (MxDSParallelAction &p_dsParallelAction) |
[AI] Assignment operator. More... | |
const char * | ClassName () const override |
[AI] Returns the class name identifier for runtime type checking and SI parsing. More... | |
MxBool | IsA (const char *p_name) const override |
[AI] Performs runtime type checking, including base classes. More... | |
MxLong | GetDuration () override |
[AI] Fetches the total duration in ticks of the parallel action, including all contained child actions and looping/bit3 logic. More... | |
void | SetDuration (MxLong p_duration) override |
[AI] Sets the explicit duration for this action, overriding the computed aggregate. More... | |
MxDSAction * | Clone () override |
[AI] Produces a complete copy (clone) of this parallel action, including deep-copied data members. More... | |
![]() | |
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... | |
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... | |
![]() | |
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... | |
[AI] Represents a "select" action within a DS (Script/Scene) file, deserialized from SI files to select from a set of available actions at runtime based on a variable or random value.
MxDSSelectAction introduces selection logic to the standard parallel action, determining which child action to activate based on the input value/variable or randomized choice. The list of possible choices and their associated variable/token are managed internally.
Upon deserialization, the action will parse either a variable name or a random range (RANDOM_x), populate the choice list, and select the matching (or random) action to append to its executable subactions.
Inherits from MxDSParallelAction, and extends it to include variable-driven or random action selection. [AI]
Definition at line 20 of file mxdsselectaction.h.
MxDSSelectAction::MxDSSelectAction | ( | ) |
[AI] Default constructor.
Initializes the object as a select action and allocates the choice string list m_unk0xac.
Definition at line 14 of file mxdsselectaction.cpp.
MxDSSelectAction::MxDSSelectAction | ( | MxDSSelectAction & | p_dsSelectAction | ) |
[AI] Copy constructor.
Deep-copies the source select action, including string and choice list. [AI]
p_dsSelectAction | The source select action to copy from. [AI] |
Definition at line 43 of file mxdsselectaction.cpp.
|
override |
[AI] Destructor.
Frees any allocated memory for the internal choice list. [AI]
Definition at line 22 of file mxdsselectaction.cpp.
|
inlineoverridevirtual |
[AI] Returns the class name string for runtime type identification.
[AI]
Reimplemented from MxDSParallelAction.
Definition at line 55 of file mxdsselectaction.h.
|
overridevirtual |
[AI] Creates a deep copy ("clone") of this select action, including its internal strings and selected child action(s).
[AI]
Reimplemented from MxDSParallelAction.
Definition at line 61 of file mxdsselectaction.cpp.
void MxDSSelectAction::CopyFrom | ( | MxDSSelectAction & | p_dsSelectAction | ) |
[AI] Copies all internal data from another MxDSSelectAction including string list and selection variable.
[AI]
p_dsSelectAction | The source object to copy from. [AI] |
Definition at line 29 of file mxdsselectaction.cpp.
[AI] Loads (deserializes) this action from a binary source buffer.
[AI]
[AI] Parses the selection string, determines selection mechanism (variable or randomized/range), loads the associated list of choices, and then deserializes only the selected child action.
p_source | Cursor to the start of serialized data. Updated by method. [AI] |
p_unk0x24 | Flags or extra context for deserialization. [AI] |
Reimplemented from MxDSMultiAction.
Definition at line 95 of file mxdsselectaction.cpp.
|
overridevirtual |
[AI] Computes the total size needed to serialize this object to disk, including selection strings and all choices.
[AI]
[AI] Sums the base class size, the selection variable/random string, and all items in the string (choice) list.
Reimplemented from MxDSMultiAction.
Definition at line 74 of file mxdsselectaction.cpp.
|
inlineoverridevirtual |
[AI] Determines if the object is of the specified type or derives from it.
[AI]
p_name | Type/class name to compare against. [AI] |
Reimplemented from MxDSParallelAction.
Definition at line 66 of file mxdsselectaction.h.
MxDSSelectAction & MxDSSelectAction::operator= | ( | MxDSSelectAction & | p_dsSelectAction | ) |
[AI] Assignment operator; performs a deep copy of the source select action, including all sub-actions and strings.
[AI]
p_dsSelectAction | The source object to copy from. [AI] |
Definition at line 50 of file mxdsselectaction.cpp.