Isle
|
[AI] Represents an actor instance specifically used within LEGO Island, extending LegoActor with notification and action-related behaviors. More...
#include <isleactor.h>
Public Member Functions | |
MxLong | Notify (MxParam &p_param) override |
[AI] Handles notification messages sent to this actor and dispatches to the appropriate handler based on the notification type. More... | |
MxResult | Create (MxDSAction &p_dsAction) override |
[AI] Initializes this IsleActor with a given action. More... | |
virtual MxLong | HandleClick () |
[AI] Handles a click event on this actor. More... | |
virtual MxLong | VTable0x6c () |
[AI] Handles a custom notification type mapped to vtable slot 0x6c. More... | |
virtual MxLong | HandleEndAnim () |
[AI] Handles the notification that an animation on this actor has finished. More... | |
virtual MxLong | HandleEndAction (MxEndActionNotificationParam &) |
[AI] Handles the notification that a media or scripted action has ended. More... | |
virtual MxLong | HandleButtonDown (LegoControlManagerNotificationParam &) |
[AI] Handles a button press (down) event, typically from user input, routed via the control manager. More... | |
virtual MxLong | HandleButtonUp (LegoControlManagerNotificationParam &) |
[AI] Handles a button release (up) event routed via the control manager. More... | |
virtual MxLong | HandlePathStruct (LegoPathStructNotificationParam &) |
[AI] Handles notifications relating to actor path or path structure changes (for movement, traversal, etc). More... | |
const char * | ClassName () const override |
[AI] Returns the class name string of this type (“IsleActor”). [AI] More... | |
MxBool | IsA (const char *p_name) const override |
[AI] Checks if this instance is of the specified class, or inherits from it. More... | |
![]() | |
LegoActor () | |
[AI] Constructs new LegoActor, initializes members. More... | |
~LegoActor () override | |
[AI] Cleans up LegoActor; stops sound if active. More... | |
const char * | ClassName () const override |
[AI] Gets the class name of this object. More... | |
MxBool | IsA (const char *p_name) const override |
[AI] Determines if the class is or derives from the given name. More... | |
void | ParseAction (char *p_extra) override |
[AI] Parses an action string and applies parsed behaviors to the actor. More... | |
void | SetROI (LegoROI *p_roi, MxBool p_bool1, MxBool p_bool2) override |
[AI] Sets the Region of Interest (ROI, i.e. More... | |
virtual MxFloat | GetSoundFrequencyFactor () |
[AI] Returns the current frequency factor for the actor's sound. More... | |
virtual void | SetSoundFrequencyFactor (MxFloat p_frequencyFactor) |
[AI] Sets the frequency factor for the actor's sound playback (e.g., to alter pitch). More... | |
virtual void | VTable0x58 (MxFloat p_unk0x70) |
[AI] Sets a floating point property, unknown usage (possibly animation or audio parameter). More... | |
virtual MxFloat | VTable0x5c () |
[AI] Gets the unknown floating point property set by VTable0x58. [AI] [AI_SUGGESTED_NAME: GetVoicePitchModifier] More... | |
virtual MxU8 | GetActorId () |
[AI] Gets this actor's numeric ID, corresponding to a known enumeration/actor. More... | |
virtual void | SetActorId (MxU8 p_actorId) |
[AI] Sets the actor's numeric ID. More... | |
void | Mute (MxBool p_muted) |
[AI] Mutes or unmutes the actor's current sound. More... | |
![]() | |
LegoEntity () | |
[AI] Default constructor. Initializes the LegoEntity with default values. [AI] More... | |
~LegoEntity () override | |
[AI] Destructor. Cleans up resources and ensures ROI and script state are released. [AI] More... | |
MxLong | Notify (MxParam &p_param) override |
[AI] Handles event notification for the entity, most notably user clicks, using polymorphic dispatch. More... | |
const char * | ClassName () const override |
[AI] Returns the class name string. Used in entity runtime type identification. [AI] More... | |
MxBool | IsA (const char *p_name) const override |
[AI] Polymorphic type check for this entity given a string. More... | |
virtual MxResult | Create (MxDSAction &p_dsAction) |
[AI] Initializes the entity from a DSAction object, typically from a script or file load. More... | |
virtual void | Destroy (MxBool p_fromDestructor) |
[AI] Cleans up the entity, detaching ROI and releasing references. More... | |
virtual void | ParseAction (char *p_extra) |
[AI] Parses an action description string (usually from script "extra" data) and sets up this entity's action state. More... | |
virtual void | SetROI (LegoROI *p_roi, MxBool p_bool1, MxBool p_bool2) |
[AI] Assigns a 3D ROI (3D object instance) to this entity, controlling how it appears/acts in the world. More... | |
virtual void | SetWorldTransform (const Vector3 &p_location, const Vector3 &p_direction, const Vector3 &p_up) |
[AI] Explicitly sets the world transformation (location, direction, up vector) for this entity. More... | |
virtual void | ResetWorldTransform (MxBool p_cameraFlag) |
[AI] Resets the transformation for this entity (e.g., used with camera transitions). More... | |
virtual void | SetWorldSpeed (MxFloat p_worldSpeed) |
[AI] Sets the current world speed value for this entity (used to control motion/animation rate). More... | |
virtual void | ClickSound (MxBool p_und) |
[AI] Plays a click sound, typically in response to user/AI actions, according to entity type. More... | |
virtual void | ClickAnimation () |
[AI] Plays a context-sensitive click animation, driven by current entity type and state. [AI] More... | |
virtual void | SwitchVariant () |
[AI] Switches variants for this entity (e.g., different animation, mesh, or texture variant), based on type. [AI] More... | |
virtual void | SwitchSound () |
[AI] Triggers a context-dependent audio/sound variant switch for this entity. [AI] More... | |
virtual void | SwitchMove () |
[AI] Switches movement/animation variant for this entity, if applicable (e.g., walking/running state). [AI] More... | |
virtual void | SwitchColor (LegoROI *p_roi) |
[AI] Switches the color or texture variant for this entity (or target ROI). More... | |
virtual void | SwitchMood () |
[AI] Triggers a mood/state switch for this entity (if supported), often for characters. [AI] More... | |
void | FUN_10010c30 () |
[AI] Updates the camera transformation when this entity is the camera target. Used after movement or position updates. [AI] More... | |
void | SetType (MxU8 p_type) |
[AI] Sets the entity's type (actor/plant/building/etc.) [AI] More... | |
void | SetLocation (const Vector3 &p_location, const Vector3 &p_direction, const Vector3 &p_up, MxBool p_und) |
[AI] Sets the world-space location, direction, and up, applying normalization and transformation. More... | |
Mx3DPointFloat | GetWorldDirection () |
[AI] Gets the normalized world-space direction vector, optionally updating from ROI. [AI] More... | |
Mx3DPointFloat | GetWorldUp () |
[AI] Gets the normalized world-space up vector, optionally updating from ROI. [AI] More... | |
Mx3DPointFloat | GetWorldPosition () |
[AI] Gets the world-space position vector, optionally updating from ROI. [AI] More... | |
MxBool | GetUnknown0x10IsSet (MxU8 p_flag) |
[AI] Checks if a bit flag in m_unk0x10 is set (purpose: state/animation suppression lock). More... | |
MxBool | GetFlagsIsSet (MxU8 p_flag) |
[AI] Checks if a flag is set in the primary flags byte (m_flags). More... | |
MxU8 | GetFlags () |
[AI] Returns the value of the flag byte. [AI] More... | |
MxFloat | GetWorldSpeed () |
[AI] Gets the entity's current world speed state. [AI] More... | |
LegoROI * | GetROI () |
[AI] Gets the ROI (Realtime Object Instance) associated with this entity. [AI] More... | |
MxU8 | GetType () |
[AI] Gets the type of this entity (one of the enum Type values). [AI] More... | |
MxBool | GetCameraFlag () |
[AI] Returns whether this entity is flagged as camera (affects world/camera synchronization). [AI] More... | |
void | SetFlags (MxU8 p_flags) |
[AI] Sets all entity flags at once (replaces previous). More... | |
void | SetFlag (MxU8 p_flag) |
[AI] Sets the given flag in the flags byte. More... | |
void | ClearFlag (MxU8 p_flag) |
[AI] Clears the given flag in the flags byte. More... | |
void | SetUnknown0x10Flag (MxU8 p_flag) |
[AI] Sets the given bit in the unknown (usually internal action suppression) flag byte. More... | |
void | ClearUnknown0x10Flag (MxU8 p_flag) |
[AI] Clears the given bit in the unknown flag byte. More... | |
![]() | |
MxEntity () | |
Default constructor. More... | |
~MxEntity () override | |
Virtual destructor for MxEntity. More... | |
const char * | ClassName () const override |
Returns the class name for type introspection. More... | |
MxBool | IsA (const char *p_name) const override |
Checks if the object is of the given class name or a parent type. More... | |
virtual MxResult | Create (MxS32 p_entityId, const MxAtomId &p_atomId) |
Initializes the entity from a given entity ID and AtomId. More... | |
MxResult | Create (MxDSAction &p_dsAction) |
Initializes the entity from a MxDSAction object. More... | |
MxS32 | GetEntityId () |
Returns the current entity ID. More... | |
MxAtomId & | GetAtomId () |
Returns a reference to the entity AtomId. More... | |
void | SetEntityId (MxS32 p_entityId) |
Sets the entity ID to the given value. More... | |
void | SetAtomId (const MxAtomId &p_atomId) |
Sets the AtomId to the given value. 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 | |
LegoWorld * | m_world |
[AI] Pointer to the LegoWorld this actor currently resides in. May be null if not fully initialized. [AI] More... | |
![]() | |
MxFloat | m_frequencyFactor |
[AI] The frequency/pitch scaling factor for the actor's sound (default 0 == normal). More... | |
LegoCacheSound * | m_sound |
[AI] Pointer to a currently active sound instance played by the actor, if any. More... | |
MxFloat | m_unk0x70 |
[AI] Unknown float property, likely used for advanced audio/animation control. [AI_SUGGESTED_NAME: m_voicePitchModifier] More... | |
MxU8 | m_actorId |
[AI] Unique identifier for this actor, corresponding to enum above. More... | |
![]() | |
MxU8 | m_unk0x10 |
[AI] Unknown state/flag, used mainly to guard against repeated actions or manage animation/sound state. [AI] More... | |
MxU8 | m_flags |
[AI] Primary entity flags (bitfield); tracks per-entity management status, internal update locks, etc. [AI] More... | |
Mx3DPointFloat | m_worldLocation |
[AI] Entity location in world coordinates. [AI] More... | |
Mx3DPointFloat | m_worldDirection |
[AI] Entity direction vector in world space (normalized). [AI] More... | |
Mx3DPointFloat | m_worldUp |
[AI] Entity up vector in world space (normalized). [AI] More... | |
MxFloat | m_worldSpeed |
[AI] World-relative speed (can affect animation/movement logic). [AI] More... | |
LegoROI * | m_roi |
[AI] Pointer to this entity's currently assigned ROI (3D instance in the world). [AI] More... | |
MxBool | m_cameraFlag |
[AI] Set to TRUE if this entity is currently the camera target. [AI] More... | |
MxU8 | m_type |
[AI] The entity type (Type enum value). [AI] More... | |
Extra::ActionType | m_actionType |
[AI] Action type, parsed from script/extra string (e.g., openram/run/exit); guides Notify() and click logic. [AI] More... | |
char * | m_siFile |
[AI] When parsing ACTION command, this is the SI script/filename to execute (owned, heap-allocated). [AI] More... | |
MxS32 | m_targetEntityId |
[AI] When parsing ACTION command, this is the target entity ID for the action (or -1 for none). [AI] More... | |
![]() | |
MxS32 | m_entityId |
The unique entity ID, typically used for lookup and reference. More... | |
MxAtomId | m_atomId |
The AtomId associated with this entity, used for resource and script identification. More... | |
Additional Inherited Members | |
![]() | |
enum | { c_none = 0 , c_pepper , c_mama , c_papa , c_nick , c_laura , c_brickster } |
[AI] Enumeration of actor IDs for known characters. More... | |
![]() | |
enum | Type { e_actor = 0 , e_unk1 , e_plant , e_building , e_autoROI } |
[AI] Types of LegoEntity (Actor, Plant, Building, Auto ROI, etc.) [AI] More... | |
enum | { c_bit1 = 0x01 , c_managerOwned = 0x02 } |
[AI] Bit flag constants for entity state management [AI] More... | |
enum | { c_altBit1 = 0x01 } |
[AI] Secondary bit flag constants [AI] More... | |
![]() | |
static const char * | GetActorName (MxU8 p_id) |
[AI] Gets the static display name of an actor by ID. More... | |
![]() | |
void | Init () |
[AI] Initializes the entity's members to default/neutral values (utility for constructors and resets). [AI] More... | |
void | SetWorld () |
[AI] Registers/attaches this entity to the current world if not already; called on create or location change. [AI] More... | |
[AI] Represents an actor instance specifically used within LEGO Island, extending LegoActor with notification and action-related behaviors.
[AI]
[AI] IsleActor provides the interface and some implementation for notification handling, user interactions (clicks, button presses), as well as integration with the world context (LegoWorld) and animation/end-action callback mechanisms. This specialization enables game-specific interactivity and logic, over the base LegoActor behavior. [AI]
Definition at line 15 of file isleactor.h.
|
inlineoverridevirtual |
[AI] Returns the class name string of this type (“IsleActor”). [AI]
Reimplemented from MxCore.
Reimplemented in Pizza, and Pizzeria.
Definition at line 60 of file isleactor.h.
|
overridevirtual |
[AI] Initializes this IsleActor with a given action.
[AI]
p_dsAction | Reference to the DS action descriptor. [AI] |
[AI] Initializes the actor using the base class implementation. Additionally attempts to set the m_world pointer to the current active LegoWorld; if that is not possible, marks creation as failed. [AI]
Reimplemented from LegoEntity.
Reimplemented in Pizza, and Pizzeria.
Definition at line 12 of file isleactor.cpp.
|
inlinevirtual |
[AI] Handles a button press (down) event, typically from user input, routed via the control manager.
[AI]
param | Button down notification. [AI] |
[AI] Default returns 0. Derived classes may respond to input via this mechanism. [AI]
Definition at line 47 of file isleactor.h.
|
inlinevirtual |
[AI] Handles a button release (up) event routed via the control manager.
[AI]
param | Button up notification. [AI] |
[AI] Default returns 0. Derived classes override to respond to control events. [AI]
Definition at line 52 of file isleactor.h.
|
inlinevirtual |
[AI] Handles a click event on this actor.
[AI]
[AI] Default implementation returns 0, meant to be overridden by derived classes for specific click handling logic. [AI]
Reimplemented in Pizza, and Pizzeria.
Definition at line 29 of file isleactor.h.
|
inlinevirtual |
[AI] Handles the notification that a media or scripted action has ended.
[AI]
param | Reference to end-action notification structure. [AI] |
[AI] Default returns 0. Allows derived classes to handle cleanup or state changes after an action completes. [AI]
Reimplemented in Pizza.
Definition at line 42 of file isleactor.h.
|
inlinevirtual |
[AI] Handles the notification that an animation on this actor has finished.
[AI]
[AI] Default implementation returns 0. Derived actors may perform logic when an animation sequence ends. [AI]
Definition at line 37 of file isleactor.h.
|
inlinevirtual |
[AI] Handles notifications relating to actor path or path structure changes (for movement, traversal, etc).
[AI]
param | Path structure notification. [AI] |
[AI] Default returns 0. Derived actors can use this to update their position, behavior, or tracking when assigned new routes or boundaries. [AI]
Reimplemented in Pizza.
Definition at line 57 of file isleactor.h.
|
inlineoverridevirtual |
[AI] Checks if this instance is of the specified class, or inherits from it.
[AI]
p_name | Null-terminated ASCII class name string to compare. [AI] |
[AI] Returns true if p_name matches directly, or via the base class IsA implementation. [AI]
Reimplemented from MxCore.
Reimplemented in Pizza, and Pizzeria.
Definition at line 68 of file isleactor.h.
[AI] Handles notification messages sent to this actor and dispatches to the appropriate handler based on the notification type.
[AI]
p_param | Reference to the parameter describing the notification. [AI] |
[AI] Switches over the notification type (such as button up/down, clicks, end-animation, end-action etc), and calls the corresponding handler virtual. [AI]
Reimplemented from MxCore.
Definition at line 29 of file isleactor.cpp.
|
inlinevirtual |
[AI] Handles a custom notification type mapped to vtable slot 0x6c.
[AI]
[AI] Default implementation returns 0; specific meaning/context must be defined in derived types. [AI]
Definition at line 33 of file isleactor.h.
|
protected |
[AI] Pointer to the LegoWorld this actor currently resides in. May be null if not fully initialized. [AI]
Definition at line 75 of file isleactor.h.