mirror of
https://github.com/isledecomp/isle-portable.git
synced 2024-11-23 07:58:21 -05:00
LegoWorldPresenter vtables (#366)
* Legoworld vtables * fixes * fix * formatting --------- Co-authored-by: Christian Semmler <mail@csemmler.com>
This commit is contained in:
parent
b35a121ee2
commit
59d999f6dc
6 changed files with 63 additions and 0 deletions
|
@ -82,6 +82,14 @@ void LegoEntityPresenter::RepeatingTickle()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// FUNCTION: LEGO1 0x10053730
|
||||||
|
void LegoEntityPresenter::SetBackendLocation(Vector3Data& p_location, Vector3Data& p_direction, Vector3Data& p_up)
|
||||||
|
{
|
||||||
|
if (m_objectBackend) {
|
||||||
|
m_objectBackend->SetLocation(p_location, p_direction, p_up, TRUE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x10053750
|
// FUNCTION: LEGO1 0x10053750
|
||||||
void LegoEntityPresenter::ParseExtra()
|
void LegoEntityPresenter::ParseExtra()
|
||||||
{
|
{
|
||||||
|
|
|
@ -33,9 +33,12 @@ class LegoEntityPresenter : public MxCompositePresenter {
|
||||||
virtual void Init(); // vtable+0x68
|
virtual void Init(); // vtable+0x68
|
||||||
virtual undefined4 SetBackend(LegoEntity* p_unk0x4c); // vtable+0x6c
|
virtual undefined4 SetBackend(LegoEntity* p_unk0x4c); // vtable+0x6c
|
||||||
|
|
||||||
|
void SetBackendLocation(Vector3Data& p_location, Vector3Data& p_direction, Vector3Data& p_up);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void Destroy(MxBool p_fromDestructor);
|
void Destroy(MxBool p_fromDestructor);
|
||||||
|
|
||||||
|
protected:
|
||||||
LegoEntity* m_objectBackend; // 0x4c
|
LegoEntity* m_objectBackend; // 0x4c
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -568,6 +568,12 @@ LegoOmni* LegoOmni::GetInstance()
|
||||||
return (LegoOmni*) MxOmni::GetInstance();
|
return (LegoOmni*) MxOmni::GetInstance();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// FUNCTION: LEGO1 0x1005ad20
|
||||||
|
void LegoOmni::AddWorld(LegoWorld* p_world)
|
||||||
|
{
|
||||||
|
m_worldList->Append(p_world);
|
||||||
|
}
|
||||||
|
|
||||||
// STUB: LEGO1 0x1005af10
|
// STUB: LEGO1 0x1005af10
|
||||||
void LegoOmni::RemoveWorld(const MxAtomId&, MxLong)
|
void LegoOmni::RemoveWorld(const MxAtomId&, MxLong)
|
||||||
{
|
{
|
||||||
|
|
|
@ -98,6 +98,7 @@ class LegoOmni : public MxOmni {
|
||||||
virtual void StopTimer() override; // vtable+3c
|
virtual void StopTimer() override; // vtable+3c
|
||||||
|
|
||||||
LegoEntity* FindByEntityIdOrAtomId(const MxAtomId& p_atom, MxS32 p_entityid);
|
LegoEntity* FindByEntityIdOrAtomId(const MxAtomId& p_atom, MxS32 p_entityid);
|
||||||
|
void AddWorld(LegoWorld* p_world);
|
||||||
|
|
||||||
LegoVideoManager* GetVideoManager() { return (LegoVideoManager*) m_videoManager; }
|
LegoVideoManager* GetVideoManager() { return (LegoVideoManager*) m_videoManager; }
|
||||||
LegoSoundManager* GetSoundManager() { return (LegoSoundManager*) m_soundManager; }
|
LegoSoundManager* GetSoundManager() { return (LegoSoundManager*) m_soundManager; }
|
||||||
|
|
|
@ -1,5 +1,8 @@
|
||||||
#include "legoworldpresenter.h"
|
#include "legoworldpresenter.h"
|
||||||
|
|
||||||
|
#include "legoentity.h"
|
||||||
|
#include "legoomni.h"
|
||||||
|
|
||||||
// GLOBAL: LEGO1 0x100f75d4
|
// GLOBAL: LEGO1 0x100f75d4
|
||||||
undefined4 g_legoWorldPresenterQuality = 1;
|
undefined4 g_legoWorldPresenterQuality = 1;
|
||||||
|
|
||||||
|
@ -20,3 +23,39 @@ LegoWorldPresenter::~LegoWorldPresenter()
|
||||||
{
|
{
|
||||||
// TODO
|
// TODO
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// STUB: LEGO1 0x10066870
|
||||||
|
MxResult LegoWorldPresenter::StartAction(MxStreamController* p_controller, MxDSAction* p_action)
|
||||||
|
{
|
||||||
|
return FAILURE;
|
||||||
|
}
|
||||||
|
|
||||||
|
// FUNCTION: LEGO1 0x10066a50
|
||||||
|
void LegoWorldPresenter::ReadyTickle()
|
||||||
|
{
|
||||||
|
m_objectBackend = (LegoEntity*) MxPresenter::CreateEntityBackend("LegoWorld");
|
||||||
|
if (m_objectBackend) {
|
||||||
|
m_objectBackend->Create(*m_action);
|
||||||
|
Lego()->AddWorld((LegoWorld*) m_objectBackend);
|
||||||
|
SetBackendLocation(m_action->GetLocation(), m_action->GetDirection(), m_action->GetUp());
|
||||||
|
}
|
||||||
|
|
||||||
|
ParseExtra();
|
||||||
|
m_previousTickleStates |= 1 << (unsigned char) m_currentTickleState;
|
||||||
|
m_currentTickleState = TickleState_Starting;
|
||||||
|
}
|
||||||
|
|
||||||
|
// STUB: LEGO1 0x10066ac0
|
||||||
|
void LegoWorldPresenter::StartingTickle()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
// STUB: LEGO1 0x10067a70
|
||||||
|
void LegoWorldPresenter::VTable0x60(MxPresenter* p_presenter)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
// STUB: LEGO1 0x10067b00
|
||||||
|
void LegoWorldPresenter::ParseExtra()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
|
@ -25,6 +25,12 @@ class LegoWorldPresenter : public LegoEntityPresenter {
|
||||||
return !strcmp(p_name, LegoWorldPresenter::ClassName()) || LegoEntityPresenter::IsA(p_name);
|
return !strcmp(p_name, LegoWorldPresenter::ClassName()) || LegoEntityPresenter::IsA(p_name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
virtual void ReadyTickle() override; // vtable+0x18
|
||||||
|
virtual void StartingTickle() override; // vtable+0x1c
|
||||||
|
virtual void ParseExtra() override; // vtable+0x30
|
||||||
|
virtual MxResult StartAction(MxStreamController* p_controller, MxDSAction* p_action) override; // vtable+0x3c
|
||||||
|
virtual void VTable0x60(MxPresenter* p_presenter) override; // vtable+0x60
|
||||||
|
|
||||||
private:
|
private:
|
||||||
undefined4 m_unk0x50;
|
undefined4 m_unk0x50;
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in a new issue