213 MxAtomSet::iterator begin =
m_atomSet->begin();
266 object->SetCompositePresenter(
NULL);
310 if (p_action->
IsA(
"MxDSMultiAction")) {
314 while (cursor.
Next(action)) {
342 if (controller !=
NULL) {
404 if (!notifications || notifications->size() == 0) {
const char * GetInternal() const
[AI] Returns a pointer to the internal string, or nullptr if not set.
[AI] Set of unique atom pointers, managed with custom comparison for atomization and fast lookup.
[AI] Key-value pair representing a unique string (atom) and its reference count.
[AI] Composite presenter that manages a collection of child presenters, orchestrating their actions a...
[AI] Convenience cursor class for iterating over an MxDSActionList.
[AI] Represents an action deserialized from SI chunks, holding key animation or script parameters suc...
MxCore * GetUnknown84()
[AI] Returns a pointer to an associated or auxiliary core object.
MxBool IsA(const char *p_name) const override
[AI] Run-time type check, compares provided name with this or any ancestor type.
void SetOrigin(MxCore *p_origin)
[AI] Sets the origin core pointer for this action, if spatially transforming/localizing this action.
MxCore * GetOrigin()
[AI] Returns a pointer to the "origin" core object, which may be used to localize the action.
[AI] Represents a container for multiple MxDSAction objects, facilitating the grouping and management...
MxDSObject * FindAndErase(MxDSObject *p_action)
[AI] Finds the matching object and removes it from the list.
MxDSObject * Find(MxDSObject *p_action)
[AI] Finds a matching object in the list without removing it.
const MxAtomId & GetAtomId()
[AI] Returns a const-reference to the object's atom identifier.
void SetUnknown24(MxS16 p_unk0x24)
[AI] Sets the unknown field at 0x24 (possibly version/state).
MxPresenter * GetUnknown28()
[AI] Returns the pointer stored at 0x28, likely a presenter or handler for this DS object.
void SetObjectId(MxU32 p_objectId)
[AI] Sets the object id (for serialization or lookup).
MxU32 GetObjectId()
[AI] Returns the object id numeric value.
const char * GetSourceName() const
[AI] Returns the source name string (typically the originating SI file).
[AI] Notification parameter marking the end of an action, specialization of MxActionNotificationParam...
MxEntity is a base class for game entities which are uniquely identified by an integer ID and an Atom...
MxEventManager is a subclass of MxMediaManager responsible for managing timed event delivery,...
virtual MxResult Create(MxU32 p_frequencyMS, MxBool p_createThread)
Initializes the MxEventManager to periodically handle events using a thread or registration with the ...
Manages MIDI music playback with Win32 MIDI streaming for the LEGO Island engine.
virtual MxResult Create(MxU32 p_frequencyMS, MxBool p_createThread)
Initializes and starts MIDI playback.
[AI] Central registry and dispatcher of asynchronous notifications between MxCore objects.
MxResult Tickle() override
[AI] Processes and dispatches all queued notifications to their targets.
MxNotificationPtrList * GetQueue()
[AI] Returns a pointer to the current notification queue (for debug/inspection).
void SetActive(MxBool p_active)
[AI] Sets the notification manager active or inactive.
MxBool IsEmpty() const
[AI] Returns whether the notification queue is empty.
MxResult Send(MxCore *p_listener, const MxNotificationParam &p_param)
[AI] Queues a notification to be sent to a specific registered listener.
virtual MxResult Create(MxU32 p_frequencyMS, MxBool p_createThread)
[AI] Initializes the notification manager, setting up queues and optionally registering with the tick...
[AI] Parameter object representing a single notification or event, carrying an identifier and sender ...
[AI] List of notification pointers used to queue notifications for delivery.
[AI] Forward declaration for the factory responsible for constructing core objects from atom or type ...
virtual MxCore * Create(const char *p_name)
[AI] Creates a new instance of the class matching the provided string name.
const MxBool CreateTimer() const
[AI] Returns whether the Timer subsystem will be created.
const MxBool CreateMusicManager() const
[AI] Returns whether the Music Manager will be created.
const MxBool CreateVariableTable() const
[AI] Returns whether the Variable Table will be created.
void CreateTickleManager(MxBool p_enable)
[AI] Enables or disables the creation of the Tickle Manager subsystem at startup.
void CreateSoundManager(MxBool p_enable)
[AI] Enables or disables the creation of the Sound Manager subsystem at startup.
const MxBool CreateEventManager() const
[AI] Returns whether the Event Manager will be created.
void CreateVideoManager(MxBool p_enable)
[AI] Enables or disables the creation of the Video Manager subsystem at startup.
const MxBool CreateNotificationManager() const
[AI] Returns whether the Notification Manager will be created.
const MxBool CreateStreamer() const
[AI] Returns whether the Streamer subsystem will be created.
void CreateObjectFactory(MxBool p_enable)
[AI] Enables or disables the creation of the Object Factory subsystem at startup.
[AI] Encapsulates parameters required to initialize the core Omni engine.
MxOmniCreateFlags & CreateFlags()
[AI] Access/modify the creation flags.
const MxString & GetMediaPath() const
[AI] Gets the media/resource directory path.
MxVideoParam & GetVideoParam()
[AI] Access the detailed video parameter structure (for modification).
const HWND GetWindowHandle() const
[AI] Returns the handle to the rendering window.
[AI] Central subsystem coordinator and singleton of the LEGO Island engine.
MxBool m_paused
[AI] Indicates if the engine/systems are currently paused.
static const char * GetCD()
[AI] Retrieves the configured CD-ROM media path string used for resource location.
~MxOmni() override
[AI] Destroys all subsystems and releases memory/resources.
MxString m_mediaPath
[AI] Path to media assets (SI files, resources) used for loading content.
virtual void Destroy()
[AI] Tears down all engine subsystems, deletes and frees all managed memory.
MxLong HandleEndAction(MxParam &p_param)
[AI] Handles the engine's response to action end notifications (c_notificationEndAction),...
MxTimer * m_timer
[AI] Master timer for time-keeping and scheduling.
HWND m_windowHandle
[AI] Associated window handle for DirectX/Win32 operations.
static void SetCD(const char *p_cd)
[AI] Sets the global CD media path used for source file lookup.
MxSoundManager * m_soundManager
[AI] Manages sound (WAV, MIDI) output and channels.
virtual MxResult Create(MxOmniCreateParam &p_param)
[AI] Allocates and configures engine subsystems, depending on the provided flags in MxOmniCreateParam...
MxVideoManager * m_videoManager
[AI] Manager for decoding and rendering video resources (FLC, etc.).
static void DestroyInstance()
[AI] Destroys the singleton MxOmni instance and performs memory cleanup.
MxLong Notify(MxParam &p_param) override
[AI] Handles global notifications.
MxStreamer * m_streamer
[AI] Main streamer for handling open files and distributed streaming.
MxEventManager * m_eventManager
[AI] Centralized event manager for engine events (scripted/game logic).
MxNotificationManager * m_notificationManager
[AI] Manages notifications and their distribution to interested clients.
virtual MxResult Start(MxDSAction *p_dsAction)
[AI] Requests the start of a top-level scripted action (from SI).
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 pro...
MxVariableTable * m_variableTable
[AI] Variable table for scripting/in-engine variable storage.
static MxOmni * GetInstance()
[AI] Returns the singleton instance of the MxOmni subsystem coordinator.
static const char * GetHD()
[AI] Retrieves the configured hard disk media path string used for resource location.
MxObjectFactory * m_objectFactory
[AI] Factory object used to instantiate engine objects (presenters, entities) by class name.
virtual MxEntity * AddToWorld(const char *, MxS32, MxPresenter *)
[AI] [VIRTUAL BASE] Placeholder virtual for derived engines to instantiate an entity and add to the 3...
virtual void NotifyCurrentEntity(const MxNotificationParam &p_param)
[AI] [VIRTUAL BASE] Placeholder for derived implementations—sends a notification to the currently act...
static MxBool IsSound3D()
[AI] Returns current state of 3D sound configuration.
virtual MxResult CreatePresenter(MxStreamController *p_controller, MxDSAction &p_action)
[AI] Instantiates and starts a Presenter (e.g., video, sound, animation) to handle the specified acti...
MxMusicManager * m_musicManager
[AI] Manages background and event-triggered music.
static void SetSound3D(MxBool p_use3dSound)
[AI] Enables or disables use of 3D sound processing.
static MxOmni * g_instance
[AI] The singleton instance pointer of the MxOmni engine.
virtual void Resume()
[AI] Resumes paused subsystems (timer, sound manager) and clears paused state.
virtual void Init()
[AI] Resets all internal pointers to defaults.
virtual void DeleteObject(MxDSAction &p_dsAction)
[AI] Deletes a world or subsystem object corresponding to an action.
static void SetInstance(MxOmni *p_instance)
[AI] Manually set the static instance of the global engine object.
virtual MxBool DoesEntityExist(MxDSAction &p_dsAction)
[AI] Checks whether an entity (gameplay object) exists by querying the streamer and notification mana...
MxOmni()
[AI] Initializes default state.
MxCriticalSection m_criticalSection
[AI] Critical section used for thread-safe engine operations.
virtual void Pause()
[AI] Pauses subsystems that support pausing (timer, sound manager) and sets paused state.
MxTickleManager * m_tickleManager
[AI] Manages list of objects requiring tickle updates each frame/step.
MxAtomSet * m_atomSet
[AI] Global set of strings mapped to atom objects (for fast lookup/id assignment).
static void SetHD(const char *p_hd)
[AI] Sets the global hard disk media path used for resource lookup.
[AI] MxParam serves as a polymorphic base class for parameter passing in event and notification syste...
[AI] Abstract base class for all presenter types in the LEGO Island engine, responsible for managing ...
virtual MxResult StartAction(MxStreamController *, MxDSAction *)
[AI] Initiates presenter for a new action, setting up context and state.
virtual MxResult AddToManager()
[AI] Optional registration with a manager (such as TickleManager); by default does nothing.
[AI] Manages DirectSound-based sound playback, implementing volume, resource, and device management.
virtual MxResult Create(MxU32 p_frequencyMS, MxBool p_createThread)
[AI] Initializes and sets up the DirectSound environment.
virtual void Pause()
[AI] Pauses all currently playing wave presenters.
virtual void Resume()
[AI] Resumes all previously paused wave presenters.
[AI] Notification parameter marking the start of an action, specialization of MxActionNotificationPar...
[AI] Controller for streaming and managing multimedia resources and actions during gameplay.
MxDSObjectList & GetUnk0x54()
[AI] Returns the list of actions pending to be streamed ("pending" list).
MxPresenter * FUN_100c1e70(MxDSAction &p_action)
[AI] Returns the presenter associated with a given in-progress streaming action.
Streams and manages media data, handles memory pools for RAM/disk streaming [AI].
MxResult DeleteObject(MxDSAction *p_dsAction)
Ask all controllers to remove a DS Action's object.
MxBool FUN_100b9b30(MxDSObject &p_dsObject)
Check stream state for a dsObject's Atom ID.
MxStreamController * GetOpenStream(const char *p_name)
Search for and return an open stream controller with a matching name.
MxResult FUN_100b99b0(MxDSAction *p_action)
Internal: Calls stream controller's specific command for action execution.
virtual MxResult Create()
Allocate memory pools needed for streaming operation.
[AI] Manages ticking ("tickling") a set of MxCore objects at specified intervals.
Timer class for measuring elapsed time or frame time.
void Start()
Starts the timer and records the real time when started.
void Stop()
Stops the timer, updating internal counters to reflect elapsed time until now.
[AI] Specialized notification parameter, used for notification type 4, extending MxActionNotification...
MxVariableTable is a specialized hash table for storing key/value string variables used by the LEGO I...
[AI] Video subsystem manager for DirectDraw/Direct3D video rendering and presenter control.
virtual MxResult Create(MxVideoParam &p_videoParam, MxU32 p_frequencyMS, MxBool p_createThread)
[AI] Similar to VTable0x28, this launches video with a new DirectDraw instance.
#define NULL
[AI] Null pointer value (C/C++ semantics).
#define FAILURE
[AI] Used to indicate a failed operation in result codes.
#define SUCCESS
[AI] Used to indicate a successful operation in result codes.
#define AUTOLOCK(CS)
[AI] Macro for automatic locking using the MxAutoLock class. This macro instantiates an MxAutoLock ob...
MxStreamer * Streamer()
[AI] Returns the global streamer used for all chunked media streaming (SI file, audio,...
MxNotificationManager * NotificationManager()
[AI] Returns the notification manager for system-wide state/update notifications.
@ c_notificationStartAction
[AI] Indicates the start of an action [AI]
@ c_notificationEndAction
[AI] Indicates the end of an action [AI]
const char * PresenterNameDispatch(const MxDSAction &)
[AI] Provides a mapping from action object/type to the correct presenter handler class name based on ...