Fix LegoROI / add TimeROI (#572)

* Fix LegoROI / add TimeROI

* Fix order

* Remove extra fwd decl
This commit is contained in:
Christian Semmler
2024-02-17 10:07:34 -05:00
committed by GitHub
parent b47412183b
commit 332d8da695
14 changed files with 117 additions and 64 deletions

View File

@@ -27,7 +27,7 @@ public:
private:
undefined4 m_unk0x04; // 0x04
CompoundObject m_unk0x08; // 0x08
undefined m_pad[0x1c8]; // 0x14
undefined m_pad[0x1a8]; // 0x14
};
// TEMPLATE: LEGO1 0x10022030

View File

@@ -21,12 +21,15 @@ public:
SetLODList(lodList);
geometry = pRenderer->CreateGroup();
}
// FUNCTION: LEGO1 0x100a9e20
inline ~ViewROI() override
{
// SetLODList() will decrease refCount of LODList
SetLODList(0);
delete geometry;
}
inline void SetLODList(ViewLODList* lodList)
{
// ??? inherently type unsafe - kind of... because, now, ROI
@@ -34,16 +37,17 @@ public:
// solution: create pure virtual LODListBase* ROI::GetLODList()
// and let derived ROI classes hold the LODList
if (m_lods) {
reinterpret_cast<ViewLODList*>(m_lods)->Release();
if (lods) {
reinterpret_cast<ViewLODList*>(lods)->Release();
}
m_lods = lodList;
lods = lodList;
if (m_lods) {
reinterpret_cast<ViewLODList*>(m_lods)->AddRef();
if (lods) {
reinterpret_cast<ViewLODList*>(lods)->AddRef();
}
}
float IntrinsicImportance() const override; // vtable+0x04
void VTable0x1c() override; // vtable+0x1c
void SetLocalTransform(const Matrix4& p_transform) override; // vtable+0x20
@@ -54,8 +58,9 @@ public:
static undefined SetUnk101013d8(undefined p_flag);
protected:
Tgl::Group* geometry;
void UpdateWorldData(const MxMatrix& parent2world) override;
Tgl::Group* geometry; // 0xdc
};
// SYNTHETIC: LEGO1 0x100aa250