Isle
Loading...
Searching...
No Matches
mxomni.cpp
Go to the documentation of this file.
1#include "mxomni.h"
2
4#include "mxatom.h"
5#include "mxautolock.h"
6#include "mxdsmultiaction.h"
7#include "mxeventmanager.h"
8#include "mxmisc.h"
9#include "mxmusicmanager.h"
11#include "mxobjectfactory.h"
12#include "mxomnicreateparam.h"
13#include "mxpresenter.h"
14#include "mxsoundmanager.h"
15#include "mxstreamer.h"
16#include "mxticklemanager.h"
17#include "mxtimer.h"
18#include "mxvariabletable.h"
19#include "mxvideomanager.h"
20
21// GLOBAL: LEGO1 0x101015b8
22char g_hdPath[1024] = "";
23
24// GLOBAL: LEGO1 0x101019b8
25char g_cdPath[1024] = "E:";
26
27// GLOBAL: LEGO1 0x10101db8
29
30// GLOBAL: LEGO1 0x101015b0
32
33// FUNCTION: LEGO1 0x100aef10
35{
36 Init();
37}
38
39// FUNCTION: LEGO1 0x100aefb0
41{
42 return NULL;
43}
44
45// FUNCTION: LEGO1 0x100aefc0
47{
48}
49
50// FUNCTION: LEGO1 0x100aeff0
52{
53 Destroy();
54}
55
56// FUNCTION: LEGO1 0x100af080
58{
68 m_timer = NULL;
72}
73
74// FUNCTION: LEGO1 0x100af0b0
75void MxOmni::SetInstance(MxOmni* p_instance)
76{
77 g_instance = p_instance;
78}
79
80// FUNCTION: LEGO1 0x100af0c0
81// FUNCTION: BETA10 0x1012f3ff
83{
84 MxResult result = FAILURE;
85
86 if (!(m_atomSet = new MxAtomSet())) {
87 goto done;
88 }
89
90 m_mediaPath = p_param.GetMediaPath();
92
93 if (p_param.CreateFlags().CreateObjectFactory()) {
94 if (!(m_objectFactory = new MxObjectFactory())) {
95 goto done;
96 }
97 }
98
99 if (p_param.CreateFlags().CreateVariableTable()) {
100 if (!(m_variableTable = new MxVariableTable())) {
101 goto done;
102 }
103 }
104
105 if (p_param.CreateFlags().CreateTimer()) {
106 if (!(m_timer = new MxTimer())) {
107 goto done;
108 }
109 }
110
111 if (p_param.CreateFlags().CreateTickleManager()) {
112 if (!(m_tickleManager = new MxTickleManager())) {
113 goto done;
114 }
115 }
116
117 if (p_param.CreateFlags().CreateNotificationManager()) {
119 if (m_notificationManager->Create(100, 0) != SUCCESS) {
120 goto done;
121 }
122 }
123 else {
124 goto done;
125 }
126 }
127
128 if (p_param.CreateFlags().CreateStreamer()) {
129 if (!(m_streamer = new MxStreamer()) || m_streamer->Create() != SUCCESS) {
130 goto done;
131 }
132 }
133
134 if (p_param.CreateFlags().CreateVideoManager()) {
135 if ((m_videoManager = new MxVideoManager())) {
136 if (m_videoManager->Create(p_param.GetVideoParam(), 100, 0) != SUCCESS) {
137 delete m_videoManager;
139 }
140 }
141 }
142
143 if (p_param.CreateFlags().CreateSoundManager()) {
144 if ((m_soundManager = new MxSoundManager())) {
145 if (m_soundManager->Create(10, 0) != SUCCESS) {
146 delete m_soundManager;
148 }
149 }
150 }
151
152 if (p_param.CreateFlags().CreateMusicManager()) {
153 if ((m_musicManager = new MxMusicManager())) {
154 if (m_musicManager->Create(50, 0) != SUCCESS) {
155 delete m_musicManager;
157 }
158 }
159 }
160
161 if (p_param.CreateFlags().CreateEventManager()) {
162 if ((m_eventManager = new MxEventManager())) {
163 if (m_eventManager->Create(50, 0) != SUCCESS) {
164 delete m_eventManager;
166 }
167 }
168 }
169
170 result = SUCCESS;
171
172done:
173 if (result != SUCCESS) {
174 Destroy();
175 }
176
177 return result;
178}
179
180// FUNCTION: LEGO1 0x100afe90
181// FUNCTION: BETA10 0x1012fe5b
183{
184 {
185 MxDSAction action;
186 action.SetObjectId(-1);
187 action.SetUnknown24(-2);
188 DeleteObject(action);
189 }
190
192 while (!m_notificationManager->IsEmpty()) {
194 }
195
197 }
198
199 delete m_eventManager;
200 delete m_soundManager;
201 delete m_musicManager;
202 delete m_videoManager;
203 delete m_streamer;
204 delete m_timer;
205 delete m_objectFactory;
206 delete m_variableTable;
208 delete m_tickleManager;
209
210 if (m_atomSet) {
211 while (m_atomSet->size() != 0) {
212 // Pop each node and delete its value
213 MxAtomSet::iterator begin = m_atomSet->begin();
214 MxAtom* value = *begin;
215 m_atomSet->erase(begin);
216 delete value;
217 }
218
219 delete m_atomSet;
220 }
221
222 Init();
223}
224
225// FUNCTION: LEGO1 0x100b0090
227{
228 MxResult result = FAILURE;
229 if (p_dsAction->GetAtomId().GetInternal() != NULL && p_dsAction->GetObjectId() != -1 && m_streamer != NULL) {
230 result = m_streamer->FUN_100b99b0(p_dsAction);
231 }
232
233 return result;
234}
235
236// FUNCTION: LEGO1 0x100b00c0
238{
239 if (m_streamer != NULL) {
240 m_streamer->DeleteObject(&p_dsAction);
241 }
242}
243
244// FUNCTION: LEGO1 0x100b00e0
246{
247 MxResult result = FAILURE;
248 const char* name = PresenterNameDispatch(p_action);
249 MxPresenter* object = (MxPresenter*) m_objectFactory->Create(name);
250
251 if (object) {
252 if (object->AddToManager() == SUCCESS) {
253 MxPresenter* sender = p_action.GetUnknown28();
254 if (!sender) {
255 sender = p_controller->FUN_100c1e70(p_action);
256 }
257
258 if (sender) {
259 p_action.SetOrigin(sender);
260 object->SetCompositePresenter((MxCompositePresenter*) sender);
261 }
262 else {
263 if (!p_action.GetOrigin()) {
264 p_action.SetOrigin(this);
265 }
266 object->SetCompositePresenter(NULL);
267 }
268
269 if (object->StartAction(p_controller, &p_action) == SUCCESS) {
270 if (sender) {
271 NotificationManager()->Send(sender, MxType4NotificationParam(this, &p_action, object));
272 }
273
274 if (p_action.GetUnknown84()) {
276 p_action.GetUnknown84(),
278 );
279 }
280 result = SUCCESS;
281 }
282 }
283 }
284
285 return result;
286}
287
288// FUNCTION: LEGO1 0x100b0680
290{
291 return g_instance;
292}
293
294// FUNCTION: LEGO1 0x100b0690
296{
297 if (g_instance != NULL) {
298 delete g_instance;
300 }
301}
302
303// FUNCTION: LEGO1 0x100b06b0
304MxBool MxOmni::ActionSourceEquals(MxDSAction* p_action, const char* p_name)
305{
306 if (!strcmp(p_action->GetSourceName(), p_name)) {
307 return TRUE;
308 }
309
310 if (p_action->IsA("MxDSMultiAction")) {
311 MxDSActionListCursor cursor(((MxDSMultiAction*) p_action)->GetActionList());
312 MxDSAction* action;
313
314 while (cursor.Next(action)) {
315 if (ActionSourceEquals(action, p_name)) {
316 return TRUE;
317 }
318 }
319 }
320
321 return FALSE;
322}
323
324// FUNCTION: LEGO1 0x100b07f0
326{
328
329 if (((MxNotificationParam&) p_param).GetNotification() != c_notificationEndAction) {
330 return 0;
331 }
332
333 return HandleEndAction(p_param);
334}
335
336// FUNCTION: LEGO1 0x100b0880
338{
339 MxDSAction* action = ((MxEndActionNotificationParam&) p_param).GetAction();
340 MxStreamController* controller = Streamer()->GetOpenStream(action->GetAtomId().GetInternal());
341
342 if (controller != NULL) {
343 action = (MxDSAction*) controller->GetUnk0x54().Find(action);
344 if (action) {
345 if (ActionSourceEquals(action, "LegoLoopingAnimPresenter") == FALSE) {
346 delete controller->GetUnk0x54().FindAndErase(action);
347 }
348 }
349 }
350
351 if (((MxEndActionNotificationParam&) p_param).GetSender()) {
352 delete ((MxEndActionNotificationParam&) p_param).GetSender();
353 }
354
355 if (((MxEndActionNotificationParam&) p_param).GetAction()) {
356 delete ((MxEndActionNotificationParam&) p_param).GetAction();
357 }
358
359 return 1;
360}
361
362// FUNCTION: LEGO1 0x100b0900
363const char* MxOmni::GetHD()
364{
365 return g_hdPath;
366}
367
368// FUNCTION: LEGO1 0x100b0910
369void MxOmni::SetHD(const char* p_hd)
370{
371 strcpy(g_hdPath, p_hd);
372}
373
374// FUNCTION: LEGO1 0x100b0940
375const char* MxOmni::GetCD()
376{
377 return g_cdPath;
378}
379
380// FUNCTION: LEGO1 0x100b0950
381void MxOmni::SetCD(const char* p_cd)
382{
383 strcpy(g_cdPath, p_cd);
384}
385
386// FUNCTION: LEGO1 0x100b0980
388{
389 return g_use3dSound;
390}
391
392// FUNCTION: LEGO1 0x100b0990
393void MxOmni::SetSound3D(MxBool p_use3dSound)
394{
395 g_use3dSound = p_use3dSound;
396}
397
398// FUNCTION: LEGO1 0x100b09a0
400{
401 if (m_streamer->FUN_100b9b30(p_dsAction)) {
403
404 if (!notifications || notifications->size() == 0) {
405 return TRUE;
406 }
407 }
408 return FALSE;
409}
410
411// FUNCTION: LEGO1 0x100b09d0
413{
414 if (m_paused == FALSE && m_timer != NULL && m_soundManager != NULL) {
415 m_timer->Start();
417 m_paused = TRUE;
418 }
419}
420
421// FUNCTION: LEGO1 0x100b0a00
423{
424 if (m_paused != FALSE && m_timer != NULL && m_soundManager != NULL) {
425 m_timer->Stop();
427 m_paused = FALSE;
428 }
429}
const char * GetInternal() const
[AI] Returns a pointer to the internal string, or nullptr if not set.
Definition: mxatom.h:194
[AI] Set of unique atom pointers, managed with custom comparison for atomization and fast lookup.
Definition: mxatom.h:98
[AI] Key-value pair representing a unique string (atom) and its reference count.
Definition: mxatom.h:33
[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...
Definition: mxdsaction.h:17
MxCore * GetUnknown84()
[AI] Returns a pointer to an associated or auxiliary core object.
Definition: mxdsaction.h:248
MxBool IsA(const char *p_name) const override
[AI] Run-time type check, compares provided name with this or any ancestor type.
Definition: mxdsaction.h:80
void SetOrigin(MxCore *p_origin)
[AI] Sets the origin core pointer for this action, if spatially transforming/localizing this action.
Definition: mxdsaction.h:265
MxCore * GetOrigin()
[AI] Returns a pointer to the "origin" core object, which may be used to localize the action.
Definition: mxdsaction.h:259
[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.
Definition: mxdsobject.h:23
MxDSObject * Find(MxDSObject *p_action)
[AI] Finds a matching object in the list without removing it.
Definition: mxdsobject.h:28
const MxAtomId & GetAtomId()
[AI] Returns a const-reference to the object's atom identifier.
Definition: mxdsobject.h:133
void SetUnknown24(MxS16 p_unk0x24)
[AI] Sets the unknown field at 0x24 (possibly version/state).
Definition: mxdsobject.h:151
MxPresenter * GetUnknown28()
[AI] Returns the pointer stored at 0x28, likely a presenter or handler for this DS object.
Definition: mxdsobject.h:139
void SetObjectId(MxU32 p_objectId)
[AI] Sets the object id (for serialization or lookup).
Definition: mxdsobject.h:147
MxU32 GetObjectId()
[AI] Returns the object id numeric value.
Definition: mxdsobject.h:130
const char * GetSourceName() const
[AI] Returns the source name string (typically the originating SI file).
Definition: mxdsobject.h:124
[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...
Definition: mxentity.h:22
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 ...
MxBool Next()
[AI]
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.
Definition: mxomni.h:32
MxBool m_paused
[AI] Indicates if the engine/systems are currently paused.
Definition: mxomni.h:349
static const char * GetCD()
[AI] Retrieves the configured CD-ROM media path string used for resource location.
Definition: mxomni.cpp:375
~MxOmni() override
[AI] Destroys all subsystems and releases memory/resources.
Definition: mxomni.cpp:51
MxString m_mediaPath
[AI] Path to media assets (SI files, resources) used for loading content.
Definition: mxomni.h:279
virtual void Destroy()
[AI] Tears down all engine subsystems, deletes and frees all managed memory.
Definition: mxomni.cpp:182
MxLong HandleEndAction(MxParam &p_param)
[AI] Handles the engine's response to action end notifications (c_notificationEndAction),...
Definition: mxomni.cpp:337
MxTimer * m_timer
[AI] Master timer for time-keeping and scheduling.
Definition: mxomni.h:329
HWND m_windowHandle
[AI] Associated window handle for DirectX/Win32 operations.
Definition: mxomni.h:284
static void SetCD(const char *p_cd)
[AI] Sets the global CD media path used for source file lookup.
Definition: mxomni.cpp:381
MxSoundManager * m_soundManager
[AI] Manages sound (WAV, MIDI) output and channels.
Definition: mxomni.h:314
virtual MxResult Create(MxOmniCreateParam &p_param)
[AI] Allocates and configures engine subsystems, depending on the provided flags in MxOmniCreateParam...
Definition: mxomni.cpp:82
MxVideoManager * m_videoManager
[AI] Manager for decoding and rendering video resources (FLC, etc.).
Definition: mxomni.h:309
static void DestroyInstance()
[AI] Destroys the singleton MxOmni instance and performs memory cleanup.
Definition: mxomni.cpp:295
MxLong Notify(MxParam &p_param) override
[AI] Handles global notifications.
Definition: mxomni.cpp:325
MxStreamer * m_streamer
[AI] Main streamer for handling open files and distributed streaming.
Definition: mxomni.h:334
MxEventManager * m_eventManager
[AI] Centralized event manager for engine events (scripted/game logic).
Definition: mxomni.h:324
MxNotificationManager * m_notificationManager
[AI] Manages notifications and their distribution to interested clients.
Definition: mxomni.h:304
virtual MxResult Start(MxDSAction *p_dsAction)
[AI] Requests the start of a top-level scripted action (from SI).
Definition: mxomni.cpp:226
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...
Definition: mxomni.cpp:304
MxVariableTable * m_variableTable
[AI] Variable table for scripting/in-engine variable storage.
Definition: mxomni.h:294
static MxOmni * GetInstance()
[AI] Returns the singleton instance of the MxOmni subsystem coordinator.
Definition: mxomni.cpp:289
static const char * GetHD()
[AI] Retrieves the configured hard disk media path string used for resource location.
Definition: mxomni.cpp:363
MxObjectFactory * m_objectFactory
[AI] Factory object used to instantiate engine objects (presenters, entities) by class name.
Definition: mxomni.h:289
virtual MxEntity * AddToWorld(const char *, MxS32, MxPresenter *)
[AI] [VIRTUAL BASE] Placeholder virtual for derived engines to instantiate an entity and add to the 3...
Definition: mxomni.cpp:40
virtual void NotifyCurrentEntity(const MxNotificationParam &p_param)
[AI] [VIRTUAL BASE] Placeholder for derived implementations—sends a notification to the currently act...
Definition: mxomni.cpp:46
static MxBool IsSound3D()
[AI] Returns current state of 3D sound configuration.
Definition: mxomni.cpp:387
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...
Definition: mxomni.cpp:245
MxMusicManager * m_musicManager
[AI] Manages background and event-triggered music.
Definition: mxomni.h:319
static void SetSound3D(MxBool p_use3dSound)
[AI] Enables or disables use of 3D sound processing.
Definition: mxomni.cpp:393
static MxOmni * g_instance
[AI] The singleton instance pointer of the MxOmni engine.
Definition: mxomni.h:274
virtual void Resume()
[AI] Resumes paused subsystems (timer, sound manager) and clears paused state.
Definition: mxomni.cpp:422
virtual void Init()
[AI] Resets all internal pointers to defaults.
Definition: mxomni.cpp:57
virtual void DeleteObject(MxDSAction &p_dsAction)
[AI] Deletes a world or subsystem object corresponding to an action.
Definition: mxomni.cpp:237
static void SetInstance(MxOmni *p_instance)
[AI] Manually set the static instance of the global engine object.
Definition: mxomni.cpp:75
virtual MxBool DoesEntityExist(MxDSAction &p_dsAction)
[AI] Checks whether an entity (gameplay object) exists by querying the streamer and notification mana...
Definition: mxomni.cpp:399
MxOmni()
[AI] Initializes default state.
Definition: mxomni.cpp:34
MxCriticalSection m_criticalSection
[AI] Critical section used for thread-safe engine operations.
Definition: mxomni.h:344
virtual void Pause()
[AI] Pauses subsystems that support pausing (timer, sound manager) and sets paused state.
Definition: mxomni.cpp:412
MxTickleManager * m_tickleManager
[AI] Manages list of objects requiring tickle updates each frame/step.
Definition: mxomni.h:299
MxAtomSet * m_atomSet
[AI] Global set of strings mapped to atom objects (for fast lookup/id assignment).
Definition: mxomni.h:339
static void SetHD(const char *p_hd)
[AI] Sets the global hard disk media path used for resource lookup.
Definition: mxomni.cpp:369
[AI] MxParam serves as a polymorphic base class for parameter passing in event and notification syste...
Definition: mxparam.h:7
[AI] Abstract base class for all presenter types in the LEGO Island engine, responsible for managing ...
Definition: mxpresenter.h:20
virtual MxResult StartAction(MxStreamController *, MxDSAction *)
[AI] Initiates presenter for a new action, setting up context and state.
Definition: mxpresenter.cpp:45
virtual MxResult AddToManager()
[AI] Optional registration with a manager (such as TickleManager); by default does nothing.
Definition: mxpresenter.h:84
[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].
Definition: mxstreamer.h:65
MxResult DeleteObject(MxDSAction *p_dsAction)
Ask all controllers to remove a DS Action's object.
Definition: mxstreamer.cpp:188
MxBool FUN_100b9b30(MxDSObject &p_dsObject)
Check stream state for a dsObject's Atom ID.
Definition: mxstreamer.cpp:215
MxStreamController * GetOpenStream(const char *p_name)
Search for and return an open stream controller with a matching name.
Definition: mxstreamer.cpp:132
MxResult FUN_100b99b0(MxDSAction *p_action)
Internal: Calls stream controller's specific command for action execution.
Definition: mxstreamer.cpp:171
virtual MxResult Create()
Allocate memory pools needed for streaming operation.
Definition: mxstreamer.cpp:28
[AI] Manages ticking ("tickling") a set of MxCore objects at specified intervals.
Timer class for measuring elapsed time or frame time.
Definition: mxtimer.h:14
void Start()
Starts the timer and records the real time when started.
Definition: mxtimer.cpp:30
void Stop()
Stops the timer, updating internal counters to reflect elapsed time until now.
Definition: mxtimer.cpp:37
[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 TRUE
Definition: d3drmdef.h:28
#define FALSE
Definition: d3drmdef.h:27
#define NULL
[AI] Null pointer value (C/C++ semantics).
Definition: legotypes.h:26
#define FAILURE
[AI] Used to indicate a failed operation in result codes.
Definition: legotypes.h:34
#define SUCCESS
[AI] Used to indicate a successful operation in result codes.
Definition: legotypes.h:30
#define AUTOLOCK(CS)
[AI] Macro for automatic locking using the MxAutoLock class. This macro instantiates an MxAutoLock ob...
Definition: mxautolock.h:5
MxStreamer * Streamer()
[AI] Returns the global streamer used for all chunked media streaming (SI file, audio,...
Definition: mxmisc.cpp:49
MxNotificationManager * NotificationManager()
[AI] Returns the notification manager for system-wide state/update notifications.
Definition: mxmisc.cpp:17
@ c_notificationStartAction
[AI] Indicates the start of an action [AI]
@ c_notificationEndAction
[AI] Indicates the end of an action [AI]
char g_cdPath[1024]
Definition: mxomni.cpp:25
MxBool g_use3dSound
Definition: mxomni.cpp:28
char g_hdPath[1024]
Definition: mxomni.cpp:22
const char * PresenterNameDispatch(const MxDSAction &)
[AI] Provides a mapping from action object/type to the correct presenter handler class name based on ...
MxU8 MxBool
[AI]
Definition: mxtypes.h:124
MxLong MxResult
[AI]
Definition: mxtypes.h:106
int MxLong
[AI]
Definition: mxtypes.h:83
signed int MxS32
[AI]
Definition: mxtypes.h:38