diff --git a/LEGO1/legosoundmanager.cpp b/LEGO1/legosoundmanager.cpp index 01f8fee5..cec30564 100644 --- a/LEGO1/legosoundmanager.cpp +++ b/LEGO1/legosoundmanager.cpp @@ -1,20 +1,48 @@ #include "legosoundmanager.h" +#include "mxautolocker.h" -// OFFSET: LEGO1 0x100298a0 STUB +// OFFSET: LEGO1 0x100298a0 LegoSoundManager::LegoSoundManager() { - // TODO + Init(); } -// OFFSET: LEGO1 0x10029940 STUB +// OFFSET: LEGO1 0x10029940 LegoSoundManager::~LegoSoundManager() { - // TODO + Destroy(TRUE); +} + +// OFFSET: LEGO1 0x1002a390 +void LegoSoundManager::Destroy() +{ + Destroy(FALSE); +} + +// OFFSET: LEGO1 0x100299b0 STUB +void LegoSoundManager::Destroy(MxBool p_fromDestructor) +{ + +} + +// OFFSET: LEGO1 0x100299f0 STUB +MxResult LegoSoundManager::Create(MxU32 p_frequencyMS, MxBool p_createThread) +{ + return FAILURE; +} + +// OFFSET: LEGO1 0x100299a0 +void LegoSoundManager::Init() +{ + unk0x40 = 0; + unk0x3c = 0; } // OFFSET: LEGO1 0x1002a3a0 STUB MxResult LegoSoundManager::Tickle() { - // TODO - return 0; + MxMediaManager::Tickle(); + MxAutoLocker lock(&this->m_criticalSection); + + return 0; // TODO: call something in unk0x40 } diff --git a/LEGO1/legosoundmanager.h b/LEGO1/legosoundmanager.h index 90e23fba..1f16f497 100644 --- a/LEGO1/legosoundmanager.h +++ b/LEGO1/legosoundmanager.h @@ -10,11 +10,17 @@ class LegoSoundManager : public MxSoundManager public: LegoSoundManager(); virtual ~LegoSoundManager() override; + virtual MxResult Tickle() override; // vtable+08 + virtual void Destroy() override; // vtable+18 + virtual MxResult Create(MxU32 p_frequencyMS, MxBool p_createThread) override; //vtable+0x30 private: void Init(); + void Destroy(MxBool p_fromDestructor); + undefined4 unk0x3c; + undefined4 unk0x40; }; #endif // LEGOSOUNDMANAGER_H diff --git a/LEGO1/mxsoundmanager.cpp b/LEGO1/mxsoundmanager.cpp index 51336843..ca04580f 100644 --- a/LEGO1/mxsoundmanager.cpp +++ b/LEGO1/mxsoundmanager.cpp @@ -58,11 +58,23 @@ MxResult MxSoundManager::Create(MxU32 p_frequencyMS, MxBool p_createThread) // OFFSET: LEGO1 0x100aed10 STUB void MxSoundManager::vtable0x34() { - // TODO STUB + // TODO } // OFFSET: LEGO1 0x100aee10 STUB void MxSoundManager::vtable0x38() { - // TODO STUB + // TODO +} + +// OFFSET: LEGO1 0x100aeab0 +void MxSoundManager::Destroy() +{ + Destroy(FALSE); +} + +// OFFSET: LEGO1 0x100aeac0 STUB +void MxSoundManager::SetVolume(MxS32 p_volume) +{ + // TODO } diff --git a/LEGO1/mxsoundmanager.h b/LEGO1/mxsoundmanager.h index 3bd41085..9e0656f8 100644 --- a/LEGO1/mxsoundmanager.h +++ b/LEGO1/mxsoundmanager.h @@ -14,6 +14,8 @@ public: MxSoundManager(); virtual ~MxSoundManager() override; // vtable+0x0 + virtual void Destroy() override; // vtable+18 + virtual void SetVolume(MxS32 p_volume) override; // vtable+2c virtual MxResult Create(MxU32 p_frequencyMS, MxBool p_createThread); //vtable+0x30 virtual void vtable0x34(); // vtable+0x34 virtual void vtable0x38(); // vtable+0x38