Isle
|
[AI] Represents an entity that can be placed and managed in the LEGO Island world. More...
#include <legoentity.h>
Public Types | |
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... | |
Public Member Functions | |
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 Member Functions | |
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... | |
Protected Attributes | |
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... | |
[AI] Represents an entity that can be placed and managed in the LEGO Island world.
This class handles 3D transformation, linkage to a 3D object instance (ROI), script/action parsing, audio/animation switching behaviors, and other entity-driven event responses. Derived from MxEntity. [AI]
Definition at line 16 of file legoentity.h.
anonymous enum |
[AI] Bit flag constants for entity state management [AI]
Enumerator | |
---|---|
c_bit1 | [AI] Used internally for ROI/entity ownership tracking [AI] |
c_managerOwned | [AI] Indicates this entity is managed/owned by an entity manager [AI] |
Definition at line 28 of file legoentity.h.
anonymous enum |
[AI] Secondary bit flag constants [AI]
Enumerator | |
---|---|
c_altBit1 | [AI] Used to prevent repeat sound/animation actions while one is in progress [AI] |
Definition at line 34 of file legoentity.h.
enum LegoEntity::Type |
[AI] Types of LegoEntity (Actor, Plant, Building, Auto ROI, etc.) [AI]
Definition at line 19 of file legoentity.h.
|
inline |
[AI] Default constructor. Initializes the LegoEntity with default values. [AI]
Definition at line 39 of file legoentity.h.
|
inlineoverride |
[AI] Destructor. Cleans up resources and ensures ROI and script state are released. [AI]
Definition at line 43 of file legoentity.h.
|
inlineoverridevirtual |
[AI] Returns the class name string. Used in entity runtime type identification. [AI]
Reimplemented from MxCore.
Reimplemented in LegoExtraActor, LegoPathActor, LegoRace, LegoRaceActor, LegoJetski, LegoRaceCar, LegoCarRaceActor, LegoJetskiRaceActor, LegoWorld, Motocycle, Pizza, Pizzeria, Police, RaceCar, RegistrationBook, Score, SkateBoard, and TowTrack.
Definition at line 51 of file legoentity.h.
|
inline |
[AI] Clears the given flag in the flags byte.
[AI]
p_flag | Bit to clear. [AI] |
Definition at line 179 of file legoentity.h.
|
inline |
[AI] Clears the given bit in the unknown flag byte.
[AI]
p_flag | Bit to clear. [AI] |
Definition at line 187 of file legoentity.h.
|
virtual |
[AI] Plays a context-sensitive click animation, driven by current entity type and state. [AI]
Definition at line 298 of file legoentity.cpp.
|
virtual |
[AI] Plays a click sound, typically in response to user/AI actions, according to entity type.
p_und | Determines variant/alternate sound or behavior. [AI] |
Definition at line 266 of file legoentity.cpp.
|
virtual |
[AI] Initializes the entity from a DSAction object, typically from a script or file load.
[AI]
p_dsAction | The source action to initialize from. [AI] |
Reimplemented in Act3, Ambulance, Bike, CarRace, DuneBuggy, ElevatorBottom, GasStation, Helicopter, HistoryBook, Hospital, Infocenter, InfocenterDoor, Isle, IsleActor, IslePathActor, Jetski, JetskiRace, JukeBox, LegoAct2, LegoCarBuild, LegoRace, LegoWorld, Motocycle, Pizza, Pizzeria, Police, RaceCar, RegistrationBook, Score, SkateBoard, and TowTrack.
Definition at line 84 of file legoentity.cpp.
|
virtual |
[AI] Cleans up the entity, detaching ROI and releasing references.
[AI]
p_fromDestructor | True if called from destructor. [AI] |
Reimplemented in Act3, Act3Ammo, Ambulance, IslePathActor, and LegoWorld.
Definition at line 94 of file legoentity.cpp.
void LegoEntity::FUN_10010c30 | ( | ) |
[AI] Updates the camera transformation when this entity is the camera target. Used after movement or position updates. [AI]
Definition at line 192 of file legoentity.cpp.
|
inline |
[AI] Returns whether this entity is flagged as camera (affects world/camera synchronization). [AI]
Definition at line 167 of file legoentity.h.
|
inline |
[AI] Returns the value of the flag byte. [AI]
Definition at line 155 of file legoentity.h.
[AI] Checks if a flag is set in the primary flags byte (m_flags).
[AI]
p_flag | Flag value to test. [AI] |
Definition at line 152 of file legoentity.h.
|
inline |
[AI] Gets the ROI (Realtime Object Instance) associated with this entity. [AI]
Definition at line 161 of file legoentity.h.
|
inline |
[AI] Gets the type of this entity (one of the enum Type values). [AI]
Definition at line 164 of file legoentity.h.
[AI] Checks if a bit flag in m_unk0x10 is set (purpose: state/animation suppression lock).
[AI]
p_flag | Flag value to test. [AI] |
Definition at line 148 of file legoentity.h.
Mx3DPointFloat LegoEntity::GetWorldDirection | ( | ) |
[AI] Gets the normalized world-space direction vector, optionally updating from ROI. [AI]
Definition at line 202 of file legoentity.cpp.
Mx3DPointFloat LegoEntity::GetWorldPosition | ( | ) |
[AI] Gets the world-space position vector, optionally updating from ROI. [AI]
Definition at line 224 of file legoentity.cpp.
|
inline |
[AI] Gets the entity's current world speed state. [AI]
Definition at line 158 of file legoentity.h.
Mx3DPointFloat LegoEntity::GetWorldUp | ( | ) |
[AI] Gets the normalized world-space up vector, optionally updating from ROI. [AI]
Definition at line 213 of file legoentity.cpp.
|
protected |
[AI] Initializes the entity's members to default/neutral values (utility for constructors and resets). [AI]
Definition at line 24 of file legoentity.cpp.
|
inlineoverridevirtual |
[AI] Polymorphic type check for this entity given a string.
[AI]
p_name | Name of class to check. [AI] |
Reimplemented from MxCore.
Reimplemented in LegoExtraActor, LegoPathActor, LegoRace, LegoRaceActor, LegoJetski, LegoRaceCar, LegoCarRaceActor, LegoJetskiRaceActor, LegoWorld, Motocycle, Pizza, Pizzeria, Police, RaceCar, RegistrationBook, Score, SkateBoard, and TowTrack.
Definition at line 59 of file legoentity.h.
[AI] Handles event notification for the entity, most notably user clicks, using polymorphic dispatch.
[AI] If an actionable event is received, invokes script-driven or context-specific action.
p_param | Parameter dispatch object, expected to reference LegoEventNotificationParam. [AI] |
Reimplemented from MxCore.
Reimplemented in LegoRace, LegoRaceMap, LegoJetski, LegoRaceCar, LegoWorld, Police, RegistrationBook, Score, and TowTrack.
Definition at line 466 of file legoentity.cpp.
|
virtual |
[AI] Parses an action description string (usually from script "extra" data) and sets up this entity's action state.
p_extra | String with the action command to parse. Example: "ACTION:<action>; <filename>; <entity-id>". [AI] |
Reimplemented in Act3Shark, Act3Cop, Act3Brickster, Doors, LegoActor, LegoAnimActor, LegoPathActor, LegoRaceMap, LegoJetski, LegoRaceCar, and RaceSkel.
Definition at line 236 of file legoentity.cpp.
|
virtual |
[AI] Resets the transformation for this entity (e.g., used with camera transitions).
p_cameraFlag | Whether this entity should act as the camera controller target. [AI] |
Definition at line 41 of file legoentity.cpp.
|
inline |
[AI] Sets the given flag in the flags byte.
[AI]
p_flag | Bit to set. [AI] |
Definition at line 175 of file legoentity.h.
|
inline |
[AI] Sets all entity flags at once (replaces previous).
[AI]
p_flags | Bitfield value to set. [AI] |
Definition at line 171 of file legoentity.h.
void LegoEntity::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.
[AI]
p_location | Target location. [AI] |
p_direction | Forward vector (normalized internally). [AI] |
p_up | Up vector (normalized internally). [AI] |
p_und | If true, updates camera transform as well. [AI] |
Definition at line 158 of file legoentity.cpp.
[AI] Assigns a 3D ROI (3D object instance) to this entity, controlling how it appears/acts in the world.
p_roi | ROI pointer to assign. [AI] |
p_bool1 | Whether to clear or set a specific flag after setting the ROI. [AI] |
p_bool2 | If true, updates the ROI transformation to match current world state. [AI] |
Reimplemented in Act2Actor, and LegoActor.
Definition at line 127 of file legoentity.cpp.
void LegoEntity::SetType | ( | MxU8 | p_type | ) |
[AI] Sets the entity's type (actor/plant/building/etc.) [AI]
p_type | Type enumeration value to set. [AI] |
Definition at line 459 of file legoentity.cpp.
|
inline |
[AI] Sets the given bit in the unknown (usually internal action suppression) flag byte.
[AI]
p_flag | Bit to set. [AI] |
Definition at line 183 of file legoentity.h.
|
protected |
[AI] Registers/attaches this entity to the current world if not already; called on create or location change. [AI]
Definition at line 116 of file legoentity.cpp.
|
inlinevirtual |
[AI] Sets the current world speed value for this entity (used to control motion/animation rate).
[AI]
p_worldSpeed | New world speed value. [AI] |
Reimplemented in Act2Actor, LegoAnimActor, LegoExtraActor, LegoJetski, and LegoRaceCar.
Definition at line 98 of file legoentity.h.
|
virtual |
[AI] Explicitly sets the world transformation (location, direction, up vector) for this entity.
p_location | New world location. [AI] |
p_direction | New world direction vector. [AI] |
p_up | New world up vector. [AI] |
Definition at line 71 of file legoentity.cpp.
|
virtual |
[AI] Switches the color or texture variant for this entity (or target ROI).
[AI]
p_roi | Optional: target LegoROI for color/texture switching. [AI] |
Definition at line 411 of file legoentity.cpp.
|
virtual |
[AI] Triggers a mood/state switch for this entity (if supported), often for characters. [AI]
Definition at line 434 of file legoentity.cpp.
|
virtual |
[AI] Switches movement/animation variant for this entity, if applicable (e.g., walking/running state). [AI]
Definition at line 387 of file legoentity.cpp.
|
virtual |
[AI] Triggers a context-dependent audio/sound variant switch for this entity. [AI]
Definition at line 363 of file legoentity.cpp.
|
virtual |
[AI] Switches variants for this entity (e.g., different animation, mesh, or texture variant), based on type. [AI]
Definition at line 339 of file legoentity.cpp.
|
protected |
[AI] Action type, parsed from script/extra string (e.g., openram/run/exit); guides Notify() and click logic. [AI]
Definition at line 224 of file legoentity.h.
|
protected |
[AI] Set to TRUE if this entity is currently the camera target. [AI]
Definition at line 218 of file legoentity.h.
|
protected |
[AI] Primary entity flags (bitfield); tracks per-entity management status, internal update locks, etc. [AI]
Definition at line 200 of file legoentity.h.
|
protected |
[AI] Pointer to this entity's currently assigned ROI (3D instance in the world). [AI]
Definition at line 215 of file legoentity.h.
|
protected |
[AI] When parsing ACTION command, this is the SI script/filename to execute (owned, heap-allocated). [AI]
Definition at line 228 of file legoentity.h.
|
protected |
[AI] When parsing ACTION command, this is the target entity ID for the action (or -1 for none). [AI]
Definition at line 231 of file legoentity.h.
|
protected |
[AI] The entity type (Type enum value). [AI]
Definition at line 221 of file legoentity.h.
|
protected |
[AI] Unknown state/flag, used mainly to guard against repeated actions or manage animation/sound state. [AI]
Definition at line 197 of file legoentity.h.
|
protected |
[AI] Entity direction vector in world space (normalized). [AI]
Definition at line 206 of file legoentity.h.
|
protected |
[AI] Entity location in world coordinates. [AI]
Definition at line 203 of file legoentity.h.
|
protected |
[AI] World-relative speed (can affect animation/movement logic). [AI]
Definition at line 212 of file legoentity.h.
|
protected |
[AI] Entity up vector in world space (normalized). [AI]
Definition at line 209 of file legoentity.h.