MxOmni::Create: 34.87%

This commit is contained in:
Misha 2023-10-07 12:02:03 -04:00
parent f781da9de0
commit d8c06a3fa8
4 changed files with 31 additions and 4 deletions

View File

@ -1,4 +1,5 @@
#include "mxeventmanager.h"
#include "decomp.h"
// OFFSET: LEGO1 0x100c0360
MxEventManager::MxEventManager()
@ -15,4 +16,11 @@ MxEventManager::~MxEventManager()
// OFFSET: LEGO1 0x100c0450
void MxEventManager::Init()
{
}
}
// OFFSET: LEGO1 0x100c04a0 STUB
MxResult MxEventManager::vtable0x28(undefined4 p_unknown1, MxU8 p_unknown2)
{
//TODO
return FAILURE;
}

View File

@ -1,6 +1,6 @@
#ifndef MXEVENTMANAGER_H
#define MXEVENTMANAGER_H
#include "decomp.h"
#include "mxmediamanager.h"
// VTABLE 0x100dc900
@ -10,6 +10,7 @@ class MxEventManager : public MxMediaManager
public:
MxEventManager();
virtual ~MxEventManager() override;
virtual MxResult vtable0x28(undefined4 p_unknown1, MxU8 p_unknown2); // vtable+28
private:
void Init();

View File

@ -237,7 +237,7 @@ MxResult MxOmni::Create(MxOmniCreateParam &p)
MxVideoManager *videoManager = new MxVideoManager();
this->m_videoManager = videoManager;
if (videoManager != NULL && videoManager->vtable0x2c(p.GetVideoParam(), 100, 0) != 0)
if (videoManager != NULL && videoManager->vtable0x2c(p.GetVideoParam(), 100, 0) != SUCCESS)
{
delete m_videoManager;
m_videoManager = NULL;
@ -250,7 +250,7 @@ MxResult MxOmni::Create(MxOmniCreateParam &p)
this->m_soundManager = soundManager;
//TODO
if (soundManager != NULL && soundManager->StartDirectSound(10, 0) != FAILURE)
if (soundManager != NULL && soundManager->StartDirectSound(10, 0) != SUCCESS)
{
delete m_soundManager;
m_soundManager = NULL;
@ -259,7 +259,24 @@ MxResult MxOmni::Create(MxOmniCreateParam &p)
if (p.CreateFlags().CreateMusicManager())
{
MxMusicManager *musicManager = new MxMusicManager();
this->m_musicManager = musicManager;
if (musicManager != NULL && musicManager->StartMIDIThread(50, 0) != SUCCESS)
{
delete m_musicManager;
m_musicManager = NULL;
}
}
if (p.CreateFlags().CreateEventManager())
{
MxEventManager *eventManager = new MxEventManager();
this->m_eventManager = eventManager;
if (m_eventManager != NULL && m_eventManager->vtable0x28(50, 0) != SUCCESS)
{
delete m_eventManager;
m_eventManager = NULL;
}
}

View File

@ -17,6 +17,7 @@
#include "mxvideomanager.h"
#include "mxatomidcounter.h"
#include "mxautolocker.h"
#include "mxeventmanager.h"
// VTABLE 0x100dc168
// SIZE 0x68