272 MxTrace(
"Shoot pizza failed\n");
278 MxTrace(
"Shoot donut failed\n");
340 matrix.
RotateX(0.5235987901687622);
341 Vector3 at(matrix[3]), dir(matrix[2]), up(matrix[1]);
353 Vector3 at(matrix[3]), dir(matrix[2]), up(matrix[1]);
408 float f2 = f / -3000.0f + 1;
469 vec5[0] = vec5[2] = 0.0f;
[AI] Defines enumerated script action identifiers for Act 3 of LEGO Island scripting system.
[AI] Holds state and transient gameplay data for the first act on Lego Island.
MxU32 m_unk0x018
[AI] Internal gameplay state variable; see Get/SetUnknown18 for usage. [AI]
[AI] Controls all main logic and progression of Act 3 in LEGO Island, including objects,...
[AI] Game state entity specialized for tracking Helicopter-related state during gameplay.
MxU32 m_unk0x08
[AI] State/progress value for the helicopter, used for tracking animation or progress in gameplay....
[AI] Represents the flyable helicopter vehicle/path actor in the game, handling all in-game behaviors...
~Helicopter() override
[AI] Destructor, handles cleanup/unregistration. [AI]
MxMatrix m_unk0x1a8
[AI] Stores end matrix (camera/actor) for camera transitions/interpolation. [AI]
void FUN_10004640(const Matrix4 &p_matrix)
[AI] Initiates camera transition for takeoff (Act3 minigame).
MxResult Create(MxDSAction &p_dsAction) override
[AI] Creates (initializes) the helicopter entity from an action script.
void VTable0x74(Matrix4 &p_transform) override
[AI] Applies world transformations relevant to helicopter motion/position.
void FUN_100042a0(const Matrix4 &p_matrix)
[AI] Internal: Sets up smooth camera path and stores transform endpoints used for takeoff/landing tra...
float m_unk0x1f0
[AI] Timestamp for beginning of camera/copter transition—used for timing interpolation....
void Animate(float p_time) override
[AI] Handles animation logic for the helicopter.
MxMatrix m_unk0x160
[AI] Stores start matrix (camera/actor) for camera transitions/interpolation. [AI]
MxLong HandleControl(LegoControlManagerNotificationParam &p_param) override
[AI] Processes input/control events specific to helicopter (dashboard/cockpit/archetype event handlin...
HelicopterState * m_state
[AI] Pointer to the associated HelicopterState tracking per-helicopter animation/state....
void FUN_10004670(const Matrix4 &p_matrix)
[AI] Initiates camera transition for landing (Act3 minigame).
void Exit() override
[AI] Handles the helicopter's exit/teardown. Resets state, unregisters, updates game state and cleans...
MxLong HandleClick() override
[AI] Processes click interactions with the helicopter UI/actor.
void CreateState()
[AI] Creates or retrieves the associated HelicopterState instance for this actor. [AI]
MxBool IsA(const char *p_name) const override
[AI] Checks if this object is of the requested class or a superclass.
MxQuaternionTransformer m_unk0x1f4
[AI] Interpolator for quaternion/matrix transforms (camera movement for animation)....
MxLong HandleEndAnim(LegoEndAnimNotificationParam &p_param) override
[AI] Handles end-of-animation events for the helicopter (e.g., animation state transitions).
MxAtomId m_script
[AI] Current script-atom identifier for action callbacks and in-game object referencing....
Derived path actor type for handling player transitions and activities on LEGO Island.
@ c_spawnBit1
[AI] Bit flag to trigger additional camera/animation sequence during spawn. [AI]
@ c_playMusic
[AI] Bit flag to trigger background music playback on spawn. [AI]
@ c_spawnBit3
[AI] Unused/reserved extra spawn bit in flag set. [AI]
void Destroy(MxBool p_fromDestructor) override
[AI] Cleans up the actor and associated resources.
MxResult Create(MxDSAction &p_dsAction) override
[AI] Initialize this actor from a DSAction.
virtual void SpawnPlayer(LegoGameState::Area p_area, MxBool p_enter, MxU8 p_flags)
[AI] Spawns the player in a specific area/location, potentially triggering music and animation.
virtual void Exit()
[AI] Called when the actor is deactivated or moved out of player control, restoring previous actor if...
LegoWorld * m_world
[AI] Pointer to the current world instance actor is existing in. [AI]
virtual void Enter()
[AI] Called when the actor is made active in a new area or context, setting navigation and visibility...
[AI] Represents the main overworld (LEGO Island) in the game, acting as the central hub and state mac...
virtual MxU8 GetActorId()
[AI] Gets this actor's numeric ID, corresponding to a known enumeration/actor.
MxResult FUN_10064670(Vector3 *p_position)
[AI] Activates special triggered animation in response to player position near given point.
void FUN_1005f6d0(MxBool p_unk0x400)
[AI] Enables or disables extras (extra actors).
void SetWorldTransform(const Vector3 &p_at, const Vector3 &p_dir, const Vector3 &p_up)
Updates the camera's world transformation matrix using view reference parameters.
Mx3DPointFloat GetWorldUp()
Gets the camera's current world-space up vector.
Mx3DPointFloat GetWorldDirection()
Gets the camera's world-space forward direction vector.
MxResult FUN_100123b0(Matrix4 &p_matrix)
Retrieves the current point-of-view transformation into a matrix if it exists.
void FUN_100123e0(const Matrix4 &p_transform, MxU32 p_und)
Sets the camera's transformation matrix in the 3D view, optionally applying a blend with the internal...
Mx3DPointFloat GetWorldLocation()
Gets the camera's current world-space location.
[AI] Notification parameter for the LegoControlManager, used to propagate information about control e...
MxS32 m_clickedObjectId
[AI] Object ID of the clicked control/presenter (or -1 if not set). [AI]
MxS16 m_unk0x28
[AI] Undetermined; settable via SetUnknown0x28. [AI]
void Register(MxCore *p_listener)
[AI] Adds a listener to be notified of control events.
void Unregister(MxCore *p_listener)
[AI] Removes a listener so it no longer receives control events.
Notification parameter for signaling the end of an animation in the LEGO Island engine.
void FUN_10010c30()
[AI] Updates the camera transformation when this entity is the camera target. Used after movement or ...
MxBool m_cameraFlag
[AI] Set to TRUE if this entity is currently the camera target. [AI]
LegoROI * m_roi
[AI] Pointer to this entity's currently assigned ROI (3D instance in the world). [AI]
Act GetCurrentAct()
Returns the active act that is currently in play. [AI].
Area m_currentArea
Area/world the player is presently in. [AI].
LegoState * CreateState(const char *p_stateName)
Creates an instance of given state, registers it, and returns pointer.
@ e_act3
Act 3: final main story segment. [AI].
@ e_act1
Act 1: the first main segment of the game. [AI].
@ e_act2
Act 2: main story segment two. [AI].
LegoState * GetState(const char *p_stateName)
Find an existing state (LegoState-derived) object by its registered script/class name.
@ e_infomain
Information Center, main screen. [AI].
@ e_copter
Helicopter (vehicle, spawn). [AI].
@ e_unk66
Used for some spawn locations. [AI].
virtual void Animate(float p_time)
[AI] Per-frame animation update.
LegoPathController * m_pathController
[AI] Path controller/manages permitted boundaries for transitions. [AI]
@ c_initial
[AI] Default state upon creation or reset. [AI]
@ c_disabled
[AI] Marks as disabled or inactive for path follow logic. [AI]
MxBool m_userNavFlag
[AI] TRUE if this actor is currently user/player controlled. [AI]
void SetActorState(MxU32 p_actorState)
[AI] Sets the navigation/path state of the actor.
virtual void Add(MxCore *p_object)
Adds an object (entity, presenter, ROI, etc.) to the appropriate world-managed list or set.
MxBool IsA(const char *p_name) const override
Runtime type checking; checks class hierarchy.
void RemoveActor(LegoPathActor *p_actor)
Removes an actor from all known path controllers.
LegoCameraController * GetCameraController()
Returns the current camera controller for the world.
4x4 Matrix class with virtual interface for manipulation and transformation.
void RotateX(const float &p_angle)
Applies a rotation (in radians or degrees, depending on implementation) about the X axis.
virtual void SetIdentity()
Sets this matrix to identity (diagonal 1, others 0).
[AI] Represents a 3D point with floating-point precision, inheriting from Vector3.
[AI] 4D point class for floating point values.
[AI] Atomized (unique) string identifier, managed by reference counting.
[AI] Represents an action deserialized from SI chunks, holding key animation or script parameters suc...
void SetObjectId(MxU32 p_objectId)
[AI] Sets the object id (for serialization or lookup).
[AI] Represents a 4x4 transformation matrix, specialized for the LEGO Island engine and derived from ...
MxLong GetTime()
Returns the current timer value in ms, depending on running state.
MxResult StartTransition(TransitionType p_animationType, MxS32 p_speed, MxBool p_doCopy, MxBool p_playMusicInAnim)
[AI] Begins a new transition animation of type p_animationType at the specified speed,...
@ e_mosaic
[AI] Complex mosaic block-out effect.
virtual void VTable0x14()
[AI] Calls VTable0x1c().
void FUN_100a58f0(const Matrix4 &p_transform)
Assigns the given matrix as the local-to-world transformation and enables some internal flags.
void UpdateTransformationRelativeToParent(const Matrix4 &p_transform)
Calculates and updates the world transform relative to this object's parent, then calls UpdateWorldDa...
[AI] Represents a 2D mathematical vector with floating-point coordinates.
virtual int Unitize()
[AI] Scales the vector so its norm is 1 (unit vector).
[AI] 3D vector class, providing vector and cross-product operations in 3D space.
void Clear() override
[AI] Sets every coordinate (x, y, z) to zero.
virtual void EqualsCross(const Vector3 &p_a, const Vector3 &p_b)
[AI] Sets this vector to be the cross product of p_a and p_b.
[AI] A four-dimensional vector, supporting operations relevant for matrix and quaternion math (homoge...
#define DECOMP_SIZE_ASSERT(T, S)
#define NULL
[AI] Null pointer value (C/C++ semantics).
#define SUCCESS
[AI] Used to indicate a successful operation in result codes.
void InvokeAction(Extra::ActionType p_actionId, const MxAtomId &p_pAtom, MxS32 p_streamId, LegoEntity *p_sender)
[AI] Dispatches and triggers a game action on the given script or object.
MxBool RemoveFromCurrentWorld(const MxAtomId &p_atomId, MxS32 p_id)
[AI] Removes an entity or presenter with specified AtomId and ID from the current world; triggers End...
MxBool FUN_1003ef60()
[AI] Determines if the current actor can exit their area, based on state/zone/vehicle.
MxAtomId * g_isleScript
[AI] Node used in hierarchical scene graphs and animation trees. [AI]
LegoGameState * GameState()
[AI] Accessor for the game's central game state controller. [AI]
LegoAnimationManager * AnimationManager()
[AI] Accessor for the animation manager, which controls Lego character/world animation state....
MxTransitionManager * TransitionManager()
[AI] Accessor for the MxTransitionManager, handling level transitions, fades, and world changes....
MxDSAction & GetCurrentAction()
[AI] Accessor for the currently running MxDSAction (e.g.
LegoControlManager * ControlManager()
[AI] Accessor for the control manager through the input manager; manages higher-level user/game contr...
LegoWorld * CurrentWorld()
[AI] Accessor for the currently active LegoWorld instance. [AI]
void FUN_10015820(MxBool p_disable, MxU16 p_flags)
[AI] Utility for enabling or disabling functionality in LegoOmni based on certain flags.
void PlayMusic(JukeboxScript::Script p_objectId)
[AI] Starts music playback by scripting the background audio manager to play the music piece referenc...
LegoPathActor * UserActor()
[AI] Accessor for the user (player-controllable) LegoPathActor. [AI]
#define MxTrace(args)
[AI] Macro for trace logging (non-variadic version, MSVC compatibility), expands to nothing.
MxTimer * Timer()
[AI] Returns the global simulation timer.
@ c_Helicopter_Donut_Ctl
[AI] Script control for helicopter donut UI or system. [AI]
@ c_Helicopter_Info_Ctl
[AI] Script control for helicopter info/help UI or system. [AI]
@ c_Helicopter_Pizza_Ctl
[AI] Script control for helicopter pizza UI or system. [AI]
@ c_HelicopterDashboard_Bitmap
@ c_HelicopterTakeOff_Anim
@ c_Helicopter_TakeOff_Ctl
@ c_Jail_Music
[AI] Background music for the jail area.
[AI] Contains global script AtomId pointers and utility functions for managing script AtomIds in LEGO...
MxAtomId * g_act3Script
[AI] Script AtomId for Act 3 (endgame/helicopter chase) scripting.
MxAtomId * g_act2mainScript
[AI] Script AtomId for main script of Act 2 (island event progression).