28 m_previousActor =
NULL;
40 if (!p_fromDestructor) {
135 if (local20.
Dot(normal, local20) + normal[3] < -0.001) {
645 Vector3 position(transform[0]);
646 Vector3 direction(transform[1]);
const float & Radius() const
[AI] Const accessor for the sphere radius.
Derived path actor type for handling player transitions and activities on LEGO Island.
virtual MxLong HandleEndAnim(LegoEndAnimNotificationParam &)
[AI] Handles end-of-animation notifications for this actor.
@ 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]
void Destroy(MxBool p_fromDestructor) override
[AI] Cleans up the actor and associated resources.
@ c_LOCATIONS_NUM
[AI] Maximum number of spawn locations. [AI]
virtual MxLong HandlePathStruct(LegoPathStructNotificationParam &)
[AI] Handles structure/path-related notifications for this actor.
MxFloat m_previousVel
[AI] Stores previous navigation velocity for actor/handoffs. [AI]
virtual MxLong HandleControl(LegoControlManagerNotificationParam &)
[AI] Handles in-game player controls notifications for this actor.
MxResult Create(MxDSAction &p_dsAction) override
[AI] Initialize this actor from a DSAction.
virtual MxLong HandleClick()
[AI] Handles a click event for interaction with this actor.
virtual void VTable0xec(MxMatrix p_transform, LegoPathBoundary *p_boundary, MxBool p_reset)
[AI] Places this actor in the current world with a given transformation, resets input if requested.
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.
void FUN_1001b660()
[AI] Synchronizes the actor's world transformation and ROI.
virtual MxLong HandleNotification0()
[AI] Handles custom notification type 0 for this actor.
virtual void Exit()
[AI] Called when the actor is deactivated or moved out of player control, restoring previous actor if...
MxLong Notify(MxParam &p_param) override
[AI] Dispatches notifications to specialized handlers based on notification type.
LegoPathActor * m_previousActor
[AI] The last active path actor before this one; for restoration after exit. [AI]
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...
static void RegisterSpawnLocations()
[AI] Static: Registers all known player spawn locations into the global location table.
Lego3DView * GetLego3DView()
[AI] Returns the encapsulated Lego3DView instance.
BOOL Remove(ViewROI &rROI)
[AI] Removes a ViewROI from the scene.
BOOL Remove(ViewROI &rROI)
[AI] Removes a ViewROI from the scene.
MxU8 m_actorId
[AI] Unique identifier for this actor, corresponding to enum above.
virtual MxU8 GetActorId()
[AI] Gets this actor's numeric ID, corresponding to a known enumeration/actor.
MxResult FUN_10060dc0(MxU32 p_objectId, MxMatrix *p_matrix, MxBool p_param3, MxU8 p_param4, LegoROI *p_roi, MxBool p_param6, MxBool p_param7, MxBool p_param8, MxBool p_param9)
[AI] Helper for starting a specific animation, including world matrix and camera settings.
void FUN_10061010(MxBool p_und)
[AI] Cancels all camera/transition animations and resets camera after completion.
@ e_unk0
[AI] Unknown/unspecified play mode
[AI] Notification parameter for the LegoControlManager, used to propagate information about control e...
Notification parameter for signaling the end of an animation in the LEGO Island engine.
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.
Mx3DPointFloat GetWorldDirection()
[AI] Gets the normalized world-space direction vector, optionally updating from ROI....
virtual void Destroy(MxBool p_fromDestructor)
[AI] Cleans up the entity, detaching ROI and releasing references.
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]
virtual void ResetWorldTransform(MxBool p_cameraFlag)
[AI] Resets the transformation for this entity (e.g., used with camera transitions).
LegoROI * m_roi
[AI] Pointer to this entity's currently assigned ROI (3D instance in the world). [AI]
Mx3DPointFloat GetWorldUp()
[AI] Gets the normalized world-space up vector, optionally updating from ROI. [AI]
Mx3DPointFloat GetWorldPosition()
[AI] Gets the world-space position vector, optionally updating from ROI. [AI]
Area m_currentArea
Area/world the player is presently in. [AI].
LegoState * GetState(const char *p_stateName)
Find an existing state (LegoState-derived) object by its registered script/class name.
Area
Enumeration of all major in-game locations ("areas") for area/scene management and serialization.
@ e_unk66
Used for some spawn locations. [AI].
@ e_hospitalExterior
Hospital, seen from outside. [AI].
@ e_jetraceExterior
Jetski race transition? [AI].
@ e_garageExterior
Garage (vehicle construction) exterior. [AI].
@ e_jetrace2
Jetski race (exterior). [AI].
@ e_pizzeriaExterior
Pizzeria, seen from outside. [AI].
@ e_unk28
Used for certain spawn locations. [AI].
@ e_unk33
Used for certain player spawns. [AI].
@ e_unk4
Unknown / possibly reserved. [AI].
@ e_jukeboxExterior
Jukebox, seen from outside. [AI].
@ e_policeExterior
Police Station, from outside. [AI].
@ e_carraceExterior
Car race exterior/transition. [AI].
void ResetMaxLinearVel(MxFloat p_maxLinearVel)
[AI] Resets the maximum allowed linear velocity and marks controller as using custom parameters.
MxFloat GetMaxLinearVel()
[AI] Returns the current maximum linear velocity (units per sec).
void SetBoundary(LegoPathBoundary *p_boundary)
[AI] Assigns a new boundary for the actor (for path switching).
MxFloat m_maxLinearVel
[AI] Maximum speed of actor while moving along path. [AI]
LegoPathBoundary * m_boundary
[AI] Current boundary the actor is navigating on. [AI]
virtual void SetUserNavFlag(MxBool p_userNavFlag)
[AI] Sets whether the actor is controlled by user navigation.
@ c_initial
[AI] Default state upon creation or reset. [AI]
void SetActorState(MxU32 p_actorState)
[AI] Sets the navigation/path state of the actor.
[AI] Represents a path segment or boundary in the navigation network for actors (vehicles,...
MxResult AddActor(LegoPathActor *p_actor)
[AI] Adds the given actor to this path boundary and sets its boundary pointer.
[AI] Specialized notification parameter used for path structure related events in LEGO Island.
[AI] Represents the persistent state of the LEGO vehicle build world, tracking animation and part pla...
MxBool m_unk0x4d
[AI] Persists transition or completion flag across world reloads.
MxBool m_unk0x4e
[AI] Unknown. Flag—purpose unclear.
Lego3DManager * Get3DManager()
[AI] Returns the Lego3DManager for this manager, which owns all 3D scene representations and view con...
LegoU8 GetNumEdges()
[AI] Returns the number of edge elements assigned to this face.
LegoUnknown100db7f4 ** GetEdges()
[AI] Gets the array of pointers to the edge objects that form this face.
Mx4DPointFloat * GetEdgeNormal(int index)
[AI] Returns a pointer to the 4D edge normal at the given sub-edge index.
Represents the active 3D world, holding all entity, animation, sound, path, and ROI objects.
void Remove(MxCore *p_object)
Removes an object from all relevant world-managed lists or sets, and also detaches if needed.
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.
virtual void Add(MxCore *p_object)
Adds an object (entity, presenter, ROI, etc.) to the appropriate world-managed list or set.
void RemoveActor(LegoPathActor *p_actor)
Removes an actor from all known path controllers.
[AI] Represents a 3D point with floating-point precision, inheriting from Vector3.
[AI] 4D point class for floating point values.
MxResult PlayMusic(MxDSAction &p_action, undefined4 p_speed, MxPresenter::TickleState p_tickleState)
[AI] Initiates playback of a new background music action with specified speed and target tickle state...
[AI] Represents an action deserialized from SI chunks, holding key animation or script parameters suc...
virtual void SetAtomId(MxAtomId p_atomId)
[AI] Sets the atom id for this object instance, used for indexing or lookup.
void SetObjectId(MxU32 p_objectId)
[AI] Sets the object id (for serialization or lookup).
virtual MxResult Create(MxS32 p_entityId, const MxAtomId &p_atomId)
Initializes the entity from a given entity ID and AtomId.
MxS32 m_entityId
The unique entity ID, typically used for lookup and reference.
[AI] Represents a 4x4 transformation matrix, specialized for the LEGO Island engine and derived from ...
[AI] Parameter object representing a single notification or event, carrying an identifier and sender ...
NotificationId GetNotification() const
[AI] Retrieves the current notification type of this parameter.
[AI] MxParam serves as a polymorphic base class for parameter passing in event and notification syste...
@ e_repeating
[AI] Presentation is repeating (e.g., looping media).
const BoundingSphere & GetWorldBoundingSphere() const override
Returns the object's bounding sphere in world coordinates.
const Matrix4 & GetLocal2World() const
Accessor for the current local-to-world transformation matrix.
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 SetVisibility(unsigned char p_visible)
[AI] Sets the visibility flag to the provided value.
virtual float Dot(const float *p_a, const float *p_b) const
[AI] Compute the dot product of the two float arrays interpreted as vectors of 2 elements.
[AI] 3D vector class, providing vector and cross-product operations in 3D space.
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.
void Remove(ViewROI *p_roi)
[AI] Removes a single ViewROI from the managed ROI list, also detaching any associated LOD data from ...
void Add(ViewROI *p_roi)
[AI] Adds a ViewROI object to the list of managed ROI objects.
#define DECOMP_SIZE_ASSERT(T, S)
IslePathActor::SpawnLocation g_spawnLocations[IslePathActor::c_LOCATIONS_NUM]
#define NULL
[AI] Null pointer value (C/C++ semantics).
#define SUCCESS
[AI] Used to indicate a successful operation in result codes.
void FUN_1003eda0()
[AI] Updates sound listener position to follow the view ROI's transform.
void PlayCamAnim(LegoPathActor *p_actor, MxBool p_unused, MxU32 p_location, MxBool p_bool)
[AI] Initiates a camera animation for a specific path actor, or falls back to default animation trigg...
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]
LegoVideoManager * VideoManager()
[AI] Accessor for the game's LegoVideoManager subsystem. Used for managing 3D/video hardware....
LegoAnimationManager * AnimationManager()
[AI] Accessor for the animation manager, which controls Lego character/world animation state....
MxBackgroundAudioManager * BackgroundAudioManager()
[AI] Accessor for the background audio manager. Used for background music and ambient sounds....
ViewManager * GetViewManager()
[AI] Accessor for the current ViewManager, managing rendering views/cameras. [AI]
void SetUserActor(LegoPathActor *p_userActor)
[AI] Sets the user-controlled LegoPathActor in the engine.
LegoWorld * FindWorld(const MxAtomId &p_atom, MxS32 p_entityid)
[AI] Searches for or retrieves a LegoWorld instance based on an atom id and entity id.
LegoWorld * CurrentWorld()
[AI] Accessor for the currently active LegoWorld instance. [AI]
LegoNavController * NavController()
[AI] Accessor for the navigation controller, managing player/camera navigation. [AI]
LegoPathActor * UserActor()
[AI] Accessor for the user (player-controllable) LegoPathActor. [AI]
@ c_notificationControl
[AI] UI control event [AI]
@ c_notificationEndAnim
[AI] End of an animation [AI]
@ c_notificationType0
[AI] Undefined/Generic notification type [AI]
@ c_notificationClick
[AI] Mouse click event [AI]
@ c_notificationPathStruct
[AI] Data related to a path structure [AI]
@ c_Quiet_Audio
[AI] Quiet/ambient audio track, likely used to mute or dampen music.
@ c_Beach_Music
[AI] Ambient/area music for the beach.
@ c_Hospital_Music
[AI] Background music for the hospital.
@ c_noneJukebox
[AI] Special value representing that no Jukebox script is selected or active.
@ c_InformationCenter_Music
[AI] Background music for the information center.
@ c_CentralNorthRoad_Music
[AI] Music for central northern roads.
@ c_PoliceStation_Music
[AI] Music played inside or near the police station.
@ c_GarageArea_Music
[AI] Music in the garage or vehicle 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_jukeboxScript
[AI] Script AtomId for the Jukebox entity/event script.
MxAtomId * g_act2mainScript
[AI] Script AtomId for main script of Act 2 (island event progression).
Information for each player spawn location on LEGO Island.
LegoGameState::Area m_area
[AI] Which overall map are the spawn is located in. [AI]
[AI] Represents an advanced edge in the LEGO Island geometry system, with direction,...
LegoResult FUN_1002ddc0(LegoWEEdge &p_f, Vector3 &p_point) const
[AI] Calculates the edge normal for use from the given face, negating it if called from faceA.