mirror of
https://github.com/isledecomp/isle-portable.git
synced 2024-11-22 23:48:12 -05:00
implement LegoPathPresenter (#238)
* implement LegoPathPresenter implement some LegoPathPresenter functions * Update legopathpresenter.cpp * Minor fixes * Order functions --------- Co-authored-by: Christian Semmler <mail@csemmler.com>
This commit is contained in:
parent
34ce795cdd
commit
587ac7a9d7
2 changed files with 74 additions and 3 deletions
|
@ -1,7 +1,67 @@
|
|||
#include "legopathpresenter.h"
|
||||
#include "legoomni.h"
|
||||
#include "legovideomanager.h"
|
||||
#include "mxautolocker.h"
|
||||
|
||||
// OFFSET: LEGO1 0x100448d0 STUB
|
||||
DECOMP_SIZE_ASSERT(LegoPathPresenter, 0x54);
|
||||
|
||||
// OFFSET: LEGO1 0x100448d0
|
||||
LegoPathPresenter::LegoPathPresenter()
|
||||
{
|
||||
Init();
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x10044ab0
|
||||
void LegoPathPresenter::Init()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x10044b40
|
||||
MxResult LegoPathPresenter::AddToManager()
|
||||
{
|
||||
MxResult status = FAILURE;
|
||||
|
||||
if (VideoManager()) {
|
||||
VideoManager()->AddPresenter(*this);
|
||||
status = SUCCESS;
|
||||
}
|
||||
|
||||
return status;
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x10044b70
|
||||
void LegoPathPresenter::Destroy(MxBool p_fromDestructor)
|
||||
{
|
||||
if (VideoManager())
|
||||
VideoManager()->RemovePresenter(*this);
|
||||
|
||||
{
|
||||
MxAutoLocker lock(&this->m_criticalSection);
|
||||
Init();
|
||||
}
|
||||
|
||||
if (!p_fromDestructor)
|
||||
MxMediaPresenter::Destroy(FALSE);
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x10044c10
|
||||
void LegoPathPresenter::Destroy()
|
||||
{
|
||||
Destroy(FALSE);
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x10044d40
|
||||
void LegoPathPresenter::RepeatingTickle()
|
||||
{
|
||||
if (this->m_action->GetDuration() == -1)
|
||||
return;
|
||||
|
||||
EndAction();
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x10044d60 STUB
|
||||
void LegoPathPresenter::ParseExtra()
|
||||
{
|
||||
// TODO
|
||||
}
|
|
@ -23,7 +23,18 @@ class LegoPathPresenter : public MxMediaPresenter
|
|||
return !strcmp(name, LegoPathPresenter::ClassName()) || MxMediaPresenter::IsA(name);
|
||||
}
|
||||
|
||||
virtual void RepeatingTickle() override; // vtable+0x24
|
||||
virtual void ParseExtra() override; // vtable+0x30
|
||||
virtual MxResult AddToManager() override; // vtable+0x34
|
||||
virtual void Destroy() override; // vtable+0x38
|
||||
|
||||
private:
|
||||
void Init();
|
||||
|
||||
protected:
|
||||
void Destroy(MxBool p_fromDestructor);
|
||||
|
||||
MxAtomId m_atomId; // 0x50
|
||||
};
|
||||
|
||||
|
||||
#endif // LEGOPATHPRESENTER_H
|
||||
|
|
Loading…
Reference in a new issue