mirror of
https://github.com/isledecomp/isle.git
synced 2025-10-23 00:14:22 +00:00
Implement LegoWorld::Add (#490)
* LegoWorld::Add * Add annotations * Fix include guard * Make stub * Change MxPresenterSet to MxCoreSet * Improve match * Match * Fix annotation
This commit is contained in:

committed by
GitHub

parent
b6aac26269
commit
7b6ec235d8
@@ -40,6 +40,8 @@ public:
|
||||
virtual void PutFrame() override; // vtable+0x6c
|
||||
virtual MxResult VTable0x88(MxStreamChunk* p_chunk); // vtable+0x88
|
||||
|
||||
inline LegoAnimClass* GetUnknown0x64() { return m_unk0x64; }
|
||||
|
||||
const char* GetActionObjectName();
|
||||
|
||||
protected:
|
||||
@@ -101,6 +103,9 @@ public:
|
||||
virtual void VTable0xc() override; // vtable+0x0c
|
||||
virtual MxResult VTable0x10(LegoMemory* p_stream, MxS32); // vtable+0x10
|
||||
|
||||
inline MxLong GetUnknown0x8() { return m_unk0x8; }
|
||||
|
||||
// private:
|
||||
MxLong m_unk0x8; // 0x08
|
||||
undefined4 m_unk0xc; // 0x0c
|
||||
undefined4 m_unk0x10; // 0x10
|
||||
|
98
LEGO1/lego/legoomni/include/legocachesoundlist.h
Normal file
98
LEGO1/lego/legoomni/include/legocachesoundlist.h
Normal file
@@ -0,0 +1,98 @@
|
||||
#ifndef LEGOCACHESOUNDLIST_H
|
||||
#define LEGOCACHESOUNDLIST_H
|
||||
|
||||
#include "mxlist.h"
|
||||
#include "mxtypes.h"
|
||||
|
||||
class LegoCacheSound;
|
||||
|
||||
// VTABLE: LEGO1 0x100d63b0
|
||||
// class MxCollection<LegoCacheSound *>
|
||||
|
||||
// VTABLE: LEGO1 0x100d63c8
|
||||
// class MxList<LegoCacheSound *>
|
||||
|
||||
// VTABLE: LEGO1 0x100d63e0
|
||||
// class MxPtrList<LegoCacheSound>
|
||||
|
||||
// VTABLE: LEGO1 0x100d63f8
|
||||
// SIZE 0x18
|
||||
class LegoCacheSoundList : public MxPtrList<LegoCacheSound> {
|
||||
public:
|
||||
LegoCacheSoundList(MxBool p_ownership = FALSE) : MxPtrList<LegoCacheSound>(p_ownership) {}
|
||||
|
||||
// FUNCTION: LEGO1 0x1001e650
|
||||
virtual MxS8 Compare(LegoCacheSound* p_a, LegoCacheSound* p_b) override
|
||||
{
|
||||
return p_a == p_b ? 0 : p_a < p_b ? -1 : 1;
|
||||
}; // vtable+0x14
|
||||
};
|
||||
|
||||
// VTABLE: LEGO1 0x100d64a0
|
||||
// class MxListCursor<LegoCacheSound *>
|
||||
|
||||
// VTABLE: LEGO1 0x100d6500
|
||||
// class MxPtrListCursor<LegoCacheSound>
|
||||
|
||||
// VTABLE: LEGO1 0x100d6518
|
||||
// SIZE 0x10
|
||||
class LegoCacheSoundListCursor : public MxPtrListCursor<LegoCacheSound> {
|
||||
public:
|
||||
LegoCacheSoundListCursor(LegoCacheSoundList* p_list) : MxPtrListCursor<LegoCacheSound>(p_list){};
|
||||
};
|
||||
|
||||
// TEMPLATE: LEGO1 0x1001e670
|
||||
// MxCollection<LegoCacheSound *>::Compare
|
||||
|
||||
// TEMPLATE: LEGO1 0x1001e680
|
||||
// MxCollection<LegoCacheSound *>::~MxCollection<LegoCacheSound *>
|
||||
|
||||
// TEMPLATE: LEGO1 0x1001e6d0
|
||||
// MxCollection<LegoCacheSound *>::Destroy
|
||||
|
||||
// TEMPLATE: LEGO1 0x1001e6e0
|
||||
// MxList<LegoCacheSound *>::~MxList<LegoCacheSound *>
|
||||
|
||||
// TEMPLATE: LEGO1 0x1001e770
|
||||
// MxPtrList<LegoCacheSound>::Destroy
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1001e780
|
||||
// LegoCacheSoundList::`scalar deleting destructor'
|
||||
|
||||
// TEMPLATE: LEGO1 0x1001e7f0
|
||||
// MxPtrList<LegoCacheSound>::~MxPtrList<LegoCacheSound>
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1001e840
|
||||
// MxCollection<LegoCacheSound *>::`scalar deleting destructor'
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1001e8b0
|
||||
// MxList<LegoCacheSound *>::`scalar deleting destructor'
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1001e960
|
||||
// MxPtrList<LegoCacheSound>::`scalar deleting destructor'
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1001f350
|
||||
// LegoCacheSoundListCursor::`scalar deleting destructor'
|
||||
|
||||
// FUNCTION: LEGO1 0x1001f3c0
|
||||
// MxPtrListCursor<LegoCacheSound>::~MxPtrListCursor<LegoCacheSound>
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1001f410
|
||||
// MxListCursor<LegoCacheSound *>::`scalar deleting destructor'
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1001f480
|
||||
// MxPtrListCursor<LegoCacheSound>::`scalar deleting destructor'
|
||||
|
||||
// FUNCTION: LEGO1 0x1001f4f0
|
||||
// MxListCursor<LegoCacheSound *>::~MxListCursor<LegoCacheSound *>
|
||||
|
||||
// FUNCTION: LEGO1 0x1001f540
|
||||
// LegoCacheSoundListCursor::~LegoCacheSoundListCursor
|
||||
|
||||
// TEMPLATE: LEGO1 0x10020840
|
||||
// MxListCursor<LegoCacheSound *>::MxListCursor<LegoCacheSound *>
|
||||
|
||||
// TEMPLATE: LEGO1 0x100224e0
|
||||
// MxList<LegoCacheSound *>::InsertEntry
|
||||
|
||||
#endif // LEGOCACHESOUNDLIST_H
|
@@ -92,4 +92,7 @@ public:
|
||||
// TEMPLATE: LEGO1 0x100207d0
|
||||
// MxListCursor<LegoEntity *>::MxListCursor<LegoEntity *>
|
||||
|
||||
// TEMPLATE: LEGO1 0x10022430
|
||||
// MxList<LegoEntity *>::InsertEntry
|
||||
|
||||
#endif // LEGOENTITYLIST_H
|
||||
|
@@ -9,7 +9,9 @@
|
||||
|
||||
class MxAtomId;
|
||||
class LegoEntity;
|
||||
class LegoAnimPresenter;
|
||||
|
||||
void FUN_1003e050(LegoAnimPresenter* p_presenter);
|
||||
Extra::ActionType MatchActionString(const char*);
|
||||
void InvokeAction(Extra::ActionType p_actionId, MxAtomId& p_pAtom, int p_targetEntityId, LegoEntity* p_sender);
|
||||
void ConvertHSVToRGB(float p_h, float p_s, float p_v, float* p_rOut, float* p_bOut, float* p_gOut);
|
||||
|
@@ -1,22 +1,24 @@
|
||||
#ifndef LEGOWORLD_H
|
||||
#define LEGOWORLD_H
|
||||
|
||||
#include "legocachesound.h"
|
||||
#include "legocachesoundlist.h"
|
||||
#include "legocameracontroller.h"
|
||||
#include "legoentity.h"
|
||||
#include "legoentitylist.h"
|
||||
#include "legopathcontrollerlist.h"
|
||||
#include "mxcorelist.h"
|
||||
#include "mxpresenter.h"
|
||||
#include "mxpresenterlist.h"
|
||||
|
||||
class IslePathActor;
|
||||
class LegoPathBoundary;
|
||||
class LegoHideAnimPresenter;
|
||||
|
||||
struct PresenterSetCompare {
|
||||
MxS32 operator()(MxPresenter* const& p_a, MxPresenter* const& p_b) const { return p_a > p_b; }
|
||||
struct CoreSetCompare {
|
||||
MxS32 operator()(MxCore* const& p_a, MxCore* const& p_b) const { return p_a > p_b; }
|
||||
};
|
||||
|
||||
typedef set<MxPresenter*, PresenterSetCompare> MxPresenterSet;
|
||||
typedef set<MxCore*, CoreSetCompare> MxCoreSet;
|
||||
|
||||
// VTABLE: LEGO1 0x100d6280
|
||||
// SIZE 0xf8
|
||||
@@ -72,38 +74,38 @@ public:
|
||||
// LegoWorld::`scalar deleting destructor'
|
||||
|
||||
protected:
|
||||
LegoPathControllerList m_list0x68; // 0x68
|
||||
MxPresenterList m_animPresenters; // 0x80
|
||||
LegoCameraController* m_cameraController; // 0x98
|
||||
LegoEntityList* m_entityList; // 0x9c
|
||||
MxCoreList* m_coreList; // 0xa0
|
||||
undefined m_unk0xa4; // 0xa4
|
||||
MxPresenterSet m_set0xa8; // 0xa8
|
||||
MxPresenterList m_controlPresenters; // 0xb8
|
||||
MxPresenterSet m_set0xd0; // 0xd0
|
||||
list<AutoROI*> m_list0xe0; // 0xe0
|
||||
undefined4 m_unk0xec; // 0xec
|
||||
undefined4 m_unk0xf0; // 0xf0
|
||||
MxS16 m_unk0xf4; // 0xf4
|
||||
MxBool m_worldStarted; // 0xf6
|
||||
undefined m_unk0xf7; // 0xf7
|
||||
LegoPathControllerList m_list0x68; // 0x68
|
||||
MxPresenterList m_animPresenters; // 0x80
|
||||
LegoCameraController* m_cameraController; // 0x98
|
||||
LegoEntityList* m_entityList; // 0x9c
|
||||
LegoCacheSoundList* m_cacheSoundList; // 0xa0
|
||||
undefined m_unk0xa4; // 0xa4
|
||||
MxCoreSet m_set0xa8; // 0xa8
|
||||
MxPresenterList m_controlPresenters; // 0xb8
|
||||
MxCoreSet m_set0xd0; // 0xd0
|
||||
list<AutoROI*> m_list0xe0; // 0xe0
|
||||
undefined4 m_unk0xec; // 0xec
|
||||
LegoHideAnimPresenter* m_hideAnimPresenter; // 0xf0
|
||||
MxS16 m_unk0xf4; // 0xf4
|
||||
MxBool m_worldStarted; // 0xf6
|
||||
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 *> >
|
||||
// _Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >::~_Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >
|
||||
|
||||
// TEMPLATE: LEGO1 0x1001d850
|
||||
// _Tree<MxPresenter *,MxPresenter *,set<MxPresenter *,PresenterSetCompare,allocator<MxPresenter *> >::_Kfn,PresenterSetCompare,allocator<MxPresenter *> >::iterator::_Inc
|
||||
// _Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >::iterator::_Inc
|
||||
|
||||
// TEMPLATE: LEGO1 0x1001d890
|
||||
// _Tree<MxPresenter *,MxPresenter *,set<MxPresenter *,PresenterSetCompare,allocator<MxPresenter *> >::_Kfn,PresenterSetCompare,allocator<MxPresenter *> >::erase
|
||||
// _Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >::erase
|
||||
|
||||
// TEMPLATE: LEGO1 0x1001dcf0
|
||||
// _Tree<MxPresenter *,MxPresenter *,set<MxPresenter *,PresenterSetCompare,allocator<MxPresenter *> >::_Kfn,PresenterSetCompare,allocator<MxPresenter *> >::_Erase
|
||||
// _Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >::_Erase
|
||||
|
||||
// TEMPLATE: LEGO1 0x1001dd30
|
||||
// _Tree<MxPresenter *,MxPresenter *,set<MxPresenter *,PresenterSetCompare,allocator<MxPresenter *> >::_Kfn,PresenterSetCompare,allocator<MxPresenter *> >::_Init
|
||||
// _Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >::_Init
|
||||
|
||||
// TEMPLATE: LEGO1 0x1001ddf0
|
||||
// list<AutoROI *,allocator<AutoROI *> >::~list<AutoROI *,allocator<AutoROI *> >
|
||||
@@ -115,10 +117,10 @@ protected:
|
||||
// list<AutoROI *,allocator<AutoROI *> >::_Buynode
|
||||
|
||||
// TEMPLATE: LEGO1 0x1001de90
|
||||
// set<MxPresenter *,PresenterSetCompare,allocator<MxPresenter *> >::~set<MxPresenter *,PresenterSetCompare,allocator<MxPresenter *> >
|
||||
// set<MxCore *,CoreSetCompare,allocator<MxCore *> >::~set<MxCore *,CoreSetCompare,allocator<MxCore *> >
|
||||
|
||||
// TEMPLATE: LEGO1 0x1001df00
|
||||
// Set<MxPresenter *,PresenterSetCompare>::~Set<MxPresenter *,PresenterSetCompare>
|
||||
// Set<MxCore *,CoreSetCompare>::~Set<MxCore *,CoreSetCompare>
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1001eed0
|
||||
// MxPresenterListCursor::`scalar deleting destructor'
|
||||
@@ -141,8 +143,31 @@ protected:
|
||||
// TEMPLATE: LEGO1 0x10020760
|
||||
// MxListCursor<MxPresenter *>::MxListCursor<MxPresenter *>
|
||||
|
||||
// TEMPLATE: LEGO1 0x100208b0
|
||||
// _Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >::insert
|
||||
|
||||
// TEMPLATE: LEGO1 0x10020b20
|
||||
// _Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >::iterator::_Dec
|
||||
|
||||
// XTEMPLATE LEGO1 0x10020b70
|
||||
|
||||
// TEMPLATE: LEGO1 0x10020bb0
|
||||
// _Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >::_Buynode
|
||||
|
||||
// TEMPLATE: LEGO1 0x10020bd0
|
||||
// _Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >::_Insert
|
||||
|
||||
// TEMPLATE: LEGO1 0x10020e50
|
||||
// _Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >::_Lrotate
|
||||
|
||||
// TEMPLATE: LEGO1 0x10020eb0
|
||||
// _Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >::_Rrotate
|
||||
|
||||
// TEMPLATE: LEGO1 0x10022360
|
||||
// _Construct
|
||||
|
||||
// GLOBAL: LEGO1 0x100f11a0
|
||||
// _Tree<MxPresenter *,MxPresenter *,set<MxPresenter *,PresenterSetCompare,allocator<MxPresenter *>>::_Kfn,PresenterSetCompare,allocator<MxPresenter *> >::_Nil
|
||||
// _Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >::_Nil
|
||||
// clang-format on
|
||||
|
||||
#endif // LEGOWORLD_H
|
||||
|
Reference in New Issue
Block a user