Isle
Loading...
Searching...
No Matches
islepathactor.cpp
Go to the documentation of this file.
1#include "islepathactor.h"
2
4#include "isle_actions.h"
5#include "jukebox_actions.h"
7#include "legocarbuild.h"
8#include "legonavcontroller.h"
9#include "legopathboundary.h"
10#include "legoutils.h"
11#include "legovideomanager.h"
12#include "legoworld.h"
13#include "misc.h"
15#include "mxnotificationparam.h"
16#include "scripts.h"
18
20DECOMP_SIZE_ASSERT(IslePathActor::SpawnLocation, 0x38)
21
22// FUNCTION: LEGO1 0x1001a200
24{
25 m_world = NULL;
26 m_maxLinearVel = 6.0;
27 m_previousVel = 1.0;
28 m_previousActor = NULL;
29}
30
31// FUNCTION: LEGO1 0x1001a280
33{
34 return MxEntity::Create(p_dsAction);
35}
36
37// FUNCTION: LEGO1 0x1001a2a0
38void IslePathActor::Destroy(MxBool p_fromDestructor)
39{
40 if (!p_fromDestructor) {
42 }
43}
44
45// FUNCTION: LEGO1 0x1001a2c0
46// FUNCTION: BETA10 0x100364ca
48{
49 MxLong result = 0;
50 MxNotificationParam& param = (MxNotificationParam&) p_param;
51
52 switch (param.GetNotification()) {
54 result = HandleNotification0();
55 break;
57 result = HandleClick();
58 break;
61 break;
64 break;
67 break;
68 }
69
70 return result;
71}
72
73// FUNCTION: LEGO1 0x1001a350
74// FUNCTION: BETA10 0x100365ad
76{
78 if (UserActor() != this) {
81 if (m_previousActor) {
84 }
85 }
86
88 if (!m_cameraFlag) {
91
93
94 SetUserActor(this);
97 }
98}
99
100// FUNCTION: LEGO1 0x1001a3f0
101// FUNCTION: BETA10 0x1003669f
103{
106
109
112
113 if (m_previousActor != NULL) {
119
120 MxS32 i;
121 for (i = 0; i < m_boundary->GetNumEdges(); i++) {
123 assert(e);
124
125 Mx3DPointFloat local20;
126 e->FUN_1002ddc0(*m_boundary, local20);
127
128 local20 *= m_roi->GetWorldBoundingSphere().Radius();
129 local20 += GetWorldPosition();
130
131 MxS32 j;
132 for (j = 0; j < m_boundary->GetNumEdges(); j++) {
134
135 if (local20.Dot(normal, local20) + normal[3] < -0.001) {
136 break;
137 }
138 }
139
140 if (m_boundary->GetNumEdges() == j) {
142 break;
143 }
144 }
145
146 if (m_boundary->GetNumEdges() == i) {
148 }
149
152 }
153
154 FUN_1001b660();
155 FUN_10010c30();
156 FUN_1003eda0();
157}
158
159// GLOBAL: LEGO1 0x10102b28
161
162// FUNCTION: LEGO1 0x1001a700
164{
168 0,
169 "int35",
170 2,
171 0.6,
172 4,
173 0.4,
174 0x2a,
176 );
180 0,
181 "edg00_49",
182 1,
183 0.43,
184 2,
185 0.6,
186 0x27,
188 );
192 0,
193 "edg00_191",
194 2,
195 0.5,
196 0,
197 0.55,
198 0x26,
200 );
204 0,
205 "int46",
206 0,
207 0.5,
208 2,
209 0.5,
210 0x10,
212 );
216 0,
217 "EDG00_46",
218 0,
219 0.95,
220 2,
221 0.19,
222 0x17,
224 );
228 0,
229 "EDG00_46",
230 3,
231 0.625,
232 2,
233 0.03,
234 0x18,
236 );
240 0,
241 "EDG10_63",
242 0,
243 0.26,
244 1,
245 0.01,
246 0,
248 );
252 0,
253 "INT15",
254 5,
255 0.65,
256 1,
257 0.68,
258 0x33,
260 );
264 0,
265 "INT16",
266 4,
267 0.1,
268 2,
269 0,
270 0x34,
272 );
276 0,
277 "INT62",
278 2,
279 0.1,
280 3,
281 0.7,
282 0x36,
284 );
288 0,
289 "INT24",
290 0,
291 0.55,
292 2,
293 0.71,
294 0x08,
296 );
300 0,
301 "INT24",
302 2,
303 0.73,
304 4,
305 0.71,
306 0x0a,
308 );
312 0,
313 "INT19",
314 0,
315 0.85,
316 1,
317 0.28,
318 0,
320 );
324 0,
325 "EDG02_28",
326 3,
327 0.37,
328 1,
329 0.52,
330 0x0c,
332 );
336 0,
337 "INT33",
338 0,
339 0.88,
340 2,
341 0.74,
342 0x22,
344 );
348 0,
349 "EDG02_64",
350 2,
351 0.24,
352 0,
353 0.84,
354 0x23,
356 );
360 0,
361 "edg02_51",
362 2,
363 0.63,
364 3,
365 0.01,
366 0,
368 );
372 0,
373 "edg02_51",
374 2,
375 0.63,
376 0,
377 0.4,
378 0,
380 );
384 0,
385 "edg02_35",
386 2,
387 0.8,
388 0,
389 0.2,
390 0,
392 );
396 0,
397 "EDG03_01",
398 2,
399 0.25,
400 0,
401 0.75,
402 0,
404 );
408 0,
409 "edg10_70",
410 3,
411 0.25,
412 0,
413 0.7,
414 0x44,
416 );
420 0,
421 "inv_05",
422 2,
423 0.75,
424 0,
425 0.19,
426 0,
428 );
432 0,
433 "edg02_51",
434 2,
435 0.63,
436 0,
437 0.4,
438 0,
440 );
444 0,
445 "inv_05",
446 2,
447 0.75,
448 0,
449 0.19,
450 0,
452 );
456 0,
457 "EDG02_51",
458 0,
459 0.64,
460 1,
461 0.37,
462 0,
464 );
468 0,
469 "edg02_32",
470 0,
471 0.5,
472 2,
473 0.5,
474 0,
476 );
480 0,
481 "edg02_19",
482 2,
483 0.5,
484 0,
485 0.5,
486 0,
488 );
492 0,
493 "int36",
494 0,
495 0.2,
496 4,
497 0.4,
498 0,
500 );
504 0,
505 "edg02_50",
506 2,
507 0.8,
508 1,
509 0.3,
510 0,
512 );
513}
514
515// FUNCTION: LEGO1 0x1001b2a0
516// FUNCTION: BETA10 0x100369c6
518{
519 MxS16 i;
520
521 for (i = 0; i < c_LOCATIONS_NUM && g_spawnLocations[i].m_area != p_area; i++) {
522 }
523
524 assert(i != c_LOCATIONS_NUM);
525
526 if (i != c_LOCATIONS_NUM) {
528 assert(world);
529
530 if (m_world != NULL) {
531 m_world->RemoveActor(this);
532 m_world->Remove(this);
534 }
535
536 m_world = world;
537
538 if (p_enter) {
539 Enter();
540 }
541
543 this,
544 g_spawnLocations[i].m_name,
545 g_spawnLocations[i].m_src,
546 g_spawnLocations[i].m_srcScale,
547 g_spawnLocations[i].m_dest,
548 g_spawnLocations[i].m_destScale
549 );
550
551 if (GameState()->GetActorId() != m_actorId) {
552 m_world->Add(this);
553 }
554
556
557 if (p_flags & c_spawnBit1) {
558 MxBool camAnim = FALSE;
560
561 switch (g_spawnLocations[i].m_location) {
562 case 0x00:
563 case 0x44:
564 break;
565 case 0x0a:
566 state = (LegoVehicleBuildState*) GameState()->GetState("LegoDuneCarBuildState");
568 break;
569 case 0x18:
570 state = (LegoVehicleBuildState*) GameState()->GetState("LegoJetskiBuildState");
572 break;
573 case 0x23:
574 state = (LegoVehicleBuildState*) GameState()->GetState("LegoCopterBuildState");
576 break;
577 case 0x34:
578 state = (LegoVehicleBuildState*) GameState()->GetState("LegoRaceCarBuildState");
580 break;
581 default:
582 camAnim = TRUE;
583 break;
584 }
585
586 if (state != NULL && state->m_unk0x4d && !state->m_unk0x4e) {
587 if (AnimationManager()
589 SUCCESS) {
590 state->m_unk0x4e = TRUE;
591 camAnim = FALSE;
592 }
593 }
594
595 if (camAnim) {
596 PlayCamAnim(this, FALSE, g_spawnLocations[i].m_location, TRUE);
597 }
598 }
599
600 if (m_cameraFlag) {
601 FUN_1003eda0();
602 }
603
604 if (p_flags & c_playMusic && g_spawnLocations[i].m_music != JukeboxScript::c_noneJukebox) {
605 MxDSAction action;
606 action.SetAtomId(*g_jukeboxScript);
607 action.SetObjectId(g_spawnLocations[i].m_music);
609 }
610 }
611}
612
613// FUNCTION: LEGO1 0x1001b5b0
614void IslePathActor::VTable0xec(MxMatrix p_transform, LegoPathBoundary* p_boundary, MxBool p_reset)
615{
616 if (m_world) {
617 m_world->RemoveActor(this);
618 m_world->Remove(this);
620 }
621
623 if (p_reset) {
624 Enter();
625 }
626
627 m_world->PlaceActor(this);
628 p_boundary->AddActor(this);
629 if (m_actorId != GameState()->GetActorId()) {
630 m_world->Add(this);
631 }
632
633 m_roi->FUN_100a58f0(p_transform);
634 if (m_cameraFlag) {
635 FUN_1003eda0();
636 FUN_10010c30();
637 }
638}
639
640// FUNCTION: LEGO1 0x1001b660
641// FUNCTION: BETA10 0x10036ea2
643{
644 MxMatrix transform(m_roi->GetLocal2World());
645 Vector3 position(transform[0]);
646 Vector3 direction(transform[1]);
647 Vector3 up(transform[2]);
648
649 up *= -1.0f;
650 position.EqualsCross(direction, up);
651 m_roi->FUN_100a58f0(transform);
652 m_roi->VTable0x14();
653}
const float & Radius() const
[AI] Const accessor for the sphere radius.
Definition: roi.h:72
Derived path actor type for handling player transitions and activities on LEGO Island.
Definition: islepathactor.h:23
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]
Definition: islepathactor.h:30
@ c_playMusic
[AI] Bit flag to trigger background music playback on spawn. [AI]
Definition: islepathactor.h:31
void Destroy(MxBool p_fromDestructor) override
[AI] Cleans up the actor and associated resources.
@ c_LOCATIONS_NUM
[AI] Maximum number of spawn locations. [AI]
Definition: islepathactor.h:26
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.
Definition: lego3dview.cpp:89
MxU8 m_actorId
[AI] Unique identifier for this actor, corresponding to enum above.
Definition: legoactor.h:97
virtual MxU8 GetActorId()
[AI] Gets this actor's numeric ID, corresponding to a known enumeration/actor.
Definition: legoactor.h:77
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.
Definition: legoentity.cpp:158
Mx3DPointFloat GetWorldDirection()
[AI] Gets the normalized world-space direction vector, optionally updating from ROI....
Definition: legoentity.cpp:202
virtual void Destroy(MxBool p_fromDestructor)
[AI] Cleans up the entity, detaching ROI and releasing references.
Definition: legoentity.cpp:94
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
virtual void ResetWorldTransform(MxBool p_cameraFlag)
[AI] Resets the transformation for this entity (e.g., used with camera transitions).
Definition: legoentity.cpp:41
LegoROI * m_roi
[AI] Pointer to this entity's currently assigned ROI (3D instance in the world). [AI]
Definition: legoentity.h:215
Mx3DPointFloat GetWorldUp()
[AI] Gets the normalized world-space up vector, optionally updating from ROI. [AI]
Definition: legoentity.cpp:213
Mx3DPointFloat GetWorldPosition()
[AI] Gets the world-space position vector, optionally updating from ROI. [AI]
Definition: legoentity.cpp:224
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.
Definition: legogamestate.h:92
@ e_unk20
Unknown [AI].
@ e_unk43
Unknown [AI].
@ e_unk31
Unknown [AI].
@ e_unk49
Unknown [AI].
@ e_unk50
Unknown [AI].
@ e_unk66
Used for some spawn locations. [AI].
@ e_hospitalExterior
Hospital, seen from outside. [AI].
@ e_unk40
Unknown [AI].
@ e_unk41
Unknown [AI].
@ e_jetraceExterior
Jetski race transition? [AI].
@ e_garageExterior
Garage (vehicle construction) exterior. [AI].
@ e_unk42
Unknown [AI].
@ e_unk55
Unknown [AI].
@ e_unk51
Unknown [AI].
@ e_jetrace2
Jetski race (exterior). [AI].
@ e_pizzeriaExterior
Pizzeria, seen from outside. [AI].
@ e_unk28
Used for certain spawn locations. [AI].
@ e_unk45
Unknown [AI].
@ e_unk33
Used for certain player spawns. [AI].
@ e_unk4
Unknown / possibly reserved. [AI].
Definition: legogamestate.h:98
@ e_jukeboxExterior
Jukebox, seen from outside. [AI].
@ e_unk23
Unknown [AI].
@ e_unk24
Unknown [AI].
@ e_unk44
Unknown [AI].
@ e_unk21
Unknown [AI].
@ e_unk48
Unknown [AI].
@ e_policeExterior
Police Station, from outside. [AI].
@ e_carraceExterior
Car race exterior/transition. [AI].
@ e_unk52
Unknown [AI].
@ e_unk17
Unknown. [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]
Definition: legopathactor.h:37
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...
Definition: legocarbuild.h:24
MxBool m_unk0x4d
[AI] Persists transition or completion flag across world reloads.
Definition: legocarbuild.h:77
MxBool m_unk0x4e
[AI] Unknown. Flag—purpose unclear.
Definition: legocarbuild.h:78
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.
Definition: legoweedge.h:43
LegoUnknown100db7f4 ** GetEdges()
[AI] Gets the array of pointers to the edge objects that form this face.
Definition: legoweedge.h:49
Mx4DPointFloat * GetEdgeNormal(int index)
[AI] Returns a pointer to the 4D edge normal at the given sub-edge index.
Definition: legowegedge.h:75
Represents the active 3D world, holding all entity, animation, sound, path, and ROI objects.
Definition: legoworld.h:49
void Remove(MxCore *p_object)
Removes an object from all relevant world-managed lists or sets, and also detaches if needed.
Definition: legoworld.cpp:508
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.
Definition: legoworld.cpp:267
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
void RemoveActor(LegoPathActor *p_actor)
Removes an actor from all known path controllers.
Definition: legoworld.cpp:325
[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
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...
Definition: mxdsaction.h:17
virtual void SetAtomId(MxAtomId p_atomId)
[AI] Sets the atom id for this object instance, used for indexing or lookup.
Definition: mxdsobject.h:118
void SetObjectId(MxU32 p_objectId)
[AI] Sets the object id (for serialization or lookup).
Definition: mxdsobject.h:147
virtual MxResult Create(MxS32 p_entityId, const MxAtomId &p_atomId)
Initializes the entity from a given entity ID and AtomId.
Definition: mxentity.h:69
MxS32 m_entityId
The unique entity ID, typically used for lookup and reference.
Definition: mxentity.h:119
[AI] Represents a 4x4 transformation matrix, specialized for the LEGO Island engine and derived from ...
Definition: mxmatrix.h:16
[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...
Definition: mxparam.h:7
@ e_repeating
[AI] Presentation is repeating (e.g., looping media).
Definition: mxpresenter.h:28
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().
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 SetVisibility(unsigned char p_visible)
[AI] Sets the visibility flag to the provided value.
Definition: roi.h:235
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.
Definition: vector.h:249
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 ...
Definition: viewmanager.cpp:95
void Add(ViewROI *p_roi)
[AI] Adds a ViewROI object to the list of managed ROI objects.
Definition: viewmanager.h:161
#define TRUE
Definition: d3drmdef.h:28
#define FALSE
Definition: d3drmdef.h:27
#define DECOMP_SIZE_ASSERT(T, S)
Definition: decomp.h:19
IslePathActor::SpawnLocation g_spawnLocations[IslePathActor::c_LOCATIONS_NUM]
#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 FUN_1003eda0()
[AI] Updates sound listener position to follow the view ROI's transform.
Definition: legoutils.cpp:476
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...
Definition: legoutils.cpp:459
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
LegoVideoManager * VideoManager()
[AI] Accessor for the game's LegoVideoManager subsystem. Used for managing 3D/video hardware....
Definition: misc.cpp:29
LegoAnimationManager * AnimationManager()
[AI] Accessor for the animation manager, which controls Lego character/world animation state....
Definition: misc.cpp:69
MxBackgroundAudioManager * BackgroundAudioManager()
[AI] Accessor for the background audio manager. Used for background music and ambient sounds....
Definition: misc.cpp:37
ViewManager * GetViewManager()
[AI] Accessor for the current ViewManager, managing rendering views/cameras. [AI]
Definition: misc.cpp:108
void SetUserActor(LegoPathActor *p_userActor)
[AI] Sets the user-controlled LegoPathActor in the engine.
Definition: misc.cpp:168
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.
Definition: misc.cpp:188
LegoWorld * CurrentWorld()
[AI] Accessor for the currently active LegoWorld instance. [AI]
Definition: misc.cpp:93
LegoNavController * NavController()
[AI] Accessor for the navigation controller, managing player/camera navigation. [AI]
Definition: misc.cpp:77
LegoPathActor * UserActor()
[AI] Accessor for the user (player-controllable) LegoPathActor. [AI]
Definition: misc.cpp:85
@ 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]
MxU8 MxBool
[AI]
Definition: mxtypes.h:124
MxLong MxResult
[AI]
Definition: mxtypes.h:106
int MxLong
[AI]
Definition: mxtypes.h:83
signed short MxS16
[AI]
Definition: mxtypes.h:26
unsigned char MxU8
[AI]
Definition: mxtypes.h:8
signed int MxS32
[AI]
Definition: mxtypes.h:38
@ c_ips002ro_RunAnim
Definition: isle_actions.h:702
@ c_igs008na_RunAnim
Definition: isle_actions.h:700
@ c_ijs006sn_RunAnim
Definition: isle_actions.h:699
@ c_irt007in_RunAnim
Definition: isle_actions.h:701
@ 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.
Definition: scripts.cpp:66
MxAtomId * g_jukeboxScript
[AI] Script AtomId for the Jukebox entity/event script.
Definition: scripts.cpp:70
MxAtomId * g_act2mainScript
[AI] Script AtomId for main script of Act 2 (island event progression).
Definition: scripts.cpp:63
Information for each player spawn location on LEGO Island.
Definition: islepathactor.h:41
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.