Isle
|
[AI] Central subsystem coordinator and singleton of the LEGO Island engine. More...
#include <mxomni.h>
Public Member Functions | |
MxOmni () | |
[AI] Initializes default state. More... | |
~MxOmni () override | |
[AI] Destroys all subsystems and releases memory/resources. More... | |
MxLong | Notify (MxParam &p_param) override |
[AI] Handles global notifications. More... | |
virtual void | Init () |
[AI] Resets all internal pointers to defaults. More... | |
virtual MxResult | Create (MxOmniCreateParam &p_param) |
[AI] Allocates and configures engine subsystems, depending on the provided flags in MxOmniCreateParam. More... | |
virtual void | Destroy () |
[AI] Tears down all engine subsystems, deletes and frees all managed memory. More... | |
virtual MxResult | Start (MxDSAction *p_dsAction) |
[AI] Requests the start of a top-level scripted action (from SI). More... | |
virtual void | DeleteObject (MxDSAction &p_dsAction) |
[AI] Deletes a world or subsystem object corresponding to an action. More... | |
virtual MxBool | DoesEntityExist (MxDSAction &p_dsAction) |
[AI] Checks whether an entity (gameplay object) exists by querying the streamer and notification manager. More... | |
virtual MxResult | CreatePresenter (MxStreamController *p_controller, MxDSAction &p_action) |
[AI] Instantiates and starts a Presenter (e.g., video, sound, animation) to handle the specified action on the given stream controller. More... | |
virtual MxEntity * | AddToWorld (const char *, MxS32, MxPresenter *) |
[AI] [VIRTUAL BASE] Placeholder virtual for derived engines to instantiate an entity and add to the 3D world. More... | |
virtual void | NotifyCurrentEntity (const MxNotificationParam &p_param) |
[AI] [VIRTUAL BASE] Placeholder for derived implementations—sends a notification to the currently active entity. More... | |
virtual void | Pause () |
[AI] Pauses subsystems that support pausing (timer, sound manager) and sets paused state. More... | |
virtual void | Resume () |
[AI] Resumes paused subsystems (timer, sound manager) and clears paused state. More... | |
virtual MxBool | IsPaused () |
[AI] Returns paused state of the engine. More... | |
HWND | GetWindowHandle () const |
[AI] Gets the window handle (HWND) associated with the engine (ownership not transferred). More... | |
MxObjectFactory * | GetObjectFactory () const |
[AI] Retrieves the currently used object factory for presenter/entity instantiation (ownership not transferred). More... | |
MxNotificationManager * | GetNotificationManager () const |
[AI] Returns the notification manager responsible for enqueuing and dispatching notifications/events. More... | |
MxTickleManager * | GetTickleManager () const |
[AI] Returns the tickle manager which manages the tickle update loop for registered clients. More... | |
MxTimer * | GetTimer () const |
[AI] Gets the main frame-timer object (if any). More... | |
MxStreamer * | GetStreamer () const |
[AI] Returns the engine's global streamer object for media/data access. More... | |
MxSoundManager * | GetSoundManager () const |
[AI] Gets the engine's sound manager used for playing/controlling sounds. More... | |
MxVideoManager * | GetVideoManager () const |
[AI] Returns the video media manager (for handling FLC/SMK/etc.), if present. More... | |
MxVariableTable * | GetVariableTable () const |
[AI] Gets the global variable table for scripting/logic purposes. More... | |
MxMusicManager * | GetMusicManager () const |
[AI] Returns the current music manager, responsible for background/interactive music. More... | |
MxEventManager * | GetEventManager () const |
[AI] Get the event manager responsible for handling event queueing/dispatching. More... | |
MxAtomSet * | GetAtomSet () const |
[AI] Gets the atom set used for mapping strings/IDs to atom objects. More... | |
MxLong | HandleEndAction (MxParam &p_param) |
[AI] Handles the engine's response to action end notifications (c_notificationEndAction), deletes action objects as necessary and manages streamer state. More... | |
![]() | |
MxCore () | |
[AI] Constructs a new MxCore object and assigns it a unique id. More... | |
virtual | ~MxCore () |
[AI] Virtual destructor. Required for correct polymorphic cleanup in derived classes. More... | |
virtual MxLong | Notify (MxParam &p_param) |
[AI] Virtual callback notification mechanism. More... | |
virtual MxResult | Tickle () |
[AI] Called by tickle managers to allow the object to update itself. More... | |
virtual const char * | ClassName () const |
[AI] Returns the runtime class name of this object. More... | |
virtual MxBool | IsA (const char *p_name) const |
[AI] Checks whether this object's class type or parents match the given name. More... | |
MxU32 | GetId () |
[AI] Gets the unique (per-process) id assigned to this object instance. More... | |
Static Public Member Functions | |
static void | DestroyInstance () |
[AI] Destroys the singleton MxOmni instance and performs memory cleanup. More... | |
static const char * | GetCD () |
[AI] Retrieves the configured CD-ROM media path string used for resource location. More... | |
static const char * | GetHD () |
[AI] Retrieves the configured hard disk media path string used for resource location. More... | |
static MxOmni * | GetInstance () |
[AI] Returns the singleton instance of the MxOmni subsystem coordinator. More... | |
static MxBool | IsSound3D () |
[AI] Returns current state of 3D sound configuration. More... | |
static void | SetCD (const char *p_cd) |
[AI] Sets the global CD media path used for source file lookup. More... | |
static void | SetHD (const char *p_hd) |
[AI] Sets the global hard disk media path used for resource lookup. More... | |
static void | SetSound3D (MxBool p_use3dSound) |
[AI] Enables or disables use of 3D sound processing. More... | |
static void | SetInstance (MxOmni *p_instance) |
[AI] Manually set the static instance of the global engine object. More... | |
static MxBool | ActionSourceEquals (MxDSAction *p_action, const char *p_name) |
[AI] Recursive walk to check if the given action, or any child multi-action, was sourced from the provided name. More... | |
Protected Attributes | |
MxString | m_mediaPath |
[AI] Path to media assets (SI files, resources) used for loading content. More... | |
HWND | m_windowHandle |
[AI] Associated window handle for DirectX/Win32 operations. More... | |
MxObjectFactory * | m_objectFactory |
[AI] Factory object used to instantiate engine objects (presenters, entities) by class name. More... | |
MxVariableTable * | m_variableTable |
[AI] Variable table for scripting/in-engine variable storage. More... | |
MxTickleManager * | m_tickleManager |
[AI] Manages list of objects requiring tickle updates each frame/step. More... | |
MxNotificationManager * | m_notificationManager |
[AI] Manages notifications and their distribution to interested clients. More... | |
MxVideoManager * | m_videoManager |
[AI] Manager for decoding and rendering video resources (FLC, etc.). More... | |
MxSoundManager * | m_soundManager |
[AI] Manages sound (WAV, MIDI) output and channels. More... | |
MxMusicManager * | m_musicManager |
[AI] Manages background and event-triggered music. More... | |
MxEventManager * | m_eventManager |
[AI] Centralized event manager for engine events (scripted/game logic). More... | |
MxTimer * | m_timer |
[AI] Master timer for time-keeping and scheduling. More... | |
MxStreamer * | m_streamer |
[AI] Main streamer for handling open files and distributed streaming. More... | |
MxAtomSet * | m_atomSet |
[AI] Global set of strings mapped to atom objects (for fast lookup/id assignment). More... | |
MxCriticalSection | m_criticalSection |
[AI] Critical section used for thread-safe engine operations. More... | |
MxBool | m_paused |
[AI] Indicates if the engine/systems are currently paused. More... | |
Static Protected Attributes | |
static MxOmni * | g_instance = NULL |
[AI] The singleton instance pointer of the MxOmni engine. More... | |
[AI] Central subsystem coordinator and singleton of the LEGO Island engine.
Instantiated once in the process, this class manages all major subsystems such as resource streaming, variable tables, notification dispatch, media managers (sound/video/music), and event/timer systems. Also used for creation of subsystem objects and engine handling. Provides utility access to hardware paths and configuration (CD, HD, 3D sound).
[AI] Inherits from MxCore and is responsible for all high-level coordinated initialization, startup sequencing of media/actions, and teardown/cleanup of the game application. Patterned as an engine-wide singleton.
MxOmni::MxOmni | ( | ) |
[AI] Initializes default state.
Does not create or allocate any subsystems. [AI]
Definition at line 34 of file mxomni.cpp.
|
override |
[AI] Destroys all subsystems and releases memory/resources.
[AI]
Definition at line 51 of file mxomni.cpp.
|
static |
[AI] Recursive walk to check if the given action, or any child multi-action, was sourced from the provided name.
p_action | The top-level or nested action to check (may be multi-action). [AI] |
p_name | The name/string to compare as action source. [AI] |
Definition at line 304 of file mxomni.cpp.
|
virtual |
[AI] [VIRTUAL BASE] Placeholder virtual for derived engines to instantiate an entity and add to the 3D world.
Not implemented in base class.
[unused] | [description unavailable] [AI] |
[unused] | [description unavailable] [AI] |
[unused] | [description unavailable] [AI] |
Reimplemented in LegoOmni.
Definition at line 40 of file mxomni.cpp.
|
virtual |
[AI] Allocates and configures engine subsystems, depending on the provided flags in MxOmniCreateParam.
Handles creation of atom set, object factory, variable table, media managers, notification/event/timer/tickle/streamer subsystems as requested.
p_param | Configuration describing which subsystems to create. [AI] |
Reimplemented in LegoOmni.
Definition at line 82 of file mxomni.cpp.
|
virtual |
[AI] Instantiates and starts a Presenter (e.g., video, sound, animation) to handle the specified action on the given stream controller.
Name-dispatches to correct presenter type based on action format.
p_controller | Stream controller managing the resource/media. [AI] |
p_action | Action specifying presenter type and parameters. [AI] |
Definition at line 245 of file mxomni.cpp.
|
virtual |
[AI] Deletes a world or subsystem object corresponding to an action.
Notifies streamer to unregister and clean up streaming resources associated with the action.
p_dsAction | The action whose resources/object should be deleted. [AI] |
Reimplemented in LegoOmni.
Definition at line 237 of file mxomni.cpp.
|
virtual |
[AI] Tears down all engine subsystems, deletes and frees all managed memory.
Also performs world object destruction. [AI]
Reimplemented in LegoOmni.
Definition at line 182 of file mxomni.cpp.
|
static |
[AI] Destroys the singleton MxOmni instance and performs memory cleanup.
Should be called before application exit.
Definition at line 295 of file mxomni.cpp.
|
virtual |
[AI] Checks whether an entity (gameplay object) exists by querying the streamer and notification manager.
p_dsAction | The action referencing the entity (usually by ID or AtomID). [AI] |
Reimplemented in LegoOmni.
Definition at line 399 of file mxomni.cpp.
|
inline |
|
static |
[AI] Retrieves the configured CD-ROM media path string used for resource location.
Definition at line 375 of file mxomni.cpp.
|
inline |
|
static |
[AI] Retrieves the configured hard disk media path string used for resource location.
Definition at line 363 of file mxomni.cpp.
|
static |
[AI] Returns the singleton instance of the MxOmni subsystem coordinator.
Definition at line 289 of file mxomni.cpp.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
[AI] Handles the engine's response to action end notifications (c_notificationEndAction), deletes action objects as necessary and manages streamer state.
p_param | End action notification parameter. [AI] |
Definition at line 337 of file mxomni.cpp.
|
virtual |
[AI] Resets all internal pointers to defaults.
Subsystem pointers are set to NULL. Window handle and paused state reset.
Reimplemented in LegoOmni.
Definition at line 57 of file mxomni.cpp.
|
inlinevirtual |
|
static |
[AI] Returns current state of 3D sound configuration.
Definition at line 387 of file mxomni.cpp.
[AI] Handles global notifications.
Handles c_notificationEndAction and delegates to HandleEndAction.
p_param | Incoming notification/parameter. [AI] |
Reimplemented from MxCore.
Definition at line 325 of file mxomni.cpp.
|
virtual |
[AI] [VIRTUAL BASE] Placeholder for derived implementations—sends a notification to the currently active entity.
Not implemented in base. [AI]
p_param | Notification parameters to send. [AI] |
Reimplemented in LegoOmni.
Definition at line 46 of file mxomni.cpp.
|
virtual |
[AI] Pauses subsystems that support pausing (timer, sound manager) and sets paused state.
Reimplemented in LegoOmni.
Definition at line 412 of file mxomni.cpp.
|
virtual |
[AI] Resumes paused subsystems (timer, sound manager) and clears paused state.
Reimplemented in LegoOmni.
Definition at line 422 of file mxomni.cpp.
|
static |
[AI] Sets the global CD media path used for source file lookup.
p_cd | The new CD path to use for resource access. [AI] |
Definition at line 381 of file mxomni.cpp.
|
static |
[AI] Sets the global hard disk media path used for resource lookup.
p_hd | The new HD path to use for resource access. [AI] |
Definition at line 369 of file mxomni.cpp.
|
static |
[AI] Manually set the static instance of the global engine object.
p_instance | The new instance pointer. [AI] |
Definition at line 75 of file mxomni.cpp.
|
static |
[AI] Enables or disables use of 3D sound processing.
p_use3dSound | Set TRUE to enable 3D sound, FALSE otherwise. [AI] |
Definition at line 393 of file mxomni.cpp.
|
virtual |
[AI] Requests the start of a top-level scripted action (from SI).
Triggers sequence execution for streaming/media/subsystems as required by the action, via streamer.
p_dsAction | The action object (parsed from SI) to be started. [AI] |
Reimplemented in LegoOmni.
Definition at line 226 of file mxomni.cpp.
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |