diff --git a/LEGO1/legosoundmanager.cpp b/LEGO1/legosoundmanager.cpp index 01f8fee5..1ae72adf 100644 --- a/LEGO1/legosoundmanager.cpp +++ b/LEGO1/legosoundmanager.cpp @@ -1,20 +1,66 @@ #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 0x100aeac0 STUB +void LegoSoundManager::SetVolume(MxS32 p_volume) +{ + +} + +// OFFSET: LEGO1 0x100299f0 STUB +MxResult LegoSoundManager::Create(MxU32 p_frequencyMS, MxBool p_createThread) +{ + return FAILURE; +} + +// OFFSET: LEGO1 0x100aed10 STUB +void LegoSoundManager::vtable0x34() +{ + +} + +// OFFSET: LEGO1 0x100aee10 STUB +void LegoSoundManager::vtable0x38() +{ + +} + +// OFFSET: LEGO1 0x100299a0 +void LegoSoundManager::Init() +{ + unk0x3c = 0; + unk0x40 = 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..5a388ad4 100644 --- a/LEGO1/legosoundmanager.h +++ b/LEGO1/legosoundmanager.h @@ -10,11 +10,19 @@ class LegoSoundManager : public MxSoundManager public: LegoSoundManager(); virtual ~LegoSoundManager() override; + virtual MxResult Tickle() override; // vtable+08 + virtual void Destroy() override; // vtable+18 + virtual void SetVolume(MxS32 p_volume) override; // vtable+2c + virtual MxResult Create(MxU32 p_frequencyMS, MxBool p_createThread) override; //vtable+0x30 + virtual void vtable0x34() override; // vtable+0x34 + virtual void vtable0x38() override; // vtable+0x38 private: void Init(); - + void Destroy(MxBool p_fromDestructor); + undefined4 unk0x40; + undefined4 unk0x3c; }; #endif // LEGOSOUNDMANAGER_H