Isle
Loading...
Searching...
No Matches
helicopter.cpp
Go to the documentation of this file.
1#include "helicopter.h"
2
3#include "act3.h"
4#include "act3_actions.h"
5#include "isle.h"
6#include "isle_actions.h"
7#include "jukebox.h"
8#include "jukebox_actions.h"
11#include "legocontrolmanager.h"
12#include "legogamestate.h"
13#include "legoutils.h"
14#include "legoworld.h"
15#include "misc.h"
16#include "mxdebug.h"
17#include "mxmisc.h"
18#include "mxtimer.h"
19#include "mxtransitionmanager.h"
20#include "scripts.h"
21
31
32// FUNCTION: LEGO1 0x10001e60
33// FUNCTION: BETA10 0x1002a0d0
35{
36 m_maxLinearVel = 60;
37}
38
39// FUNCTION: LEGO1 0x10003230
41{
44}
45
46// FUNCTION: LEGO1 0x100032c0
47// FUNCTION: BETA10 0x1002a16d
49{
50 MxResult result = IslePathActor::Create(p_dsAction);
51
53 if (m_world->IsA("Act3")) {
54 ((Act3*) m_world)->SetHelicopter(this);
55 }
56
57 assert(m_world);
58
59 if (m_world != NULL) {
60 m_world->Add(this);
61 }
62
64 return result;
65}
66
67// FUNCTION: LEGO1 0x10003320
68// FUNCTION: BETA10 0x1002a240
70{
71 m_state = (HelicopterState*) GameState()->GetState("HelicopterState");
72 if (!m_state) {
73 m_state = (HelicopterState*) GameState()->CreateState("HelicopterState");
74 }
75}
76
77// FUNCTION: LEGO1 0x10003360
78// FUNCTION: BETA10 0x1002a29a
80{
81 assert(UserActor() == this);
82
83 if (GameState()->GetCurrentAct() == LegoGameState::e_act1) {
86 TRUE,
88 );
89 }
90
92
93 if (GameState()->GetCurrentAct() == LegoGameState::e_act1) {
95 if (UserActor() && UserActor()->IsA("IslePathActor")) {
99 TRUE,
101 );
102 }
103 }
104
105 m_state->m_unk0x08 = 0;
117 ControlManager()->Unregister(this);
118}
119
120// FUNCTION: LEGO1 0x10003480
121// FUNCTION: BETA10 0x1002a3db
123{
124 if (!FUN_1003ef60()) {
125 return 1;
126 }
127
128 if (!m_world) {
130 assert(m_world);
131 }
132
134
135 if (UserActor()) {
136 if (UserActor()->GetActorId() != GameState()->GetActorId()) {
137 ((IslePathActor*) UserActor())->Exit();
138 }
139 }
140
141 switch (GameState()->GetCurrentAct()) {
147 TRUE,
149 );
150 ((Isle*) CurrentWorld())->SetDestLocation(LegoGameState::e_copter);
151 FUN_10015820(TRUE, 0);
155 break;
158 break;
161 break;
162 }
163
164 Enter();
167 ControlManager()->Register(this);
168 return 1;
169}
170
171// FUNCTION: LEGO1 0x100035e0
172// FUNCTION: BETA10 0x1002a587
174{
175 MxLong result = 0;
176
177 assert(m_world);
178 MxAtomId script;
179
180 switch (GameState()->GetCurrentAct()) {
182 script = *g_isleScript;
183 break;
185 script = *g_act2mainScript;
186 break;
188 script = *g_act3Script;
189 break;
190 }
191
192 if (p_param.m_unk0x28 == 1) {
193 MxU32 isPizza = FALSE;
194
195 switch (p_param.m_clickedObjectId) {
197 if (*g_act3Script == script) {
198 ((Act3*) CurrentWorld())->SetDestLocation(LegoGameState::e_infomain);
200 }
201 else if (m_state->m_unk0x08 != 0) {
202 break;
203 }
204
205 Exit();
207 result = 1;
208 break;
210 if (*g_act3Script == script) {
211 break;
212 }
213
214 Act1State* act1State = (Act1State*) GameState()->GetState("Act1State");
215 assert(act1State);
216 if (m_state->m_unk0x08 == 0) {
217 act1State->m_unk0x018 = 4;
218 m_state->m_unk0x08 = 1;
219 m_world->RemoveActor(this);
222 }
223
224 result = 1;
225 break;
226 }
228 if (*g_act3Script == script) {
229 break;
230 }
231
232 if (m_state->m_unk0x08 == 2) {
233 m_state->m_unk0x08 = 3;
234 m_world->RemoveActor(this);
237 }
238
239 result = 1;
240 break;
242 if (*g_act3Script != script) {
243 break;
244 }
245
246 isPizza = TRUE;
248 if (*g_act3Script != script) {
249 break;
250 }
251
252 assert(m_pathController);
253
255 Mx3DPointFloat location, direction, lookat;
256
259
260 lookat = direction;
261 lookat *= 3.0f;
262 location += lookat;
263
264 Mx3DPointFloat v68, va4, up;
265 Mx3DPointFloat v90(0, 1, 0);
267 va4.EqualsCross(v68, direction);
268 up.EqualsCross(va4, v90);
269
270 if (isPizza) {
271 if (((Act3*) m_world)->ShootPizza(m_pathController, location, direction, up) != SUCCESS) {
272 MxTrace("Shoot pizza failed\n");
273 break;
274 }
275 }
276 else {
277 if (((Act3*) m_world)->ShootDonut(m_pathController, location, direction, up) != SUCCESS) {
278 MxTrace("Shoot donut failed\n");
279 break;
280 }
281 }
282 }
283
284 result = 1;
285 break;
286 /* case Act3Script::c_Helicopter_Info_Ctl: */
288 if (GameState()->GetCurrentAct() == LegoGameState::e_act1) {
289 ((Isle*) CurrentWorld())->SetDestLocation(LegoGameState::e_infomain);
291 Exit();
292 }
293 else if (*g_act3Script == script) {
294 ((Act3*) CurrentWorld())->SetDestLocation(LegoGameState::e_infomain);
296 }
297
298 result = 1;
299 break;
300 // Unknown object ID
301 case 0x1d:
302 result = 1;
303 break;
304 }
305 }
306
307 return result;
308}
309
310// FUNCTION: LEGO1 0x10003c20
311// FUNCTION: BETA10 0x1002ab4c
313{
314 MxLong result = 0;
315
316 switch (m_state->m_unk0x08) {
317 case 1: {
318 if (GameState()->GetCurrentAct() == LegoGameState::e_act1) {
319 Act1State* act1State = (Act1State*) GameState()->GetState("Act1State");
320 assert(act1State);
321 act1State->m_unk0x018 = 4;
324 TRUE,
326 );
327 }
328 else {
331 TRUE,
333 );
334 }
335
336 m_state->m_unk0x08 = 2;
337
338 MxMatrix matrix;
339 matrix.SetIdentity();
340 matrix.RotateX(0.5235987901687622); // PI / 6, 30 deg
341 Vector3 at(matrix[3]), dir(matrix[2]), up(matrix[1]);
342
343 assert(m_world && m_world->GetCameraController());
345 FUN_10010c30();
346 result = 1;
347 break;
348 }
349 case 3: {
350 MxMatrix matrix;
351 matrix.SetIdentity();
352
353 Vector3 at(matrix[3]), dir(matrix[2]), up(matrix[1]);
354 at[1] = 1.25;
355
356 assert(m_world && m_world->GetCameraController());
358
359 if (GameState()->GetCurrentAct() == LegoGameState::e_act1) {
360 Act1State* act1State = (Act1State*) GameState()->GetState("Act1State");
361 assert(act1State);
362 act1State->m_unk0x018 = 0;
365 TRUE,
367 );
368 }
369 else {
372 TRUE,
374 );
375 }
376
377 m_state->m_unk0x08 = 0;
378 result = 1;
379 break;
380 }
381 }
382
383 return result;
384}
385
386// FUNCTION: LEGO1 0x10003e90
388{
389 if (m_userNavFlag) {
391 FUN_10010c30();
392 }
393 else {
394 m_roi->FUN_100a58f0(p_transform);
395 m_roi->VTable0x14();
396 if (m_cameraFlag) {
397 FUN_10010c30();
398 }
399 }
400}
401
402// FUNCTION: LEGO1 0x10003ee0
403void Helicopter::Animate(float p_time)
404{
405 if (m_state->m_unk0x08 == 4 || m_state->m_unk0x08 == 5) {
406 float f = m_unk0x1f0 - p_time + 3000.0f;
407 if (f >= 0) {
408 float f2 = f / -3000.0f + 1;
409 if (f2 < 0) {
410 f2 = 0;
411 }
412 if (f2 > 1.0f) {
413 f2 = 1.0f;
414 }
415
416 MxMatrix mat;
417 Vector3 v1(m_unk0x160[3]);
418 Vector3 v2(mat[3]);
419 Vector3 v3(m_unk0x1a8[3]);
420
421 mat.SetIdentity();
423
424 v2 = v3;
425 v2 -= v1;
426 v2 *= f2;
427 v2 += v1;
428
430 }
431 else {
432 if (m_state->m_unk0x08 == 4) {
433 ((Act3*) m_world)->FUN_10073400();
434 }
435 else {
436 ((Act3*) m_world)->FUN_10073430();
437 }
438
440 }
441 }
442 else {
444 }
445}
446
447// FUNCTION: LEGO1 0x100042a0
449{
450 MxMatrix local48;
451 MxMatrix local90;
452
453 Vector3 vec1(local48[3]); // local98 // esp+0x30
454 Vector3 vec2(local90[3]); // localac // esp+0x1c
455 Vector3 vec3(m_unk0x1a8[0]); // locala8 // esp+0x20
456 Vector3 vec4(m_unk0x1a8[1]); // localb8 // esp+0x10
457 Vector3 vec5(m_unk0x1a8[2]); // EDI
458 Vector3 vec6(m_unk0x1a8[3]); // locala0 // esp+0x28
459
462 local90 = p_matrix;
463
464 vec2[1] += 20.0f;
465 vec4 = vec2;
466 vec4 -= vec1;
467 vec4.Unitize();
468
469 vec5[0] = vec5[2] = 0.0f;
470 vec5[1] = -1.0f;
471
472 vec3.EqualsCross(vec4, vec5);
473 vec3.Unitize();
474 vec4.EqualsCross(vec5, vec3);
475 vec6 = vec2;
476
477 local90 = m_unk0x1a8;
478 m_unk0x160 = local48;
479
480 vec1.Clear();
481 vec2.Clear();
482
483 m_unk0x1f0 = Timer()->GetTime();
484
485 m_unk0x1f4.SetStartEnd(local48, local90);
487}
488
489// FUNCTION: LEGO1 0x10004640
491{
492 if (m_state->m_unk0x08 != 4 && m_state->m_unk0x08 != 5) {
493 m_state->m_unk0x08 = 4;
494 FUN_100042a0(p_matrix);
495 }
496}
497
498// FUNCTION: LEGO1 0x10004670
500{
501 if (m_state->m_unk0x08 != 4 && m_state->m_unk0x08 != 5) {
502 m_state->m_unk0x08 = 5;
503 FUN_100042a0(p_matrix);
504 }
505}
[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.
Definition: isle.h:29
MxU32 m_unk0x018
[AI] Internal gameplay state variable; see Get/SetUnknown18 for usage. [AI]
Definition: isle.h:92
[AI] Controls all main logic and progression of Act 3 in LEGO Island, including objects,...
Definition: act3.h:182
[AI] Game state entity specialized for tracking Helicopter-related state during gameplay.
Definition: helicopter.h:14
MxU32 m_unk0x08
[AI] State/progress value for the helicopter, used for tracking animation or progress in gameplay....
Definition: helicopter.h:51
[AI] Represents the flyable helicopter vehicle/path actor in the game, handling all in-game behaviors...
Definition: helicopter.h:57
~Helicopter() override
[AI] Destructor, handles cleanup/unregistration. [AI]
Definition: helicopter.cpp:40
MxMatrix m_unk0x1a8
[AI] Stores end matrix (camera/actor) for camera transitions/interpolation. [AI]
Definition: helicopter.h:136
void FUN_10004640(const Matrix4 &p_matrix)
[AI] Initiates camera transition for takeoff (Act3 minigame).
Definition: helicopter.cpp:490
MxResult Create(MxDSAction &p_dsAction) override
[AI] Creates (initializes) the helicopter entity from an action script.
Definition: helicopter.cpp:48
void VTable0x74(Matrix4 &p_transform) override
[AI] Applies world transformations relevant to helicopter motion/position.
Definition: helicopter.cpp:387
void FUN_100042a0(const Matrix4 &p_matrix)
[AI] Internal: Sets up smooth camera path and stores transform endpoints used for takeoff/landing tra...
Definition: helicopter.cpp:448
float m_unk0x1f0
[AI] Timestamp for beginning of camera/copter transition—used for timing interpolation....
Definition: helicopter.h:137
void Animate(float p_time) override
[AI] Handles animation logic for the helicopter.
Definition: helicopter.cpp:403
MxMatrix m_unk0x160
[AI] Stores start matrix (camera/actor) for camera transitions/interpolation. [AI]
Definition: helicopter.h:135
MxLong HandleControl(LegoControlManagerNotificationParam &p_param) override
[AI] Processes input/control events specific to helicopter (dashboard/cockpit/archetype event handlin...
Definition: helicopter.cpp:173
HelicopterState * m_state
[AI] Pointer to the associated HelicopterState tracking per-helicopter animation/state....
Definition: helicopter.h:139
void FUN_10004670(const Matrix4 &p_matrix)
[AI] Initiates camera transition for landing (Act3 minigame).
Definition: helicopter.cpp:499
void Exit() override
[AI] Handles the helicopter's exit/teardown. Resets state, unregisters, updates game state and cleans...
Definition: helicopter.cpp:79
MxLong HandleClick() override
[AI] Processes click interactions with the helicopter UI/actor.
Definition: helicopter.cpp:122
void CreateState()
[AI] Creates or retrieves the associated HelicopterState instance for this actor. [AI]
Definition: helicopter.cpp:69
MxBool IsA(const char *p_name) const override
[AI] Checks if this object is of the requested class or a superclass.
Definition: helicopter.h:76
MxQuaternionTransformer m_unk0x1f4
[AI] Interpolator for quaternion/matrix transforms (camera movement for animation)....
Definition: helicopter.h:138
MxLong HandleEndAnim(LegoEndAnimNotificationParam &p_param) override
[AI] Handles end-of-animation events for the helicopter (e.g., animation state transitions).
Definition: helicopter.cpp:312
MxAtomId m_script
[AI] Current script-atom identifier for action callbacks and in-game object referencing....
Definition: helicopter.h:140
Derived path actor type for handling player transitions and activities on LEGO Island.
Definition: islepathactor.h:23
@ c_spawnBit1
[AI] Bit flag to trigger additional camera/animation sequence during spawn. [AI]
Definition: islepathactor.h:30
@ c_playMusic
[AI] Bit flag to trigger background music playback on spawn. [AI]
Definition: islepathactor.h:31
@ c_spawnBit3
[AI] Unused/reserved extra spawn bit in flag set. [AI]
Definition: islepathactor.h:32
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...
Definition: isle.h:179
virtual MxU8 GetActorId()
[AI] Gets this actor's numeric ID, corresponding to a known enumeration/actor.
Definition: legoactor.h:77
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 ...
Definition: legoentity.cpp:192
MxBool m_cameraFlag
[AI] Set to TRUE if this entity is currently the camera target. [AI]
Definition: legoentity.h:218
LegoROI * m_roi
[AI] Pointer to this entity's currently assigned ROI (3D instance in the world). [AI]
Definition: legoentity.h:215
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].
Definition: legogamestate.h:86
@ e_act1
Act 1: the first main segment of the game. [AI].
Definition: legogamestate.h:84
@ e_act2
Act 2: main story segment two. [AI].
Definition: legogamestate.h:85
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].
Definition: legogamestate.h:96
@ e_unk49
Unknown [AI].
@ e_copter
Helicopter (vehicle, spawn). [AI].
@ e_unk66
Used for some spawn locations. [AI].
@ e_unk40
Unknown [AI].
@ e_unk41
Unknown [AI].
@ e_unk42
Unknown [AI].
@ e_unk55
Unknown [AI].
@ e_unk48
Unknown [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]
Definition: legopathactor.h:37
@ c_disabled
[AI] Marks as disabled or inactive for path follow logic. [AI]
Definition: legopathactor.h:41
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.
Definition: legoworld.cpp:418
MxBool IsA(const char *p_name) const override
Runtime type checking; checks class hierarchy.
Definition: legoworld.h:153
void RemoveActor(LegoPathActor *p_actor)
Removes an actor from all known path controllers.
Definition: legoworld.cpp:325
LegoCameraController * GetCameraController()
Returns the current camera controller for the world.
Definition: legoworld.h:277
4x4 Matrix class with virtual interface for manipulation and transformation.
Definition: matrix.h:24
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.
Definition: mxgeometry3d.h:14
[AI] 4D point class for floating point values.
Definition: mxgeometry4d.h:18
[AI] Atomized (unique) string identifier, managed by reference counting.
Definition: mxatom.h:124
[AI] Represents an action deserialized from SI chunks, holding key animation or script parameters suc...
Definition: mxdsaction.h:17
void SetObjectId(MxU32 p_objectId)
[AI] Sets the object id (for serialization or lookup).
Definition: mxdsobject.h:147
[AI] Represents a 4x4 transformation matrix, specialized for the LEGO Island engine and derived from ...
Definition: mxmatrix.h:16
void SetStartEnd(Matrix4 &p_m1, Matrix4 &p_m2)
Sets start and end quaternions by converting two matrices to quaternion form.
int InterpolateToMatrix(Matrix4 &p_matrix, float p_f)
Interpolates between start and end quaternions using spherical interpolation (slerp) and produces a 4...
long NormalizeDirection()
Ensures shortest path interpolation by potentially flipping the end quaternion's sign.
MxLong GetTime()
Returns the current timer value in ms, depending on running state.
Definition: mxtimer.h:50
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().
Definition: orientableroi.h:64
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.
Definition: vector.h:16
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.
Definition: vector.h:249
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...
Definition: vector.h:365
#define TRUE
Definition: d3drmdef.h:28
#define FALSE
Definition: d3drmdef.h:27
#define DECOMP_SIZE_ASSERT(T, S)
Definition: decomp.h:19
#define NULL
[AI] Null pointer value (C/C++ semantics).
Definition: legotypes.h:26
#define SUCCESS
[AI] Used to indicate a successful operation in result codes.
Definition: legotypes.h:30
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.
Definition: legoutils.cpp:271
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...
Definition: legoutils.cpp:495
MxBool FUN_1003ef60()
[AI] Determines if the current actor can exit their area, based on state/zone/vehicle.
Definition: legoutils.cpp:572
MxAtomId * g_isleScript
[AI] Node used in hierarchical scene graphs and animation trees. [AI]
Definition: scripts.cpp:32
LegoGameState * GameState()
[AI] Accessor for the game's central game state controller. [AI]
Definition: misc.cpp:61
LegoAnimationManager * AnimationManager()
[AI] Accessor for the animation manager, which controls Lego character/world animation state....
Definition: misc.cpp:69
MxTransitionManager * TransitionManager()
[AI] Accessor for the MxTransitionManager, handling level transitions, fades, and world changes....
Definition: misc.cpp:208
MxDSAction & GetCurrentAction()
[AI] Accessor for the currently running MxDSAction (e.g.
Definition: misc.cpp:195
LegoControlManager * ControlManager()
[AI] Accessor for the control manager through the input manager; manages higher-level user/game contr...
Definition: misc.cpp:53
LegoWorld * CurrentWorld()
[AI] Accessor for the currently active LegoWorld instance. [AI]
Definition: misc.cpp:93
void FUN_10015820(MxBool p_disable, MxU16 p_flags)
[AI] Utility for enabling or disabling functionality in LegoOmni based on certain flags.
Definition: misc.cpp:143
void PlayMusic(JukeboxScript::Script p_objectId)
[AI] Starts music playback by scripting the background audio manager to play the music piece referenc...
Definition: misc.cpp:216
LegoPathActor * UserActor()
[AI] Accessor for the user (player-controllable) LegoPathActor. [AI]
Definition: misc.cpp:85
#define MxTrace(args)
[AI] Macro for trace logging (non-variadic version, MSVC compatibility), expands to nothing.
Definition: mxdebug.h:55
MxTimer * Timer()
[AI] Returns the global simulation timer.
Definition: mxmisc.cpp:33
MxLong MxResult
[AI]
Definition: mxtypes.h:106
int MxLong
[AI]
Definition: mxtypes.h:83
unsigned int MxU32
[AI]
Definition: mxtypes.h:32
@ c_Helicopter_Donut_Ctl
[AI] Script control for helicopter donut UI or system. [AI]
Definition: act3_actions.h:43
@ c_Helicopter_Info_Ctl
[AI] Script control for helicopter info/help UI or system. [AI]
Definition: act3_actions.h:44
@ c_Helicopter_Pizza_Ctl
[AI] Script control for helicopter pizza UI or system. [AI]
Definition: act3_actions.h:42
@ c_HelicopterArms_Ctl
Definition: isle_actions.h:45
@ c_Helicopter_Info_Ctl
Definition: isle_actions.h:49
@ c_HelicopterDashboard
Definition: isle_actions.h:43
@ c_HelicopterDashboard_Bitmap
Definition: isle_actions.h:44
@ c_Helicopter_Land_Ctl
Definition: isle_actions.h:47
@ c_HelicopterTakeOff_Anim
Definition: isle_actions.h:51
@ c_HelicopterLand_Anim
Definition: isle_actions.h:52
@ c_Helicopter_TakeOff_Ctl
Definition: isle_actions.h:46
@ 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.
Definition: scripts.cpp:66
MxAtomId * g_act2mainScript
[AI] Script AtomId for main script of Act 2 (island event progression).
Definition: scripts.cpp:63
@ e_start
[AI] Start an activity or playback [AI]
Definition: extra.h:30