Isle
|
[AI] Base class for all race-type LegoWorlds. More...
#include <legorace.h>
Public Member Functions | |
LegoRace () | |
[AI] Default constructor. More... | |
~LegoRace () override | |
[AI] Destructor. More... | |
MxLong | Notify (MxParam &p_param) override |
[AI] Notification callback, dispatches events to various race handlers (click, end action, map struct, etc.) if the world is running. More... | |
MxResult | Create (MxDSAction &p_dsAction) override |
[AI] Creates and initializes LegoRace world/logic for a DS action. More... | |
virtual MxLong | HandleClick (LegoEventNotificationParam &)=0 |
[AI] Handles user click events within the race area. More... | |
virtual MxLong | HandlePathStruct (LegoPathStructNotificationParam &) |
[AI] Handles "path struct" notifications (such as map changes or logic triggers for race boundaries). More... | |
virtual MxLong | HandleEndAction (MxEndActionNotificationParam &) |
[AI] Handles "end action" (e.g., finish line reached, cutscene ended) events for the race state logic. More... | |
MxBool | Escape () override |
[AI] Handles Escape input, which is intentionally disabled in race states for legacy reasons. More... | |
const char * | ClassName () const override |
[AI] Returns the runtime class name ("LegoRace") for type checks. More... | |
MxBool | IsA (const char *p_name) const override |
[AI] Runtime type check for this class (or parent LegoWorld). More... | |
virtual MxLong | HandleType0Notification (MxNotificationParam &) |
[AI] Handles notification of type 0 (specific logic event), can be overridden for custom event processing. More... | |
virtual void | VTable0x7c (LegoRaceMap *p_map, MxU32 p_index) |
[AI] Associates a race map instance to the maps array at the given index. More... | |
MxBool | VTable0x5c () override |
[AI] Indicates that custom "VTable0x5c" logic is enabled (always TRUE for LegoRace, possibly to indicate tickle or update registration). More... | |
void | Enable (MxBool p_enable) override |
[AI] Enables or disables the race world and detaches the user actor if switching away. More... | |
![]() | |
LegoWorld () | |
Constructs a LegoWorld, initializing lists and notifying the notification manager. More... | |
~LegoWorld () override | |
Cleans up the world, destroying all held entities, presenters, and controllers. More... | |
MxLong | Notify (MxParam &p_param) override |
Notification callback responding to registered events such as EndAction and NewPresenter. More... | |
MxResult | Tickle () override |
Main world tick/update, especially manages startup countdown. More... | |
MxResult | Create (MxDSAction &p_dsAction) override |
Initializes the world using an action, creating entity and sound lists, and camera controller. More... | |
void | Destroy (MxBool p_fromDestructor) override |
Destroys the world and its contents, optionally called from the destructor. More... | |
virtual void | ReadyWorld () |
Called when the world is ready to be used—typically for custom scene setup after startup. More... | |
virtual LegoCameraController * | VTable0x54 () |
Initializes and returns the camera controller for the world; may create it on-demand. More... | |
virtual void | Add (MxCore *p_object) |
Adds an object (entity, presenter, ROI, etc.) to the appropriate world-managed list or set. More... | |
virtual MxBool | VTable0x5c () |
Potential "escape" action for world; returns FALSE by default, may be overridden in child worlds. More... | |
virtual void | VTable0x60 () |
Placeholder/extensible virtual—default does nothing. More... | |
virtual MxBool | Escape () |
Handles user-initiated "escape" or exit action. More... | |
virtual void | Enable (MxBool p_enable) |
Enables or disables (pauses) the world and its main components. More... | |
const char * | ClassName () const override |
Returns the class name for runtime type information and debugging. More... | |
MxBool | IsA (const char *p_name) const override |
Runtime type checking; checks class hierarchy. More... | |
MxBool | PresentersPending () |
Checks if there are any presenters pending to fully enter their tickle (animation) state. More... | |
void | Remove (MxCore *p_object) |
Removes an object from all relevant world-managed lists or sets, and also detaches if needed. More... | |
MxResult | PlaceActor (LegoPathActor *p_actor, const char *p_name, MxS32 p_src, float p_srcScale, MxS32 p_dest, float p_destScale) |
Places an actor along a path, from source to destination, using named references and scaling. More... | |
MxResult | PlaceActor (LegoPathActor *p_actor) |
Places an actor using only its reference, using controller logic. More... | |
MxResult | PlaceActor (LegoPathActor *p_actor, LegoAnimPresenter *p_presenter, Vector3 &p_position, Vector3 &p_direction) |
Places an actor using detailed presenter, position and direction. More... | |
void | RemoveActor (LegoPathActor *p_actor) |
Removes an actor from all known path controllers. More... | |
MxBool | ActorExists (LegoPathActor *p_actor) |
Determines if an actor already exists in any controller in this world. More... | |
void | FUN_1001fda0 (LegoAnimPresenter *p_presenter) |
Forwards a presenter to all path controllers to perform a custom action (possibly hide, etc.). More... | |
void | FUN_1001fe90 (LegoAnimPresenter *p_presenter) |
Forwards a presenter to all path controllers for another custom or state change action. More... | |
LegoPathBoundary * | FindPathBoundary (const char *p_name) |
Finds a path boundary in all path controllers by name. More... | |
void | AddPath (LegoPathController *p_controller) |
Adds a path controller to the world and calls its initialization with this. More... | |
MxResult | GetCurrPathInfo (LegoPathBoundary **p_boundaries, MxS32 &p_numL) |
Gets information about the currently active path and boundaries. More... | |
MxCore * | Find (const char *p_class, const char *p_name) |
Finds an object of a given class and name in the world. More... | |
MxCore * | Find (const MxAtomId &p_atom, MxS32 p_entityId) |
Finds an object in the world by its atom id and entity id. More... | |
LegoCameraController * | GetCameraController () |
Returns the current camera controller for the world. More... | |
LegoEntityList * | GetEntityList () |
Returns the current list of entities. More... | |
LegoOmni::World | GetWorldId () |
Gets the world id associated with this world. More... | |
MxBool | GetUnknown0xd0Empty () |
Checks if the 'set0xd0' set is empty. More... | |
list< LegoROI * > & | GetROIList () |
Gets the list of all ROIs (Real-time Object Instances) in the world. More... | |
LegoHideAnimPresenter * | GetHideAnimPresenter () |
Gets the animation presenter responsible for hide animations in this world. More... | |
void | SetWorldId (LegoOmni::World p_worldId) |
Sets the world id for this world instance. 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... | |
Static Public Member Functions | |
static const char * | HandlerClassName () |
[AI] Gets the handler class name string for this class ("LegoRace"). More... | |
Protected Attributes | |
MxS32 | m_unk0xf8 |
[AI] Unknown (race-specific state/control variable). More... | |
MxS32 | m_unk0xfc |
[AI] Unknown (race-specific state/control variable). More... | |
MxS32 | m_unk0x100 |
[AI] Unknown (race-specific state/control variable). More... | |
MxS32 | m_unk0x104 |
[AI] Unknown (race-specific state/control variable). More... | |
MxS32 | m_unk0x108 |
[AI] Unknown (race-specific state/control variable). More... | |
MxS32 | m_unk0x10c |
[AI] Unknown (race-specific state/control variable). More... | |
LegoRaceMap * | m_maps [3] |
[AI] Map objects used by this race (main, alternate, or lap variants). More... | |
LegoGameState::Area | m_destLocation |
[AI] Destination location (area to switch to after race/transition). More... | |
LegoPathActor * | m_pathActor |
[AI] User's path actor for the race event. More... | |
Act1State * | m_act1State |
[AI] Pointer to Act1State (first act/sequence logic). More... | |
MxStillPresenter * | m_unk0x128 |
[AI] Unknown, likely for presenting stills during race transitions or cutscenes. More... | |
MxStillPresenter * | m_unk0x12c |
[AI] Unknown, likely for presenting stills during race transitions or cutscenes. More... | |
MxRect32 | m_unk0x130 |
[AI] Unknown 32-bit rectangle, possible HUD/viewport region. More... | |
RaceState * | m_raceState |
[AI] Stores persistent race state/results for the race world instance. More... | |
![]() | |
LegoPathControllerList | m_pathControllerList |
List of all path controllers currently managing pathing in this world. More... | |
MxPresenterList | m_animPresenters |
List of active animation presenters (anims, hide/show, looping, etc.). More... | |
LegoCameraController * | m_cameraController |
Camera controller for world's main view. More... | |
LegoEntityList * | m_entityList |
List of all main world entities, such as actors and objects. More... | |
LegoCacheSoundList * | m_cacheSoundList |
List of cached sounds for faster access during this world's lifetime. More... | |
MxBool | m_destroyed |
Indicates if the world has been destroyed or is pending destruction. More... | |
MxCoreSet | m_set0xa8 |
Set of 'auxiliary' objects, including presenters, that aren't core entity or animation, but still must be managed. More... | |
MxPresenterList | m_controlPresenters |
List of control presenters (UI, input, cutscene control, etc.). More... | |
MxCoreSet | m_set0xd0 |
Set of currently paused/disconnected objects when world is disabled. More... | |
list< LegoROI * > | m_roiList |
List of all visible LegoROI objects in the world, used for rendering and selection. More... | |
LegoOmni::World | m_worldId |
Currently assigned world id, corresponding to an enum in LegoOmni. More... | |
LegoHideAnimPresenter * | m_hideAnim |
Animation presenter for ROI hide (vanish, fade, etc.) sequences. More... | |
MxS16 | m_startupTicks |
Current world startup tick countdown—controls staged world startup logic. More... | |
MxBool | m_worldStarted |
Indicates if the world has successfully started and is considered active. More... | |
undefined | m_unk0xf7 |
Unknown, probably flags or padding. 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 | StartupTicks { e_start = 0 , e_one , e_two , e_three , e_four } |
Ticks for world startup sequencing. 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... | |
![]() | |
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] Base class for all race-type LegoWorlds.
Implements common world logic for the game's various races (e.g., race event areas). Handles notification dispatch, enabling/disabling race logic, storing map state, and specialization for notification handlers.
Inherits from LegoWorld. [AI]
Definition at line 149 of file legorace.h.
LegoRace::LegoRace | ( | ) |
[AI] Default constructor.
Initializes all members and registers to notification and control managers. [AI]
Definition at line 18 of file legorace.cpp.
|
override |
[AI] Destructor.
Cleans up registration and resets user actor if set. [AI]
Definition at line 56 of file legorace.cpp.
|
inlineoverridevirtual |
[AI] Returns the runtime class name ("LegoRace") for type checks.
[AI]
Reimplemented from LegoEntity.
Definition at line 216 of file legorace.h.
|
overridevirtual |
[AI] Creates and initializes LegoRace world/logic for a DS action.
Registers the world, sets up user path actors, and provides Act1State linkage. [AI]
p_dsAction | Reference to MxDSAction for race setup. [AI] |
Reimplemented from LegoEntity.
Definition at line 40 of file legorace.cpp.
|
overridevirtual |
[AI] Enables or disables the race world and detaches the user actor if switching away.
[AI]
p_enable | TRUE to enable; FALSE disables and detaches user actor from the race. [AI] |
Reimplemented from LegoWorld.
Definition at line 102 of file legorace.cpp.
|
inlineoverridevirtual |
[AI] Handles Escape input, which is intentionally disabled in race states for legacy reasons.
[AI]
Reimplemented from LegoWorld.
Definition at line 210 of file legorace.h.
|
pure virtual |
[AI] Handles user click events within the race area.
Must be implemented by concrete subclasses. [AI]
event | Notification parameter describing the click context. [AI] |
Implemented in CarRace, and JetskiRace.
|
inlinevirtual |
[AI] Handles "end action" (e.g., finish line reached, cutscene ended) events for the race state logic.
[AI]
p_param | Notification parameter for the event. [AI] |
Reimplemented in CarRace, and JetskiRace.
Definition at line 204 of file legorace.h.
|
inlinevirtual |
[AI] Handles "path struct" notifications (such as map changes or logic triggers for race boundaries).
param | Details about the path struct event. [AI] |
Reimplemented in CarRace, and JetskiRace.
Definition at line 197 of file legorace.h.
|
inlinestatic |
[AI] Gets the handler class name string for this class ("LegoRace").
[AI]
Definition at line 172 of file legorace.h.
|
inlinevirtual |
[AI] Handles notification of type 0 (specific logic event), can be overridden for custom event processing.
param | Notification parameters describing the event. [AI] |
Reimplemented in CarRace.
Definition at line 236 of file legorace.h.
|
inlineoverridevirtual |
[AI] Runtime type check for this class (or parent LegoWorld).
[AI]
p_name | Runtime type string. |
Reimplemented from LegoEntity.
Definition at line 226 of file legorace.h.
[AI] Notification callback, dispatches events to various race handlers (click, end action, map struct, etc.) if the world is running.
Switches area on specific event type. [AI]
p_param | Notification/event parameter. [AI] |
Reimplemented from LegoEntity.
Definition at line 71 of file legorace.cpp.
|
inlineoverridevirtual |
[AI] Indicates that custom "VTable0x5c" logic is enabled (always TRUE for LegoRace, possibly to indicate tickle or update registration).
[AI]
Reimplemented from LegoWorld.
Definition at line 252 of file legorace.h.
|
inlinevirtual |
[AI] Associates a race map instance to the maps array at the given index.
Allows switching maps at runtime.
p_map | Map to assign to the slot. [AI] |
p_index | Index to set in array (0..2). [AI] |
Definition at line 243 of file legorace.h.
|
protected |
[AI] Pointer to Act1State (first act/sequence logic).
Definition at line 273 of file legorace.h.
|
protected |
[AI] Destination location (area to switch to after race/transition).
Definition at line 271 of file legorace.h.
|
protected |
[AI] Map objects used by this race (main, alternate, or lap variants).
Definition at line 270 of file legorace.h.
|
protected |
[AI] User's path actor for the race event.
Definition at line 272 of file legorace.h.
|
protected |
[AI] Stores persistent race state/results for the race world instance.
Definition at line 277 of file legorace.h.
|
protected |
[AI] Unknown (race-specific state/control variable).
Definition at line 266 of file legorace.h.
|
protected |
[AI] Unknown (race-specific state/control variable).
Definition at line 267 of file legorace.h.
|
protected |
[AI] Unknown (race-specific state/control variable).
Definition at line 268 of file legorace.h.
|
protected |
[AI] Unknown (race-specific state/control variable).
Definition at line 269 of file legorace.h.
|
protected |
[AI] Unknown, likely for presenting stills during race transitions or cutscenes.
Definition at line 274 of file legorace.h.
|
protected |
[AI] Unknown, likely for presenting stills during race transitions or cutscenes.
Definition at line 275 of file legorace.h.
|
protected |
[AI] Unknown 32-bit rectangle, possible HUD/viewport region.
Definition at line 276 of file legorace.h.
|
protected |
[AI] Unknown (race-specific state/control variable).
Definition at line 264 of file legorace.h.
|
protected |
[AI] Unknown (race-specific state/control variable).
Definition at line 265 of file legorace.h.