mirror of
https://github.com/isledecomp/isle.git
synced 2024-11-22 23:57:54 -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
|
||||
void LegoEntityPresenter::ParseExtra()
|
||||
{
|
||||
|
|
|
@ -33,9 +33,12 @@ class LegoEntityPresenter : public MxCompositePresenter {
|
|||
virtual void Init(); // vtable+0x68
|
||||
virtual undefined4 SetBackend(LegoEntity* p_unk0x4c); // vtable+0x6c
|
||||
|
||||
void SetBackendLocation(Vector3Data& p_location, Vector3Data& p_direction, Vector3Data& p_up);
|
||||
|
||||
private:
|
||||
void Destroy(MxBool p_fromDestructor);
|
||||
|
||||
protected:
|
||||
LegoEntity* m_objectBackend; // 0x4c
|
||||
};
|
||||
|
||||
|
|
|
@ -568,6 +568,12 @@ LegoOmni* LegoOmni::GetInstance()
|
|||
return (LegoOmni*) MxOmni::GetInstance();
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x1005ad20
|
||||
void LegoOmni::AddWorld(LegoWorld* p_world)
|
||||
{
|
||||
m_worldList->Append(p_world);
|
||||
}
|
||||
|
||||
// STUB: LEGO1 0x1005af10
|
||||
void LegoOmni::RemoveWorld(const MxAtomId&, MxLong)
|
||||
{
|
||||
|
|
|
@ -98,6 +98,7 @@ class LegoOmni : public MxOmni {
|
|||
virtual void StopTimer() override; // vtable+3c
|
||||
|
||||
LegoEntity* FindByEntityIdOrAtomId(const MxAtomId& p_atom, MxS32 p_entityid);
|
||||
void AddWorld(LegoWorld* p_world);
|
||||
|
||||
LegoVideoManager* GetVideoManager() { return (LegoVideoManager*) m_videoManager; }
|
||||
LegoSoundManager* GetSoundManager() { return (LegoSoundManager*) m_soundManager; }
|
||||
|
|
|
@ -1,5 +1,8 @@
|
|||
#include "legoworldpresenter.h"
|
||||
|
||||
#include "legoentity.h"
|
||||
#include "legoomni.h"
|
||||
|
||||
// GLOBAL: LEGO1 0x100f75d4
|
||||
undefined4 g_legoWorldPresenterQuality = 1;
|
||||
|
||||
|
@ -20,3 +23,39 @@ LegoWorldPresenter::~LegoWorldPresenter()
|
|||
{
|
||||
// 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);
|
||||
}
|
||||
|
||||
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:
|
||||
undefined4 m_unk0x50;
|
||||
};
|
||||
|
|
Loading…
Reference in a new issue