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