mirror of
https://github.com/isledecomp/isle.git
synced 2025-10-23 00:14:22 +00:00
Implement/match LegoPartPresenter::Read (#642)
* WIP * Match * Remove TODO * Fix
This commit is contained in:

committed by
GitHub

parent
9e2f37e7ca
commit
9f875d01e5
52
LEGO1/lego/legoomni/include/legolodlist.h
Normal file
52
LEGO1/lego/legoomni/include/legolodlist.h
Normal file
@@ -0,0 +1,52 @@
|
||||
#ifndef LEGOLODLIST_H
|
||||
#define LEGOLODLIST_H
|
||||
|
||||
#include "mxlist.h"
|
||||
#include "roi/legolod.h"
|
||||
|
||||
#pragma warning(disable : 4786)
|
||||
|
||||
// VTABLE: LEGO1 0x100d9d30
|
||||
// class MxCollection<LegoLOD *>
|
||||
|
||||
// VTABLE: LEGO1 0x100d9d48
|
||||
// class MxList<LegoLOD *>
|
||||
|
||||
// VTABLE: LEGO1 0x100d9d60
|
||||
// class MxPtrList<LegoLOD>
|
||||
|
||||
// VTABLE: LEGO1 0x100d9d78
|
||||
// SIZE 0x18
|
||||
class LegoLODList : public MxPtrList<LegoLOD> {
|
||||
public:
|
||||
LegoLODList() : MxPtrList<LegoLOD>(FALSE) {}
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1007de40
|
||||
// LegoLODList::`scalar deleting destructor'
|
||||
};
|
||||
|
||||
// TEMPLATE: LEGO1 0x1007d480
|
||||
// MxCollection<LegoLOD *>::Compare
|
||||
|
||||
// TEMPLATE: LEGO1 0x1007d490
|
||||
// MxCollection<LegoLOD *>::~MxCollection<LegoLOD *>
|
||||
|
||||
// TEMPLATE: LEGO1 0x1007d4e0
|
||||
// MxCollection<LegoLOD *>::Destroy
|
||||
|
||||
// TEMPLATE: LEGO1 0x1007d4f0
|
||||
// MxList<LegoLOD *>::~MxList<LegoLOD *>
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1007d580
|
||||
// MxCollection<LegoLOD *>::`scalar deleting destructor'
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1007d5f0
|
||||
// MxList<LegoLOD *>::`scalar deleting destructor'
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1007d6a0
|
||||
// MxPtrList<LegoLOD>::`scalar deleting destructor'
|
||||
|
||||
// TEMPLATE: LEGO1 0x1007d710
|
||||
// MxPtrList<LegoLOD>::~MxPtrList<LegoLOD>
|
||||
|
||||
#endif // LEGOLODLIST_H
|
26
LEGO1/lego/legoomni/include/legonamedpart.h
Normal file
26
LEGO1/lego/legoomni/include/legonamedpart.h
Normal file
@@ -0,0 +1,26 @@
|
||||
#ifndef LEGONAMEDPART_H
|
||||
#define LEGONAMEDPART_H
|
||||
|
||||
#include "legolodlist.h"
|
||||
#include "mxstring.h"
|
||||
|
||||
// SIZE 0x14
|
||||
class LegoNamedPart {
|
||||
public:
|
||||
LegoNamedPart(const char* p_name, LegoLODList* p_list)
|
||||
{
|
||||
m_name = p_name;
|
||||
m_list = p_list;
|
||||
}
|
||||
~LegoNamedPart() { delete m_list; }
|
||||
|
||||
const MxString* GetName() const { return &m_name; }
|
||||
|
||||
LegoLODList* GetList() { return m_list; }
|
||||
|
||||
private:
|
||||
MxString m_name; // 0x00
|
||||
LegoLODList* m_list; // 0x04
|
||||
};
|
||||
|
||||
#endif // LEGONAMEDPART_H
|
53
LEGO1/lego/legoomni/include/legonamedpartlist.h
Normal file
53
LEGO1/lego/legoomni/include/legonamedpartlist.h
Normal file
@@ -0,0 +1,53 @@
|
||||
#ifndef LEGONAMEDPARTLIST_H
|
||||
#define LEGONAMEDPARTLIST_H
|
||||
|
||||
#include "legonamedpart.h"
|
||||
#include "mxlist.h"
|
||||
|
||||
// VTABLE: LEGO1 0x100d9d90
|
||||
// class MxCollection<LegoNamedPart *>
|
||||
|
||||
// VTABLE: LEGO1 0x100d9da8
|
||||
// class MxList<LegoNamedPart *>
|
||||
|
||||
// VTABLE: LEGO1 0x100d9dc0
|
||||
// class MxPtrList<LegoNamedPart>
|
||||
|
||||
// VTABLE: LEGO1 0x100d9dd8
|
||||
// SIZE 0x18
|
||||
class LegoNamedPartList : public MxPtrList<LegoNamedPart> {
|
||||
public:
|
||||
LegoNamedPartList() : MxPtrList<LegoNamedPart>(TRUE) {}
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1007dbf0
|
||||
// LegoNamedPartList::`scalar deleting destructor'
|
||||
};
|
||||
|
||||
// TEMPLATE: LEGO1 0x1007d760
|
||||
// MxCollection<LegoNamedPart *>::Compare
|
||||
|
||||
// TEMPLATE: LEGO1 0x1007d770
|
||||
// MxCollection<LegoNamedPart *>::~MxCollection<LegoNamedPart *>
|
||||
|
||||
// TEMPLATE: LEGO1 0x1007d7c0
|
||||
// MxCollection<LegoNamedPart *>::Destroy
|
||||
|
||||
// TEMPLATE: LEGO1 0x1007d7d0
|
||||
// MxList<LegoNamedPart *>::~MxList<LegoNamedPart *>
|
||||
|
||||
// TEMPLATE: LEGO1 0x1007d860
|
||||
// MxPtrList<LegoNamedPart>::Destroy
|
||||
|
||||
// TEMPLATE: LEGO1 0x1007dc60
|
||||
// MxPtrList<LegoNamedPart>::~MxPtrList<LegoNamedPart>
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1007dcb0
|
||||
// MxCollection<LegoNamedPart *>::`scalar deleting destructor'
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1007dd20
|
||||
// MxList<LegoNamedPart *>::`scalar deleting destructor'
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1007ddd0
|
||||
// MxPtrList<LegoNamedPart>::`scalar deleting destructor'
|
||||
|
||||
#endif // LEGONAMEDPARTLIST_H
|
@@ -1,6 +1,7 @@
|
||||
#ifndef LEGOPARTPRESENTER_H
|
||||
#define LEGOPARTPRESENTER_H
|
||||
|
||||
#include "legonamedpartlist.h"
|
||||
#include "mxmediapresenter.h"
|
||||
|
||||
// VTABLE: LEGO1 0x100d4df0
|
||||
@@ -34,7 +35,7 @@ public:
|
||||
// SYNTHETIC: LEGO1 0x1000d060
|
||||
// LegoPartPresenter::`scalar deleting destructor'
|
||||
|
||||
inline void Reset() { m_partData = NULL; }
|
||||
inline void Reset() { m_parts = NULL; }
|
||||
|
||||
MxResult Read(MxDSChunk& p_chunk);
|
||||
void FUN_1007df20();
|
||||
@@ -42,7 +43,7 @@ public:
|
||||
private:
|
||||
void Destroy(MxBool p_fromDestructor);
|
||||
|
||||
MxDSChunk* m_partData; // 0x54
|
||||
LegoNamedPartList* m_parts; // 0x50
|
||||
};
|
||||
|
||||
#endif // LEGOPARTPRESENTER_H
|
||||
|
@@ -37,14 +37,15 @@ public:
|
||||
MxResult StartAction(MxStreamController* p_controller, MxDSAction* p_action) override; // vtable+0x3c
|
||||
void VTable0x60(MxPresenter* p_presenter) override; // vtable+0x60
|
||||
|
||||
MxResult FUN_10067360(ModelDbPart& p_part, FILE* p_wdbFile);
|
||||
MxResult FUN_100674b0(ModelDbModel& p_model, FILE* p_wdbFile, LegoWorld* p_world);
|
||||
MxResult LoadWorld(char* p_worldName, LegoWorld* p_world);
|
||||
|
||||
// SYNTHETIC: LEGO1 0x10066750
|
||||
// LegoWorldPresenter::`scalar deleting destructor'
|
||||
|
||||
private:
|
||||
MxResult FUN_10067360(ModelDbPart& p_part, FILE* p_wdbFile);
|
||||
MxResult FUN_100674b0(ModelDbModel& p_model, FILE* p_wdbFile, LegoWorld* p_world);
|
||||
|
||||
undefined4 m_unk0x50;
|
||||
};
|
||||
|
||||
|
Reference in New Issue
Block a user