Isle
Loading...
Searching...
No Matches
Act3 Class Reference

[AI] Controls all main logic and progression of Act 3 in LEGO Island, including objects, cutscenes, enemy and player actors, and event scheduling. More...

#include <act3.h>

Inheritance diagram for Act3:
Collaboration diagram for Act3:

Public Member Functions

 Act3 ()
 [AI] Initializes all mission-critical actors, resets world state, and sets up notification and navigation. More...
 
 ~Act3 () override
 [AI] Cleans up world and unregisters from notifications, frees all owned data. More...
 
MxLong Notify (MxParam &p_param) override
 [AI] Handles notifications from other systems (animation, transition, audio, etc.). More...
 
MxResult Tickle () override
 [AI] Main tick/update—called on each game loop iteration to update state, advance animations, and sync objects. More...
 
MxBool VTable0x5c () override
 [AI] Always returns TRUE, notifies higher-level logic that Act 3 is always enabled for handing VTable0x5c queries. More...
 
const char * ClassName () const override
 [AI] Returns the class name string. More...
 
MxBool IsA (const char *p_name) const override
 [AI] Checks if the class name matches this class or any parent class. More...
 
MxResult Create (MxDSAction &p_dsAction) override
 [AI] World instancing method; sets up actors and notifies managers of state change. More...
 
void Destroy (MxBool p_fromDestructor) override
 [AI] Teardown logic for Act 3, unregisters from world and resets navigation/input. More...
 
void ReadyWorld () override
 [AI] Called when transitioning into Act 3; triggers state setup and intro animation/missions. More...
 
void VTable0x60 () override
 [AI] Empty implementation for Act3-specific state logic; present for interface fulfillment. More...
 
MxBool Escape () override
 [AI] Handles "escape" action (user attempts to leave/quit Act 3); cleans up state and halts audio/animation. More...
 
void Enable (MxBool p_enable) override
 [AI] Enables/Disables the world, handling time shifting/resume logic for all major actors in Act3. More...
 
void SetHelicopter (Helicopter *p_copter)
 [AI] Sets helicopter reference for main mission. More...
 
void SetShark (Act3Shark *p_shark)
 [AI] Sets Act3Shark reference for the current encounter. More...
 
void SetDestLocation (LegoGameState::Area p_destLocation)
 [AI] Sets the destination area/location for the next world switch. More...
 
void EatPizza (MxS32 p_index)
 [AI] Simulates eating (removing) a pizza from the world at the given index. More...
 
void EatDonut (MxS32 p_index)
 [AI] Simulates eating (removing) a donut from the world at the given index. More...
 
void RemovePizza (Act3Ammo &p_p)
 [AI] Removes given pizza actor and performs associated logic. More...
 
void RemoveDonut (Act3Ammo &p_p)
 [AI] Removes given donut actor and performs associated logic. More...
 
MxResult ShootPizza (LegoPathController *p_controller, Vector3 &p_location, Vector3 &p_direction, Vector3 &p_up)
 [AI] Attempts to launch a pizza as a projectile using the given controller and initial transform. More...
 
MxResult ShootDonut (LegoPathController *p_controller, Vector3 &p_location, Vector3 &p_direction, Vector3 &p_up)
 [AI] Attempts to launch a donut as a projectile using the given controller and initial transform. More...
 
void FUN_10072ad0 (undefined4 p_param1)
 [AI] Triggers special sequence actions or sounds depending on the provided param; cycles through queues. More...
 
MxResult FUN_10073360 (Act3Ammo &p_ammo, const Vector3 &p_param2)
 [AI] Triggers script/animation effects on the brickster for pizzas that impact him. More...
 
MxResult FUN_10073390 (Act3Ammo &p_ammo, const Vector3 &p_param2)
 [AI] Triggers script/animation effects on cops for donuts that impact them. More...
 
void SetBrickster (Act3Brickster *p_brickster)
 [AI] Sets the reference to the Brickster actor in this Act3 instance. More...
 
void AddCop (Act3Cop *p_cop)
 [AI] Registers a new cop, assigning to cop1 or cop2 as appropriate. More...
 
void FUN_10073400 ()
 [AI] Moves Act3 and its state to next step/action in custom sequence (used for in-game cutscene transitions). More...
 
void FUN_10073430 ()
 [AI] Moves Act3 and its state to a different step/action in custom sequence (used for in-game cutscene transitions). More...
 
