diff --git a/LEGO1/mxbackgroundaudiomanager.cpp b/LEGO1/mxbackgroundaudiomanager.cpp index 6f001303..a24286ad 100644 --- a/LEGO1/mxbackgroundaudiomanager.cpp +++ b/LEGO1/mxbackgroundaudiomanager.cpp @@ -1,13 +1,29 @@ #include "mxbackgroundaudiomanager.h" +DECOMP_SIZE_ASSERT(MxBackgroundAudioManager, 0x150) + // OFFSET: LEGO1 0x1007ea90 MxBackgroundAudioManager::MxBackgroundAudioManager() { - // TODO + NotificationManager()->Register(this); + m_unka0 = 0; + m_unk138 = 0; + m_unk13c = 0; + m_unk140 = 0; + m_unk144 = 0; + m_unk148 = 0; + m_musicEnabled = FALSE; } // OFFSET: LEGO1 0x1007ec20 MxBackgroundAudioManager::~MxBackgroundAudioManager() +{ + // TODO + NotificationManager()->Unregister(this); +} + +// OFFSET: LEGO1 0x1007f470 +void MxBackgroundAudioManager::Stop() { // TODO } @@ -15,5 +31,17 @@ MxBackgroundAudioManager::~MxBackgroundAudioManager() // OFFSET: LEGO1 0x1007f5f0 void MxBackgroundAudioManager::Enable(MxBool p) { - // TODO + if (this->m_musicEnabled != p) { + this->m_musicEnabled = p; + if (!p) { + Stop(); + } + } +} + +// OFFSET: LEGO1 0x1007f650 +void MxBackgroundAudioManager::Init() +{ + this->m_unka0 = 0; + this->m_unk13c = 0; } diff --git a/LEGO1/mxbackgroundaudiomanager.h b/LEGO1/mxbackgroundaudiomanager.h index 9a23a671..c6f2f1e7 100644 --- a/LEGO1/mxbackgroundaudiomanager.h +++ b/LEGO1/mxbackgroundaudiomanager.h @@ -2,6 +2,9 @@ #define MXBACKGROUNDAUDIOMANAGER_H #include "mxcore.h" +#include "mxdsaction.h" +#include "mxtypes.h" +#include "mxnotificationmanager.h" // VTABLE 0x100d9fe8 // SIZE 0x150 @@ -25,6 +28,20 @@ public: } __declspec(dllexport) void Enable(unsigned char p); +private: + void Stop(); + void Init(); + + MxBool m_musicEnabled; // 0x8 + MxDSAction m_action1; // 0xc + MxS32 m_unka0; + MxDSAction m_action2; // 0xa4 + MxS32 m_unk138; + MxS32 m_unk13c; + MxS32 m_unk140; + MxS32 m_unk144; + MxS16 m_unk148; + MxAtomId m_unk14c; }; #endif // MXBACKGROUNDAUDIOMANAGER_H