Bootstrap MxCompositePresenter

This commit is contained in:
Christian Semmler 2023-12-01 10:37:30 -05:00
parent 4f5b70013f
commit 973310b7da
2 changed files with 21 additions and 6 deletions

View File

@ -37,8 +37,21 @@ void MxCompositePresenter::VTable0x5c()
// TODO
}
// OFFSET: LEGO1 0x100b6b40 STUB
void MxCompositePresenter::VTable0x60(undefined4 p_unknown)
// OFFSET: LEGO1 0x100b6b40
void MxCompositePresenter::VTable0x60(MxPresenter* p_presenter)
{
// TODO
for (MxCompositePresenterList::iterator it = m_list.begin(); it != m_list.end(); it++) {
if (*it == p_presenter) {
if (++it == m_list.end()) {
if (m_compositePresenter)
m_compositePresenter->VTable0x60(this);
}
else if (m_action->IsA("MxDSSerialAction")) {
MxPresenter* presenter = *it;
if (!presenter->GetCurrentTickleState())
presenter->SetTickleState(TickleState_Ready);
}
return;
}
}
}

View File

@ -1,8 +1,10 @@
#ifndef MXCOMPOSITEPRESENTER_H
#define MXCOMPOSITEPRESENTER_H
#include "compat.h" // STL
#include "mxpresenter.h"
#include "mxunklist.h"
class MxCompositePresenterList : public list<MxPresenter*> {};
// VTABLE 0x100dc618
// SIZE 0x4c
@ -26,11 +28,11 @@ class MxCompositePresenter : public MxPresenter {
virtual void VTable0x58();
virtual void VTable0x5c();
virtual void VTable0x60(undefined4 p_unknown);
virtual void VTable0x60(MxPresenter* p_presenter);
virtual MxBool VTable0x64(undefined4 p_unknown);
private:
MxUnkList m_list;
MxCompositePresenterList m_list;
};
#endif // MXCOMPOSITEPRESENTER_H