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"
|
|
|
|
#include "mxstring.h"
|
2023-06-19 01:36:07 -04:00
|
|
|
#include "mxcriticalsection.h"
|
2023-10-07 11:30:04 -04:00
|
|
|
|
|
|
|
class MxAtomIdCounterSet;
|
|
|
|
class MxDSAction;
|
|
|
|
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;
|
|
|
|
class MxSoundManager;
|
|
|
|
class MxStreamer;
|
|
|
|
class MxTickleManager;
|
|
|
|
class MxTimer;
|
|
|
|
class MxVariableTable;
|
|
|
|
class MxVideoManager;
|
2023-06-13 20:22:42 -04:00
|
|
|
|
2023-06-29 04:10:08 -04:00
|
|
|
// VTABLE 0x100dc168
|
|
|
|
// SIZE 0x68
|
2023-06-19 01:36:07 -04:00
|
|
|
class MxOmni : public MxCore
|
2023-04-27 22:19:39 -04:00
|
|
|
{
|
|
|
|
public:
|
|
|
|
__declspec(dllexport) static void DestroyInstance();
|
2023-06-13 20:22:42 -04:00
|
|
|
__declspec(dllexport) static const char *GetCD();
|
|
|
|
__declspec(dllexport) static const char *GetHD();
|
|
|
|
__declspec(dllexport) static MxOmni *GetInstance();
|
2023-06-30 14:34:39 -04:00
|
|
|
__declspec(dllexport) static MxBool IsSound3D();
|
|
|
|
__declspec(dllexport) static void SetCD(const char *p_cd);
|
|
|
|
__declspec(dllexport) static void SetHD(const char *p_hd);
|
|
|
|
__declspec(dllexport) static void SetSound3D(MxBool p_3dsound);
|
2023-07-02 02:53:54 -04:00
|
|
|
|
|
|
|
MxOmni();
|
|
|
|
virtual ~MxOmni() override;
|
2023-06-19 01:36:07 -04:00
|
|
|
|
2023-09-25 16:28:25 -04:00
|
|
|
virtual MxLong Notify(MxParam &p) override; // vtable+04
|
2023-06-19 01:36:07 -04:00
|
|
|
virtual void Init(); // vtable+14
|
2023-09-25 16:28:25 -04:00
|
|
|
virtual MxResult Create(COMPAT_CONST MxOmniCreateParam &p); // vtable+18
|
2023-06-19 01:36:07 -04:00
|
|
|
virtual void Destroy(); // vtable+1c
|
2023-10-07 09:05:44 -04:00
|
|
|
virtual MxResult Start(MxDSAction* p_dsAction); // vtable+20
|
2023-09-25 16:28:25 -04:00
|
|
|
virtual void DeleteObject(MxDSAction &ds); // vtable+24
|
|
|
|
virtual MxBool DoesEntityExist(MxDSAction &ds); // vtable+28
|
2023-09-13 03:44:03 -04:00
|
|
|
virtual void vtable0x2c(); // vtable+2c
|
|
|
|
virtual int vtable0x30(char*, int, MxCore*); // vtable+30
|
2023-10-21 17:02:55 -04:00
|
|
|
virtual void NotifyCurrentEntity(MxNotificationParam *p_param); // vtable+34
|
2023-09-13 03:44:03 -04:00
|
|
|
virtual void StartTimer(); // vtable+38
|
2023-10-07 13:12:59 -04:00
|
|
|
virtual void StopTimer(); // vtable+3c
|
2023-10-09 06:31:36 -04:00
|
|
|
virtual MxBool IsTimerRunning(); //vtable+40
|
2023-06-29 13:02:47 -04:00
|
|
|
static void SetInstance(MxOmni* instance);
|
2023-08-28 05:49:15 -04:00
|
|
|
HWND GetWindowHandle() const { return this->m_windowHandle; }
|
2023-06-29 13:02:47 -04:00
|
|
|
MxObjectFactory* GetObjectFactory() const { return this->m_objectFactory; }
|
|
|
|
MxNotificationManager* GetNotificationManager() const { return this->m_notificationManager; }
|
|
|
|
MxTickleManager* GetTickleManager() const { return this->m_tickleManager; }
|
2023-06-19 01:36:07 -04:00
|
|
|
MxTimer* GetTimer() const { return this->m_timer; }
|
2023-06-29 13:02:47 -04:00
|
|
|
MxStreamer* GetStreamer() const { return this->m_streamer; }
|
|
|
|
MxSoundManager* GetSoundManager() const { return this->m_soundManager; }
|
|
|
|
MxVideoManager* GetVideoManager() const { return this->m_videoManager; }
|
|
|
|
MxVariableTable* GetVariableTable() const { return this->m_variableTable; }
|
|
|
|
MxMusicManager* GetMusicManager() const { return this->m_musicManager; }
|
|
|
|
MxEventManager* GetEventManager() const { return this->m_eventManager; }
|
2023-08-16 13:09:44 -04:00
|
|
|
MxAtomIdCounterSet* GetAtomIdCounterSet() const { return this->m_atomIdCounterSet; }
|
2023-10-07 14:05:45 -04:00
|
|
|
MxResult HandleNotificationType2(MxParam& p_param);
|
2023-06-19 01:36:07 -04:00
|
|
|
protected:
|
2023-06-29 13:02:47 -04:00
|
|
|
static MxOmni* g_instance;
|
2023-06-19 01:36:07 -04:00
|
|
|
|
|
|
|
MxString m_mediaPath; // 0x8
|
2023-08-28 05:49:15 -04:00
|
|
|
HWND m_windowHandle; // 0x18;
|
2023-06-19 01:36:07 -04:00
|
|
|
MxObjectFactory *m_objectFactory; // 0x1C
|
|
|
|
MxVariableTable* m_variableTable; //0x20
|
|
|
|
MxTickleManager* m_tickleManager; //0x24
|
|
|
|
MxNotificationManager* m_notificationManager; //0x28
|
|
|
|
MxVideoManager *m_videoManager; //0x2C
|
|
|
|
MxSoundManager* m_soundManager; //0x30
|
|
|
|
MxMusicManager* m_musicManager; //0x34
|
|
|
|
MxEventManager* m_eventManager; //0x38
|
|
|
|
MxTimer* m_timer; //0x3C
|
|
|
|
MxStreamer* m_streamer; //0x40
|
|
|
|
|
2023-08-16 13:09:44 -04:00
|
|
|
MxAtomIdCounterSet* m_atomIdCounterSet; // 0x44
|
2023-06-19 01:36:07 -04:00
|
|
|
|
|
|
|
MxCriticalSection m_criticalsection; // 0x48
|
2023-06-13 20:22:42 -04:00
|
|
|
|
2023-10-07 13:12:59 -04:00
|
|
|
MxBool m_timerRunning; // 0x64
|
2023-04-27 22:19:39 -04:00
|
|
|
};
|
2023-06-29 13:02:47 -04:00
|
|
|
__declspec(dllexport) MxTickleManager * TickleManager();
|
2023-06-19 04:34:58 -04:00
|
|
|
__declspec(dllexport) MxTimer * Timer();
|
2023-06-29 13:02:47 -04:00
|
|
|
__declspec(dllexport) MxStreamer * Streamer();
|
|
|
|
__declspec(dllexport) MxSoundManager * MSoundManager();
|
|
|
|
__declspec(dllexport) MxVariableTable * VariableTable();
|
|
|
|
__declspec(dllexport) MxMusicManager * MusicManager();
|
|
|
|
__declspec(dllexport) MxEventManager * EventManager();
|
2023-06-30 14:34:39 -04:00
|
|
|
__declspec(dllexport) MxNotificationManager * NotificationManager();
|
2023-10-12 12:18:24 -04:00
|
|
|
|
|
|
|
MxVideoManager *MVideoManager();
|
|
|
|
MxAtomIdCounterSet *AtomIdCounterSet();
|
|
|
|
MxObjectFactory *ObjectFactory();
|
2023-06-19 04:34:58 -04:00
|
|
|
|
2023-04-27 22:19:39 -04:00
|
|
|
#endif // MXOMNI_H
|