implement various LegoWorldPresenter functions (#621)

* implement LegoWorldPresenterFunctions

* fix typo

* Fixes/match

* Fix

* Match

* Fixes

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
This commit is contained in:
Misha
2024-03-03 20:34:55 -05:00
committed by GitHub
parent 7f5ad98749
commit c2a46b058b
17 changed files with 152 additions and 50 deletions

View File

@@ -7,7 +7,10 @@
// SIZE 0x50
class LegoActorPresenter : public LegoEntityPresenter {
public:
~LegoActorPresenter() override{};
// LegoActorPresenter() {}
// FUNCTION: LEGO1 0x100679c0
~LegoActorPresenter() override {}
// FUNCTION: LEGO1 0x1000cb10
inline const char* ClassName() const override // vtable+0x0c

View File

@@ -57,7 +57,7 @@ public:
void FUN_10010c30();
void FUN_100114e0(MxU8 p_unk0x59);
void SetLocation(Mx3DPointFloat& p_location, Mx3DPointFloat& p_direction, Mx3DPointFloat& p_up, MxBool);
void SetLocation(const Vector3& p_location, const Vector3& p_direction, const Vector3& p_up, MxBool);
inline LegoROI* GetROI() { return m_roi; }
inline MxU8 GetFlags() { return m_flags; }

View File

@@ -33,9 +33,10 @@ public:
virtual void Init(); // vtable+0x68
virtual undefined4 SetEntity(LegoEntity* p_entity); // vtable+0x6c
void SetEntityLocation(Mx3DPointFloat& p_location, Mx3DPointFloat& p_direction, Mx3DPointFloat& p_up);
void SetEntityLocation(const Vector3& p_location, const Vector3& p_direction, const Vector3& p_up);
inline LegoEntity* GetEntity() { return m_entity; }
inline LegoEntity* GetInternalEntity() { return m_entity; }
inline void SetInternalEntity(LegoEntity* p_entity) { m_entity = p_entity; }
// SYNTHETIC: LEGO1 0x100535a0
// LegoEntityPresenter::`scalar deleting destructor'

View File

@@ -4,12 +4,17 @@
#include "mxvideopresenter.h"
class LegoROI;
class LegoWorld;
class LegoEntity;
class MxDSChunk;
// VTABLE: LEGO1 0x100d4e50
// SIZE 0x6c (discovered through inline constructor at 0x10009ae6)
class LegoModelPresenter : public MxVideoPresenter {
public:
// inline in scalar dtor
LegoModelPresenter() { Reset(); }
// FUNCTION: LEGO1 0x10067a10
~LegoModelPresenter() override { Destroy(TRUE); }
static void configureLegoModelPresenter(MxS32 p_modelPresenterConfig);
@@ -31,6 +36,14 @@ public:
void ParseExtra() override; // vtable+0x30
void Destroy() override; // vtable+0x38
void FUN_1007ff70(MxDSChunk& p_chunk, LegoEntity* p_entity, undefined p_modelUnknown0x34, LegoWorld* p_world);
inline void Reset()
{
m_roi = NULL;
m_addedToView = FALSE;
}
// SYNTHETIC: LEGO1 0x1000cdd0
// LegoModelPresenter::`scalar deleting destructor'

View File

@@ -36,7 +36,7 @@ public:
inline void Reset() { m_partData = NULL; }
MxResult ParsePart(MxDSChunk& p_chunk);
MxResult Read(MxDSChunk& p_chunk);
void FUN_1007df20();
private:

View File

@@ -30,7 +30,7 @@ public:
// SYNTHETIC: LEGO1 0x1000cf40
// LegoTexturePresenter::`scalar deleting destructor'
MxResult ParseTexture(MxDSChunk& p_chunk);
MxResult Read(MxDSChunk& p_chunk);
void FUN_1004f290();
private: