Add vtables for MxMediaPresenter

This commit is contained in:
Misha 2023-10-08 08:31:31 -04:00
parent 5f8bde9e48
commit a3ddd774a8
3 changed files with 66 additions and 2 deletions

View File

@ -2,6 +2,12 @@
DECOMP_SIZE_ASSERT(MxMediaPresenter, 0x50); DECOMP_SIZE_ASSERT(MxMediaPresenter, 0x50);
// OFFSET: LEGO1 0x1000c550
MxMediaPresenter::~MxMediaPresenter()
{
Destroy(TRUE);
}
// OFFSET: LEGO1 0x100b5d10 STUB // OFFSET: LEGO1 0x100b5d10 STUB
MxResult MxMediaPresenter::Tickle() MxResult MxMediaPresenter::Tickle()
{ {
@ -18,6 +24,56 @@ void MxMediaPresenter::Init()
this->m_unk4c = NULL; this->m_unk4c = NULL;
} }
// OFFSET: LEGO1 0x100b54f0 STUB
void MxMediaPresenter::Destroy(MxBool p_destroy)
{
// TODO
}
// OFFSET: LEGO1 0x100b5d90 STUB
void MxMediaPresenter::StreamingTickle()
{
// TODO
}
// OFFSET: LEGO1 0x100b5e10 STUB
void MxMediaPresenter::RepeatingTickle()
{
// TODO
}
// OFFSET: LEGO1 0x100b5ef0
void MxMediaPresenter::DoneTickle()
{
m_previousTickleStates |= 1 << m_currentTickleState;
m_currentTickleState = TickleState_Idle;
EndAction();
}
// OFFSET: LEGO1 0x100b6030 STUB
void MxMediaPresenter::Enable(MxBool p_enable)
{
// TODO
}
// OFFSET: LEGO1 0x1000c5b0
void MxMediaPresenter::InitVirtual()
{
Destroy(FALSE);
}
// OFFSET: LEGO1 0x100b5700 STUB
MxLong MxMediaPresenter::StartAction(MxStreamController * p_controller, MxDSAction * p_action)
{
return 0;
}
// OFFSET: LEGO1 0x100b5bc0 STUB
void MxMediaPresenter::EndAction()
{
// TODO
}
// OFFSET: LEGO1 0x100b5f10 STUB // OFFSET: LEGO1 0x100b5f10 STUB
void MxMediaPresenter::VTable0x58() void MxMediaPresenter::VTable0x58()
{ {

View File

@ -13,6 +13,7 @@ class MxMediaPresenter : public MxPresenter
{ {
Init(); Init();
} }
~MxMediaPresenter();
virtual MxResult Tickle() override; // vtable+0x8, override MxCore virtual MxResult Tickle() override; // vtable+0x8, override MxCore
@ -29,6 +30,13 @@ class MxMediaPresenter : public MxPresenter
return !strcmp(name, MxMediaPresenter::ClassName()) || MxPresenter::IsA(name); return !strcmp(name, MxMediaPresenter::ClassName()) || MxPresenter::IsA(name);
} }
virtual void StreamingTickle() override; // vtable+0x20, override MxPresenter
virtual void RepeatingTickle() override; // vtable+0x24, override MxPresenter
virtual void DoneTickle() override; // vtable+0x2c, override MxPresenter
virtual void InitVirtual() override; // vtable+0x38, override MxPresenter
virtual MxLong StartAction(MxStreamController *, MxDSAction *) override; // vtable+0x3c, override MxPresenter
virtual void EndAction() override; // vtable+0x40, override MxPresenter
virtual void Enable(MxBool p_enable) override; //vtable+0x54, override MxPresenter
virtual void VTable0x58(); // vtable+0x58 virtual void VTable0x58(); // vtable+0x58
undefined4 m_unk40; undefined4 m_unk40;
@ -37,6 +45,7 @@ class MxMediaPresenter : public MxPresenter
undefined4 m_unk4c; undefined4 m_unk4c;
private: private:
void Init(); void Init();
void Destroy(MxBool);
}; };

View File

@ -15,7 +15,7 @@ class MxStreamController;
class MxPresenter : public MxCore class MxPresenter : public MxCore
{ {
public: public:
enum TickleState enum TickleState
{ {
TickleState_Idle = 0, TickleState_Idle = 0,
TickleState_Ready, TickleState_Ready,
@ -79,7 +79,6 @@ class MxPresenter : public MxCore
__declspec(dllexport) void Init(); __declspec(dllexport) void Init();
void SendTo_unkPresenter(MxOmni *); void SendTo_unkPresenter(MxOmni *);
private:
TickleState m_currentTickleState; // 0x8 TickleState m_currentTickleState; // 0x8
MxU32 m_previousTickleStates; MxU32 m_previousTickleStates;
MxPoint32 m_location; MxPoint32 m_location;