mirror of
https://github.com/isledecomp/isle.git
synced 2024-11-26 17:46:38 -05:00
Implement LegoWorldPresenter::VTable0x60 (#442)
* LegoWorldPresenter::VTable0x60 * Update infocenter.cpp * Minor adjustments --------- Co-authored-by: Christian Semmler <mail@csemmler.com>
This commit is contained in:
parent
5b7624c32a
commit
6df310bb66
2 changed files with 21 additions and 2 deletions
|
@ -10,6 +10,7 @@
|
||||||
#include "mxactionnotificationparam.h"
|
#include "mxactionnotificationparam.h"
|
||||||
#include "mxautolocker.h"
|
#include "mxautolocker.h"
|
||||||
#include "mxdsactionlist.h"
|
#include "mxdsactionlist.h"
|
||||||
|
#include "mxdsmediaaction.h"
|
||||||
#include "mxdsmultiaction.h"
|
#include "mxdsmultiaction.h"
|
||||||
#include "mxnotificationmanager.h"
|
#include "mxnotificationmanager.h"
|
||||||
#include "mxobjectfactory.h"
|
#include "mxobjectfactory.h"
|
||||||
|
@ -145,9 +146,27 @@ void LegoWorldPresenter::StartingTickle()
|
||||||
ProgressTickleState(TickleState_Streaming);
|
ProgressTickleState(TickleState_Streaming);
|
||||||
}
|
}
|
||||||
|
|
||||||
// STUB: LEGO1 0x10067a70
|
// FUNCTION: LEGO1 0x10067a70
|
||||||
void LegoWorldPresenter::VTable0x60(MxPresenter* p_presenter)
|
void LegoWorldPresenter::VTable0x60(MxPresenter* p_presenter)
|
||||||
{
|
{
|
||||||
|
MxCompositePresenter::VTable0x60(p_presenter);
|
||||||
|
MxDSAction* action = p_presenter->GetAction();
|
||||||
|
|
||||||
|
if (action->GetDuration() != -1 && (action->GetFlags() & MxDSAction::Flag_Looping) == 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
|
// STUB: LEGO1 0x10067b00
|
||||||
|
|
|
@ -116,6 +116,7 @@ class MxPresenter : public MxCore {
|
||||||
__declspec(dllexport) virtual void Enable(MxBool p_enable); // vtable+0x54
|
__declspec(dllexport) virtual void Enable(MxBool p_enable); // vtable+0x54
|
||||||
|
|
||||||
MxEntity* CreateEntity(const char* p_name);
|
MxEntity* CreateEntity(const char* p_name);
|
||||||
|
void SendToCompositePresenter(MxOmni*);
|
||||||
MxBool IsEnabled();
|
MxBool IsEnabled();
|
||||||
|
|
||||||
inline MxS32 GetCurrentTickleState() const { return this->m_currentTickleState; }
|
inline MxS32 GetCurrentTickleState() const { return this->m_currentTickleState; }
|
||||||
|
@ -130,7 +131,6 @@ class MxPresenter : public MxCore {
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
__declspec(dllexport) void Init();
|
__declspec(dllexport) void Init();
|
||||||
void SendToCompositePresenter(MxOmni*);
|
|
||||||
|
|
||||||
TickleState m_currentTickleState; // 0x8
|
TickleState m_currentTickleState; // 0x8
|
||||||
MxU32 m_previousTickleStates; // 0x0c
|
MxU32 m_previousTickleStates; // 0x0c
|
||||||
|
|
Loading…
Reference in a new issue