|
Isle
|
Implements the world and game logic for Act 2. More...
#include <legoact2.h>


Public Member Functions | |
| LegoAct2 () | |
| Constructor, initializes all members and registers to the notification manager. More... | |
| ~LegoAct2 () override | |
| Destructor. More... | |
| MxLong | Notify (MxParam &p_param) override |
| Handles incoming notifications dispatched by the notification system. More... | |
| MxResult | Tickle () override |
| Main update tick for Act 2. More... | |
| MxResult | Create (MxDSAction &p_dsAction) override |
| Creates and initializes this world object using a DSAction. More... | |
| void | ReadyWorld () override |
| Prepares the world for player interaction, resumes animation, registers tickle, etc. More... | |
| MxBool | VTable0x5c () override |
| Always returns TRUE: internal state-check used by engine. More... | |
| void | VTable0x60 () override |
| Unused; placeholder for possible extension. More... | |
| MxBool | Escape () override |
| Handles the Escape (quit/abort) action, stops audio/cutscene/cleans up state. More... | |
| void | Enable (MxBool p_enable) override |
| Enables or disables the Act 2 world and logic. More... | |
| void | SetUnknown0x1138 (Act2Actor *p_unk0x1138) |
| Sets the Act2Actor instance (main NPC or controller) used within Act2 logic. More... | |
| void | SetDestLocation (LegoGameState::Area p_destLocation) |
| Sets the destination location for area transition upon completion. More... | |
| MxResult | FUN_100516b0 () |
| Spawns the next collectible brick at its position and plays associated animation if possible. More... | |
| void | FUN_100517b0 () |
| Spawns the next brick and triggers sound/whistle for the new brick. More... | |
| MxResult | BadEnding () |
| Handles the "bad ending" sequence for Act 2. More... | |
| MxResult | FUN_10052560 (Act2mainScript::Script p_objectId, MxBool p_param2, MxBool p_param3, Mx3DPointFloat *p_location, Mx3DPointFloat *p_direction, Mx3DPointFloat *p_param6) |
| Plays an animation (or cutscene) at optional location/direction in world space. More... | |
Public Member Functions inherited from LegoWorld | |
| 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... | |
Public Member Functions inherited from LegoEntity | |
| 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... | |
Public Member Functions inherited from MxEntity | |
| 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... | |
Public Member Functions inherited from MxCore | |
| 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 | |
Public Types inherited from LegoWorld | |
| enum | StartupTicks { e_start = 0 , e_one , e_two , e_three , e_four } |
| Ticks for world startup sequencing. More... | |
Public Types inherited from LegoEntity | |
| 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... | |
Protected Member Functions inherited from LegoEntity | |
| 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 inherited from LegoWorld | |
| 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... | |
Protected Attributes inherited from LegoEntity | |
| 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... | |
Protected Attributes inherited from MxEntity | |
| 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... | |
Implements the world and game logic for Act 2.
[AI]
LegoAct2 is a subclass of LegoWorld and manages all logic, scripting, entities, and scene transitions for the second act of the game storyline. [AI]
Handles initialization, tick-based updates, notification handling, cutscenes/animations, entity/boundary management, music, and more. [AI]
Definition at line 98 of file legoact2.h.
| LegoAct2::LegoAct2 | ( | ) |
Constructor, initializes all members and registers to the notification manager.
[AI]
Definition at line 75 of file legoact2.cpp.
|
override |
Destructor.
Handles unregistering from managers and cleanup. [AI]
Definition at line 97 of file legoact2.cpp.
| MxResult LegoAct2::BadEnding | ( | ) |
Handles the "bad ending" sequence for Act 2.
[AI]
Removes all bricks, disables main actor, marks transition for return to main area. [AI]
Definition at line 927 of file legoact2.cpp.
|
overridevirtual |
Creates and initializes this world object using a DSAction.
[AI]
| p_dsAction | Reference to the data source action. [AI] |
Also sets up the game state, area info, and initial registration for input and managers. [AI]
Reimplemented from LegoEntity.
Definition at line 114 of file legoact2.cpp.
|
overridevirtual |
Enables or disables the Act 2 world and logic.
[AI]
| p_enable | TRUE to activate, FALSE to suspend/cleanup. [AI] |
Activates or deactivates tickle, managers, updates music, and restores state as needed. [AI]
Reimplemented from LegoWorld.
Definition at line 523 of file legoact2.cpp.
|
overridevirtual |
Handles the Escape (quit/abort) action, stops audio/cutscene/cleans up state.
[AI]
Reimplemented from LegoWorld.
Definition at line 753 of file legoact2.cpp.
| MxResult LegoAct2::FUN_100516b0 | ( | ) |
Spawns the next collectible brick at its position and plays associated animation if possible.
[AI]
Handles brick increment and state progression logic. [AI]
Definition at line 658 of file legoact2.cpp.
| void LegoAct2::FUN_100517b0 | ( | ) |
Spawns the next brick and triggers sound/whistle for the new brick.
[AI]
Used in brick collection sequences. [AI]
Definition at line 682 of file legoact2.cpp.
| MxResult LegoAct2::FUN_10052560 | ( | Act2mainScript::Script | p_objectId, |
| MxBool | p_param2, | ||
| MxBool | p_param3, | ||
| Mx3DPointFloat * | p_location, | ||
| Mx3DPointFloat * | p_direction, | ||
| Mx3DPointFloat * | p_param6 | ||
| ) |
Plays an animation (or cutscene) at optional location/direction in world space.
[AI]
| p_objectId | Animation/cutscene script object id. [AI] |
| p_param2 | Determines path/animation playing logic (true/false). [AI] |
| p_param3 | Override flag for repeated/optional actions. [AI] |
| p_location | Optional pointer to world location. [AI] |
| p_direction | Optional pointer to direction vector. [AI] |
| p_param6 | Optional pointer for up vector(?). [AI] |
Prepares and plays script/animation based on parameters, using DSAction or direct animations. [AI]
Definition at line 1091 of file legoact2.cpp.
Handles incoming notifications dispatched by the notification system.
[AI]
| p_param | Notification/event parameter structure. [AI] |
Handles EndAction, PathStruct and other notifications. [AI]
Reimplemented from MxCore.
Definition at line 268 of file legoact2.cpp.
|
overridevirtual |
Prepares the world for player interaction, resumes animation, registers tickle, etc.
[AI]
Sets up initial camera, spawns player, scene, music, managers, etc. [AI]
Reimplemented from LegoWorld.
Definition at line 477 of file legoact2.cpp.
|
inline |
Sets the destination location for area transition upon completion.
[AI]
| p_destLocation | Target area enum value. [AI] |
Definition at line 170 of file legoact2.h.
|
inline |
Sets the Act2Actor instance (main NPC or controller) used within Act2 logic.
[AI]
| p_unk0x1138 | Pointer to the Act2Actor instance. [AI] |
Definition at line 164 of file legoact2.h.
|
overridevirtual |
Main update tick for Act 2.
[AI]
Contains the core step-wise logic, particularly state transitions during cutscenes, handling random events and progress. [AI]
Reimplemented from MxCore.
Definition at line 160 of file legoact2.cpp.
|
inlineoverridevirtual |
Always returns TRUE: internal state-check used by engine.
[AI]
Reimplemented from LegoWorld.
Definition at line 140 of file legoact2.h.
|
overridevirtual |
Unused; placeholder for possible extension.
[AI]
Reimplemented from LegoWorld.
Definition at line 747 of file legoact2.cpp.