LegoWorld subclasses

This commit is contained in:
disinvite 2024-01-20 12:38:18 -05:00
parent be2513ea5c
commit aa61f783f1
13 changed files with 317 additions and 0 deletions

View File

@ -27,6 +27,7 @@ add_library(lego1 SHARED
LEGO1/lego/legoomni/src/act1/act1state.cpp
LEGO1/lego/legoomni/src/act2/act2brick.cpp
LEGO1/lego/legoomni/src/act2/act2policestation.cpp
LEGO1/lego/legoomni/src/act2/legoact2.cpp
LEGO1/lego/legoomni/src/act2/legoact2state.cpp
LEGO1/lego/legoomni/src/act3/act3.cpp
LEGO1/lego/legoomni/src/act3/act3shark.cpp

View File

@ -11,6 +11,9 @@ class Act3 : public LegoWorld {
virtual ~Act3() override; // vtable+00
virtual MxLong Notify(MxParam& p_param) override; // vtable+0x4
virtual MxResult Tickle() override; // vtable+0x8
// FUNCTION: LEGO1 0x10072510
inline virtual const char* ClassName() const override // vtable+0x0c
{
@ -24,6 +27,14 @@ class Act3 : public LegoWorld {
return !strcmp(p_name, Act3::ClassName()) || LegoWorld::IsA(p_name);
}
virtual MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18
virtual void Destroy(MxBool p_fromDestructor) override; // vtable+0x1c
virtual void VTable0x50() override; // vtable+0x50
virtual MxBool VTable0x5c() override; // vtable+0x5c
virtual void VTable0x60() override; // vtable+0x60
virtual MxBool VTable0x64() override; // vtable+0x64
virtual void VTable0x68(MxBool p_add) override; // vtable+0x68
inline void SetUnkown420c(MxEntity* p_entity) { m_unk0x420c = p_entity; }
inline void SetUnkown4270(MxU32 p_unk0x4270) { m_unk0x4270 = p_unk0x4270; }

View File

@ -12,6 +12,7 @@ class Hospital : public LegoWorld {
virtual ~Hospital() override; // vtable+0x0
virtual MxLong Notify(MxParam& p_param) override; // vtable+0x04
virtual MxResult Tickle() override; // vtable+0x08
// FUNCTION: LEGO1 0x100746b0
inline virtual const char* ClassName() const override // vtable+0x0c
@ -26,6 +27,12 @@ class Hospital : public LegoWorld {
return !strcmp(p_name, Hospital::ClassName()) || LegoWorld::IsA(p_name);
}
virtual MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18
virtual void VTable0x50() override; // vtable+0x50
virtual MxBool VTable0x5c() override; // vtable+0x5c
virtual MxBool VTable0x64() override; // vtable+0x64
virtual void VTable0x68(MxBool p_add) override; // vtable+0x68
// SYNTHETIC: LEGO1 0x100747d0
// Hospital::`scalar deleting destructor'

View File

@ -10,6 +10,9 @@ class JukeBox : public LegoWorld {
public:
JukeBox();
virtual MxLong Notify(MxParam& p_param) override; // vtable+0x4
virtual MxResult Tickle() override; // vtable+0x8
// FUNCTION: LEGO1 0x1005d6f0
inline virtual const char* ClassName() const override // vtable+0x0c
{
@ -23,6 +26,12 @@ class JukeBox : public LegoWorld {
return !strcmp(p_name, JukeBox::ClassName()) || LegoWorld::IsA(p_name);
}
virtual MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18
virtual void VTable0x50() override; // vtable+0x50
virtual MxBool VTable0x5c() override; // vtable+0x5c
virtual MxBool VTable0x64() override; // vtable+0x64
virtual void VTable0x68(MxBool p_add) override; // vtable+0x68
// SYNTHETIC: LEGO1 0x1005d810
// JukeBox::`scalar deleting destructor'

View File

@ -3,10 +3,21 @@
#include "legocarraceactor.h"
#include "legopathactor.h"
#include "legoworld.h"
// VTABLE: LEGO1 0x100d82e0
// SIZE 0x1154
class LegoAct2 : public LegoWorld {
virtual MxLong Notify(MxParam& p_param) override; // vtable+0x04
virtual MxResult Tickle() override; // vtable+0x08
virtual MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18
virtual void VTable0x50() override; // vtable+0x50
virtual MxBool VTable0x5c() override; // vtable+0x5c
virtual void VTable0x60() override; // vtable+0x60
virtual MxBool VTable0x64() override; // vtable+0x64
virtual void VTable0x68(MxBool p_add) override; // vtable+0x68
// SYNTHETIC: LEGO1 0x1004fe20
// LegoAct2::`scalar deleting destructor'
};

View File

@ -26,6 +26,12 @@ class LegoCarBuild : public LegoWorld {
return !strcmp(p_name, LegoCarBuild::ClassName()) || LegoWorld::IsA(p_name);
}
virtual MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18
virtual void VTable0x50() override; // vtable+0x50
virtual MxBool VTable0x5c() override; // vtable+0x5c
virtual MxBool VTable0x64() override; // vtable+0x64
virtual void VTable0x68(MxBool p_add) override; // vtable+0x68
// SYNTHETIC: LEGO1 0x10022a60
// LegoCarBuild::`scalar deleting destructor'
};

View File

@ -26,6 +26,12 @@ class Police : public LegoWorld {
return !strcmp(p_name, Police::ClassName()) || LegoWorld::IsA(p_name);
}
virtual MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18
virtual void VTable0x50() override; // vtable+0x50
virtual MxBool VTable0x5c() override; // vtable+0x5c
virtual MxBool VTable0x64() override; // vtable+0x64
virtual void VTable0x68(MxBool p_add) override; // vtable+0x68
// SYNTHETIC: LEGO1 0x1005e300
// Police::`scalar deleting destructor'
};

View File

@ -0,0 +1,54 @@
#include "legoact2.h"
// STUB: LEGO1 0x1004fe10
MxBool LegoAct2::VTable0x5c()
{
// TODO
return FALSE;
}
// STUB: LEGO1 0x1004ff20
MxResult LegoAct2::Create(MxDSAction& p_dsAction)
{
// TODO
return SUCCESS;
}
// STUB: LEGO1 0x10050040
MxResult LegoAct2::Tickle()
{
// TODO
return SUCCESS;
}
// STUB: LEGO1 0x10050380
MxLong LegoAct2::Notify(MxParam& p_param)
{
// TODO
return 0;
}
// STUB: LEGO1 0x10050a80
void LegoAct2::VTable0x50()
{
// TODO
}
// STUB: LEGO1 0x10050cf0
void LegoAct2::VTable0x68(MxBool p_add)
{
// TODO
}
// STUB: LEGO1 0x100519c0
void LegoAct2::VTable0x60()
{
// TODO
}
// STUB: LEGO1 0x100519d0
MxBool LegoAct2::VTable0x64()
{
// TODO
return FALSE;
}

View File

@ -8,8 +8,67 @@ Act3::Act3()
// TODO
}
// STUB: LEGO1 0x10072500
MxBool Act3::VTable0x5c()
{
// TODO
return FALSE;
}
// STUB: LEGO1 0x100726a0
Act3::~Act3()
{
// TODO
}
// STUB: LEGO1 0x10072c30
MxResult Act3::Create(MxDSAction& p_dsAction)
{
// TODO
return SUCCESS;
}
// STUB: LEGO1 0x10072d50
void Act3::Destroy(MxBool p_fromDestructor)
{
// TODO
}
// STUB: LEGO1 0x10072de0
MxLong Act3::Notify(MxParam& p_param)
{
// TODO
return 0;
}
// STUB: LEGO1 0x10073270
void Act3::VTable0x50()
{
// TODO
}
// STUB: LEGO1 0x10073300
MxResult Act3::Tickle()
{
// TODO
return SUCCESS;
}
// STUB: LEGO1 0x10073a90
void Act3::VTable0x68(MxBool p_add)
{
// TODO
}
// STUB: LEGO1 0x10073e40
void Act3::VTable0x60()
{
// TODO
}
// STUB: LEGO1 0x10073e50
MxBool Act3::VTable0x64()
{
// TODO
return FALSE;
}

View File

@ -6,12 +6,26 @@ LegoCarBuild::LegoCarBuild()
// TODO
}
// STUB: LEGO1 0x10022930
MxBool LegoCarBuild::VTable0x5c()
{
// TODO
return FALSE;
}
// STUB: LEGO1 0x10022a80
LegoCarBuild::~LegoCarBuild()
{
// TODO
}
// STUB: LEGO1 0x10022b70
MxResult LegoCarBuild::Create(MxDSAction& p_dsAction)
{
// TODO
return SUCCESS;
}
// STUB: LEGO1 0x100238b0
MxResult LegoCarBuild::Tickle()
{
@ -27,3 +41,22 @@ MxLong LegoCarBuild::Notify(MxParam& p_param)
return 0;
}
// STUB: LEGO1 0x100242c0
void LegoCarBuild::VTable0x50()
{
// TODO
}
// STUB: LEGO1 0x100256c0
void LegoCarBuild::VTable0x68(MxBool p_add)
{
// TODO
}
// STUB: LEGO1 0x10025e70
MxBool LegoCarBuild::VTable0x64()
{
// TODO
return FALSE;
}

View File

@ -23,12 +23,26 @@ Hospital::Hospital()
NotificationManager()->Register(this);
}
// STUB: LEGO1 0x100746a0
MxBool Hospital::VTable0x5c()
{
// TODO
return FALSE;
}
// STUB: LEGO1 0x100747f0
Hospital::~Hospital()
{
// TODO
}
// STUB: LEGO1 0x100748c0
MxResult Hospital::Create(MxDSAction& p_dsAction)
{
// TODO
return SUCCESS;
}
// STUB: LEGO1 0x10074990
MxLong Hospital::Notify(MxParam& p_param)
{
@ -36,3 +50,29 @@ MxLong Hospital::Notify(MxParam& p_param)
return 0;
}
// STUB: LEGO1 0x10074a60
void Hospital::VTable0x50()
{
// TODO
}
// STUB: LEGO1 0x10076220
void Hospital::VTable0x68(MxBool p_add)
{
// TODO
}
// STUB: LEGO1 0x10076270
MxResult Hospital::Tickle()
{
// TODO
return SUCCESS;
}
// STUB: LEGO1 0x10076330
MxBool Hospital::VTable0x64()
{
// TODO
return FALSE;
}

View File

@ -12,3 +12,50 @@ JukeBox::JukeBox()
m_unk0xfc = 0;
NotificationManager()->Register(this);
}
// STUB: LEGO1 0x1005d6e0
MxBool JukeBox::VTable0x5c()
{
// TODO
return FALSE;
}
// STUB: LEGO1 0x1005d8d0
MxResult JukeBox::Create(MxDSAction& p_dsAction)
{
// TODO
return SUCCESS;
}
// STUB: LEGO1 0x1005d980
MxLong JukeBox::Notify(MxParam& p_param)
{
// TODO
return 0;
}
// STUB: LEGO1 0x1005d9f0
void JukeBox::VTable0x50()
{
// TODO
}
// STUB: LEGO1 0x1005dde0
void JukeBox::VTable0x68(MxBool p_add)
{
// TODO
}
// STUB: LEGO1 0x1005de30
MxResult JukeBox::Tickle()
{
// TODO
return SUCCESS;
}
// STUB: LEGO1 0x1005de70
MxBool JukeBox::VTable0x64()
{
// TODO
return FALSE;
}

View File

@ -6,12 +6,26 @@ Police::Police()
// TODO
}
// STUB: LEGO1 0x1005e1d0
MxBool Police::VTable0x5c()
{
// TODO
return FALSE;
}
// STUB: LEGO1 0x1005e320
Police::~Police()
{
// TODO
}
// STUB: LEGO1 0x1005e3e0
MxResult Police::Create(MxDSAction& p_dsAction)
{
// TODO
return SUCCESS;
}
// STUB: LEGO1 0x1005e480
MxLong Police::Notify(MxParam& p_param)
{
@ -19,3 +33,22 @@ MxLong Police::Notify(MxParam& p_param)
return 0;
}
// STUB: LEGO1 0x1005e530
void Police::VTable0x50()
{
// TODO
}
// STUB: LEGO1 0x1005e740
void Police::VTable0x68(MxBool p_add)
{
// TODO
}
// STUB: LEGO1 0x1005e790
MxBool Police::VTable0x64()
{
// TODO
return FALSE;
}