mirror of
https://github.com/isledecomp/isle.git
synced 2026-01-24 00:31:16 +00:00
Merge branch 'master' into roi
This commit is contained in:
commit
211902eef4
@ -83,6 +83,7 @@ add_library(lego1 SHARED
|
|||||||
LEGO1/legopartpresenter.cpp
|
LEGO1/legopartpresenter.cpp
|
||||||
LEGO1/legopathactor.cpp
|
LEGO1/legopathactor.cpp
|
||||||
LEGO1/legopathcontroller.cpp
|
LEGO1/legopathcontroller.cpp
|
||||||
|
LEGO1/legopathcontrollerlist.cpp
|
||||||
LEGO1/legopathpresenter.cpp
|
LEGO1/legopathpresenter.cpp
|
||||||
LEGO1/legophonemepresenter.cpp
|
LEGO1/legophonemepresenter.cpp
|
||||||
LEGO1/legoplantmanager.cpp
|
LEGO1/legoplantmanager.cpp
|
||||||
|
|||||||
@ -24,9 +24,9 @@ Helicopter::~Helicopter()
|
|||||||
}
|
}
|
||||||
|
|
||||||
// OFFSET: LEGO1 0x100032c0
|
// OFFSET: LEGO1 0x100032c0
|
||||||
MxResult Helicopter::InitFromMxDSObject(MxDSObject& p_dsObject)
|
MxResult Helicopter::Create(MxDSObject& p_dsObject)
|
||||||
{
|
{
|
||||||
MxResult result = IslePathActor::InitFromMxDSObject(p_dsObject);
|
MxResult result = IslePathActor::Create(p_dsObject);
|
||||||
LegoWorld* world = GetCurrentWorld();
|
LegoWorld* world = GetCurrentWorld();
|
||||||
SetWorld(world);
|
SetWorld(world);
|
||||||
if (world->IsA("Act3")) {
|
if (world->IsA("Act3")) {
|
||||||
|
|||||||
@ -24,7 +24,7 @@ class Helicopter : public IslePathActor {
|
|||||||
return !strcmp(name, Helicopter::ClassName()) || IslePathActor::IsA(name);
|
return !strcmp(name, Helicopter::ClassName()) || IslePathActor::IsA(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual MxResult InitFromMxDSObject(MxDSObject& p_dsObject) override; // vtable+0x18
|
virtual MxResult Create(MxDSObject& p_dsObject) override; // vtable+0x18
|
||||||
virtual void VTable0xe4() override;
|
virtual void VTable0xe4() override;
|
||||||
|
|
||||||
// OFFSET: LEGO1 0x10003210 TEMPLATE
|
// OFFSET: LEGO1 0x10003210 TEMPLATE
|
||||||
|
|||||||
@ -44,9 +44,9 @@ IslePathActor::IslePathActor()
|
|||||||
}
|
}
|
||||||
|
|
||||||
// OFFSET: LEGO1 0x1001a280
|
// OFFSET: LEGO1 0x1001a280
|
||||||
MxResult IslePathActor::InitFromMxDSObject(MxDSObject& p_dsObject)
|
MxResult IslePathActor::Create(MxDSObject& p_dsObject)
|
||||||
{
|
{
|
||||||
return MxEntity::InitFromMxDSObject(p_dsObject);
|
return MxEntity::Create(p_dsObject);
|
||||||
}
|
}
|
||||||
|
|
||||||
// OFFSET: LEGO1 0x1001a350 STUB
|
// OFFSET: LEGO1 0x1001a350 STUB
|
||||||
|
|||||||
@ -28,16 +28,16 @@ class IslePathActor : public LegoPathActor {
|
|||||||
// IslePathActor::`scalar deleting destructor'
|
// IslePathActor::`scalar deleting destructor'
|
||||||
inline virtual ~IslePathActor() override { IslePathActor::Destroy(TRUE); }
|
inline virtual ~IslePathActor() override { IslePathActor::Destroy(TRUE); }
|
||||||
|
|
||||||
virtual MxResult InitFromMxDSObject(MxDSObject& p_dsObject) override; // vtable+0x18
|
virtual MxResult Create(MxDSObject& p_dsObject) override; // vtable+0x18
|
||||||
virtual void VTable0xcc(); // vtable+0xcc
|
virtual void VTable0xcc(); // vtable+0xcc
|
||||||
virtual void VTable0xd0(); // vtable+0xd0
|
virtual void VTable0xd0(); // vtable+0xd0
|
||||||
virtual void VTable0xd4(); // vtable+0xd4
|
virtual void VTable0xd4(); // vtable+0xd4
|
||||||
virtual void VTable0xd8(); // vtable+0xd8
|
virtual void VTable0xd8(); // vtable+0xd8
|
||||||
virtual void VTable0xdc(); // vtable+0xdc
|
virtual void VTable0xdc(); // vtable+0xdc
|
||||||
virtual void VTable0xe0(); // vtable+0xe0
|
virtual void VTable0xe0(); // vtable+0xe0
|
||||||
virtual void VTable0xe4(); // vtable+0xe4
|
virtual void VTable0xe4(); // vtable+0xe4
|
||||||
virtual void VTable0xe8(MxU32 p_1, MxBool p_2, MxU8 p_3); // vtable+0xe8
|
virtual void VTable0xe8(MxU32 p_1, MxBool p_2, MxU8 p_3); // vtable+0xe8
|
||||||
virtual void VTable0xec(); // vtable+0xec
|
virtual void VTable0xec(); // vtable+0xec
|
||||||
|
|
||||||
inline void SetWorld(LegoWorld* p_world) { m_pLegoWorld = p_world; }
|
inline void SetWorld(LegoWorld* p_world) { m_pLegoWorld = p_world; }
|
||||||
inline LegoWorld* GetWorld() { return m_pLegoWorld; }
|
inline LegoWorld* GetWorld() { return m_pLegoWorld; }
|
||||||
|
|||||||
@ -42,7 +42,7 @@ void LegoEntity::SetWorldTransform(Vector3Impl& p_loc, Vector3Impl& p_dir, Vecto
|
|||||||
}
|
}
|
||||||
|
|
||||||
// OFFSET: LEGO1 0x100107e0
|
// OFFSET: LEGO1 0x100107e0
|
||||||
MxResult LegoEntity::InitFromMxDSObject(MxDSObject& p_dsObject)
|
MxResult LegoEntity::Create(MxDSObject& p_dsObject)
|
||||||
{
|
{
|
||||||
m_mxEntityId = p_dsObject.GetObjectId();
|
m_mxEntityId = p_dsObject.GetObjectId();
|
||||||
m_atom = p_dsObject.GetAtomId();
|
m_atom = p_dsObject.GetAtomId();
|
||||||
|
|||||||
@ -32,7 +32,7 @@ class LegoEntity : public MxEntity {
|
|||||||
return !strcmp(name, LegoEntity::ClassName()) || MxEntity::IsA(name);
|
return !strcmp(name, LegoEntity::ClassName()) || MxEntity::IsA(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual MxResult InitFromMxDSObject(MxDSObject& p_dsObject); // vtable+0x18
|
virtual MxResult Create(MxDSObject& p_dsObject); // vtable+0x18
|
||||||
virtual void Destroy(MxBool p_fromDestructor); // vtable+0x1c
|
virtual void Destroy(MxBool p_fromDestructor); // vtable+0x1c
|
||||||
virtual void ParseAction(char*); // vtable+0x20
|
virtual void ParseAction(char*); // vtable+0x20
|
||||||
virtual void SetROI(LegoROI* p_roi, MxBool p_bool1, MxBool p_bool2); // vtable+0x24
|
virtual void SetROI(LegoROI* p_roi, MxBool p_bool1, MxBool p_bool2); // vtable+0x24
|
||||||
|
|||||||
@ -5,6 +5,7 @@
|
|||||||
#include "mxautolocker.h"
|
#include "mxautolocker.h"
|
||||||
|
|
||||||
DECOMP_SIZE_ASSERT(LegoInputManager, 0x338);
|
DECOMP_SIZE_ASSERT(LegoInputManager, 0x338);
|
||||||
|
DECOMP_SIZE_ASSERT(LegoEventQueue, 0x18);
|
||||||
|
|
||||||
// OFFSET: LEGO1 0x1005b790
|
// OFFSET: LEGO1 0x1005b790
|
||||||
LegoInputManager::LegoInputManager()
|
LegoInputManager::LegoInputManager()
|
||||||
@ -55,6 +56,27 @@ MxResult LegoInputManager::Create(HWND p_hwnd)
|
|||||||
return SUCCESS;
|
return SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// OFFSET: LEGO1 0x1005bb80 TEMPLATE
|
||||||
|
// MxCollection<LegoEventNotificationParam>::Compare
|
||||||
|
|
||||||
|
// OFFSET: LEGO1 0x1005bc30 TEMPLATE
|
||||||
|
// MxCollection<LegoEventNotificationParam>::Destroy
|
||||||
|
|
||||||
|
// OFFSET: LEGO1 0x1005bc80 TEMPLATE
|
||||||
|
// MxList<LegoEventNotificationParam>::~MxList<LegoEventNotificationParam>
|
||||||
|
|
||||||
|
// OFFSET: LEGO1 0x1005bd50 TEMPLATE
|
||||||
|
// MxCollection<LegoEventNotificationParam>::`scalar deleting destructor'
|
||||||
|
|
||||||
|
// OFFSET: LEGO1 0x1005bdc0 TEMPLATE
|
||||||
|
// MxList<LegoEventNotificationParam>::`scalar deleting destructor'
|
||||||
|
|
||||||
|
// OFFSET: LEGO1 0x1005beb0 TEMPLATE
|
||||||
|
// LegoEventQueue::`scalar deleting destructor'
|
||||||
|
|
||||||
|
// OFFSET: LEGO1 0x1005bf70 TEMPLATE
|
||||||
|
// MxQueue<LegoEventNotificationParam>::`scalar deleting destructor'
|
||||||
|
|
||||||
// OFFSET: LEGO1 0x1005bfe0
|
// OFFSET: LEGO1 0x1005bfe0
|
||||||
void LegoInputManager::Destroy()
|
void LegoInputManager::Destroy()
|
||||||
{
|
{
|
||||||
@ -270,3 +292,6 @@ void LegoInputManager::KillTimer()
|
|||||||
::KillTimer(omni->GetWindowHandle(), m_timer);
|
::KillTimer(omni->GetWindowHandle(), m_timer);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// OFFSET: LEGO1 0x1005d010 TEMPLATE
|
||||||
|
// MxListEntry<LegoEventNotificationParam>::GetValue
|
||||||
|
|||||||
@ -12,7 +12,17 @@
|
|||||||
|
|
||||||
class LegoControlManager;
|
class LegoControlManager;
|
||||||
|
|
||||||
|
// VTABLE 0x100d87b8 TEMPLATE
|
||||||
|
// class MxCollection<LegoEventNotificationParam>
|
||||||
|
|
||||||
|
// VTABLE 0x100d87d0 TEMPLATE
|
||||||
|
// class MxList<LegoEventNotificationParam>
|
||||||
|
|
||||||
|
// VTABLE 0x100d87e8 TEMPLATE
|
||||||
|
// class MxQueue<LegoEventNotificationParam>
|
||||||
|
|
||||||
// VTABLE 0x100d8800
|
// VTABLE 0x100d8800
|
||||||
|
// SIZE 0x18
|
||||||
class LegoEventQueue : public MxQueue<LegoEventNotificationParam> {};
|
class LegoEventQueue : public MxQueue<LegoEventNotificationParam> {};
|
||||||
|
|
||||||
// VTABLE 0x100d8760
|
// VTABLE 0x100d8760
|
||||||
@ -80,37 +90,4 @@ class LegoInputManager : public MxPresenter {
|
|||||||
MxBool m_unk0x336;
|
MxBool m_unk0x336;
|
||||||
};
|
};
|
||||||
|
|
||||||
// OFFSET: LEGO1 0x1005bb80 TEMPLATE
|
|
||||||
// MxListParent<LegoEventNotificationParam>::Compare
|
|
||||||
|
|
||||||
// OFFSET: LEGO1 0x1005bc30 TEMPLATE
|
|
||||||
// MxListParent<LegoEventNotificationParam>::Destroy
|
|
||||||
|
|
||||||
// OFFSET: LEGO1 0x1005bc80 TEMPLATE
|
|
||||||
// MxList<LegoEventNotificationParam>::~MxList<LegoEventNotificationParam>
|
|
||||||
|
|
||||||
// OFFSET: LEGO1 0x1005bd50 TEMPLATE
|
|
||||||
// MxListParent<LegoEventNotificationParam>::`scalar deleting destructor'
|
|
||||||
|
|
||||||
// OFFSET: LEGO1 0x1005bdc0 TEMPLATE
|
|
||||||
// MxList<LegoEventNotificationParam>::`scalar deleting destructor'
|
|
||||||
|
|
||||||
// OFFSET: LEGO1 0x1005beb0 TEMPLATE
|
|
||||||
// LegoEventQueue::`scalar deleting destructor'
|
|
||||||
|
|
||||||
// OFFSET: LEGO1 0x1005bf70 TEMPLATE
|
|
||||||
// MxQueue<LegoEventNotificationParam>::`scalar deleting destructor'
|
|
||||||
|
|
||||||
// OFFSET: LEGO1 0x1005d010 TEMPLATE
|
|
||||||
// MxListEntry<LegoEventNotificationParam>::GetValue
|
|
||||||
|
|
||||||
// VTABLE 0x100d87e8 TEMPLATE
|
|
||||||
// class MxQueue<LegoEventNotificationParam>
|
|
||||||
|
|
||||||
// VTABLE 0x100d87d0 TEMPLATE
|
|
||||||
// class MxList<LegoEventNotificationParam>
|
|
||||||
|
|
||||||
// VTABLE 0x100d87b8 TEMPLATE
|
|
||||||
// class MxListParent<LegoEventNotificationParam>
|
|
||||||
|
|
||||||
#endif // LEGOINPUTMANAGER_H
|
#endif // LEGOINPUTMANAGER_H
|
||||||
|
|||||||
@ -8,14 +8,34 @@ LegoPalettePresenter::LegoPalettePresenter()
|
|||||||
Init();
|
Init();
|
||||||
}
|
}
|
||||||
|
|
||||||
// OFFSET: LEGO1 0x1007a070 STUB
|
// OFFSET: LEGO1 0x1007a070
|
||||||
LegoPalettePresenter::~LegoPalettePresenter()
|
LegoPalettePresenter::~LegoPalettePresenter()
|
||||||
{
|
{
|
||||||
// TODO
|
Destroy(TRUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
// OFFSET: LEGO1 0x1007a0d0
|
// OFFSET: LEGO1 0x1007a0d0
|
||||||
void LegoPalettePresenter::Init()
|
void LegoPalettePresenter::Init()
|
||||||
{
|
{
|
||||||
this->m_unk64 = 0;
|
m_palette = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
// OFFSET: LEGO1 0x1007a0e0
|
||||||
|
void LegoPalettePresenter::Destroy(MxBool p_fromDestructor)
|
||||||
|
{
|
||||||
|
m_criticalSection.Enter();
|
||||||
|
if (m_palette) {
|
||||||
|
delete m_palette;
|
||||||
|
}
|
||||||
|
Init();
|
||||||
|
m_criticalSection.Leave();
|
||||||
|
if (!p_fromDestructor) {
|
||||||
|
MxVideoPresenter::Destroy(FALSE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// OFFSET: LEGO1 0x1007a120
|
||||||
|
void LegoPalettePresenter::Destroy()
|
||||||
|
{
|
||||||
|
Destroy(FALSE);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -2,6 +2,7 @@
|
|||||||
#define LEGOPALETTEPRESENTER_H
|
#define LEGOPALETTEPRESENTER_H
|
||||||
|
|
||||||
#include "decomp.h"
|
#include "decomp.h"
|
||||||
|
#include "mxpalette.h"
|
||||||
#include "mxvideopresenter.h"
|
#include "mxvideopresenter.h"
|
||||||
|
|
||||||
// VTABLE 0x100d9aa0
|
// VTABLE 0x100d9aa0
|
||||||
@ -9,7 +10,7 @@
|
|||||||
class LegoPalettePresenter : public MxVideoPresenter {
|
class LegoPalettePresenter : public MxVideoPresenter {
|
||||||
public:
|
public:
|
||||||
LegoPalettePresenter();
|
LegoPalettePresenter();
|
||||||
virtual ~LegoPalettePresenter(); // vtable+0x0
|
virtual ~LegoPalettePresenter() override; // vtable+0x0
|
||||||
|
|
||||||
// OFFSET: LEGO1 0x10079f30
|
// OFFSET: LEGO1 0x10079f30
|
||||||
inline const char* ClassName() const override // vtable+0xc
|
inline const char* ClassName() const override // vtable+0xc
|
||||||
@ -24,10 +25,12 @@ class LegoPalettePresenter : public MxVideoPresenter {
|
|||||||
return !strcmp(name, ClassName()) || MxVideoPresenter::IsA(name);
|
return !strcmp(name, ClassName()) || MxVideoPresenter::IsA(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
virtual void Destroy() override; // vtable+0x38
|
||||||
private:
|
private:
|
||||||
void Init();
|
void Init();
|
||||||
|
void Destroy(MxBool p_fromDestructor);
|
||||||
|
|
||||||
undefined4 m_unk64;
|
MxPalette* m_palette;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // LEGOPALETTEPRESENTER_H
|
#endif // LEGOPALETTEPRESENTER_H
|
||||||
|
|||||||
42
LEGO1/legopathcontrollerlist.cpp
Normal file
42
LEGO1/legopathcontrollerlist.cpp
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
#include "legopathcontrollerlist.h"
|
||||||
|
|
||||||
|
#include "decomp.h"
|
||||||
|
#include "legopathcontroller.h"
|
||||||
|
|
||||||
|
DECOMP_SIZE_ASSERT(LegoPathControllerList, 0x18);
|
||||||
|
|
||||||
|
// OFFSET: LEGO1 0x1001d210
|
||||||
|
MxS8 LegoPathControllerList::Compare(LegoPathController* p_a, LegoPathController* p_b)
|
||||||
|
{
|
||||||
|
return p_a == p_b ? 0 : p_a < p_b ? -1 : 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// OFFSET: LEGO1 0x1001d230 TEMPLATE
|
||||||
|
// MxCollection<LegoPathController *>::Compare
|
||||||
|
|
||||||
|
// OFFSET: LEGO1 0x1001d240 TEMPLATE
|
||||||
|
// MxList<LegoPathController *>::MxList<LegoPathController *>
|
||||||
|
|
||||||
|
// OFFSET: LEGO1 0x1001d2d0 TEMPLATE
|
||||||
|
// MxCollection<LegoPathController *>::~MxCollection<LegoPathController *>
|
||||||
|
|
||||||
|
// OFFSET: LEGO1 0x1001d320 TEMPLATE
|
||||||
|
// MxCollection<LegoPathController *>::Destroy
|
||||||
|
|
||||||
|
// OFFSET: LEGO1 0x1001d330 TEMPLATE
|
||||||
|
// MxList<LegoPathController *>::~MxList<LegoPathController *>
|
||||||
|
|
||||||
|
// OFFSET: LEGO1 0x1001d3c0
|
||||||
|
void LegoPathControllerList::Destroy(LegoPathController* p_controller)
|
||||||
|
{
|
||||||
|
delete p_controller;
|
||||||
|
}
|
||||||
|
|
||||||
|
// OFFSET: LEGO1 0x1001d490 TEMPLATE
|
||||||
|
// MxCollection<LegoPathController *>::`scalar deleting destructor'
|
||||||
|
|
||||||
|
// OFFSET: LEGO1 0x1001d500 TEMPLATE
|
||||||
|
// MxList<LegoPathController *>::`scalar deleting destructor'
|
||||||
|
|
||||||
|
// OFFSET: LEGO1 0x1001d5b0 TEMPLATE
|
||||||
|
// MxPtrList<LegoPathController>::`scalar deleting destructor'
|
||||||
26
LEGO1/legopathcontrollerlist.h
Normal file
26
LEGO1/legopathcontrollerlist.h
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
#ifndef LEGOPATHCONTROLLERLIST_H
|
||||||
|
#define LEGOPATHCONTROLLERLIST_H
|
||||||
|
|
||||||
|
#include "legopathcontroller.h"
|
||||||
|
#include "mxlist.h"
|
||||||
|
#include "mxtypes.h"
|
||||||
|
|
||||||
|
// VTABLE 0x100d6320 TEMPLATE
|
||||||
|
// class MxPtrList<LegoPathController>
|
||||||
|
|
||||||
|
// VTABLE 0x100d6338
|
||||||
|
// SIZE 0x18
|
||||||
|
class LegoPathControllerList : public MxPtrList<LegoPathController> {
|
||||||
|
public:
|
||||||
|
LegoPathControllerList() : MxPtrList<LegoPathController>(Destroy) {}
|
||||||
|
virtual MxS8 Compare(LegoPathController*, LegoPathController*) override; // vtable+0x14
|
||||||
|
static void Destroy(LegoPathController*);
|
||||||
|
};
|
||||||
|
|
||||||
|
// VTABLE 0x100d6380 TEMPLATE
|
||||||
|
// class MxCollection<LegoPathController *>
|
||||||
|
|
||||||
|
// VTABLE 0x100d6398 TEMPLATE
|
||||||
|
// class MxList<LegoPathController *>
|
||||||
|
|
||||||
|
#endif // LEGOPATHCONTROLLERLIST_H
|
||||||
@ -3,7 +3,9 @@
|
|||||||
|
|
||||||
#include "legocameracontroller.h"
|
#include "legocameracontroller.h"
|
||||||
#include "legoentity.h"
|
#include "legoentity.h"
|
||||||
|
#include "legopathcontrollerlist.h"
|
||||||
#include "mxpresenter.h"
|
#include "mxpresenter.h"
|
||||||
|
#include "mxpresenterlist.h"
|
||||||
|
|
||||||
// VTABLE 0x100d6280
|
// VTABLE 0x100d6280
|
||||||
// SIZE 0xf8
|
// SIZE 0xf8
|
||||||
@ -39,9 +41,12 @@ class LegoWorld : public LegoEntity {
|
|||||||
void EndAction(MxPresenter* p_presenter);
|
void EndAction(MxPresenter* p_presenter);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
undefined m_unk68[0x30];
|
LegoPathControllerList m_list0x68; // 0x68
|
||||||
LegoCameraController* m_camera;
|
MxPresenterList m_list0x80; // 0x80
|
||||||
undefined m_unk9c[0x5a];
|
LegoCameraController* m_camera; // 0x98
|
||||||
|
undefined m_unk9c[0x1c];
|
||||||
|
MxPresenterList m_list0xb8; // 0xb8
|
||||||
|
undefined m_unkd0[0x26];
|
||||||
undefined m_unkf6;
|
undefined m_unkf6;
|
||||||
undefined m_unkf7;
|
undefined m_unkf7;
|
||||||
};
|
};
|
||||||
|
|||||||
@ -18,8 +18,8 @@ class MxCollection : public MxCore {
|
|||||||
virtual MxS8 Compare(T, T) { return 0; }
|
virtual MxS8 Compare(T, T) { return 0; }
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
MxU32 m_count; // +0x8
|
MxU32 m_count; // 0x8
|
||||||
void (*m_customDestructor)(T); // +0xc
|
void (*m_customDestructor)(T); // 0xc
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // MXCOLLECTION_H
|
#endif // MXCOLLECTION_H
|
||||||
|
|||||||
@ -17,3 +17,18 @@ void MxDSActionList::Destroy(MxDSAction* p_action)
|
|||||||
if (p_action)
|
if (p_action)
|
||||||
delete p_action;
|
delete p_action;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// OFFSET: LEGO1 0x100c9cc0 TEMPLATE
|
||||||
|
// MxCollection<MxDSAction *>::Compare
|
||||||
|
|
||||||
|
// OFFSET: LEGO1 0x100c9d20 TEMPLATE
|
||||||
|
// MxCollection<MxDSAction *>::Destroy
|
||||||
|
|
||||||
|
// OFFSET: LEGO1 0x100c9d30 TEMPLATE
|
||||||
|
// MxList<MxDSAction *>::~MxList<MxDSAction *>
|
||||||
|
|
||||||
|
// OFFSET: LEGO1 0x100c9e30 TEMPLATE
|
||||||
|
// MxCollection<MxDSAction *>::`scalar deleting destructor'
|
||||||
|
|
||||||
|
// OFFSET: LEGO1 0x100c9ea0 TEMPLATE
|
||||||
|
// MxList<MxDSAction *>::`scalar deleting destructor'
|
||||||
|
|||||||
@ -6,13 +6,19 @@
|
|||||||
|
|
||||||
class MxDSAction;
|
class MxDSAction;
|
||||||
|
|
||||||
|
// VTABLE 0x100dcea8 TEMPLATE
|
||||||
|
// class MxCollection<MxDSAction *>
|
||||||
|
|
||||||
|
// VTABLE 0x100dcec0 TEMPLATE
|
||||||
|
// class MxList<MxDSAction *>
|
||||||
|
|
||||||
// VTABLE 0x100dced8
|
// VTABLE 0x100dced8
|
||||||
// SIZE 0x1c
|
// SIZE 0x1c
|
||||||
class MxDSActionList : public MxList<MxDSAction*> {
|
class MxDSActionList : public MxList<MxDSAction*> {
|
||||||
public:
|
public:
|
||||||
MxDSActionList() { this->m_unk18 = 0; }
|
MxDSActionList() { this->m_unk18 = 0; }
|
||||||
|
|
||||||
virtual MxS8 Compare(MxDSAction*, MxDSAction*) override; // +0x14
|
virtual MxS8 Compare(MxDSAction*, MxDSAction*) override; // vtable+0x14
|
||||||
|
|
||||||
static void Destroy(MxDSAction* p_action);
|
static void Destroy(MxDSAction* p_action);
|
||||||
|
|
||||||
@ -22,13 +28,4 @@ class MxDSActionList : public MxList<MxDSAction*> {
|
|||||||
|
|
||||||
typedef MxListCursorChild<MxDSAction*> MxDSActionListCursor;
|
typedef MxListCursorChild<MxDSAction*> MxDSActionListCursor;
|
||||||
|
|
||||||
// OFFSET: LEGO1 0x100c9cc0 TEMPLATE
|
|
||||||
// MxListParent<MxDSAction *>::Compare
|
|
||||||
|
|
||||||
// OFFSET: LEGO1 0x100c9d20 TEMPLATE
|
|
||||||
// MxListParent<MxDSAction *>::Destroy
|
|
||||||
|
|
||||||
// OFFSET: LEGO1 0x100c9d30 TEMPLATE
|
|
||||||
// MxList<MxDSAction *>::~MxList<MxDSAction *>
|
|
||||||
|
|
||||||
#endif // MXDSACTIONLIST_H
|
#endif // MXDSACTIONLIST_H
|
||||||
|
|||||||
@ -14,7 +14,7 @@ MxEntity::~MxEntity()
|
|||||||
}
|
}
|
||||||
|
|
||||||
// OFFSET: LEGO1 0x10001070
|
// OFFSET: LEGO1 0x10001070
|
||||||
MxResult MxEntity::SetEntityId(MxS32 p_id, const MxAtomId& p_atom)
|
MxResult MxEntity::Create(MxS32 p_id, const MxAtomId& p_atom)
|
||||||
{
|
{
|
||||||
this->m_mxEntityId = p_id;
|
this->m_mxEntityId = p_id;
|
||||||
this->m_atom = p_atom;
|
this->m_atom = p_atom;
|
||||||
|
|||||||
@ -27,8 +27,8 @@ class MxEntity : public MxCore {
|
|||||||
return !strcmp(name, MxEntity::ClassName()) || MxCore::IsA(name);
|
return !strcmp(name, MxEntity::ClassName()) || MxCore::IsA(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual MxResult SetEntityId(MxS32 p_id, const MxAtomId& p_atom); // vtable+0x14
|
virtual MxResult Create(MxS32 p_id, const MxAtomId& p_atom); // vtable+0x14
|
||||||
inline MxResult InitFromMxDSObject(MxDSObject& p_dsObject)
|
inline MxResult Create(MxDSObject& p_dsObject)
|
||||||
{
|
{
|
||||||
m_mxEntityId = p_dsObject.GetObjectId();
|
m_mxEntityId = p_dsObject.GetObjectId();
|
||||||
m_atom = p_dsObject.GetAtomId();
|
m_atom = p_dsObject.GetAtomId();
|
||||||
|
|||||||
@ -1,6 +1,10 @@
|
|||||||
#include "mxflcpresenter.h"
|
#include "mxflcpresenter.h"
|
||||||
|
|
||||||
#include "decomp.h"
|
#include "decomp.h"
|
||||||
|
#include "mxbitmap.h"
|
||||||
|
#include "mxomni.h"
|
||||||
|
#include "mxpalette.h"
|
||||||
|
#include "mxvideomanager.h"
|
||||||
|
|
||||||
DECOMP_SIZE_ASSERT(MxFlcPresenter, 0x68);
|
DECOMP_SIZE_ASSERT(MxFlcPresenter, 0x68);
|
||||||
|
|
||||||
@ -19,3 +23,13 @@ MxFlcPresenter::~MxFlcPresenter()
|
|||||||
delete this->m_unk64;
|
delete this->m_unk64;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// OFFSET: LEGO1 0x100b3620
|
||||||
|
void MxFlcPresenter::VTable0x70()
|
||||||
|
{
|
||||||
|
MxPalette* pal = m_bitmap->CreatePalette();
|
||||||
|
MVideoManager()->RealizePalette(pal);
|
||||||
|
|
||||||
|
if (pal)
|
||||||
|
delete pal;
|
||||||
|
}
|
||||||
|
|||||||
@ -24,6 +24,8 @@ class MxFlcPresenter : public MxVideoPresenter {
|
|||||||
return !strcmp(name, MxFlcPresenter::ClassName()) || MxVideoPresenter::IsA(name);
|
return !strcmp(name, MxFlcPresenter::ClassName()) || MxVideoPresenter::IsA(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
virtual void VTable0x70() override; // vtable+0x70
|
||||||
|
|
||||||
undefined4* m_unk64;
|
undefined4* m_unk64;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@ -59,16 +59,16 @@ class MxHashTable : protected MxCollection<T> {
|
|||||||
protected:
|
protected:
|
||||||
void _NodeInsert(MxHashTableNode<T>*);
|
void _NodeInsert(MxHashTableNode<T>*);
|
||||||
|
|
||||||
MxHashTableNode<T>** m_slots; // +0x10
|
MxHashTableNode<T>** m_slots; // 0x10
|
||||||
MxU32 m_numSlots; // +0x14
|
MxU32 m_numSlots; // 0x14
|
||||||
MxU32 m_autoResizeRatio; // +0x18
|
MxU32 m_autoResizeRatio; // 0x18
|
||||||
HashTableOpt m_resizeOption; // +0x1c
|
HashTableOpt m_resizeOption; // 0x1c
|
||||||
// FIXME: or FIXME? This qword is used as an integer or double depending
|
// FIXME: or FIXME? This qword is used as an integer or double depending
|
||||||
// on the value of m_resizeOption. Hard to say whether this is how the devs
|
// on the value of m_resizeOption. Hard to say whether this is how the devs
|
||||||
// did it, but a simple cast in either direction doesn't match.
|
// did it, but a simple cast in either direction doesn't match.
|
||||||
union {
|
union {
|
||||||
MxU32 m_increaseAmount; // +0x20
|
MxU32 m_increaseAmount; // 0x20
|
||||||
double m_increaseFactor; // +0x20
|
double m_increaseFactor; // 0x20
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -156,13 +156,13 @@ void MxHashTable<T>::DeleteAll()
|
|||||||
|
|
||||||
while (t) {
|
while (t) {
|
||||||
MxHashTableNode<T>* next = t->m_next;
|
MxHashTableNode<T>* next = t->m_next;
|
||||||
m_customDestructor(t->m_obj);
|
this->m_customDestructor(t->m_obj);
|
||||||
delete t;
|
delete t;
|
||||||
t = next;
|
t = next;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
m_count = 0;
|
this->m_count = 0;
|
||||||
memset(m_slots, 0, sizeof(MxHashTableNode<T>*) * m_numSlots);
|
memset(m_slots, 0, sizeof(MxHashTableNode<T>*) * m_numSlots);
|
||||||
|
|
||||||
delete[] m_slots;
|
delete[] m_slots;
|
||||||
@ -188,7 +188,7 @@ inline void MxHashTable<T>::Resize()
|
|||||||
MxHashTableNode<T>** new_table = new MxHashTableNode<T>*[m_numSlots];
|
MxHashTableNode<T>** new_table = new MxHashTableNode<T>*[m_numSlots];
|
||||||
m_slots = new_table;
|
m_slots = new_table;
|
||||||
memset(m_slots, 0, sizeof(MxHashTableNode<T>*) * m_numSlots);
|
memset(m_slots, 0, sizeof(MxHashTableNode<T>*) * m_numSlots);
|
||||||
m_count = 0;
|
this->m_count = 0;
|
||||||
|
|
||||||
for (MxS32 i = 0; i != old_size; i++) {
|
for (MxS32 i = 0; i != old_size; i++) {
|
||||||
MxHashTableNode<T>* t = old_table[i];
|
MxHashTableNode<T>* t = old_table[i];
|
||||||
@ -214,13 +214,13 @@ inline void MxHashTable<T>::_NodeInsert(MxHashTableNode<T>* p_node)
|
|||||||
m_slots[bucket]->m_prev = p_node;
|
m_slots[bucket]->m_prev = p_node;
|
||||||
|
|
||||||
m_slots[bucket] = p_node;
|
m_slots[bucket] = p_node;
|
||||||
m_count++;
|
this->m_count++;
|
||||||
}
|
}
|
||||||
|
|
||||||
template <class T>
|
template <class T>
|
||||||
inline void MxHashTable<T>::Add(T p_newobj)
|
inline void MxHashTable<T>::Add(T p_newobj)
|
||||||
{
|
{
|
||||||
if (m_resizeOption && ((m_count + 1) / m_numSlots) > m_autoResizeRatio)
|
if (m_resizeOption && ((this->m_count + 1) / m_numSlots) > m_autoResizeRatio)
|
||||||
MxHashTable<T>::Resize();
|
MxHashTable<T>::Resize();
|
||||||
|
|
||||||
MxU32 hash = Hash(p_newobj);
|
MxU32 hash = Hash(p_newobj);
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
#ifndef MXLIST_H
|
#ifndef MXLIST_H
|
||||||
#define MXLIST_H
|
#define MXLIST_H
|
||||||
|
|
||||||
|
#include "mxcollection.h"
|
||||||
#include "mxcore.h"
|
#include "mxcore.h"
|
||||||
#include "mxtypes.h"
|
#include "mxtypes.h"
|
||||||
|
|
||||||
@ -9,6 +10,12 @@ class MxList;
|
|||||||
template <class T>
|
template <class T>
|
||||||
class MxListCursor;
|
class MxListCursor;
|
||||||
|
|
||||||
|
template <class T>
|
||||||
|
class MxPtrList : public MxList<T*> {
|
||||||
|
public:
|
||||||
|
MxPtrList(void (*p_destroy)(T*) = Destroy) { m_customDestructor = p_destroy; }
|
||||||
|
};
|
||||||
|
|
||||||
template <class T>
|
template <class T>
|
||||||
class MxListEntry {
|
class MxListEntry {
|
||||||
public:
|
public:
|
||||||
@ -40,29 +47,9 @@ class MxListEntry {
|
|||||||
MxListEntry* m_next;
|
MxListEntry* m_next;
|
||||||
};
|
};
|
||||||
|
|
||||||
// SIZE 0x10
|
|
||||||
template <class T>
|
|
||||||
class MxListParent : public MxCore {
|
|
||||||
public:
|
|
||||||
MxListParent()
|
|
||||||
{
|
|
||||||
m_count = 0;
|
|
||||||
m_customDestructor = Destroy;
|
|
||||||
}
|
|
||||||
|
|
||||||
virtual ~MxListParent() {}
|
|
||||||
virtual MxS8 Compare(T, T) { return 0; };
|
|
||||||
|
|
||||||
static void Destroy(T){};
|
|
||||||
|
|
||||||
protected:
|
|
||||||
MxU32 m_count; // +0x8
|
|
||||||
void (*m_customDestructor)(T); // +0xc
|
|
||||||
};
|
|
||||||
|
|
||||||
// SIZE 0x18
|
// SIZE 0x18
|
||||||
template <class T>
|
template <class T>
|
||||||
class MxList : protected MxListParent<T> {
|
class MxList : protected MxCollection<T> {
|
||||||
public:
|
public:
|
||||||
MxList()
|
MxList()
|
||||||
{
|
{
|
||||||
@ -80,8 +67,8 @@ class MxList : protected MxListParent<T> {
|
|||||||
friend class MxListCursor<T>;
|
friend class MxListCursor<T>;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
MxListEntry<T>* m_first; // +0x10
|
MxListEntry<T>* m_first; // 0x10
|
||||||
MxListEntry<T>* m_last; // +0x14
|
MxListEntry<T>* m_last; // 0x14
|
||||||
|
|
||||||
void _DeleteEntry(MxListEntry<T>* match);
|
void _DeleteEntry(MxListEntry<T>* match);
|
||||||
MxListEntry<T>* _InsertEntry(T, MxListEntry<T>*, MxListEntry<T>*);
|
MxListEntry<T>* _InsertEntry(T, MxListEntry<T>*, MxListEntry<T>*);
|
||||||
|
|||||||
@ -10,3 +10,27 @@ MxS8 MxPresenterList::Compare(MxPresenter* p_a, MxPresenter* p_b)
|
|||||||
{
|
{
|
||||||
return p_a == p_b ? 0 : p_a < p_b ? -1 : 1;
|
return p_a == p_b ? 0 : p_a < p_b ? -1 : 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// OFFSET: LEGO1 0x1001cd20 TEMPLATE
|
||||||
|
// MxCollection<MxPresenter *>::Compare
|
||||||
|
|
||||||
|
// OFFSET: LEGO1 0x1001cd30 TEMPLATE
|
||||||
|
// MxCollection<MxPresenter *>::Destroy
|
||||||
|
|
||||||
|
// OFFSET: LEGO1 0x1001cd40 TEMPLATE
|
||||||
|
// MxList<MxPresenter *>::MxList<MxPresenter *>
|
||||||
|
|
||||||
|
// OFFSET: LEGO1 0x1001cdd0 TEMPLATE
|
||||||
|
// MxCollection<MxPresenter *>::~MxCollection<MxPresenter *>
|
||||||
|
|
||||||
|
// OFFSET: LEGO1 0x1001ce20 TEMPLATE
|
||||||
|
// MxList<MxPresenter *>::~MxList<MxPresenter *>
|
||||||
|
|
||||||
|
// OFFSET: LEGO1 0x1001cf70 TEMPLATE
|
||||||
|
// MxCollection<MxPresenter *>::`scalar deleting destructor'
|
||||||
|
|
||||||
|
// OFFSET: LEGO1 0x1001cfe0 TEMPLATE
|
||||||
|
// MxList<MxPresenter *>::`scalar deleting destructor'
|
||||||
|
|
||||||
|
// OFFSET: LEGO1 0x1001d090 TEMPLATE
|
||||||
|
// MxPtrList<MxPresenter>::`scalar deleting destructor'
|
||||||
|
|||||||
@ -5,30 +5,22 @@
|
|||||||
|
|
||||||
class MxPresenter;
|
class MxPresenter;
|
||||||
|
|
||||||
// Unclear what the purpose of this class is
|
// VTABLE 0x100d62f0 TEMPLATE
|
||||||
// VTABLE 0x100d62f0
|
// class MxPtrList<MxPresenter>
|
||||||
// SIZE 0x18
|
|
||||||
class MxPresenterListParent : public MxList<MxPresenter*> {
|
|
||||||
public:
|
|
||||||
MxPresenterListParent() { m_customDestructor = Destroy; }
|
|
||||||
};
|
|
||||||
|
|
||||||
// VTABLE 0x100d6308
|
// VTABLE 0x100d6308
|
||||||
// SIZE 0x18
|
// SIZE 0x18
|
||||||
class MxPresenterList : public MxPresenterListParent {
|
class MxPresenterList : public MxPtrList<MxPresenter> {
|
||||||
public:
|
public:
|
||||||
virtual MxS8 Compare(MxPresenter*, MxPresenter*) override; // +0x14
|
virtual MxS8 Compare(MxPresenter*, MxPresenter*) override; // vtable+0x14
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef MxListCursorChildChild<MxPresenter*> MxPresenterListCursor;
|
typedef MxListCursorChildChild<MxPresenter*> MxPresenterListCursor;
|
||||||
|
|
||||||
// OFFSET: LEGO1 0x1001cd20 TEMPLATE
|
// VTABLE 0x100d6350 TEMPLATE
|
||||||
// MxListParent<MxPresenter *>::Compare
|
// class MxCollection<MxPresenter *>
|
||||||
|
|
||||||
// OFFSET: LEGO1 0x1001cd30 TEMPLATE
|
// VTABLE 0x100d6368 TEMPLATE
|
||||||
// MxListParent<MxPresenter *>::Destroy
|
// class MxList<MxPresenter *>
|
||||||
|
|
||||||
// OFFSET: LEGO1 0x1001ce20 TEMPLATE
|
|
||||||
// MxList<MxPresenter *>::~MxList<MxPresenter *>
|
|
||||||
|
|
||||||
#endif // MXPRESENTERLIST_H
|
#endif // MXPRESENTERLIST_H
|
||||||
|
|||||||
@ -21,7 +21,7 @@ struct MxRegionTopBottom {
|
|||||||
inline void SetTop(MxS32 p_top) { m_top = p_top; }
|
inline void SetTop(MxS32 p_top) { m_top = p_top; }
|
||||||
inline void SetBottom(MxS32 p_bottom) { m_bottom = p_bottom; }
|
inline void SetBottom(MxS32 p_bottom) { m_bottom = p_bottom; }
|
||||||
|
|
||||||
friend class MxRegionListParent;
|
friend class MxRegionList;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
MxS32 m_top;
|
MxS32 m_top;
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
#include "mxregion.h"
|
#include "mxregion.h"
|
||||||
|
|
||||||
// OFFSET: LEGO1 0x100c33e0
|
// OFFSET: LEGO1 0x100c33e0
|
||||||
void MxRegionListParent::Destroy(MxRegionTopBottom* p_topBottom)
|
void MxRegionList::Destroy(MxRegionTopBottom* p_topBottom)
|
||||||
{
|
{
|
||||||
if (p_topBottom) {
|
if (p_topBottom) {
|
||||||
if (p_topBottom->m_leftRightList)
|
if (p_topBottom->m_leftRightList)
|
||||||
@ -13,7 +13,52 @@ void MxRegionListParent::Destroy(MxRegionTopBottom* p_topBottom)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// OFFSET: LEGO1 0x100c4e80
|
// OFFSET: LEGO1 0x100c4e80
|
||||||
void MxRegionLeftRightListParent::Destroy(MxRegionLeftRight* p_leftRight)
|
void MxRegionLeftRightList::Destroy(MxRegionLeftRight* p_leftRight)
|
||||||
{
|
{
|
||||||
delete p_leftRight;
|
delete p_leftRight;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// OFFSET: LEGO1 0x100c32e0 TEMPLATE
|
||||||
|
// MxCollection<MxRegionTopBottom *>::Compare
|
||||||
|
|
||||||
|
// OFFSET: LEGO1 0x100c3340 TEMPLATE
|
||||||
|
// MxCollection<MxRegionTopBottom *>::Destroy
|
||||||
|
|
||||||
|
// OFFSET: LEGO1 0x100c34d0 TEMPLATE
|
||||||
|
// MxCollection<MxRegionTopBottom *>::`scalar deleting destructor'
|
||||||
|
|
||||||
|
// OFFSET: LEGO1 0x100c3540 TEMPLATE
|
||||||
|
// MxList<MxRegionTopBottom *>::`scalar deleting destructor'
|
||||||
|
|
||||||
|
// OFFSET: LEGO1 0x100c35f0 TEMPLATE
|
||||||
|
// MxPtrList<MxRegionTopBottom>::`scalar deleting destructor'
|
||||||
|
|
||||||
|
// OFFSET: LEGO1 0x100c4d80 TEMPLATE
|
||||||
|
// MxCollection<MxRegionLeftRight *>::Compare
|
||||||
|
|
||||||
|
// OFFSET: LEGO1 0x100c4de0 TEMPLATE
|
||||||
|
// MxCollection<MxRegionLeftRight *>::Destroy
|
||||||
|
|
||||||
|
// OFFSET: LEGO1 0x100c4f50 TEMPLATE
|
||||||
|
// MxCollection<MxRegionLeftRight *>::`scalar deleting destructor'
|
||||||
|
|
||||||
|
// OFFSET: LEGO1 0x100c4fc0 TEMPLATE
|
||||||
|
// MxList<MxRegionLeftRight *>::`scalar deleting destructor'
|
||||||
|
|
||||||
|
// OFFSET: LEGO1 0x100c5070 TEMPLATE
|
||||||
|
// MxPtrList<MxRegionLeftRight>::`scalar deleting destructor'
|
||||||
|
|
||||||
|
// OFFSET: LEGO1 0x100c54f0 TEMPLATE
|
||||||
|
// MxListCursor<MxRegionLeftRight *>::MxListCursor<MxRegionLeftRight *>
|
||||||
|
|
||||||
|
// OFFSET: LEGO1 0x100c58c0 TEMPLATE
|
||||||
|
// MxList<MxRegionLeftRight *>::_InsertEntry
|
||||||
|
|
||||||
|
// OFFSET: LEGO1 0x100c5970 TEMPLATE
|
||||||
|
// MxList<MxRegionTopBottom *>::_InsertEntry
|
||||||
|
|
||||||
|
// OFFSET: LEGO1 0x100c5a20 TEMPLATE
|
||||||
|
// MxListEntry<MxRegionTopBottom *>::MxListEntry<MxRegionTopBottom *>
|
||||||
|
|
||||||
|
// OFFSET: LEGO1 0x100c5a40 TEMPLATE
|
||||||
|
// MxList<MxRegionLeftRight *>::_DeleteEntry
|
||||||
|
|||||||
@ -6,51 +6,44 @@
|
|||||||
struct MxRegionTopBottom;
|
struct MxRegionTopBottom;
|
||||||
struct MxRegionLeftRight;
|
struct MxRegionLeftRight;
|
||||||
|
|
||||||
// VTABLE 0x100dcb40
|
// VTABLE 0x100dcb10 TEMPLATE
|
||||||
// SIZE 0x18
|
// class MxCollection<MxRegionTopBottom *>
|
||||||
class MxRegionListParent : public MxList<MxRegionTopBottom*> {
|
|
||||||
public:
|
|
||||||
static void Destroy(MxRegionTopBottom* p_topBottom);
|
|
||||||
|
|
||||||
MxRegionListParent() { m_customDestructor = Destroy; }
|
// VTABLE 0x100dcb28 TEMPLATE
|
||||||
};
|
// class MxList<MxRegionTopBottom *>
|
||||||
|
|
||||||
|
// VTABLE 0x100dcb40 TEMPLATE
|
||||||
|
// class MxPtrList<MxRegionTopBottom>
|
||||||
|
|
||||||
// VTABLE 0x100dcb58
|
// VTABLE 0x100dcb58
|
||||||
// SIZE 0x18
|
// SIZE 0x18
|
||||||
class MxRegionList : public MxRegionListParent {};
|
class MxRegionList : public MxPtrList<MxRegionTopBottom> {
|
||||||
|
public:
|
||||||
|
MxRegionList() : MxPtrList<MxRegionTopBottom>(Destroy) {}
|
||||||
|
static void Destroy(MxRegionTopBottom*);
|
||||||
|
};
|
||||||
|
|
||||||
// VTABLE 0x100dcb88
|
// VTABLE 0x100dcb88
|
||||||
typedef MxListCursorChildChild<MxRegionTopBottom*> MxRegionListCursor;
|
typedef MxListCursorChildChild<MxRegionTopBottom*> MxRegionListCursor;
|
||||||
|
|
||||||
// OFFSET: LEGO1 0x100c5970 TEMPLATE
|
|
||||||
// MxList<MxRegionTopBottom *>::_InsertEntry
|
|
||||||
|
|
||||||
// OFFSET: LEGO1 0x100c5a20 TEMPLATE
|
|
||||||
// MxListEntry<MxRegionTopBottom *>::MxListEntry<MxRegionTopBottom *>
|
|
||||||
|
|
||||||
// VTABLE 0x100dcc70
|
|
||||||
// SIZE 0x18
|
|
||||||
class MxRegionLeftRightListParent : public MxList<MxRegionLeftRight*> {
|
|
||||||
public:
|
|
||||||
static void Destroy(MxRegionLeftRight* p_leftRight);
|
|
||||||
|
|
||||||
MxRegionLeftRightListParent() { m_customDestructor = Destroy; }
|
|
||||||
};
|
|
||||||
|
|
||||||
// VTABLE 0x100dcc88
|
|
||||||
// SIZE 0x18
|
|
||||||
class MxRegionLeftRightList : public MxRegionLeftRightListParent {};
|
|
||||||
|
|
||||||
// VTABLE 0x100dcc10
|
// VTABLE 0x100dcc10
|
||||||
typedef MxListCursorChildChild<MxRegionLeftRight*> MxRegionLeftRightListCursor;
|
typedef MxListCursorChildChild<MxRegionLeftRight*> MxRegionLeftRightListCursor;
|
||||||
|
|
||||||
// OFFSET: LEGO1 0x100c54f0 TEMPLATE
|
// VTABLE 0x100dcc40 TEMPLATE
|
||||||
// MxListCursor<MxRegionLeftRight *>::MxListCursor<MxRegionLeftRight *>
|
// class MxCollection<MxRegionLeftRight *>
|
||||||
|
|
||||||
// OFFSET: LEGO1 0x100c58c0 TEMPLATE
|
// VTABLE 0x100dcc58 TEMPLATE
|
||||||
// MxList<MxRegionLeftRight *>::_InsertEntry
|
// class MxList<MxRegionLeftRight *>
|
||||||
|
|
||||||
// OFFSET: LEGO1 0x100c5a40 TEMPLATE
|
// VTABLE 0x100dcc70 TEMPLATE
|
||||||
// MxList<MxRegionLeftRight *>::_DeleteEntry
|
// class MxPtrList<MxRegionLeftRight>
|
||||||
|
|
||||||
|
// VTABLE 0x100dcc88
|
||||||
|
// SIZE 0x18
|
||||||
|
class MxRegionLeftRightList : public MxPtrList<MxRegionLeftRight> {
|
||||||
|
public:
|
||||||
|
MxRegionLeftRightList() : MxPtrList<MxRegionLeftRight>(Destroy) {}
|
||||||
|
static void Destroy(MxRegionLeftRight*);
|
||||||
|
};
|
||||||
|
|
||||||
#endif // MXREGIONLIST_H
|
#endif // MXREGIONLIST_H
|
||||||
|
|||||||
@ -17,3 +17,18 @@ void MxStreamChunkList::Destroy(MxStreamChunk* p_chunk)
|
|||||||
if (p_chunk)
|
if (p_chunk)
|
||||||
delete p_chunk;
|
delete p_chunk;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// OFFSET: LEGO1 0x100b5930 TEMPLATE
|
||||||
|
// MxCollection<MxStreamChunk *>::Compare
|
||||||
|
|
||||||
|
// OFFSET: LEGO1 0x100b5990 TEMPLATE
|
||||||
|
// MxCollection<MxStreamChunk *>::Destroy
|
||||||
|
|
||||||
|
// OFFSET: LEGO1 0x100b59a0 TEMPLATE
|
||||||
|
// MxList<MxStreamChunk *>::~MxList<MxStreamChunk *>
|
||||||
|
|
||||||
|
// OFFSET: LEGO1 0x100b5aa0 TEMPLATE
|
||||||
|
// MxCollection<MxStreamChunk *>::`scalar deleting destructor'
|
||||||
|
|
||||||
|
// OFFSET: LEGO1 0x100b5b10 TEMPLATE
|
||||||
|
// MxList<MxStreamChunk *>::`scalar deleting destructor'
|
||||||
|
|||||||
@ -6,29 +6,23 @@
|
|||||||
|
|
||||||
class MxStreamChunk;
|
class MxStreamChunk;
|
||||||
|
|
||||||
|
// VTABLE 0x100dc5d0 TEMPLATE
|
||||||
|
// class MxCollection<MxStreamChunk *>
|
||||||
|
|
||||||
|
// VTABLE 0x100dc5e8 TEMPLATE
|
||||||
|
// class MxList<MxStreamChunk *>
|
||||||
|
|
||||||
// VTABLE 0x100dc600
|
// VTABLE 0x100dc600
|
||||||
// SIZE 0x18
|
// SIZE 0x18
|
||||||
class MxStreamChunkList : public MxList<MxStreamChunk*> {
|
class MxStreamChunkList : public MxList<MxStreamChunk*> {
|
||||||
public:
|
public:
|
||||||
MxStreamChunkList() { m_customDestructor = Destroy; }
|
MxStreamChunkList() { m_customDestructor = Destroy; }
|
||||||
|
|
||||||
virtual MxS8 Compare(MxStreamChunk*, MxStreamChunk*) override; // +0x14
|
virtual MxS8 Compare(MxStreamChunk*, MxStreamChunk*) override; // vtable+0x14
|
||||||
|
|
||||||
static void Destroy(MxStreamChunk* p_chunk);
|
static void Destroy(MxStreamChunk* p_chunk);
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef MxListCursorChild<MxStreamChunk*> MxStreamChunkListCursor;
|
typedef MxListCursorChild<MxStreamChunk*> MxStreamChunkListCursor;
|
||||||
|
|
||||||
// OFFSET: LEGO1 0x100b5930 TEMPLATE
|
|
||||||
// MxListParent<MxStreamChunk *>::Compare
|
|
||||||
|
|
||||||
// OFFSET: LEGO1 0x100b5990 TEMPLATE
|
|
||||||
// MxListParent<MxStreamChunk *>::Destroy
|
|
||||||
|
|
||||||
// OFFSET: LEGO1 0x100b59a0 TEMPLATE
|
|
||||||
// MxList<MxStreamChunk *>::~MxList<MxStreamChunk *>
|
|
||||||
|
|
||||||
// OFFSET: LEGO1 0x100b5b10 TEMPLATE
|
|
||||||
// MxList<MxStreamChunk *>::`scalar deleting destructor'
|
|
||||||
|
|
||||||
#endif // MXSTREAMCHUNKLIST_H
|
#endif // MXSTREAMCHUNKLIST_H
|
||||||
|
|||||||
@ -3,3 +3,24 @@
|
|||||||
#include "decomp.h"
|
#include "decomp.h"
|
||||||
|
|
||||||
DECOMP_SIZE_ASSERT(MxListEntry<MxString>, 0x18)
|
DECOMP_SIZE_ASSERT(MxListEntry<MxString>, 0x18)
|
||||||
|
|
||||||
|
// OFFSET: LEGO1 0x100cb3c0 TEMPLATE
|
||||||
|
// MxCollection<MxString>::Compare
|
||||||
|
|
||||||
|
// OFFSET: LEGO1 0x100cb470 TEMPLATE
|
||||||
|
// MxCollection<MxString>::Destroy
|
||||||
|
|
||||||
|
// OFFSET: LEGO1 0x100cb4c0 TEMPLATE
|
||||||
|
// MxList<MxString>::~MxList<MxString>
|
||||||
|
|
||||||
|
// OFFSET: LEGO1 0x100cbb40 TEMPLATE
|
||||||
|
// MxList<MxString>::Append
|
||||||
|
|
||||||
|
// OFFSET: LEGO1 0x100cc2d0 TEMPLATE
|
||||||
|
// MxList<MxString>::_InsertEntry
|
||||||
|
|
||||||
|
// OFFSET: LEGO1 0x100cc3c0 TEMPLATE
|
||||||
|
// MxListEntry<MxString>::MxListEntry<MxString>
|
||||||
|
|
||||||
|
// OFFSET: LEGO1 0x100cc450 TEMPLATE
|
||||||
|
// MxListEntry<MxString>::GetValue
|
||||||
|
|||||||
@ -11,25 +11,4 @@ class MxStringList : public MxList<MxString> {};
|
|||||||
// VTABLE 0x100dd058
|
// VTABLE 0x100dd058
|
||||||
typedef MxListCursorChild<MxString> MxStringListCursor;
|
typedef MxListCursorChild<MxString> MxStringListCursor;
|
||||||
|
|
||||||
// OFFSET: LEGO1 0x100cb3c0 TEMPLATE
|
|
||||||
// MxListParent<MxString>::Compare
|
|
||||||
|
|
||||||
// OFFSET: LEGO1 0x100cb470 TEMPLATE
|
|
||||||
// MxListParent<MxString>::Destroy
|
|
||||||
|
|
||||||
// OFFSET: LEGO1 0x100cb4c0 TEMPLATE
|
|
||||||
// MxList<MxString>::~MxList<MxString>
|
|
||||||
|
|
||||||
// OFFSET: LEGO1 0x100cbb40 TEMPLATE
|
|
||||||
// MxList<MxString>::Append
|
|
||||||
|
|
||||||
// OFFSET: LEGO1 0x100cc2d0 TEMPLATE
|
|
||||||
// MxList<MxString>::_InsertEntry
|
|
||||||
|
|
||||||
// OFFSET: LEGO1 0x100cc3c0 TEMPLATE
|
|
||||||
// MxListEntry<MxString>::MxListEntry<MxString>
|
|
||||||
|
|
||||||
// OFFSET: LEGO1 0x100cc450 TEMPLATE
|
|
||||||
// MxListEntry<MxString>::GetValue
|
|
||||||
|
|
||||||
#endif // MXSTRINGLIST_H
|
#endif // MXSTRINGLIST_H
|
||||||
|
|||||||
@ -17,8 +17,8 @@ class MxVariableTable : public MxHashTable<MxVariable*> {
|
|||||||
// OFFSET: LEGO1 0x100afdb0
|
// OFFSET: LEGO1 0x100afdb0
|
||||||
static void Destroy(MxVariable* p_obj) { p_obj->Destroy(); }
|
static void Destroy(MxVariable* p_obj) { p_obj->Destroy(); }
|
||||||
|
|
||||||
virtual MxS8 Compare(MxVariable*, MxVariable*) override; // +0x14
|
virtual MxS8 Compare(MxVariable*, MxVariable*) override; // vtable+0x14
|
||||||
virtual MxU32 Hash(MxVariable*) override; // +0x18
|
virtual MxU32 Hash(MxVariable*) override; // vtable+0x18
|
||||||
};
|
};
|
||||||
|
|
||||||
// OFFSET: LEGO1 0x100afcd0 TEMPLATE
|
// OFFSET: LEGO1 0x100afcd0 TEMPLATE
|
||||||
|
|||||||
@ -74,7 +74,7 @@ MxBool Score::VTable0x5c()
|
|||||||
}
|
}
|
||||||
|
|
||||||
// OFFSET: LEGO1 0x100012a0
|
// OFFSET: LEGO1 0x100012a0
|
||||||
MxResult Score::InitFromMxDSObject(MxDSObject& p_dsObject)
|
MxResult Score::Create(MxDSObject& p_dsObject)
|
||||||
{
|
{
|
||||||
MxResult result = SetAsCurrentWorld(p_dsObject);
|
MxResult result = SetAsCurrentWorld(p_dsObject);
|
||||||
|
|
||||||
|
|||||||
@ -29,13 +29,13 @@ class Score : public LegoWorld {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// OFFSET: LEGO1 0x100011e0 TEMPLATE
|
// OFFSET: LEGO1 0x100011e0 TEMPLATE
|
||||||
// Helicopter::`scalar deleting destructor'
|
// Score::`scalar deleting destructor'
|
||||||
|
|
||||||
virtual MxResult InitFromMxDSObject(MxDSObject& p_dsObject) override; // vtable+18
|
virtual MxResult Create(MxDSObject& p_dsObject) override; // vtable+18
|
||||||
virtual void Stop() override; // vtable+50
|
virtual void Stop() override; // vtable+50
|
||||||
virtual MxBool VTable0x5c() override; // vtable+5c
|
virtual MxBool VTable0x5c() override; // vtable+5c
|
||||||
virtual MxBool VTable0x64() override; // vtable+64
|
virtual MxBool VTable0x64() override; // vtable+64
|
||||||
virtual void VTable0x68(MxBool p_add) override; // vtable+68
|
virtual void VTable0x68(MxBool p_add) override; // vtable+68
|
||||||
|
|
||||||
void Paint();
|
void Paint();
|
||||||
MxLong FUN_10001510(MxEndActionNotificationParam& p);
|
MxLong FUN_10001510(MxEndActionNotificationParam& p);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user