19#if defined(_M_IX86) || defined(__i386__)
20#define COMPARE_POINTER_TYPE MxS32
22#define COMPARE_POINTER_TYPE MxS32*
263 MxCore*
Find(
const char* p_class,
const char* p_name);
[AI] Handles playback and synchronization of animated LEGO objects, including variable substitution,...
[AI] Specialized pointer list for managing a collection of LegoCacheSound objects,...
Camera controller for 3D scenes, handles interactive camera manipulation and view transformation.
[AI] A strongly typed list for holding LegoEntity pointers.
[AI] Represents an entity that can be placed and managed in the LEGO Island world.
MxBool IsA(const char *p_name) const override
[AI] Polymorphic type check for this entity given a string.
[AI] Presenter class responsible for controlling animations that hide or show actors based on animati...
World
[AI] Identifiers for all unique, script-driven world environments in LEGO Island.
[AI] An actor that moves along a predefined path, supporting boundary transitions,...
[AI] Represents a path segment or boundary in the navigation network for actors (vehicles,...
Class representing a list of pointers to LegoPathController objects, with optional ownership semantic...
[AI] Manager for controlling actors' movement along predefined geometric paths.
Represents the active 3D world, holding all entity, animation, sound, path, and ROI objects.
undefined m_unk0xf7
Unknown, probably flags or padding.
void SetWorldId(LegoOmni::World p_worldId)
Sets the world id for this world instance.
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.
virtual void VTable0x60()
Placeholder/extensible virtual—default does nothing.
LegoOmni::World m_worldId
Currently assigned world id, corresponding to an enum in LegoOmni.
MxResult GetCurrPathInfo(LegoPathBoundary **p_boundaries, MxS32 &p_numL)
Gets information about the currently active path and boundaries.
LegoCacheSoundList * m_cacheSoundList
List of cached sounds for faster access during this world's lifetime.
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.
LegoHideAnimPresenter * m_hideAnim
Animation presenter for ROI hide (vanish, fade, etc.) sequences.
MxBool PresentersPending()
Checks if there are any presenters pending to fully enter their tickle (animation) state.
LegoPathControllerList m_pathControllerList
List of all path controllers currently managing pathing in this world.
MxCoreSet m_set0xd0
Set of currently paused/disconnected objects when world is disabled.
virtual void Add(MxCore *p_object)
Adds an object (entity, presenter, ROI, etc.) to the appropriate world-managed list or set.
virtual void Enable(MxBool p_enable)
Enables or disables (pauses) the world and its main components.
MxBool ActorExists(LegoPathActor *p_actor)
Determines if an actor already exists in any controller in this world.
LegoHideAnimPresenter * GetHideAnimPresenter()
Gets the animation presenter responsible for hide animations in this world.
MxResult Tickle() override
Main world tick/update, especially manages startup countdown.
LegoOmni::World GetWorldId()
Gets the world id associated with this world.
LegoPathBoundary * FindPathBoundary(const char *p_name)
Finds a path boundary in all path controllers by name.
LegoEntityList * GetEntityList()
Returns the current list of entities.
MxCoreSet m_set0xa8
Set of 'auxiliary' objects, including presenters, that aren't core entity or animation,...
MxBool IsA(const char *p_name) const override
Runtime type checking; checks class hierarchy.
void FUN_1001fda0(LegoAnimPresenter *p_presenter)
Forwards a presenter to all path controllers to perform a custom action (possibly hide,...
list< LegoROI * > m_roiList
List of all visible LegoROI objects in the world, used for rendering and selection.
LegoCameraController * m_cameraController
Camera controller for world's main view.
MxS16 m_startupTicks
Current world startup tick countdown—controls staged world startup logic.
LegoWorld()
Constructs a LegoWorld, initializing lists and notifying the notification manager.
const char * ClassName() const override
Returns the class name for runtime type information and debugging.
MxBool GetUnknown0xd0Empty()
Checks if the 'set0xd0' set is empty.
MxBool m_worldStarted
Indicates if the world has successfully started and is considered active.
StartupTicks
Ticks for world startup sequencing.
@ e_start
Start tick, world is ready to be started. [AI].
@ e_two
Countdown tick 2. [AI].
@ e_four
Countdown tick 4, initial state. [AI].
@ e_one
Countdown tick 1. [AI].
@ e_three
Countdown tick 3. [AI].
void Destroy(MxBool p_fromDestructor) override
Destroys the world and its contents, optionally called from the destructor.
MxBool m_destroyed
Indicates if the world has been destroyed or is pending destruction.
void FUN_1001fe90(LegoAnimPresenter *p_presenter)
Forwards a presenter to all path controllers for another custom or state change action.
virtual MxBool Escape()
Handles user-initiated "escape" or exit action.
virtual MxBool VTable0x5c()
Potential "escape" action for world; returns FALSE by default, may be overridden in child worlds.
MxCore * Find(const char *p_class, const char *p_name)
Finds an object of a given class and name in the world.
LegoEntityList * m_entityList
List of all main world entities, such as actors and objects.
MxLong Notify(MxParam &p_param) override
Notification callback responding to registered events such as EndAction and NewPresenter.
virtual LegoCameraController * VTable0x54()
Initializes and returns the camera controller for the world; may create it on-demand.
MxPresenterList m_animPresenters
List of active animation presenters (anims, hide/show, looping, etc.).
list< LegoROI * > & GetROIList()
Gets the list of all ROIs (Real-time Object Instances) in the world.
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.
MxPresenterList m_controlPresenters
List of control presenters (UI, input, cutscene control, etc.).
void AddPath(LegoPathController *p_controller)
Adds a path controller to the world and calls its initialization with this.
LegoCameraController * GetCameraController()
Returns the current camera controller for the world.
~LegoWorld() override
Cleans up the world, destroying all held entities, presenters, and controllers.
[AI] Atomized (unique) string identifier, managed by reference counting.
[AI] Base virtual class for all Mindscape engine (Mx) objects.
[AI] Represents an action deserialized from SI chunks, holding key animation or script parameters suc...
[AI] MxParam serves as a polymorphic base class for parameter passing in event and notification syste...
[AI] List to hold pointers to MxPresenter objects with optional ownership semantics.
[AI] 3D vector class, providing vector and cross-product operations in 3D space.
#define COMPARE_POINTER_TYPE
set< MxCore *, CoreSetCompare > MxCoreSet
Set of MxCore* pointers with custom comparison for pointer stability and uniqueness.
Comparison functor for MxCore* pointers used by MxCoreSet to ensure a consistent ordering.
MxS32 operator()(MxCore *const &p_a, MxCore *const &p_b) const