diff --git a/LEGO1/lego/legoomni/include/legoanimpresenter.h b/LEGO1/lego/legoomni/include/legoanimpresenter.h index 58d19e8f..60f751f0 100644 --- a/LEGO1/lego/legoomni/include/legoanimpresenter.h +++ b/LEGO1/lego/legoomni/include/legoanimpresenter.h @@ -76,9 +76,6 @@ class LegoAnimPresenter : public MxVideoPresenter { // SYNTHETIC: LEGO1 0x10068650 // LegoAnimPresenter::`scalar deleting destructor' -// SYNTHETIC: LEGO1 0x10099de0 -// LegoAnimClassBase::`scalar deleting destructor' - // VTABLE: LEGO1 0x100db8d8 // SIZE 0x18 class LegoAnimClass : public LegoTree { @@ -86,9 +83,9 @@ class LegoAnimClass : public LegoTree { LegoAnimClass(); virtual ~LegoAnimClass() override; - virtual void Read() override; // vtable+0x08 - virtual void Write() override; // vtable+0x0c - virtual MxResult CreateData(LegoMemory* p_stream, MxS32); // vtable+0x10 + virtual LegoResult Write(LegoStorage* p_storage) override; // vtable+0x08 + virtual LegoTreeNodeData* CreateData() override; // vtable+0x0c + virtual MxResult VTable0x10(LegoMemory* p_stream, MxS32); // vtable+0x10 inline MxLong GetUnknown0x8() { return m_unk0x8; } diff --git a/LEGO1/lego/legoomni/src/video/legoanimpresenter.cpp b/LEGO1/lego/legoomni/src/video/legoanimpresenter.cpp index 970cc3af..91fa997c 100644 --- a/LEGO1/lego/legoomni/src/video/legoanimpresenter.cpp +++ b/LEGO1/lego/legoomni/src/video/legoanimpresenter.cpp @@ -73,7 +73,7 @@ MxResult LegoAnimPresenter::VTable0x88(MxStreamChunk* p_chunk) if (stream.Read(&val3, sizeof(MxS32)) == SUCCESS) { m_unk0x64 = new LegoAnimClass(); if (m_unk0x64) { - if (m_unk0x64->CreateData(&stream, val2) == SUCCESS) { + if (m_unk0x64->VTable0x10(&stream, val2) == SUCCESS) { result = SUCCESS; } } @@ -215,19 +215,21 @@ LegoAnimClass::~LegoAnimClass() } // STUB: LEGO1 0x100a0c70 -MxResult LegoAnimClass::CreateData(LegoMemory* p_stream, MxS32) +MxResult LegoAnimClass::VTable0x10(LegoMemory* p_stream, MxS32) { return SUCCESS; } // STUB: LEGO1 0x100a0e30 -void LegoAnimClass::Read() +LegoResult LegoAnimClass::Write(LegoStorage* p_storage) { // TODO + return SUCCESS; } // STUB: LEGO1 0x100a1040 -void LegoAnimClass::Write() +LegoTreeNodeData* LegoAnimClass::CreateData() { // TODO + return NULL; } diff --git a/LEGO1/lego/sources/misc/legotree.h b/LEGO1/lego/sources/misc/legotree.h index fba56c51..185c178f 100644 --- a/LEGO1/lego/sources/misc/legotree.h +++ b/LEGO1/lego/sources/misc/legotree.h @@ -13,9 +13,11 @@ class LegoStorage; class LegoTreeNodeData { public: LegoTreeNodeData() {} - virtual ~LegoTreeNodeData() {} // vtable+0x0 + virtual ~LegoTreeNodeData() {} + // FUNCTION: LEGO1 0x10099fe0 virtual LegoResult Read(LegoStorage* p_storage) { return SUCCESS; } // vtable+0x4 + // FUNCTION: LEGO1 0x10099ff0 virtual LegoResult Write(LegoStorage* p_storage) { return SUCCESS; } // vtable+0x8 @@ -28,7 +30,7 @@ class LegoTreeNodeData { class LegoTreeNode { public: LegoTreeNode(); - virtual ~LegoTreeNode(); // vtable+0x0 + virtual ~LegoTreeNode(); LegoTreeNodeData* GetData() { return m_data; } void SetData(LegoTreeNodeData* p_data) { m_data = p_data; } LegoU32 GetNumChildren() { return m_numChildren; } @@ -52,7 +54,7 @@ class LegoTreeNode { class LegoTree { public: LegoTree(); - virtual ~LegoTree(); // vtable+0x0 + virtual ~LegoTree(); LegoTreeNode* GetRoot() { return m_root; } void SetRoot(LegoTreeNode* p_root) { m_root = p_root; } virtual LegoResult Read(LegoStorage* p_storage); // vtable+0x4 @@ -65,9 +67,11 @@ class LegoTree { LegoResult Read(LegoStorage* p_storage, LegoTreeNode*& p_node); LegoResult Write(LegoStorage* p_storage, LegoTreeNode* p_node); void Delete(LegoTreeNode* p_node); + // FUNCTION: LEGO1 0x10099f70 virtual LegoTreeNodeData* CreateData() { return new LegoTreeNodeData(); } // vtable+0xc - LegoTreeNode* m_root; // 0x4 + + LegoTreeNode* m_root; // 0x4 }; #endif // __LEGOTREE_H