diff --git a/LEGO1/mxeventpresenter.cpp b/LEGO1/mxeventpresenter.cpp index 755b440e..48741d4f 100644 --- a/LEGO1/mxeventpresenter.cpp +++ b/LEGO1/mxeventpresenter.cpp @@ -24,11 +24,22 @@ void MxEventPresenter::Init() m_unk50 = NULL; } +// OFFSET: LEGO1 0x100c2db0 +MxResult MxEventPresenter::AddToManager() +{ + MxResult ret = FAILURE; + if (EventManager()) { + ret = SUCCESS; + EventManager()->AddPresenter(*this); + } + + return ret; +} + // OFFSET: LEGO1 0x100c2de0 void MxEventPresenter::Destroy() { - MxEventManager* eventManager = EventManager(); - if (eventManager) + if (EventManager()) EventManager()->RemovePresenter(*this); m_criticalSection.Enter(); diff --git a/LEGO1/mxeventpresenter.h b/LEGO1/mxeventpresenter.h index 35ad8ae9..91b95983 100644 --- a/LEGO1/mxeventpresenter.h +++ b/LEGO1/mxeventpresenter.h @@ -24,7 +24,8 @@ public: return !strcmp(name, MxEventPresenter::ClassName()) || MxMediaPresenter::IsA(name); } - virtual void Destroy() override; // vtable+0x38 + virtual MxResult AddToManager() override; // vtable+0x34 + virtual void Destroy() override; // vtable+0x38 private: void Init();