From 5f4b99190187d3531a87e3025705d47d980c71bd Mon Sep 17 00:00:00 2001 From: Misha <106913236+MishaProductions@users.noreply.github.com> Date: Fri, 2 Feb 2024 18:29:57 -0500 Subject: [PATCH] fixes --- .../lego/legoomni/include/legosoundmanager.h | 4 +-- .../legoomni/include/legounknown100d6b4c.h | 6 ++++ .../legoomni/src/audio/legosoundmanager.cpp | 14 +++++--- .../src/audio/legounknown100d6b4c.cpp | 18 +++++++++++ LEGO1/legosoundmanager.h | 32 ------------------- 5 files changed, 36 insertions(+), 38 deletions(-) delete mode 100644 LEGO1/legosoundmanager.h diff --git a/LEGO1/lego/legoomni/include/legosoundmanager.h b/LEGO1/lego/legoomni/include/legosoundmanager.h index 83a4ea7d..5a29712a 100644 --- a/LEGO1/lego/legoomni/include/legosoundmanager.h +++ b/LEGO1/lego/legoomni/include/legosoundmanager.h @@ -24,8 +24,8 @@ class LegoSoundManager : public MxSoundManager { void Init(); void Destroy(MxBool p_fromDestructor); - undefined4 m_unk0x3c; // 0x3c - LegoUnknown100d6b4c* m_unk0x40; // 0x40 + IDirectSound3DListener* m_listener; // 0x3c + LegoUnknown100d6b4c* m_unk0x40; // 0x40 }; #endif // LEGOSOUNDMANAGER_H diff --git a/LEGO1/lego/legoomni/include/legounknown100d6b4c.h b/LEGO1/lego/legoomni/include/legounknown100d6b4c.h index 9b10bd50..9a63eeac 100644 --- a/LEGO1/lego/legoomni/include/legounknown100d6b4c.h +++ b/LEGO1/lego/legoomni/include/legounknown100d6b4c.h @@ -2,6 +2,7 @@ #define LEGOUNKNOWN100D6B4C_H #include "decomp.h" +#include "mxtypes.h" class LegoCacheSound; @@ -9,6 +10,11 @@ class LegoCacheSound; // SIZE 0x20 class LegoUnknown100d6b4c { public: + LegoUnknown100d6b4c(); + ~LegoUnknown100d6b4c(); + + virtual MxResult Tickle(); // vtable+0x0 + void FUN_1003dc40(LegoCacheSound** p_und); }; diff --git a/LEGO1/lego/legoomni/src/audio/legosoundmanager.cpp b/LEGO1/lego/legoomni/src/audio/legosoundmanager.cpp index e2b49e5f..1bbe401e 100644 --- a/LEGO1/lego/legoomni/src/audio/legosoundmanager.cpp +++ b/LEGO1/lego/legoomni/src/audio/legosoundmanager.cpp @@ -21,9 +21,15 @@ void LegoSoundManager::Init() m_listener = NULL; } -// STUB: LEGO1 0x100299b0 +// FUNCTION: LEGO1 0x100299b0 void LegoSoundManager::Destroy(MxBool p_fromDestructor) { + delete m_unk0x40; + Init(); + + if (!p_fromDestructor) { + MxSoundManager::Destroy(); + } } // FUNCTION: LEGO1 0x100299f0 @@ -51,7 +57,7 @@ MxResult LegoSoundManager::Create(MxU32 p_frequencyMS, MxBool p_createThread) } } - m_unk0x40 = new LegoSoundManagerSubclass(); + m_unk0x40 = new LegoUnknown100d6b4c(); result = SUCCESS; } @@ -71,11 +77,11 @@ void LegoSoundManager::Destroy() Destroy(FALSE); } -// STUB: LEGO1 0x1002a3a0 +// FUNCTION: LEGO1 0x1002a3a0 MxResult LegoSoundManager::Tickle() { MxMediaManager::Tickle(); MxAutoLocker lock(&this->m_criticalSection); - return 0; // TODO: call something in unk0x40 + return m_unk0x40->Tickle(); } diff --git a/LEGO1/lego/legoomni/src/audio/legounknown100d6b4c.cpp b/LEGO1/lego/legoomni/src/audio/legounknown100d6b4c.cpp index 2ed5f178..3497458a 100644 --- a/LEGO1/lego/legoomni/src/audio/legounknown100d6b4c.cpp +++ b/LEGO1/lego/legoomni/src/audio/legounknown100d6b4c.cpp @@ -1,5 +1,23 @@ #include "legounknown100d6b4c.h" +// Inline constructor at 0x10029adb +LegoUnknown100d6b4c::LegoUnknown100d6b4c() +{ + // TODO +} + +// STUB: LEGO1 0x1003cf20 +LegoUnknown100d6b4c::~LegoUnknown100d6b4c() +{ + // TODO +} + +// STUB: LEGO1 0x1003d050 +MxResult LegoUnknown100d6b4c::Tickle() +{ + return SUCCESS; +} + // STUB: LEGO1 0x1003dc40 void LegoUnknown100d6b4c::FUN_1003dc40(LegoCacheSound** p_und) { diff --git a/LEGO1/legosoundmanager.h b/LEGO1/legosoundmanager.h deleted file mode 100644 index 37ade109..00000000 --- a/LEGO1/legosoundmanager.h +++ /dev/null @@ -1,32 +0,0 @@ -#ifndef LEGOSOUNDMANAGER_H -#define LEGOSOUNDMANAGER_H - -#include "mxsoundmanager.h" - -// VTABLE: LEGO1 0x100d6b10 -// SIZE 0x44 -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); - - IDirectSound3DListener* m_listener; - LegoSoundManagerSubclass* m_unk0x40; -}; - -// VTABLE: LEGO1 0x100d6b4c -// SIZE 0x20 -class LegoSoundManagerSubclass -{ - -}; - -#endif // LEGOSOUNDMANAGER_H