Implement/match LegoWorld::Destroy (and destructor) (#492)

* Implement/match LegoWorld::Destroy

* Match

* Match
This commit is contained in:
Christian Semmler
2024-01-27 11:48:50 -05:00
committed by GitHub
parent 4df7dee037
commit 883f3429a7
12 changed files with 177 additions and 9 deletions

View File

@@ -22,6 +22,7 @@ public:
static void configureLegoBuildingManager(MxS32);
void FUN_1002fa00();
void FUN_1002fb30();
// SYNTHETIC: LEGO1 0x1002f940
// LegoBuildingManager::`scalar deleting destructor'

View File

@@ -13,7 +13,8 @@
class LegoEntity : public MxEntity {
public:
enum {
c_bit1 = 0x01
c_bit1 = 0x01,
c_bit2 = 0x02
};
// Inlined at 0x100853f7
@@ -58,6 +59,7 @@ public:
void SetLocation(Mx3DPointFloat& p_location, Mx3DPointFloat& p_direction, Mx3DPointFloat& p_up, MxBool);
inline LegoROI* GetROI() { return m_roi; }
inline MxU8 GetFlags() { return m_flags; }
protected:
void Init();

View File

@@ -35,6 +35,14 @@ public:
// SYNTHETIC: LEGO1 0x1006cfe0
// LegoLocomotionAnimPresenter::`scalar deleting destructor'
inline void DecrementUnknown0xd4()
{
if (m_unk0xd4)
--m_unk0xd4;
}
inline undefined2 GetUnknown0xd4() { return m_unk0xd4; }
private:
void Init();
void Destroy(MxBool p_fromDestructor);

View File

@@ -21,6 +21,7 @@ public:
}
void FUN_10026360(undefined4 p_world);
void FUN_100263a0(undefined4 p_und);
// SYNTHETIC: LEGO1 0x100262a0
// LegoPlantManager::`scalar deleting destructor'

View File

@@ -1,6 +1,7 @@
#ifndef LEGOSOUNDMANAGER_H
#define LEGOSOUNDMANAGER_H
#include "legounknown100d6b4c.h"
#include "mxsoundmanager.h"
// VTABLE: LEGO1 0x100d6b10
@@ -17,12 +18,14 @@ public:
// SYNTHETIC: LEGO1 0x10029920
// LegoSoundManager::`scalar deleting destructor'
inline LegoUnknown100d6b4c* GetUnknown0x40() { return m_unk0x40; }
private:
void Init();
void Destroy(MxBool p_fromDestructor);
undefined4 m_unk0x3c;
undefined4 m_unk0x40;
undefined4 m_unk0x3c; // 0x3c
LegoUnknown100d6b4c* m_unk0x40; // 0x40
};
#endif // LEGOSOUNDMANAGER_H

View File

@@ -0,0 +1,15 @@
#ifndef LEGOUNKNOWN100D6B4C_H
#define LEGOUNKNOWN100D6B4C_H
#include "decomp.h"
class LegoCacheSound;
// VTABLE: LEGO1 0x100d6b4c
// SIZE 0x20
class LegoUnknown100d6b4c {
public:
void FUN_1003dc40(LegoCacheSound** p_und);
};
#endif // LEGOUNKNOWN100D6B4C_H

View File

@@ -79,7 +79,7 @@ protected:
LegoCameraController* m_cameraController; // 0x98
LegoEntityList* m_entityList; // 0x9c
LegoCacheSoundList* m_cacheSoundList; // 0xa0
undefined m_unk0xa4; // 0xa4
MxBool m_destroyed; // 0xa4
MxCoreSet m_set0xa8; // 0xa8
MxPresenterList m_controlPresenters; // 0xb8
MxCoreSet m_set0xd0; // 0xd0
@@ -122,6 +122,9 @@ protected:
// TEMPLATE: LEGO1 0x1001df00
// Set<MxCore *,CoreSetCompare>::~Set<MxCore *,CoreSetCompare>
// TEMPLATE: LEGO1 0x1001f590
// list<AutoROI *,allocator<AutoROI *> >::erase
// TEMPLATE: LEGO1 0x100208b0
// _Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >::insert