413 static void DebugPrintf(
const char* p_format, ...);
426 const Matrix4& p_startPosition,
#define MAX_DONUTS
[AI] Maximum number of donuts that can be handled in Act 3 logic.
#define MAX_PIZZAS
[AI] Maximum number of pizzas that can be handled in Act 3 logic.
Represents an ammo object (pizza or donut) used in Act 3 gameplay sequence.
[AI] Represents the Brickster actor in Act 3, with AI and scene logic for stealing pizzas and causing...
[AI] Represents a police officer actor in Act 3, supporting specific cop AI actions,...
[AI] A custom intrusive list for handling state machine or scheduled actions/events during Act 3 sequ...
Act3List()
[AI] Constructor, initializes the guarded flag to zero.
void FUN_10071fa0()
[AI] Internal removal method for the first element, wraps a deletion and triggers any necessary clean...
void Insert(MxS32 p_objectId, MxS32 p_option)
[AI] Inserts a new element, and conditionally triggers associated script actions or events depending ...
void FUN_100720d0(MxU32 p_objectId)
[AI] Removes an element either by objectId or from the front of the list, and updates queue state boo...
void Clear()
[AI] Removes all elements, triggers associated clean-up actions, and stops background audio.
[AI] Represents the shark actor for Act 3 of the LEGO Island game.
[AI] Holds persistent state and status variables for Act 3 mission, saved between world reloads and p...
undefined4 GetUnknown0x08()
[AI] Getter for the (unknown) main status variable.
undefined4 m_unk0x08
[AI] Unknown persistent field holding an instruction/state flag.
const char * ClassName() const override
[AI] Returns class name for RTTI string matching.
Act3State()
[AI] Initializes additional persistent status fields.
MxBool IsSerializable() override
[AI] Indicates whether this state is serializable to disk or not.
MxBool IsA(const char *p_name) const override
[AI] Checks if the class name matches a given string or any parent class.
[AI] Controls all main logic and progression of Act 3 in LEGO Island, including objects,...
Act3Cop * m_cop2
[AI] Second cop, instantiated when both are present.
MxBool IsA(const char *p_name) const override
[AI] Checks if the class name matches this class or any parent class.
void EatPizza(MxS32 p_index)
[AI] Simulates eating (removing) a pizza from the world at the given index.
void Enable(MxBool p_enable) override
[AI] Enables/Disables the world, handling time shifting/resume logic for all major actors in Act3.
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.
MxU8 m_unk0x421d
[AI] Index/counter for sixth event-queue or script sequence. [AI_SUGGESTED_NAME: m_scriptIndex6]
const char * ClassName() const override
[AI] Returns the class name string.
Act3Script::Script m_unk0x426c
[AI] Current animation or script in progress (for intro/finale). [AI_SUGGESTED_NAME: m_currentScript]
MxLong HandleTransitionEnd()
[AI] Handles logic when a world/area transition is completed.
~Act3() override
[AI] Cleans up world and unregisters from notifications, frees all owned data.
MxResult Tickle() override
[AI] Main tick/update—called on each game loop iteration to update state, advance animations,...
void VTable0x60() override
[AI] Empty implementation for Act3-specific state logic; present for interface fulfillment.
MxU8 m_unk0x421a
[AI] Index/counter for third event-queue or script sequence. [AI_SUGGESTED_NAME: m_scriptIndex3]
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.
MxU8 m_unk0x421c
[AI] Index/counter for fifth event-queue or script sequence. [AI_SUGGESTED_NAME: m_scriptIndex5]
void FUN_10073430()
[AI] Moves Act3 and its state to a different step/action in custom sequence (used for in-game cutscen...
static void DebugPrintf(const char *p_format,...)
[AI] Debug utility, outputs formatted diagnostic messages for Act3 copter and world state.
MxU8 m_unk0x421b
[AI] Index/counter for fourth event-queue or script sequence. [AI_SUGGESTED_NAME: m_scriptIndex4]
Act3State * m_state
[AI] Current persistent Act3 state (progress flags, etc.).
void Destroy(MxBool p_fromDestructor) override
[AI] Teardown logic for Act 3, unregisters from world and resets navigation/input.
Act3Ammo m_pizzas[MAX_PIZZAS]
[AI] All possible pizza projectiles/instances in flight for this sequence.
void SetHelicopter(Helicopter *p_copter)
[AI] Sets helicopter reference for main mission.
MxResult FUN_10073390(Act3Ammo &p_ammo, const Vector3 &p_param2)
[AI] Triggers script/animation effects on cops for donuts that impact them.
void SetShark(Act3Shark *p_shark)
[AI] Sets Act3Shark reference for the current encounter.
MxBool Escape() override
[AI] Handles "escape" action (user attempts to leave/quit Act 3); cleans up state and halts audio/ani...
Act3Shark * m_shark
[AI] Shark entity in the world, for special chase/attack scenes.
void GoodEnding(const Matrix4 &p_destination)
[AI] Handles victory logic for Act3 (good ending); disables enemy actors, clears lists,...
void AddCop(Act3Cop *p_cop)
[AI] Registers a new cop, assigning to cop1 or cop2 as appropriate.
MxLong Notify(MxParam &p_param) override
[AI] Handles notifications from other systems (animation, transition, audio, etc.).
Act3Brickster * m_brickster
[AI] Main antagonist.
void SetBrickster(Act3Brickster *p_brickster)
[AI] Sets the reference to the Brickster actor in this Act3 instance.
void SetDestLocation(LegoGameState::Area p_destLocation)
[AI] Sets the destination area/location for the next world switch.
MxFloat m_time
[AI] Used to track the time when Act3 was paused, and for actor resynchronization.
undefined m_unk0x421e
[AI] Stores number of helicopter "dot" items to show on the HUD, decremented for bad/good ending....
Act3Ammo m_donuts[MAX_DONUTS]
[AI] All possible donuts in flight/active for Act3's special logic.
LegoGameState::Area m_destLocation
[AI] Target world/area to switch to upon transition. Used for story progression.
MxBool VTable0x5c() override
[AI] Always returns TRUE, notifies higher-level logic that Act 3 is always enabled for handing VTable...
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.
void FUN_10073400()
[AI] Moves Act3 and its state to next step/action in custom sequence (used for in-game cutscene trans...
MxResult Create(MxDSAction &p_dsAction) override
[AI] World instancing method; sets up actors and notifies managers of state change.
Act3Cop * m_cop1
[AI] First cop involved in sequence (player/AI).
MxPresenter * m_helicopterDots[15]
[AI] Visual indicators for helicopter progress/UI.
void BadEnding(const Matrix4 &p_destination)
[AI] Handles loss logic for Act3 (bad ending); disables enemy actors, clears lists,...
void FUN_10072ad0(undefined4 p_param1)
[AI] Triggers special sequence actions or sounds depending on the provided param; cycles through queu...
void ReadyWorld() override
[AI] Called when transitioning into Act 3; triggers state setup and intro animation/missions.
undefined m_unk0x41fc
[AI] General flag, possibly "started" or "initialized". [AI_SUGGESTED_NAME: m_started]
void FUN_10073a60()
[AI] Removes one helicopter dot from the HUD, used when the copter progresses or an event is triggere...
Helicopter * m_copter
[AI] Player's helicopter, main vehicle.
MxU8 m_unk0x4219
[AI] Index/counter for the second event-queue or script sequence. [AI_SUGGESTED_NAME: m_scriptIndex2]
Act3List m_unk0x4220
[AI] Main queue/list for triggering and removing queued scripted actions. [AI_SUGGESTED_NAME: m_actio...
Act3()
[AI] Initializes all mission-critical actors, resets world state, and sets up notification and naviga...
MxResult FUN_10073360(Act3Ammo &p_ammo, const Vector3 &p_param2)
[AI] Triggers script/animation effects on the brickster for pizzas that impact him.
void EatDonut(MxS32 p_index)
[AI] Simulates eating (removing) a donut from the world at the given index.
void RemoveDonut(Act3Ammo &p_p)
[AI] Removes given donut actor and performs associated logic.
MxU8 m_unk0x4218
[AI] Index/counter for the first event-queue or script sequence. [AI_SUGGESTED_NAME: m_scriptIndex1]
void RemovePizza(Act3Ammo &p_p)
[AI] Removes given pizza actor and performs associated logic.
[AI] Represents the flyable helicopter vehicle/path actor in the game, handling all in-game behaviors...
Area
Enumeration of all major in-game locations ("areas") for area/scene management and serialization.
[AI] Manager for controlling actors' movement along predefined geometric paths.
[AI] Base class for game state blocks which encapsulate serializable and/or resettable aspects of the...
MxBool IsA(const char *p_name) const override
[AI] Tests if this object is of a given class name, directly or through inheritance.
Represents the active 3D world, holding all entity, animation, sound, path, and ROI objects.
MxBool IsA(const char *p_name) const override
Runtime type checking; checks class hierarchy.
4x4 Matrix class with virtual interface for manipulation and transformation.
[AI] Represents an action deserialized from SI chunks, holding key animation or script parameters suc...
[AI] MxParam serves as a polymorphic base class for parameter passing in event and notification syste...
[AI] Abstract base class for all presenter types in the LEGO Island engine, responsible for managing ...
[AI] 3D vector class, providing vector and cross-product operations in 3D space.
#define list
[AI] Macro alias for List<T>, replacing std::list<T>.
Script
[AI] Same as above; compatibility for pre-C++11 code.
[AI] Represents an element in a custom list for activity scripting and audio/animation event queueing...
int operator<(Act3ListElement) const
[AI] Comparison operator for sorting, seems to be a placeholder (always returns 0).
int operator==(Act3ListElement) const
[AI] Comparison operator, seems to be a placeholder (always returns 0).
Act3ListElement()
[AI] Default constructor.
Act3ListElement(MxU32 p_objectId, undefined4 p_unk0x04, undefined p_unk0x08)
[AI] Initializes all fields in Act3ListElement.
MxU32 m_objectId
[AI] Refers to an in-game object or script action; exact semantics are context-dependent.
undefined4 m_unk0x04
[AI] Option/type/priority for this action. [AI_SUGGESTED_NAME: m_option]
undefined m_unk0x08
[AI] Boolean/flag; indicates if the corresponding object/action is active, completed,...