mirror of
https://github.com/isledecomp/isle.git
synced 2025-10-23 00:14:22 +00:00
LegoWorld::LegoWorld to 100% (#480)
This commit is contained in:
@@ -3,6 +3,8 @@
|
||||
|
||||
#include "mxvideopresenter.h"
|
||||
|
||||
class AutoROI;
|
||||
|
||||
// VTABLE: LEGO1 0x100d4e50
|
||||
// SIZE 0x6c (discovered through inline constructor at 0x10009ae6)
|
||||
class LegoModelPresenter : public MxVideoPresenter {
|
||||
@@ -33,7 +35,7 @@ protected:
|
||||
void Destroy(MxBool p_fromDestructor);
|
||||
|
||||
private:
|
||||
undefined4 m_unk0x64; // 0x64
|
||||
AutoROI* m_unk0x64; // 0x64
|
||||
MxBool m_addedToView; // 0x68
|
||||
};
|
||||
|
||||
|
@@ -48,6 +48,9 @@ public:
|
||||
// TEMPLATE: LEGO1 0x1001d3c0
|
||||
// MxPtrList<LegoPathController>::Destroy
|
||||
|
||||
// TEMPLATE: LEGO1 0x1001d440
|
||||
// MxPtrList<LegoPathController>::~MxPtrList<LegoPathController>
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1001d490
|
||||
// MxCollection<LegoPathController *>::`scalar deleting destructor'
|
||||
|
||||
@@ -57,4 +60,7 @@ public:
|
||||
// SYNTHETIC: LEGO1 0x1001d5b0
|
||||
// MxPtrList<LegoPathController>::`scalar deleting destructor'
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1001d620
|
||||
// LegoPathControllerList::~LegoPathControllerList
|
||||
|
||||
#endif // LEGOPATHCONTROLLERLIST_H
|
||||
|
@@ -4,6 +4,7 @@
|
||||
#include "decomp.h"
|
||||
#include "mxtypes.h"
|
||||
|
||||
class AutoROI;
|
||||
class LegoROI;
|
||||
class LegoStream;
|
||||
|
||||
@@ -35,6 +36,7 @@ struct LegoSaveDataEntry3 {
|
||||
class LegoUnkSaveDataWriter {
|
||||
public:
|
||||
MxResult WriteSaveData3(LegoStream* p_stream);
|
||||
AutoROI* FUN_10083500(undefined4, undefined4);
|
||||
void FUN_10083db0(LegoROI* p_roi);
|
||||
};
|
||||
|
||||
|
@@ -12,6 +12,12 @@
|
||||
class IslePathActor;
|
||||
class LegoPathBoundary;
|
||||
|
||||
struct PresenterSetCompare {
|
||||
int operator()(MxPresenter* const& p_a, MxPresenter* const& p_b) const { return p_a > p_b; }
|
||||
};
|
||||
|
||||
typedef set<MxPresenter*, PresenterSetCompare> MxPresenterSet;
|
||||
|
||||
// VTABLE: LEGO1 0x100d6280
|
||||
// SIZE 0xf8
|
||||
class LegoWorld : public LegoEntity {
|
||||
@@ -71,9 +77,11 @@ protected:
|
||||
LegoCameraController* m_cameraController; // 0x98
|
||||
LegoEntityList* m_entityList; // 0x9c
|
||||
MxCoreList* m_coreList; // 0xa0
|
||||
undefined m_unk0xa4[0x14]; // 0xa4
|
||||
undefined m_unk0xa4; // 0xa4
|
||||
MxPresenterSet m_set0xa8; // 0xa8
|
||||
MxPresenterList m_list0xb8; // 0xb8
|
||||
undefined m_unk0xd0[0x1c]; // 0xd0
|
||||
MxPresenterSet m_set0xd0; // 0xd0
|
||||
list<AutoROI*> m_list0xe0; // 0xe0
|
||||
undefined4 m_unk0xec; // 0xec
|
||||
undefined4 m_unk0xf0; // 0xf0
|
||||
MxS16 m_unk0xf4; // 0xf4
|
||||
@@ -81,6 +89,38 @@ protected:
|
||||
undefined m_unk0xf7; // 0xf7
|
||||
};
|
||||
|
||||
// clang-format off
|
||||
// TEMPLATE: LEGO1 0x1001d780
|
||||
// _Tree<MxPresenter *,MxPresenter *,set<MxPresenter *,PresenterSetCompare,allocator<MxPresenter *> >::_Kfn,PresenterSetCompare,allocator<MxPresenter *> >::~_Tree<MxPresenter *,MxPresenter *,set<MxPresenter *,PresenterSetCompare,allocator<MxPresenter *> >::_Kfn,PresenterSetCompare,allocator<MxPresenter *> >
|
||||
|
||||
// TEMPLATE: LEGO1 0x1001d850
|
||||
// _Tree<MxPresenter *,MxPresenter *,set<MxPresenter *,PresenterSetCompare,allocator<MxPresenter *> >::_Kfn,PresenterSetCompare,allocator<MxPresenter *> >::iterator::_Inc
|
||||
|
||||
// TEMPLATE: LEGO1 0x1001d890
|
||||
// _Tree<MxPresenter *,MxPresenter *,set<MxPresenter *,PresenterSetCompare,allocator<MxPresenter *> >::_Kfn,PresenterSetCompare,allocator<MxPresenter *> >::erase
|
||||
|
||||
// TEMPLATE: LEGO1 0x1001dcf0
|
||||
// _Tree<MxPresenter *,MxPresenter *,set<MxPresenter *,PresenterSetCompare,allocator<MxPresenter *> >::_Kfn,PresenterSetCompare,allocator<MxPresenter *> >::_Erase
|
||||
|
||||
// TEMPLATE: LEGO1 0x1001dd30
|
||||
// _Tree<MxPresenter *,MxPresenter *,set<MxPresenter *,PresenterSetCompare,allocator<MxPresenter *> >::_Kfn,PresenterSetCompare,allocator<MxPresenter *> >::_Init
|
||||
|
||||
// TEMPLATE: LEGO1 0x1001ddf0
|
||||
// list<AutoROI *,allocator<AutoROI *> >::~list<AutoROI *,allocator<AutoROI *> >
|
||||
|
||||
// TEMPLATE: LEGO1 0x1001df50
|
||||
// List<AutoROI *>::~List<AutoROI *>
|
||||
|
||||
// TEMPLATE: LEGO1 0x1001de60
|
||||
// list<AutoROI *,allocator<AutoROI *> >::_Buynode
|
||||
|
||||
// TEMPLATE: LEGO1 0x1001de90
|
||||
// set<MxPresenter *,PresenterSetCompare,allocator<MxPresenter *> >::~set<MxPresenter *,PresenterSetCompare,allocator<MxPresenter *> >
|
||||
|
||||
// TEMPLATE: LEGO1 0x1001df00
|
||||
// Set<MxPresenter *,PresenterSetCompare>::~Set<MxPresenter *,PresenterSetCompare>
|
||||
// clang-format om
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1001eed0
|
||||
// MxPresenterListCursor::`scalar deleting destructor'
|
||||
|
||||
@@ -102,4 +142,7 @@ protected:
|
||||
// TEMPLATE: LEGO1 0x10020760
|
||||
// MxListCursor<MxPresenter *>::MxListCursor<MxPresenter *>
|
||||
|
||||
// GLOBAL: LEGO1 0x100f11a0
|
||||
// _Tree<MxPresenter *,MxPresenter *,set<MxPresenter *,PresenterSetCompare,allocator<MxPresenter *> >::_Kfn,PresenterSetCompare,allocator<MxPresenter *> >::_Nil
|
||||
|
||||
#endif // LEGOWORLD_H
|
||||
|
@@ -1,8 +1,8 @@
|
||||
|
||||
#include "legounksavedatawriter.h"
|
||||
|
||||
#include "legogamestate.h"
|
||||
#include "legostream.h"
|
||||
#include "roi/legoroi.h"
|
||||
|
||||
DECOMP_SIZE_ASSERT(LegoSaveDataEntry3, 0x108);
|
||||
|
||||
@@ -48,6 +48,14 @@ MxResult LegoUnkSaveDataWriter::WriteSaveData3(LegoStream* p_stream)
|
||||
return result;
|
||||
}
|
||||
|
||||
// STUB: LEGO1 0x10083500
|
||||
AutoROI* LegoUnkSaveDataWriter::FUN_10083500(undefined4, undefined4)
|
||||
{
|
||||
// TODO
|
||||
// involves an STL map with a _Nil node at 0x100fc508
|
||||
return NULL;
|
||||
}
|
||||
|
||||
// STUB: LEGO1 0x10083db0
|
||||
void LegoUnkSaveDataWriter::FUN_10083db0(LegoROI* p_roi)
|
||||
{
|
||||
|
@@ -17,12 +17,17 @@ DECOMP_SIZE_ASSERT(LegoEntityListCursor, 0x10)
|
||||
DECOMP_SIZE_ASSERT(MxCoreList, 0x18)
|
||||
DECOMP_SIZE_ASSERT(MxCoreListCursor, 0x10)
|
||||
|
||||
// STUB: LEGO1 0x1001ca40
|
||||
// FUNCTION: LEGO1 0x1001ca40
|
||||
LegoWorld::LegoWorld() : m_list0x68(TRUE)
|
||||
{
|
||||
// TODO
|
||||
m_worldStarted = FALSE;
|
||||
m_unk0xf4 = 4;
|
||||
m_cameraController = NULL;
|
||||
m_entityList = NULL;
|
||||
m_coreList = NULL;
|
||||
m_unk0xa4 = 0; // MxBool?
|
||||
m_unk0xf0 = 0;
|
||||
m_worldStarted = FALSE;
|
||||
|
||||
NotificationManager()->Register(this);
|
||||
}
|
||||
|
||||
|
@@ -11,6 +11,9 @@ class LegoEntity;
|
||||
// Note: There is an extra class between LegoROI and ViewROI,
|
||||
// maybe called "AutoROI". VTABLE 0x100dbe38
|
||||
|
||||
// TODO: Set as superclass of LegoROI
|
||||
class AutoROI : public ViewROI {};
|
||||
|
||||
// VTABLE: LEGO1 0x100dbea8
|
||||
// SIZE 0x10c
|
||||
class LegoROI : public ViewROI {
|
||||
|
Reference in New Issue
Block a user