This commit is contained in:
Christian Semmler 2023-11-02 06:38:19 -04:00
parent cbffc3f46b
commit 3c069c2604
5 changed files with 54 additions and 15 deletions

View File

@ -9,26 +9,16 @@ LegoEntityPresenter::LegoEntityPresenter()
Init(); Init();
} }
// OFFSET: LEGO1 0x100535d0
LegoEntityPresenter::~LegoEntityPresenter()
{
Destroy();
}
// OFFSET: LEGO1 0x100535c0 // OFFSET: LEGO1 0x100535c0
void LegoEntityPresenter::Init() void LegoEntityPresenter::Init()
{ {
m_unk4c = 0; m_unk4c = 0;
} }
// OFFSET: LEGO1 0x10053640 // OFFSET: LEGO1 0x100535d0
undefined4 LegoEntityPresenter::Destroy() LegoEntityPresenter::~LegoEntityPresenter()
{ {
if (VideoManager()) { Destroy(TRUE);
VideoManager()->RemovePresenter(*this);
}
return Init();
} }
// OFFSET: LEGO1 0x10053630 // OFFSET: LEGO1 0x10053630
@ -37,3 +27,19 @@ undefined4 LegoEntityPresenter::vtable6c(undefined4 p_unknown)
m_unk4c = p_unknown; m_unk4c = p_unknown;
return 0; return 0;
} }
// OFFSET: LEGO1 0x10053640
void LegoEntityPresenter::Destroy(MxBool p_fromDestructor)
{
if (VideoManager()) {
VideoManager()->RemovePresenter(*this);
}
Init();
}
// OFFSET: LEGO1 0x10053670
void LegoEntityPresenter::Destroy()
{
Destroy(FALSE);
}

View File

@ -22,11 +22,13 @@ class LegoEntityPresenter : public MxCompositePresenter {
return !strcmp(name, LegoEntityPresenter::ClassName()) || MxCompositePresenter::IsA(name); return !strcmp(name, LegoEntityPresenter::ClassName()) || MxCompositePresenter::IsA(name);
} }
private: virtual void Destroy() override; // vtable+0x38
virtual void Init(); // vtable+0x68 virtual void Init(); // vtable+0x68
virtual undefined4 vtable6c(undefined4 p_unknown); // vtable+0x6c virtual undefined4 vtable6c(undefined4 p_unknown); // vtable+0x6c
undefined4 Destroy(); private:
void Destroy(MxBool p_fromDestructor);
undefined4 m_unk4c; undefined4 m_unk4c;
}; };

View File

@ -16,3 +16,27 @@ MxCompositePresenter::~MxCompositePresenter()
{ {
NotificationManager()->Unregister(this); NotificationManager()->Unregister(this);
} }
// OFFSET: LEGO1 0x100b67f0 STUB
void MxCompositePresenter::VTable0x58()
{
// TODO
}
// OFFSET: LEGO1 0x100b69b0 STUB
void MxCompositePresenter::VTable0x5c()
{
// TODO
}
// OFFSET: LEGO1 0x100b6b40 STUB
void MxCompositePresenter::VTable0x60()
{
// TODO
}
// OFFSET: LEGO1 0x1000caf0 STUB
void MxCompositePresenter::VTable0x64()
{
// TODO
}

View File

@ -24,6 +24,12 @@ class MxCompositePresenter : public MxPresenter {
return !strcmp(name, MxCompositePresenter::ClassName()) || MxPresenter::IsA(name); return !strcmp(name, MxCompositePresenter::ClassName()) || MxPresenter::IsA(name);
} }
virtual void VTable0x58();
virtual void VTable0x5c();
virtual void VTable0x60();
virtual void VTable0x64();
private:
MxUnkList m_list; MxUnkList m_list;
}; };

View File

@ -11,6 +11,7 @@
class MxStreamController; class MxStreamController;
// VTABLE 0x100d4d38 // VTABLE 0x100d4d38
// SIZE 0x40
class MxPresenter : public MxCore { class MxPresenter : public MxCore {
public: public:
enum TickleState { enum TickleState {