mirror of
https://github.com/isledecomp/isle.git
synced 2025-10-23 08:24:16 +00:00
LegoWorld::LegoWorld to 100% (#480)
This commit is contained in:
@@ -3,6 +3,8 @@
|
|||||||
|
|
||||||
#include "mxvideopresenter.h"
|
#include "mxvideopresenter.h"
|
||||||
|
|
||||||
|
class AutoROI;
|
||||||
|
|
||||||
// VTABLE: LEGO1 0x100d4e50
|
// VTABLE: LEGO1 0x100d4e50
|
||||||
// SIZE 0x6c (discovered through inline constructor at 0x10009ae6)
|
// SIZE 0x6c (discovered through inline constructor at 0x10009ae6)
|
||||||
class LegoModelPresenter : public MxVideoPresenter {
|
class LegoModelPresenter : public MxVideoPresenter {
|
||||||
@@ -33,7 +35,7 @@ protected:
|
|||||||
void Destroy(MxBool p_fromDestructor);
|
void Destroy(MxBool p_fromDestructor);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
undefined4 m_unk0x64; // 0x64
|
AutoROI* m_unk0x64; // 0x64
|
||||||
MxBool m_addedToView; // 0x68
|
MxBool m_addedToView; // 0x68
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -48,6 +48,9 @@ public:
|
|||||||
// TEMPLATE: LEGO1 0x1001d3c0
|
// TEMPLATE: LEGO1 0x1001d3c0
|
||||||
// MxPtrList<LegoPathController>::Destroy
|
// MxPtrList<LegoPathController>::Destroy
|
||||||
|
|
||||||
|
// TEMPLATE: LEGO1 0x1001d440
|
||||||
|
// MxPtrList<LegoPathController>::~MxPtrList<LegoPathController>
|
||||||
|
|
||||||
// SYNTHETIC: LEGO1 0x1001d490
|
// SYNTHETIC: LEGO1 0x1001d490
|
||||||
// MxCollection<LegoPathController *>::`scalar deleting destructor'
|
// MxCollection<LegoPathController *>::`scalar deleting destructor'
|
||||||
|
|
||||||
@@ -57,4 +60,7 @@ public:
|
|||||||
// SYNTHETIC: LEGO1 0x1001d5b0
|
// SYNTHETIC: LEGO1 0x1001d5b0
|
||||||
// MxPtrList<LegoPathController>::`scalar deleting destructor'
|
// MxPtrList<LegoPathController>::`scalar deleting destructor'
|
||||||
|
|
||||||
|
// SYNTHETIC: LEGO1 0x1001d620
|
||||||
|
// LegoPathControllerList::~LegoPathControllerList
|
||||||
|
|
||||||
#endif // LEGOPATHCONTROLLERLIST_H
|
#endif // LEGOPATHCONTROLLERLIST_H
|
||||||
|
@@ -4,6 +4,7 @@
|
|||||||
#include "decomp.h"
|
#include "decomp.h"
|
||||||
#include "mxtypes.h"
|
#include "mxtypes.h"
|
||||||
|
|
||||||
|
class AutoROI;
|
||||||
class LegoROI;
|
class LegoROI;
|
||||||
class LegoStream;
|
class LegoStream;
|
||||||
|
|
||||||
@@ -35,6 +36,7 @@ struct LegoSaveDataEntry3 {
|
|||||||
class LegoUnkSaveDataWriter {
|
class LegoUnkSaveDataWriter {
|
||||||
public:
|
public:
|
||||||
MxResult WriteSaveData3(LegoStream* p_stream);
|
MxResult WriteSaveData3(LegoStream* p_stream);
|
||||||
|
AutoROI* FUN_10083500(undefined4, undefined4);
|
||||||
void FUN_10083db0(LegoROI* p_roi);
|
void FUN_10083db0(LegoROI* p_roi);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -12,6 +12,12 @@
|
|||||||
class IslePathActor;
|
class IslePathActor;
|
||||||
class LegoPathBoundary;
|
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
|
// VTABLE: LEGO1 0x100d6280
|
||||||
// SIZE 0xf8
|
// SIZE 0xf8
|
||||||
class LegoWorld : public LegoEntity {
|
class LegoWorld : public LegoEntity {
|
||||||
@@ -71,9 +77,11 @@ protected:
|
|||||||
LegoCameraController* m_cameraController; // 0x98
|
LegoCameraController* m_cameraController; // 0x98
|
||||||
LegoEntityList* m_entityList; // 0x9c
|
LegoEntityList* m_entityList; // 0x9c
|
||||||
MxCoreList* m_coreList; // 0xa0
|
MxCoreList* m_coreList; // 0xa0
|
||||||
undefined m_unk0xa4[0x14]; // 0xa4
|
undefined m_unk0xa4; // 0xa4
|
||||||
|
MxPresenterSet m_set0xa8; // 0xa8
|
||||||
MxPresenterList m_list0xb8; // 0xb8
|
MxPresenterList m_list0xb8; // 0xb8
|
||||||
undefined m_unk0xd0[0x1c]; // 0xd0
|
MxPresenterSet m_set0xd0; // 0xd0
|
||||||
|
list<AutoROI*> m_list0xe0; // 0xe0
|
||||||
undefined4 m_unk0xec; // 0xec
|
undefined4 m_unk0xec; // 0xec
|
||||||
undefined4 m_unk0xf0; // 0xf0
|
undefined4 m_unk0xf0; // 0xf0
|
||||||
MxS16 m_unk0xf4; // 0xf4
|
MxS16 m_unk0xf4; // 0xf4
|
||||||
@@ -81,6 +89,38 @@ protected:
|
|||||||
undefined m_unk0xf7; // 0xf7
|
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
|
// SYNTHETIC: LEGO1 0x1001eed0
|
||||||
// MxPresenterListCursor::`scalar deleting destructor'
|
// MxPresenterListCursor::`scalar deleting destructor'
|
||||||
|
|
||||||
@@ -102,4 +142,7 @@ protected:
|
|||||||
// TEMPLATE: LEGO1 0x10020760
|
// TEMPLATE: LEGO1 0x10020760
|
||||||
// MxListCursor<MxPresenter *>::MxListCursor<MxPresenter *>
|
// MxListCursor<MxPresenter *>::MxListCursor<MxPresenter *>
|
||||||
|
|
||||||
|
// GLOBAL: LEGO1 0x100f11a0
|
||||||
|
// _Tree<MxPresenter *,MxPresenter *,set<MxPresenter *,PresenterSetCompare,allocator<MxPresenter *> >::_Kfn,PresenterSetCompare,allocator<MxPresenter *> >::_Nil
|
||||||
|
|
||||||
#endif // LEGOWORLD_H
|
#endif // LEGOWORLD_H
|
||||||
|
@@ -1,8 +1,8 @@
|
|||||||
|
|
||||||
#include "legounksavedatawriter.h"
|
#include "legounksavedatawriter.h"
|
||||||
|
|
||||||
#include "legogamestate.h"
|
#include "legogamestate.h"
|
||||||
#include "legostream.h"
|
#include "legostream.h"
|
||||||
|
#include "roi/legoroi.h"
|
||||||
|
|
||||||
DECOMP_SIZE_ASSERT(LegoSaveDataEntry3, 0x108);
|
DECOMP_SIZE_ASSERT(LegoSaveDataEntry3, 0x108);
|
||||||
|
|
||||||
@@ -48,6 +48,14 @@ MxResult LegoUnkSaveDataWriter::WriteSaveData3(LegoStream* p_stream)
|
|||||||
return result;
|
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
|
// STUB: LEGO1 0x10083db0
|
||||||
void LegoUnkSaveDataWriter::FUN_10083db0(LegoROI* p_roi)
|
void LegoUnkSaveDataWriter::FUN_10083db0(LegoROI* p_roi)
|
||||||
{
|
{
|
||||||
|
@@ -17,12 +17,17 @@ DECOMP_SIZE_ASSERT(LegoEntityListCursor, 0x10)
|
|||||||
DECOMP_SIZE_ASSERT(MxCoreList, 0x18)
|
DECOMP_SIZE_ASSERT(MxCoreList, 0x18)
|
||||||
DECOMP_SIZE_ASSERT(MxCoreListCursor, 0x10)
|
DECOMP_SIZE_ASSERT(MxCoreListCursor, 0x10)
|
||||||
|
|
||||||
// STUB: LEGO1 0x1001ca40
|
// FUNCTION: LEGO1 0x1001ca40
|
||||||
LegoWorld::LegoWorld() : m_list0x68(TRUE)
|
LegoWorld::LegoWorld() : m_list0x68(TRUE)
|
||||||
{
|
{
|
||||||
// TODO
|
|
||||||
m_worldStarted = FALSE;
|
|
||||||
m_unk0xf4 = 4;
|
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);
|
NotificationManager()->Register(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -11,6 +11,9 @@ class LegoEntity;
|
|||||||
// Note: There is an extra class between LegoROI and ViewROI,
|
// Note: There is an extra class between LegoROI and ViewROI,
|
||||||
// maybe called "AutoROI". VTABLE 0x100dbe38
|
// maybe called "AutoROI". VTABLE 0x100dbe38
|
||||||
|
|
||||||
|
// TODO: Set as superclass of LegoROI
|
||||||
|
class AutoROI : public ViewROI {};
|
||||||
|
|
||||||
// VTABLE: LEGO1 0x100dbea8
|
// VTABLE: LEGO1 0x100dbea8
|
||||||
// SIZE 0x10c
|
// SIZE 0x10c
|
||||||
class LegoROI : public ViewROI {
|
class LegoROI : public ViewROI {
|
||||||
|
@@ -15,6 +15,9 @@ public:
|
|||||||
m_elements[2] = p_z;
|
m_elements[2] = p_z;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// SYNTHETIC: LEGO1 0x1001d170
|
||||||
|
// Mx3DPointFloat::Mx3DPointFloat
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x10003c10
|
// FUNCTION: LEGO1 0x10003c10
|
||||||
virtual void operator=(const Vector3& p_impl) { EqualsImpl(p_impl.m_data); } // vtable+0x88
|
virtual void operator=(const Vector3& p_impl) { EqualsImpl(p_impl.m_data); } // vtable+0x88
|
||||||
|
|
||||||
|
@@ -68,4 +68,7 @@ public:
|
|||||||
// SYNTHETIC: LEGO1 0x1001d090
|
// SYNTHETIC: LEGO1 0x1001d090
|
||||||
// MxPtrList<MxPresenter>::`scalar deleting destructor'
|
// MxPtrList<MxPresenter>::`scalar deleting destructor'
|
||||||
|
|
||||||
|
// SYNTHETIC: LEGO1 0x1001d100
|
||||||
|
// MxPresenterList::~MxPresenterList
|
||||||
|
|
||||||
#endif // MXPRESENTERLIST_H
|
#endif // MXPRESENTERLIST_H
|
||||||
|
Reference in New Issue
Block a user