From 6e6307c7b0ce7999c8a5e8179d46a3542a04fc51 Mon Sep 17 00:00:00 2001 From: Joshua Peisach Date: Fri, 13 Oct 2023 20:13:33 -0400 Subject: [PATCH] MxMIDIPresenter::EndMIDIAction + update param name m_MIDIInitialized is definitely public, since it is accessed from the global MusicManager. --- LEGO1/mxmidipresenter.cpp | 12 +++++++++++- LEGO1/mxmidipresenter.h | 2 ++ LEGO1/mxmusicmanager.h | 2 ++ 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/LEGO1/mxmidipresenter.cpp b/LEGO1/mxmidipresenter.cpp index d17bf975..f16ecf3e 100644 --- a/LEGO1/mxmidipresenter.cpp +++ b/LEGO1/mxmidipresenter.cpp @@ -1,6 +1,8 @@ #include "mxmidipresenter.h" #include "decomp.h" +#include "legoomni.h" +#include "mxmusicmanager.h" DECOMP_SIZE_ASSERT(MxMIDIPresenter, 0x58); @@ -22,7 +24,15 @@ void MxMIDIPresenter::Init() } // OFFSET: LEGO1 0x100c2830 STUB -void MxMIDIPresenter::Destroy(MxBool p_param) +void MxMIDIPresenter::Destroy(MxBool p_fromDestructor) { // TODO } + +// OFFSET: LEGO1 0x100c2940 +void MxMIDIPresenter::EndMIDIAction() +{ + if(!MusicManager()->m_MIDIInitialized) { + this->EndAction(); + } +} \ No newline at end of file diff --git a/LEGO1/mxmidipresenter.h b/LEGO1/mxmidipresenter.h index f36a6216..cf6ee88e 100644 --- a/LEGO1/mxmidipresenter.h +++ b/LEGO1/mxmidipresenter.h @@ -23,6 +23,8 @@ class MxMIDIPresenter : public MxMusicPresenter return !strcmp(name, MxMIDIPresenter::ClassName()) || MxMusicPresenter::IsA(name); } + virtual void EndMIDIAction(); // vtable+0x2a + private: void Init(); void Destroy(MxBool); diff --git a/LEGO1/mxmusicmanager.h b/LEGO1/mxmusicmanager.h index d60d787e..013867a7 100644 --- a/LEGO1/mxmusicmanager.h +++ b/LEGO1/mxmusicmanager.h @@ -24,7 +24,9 @@ class MxMusicManager : public MxAudioManager void SetMIDIVolume(); HMIDISTRM m_MIDIStreamH; // 0x30 +public: MxBool m_MIDIInitialized; // 0x34 +private: undefined4 m_unk38; // 0x38 undefined4 m_unk3c; // 0x3c undefined4 m_unk40; // 0x40