2023-04-27 22:19:39 -04:00
|
|
|
#ifndef MXOMNI_H
|
|
|
|
#define MXOMNI_H
|
|
|
|
|
2023-10-07 11:30:04 -04:00
|
|
|
#include "mxcore.h"
|
2023-06-19 01:36:07 -04:00
|
|
|
#include "mxcriticalsection.h"
|
2023-10-24 19:38:27 -04:00
|
|
|
#include "mxstring.h"
|
2023-10-07 11:30:04 -04:00
|
|
|
|
2024-05-30 16:38:42 -04:00
|
|
|
#include <windows.h>
|
|
|
|
|
2024-04-25 11:43:42 -04:00
|
|
|
class MxAtomSet;
|
2023-10-07 11:30:04 -04:00
|
|
|
class MxDSAction;
|
2024-03-09 15:07:52 -05:00
|
|
|
class MxEntity;
|
2023-10-07 11:30:04 -04:00
|
|
|
class MxEventManager;
|
|
|
|
class MxMusicManager;
|
|
|
|
class MxNotificationManager;
|
2023-10-21 17:02:55 -04:00
|
|
|
class MxNotificationParam;
|
2023-10-07 11:30:04 -04:00
|
|
|
class MxObjectFactory;
|
|
|
|
class MxOmniCreateParam;
|
2023-11-13 05:22:58 -05:00
|
|
|
class MxPresenter;
|
2023-10-07 11:30:04 -04:00
|
|
|
class MxSoundManager;
|
|
|
|
class MxStreamer;
|
2024-03-09 15:07:52 -05:00
|
|
|
class MxStreamController;
|
2023-10-07 11:30:04 -04:00
|
|
|
class MxTickleManager;
|
|
|
|
class MxTimer;
|
|
|
|
class MxVariableTable;
|
|
|
|
class MxVideoManager;
|
2023-06-13 20:22:42 -04:00
|
|
|
|
2023-12-06 07:10:45 -05:00
|
|
|
// VTABLE: LEGO1 0x100dc168
|
2023-06-29 04:10:08 -04:00
|
|
|
// SIZE 0x68
|
2023-10-24 19:38:27 -04:00
|
|
|
class MxOmni : public MxCore {
|
2023-04-27 22:19:39 -04:00
|
|
|
public:
|
2024-01-24 21:16:29 -05:00
|
|
|
static void DestroyInstance();
|
|
|
|
static const char* GetCD();
|
|
|
|
static const char* GetHD();
|
|
|
|
static MxOmni* GetInstance();
|
|
|
|
static MxBool IsSound3D();
|
|
|
|
static void SetCD(const char* p_cd);
|
|
|
|
static void SetHD(const char* p_hd);
|
|
|
|
static void SetSound3D(MxBool p_use3dSound);
|
2023-10-24 19:38:27 -04:00
|
|
|
|
|
|
|
MxOmni();
|
2024-02-01 15:42:10 -05:00
|
|
|
~MxOmni() override;
|
2023-07-02 02:53:54 -04:00
|
|
|
|
2024-02-01 15:42:10 -05:00
|
|
|
MxLong Notify(MxParam& p_param) override; // vtable+04
|
2023-12-16 13:14:01 -05:00
|
|
|
virtual void Init(); // vtable+14
|
|
|
|
virtual MxResult Create(MxOmniCreateParam& p_param); // vtable+18
|
|
|
|
virtual void Destroy(); // vtable+1c
|
|
|
|
virtual MxResult Start(MxDSAction* p_dsAction); // vtable+20
|
|
|
|
virtual void DeleteObject(MxDSAction& p_dsAction); // vtable+24
|
|
|
|
virtual MxBool DoesEntityExist(MxDSAction& p_dsAction); // vtable+28
|
|
|
|
virtual MxResult CreatePresenter(MxStreamController* p_controller, MxDSAction& p_action); // vtable+2c
|
2024-01-26 16:00:02 -05:00
|
|
|
virtual MxEntity* AddToWorld(const char*, MxS32, MxPresenter*); // vtable+30
|
2024-04-22 08:11:38 -04:00
|
|
|
virtual void NotifyCurrentEntity(const MxNotificationParam& p_param); // vtable+34
|
2023-12-16 13:14:01 -05:00
|
|
|
virtual void StartTimer(); // vtable+38
|
|
|
|
virtual void StopTimer(); // vtable+3c
|
2024-01-11 10:02:55 -05:00
|
|
|
|
|
|
|
// FUNCTION: LEGO1 0x10058a90
|
2024-01-29 17:30:20 -05:00
|
|
|
virtual MxBool IsTimerRunning() { return m_timerRunning; } // vtable+40
|
2023-12-16 13:14:01 -05:00
|
|
|
|
2023-12-13 05:48:14 -05:00
|
|
|
static void SetInstance(MxOmni* p_instance);
|
2024-01-19 17:06:39 -05:00
|
|
|
static MxBool ActionSourceEquals(MxDSAction* p_action, const char* p_name);
|
2023-12-16 13:14:01 -05:00
|
|
|
|
2023-10-24 19:38:27 -04:00
|
|
|
HWND GetWindowHandle() const { return this->m_windowHandle; }
|
2024-05-07 13:00:16 -04:00
|
|
|
|
|
|
|
// FUNCTION: BETA10 0x10125100
|
2023-10-24 19:38:27 -04:00
|
|
|
MxObjectFactory* GetObjectFactory() const { return this->m_objectFactory; }
|
2024-05-07 13:00:16 -04:00
|
|
|
|
|
|
|
// FUNCTION: BETA10 0x10125120
|
2023-10-24 19:38:27 -04:00
|
|
|
MxNotificationManager* GetNotificationManager() const { return this->m_notificationManager; }
|
2024-05-07 13:00:16 -04:00
|
|
|
|
|
|
|
// FUNCTION: BETA10 0x10125140
|
2023-10-24 19:38:27 -04:00
|
|
|
MxTickleManager* GetTickleManager() const { return this->m_tickleManager; }
|
2024-05-07 13:00:16 -04:00
|
|
|
|
|
|
|
// FUNCTION: BETA10 0x10125160
|
2023-10-24 19:38:27 -04:00
|
|
|
MxTimer* GetTimer() const { return this->m_timer; }
|
2024-05-07 13:00:16 -04:00
|
|
|
|
|
|
|
// FUNCTION: BETA10 0x101251a0
|
2023-10-24 19:38:27 -04:00
|
|
|
MxStreamer* GetStreamer() const { return this->m_streamer; }
|
2024-05-07 13:00:16 -04:00
|
|
|
|
|
|
|
// FUNCTION: BETA10 0x100e5250
|
2023-10-24 19:38:27 -04:00
|
|
|
MxSoundManager* GetSoundManager() const { return this->m_soundManager; }
|
2024-05-07 13:00:16 -04:00
|
|
|
|
|
|
|
// FUNCTION: BETA10 0x1009e860
|
2023-10-24 19:38:27 -04:00
|
|
|
MxVideoManager* GetVideoManager() const { return this->m_videoManager; }
|
2024-05-07 13:00:16 -04:00
|
|
|
|
|
|
|
// FUNCTION: BETA10 0x101251c0
|
2023-10-24 19:38:27 -04:00
|
|
|
MxVariableTable* GetVariableTable() const { return this->m_variableTable; }
|
2024-05-07 13:00:16 -04:00
|
|
|
|
|
|
|
// FUNCTION: BETA10 0x101251e0
|
2023-10-24 19:38:27 -04:00
|
|
|
MxMusicManager* GetMusicManager() const { return this->m_musicManager; }
|
2024-05-07 13:00:16 -04:00
|
|
|
|
|
|
|
// FUNCTION: BETA10 0x10125200
|
2023-10-24 19:38:27 -04:00
|
|
|
MxEventManager* GetEventManager() const { return this->m_eventManager; }
|
2024-05-07 13:00:16 -04:00
|
|
|
|
|
|
|
// FUNCTION: BETA10 0x10125180
|
2024-04-25 11:43:42 -04:00
|
|
|
MxAtomSet* GetAtomSet() const { return this->m_atomSet; }
|
2024-05-07 13:00:16 -04:00
|
|
|
|
2024-03-18 15:00:58 -04:00
|
|
|
MxLong HandleEndAction(MxParam& p_param);
|
2023-06-19 01:36:07 -04:00
|
|
|
|
2024-01-18 08:34:14 -05:00
|
|
|
// SYNTHETIC: LEGO1 0x100aefd0
|
|
|
|
// MxOmni::`scalar deleting destructor'
|
|
|
|
|
2023-06-19 01:36:07 -04:00
|
|
|
protected:
|
2023-10-24 19:38:27 -04:00
|
|
|
static MxOmni* g_instance;
|
2023-06-19 01:36:07 -04:00
|
|
|
|
2024-01-29 16:17:17 -05:00
|
|
|
MxString m_mediaPath; // 0x08
|
2023-10-25 16:51:59 -04:00
|
|
|
HWND m_windowHandle; // 0x18
|
2024-02-16 19:34:30 -05:00
|
|
|
MxObjectFactory* m_objectFactory; // 0x1c
|
2023-10-24 19:38:27 -04:00
|
|
|
MxVariableTable* m_variableTable; // 0x20
|
|
|
|
MxTickleManager* m_tickleManager; // 0x24
|
|
|
|
MxNotificationManager* m_notificationManager; // 0x28
|
2024-02-16 19:34:30 -05:00
|
|
|
MxVideoManager* m_videoManager; // 0x2c
|
2023-10-24 19:38:27 -04:00
|
|
|
MxSoundManager* m_soundManager; // 0x30
|
|
|
|
MxMusicManager* m_musicManager; // 0x34
|
|
|
|
MxEventManager* m_eventManager; // 0x38
|
2024-02-16 19:34:30 -05:00
|
|
|
MxTimer* m_timer; // 0x3c
|
2023-10-24 19:38:27 -04:00
|
|
|
MxStreamer* m_streamer; // 0x40
|
2024-04-25 11:43:42 -04:00
|
|
|
MxAtomSet* m_atomSet; // 0x44
|
2024-03-12 10:23:50 -04:00
|
|
|
MxCriticalSection m_criticalSection; // 0x48
|
2023-12-16 13:14:01 -05:00
|
|
|
MxBool m_timerRunning; // 0x64
|
2023-04-27 22:19:39 -04:00
|
|
|
};
|
2023-12-16 13:14:01 -05:00
|
|
|
|
2023-04-27 22:19:39 -04:00
|
|
|
#endif // MXOMNI_H
|