diff --git a/LEGO1/legoactioncontrolpresenter.cpp b/LEGO1/legoactioncontrolpresenter.cpp index 72e5cd93..2c6d0f17 100644 --- a/LEGO1/legoactioncontrolpresenter.cpp +++ b/LEGO1/legoactioncontrolpresenter.cpp @@ -8,11 +8,7 @@ #include "mxomni.h" #include "mxticklemanager.h" -// Only a `scalar deleting destructor' exists. -LegoActionControlPresenter::~LegoActionControlPresenter() -{ - Destroy(TRUE); -} +DECOMP_SIZE_ASSERT(LegoActionControlPresenter, 0x68) // OFFSET: LEGO1 0x10043ce0 STUB void LegoActionControlPresenter::ReadyTickle() @@ -30,10 +26,12 @@ void LegoActionControlPresenter::RepeatingTickle() MxResult LegoActionControlPresenter::AddToManager() { MxResult result = FAILURE; + if (TickleManager()) { result = SUCCESS; TickleManager()->RegisterClient(this, 100); } + return result; } diff --git a/LEGO1/legoactioncontrolpresenter.h b/LEGO1/legoactioncontrolpresenter.h index 32b50ff3..789d84aa 100644 --- a/LEGO1/legoactioncontrolpresenter.h +++ b/LEGO1/legoactioncontrolpresenter.h @@ -5,12 +5,17 @@ #include "legoutil.h" #include "mxmediapresenter.h" +// TODO: Find proper compilation unit to put this +// OFFSET: LEGO1 0x1000d1d0 TEMPLATE +// LegoActionControlPresenter::`scalar deleting destructor' + // VTABLE 0x100d5118 // SIZE 0x68 class LegoActionControlPresenter : public MxMediaPresenter { public: inline LegoActionControlPresenter() { m_unk0x50 = ExtraActionType_none; } - virtual ~LegoActionControlPresenter() override; // vtable+0x00 + virtual ~LegoActionControlPresenter() override { Destroy(TRUE); }; // vtable+0x00 + // OFFSET: LEGO1 0x1000d0e0 inline virtual const char* ClassName() const override // vtable+0x0c { @@ -23,16 +28,17 @@ class LegoActionControlPresenter : public MxMediaPresenter { { return !strcmp(name, LegoActionControlPresenter::ClassName()) || MxMediaPresenter::IsA(name); } - virtual void ReadyTickle() override; // vtable+0x18 - virtual void RepeatingTickle() override; // vtable+0x24 - virtual void ParseExtra(); // vtable+0x30 - virtual MxResult AddToManager() override; + + virtual void ReadyTickle() override; // vtable+0x18 + virtual void RepeatingTickle() override; // vtable+0x24 + virtual void ParseExtra() override; // vtable+0x30 + virtual MxResult AddToManager() override; // vtable+0x34 + virtual void Destroy(MxBool p_fromDestructor); // vtable+0x5c private: - virtual void Destroy(MxBool p_fromDestructor); // vtable+0x5c - ExtraActionType m_unk0x50; - MxString m_unk0x54; - undefined4 m_unk0x64; + ExtraActionType m_unk0x50; // 0x50 + MxString m_unk0x54; // 0x54 + undefined4 m_unk0x64; // 0x64 }; #endif // LEGOACTIONCONTROLPRESENTER_H