From 472a82f22016cb32488b1a0f2fd8f0855e15f5bb Mon Sep 17 00:00:00 2001 From: Joshua Peisach Date: Sat, 7 Oct 2023 16:36:05 -0400 Subject: [PATCH] MxMusicPresenter vtable (#184) * MxMusicPresenter vtable vtable+0x34 adds the current presenter to the music manager vtable+0x38 calls destroy with the param as "FALSE" * Update mxmusicpresenter.cpp * Update mxmusicpresenter.cpp --------- Co-authored-by: Christian Semmler --- LEGO1/mxmusicpresenter.cpp | 26 +++++++++++++++++++++++++- LEGO1/mxmusicpresenter.h | 4 ++++ 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/LEGO1/mxmusicpresenter.cpp b/LEGO1/mxmusicpresenter.cpp index 72ae273a..45a56679 100644 --- a/LEGO1/mxmusicpresenter.cpp +++ b/LEGO1/mxmusicpresenter.cpp @@ -1,5 +1,11 @@ #include "mxmusicpresenter.h" +#include "decomp.h" +#include "mxmusicmanager.h" +#include "mxomni.h" + +DECOMP_SIZE_ASSERT(MxMusicPresenter, 0x54); + // OFFSET: LEGO1 0x100c22c0 MxMusicPresenter::MxMusicPresenter() { @@ -21,4 +27,22 @@ void MxMusicPresenter::Init() void MxMusicPresenter::Destroy(MxBool) { // TODO -} \ No newline at end of file +} + +// OFFSET: LEGO1 0x100c25a0 +MxResult MxMusicPresenter::AddToMusicManager() +{ + MxResult result = FAILURE; + if (MusicManager()) { + result = SUCCESS; + MusicManager()->AddPresenter(*this); + } + return result; +} + +// OFFSET: LEGO1 0x100c25d0 +void MxMusicPresenter::vtable38() +{ + // TODO: Name this function when we know what the argument to Destroy does + Destroy(FALSE); +} diff --git a/LEGO1/mxmusicpresenter.h b/LEGO1/mxmusicpresenter.h index a000c2b9..2e55aa6c 100644 --- a/LEGO1/mxmusicpresenter.h +++ b/LEGO1/mxmusicpresenter.h @@ -4,6 +4,7 @@ #include "mxaudiopresenter.h" // VTABLE 0x100dc9b8 +// SIZE 0x54 class MxMusicPresenter : public MxAudioPresenter { public: @@ -23,6 +24,9 @@ public: MxMusicPresenter(); virtual ~MxMusicPresenter() override; + virtual MxResult AddToMusicManager(); // vtable+0x34 + virtual void vtable38(); // vtable+0x38 + private: void Init(); void Destroy(MxBool);