diff --git a/LEGO1/lego/legoomni/include/legolocomotionanimpresenter.h b/LEGO1/lego/legoomni/include/legolocomotionanimpresenter.h index 04fc7d7a..cb7e3334 100644 --- a/LEGO1/lego/legoomni/include/legolocomotionanimpresenter.h +++ b/LEGO1/lego/legoomni/include/legolocomotionanimpresenter.h @@ -4,10 +4,11 @@ #include "legoloopinganimpresenter.h" // VTABLE: LEGO1 0x100d9170 -// SIZE 0xD8 +// SIZE 0xd8 class LegoLocomotionAnimPresenter : public LegoLoopingAnimPresenter { public: LegoLocomotionAnimPresenter(); + virtual ~LegoLocomotionAnimPresenter() override; // FUNCTION: LEGO1 0x1006ce50 inline const char* ClassName() const override // vtable+0xc diff --git a/LEGO1/lego/legoomni/src/video/legolocomotionanimpresenter.cpp b/LEGO1/lego/legoomni/src/video/legolocomotionanimpresenter.cpp index 6432a485..05970923 100644 --- a/LEGO1/lego/legoomni/src/video/legolocomotionanimpresenter.cpp +++ b/LEGO1/lego/legoomni/src/video/legolocomotionanimpresenter.cpp @@ -9,15 +9,21 @@ LegoLocomotionAnimPresenter::LegoLocomotionAnimPresenter() Init(); } +// FUNCTION: LEGO1 0x1006d050 +LegoLocomotionAnimPresenter::~LegoLocomotionAnimPresenter() +{ + Destroy(TRUE); +} + // FUNCTION: LEGO1 0x1006d0b0 void LegoLocomotionAnimPresenter::Init() { m_unk0xc0 = 0; m_unk0xc4 = 0; - m_unk0xd4 = 0; m_unk0xcc = -1; m_unk0xd0 = -1; m_unk0xc8 = 0; + m_unk0xd4 = 0; } // FUNCTION: LEGO1 0x1006d0e0 @@ -32,8 +38,10 @@ void LegoLocomotionAnimPresenter::Destroy(MxBool p_fromDestructor) if (m_unk0xc8) { delete m_unk0xc8; } + m_unk0x68 = 0; Init(); + m_criticalSection.Leave(); if (!p_fromDestructor) {