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();
}
// OFFSET: LEGO1 0x100535d0
LegoEntityPresenter::~LegoEntityPresenter()
{
Destroy();
}
// OFFSET: LEGO1 0x100535c0
void LegoEntityPresenter::Init()
{
m_unk4c = 0;
}
// OFFSET: LEGO1 0x10053640
undefined4 LegoEntityPresenter::Destroy()
// OFFSET: LEGO1 0x100535d0
LegoEntityPresenter::~LegoEntityPresenter()
{
if (VideoManager()) {
VideoManager()->RemovePresenter(*this);
}
return Init();
Destroy(TRUE);
}
// OFFSET: LEGO1 0x10053630
@ -37,3 +27,19 @@ undefined4 LegoEntityPresenter::vtable6c(undefined4 p_unknown)
m_unk4c = p_unknown;
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);
}
private:
virtual void Destroy() override; // vtable+0x38
virtual void Init(); // vtable+0x68
virtual undefined4 vtable6c(undefined4 p_unknown); // vtable+0x6c
undefined4 Destroy();
private:
void Destroy(MxBool p_fromDestructor);
undefined4 m_unk4c;
};

View File

@ -16,3 +16,27 @@ MxCompositePresenter::~MxCompositePresenter()
{
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);
}
virtual void VTable0x58();
virtual void VTable0x5c();
virtual void VTable0x60();
virtual void VTable0x64();
private:
MxUnkList m_list;
};

View File

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