LegoWorldPresenter::VTable0x60

This commit is contained in:
Misha 2024-01-15 14:56:55 -05:00
parent 5b7624c32a
commit 924d8660a0
No known key found for this signature in database
GPG Key ID: 8441D12AEF33FED8
3 changed files with 24 additions and 4 deletions

View File

@ -10,6 +10,7 @@
#include "mxactionnotificationparam.h"
#include "mxautolocker.h"
#include "mxdsactionlist.h"
#include "mxdsmediaaction.h"
#include "mxdsmultiaction.h"
#include "mxnotificationmanager.h"
#include "mxobjectfactory.h"
@ -145,9 +146,27 @@ void LegoWorldPresenter::StartingTickle()
ProgressTickleState(TickleState_Streaming);
}
// STUB: LEGO1 0x10067a70
// FUNCTION: LEGO1 0x10067a70
void LegoWorldPresenter::VTable0x60(MxPresenter* p_presenter)
{
MxCompositePresenter::VTable0x60(p_presenter);
MxDSAction* action = p_presenter->GetAction();
if (action->GetDuration() != -1 && (action->GetFlags() & 1) == 0) {
if (!action->IsA("MxDSMediaAction")) {
return;
}
if (((MxDSMediaAction*) action)->GetSustainTime() != -1) {
return;
}
}
if (!p_presenter->IsA("LegoAnimPresenter") && !p_presenter->IsA("MxControlPresenter") &&
!p_presenter->IsA("MxCompositePresenter")) {
p_presenter->SendToCompositePresenter(Lego());
((LegoWorld*) m_entity)->VTable0x58(p_presenter);
}
}
// STUB: LEGO1 0x10067b00

View File

@ -15,6 +15,7 @@ Infocenter::~Infocenter()
// STUB: LEGO1 0x1006ed90
MxResult Infocenter::Create(MxDSAction& p_dsAction)
{
OutputDebugString("infocenter create\n");
return FAILURE;
}
@ -22,7 +23,7 @@ MxResult Infocenter::Create(MxDSAction& p_dsAction)
MxLong Infocenter::Notify(MxParam& p_param)
{
// TODO
return 0;
return LegoWorld::Notify(p_param);
}
// STUB: LEGO1 0x1006f4e0
@ -41,7 +42,7 @@ void Infocenter::VTable0x68(MxBool p_add)
MxResult Infocenter::Tickle()
{
// TODO
return 0;
return LegoWorld::Tickle();
}
// FUNCTION: LEGO1 0x10070d00

View File

@ -127,10 +127,10 @@ class MxPresenter : public MxCore {
{
m_compositePresenter = p_compositePresenter;
}
void SendToCompositePresenter(MxOmni*);
protected:
__declspec(dllexport) void Init();
void SendToCompositePresenter(MxOmni*);
TickleState m_currentTickleState; // 0x8
MxU32 m_previousTickleStates; // 0x0c