41 Act2mainScript::c_tns030bd_RunAnim,
42 Act2mainScript::c_tns030pg_RunAnim,
43 Act2mainScript::c_tns030rd_RunAnim,
44 Act2mainScript::c_tns030sy_RunAnim,
45 Act2mainScript::c_snsx35ro_RunAnim,
46 Act2mainScript::c_snsx36ro_RunAnim,
47 Act2mainScript::c_snsx37ro_RunAnim,
48 Act2mainScript::c_snsx48cl_RunAnim
56 Act2mainScript::c_snsx07pa_RunAnim,
57 Act2mainScript::c_snsx12ni_RunAnim,
58 Act2mainScript::c_snsx15la_RunAnim,
59 Act2mainScript::c_snsx47cl_RunAnim,
60 Act2mainScript::c_snsx65pg_RunAnim,
61 Act2mainScript::c_snsx68pg_RunAnim,
62 Act2mainScript::c_snsx69rd_RunAnim,
63 Act2mainScript::c_snsx72sy_RunAnim,
169 switch (m_unk0x10c4) {
176 switch (rand() % 3) {
219 if (m_unk0x10d0 == 20000) {
221 MxFloat otherPoint[] = {-52.0f, 5.25f, -16.5f};
223 distance =
DISTSQRD3(pepperPosition, otherPoint);
227 m_unk0x1144 = Act2mainScript::c_Avo906In_PlayWav;
232 m_unk0x1144 = Act2mainScript::c_Avo908In_PlayWav;
242 if (m_unk0x10d0 >= 200) {
243 if (m_nextBrick < 5) {
286 if (m_ambulance ==
NULL) {
287 m_ambulance =
FindROI(
"ambul");
290 if (entity->
GetROI() == m_pepper) {
291 HandlePathStruct(param);
301 if (m_unk0x10c1 == 10 && m_unk0x10c4 == 13) {
313 Vector3 local30(local2world[0]);
314 Vector3 localac(local2world[1]);
315 Vector3 local28(local2world[2]);
337 result = HandleTransitionEnd();
351 if (m_unk0x10c4 == 5 && m_unk0x1144 == objectId) {
356 if (m_unk0x1140 != objectId) {
362 switch (m_unk0x10c4) {
409 m_bricks[m_nextBrick - 1].
Mute(
TRUE);
466MxLong LegoAct2::HandleTransitionEnd()
501 PlaceActor(actor,
"EDG01_04", 1, 0.5f, 3, 0.5f);
504 local2world[3][0] -= 1.5;
513 PlaceActor(actor,
"EDG00_149", 0, 0.5f, 2, 0.5f);
545 if (m_unk0x10c4 != 6 && m_unk0x10c4 != 12) {
549 if (m_unk0x10c4 == 10 && m_nextBrick == 6 && m_bricks[5].
GetROI() !=
NULL) {
552 else if (m_unk0x10c4 == 13) {
559 if (m_unk0x10c4 == 2 || m_unk0x10c4 == 4 || m_unk0x10c4 == 6 || m_unk0x10c4 == 11 || m_unk0x10c4 == 12 ||
566 HandleEndAction(param);
597 if (m_unk0x10c4 == 5 && p_param.
GetData() == 0x32) {
603 if (m_unk0x10d0 < 90000) {
614 else if (m_unk0x10c4 == 5 && p_param.
GetData() == 0x2a) {
617 m_unk0x1144 = Act2mainScript::c_Avo907In_PlayWav;
620 else if (m_unk0x10c4 == 5) {
621 FUN_100521f0(p_param.
GetData());
623 else if (m_unk0x10c4 == 7) {
624 FUN_10051fa0(p_param.
GetData());
626 else if (m_unk0x10c4 == 10 && p_param.
GetData() == 0x165) {
630 m_unk0x1140 = Act2mainScript::c_VOhide_PlayWav;
638 if (m_nextBrick < 6) {
639 m_bricks[m_nextBrick].
Create(m_nextBrick);
644 MxMatrix local2world2 = local2world;
647 local2world[3][1] += 1.5;
648 local2world2[3][1] -= 0.1;
650 m_bricks[m_nextBrick - 1].
FUN_1007a670(local2world, local2world2, boundary);
660 if (m_nextBrick > 4) {
664 Act2Brick& brick = m_bricks[m_nextBrick];
665 brick.
Create(m_nextBrick);
668 MxMatrix local2world2 = local2world;
671 local2world[3][1] += 1.3;
672 local2world2[3][1] -= 0.1;
674 brick.
FUN_1007a670(local2world, local2world2, boundary);
684 Act2Brick& brick = m_bricks[m_nextBrick];
685 brick.
Create(m_nextBrick);
688 local2world[3][1] += 1.5;
705 m_music = p_objectId;
710void LegoAct2::FUN_10051900()
724void LegoAct2::FUN_10051960()
765 if (m_gameState !=
NULL) {
774void LegoAct2::InitBricks()
784void LegoAct2::UninitBricks()
795void LegoAct2::SpawnBricks()
797 MxFloat infobridge[] = {79.0625f, 0.5f, -19.75f};
798 MxFloat palmTreeInPark[] = {67.62728f, 0.917197f, 11.49833f};
799 MxFloat store[] = {-53.9328f, 2.372259f, -61.2073f};
800 MxFloat postOffice[] = {-30.9856f, 0.30453f, -47.4378f};
801 MxFloat h3[] = {-71.2397f, 7.319758f, -23.0f};
802 MxFloat ht[] = {-59.5102f, 14.37329f, 24.70311f};
803 MxFloat posta[] = {74.0625f, 1.5f, -91.125f};
804 MxFloat ptree[] = {-20.4375f, 0.5f, -82.5625f};
805 MxFloat jail[] = {80.46174f, 0.6f, -59.50533f};
806 MxFloat hospital[] = {84.0f, 4.5f, 26.0f};
810 Act2Brick* brick = &m_bricks[m_nextBrick];
811 brick->
Create(m_nextBrick);
819 if ((
MxS16) (rand() % 2) == 1) {
821 location = infobridge;
826 location = palmTreeInPark;
827 MxTrace(
"palm tree in park\n");
830 SET3(local2world[3], location);
838 brick = &m_bricks[m_nextBrick];
839 brick->
Create(m_nextBrick);
843 if ((
MxS16) (rand() % 2) == 1) {
850 location = postOffice;
854 SET3(local2world[3], location);
862 brick = &m_bricks[m_nextBrick];
863 brick->
Create(m_nextBrick);
867 if ((
MxS16) (rand() % 2) == 1) {
878 SET3(local2world[3], location);
886 brick = &m_bricks[m_nextBrick];
887 brick->
Create(m_nextBrick);
891 if ((
MxS16) (rand() % 2) == 1) {
892 if ((
MxS16) (rand() % 2) == 1) {
904 if ((
MxS16) (rand() % 2) == 1) {
916 SET3(local2world[3], location);
947void LegoAct2::FUN_10051fa0(
MxS32 p_param1)
949 MxU8 randN = rand() / (RAND_MAX / 3);
1035void LegoAct2::FUN_100521f0(
MxS32 p_param1)
1044 objectId = Act2mainScript::c_tns030bd_RunAnim;
1050 objectId = Act2mainScript::c_tns030rd_RunAnim;
1056 objectId = Act2mainScript::c_tns030pg_RunAnim;
1062 objectId = Act2mainScript::c_tns030sy_RunAnim;
1068 objectId = Act2mainScript::c_tns030rd_RunAnim;
1074 objectId = Act2mainScript::c_tns030sy_RunAnim;
1082 local30 -= position;
1101 assert(strlen(m_siFile));
1128 matrix[3][0] = (*p_location)[0];
1129 matrix[3][1] = (*p_location)[1];
1130 matrix[3][2] = (*p_location)[2];
1131 oneVectorNotNull =
TRUE;
1135 matrix[2][0] = (*p_direction)[0];
1136 matrix[2][1] = (*p_direction)[1];
1137 matrix[2][2] = (*p_direction)[2];
1138 oneVectorNotNull =
TRUE;
1142 matrix[1][0] = (*p_param6)[0];
1143 matrix[1][1] = (*p_param6)[1];
1144 matrix[1][2] = (*p_param6)[2];
1145 oneVectorNotNull =
TRUE;
1148 Vector3 firstColumn(matrix[0]);
1149 Vector3 secondColumn(matrix[1]);
1150 Vector3 thirdColumn(matrix[2]);
1152 firstColumn.
EqualsCross(secondColumn, thirdColumn);
1157 if (oneVectorNotNull) {
1163 if (p_objectId == Act2mainScript::c_tja009ni_RunAnim) {
1191 m_unk0x1140 = p_objectId;
1206 PlaceActor(actor,
"EDG01_27", 2, 0.5f, 0, 0.5f);
void FUN_10018980()
[AI] Searches animation maps for a "shoot" animation, and prepares the mission audio effect.
void FUN_10019520()
[AI] Triggers major mission state transition: switches to "escape" mode and moves to special location...
void FUN_10019560()
[AI] Triggers mission state transition: switches to "destroyed" mode and moves to special location 9.
[AI] Represents a special 'brick' object in the LEGO Island "Act 2" sequence, derived from LegoPathAc...
MxResult Create(MxS32 p_index)
[AI] Instantiates and initializes the brick actor in the world with a specified index/type,...
void FUN_1007a670(MxMatrix &p_param1, MxMatrix &p_param2, LegoPathBoundary *p_boundary)
[AI] Starts the brick motion and animation parameters, registers the object for tickling and places t...
void PlayWhistleSound()
[AI] Begins playback of the looping whistle sound associated with this brick, if not already playing.
void StopWhistleSound()
[AI] Stops the playback of the whistle sound if it is currently playing.
void Mute(MxBool p_muted)
[AI] Mutes or unmutes the whistle sound according to the argument given.
void Remove()
[AI] Removes this brick from the world, releases associated resources, and notifies the character man...
[AI] Represents a bounding sphere in 3D space with center and radius.
const float & Radius() const
[AI] Const accessor for the sphere radius.
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]
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.
int SetFrustrum(float p_fov, float p_front, float p_back)
[AI] Sets the 3D perspective frustum parameters for camera and view.
Represents the state object for Act 2 of the game.
undefined4 m_unk0x08
[AI] Unknown state variable. Purpose unclear. [AI]
MxBool m_enabled
[AI] TRUE if this state is currently enabled/active. [AI]
void SetUnknown0x08(undefined4 p_unk0x08)
Sets the unknown value (purpose unclear).
Implements the world and game logic for Act 2.
MxLong Notify(MxParam &p_param) override
Handles incoming notifications dispatched by the notification system.
MxBool Escape() override
Handles the Escape (quit/abort) action, stops audio/cutscene/cleans up state.
MxResult Create(MxDSAction &p_dsAction) override
Creates and initializes this world object using a DSAction.
void FUN_100517b0()
Spawns the next brick and triggers sound/whistle for the new brick.
~LegoAct2() override
Destructor.
LegoAct2()
Constructor, initializes all members and registers to the notification manager.
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.
MxResult BadEnding()
Handles the "bad ending" sequence for Act 2.
MxResult Tickle() override
Main update tick for Act 2.
void Enable(MxBool p_enable) override
Enables or disables the Act 2 world and logic.
MxResult FUN_100516b0()
Spawns the next collectible brick at its position and plays associated animation if possible.
void VTable0x60() override
Unused; placeholder for possible extension.
void ReadyWorld() override
Prepares the world for player interaction, resumes animation, registers tickle, etc.
@ c_pepper
Pepper Roni ([AI])
void FUN_10060540(MxBool p_unk0x29)
[AI] Sets the 'enabled for random camera animation' flag for all animations.
void FUN_10060480(const LegoChar *p_characterNames[], MxU32 p_numCharacterNames)
[AI] Marks characters in the global character list (g_characters) as available for animation accordin...
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
void FUN_100604f0(MxS32 p_objectIds[], MxU32 p_numObjectIds)
[AI] Enables/disables certain animations by object id list (sets m_unk0x29 flag in AnimInfo).
void Resume()
[AI] Resumes animation manager from suspension, restoring all previously suspended state.
void FUN_100604d0(MxBool p_unk0x08)
[AI] Sets the m_unk0x08 flag for all characters.
void EnableCamAnims(MxBool p_enableCamAnims)
[AI] Sets whether camera-based queued animations are enabled for the world.
void Suspend()
[AI] Suspends all activity, saving out transition/animation state, and disables extra processing.
void FUN_1005f6d0(MxBool p_unk0x400)
[AI] Enables or disables extras (extra actors).
LegoCacheSound * Play(const char *p_key, const char *p_name, MxBool p_looping)
[AI] Plays a sound identified by key, with the given playback name and looping flag.
[AI] Represents an entity that can be placed and managed in the LEGO Island world.
virtual void SetWorldSpeed(MxFloat p_worldSpeed)
[AI] Sets the current world speed value for this entity (used to control motion/animation rate).
LegoROI * GetROI()
[AI] Gets the ROI (Realtime Object Instance) associated with this entity. [AI]
Comprehensive persistent game state manager: handles save/load, player selection, area switching,...
void SwitchArea(Area p_area)
Switches the whole game state into a new area/world; manages transitions/scene loads.
void SetCurrentAct(Act p_currentAct)
Sets the current game act.
Area m_currentArea
Area/world the player is presently in. [AI].
MxBool m_isDirty
TRUE if unsaved changes present. [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_actNotFound
No act currently loaded (does not correspond to valid play). [AI].
@ e_act2
Act 2: main story segment two. [AI].
void StopArea(Area p_area)
Calls cleanup logic for the specified area (removes actors, VMs, closes handles, etc....
void FindLoadedAct()
Analyses the loaded Lego worlds to determine which act is present. [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_act3script
Act 3 world/script main. [AI].
@ e_act2main
Act 2 world main screen. [AI].
@ e_copterbuild
Vehicle construction: helicopter. [AI].
@ e_isle
Open world (LEGO Island main map). [AI].
@ e_undefined
Undefined or unset area. [AI].
Area GetPreviousArea()
Gets the last area before the current one. [AI].
Act GetLoadedAct()
Returns the act that is currently loaded in memory. [AI].
void SetActor(MxU8 p_actorId)
Change the player character in the world to the given actor ID.
void SetDirty(MxBool p_isDirty)
Sets whether there are unsaved changes to the state.
[AI] Specialized presenter class for handling locomotion animation playback and state in the LEGO Isl...
void FUN_1006d680(LegoAnimActor *p_actor, MxFloat p_value)
[AI] Binds a LegoAnimActor to the internal animation context and ROI mapping.
@ c_clearScreen
[AI] When set, clears the display surface. [AI]
@ c_disable3d
[AI] When set, disables 3D rendering. [AI]
@ c_disableInput
[AI] When set, disables input processing. [AI]
[AI] An actor that moves along a predefined path, supporting boundary transitions,...
@ c_initial
[AI] Default state upon creation or reset. [AI]
@ c_disabled
[AI] Marks as disabled or inactive for path follow logic. [AI]
LegoPathBoundary * GetBoundary()
[AI] Retrieves the current path boundary associated with this actor.
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,...
[AI] Specialized notification parameter used for path structure related events in LEGO Island.
MxS16 GetData()
[AI] Retrieves the supplemental data associated with the notification.
[AI] Represents a Real-time Object Instance enriched with LEGO-specific functionality.
void SetBoundingSphere(const BoundingSphere &p_sphere)
[AI] Sets the local and world bounding spheres.
BoundingSphere & GetBoundingSphere()
[AI] Accesses the local bounding sphere object.
LegoEntity * GetEntity()
[AI] Gets the entity associated with this ROI (or NULL).
LegoCacheSoundManager * GetCacheSoundManager()
[AI] Returns the cache sound manager used to cache and reuse sound effects.
Lego3DManager * Get3DManager()
[AI] Returns the Lego3DManager for this manager, which owns all 3D scene representations and view con...
void Remove(MxCore *p_object)
Removes an object from all relevant world-managed lists or sets, and also detaches if needed.
virtual void ReadyWorld()
Called when the world is ready to be used—typically for custom scene setup after startup.
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.
MxCoreSet m_set0xd0
Set of currently paused/disconnected objects when world is disabled.
virtual void Enable(MxBool p_enable)
Enables or disables (pauses) the world and its main components.
MxResult Tickle() override
Main world tick/update, especially manages startup countdown.
MxBool m_worldStarted
Indicates if the world has successfully started and is considered active.
MxCore * Find(const char *p_class, const char *p_name)
Finds an object of a given class and name in the world.
MxLong Notify(MxParam &p_param) override
Notification callback responding to registered events such as EndAction and NewPresenter.
void RemoveActor(LegoPathActor *p_actor)
Removes an actor from all known path controllers.
MxResult Create(MxDSAction &p_dsAction) override
Initializes the world using an action, creating entity and sound lists, and camera controller.
virtual void SetIdentity()
Sets this matrix to identity (diagonal 1, others 0).
[AI] Represents a 3D point with floating-point precision, inheriting from Vector3.
MxDSAction * GetAction()
[AI] Direct access to the underlying action.
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...
void Stop()
[AI] Immediately stops all background music, clears all actions and presenters, and resets tickle sta...
[AI] Represents an action deserialized from SI chunks, holding key animation or script parameters suc...
void SetLocation(const Vector3 &p_location)
[AI] Sets the location vector for this action.
void SetDirection(const Vector3 &p_direction)
[AI] Sets the direction vector for this action.
void SetUp(const Vector3 &p_up)
[AI] Sets the up vector for this action.
virtual void SetAtomId(MxAtomId p_atomId)
[AI] Sets the atom id for this object instance, used for indexing or lookup.
void SetUnknown24(MxS16 p_unk0x24)
[AI] Sets the unknown field at 0x24 (possibly version/state).
void SetObjectId(MxU32 p_objectId)
[AI] Sets the object id (for serialization or lookup).
MxU32 GetObjectId()
[AI] Returns the object id numeric value.
[AI] Notification parameter marking the end of an action, specialization of MxActionNotificationParam...
MxAtomId m_atomId
The AtomId associated with this entity, used for resource and script identification.
[AI] Represents a 4x4 transformation matrix, specialized for the LEGO Island engine and derived from ...
void Unregister(MxCore *p_listener)
[AI] Removes a previously registered listener and flushes any pending notifications for it.
void Register(MxCore *p_listener)
[AI] Registers a listener object to receive notifications.
[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.
MxCore * GetSender() const
[AI] Retrieves the sender pointer associated with this notification.
[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).
virtual void UnregisterClient(MxCore *p_client)
[AI] Unregisters (marks for destruction) a previously registered client.
virtual void RegisterClient(MxCore *p_client, MxTime p_interval)
[AI] Registers an MxCore object to receive periodic tickles.
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.
const char * GetVariable(const char *p_key)
Returns the value for the variable with a given key, or an empty string if not found.
void SetVariable(const char *p_key, const char *p_value)
Sets a variable by key and value, replacing or updating if it exists.
const float * GetWorldPosition() const
Returns a pointer to the world position from the transformation matrix (translation row).
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.
unsigned char GetVisibility()
[AI] Returns the visibility flag; true if visible, false if hidden.
void SetVisibility(unsigned char p_visible)
[AI] Sets the visibility flag to the provided value.
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.
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.
#define DECOMP_SIZE_ASSERT(T, S)
const LegoChar * g_unk0x100f4410[]
Act2mainScript::Script g_unk0x100f4474
const LegoChar * g_unk0x100f4458[]
#define NULL
[AI] Null pointer value (C/C++ semantics).
char LegoChar
[AI] Alias for char, for use in character/byte data and string handling.
#define FAILURE
[AI] Used to indicate a failed operation in result codes.
#define SUCCESS
[AI] Used to indicate a successful operation in result codes.
void SetAppCursor(Cursor p_cursor)
[AI] Sets the in-game cursor to a specified type.
@ e_cursorArrow
[AI] Standard arrow cursor. [AI]
LegoGameState * GameState()
[AI] Accessor for the game's central game state controller. [AI]
MxResult StartActionIfUnknown0x13c(MxDSAction &p_dsAction)
[AI] Triggers a DSAction if a certain unknown flag (0x13c) is set.
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....
void DeleteObjects(MxAtomId *p_id, MxS32 p_first, MxS32 p_last)
[AI] Batch deletes objects, given by atom id, and within the entity id range [p_first,...
LegoSoundManager * SoundManager()
[AI] Accessor for the game's LegoSoundManager subsystem from the global LegoOmni instance....
MxTransitionManager * TransitionManager()
[AI] Accessor for the MxTransitionManager, handling level transitions, fades, and world changes....
MxBackgroundAudioManager * BackgroundAudioManager()
[AI] Accessor for the background audio manager. Used for background music and ambient sounds....
void FUN_10015820(MxBool p_disable, MxU16 p_flags)
[AI] Utility for enabling or disabling functionality in LegoOmni based on certain flags.
LegoOmni * Lego()
[AI] Retrieves the global LegoOmni singleton instance, providing access to core subsystems.
LegoPathActor * UserActor()
[AI] Accessor for the user (player-controllable) LegoPathActor. [AI]
LegoInputManager * InputManager()
[AI] Accessor for the input manager, which handles keyboard, mouse, and controller input....
LegoROI * FindROI(const char *p_name)
[AI] Looks up a LegoROI (Real-time Object Instance) by name in the current world or global registry.
#define MxTrace(args)
[AI] Macro for trace logging (non-variadic version, MSVC compatibility), expands to nothing.
MxVariableTable * VariableTable()
[AI] Returns the variable table used for script variables and global key/value state.
void DeleteObject(MxDSAction &p_dsAction)
[AI] Deletes the specified action object, removing it from the global action list.
MxNotificationManager * NotificationManager()
[AI] Returns the notification manager for system-wide state/update notifications.
MxTickleManager * TickleManager()
[AI] Provides access to the global tickle manager.
@ c_notificationType22
[AI] Unspecified notification type [AI]
@ c_notificationTransitioned
[AI] Object has transitioned states or locations [AI]
@ c_notificationEndAction
[AI] Indicates the end of an action [AI]
@ c_notificationPathStruct
[AI] Data related to a path structure [AI]
Script
[AI] Identifiers for scripts, actions, entities, and resources for Act2Main.
@ c_BrickstrChase
[AI] Music for the Brickster Chase sequence.
@ c_BrickHunt
[AI] Music for Brick Hunt mission.
@ c_Jail_Music
[AI] Background music for the jail area.
@ c_MusicTheme1
[AI] Main theme music, variant 1.
[AI] Contains global script AtomId pointers and utility functions for managing script AtomIds in LEGO...
MxAtomId * g_jukeboxScript
[AI] Script AtomId for the Jukebox entity/event script.