From f260838b7f27f329ec9a26632e2d23e40ffd6bc4 Mon Sep 17 00:00:00 2001 From: Joshua Peisach Date: Mon, 25 Dec 2023 14:35:32 -0500 Subject: [PATCH] LegoLoadCacheSoundPresenter ctor, dtor, init, destroy --- LEGO1/legoloadcachesoundpresenter.cpp | 19 +++++++++++++++---- LEGO1/legoloadcachesoundpresenter.h | 10 ++++++++++ LEGO1/mxwavepresenter.h | 4 +++- 3 files changed, 28 insertions(+), 5 deletions(-) diff --git a/LEGO1/legoloadcachesoundpresenter.cpp b/LEGO1/legoloadcachesoundpresenter.cpp index 4bc2cbd6..89502dad 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 = 0; + 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..25157962 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,15 @@ class LegoLoadCacheSoundPresenter : public MxWavePresenter { private: void Init(); + void Destroy(MxBool p_fromDestructor); + + // TODO: Types + undefined4* m_unk0x6c; + undefined4* m_unk0x70; // might be a void* as per Destroy function + undefined4 m_unk0x74; + undefined4 m_unk0x78; + undefined m_unk0x7c; + undefined4 m_unk0x7d[4]; }; #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 @@ class MxWavePresenter : public MxSoundPresenter { 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);