From c8ec60b62c576665e7bbfb503786b72906f3e281 Mon Sep 17 00:00:00 2001 From: Joshua Peisach Date: Mon, 25 Dec 2023 17:46:15 -0500 Subject: [PATCH] LegoLoadCacheSoundPresenter ctor, dtor, init, destroy (#360) * LegoLoadCacheSoundPresenter ctor, dtor, init, destroy * Fixes --------- Co-authored-by: Christian Semmler --- LEGO1/legoloadcachesoundpresenter.cpp | 19 +++++++++++++++---- LEGO1/legoloadcachesoundpresenter.h | 12 ++++++++++++ LEGO1/mxwavepresenter.h | 4 +++- 3 files changed, 30 insertions(+), 5 deletions(-) diff --git a/LEGO1/legoloadcachesoundpresenter.cpp b/LEGO1/legoloadcachesoundpresenter.cpp index 4bc2cbd6..41445182 100644 --- a/LEGO1/legoloadcachesoundpresenter.cpp +++ b/LEGO1/legoloadcachesoundpresenter.cpp @@ -1,19 +1,30 @@ #include "legoloadcachesoundpresenter.h" +DECOMP_SIZE_ASSERT(LegoLoadCacheSoundPresenter, 0x90) + // FUNCTION: LEGO1 0x10018340 LegoLoadCacheSoundPresenter::LegoLoadCacheSoundPresenter() { Init(); } -// STUB: LEGO1 0x10018480 +// FUNCTION: LEGO1 0x10018480 LegoLoadCacheSoundPresenter::~LegoLoadCacheSoundPresenter() { - // TODO + Destroy(TRUE); } -// STUB: LEGO1 0x100184e0 +// FUNCTION: LEGO1 0x100184e0 void LegoLoadCacheSoundPresenter::Init() { - // TODO + this->m_unk0x70 = NULL; + this->m_unk0x78 = 0; + this->m_unk0x7c = 0; +} + +// FUNCTION: LEGO1 0x100184f0 +void LegoLoadCacheSoundPresenter::Destroy(MxBool p_fromDestructor) +{ + delete this->m_unk0x70; + MxWavePresenter::Destroy(p_fromDestructor); } diff --git a/LEGO1/legoloadcachesoundpresenter.h b/LEGO1/legoloadcachesoundpresenter.h index 6f9f473b..c9255b01 100644 --- a/LEGO1/legoloadcachesoundpresenter.h +++ b/LEGO1/legoloadcachesoundpresenter.h @@ -1,6 +1,7 @@ #ifndef LEGOLOADCACHESOUNDPRESENTER_H #define LEGOLOADCACHESOUNDPRESENTER_H +#include "decomp.h" #include "mxwavepresenter.h" // VTABLE: LEGO1 0x100d5fa8 @@ -19,6 +20,17 @@ public: private: void Init(); + void Destroy(MxBool p_fromDestructor); + + undefined4* m_unk0x6c; // 0x6c + undefined4* m_unk0x70; // 0x70 + undefined4 m_unk0x74; // 0x74 + undefined4 m_unk0x78; // 0x78 + undefined m_unk0x7c; // 0x7c + undefined4 m_unk0x80[4]; // 0x80 }; +// SYNTHETIC: LEGO1 0x10018460 +// LegoLoadCacheSoundPresenter::`scalar deleting destructor' + #endif // LEGOLOADCACHESOUNDPRESENTER_H diff --git a/LEGO1/mxwavepresenter.h b/LEGO1/mxwavepresenter.h index ddb2b480..4210a44e 100644 --- a/LEGO1/mxwavepresenter.h +++ b/LEGO1/mxwavepresenter.h @@ -50,9 +50,11 @@ public: MxU32 m_flags; }; +protected: + void Destroy(MxBool p_fromDestructor); + private: void Init(); - void Destroy(MxBool p_fromDestructor); MxS8 GetPlayedChunks(); MxBool FUN_100b1ba0(); void WriteToSoundBuffer(void* p_audioPtr, MxU32 p_length);