void GoodEnding (const Matrix4 &p_destination)
 [AI] Handles victory logic for Act3 (good ending); disables enemy actors, clears lists, triggers copter animation to destination. More...
 
void BadEnding (const Matrix4 &p_destination)
 [AI] Handles loss logic for Act3 (bad ending); disables enemy actors, clears lists, triggers copter animation. More...
 
void FUN_10073a60 ()
 [AI] Removes one helicopter dot from the HUD, used when the copter progresses or an event is triggered. 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 LegoCameraControllerVTable0x54 ()
 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...
 
LegoPathBoundaryFindPathBoundary (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...
 
MxCoreFind (const char *p_class, const char *p_name)
 Finds an object of a given class and name in the world. More...
 
MxCoreFind (const MxAtomId &p_atom, MxS32 p_entityId)
 Finds an object in the world by its atom id and entity id. More...
 
LegoCameraControllerGetCameraController ()
 Returns the current camera controller for the world. More...
 
LegoEntityListGetEntityList ()
 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...
 
LegoHideAnimPresenterGetHideAnimPresenter ()
 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...
 
LegoROIGetROI ()
 [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...
 
MxAtomIdGetAtomId ()
 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...
 

Protected Member Functions

MxLong HandleTransitionEnd ()
 [AI] Handles logic when a world/area transition is completed. 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...
 

Static Protected Member Functions

static void DebugPrintf (const char *p_format,...)
 [AI] Debug utility, outputs formatted diagnostic messages for Act3 copter and world state. More...
 
static void DebugCopter (const Matrix4 &p_copter, const Matrix4 &p_destination, const Matrix4 &p_startPosition, const Matrix4 &p_endPosition, const MxQuaternionTransformer &p_quatTransform)
 [AI] Debugs world matrices and quaternion transforms for helicopter camera/final animation. More...
 

Protected Attributes

Act3Statem_state
 [AI] Current persistent Act3 state (progress flags, etc.). More...
 
Act3Ammo m_pizzas [MAX_PIZZAS]
 [AI] All possible pizza projectiles/instances in flight for this sequence. More...
 
Act3Ammo m_donuts [MAX_DONUTS]
 [AI] All possible donuts in flight/active for Act3's special logic. More...
 
undefined m_unk0x41fc
 [AI] General flag, possibly "started" or "initialized". [AI_SUGGESTED_NAME: m_started] More...
 
Act3Copm_cop1
 [AI] First cop involved in sequence (player/AI). More...
 
Act3Copm_cop2
 [AI] Second cop, instantiated when both are present. More...
 
Act3Bricksterm_brickster
 [AI] Main antagonist. More...
 
Helicopterm_copter
 [AI] Player's helicopter, main vehicle. More...
 
Act3Sharkm_shark
 [AI] Shark entity in the world, for special chase/attack scenes. More...
 
MxFloat m_time
 [AI] Used to track the time when Act3 was paused, and for actor resynchronization. More...
 
MxU8 m_unk0x4218
 [AI] Index/counter for the first event-queue or script sequence. [AI_SUGGESTED_NAME: m_scriptIndex1] More...
 
MxU8 m_unk0x4219
 [AI] Index/counter for the second event-queue or script sequence. [AI_SUGGESTED_NAME: m_scriptIndex2] More...
 
MxU8 m_unk0x421a
 [AI] Index/counter for third event-queue or script sequence. [AI_SUGGESTED_NAME: m_scriptIndex3] More...
 
MxU8 m_unk0x421b
 [AI] Index/counter for fourth event-queue or script sequence. [AI_SUGGESTED_NAME: m_scriptIndex4] More...
 
MxU8 m_unk0x421c
 [AI] Index/counter for fifth event-queue or script sequence. [AI_SUGGESTED_NAME: m_scriptIndex5] More...
 
MxU8 m_unk0x421d
 [AI] Index/counter for sixth event-queue or script sequence. [AI_SUGGESTED_NAME: m_scriptIndex6] More...
 
undefined m_unk0x421e
 [AI] Stores number of helicopter "dot" items to show on the HUD, decremented for bad/good ending. [AI_SUGGESTED_NAME: m_helicopterDotCount] More...
 
Act3List m_unk0x4220
 [AI] Main queue/list for triggering and removing queued scripted actions. [AI_SUGGESTED_NAME: m_actionQueue] More...
 
MxPresenterm_helicopterDots [15]
 [AI] Visual indicators for helicopter progress/UI. More...
 
Act3Script::Script m_unk0x426c
 [AI] Current animation or script in progress (for intro/finale). [AI_SUGGESTED_NAME: m_currentScript] More...
 
LegoGameState::Area m_destLocation
 [AI] Target world/area to switch to upon transition. Used for story progression. 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...
 
LegoCameraControllerm_cameraController
 Camera controller for world's main view. More...
 
LegoEntityListm_entityList
 List of all main world entities, such as actors and objects. More...
 
LegoCacheSoundListm_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...
 
LegoHideAnimPresenterm_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...
 
LegoROIm_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...
 

Friends

class Act3Ammo
 
class Act3Brickster
 
class Act3Cop
 
class Act3Shark
 

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...
 

Detailed Description

[AI] Controls all main logic and progression of Act 3 in LEGO Island, including objects, cutscenes, enemy and player actors, and event scheduling.

Derives from LegoWorld. Manages state progression, scripted events, player/AI interaction, special actions, win/loss logic, and event synchronization. Acts as a controller for main sequence, tracks and manages special actors (cop, brickster, shark, helicopter), their states, and all in-world objects like pizzas/donuts.

SIZE 0x4274

Definition at line 182 of file act3.h.

Constructor & Destructor Documentation

◆ Act3()

Act3::Act3 ( )

[AI] Initializes all mission-critical actors, resets world state, and sets up notification and navigation.

Definition at line 225 of file act3.cpp.

◆ ~Act3()

Act3::~Act3 ( )
override

[AI] Cleans up world and unregisters from notifications, frees all owned data.

Definition at line 246 of file act3.cpp.

Member Function Documentation

◆ AddCop()

void Act3::AddCop ( Act3Cop p_cop)

[AI] Registers a new cop, assigning to cop1 or cop2 as appropriate.

Parameters
p_copCop pointer. [AI]

Definition at line 728 of file act3.cpp.

◆ BadEnding()

void Act3::BadEnding ( const Matrix4 p_destination)

[AI] Handles loss logic for Act3 (bad ending); disables enemy actors, clears lists, triggers copter animation.

Parameters
p_destinationMatrix for bad ending copter path. [AI]

Definition at line 842 of file act3.cpp.

◆ ClassName()

const char * Act3::ClassName ( ) const
inlineoverridevirtual

[AI] Returns the class name string.

Returns
[AI] "Act3"

Reimplemented from MxCore.

Definition at line 218 of file act3.h.

◆ Create()

MxResult Act3::Create ( MxDSAction p_dsAction)
overridevirtual

[AI] World instancing method; sets up actors and notifies managers of state change.

Also handles Act 2 → Act 3 logic.

Parameters
p_dsActionScripted action/context used during creation. [AI]
Returns
[AI] SUCCESS or FAILURE

Reimplemented from LegoEntity.

Definition at line 469 of file act3.cpp.

◆ DebugCopter()

void Act3::DebugCopter ( const Matrix4 p_copter,
const Matrix4 p_destination,
const Matrix4 p_startPosition,
const Matrix4 p_endPosition,
const MxQuaternionTransformer p_quatTransform 
)
staticprotected

[AI] Debugs world matrices and quaternion transforms for helicopter camera/final animation.

Parameters
p_copterCopter matrix [AI].
p_destinationDestination matrix [AI].
p_startPositionStart pos matrix [AI].
p_endPositionEnd pos matrix [AI].
p_quatTransformQuaternion transformer [AI].

Definition at line 791 of file act3.cpp.

◆ DebugPrintf()

void Act3::DebugPrintf ( const char *  p_format,
  ... 
)
staticprotected

[AI] Debug utility, outputs formatted diagnostic messages for Act3 copter and world state.

Parameters
p_formatprintf-like format string [AI].
...Variadic arguments for format [AI].

Definition at line 785 of file act3.cpp.

◆ Destroy()

void Act3::Destroy ( MxBool  p_fromDestructor)
overridevirtual

[AI] Teardown logic for Act 3, unregisters from world and resets navigation/input.

Parameters
p_fromDestructorTRUE if called from the destructor path. [AI]

Reimplemented from LegoEntity.

Definition at line 516 of file act3.cpp.

◆ EatDonut()

void Act3::EatDonut ( MxS32  p_index)

[AI] Simulates eating (removing) a donut from the world at the given index.

Parameters
p_indexIndex of donut in list [AI].

Definition at line 263 of file act3.cpp.

◆ EatPizza()

void Act3::EatPizza ( MxS32  p_index)

[AI] Simulates eating (removing) a pizza from the world at the given index.

Parameters
p_indexIndex of pizza in list [AI].

Definition at line 255 of file act3.cpp.

◆ Enable()

void Act3::Enable ( MxBool  p_enable)
overridevirtual

[AI] Enables/Disables the world, handling time shifting/resume logic for all major actors in Act3.

Parameters
p_enableTRUE to enable, FALSE to pause/freeze. [AI]

[AI] Syncs/holds actor clocks, registers/deregisters input, and handles background music.

Reimplemented from LegoWorld.

Definition at line 871 of file act3.cpp.

◆ Escape()

MxBool Act3::Escape ( )
overridevirtual

[AI] Handles "escape" action (user attempts to leave/quit Act 3); cleans up state and halts audio/animation.

Returns
[AI] TRUE, always considered successful.

Reimplemented from LegoWorld.

Definition at line 958 of file act3.cpp.

◆ FUN_10072ad0()

void Act3::FUN_10072ad0 ( undefined4  p_param1)

[AI] Triggers special sequence actions or sounds depending on the provided param; cycles through queues.

Parameters
p_param1Selection index for the particular action series. [AI]

Definition at line 406 of file act3.cpp.

◆ FUN_10073360()

MxResult Act3::FUN_10073360 ( Act3Ammo p_ammo,
const Vector3 p_param2 
)

[AI] Triggers script/animation effects on the brickster for pizzas that impact him.

Parameters
p_ammoReference to impacting ammo. [AI]
p_param2Impact point/direction. [AI]
Returns
[AI] SUCCESS

Definition at line 700 of file act3.cpp.

◆ FUN_10073390()

MxResult Act3::FUN_10073390 ( Act3Ammo p_ammo,
const Vector3 p_param2 
)

[AI] Triggers script/animation effects on cops for donuts that impact them.

Parameters
p_ammoReference to impacting ammo. [AI]
p_param2Impact point/direction. [AI]
Returns
[AI] SUCCESS

Definition at line 710 of file act3.cpp.

◆ FUN_10073400()

void Act3::FUN_10073400 ( )

[AI] Moves Act3 and its state to next step/action in custom sequence (used for in-game cutscene transitions).

Definition at line 746 of file act3.cpp.

◆ FUN_10073430()

void Act3::FUN_10073430 ( )

[AI] Moves Act3 and its state to a different step/action in custom sequence (used for in-game cutscene transitions).

Definition at line 754 of file act3.cpp.

◆ FUN_10073a60()

void Act3::FUN_10073a60 ( )

[AI] Removes one helicopter dot from the HUD, used when the copter progresses or an event is triggered.

Definition at line 864 of file act3.cpp.

◆ GoodEnding()

void Act3::GoodEnding ( const Matrix4 p_destination)

[AI] Handles victory logic for Act3 (good ending); disables enemy actors, clears lists, triggers copter animation to destination.

Parameters
p_destinationMatrix specifying world destination for copter. [AI]

Definition at line 763 of file act3.cpp.

◆ HandleTransitionEnd()

MxLong Act3::HandleTransitionEnd ( )
protected

[AI] Handles logic when a world/area transition is completed.

Returns
[AI] Typically 1 to indicate transition handling complete.

Definition at line 654 of file act3.cpp.

◆ IsA()

MxBool Act3::IsA ( const char *  p_name) const
inlineoverridevirtual

[AI] Checks if the class name matches this class or any parent class.

Parameters
p_nameClass name to check for. [AI]
Returns
[AI] TRUE if matches this class or any LegoWorld class.

Reimplemented from MxCore.

Definition at line 228 of file act3.h.

◆ Notify()

MxLong Act3::Notify ( MxParam p_param)
overridevirtual

[AI] Handles notifications from other systems (animation, transition, audio, etc.).

Parameters
p_paramNotification payload and type. [AI]
Returns
[AI] Return value is used to indicate if Act3 handled the event.

[AI] Used especially for synchronization between cutscenes, user input state, and state transitions.

Reimplemented from MxCore.

Definition at line 542 of file act3.cpp.

◆ ReadyWorld()

void Act3::ReadyWorld ( )
overridevirtual

[AI] Called when transitioning into Act 3; triggers state setup and intro animation/missions.

Reimplemented from LegoWorld.

Definition at line 665 of file act3.cpp.

◆ RemoveDonut()

void Act3::RemoveDonut ( Act3Ammo p_p)

[AI] Removes given donut actor and performs associated logic.

Parameters
p_pDonut ammo reference [AI].

Definition at line 290 of file act3.cpp.

◆ RemovePizza()

void Act3::RemovePizza ( Act3Ammo p_p)

[AI] Removes given pizza actor and performs associated logic.

Parameters
p_pPizza ammo reference [AI].

Definition at line 271 of file act3.cpp.

◆ SetBrickster()

void Act3::SetBrickster ( Act3Brickster p_brickster)

[AI] Sets the reference to the Brickster actor in this Act3 instance.

Parameters
p_bricksterBrickster pointer. [AI]

Definition at line 740 of file act3.cpp.

◆ SetDestLocation()

void Act3::SetDestLocation ( LegoGameState::Area  p_destLocation)
inline

[AI] Sets the destination area/location for the next world switch.

Parameters
p_destLocationGameState Area enumeration [AI].

Definition at line 285 of file act3.h.

◆ SetHelicopter()

void Act3::SetHelicopter ( Helicopter p_copter)
inline

[AI] Sets helicopter reference for main mission.

Parameters
p_copterHelicopter instance pointer. [AI]

Definition at line 273 of file act3.h.

◆ SetShark()

void Act3::SetShark ( Act3Shark p_shark)
inline

[AI] Sets Act3Shark reference for the current encounter.

Parameters
p_sharkShark entity pointer. [AI]

Definition at line 279 of file act3.h.

◆ ShootDonut()

MxResult Act3::ShootDonut ( LegoPathController p_controller,
Vector3 p_location,
Vector3 p_direction,
Vector3 p_up 
)

[AI] Attempts to launch a donut as a projectile using the given controller and initial transform.

Parameters
p_controllerPath controller for movement. [AI]
p_locationSpawn location. [AI]
p_directionLaunch direction. [AI]
p_upUp vector for the spawn. [AI]
Returns
[AI] SUCCESS if launched, FAILURE otherwise.

Definition at line 365 of file act3.cpp.

◆ ShootPizza()

MxResult Act3::ShootPizza ( LegoPathController p_controller,
Vector3 p_location,
Vector3 p_direction,
Vector3 p_up 
)

[AI] Attempts to launch a pizza as a projectile using the given controller and initial transform.

Parameters
p_controllerPath controller providing trajectory. [AI]
p_locationWorld location to spawn at. [AI]
p_directionWorld direction vector. [AI]
p_upWorld up vector. [AI]
Returns
[AI] SUCCESS if a slot was available and launched, FAILURE otherwise.

Definition at line 309 of file act3.cpp.

◆ Tickle()

MxResult Act3::Tickle ( )
overridevirtual

[AI] Main tick/update—called on each game loop iteration to update state, advance animations, and sync objects.

Returns
[AI] SUCCESS always, but actual return type expresses state of tick.

Reimplemented from MxCore.

Definition at line 680 of file act3.cpp.

◆ VTable0x5c()

MxBool Act3::VTable0x5c ( )
inlineoverridevirtual

[AI] Always returns TRUE, notifies higher-level logic that Act 3 is always enabled for handing VTable0x5c queries.

Returns
[AI] TRUE

Reimplemented from LegoWorld.

Definition at line 212 of file act3.h.

◆ VTable0x60()

void Act3::VTable0x60 ( )
overridevirtual

[AI] Empty implementation for Act3-specific state logic; present for interface fulfillment.

Reimplemented from LegoWorld.

Definition at line 952 of file act3.cpp.

Friends And Related Function Documentation

◆ Act3Ammo

friend class Act3Ammo
friend

Definition at line 396 of file act3.h.

◆ Act3Brickster

friend class Act3Brickster
friend

Definition at line 397 of file act3.h.

◆ Act3Cop

friend class Act3Cop
friend

Definition at line 398 of file act3.h.

◆ Act3Shark

friend class Act3Shark
friend

Definition at line 399 of file act3.h.

Member Data Documentation

◆ m_brickster

Act3Brickster* Act3::m_brickster
protected

[AI] Main antagonist.

Definition at line 437 of file act3.h.

◆ m_cop1

Act3Cop* Act3::m_cop1
protected

[AI] First cop involved in sequence (player/AI).

Definition at line 435 of file act3.h.

◆ m_cop2

Act3Cop* Act3::m_cop2
protected

[AI] Second cop, instantiated when both are present.

Definition at line 436 of file act3.h.

◆ m_copter

Helicopter* Act3::m_copter
protected

[AI] Player's helicopter, main vehicle.

Definition at line 438 of file act3.h.

◆ m_destLocation

LegoGameState::Area Act3::m_destLocation
protected

[AI] Target world/area to switch to upon transition. Used for story progression.

Definition at line 451 of file act3.h.

◆ m_donuts

Act3Ammo Act3::m_donuts[MAX_DONUTS]
protected

[AI] All possible donuts in flight/active for Act3's special logic.

Definition at line 433 of file act3.h.

◆ m_helicopterDots

MxPresenter* Act3::m_helicopterDots[15]
protected

[AI] Visual indicators for helicopter progress/UI.

Definition at line 449 of file act3.h.

◆ m_pizzas

Act3Ammo Act3::m_pizzas[MAX_PIZZAS]
protected

[AI] All possible pizza projectiles/instances in flight for this sequence.

Definition at line 432 of file act3.h.

◆ m_shark

Act3Shark* Act3::m_shark
protected

[AI] Shark entity in the world, for special chase/attack scenes.

Definition at line 439 of file act3.h.

◆ m_state

Act3State* Act3::m_state
protected

[AI] Current persistent Act3 state (progress flags, etc.).

Definition at line 431 of file act3.h.

◆ m_time

MxFloat Act3::m_time
protected

[AI] Used to track the time when Act3 was paused, and for actor resynchronization.

Definition at line 440 of file act3.h.

◆ m_unk0x41fc

undefined Act3::m_unk0x41fc
protected

[AI] General flag, possibly "started" or "initialized". [AI_SUGGESTED_NAME: m_started]

Definition at line 434 of file act3.h.

◆ m_unk0x4218

MxU8 Act3::m_unk0x4218
protected

[AI] Index/counter for the first event-queue or script sequence. [AI_SUGGESTED_NAME: m_scriptIndex1]

Definition at line 441 of file act3.h.

◆ m_unk0x4219

MxU8 Act3::m_unk0x4219
protected

[AI] Index/counter for the second event-queue or script sequence. [AI_SUGGESTED_NAME: m_scriptIndex2]

Definition at line 442 of file act3.h.

◆ m_unk0x421a

MxU8 Act3::m_unk0x421a
protected

[AI] Index/counter for third event-queue or script sequence. [AI_SUGGESTED_NAME: m_scriptIndex3]

Definition at line 443 of file act3.h.

◆ m_unk0x421b

MxU8 Act3::m_unk0x421b
protected

[AI] Index/counter for fourth event-queue or script sequence. [AI_SUGGESTED_NAME: m_scriptIndex4]

Definition at line 444 of file act3.h.

◆ m_unk0x421c

MxU8 Act3::m_unk0x421c
protected

[AI] Index/counter for fifth event-queue or script sequence. [AI_SUGGESTED_NAME: m_scriptIndex5]

Definition at line 445 of file act3.h.

◆ m_unk0x421d

MxU8 Act3::m_unk0x421d
protected

[AI] Index/counter for sixth event-queue or script sequence. [AI_SUGGESTED_NAME: m_scriptIndex6]

Definition at line 446 of file act3.h.

◆ m_unk0x421e

undefined Act3::m_unk0x421e
protected

[AI] Stores number of helicopter "dot" items to show on the HUD, decremented for bad/good ending. [AI_SUGGESTED_NAME: m_helicopterDotCount]

Definition at line 447 of file act3.h.

◆ m_unk0x4220

Act3List Act3::m_unk0x4220
protected

[AI] Main queue/list for triggering and removing queued scripted actions. [AI_SUGGESTED_NAME: m_actionQueue]

Definition at line 448 of file act3.h.

◆ m_unk0x426c

Act3Script::Script Act3::m_unk0x426c
protected

[AI] Current animation or script in progress (for intro/finale). [AI_SUGGESTED_NAME: m_currentScript]

Definition at line 450 of file act3.h.


The documentation for this class was generated from the following files: