diff --git a/CMakeLists.txt b/CMakeLists.txt index f72f83e2..05a82e5a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -93,6 +93,7 @@ add_library(lego1 SHARED LEGO1/motorcycle.cpp LEGO1/mxatomid.cpp LEGO1/mxatomidcounter.cpp + LEGO1/mxaudiomanager.cpp LEGO1/mxaudiopresenter.cpp LEGO1/mxautolocker.cpp LEGO1/mxbackgroundaudiomanager.cpp @@ -158,7 +159,6 @@ add_library(lego1 SHARED LEGO1/mxticklemanager.cpp LEGO1/mxtimer.cpp LEGO1/mxtransitionmanager.cpp - LEGO1/mxunknown100dc6e0.cpp LEGO1/mxvariable.cpp LEGO1/mxvariabletable.cpp LEGO1/mxvector.cpp diff --git a/LEGO1/mxaudiomanager.cpp b/LEGO1/mxaudiomanager.cpp new file mode 100644 index 00000000..b283a1ea --- /dev/null +++ b/LEGO1/mxaudiomanager.cpp @@ -0,0 +1,31 @@ +#include "mxaudiomanager.h" + +// OFFSET: LEGO1 0x100b8d00 +MxAudioManager::MxAudioManager() +{ + Init(); +} + +// OFFSET: LEGO1 0x100b8d90 +MxAudioManager::~MxAudioManager() +{ + LockedReinitialize(1); +} + +// OFFSET: LEGO1 0x100b8df0 +void MxAudioManager::Init() +{ + this->m_unk2c = 100; +} + +// OFFSET: LEGO1 0x100b8e00 +void MxAudioManager::LockedReinitialize(MxS8 p_skipTeardown) +{ + this->m_criticalSection.Enter(); + Init(); + this->m_criticalSection.Leave(); + + if (p_skipTeardown) { + Teardown(); + } +} \ No newline at end of file diff --git a/LEGO1/mxaudiomanager.h b/LEGO1/mxaudiomanager.h new file mode 100644 index 00000000..e87f8e78 --- /dev/null +++ b/LEGO1/mxaudiomanager.h @@ -0,0 +1,20 @@ +#ifndef MXAUDIOMANAGER_H +#define MXAUDIOMANAGER_H + +#include "mxmediamanager.h" + +// VTABLE 0x100dc6e0 +class MxAudioManager : public MxMediaManager +{ +public: + MxAudioManager(); + virtual ~MxAudioManager() override; + + void LockedReinitialize(MxS8); +protected: + void Init(); + + int m_unk2c; +}; + +#endif // MXAUDIOMANAGER_H diff --git a/LEGO1/mxsoundmanager.h b/LEGO1/mxsoundmanager.h index 4d74fa95..06dc9d5f 100644 --- a/LEGO1/mxsoundmanager.h +++ b/LEGO1/mxsoundmanager.h @@ -1,12 +1,12 @@ #ifndef MXSOUNDMANAGER_H #define MXSOUNDMANAGER_H -#include "mxunknown100dc6e0.h" +#include "mxaudiomanager.h" // VTABLE 0x100dc128 // SIZE 0x3c -// Base vtables are: MxCore -> 0x100dc6b0 -> 0x100dc6e0 -> MxSoundManager -class MxSoundManager : public MxUnknown100dc6e0 +// Base vtables are: MxCore -> 0x100dc6b0 -> MxAudioManager -> MxSoundManager +class MxSoundManager : public MxAudioManager { public: MxSoundManager(); diff --git a/LEGO1/mxunknown100dc6e0.cpp b/LEGO1/mxunknown100dc6e0.cpp deleted file mode 100644 index b896e89b..00000000 --- a/LEGO1/mxunknown100dc6e0.cpp +++ /dev/null @@ -1,19 +0,0 @@ -#include "mxunknown100dc6e0.h" - -// OFFSET: LEGO1 0x100b8d00 -MxUnknown100dc6e0::MxUnknown100dc6e0() -{ - Init(); -} - -// OFFSET: LEGO1 0x100b8d90 STUB -MxUnknown100dc6e0::~MxUnknown100dc6e0() -{ - // TODO -} - -// OFFSET: LEGO1 0x100b8df0 -void MxUnknown100dc6e0::Init() -{ - this->m_unk2c = 100; -} diff --git a/LEGO1/mxunknown100dc6e0.h b/LEGO1/mxunknown100dc6e0.h deleted file mode 100644 index 056e1fcd..00000000 --- a/LEGO1/mxunknown100dc6e0.h +++ /dev/null @@ -1,19 +0,0 @@ -#ifndef MXUNKNOWN100DC6E0_H -#define MXUNKNOWN100DC6E0_H - -#include "mxmediamanager.h" - -// VTABLE 0x100dc6e0 -class MxUnknown100dc6e0 : public MxMediaManager -{ -public: - MxUnknown100dc6e0(); - virtual ~MxUnknown100dc6e0() override; - -protected: - void Init(); - - int m_unk2c; -}; - -#endif // MXUNKNOWN100DC6E0_H