LegoState subclasses

This commit is contained in:
disinvite 2024-01-20 12:04:24 -05:00
parent 7f7a7d5c88
commit be2513ea5c
20 changed files with 106 additions and 0 deletions

View File

@ -22,6 +22,9 @@ class Act1State : public LegoState {
return !strcmp(p_name, Act1State::ClassName()) || LegoState::IsA(p_name);
};
virtual MxBool SetFlag() override; // vtable+0x18
virtual MxResult VTable0x1c(LegoFileStream* p_legoFileStream) override; // vtable+0x1c
inline void SetUnknown18(MxU32 p_unk0x18) { m_unk0x18 = p_unk0x18; }
inline MxU32 GetUnknown18() { return m_unk0x18; }
inline void SetUnknown21(MxS16 p_unk0x21) { m_unk0x21 = p_unk0x21; }

View File

@ -22,6 +22,8 @@ class GasStationState : public LegoState {
return !strcmp(p_name, GasStationState::ClassName()) || LegoState::IsA(p_name);
}
virtual MxResult VTable0x1c(LegoFileStream* p_legoFileStream) override; // vtable+0x1c
// SYNTHETIC: LEGO1 0x10006290
// GasStationState::`scalar deleting destructor'

View File

@ -21,6 +21,9 @@ class HelicopterState : public LegoState {
return !strcmp(p_name, HelicopterState::ClassName()) || LegoState::IsA(p_name);
}
virtual MxBool VTable0x14() override; // vtable+0x14
virtual MxBool SetFlag() override; // vtable+0x18
inline void SetUnknown8(MxU32 p_unk0x8) { m_unk0x8 = p_unk0x8; }
inline MxU32 GetUnkown8() { return m_unk0x8; }

View File

@ -20,6 +20,8 @@ class LegoAct2State : public LegoState {
return !strcmp(p_name, LegoAct2State::ClassName()) || LegoState::IsA(p_name);
}
virtual MxBool VTable0x14() override; // vtable+0x14
// SYNTHETIC: LEGO1 0x1000e040
// LegoAct2State::`scalar deleting destructor'
};

View File

@ -23,6 +23,8 @@ class LegoVehicleBuildState : public LegoState {
return !strcmp(p_name, this->m_className.GetData()) || LegoState::IsA(p_name);
}
virtual MxResult VTable0x1c(LegoFileStream* p_legoFileStream) override; // vtable+0x1c
// SYNTHETIC: LEGO1 0x100260a0
// LegoVehicleBuildState::`scalar deleting destructor'

View File

@ -28,6 +28,8 @@ class PizzaMissionState : public LegoState {
return !strcmp(p_name, PizzaMissionState::ClassName()) || LegoState::IsA(p_name);
}
virtual MxResult VTable0x1c(LegoFileStream* p_legoFileStream) override; // vtable+0x1c
inline MxU16 GetColor(MxU8 p_id) { return GetState(p_id)->m_color; }
// SYNTHETIC: LEGO1 0x10039350

View File

@ -22,6 +22,8 @@ class PizzeriaState : public LegoState {
return !strcmp(p_name, PizzeriaState::ClassName()) || LegoState::IsA(p_name);
}
virtual MxResult VTable0x1c(LegoFileStream* p_legoFileStream) override; // vtable+0x1c
// SYNTHETIC: LEGO1 0x10017ce0
// PizzeriaState::`scalar deleting destructor'
};

View File

@ -23,6 +23,8 @@ class PoliceState : public LegoState {
return !strcmp(p_name, PoliceState::ClassName()) || LegoState::IsA(p_name);
}
virtual MxResult VTable0x1c(LegoFileStream* p_legoFileStream) override; // vtable+0x1c
// SYNTHETIC: LEGO1 0x1005e920
// PoliceState::`scalar deleting destructor'

View File

@ -30,6 +30,8 @@ class RaceState : public LegoState {
return !strcmp(p_name, RaceState::ClassName()) || LegoState::IsA(p_name);
}
virtual MxResult VTable0x1c(LegoFileStream* p_legoFileStream) override; // vtable+0x1c
inline MxU16 GetColor(MxU8 p_id) { return GetState(p_id)->m_color; }
// SYNTHETIC: LEGO1 0x100160d0

View File

@ -22,6 +22,8 @@ class RadioState : public LegoState {
return !strcmp(p_name, RadioState::ClassName()) || LegoState::IsA(p_name);
}
virtual MxBool VTable0x14() override; // vtable+0x14
// SYNTHETIC: LEGO1 0x1002d020
// RadioState::`scalar deleting destructor'
};

View File

@ -13,6 +13,20 @@ Act1State::Act1State()
m_unk0x1c = 1;
}
// STUB: LEGO1 0x10033ac0
MxResult Act1State::VTable0x1c(LegoFileStream* p_legoFileStream)
{
// TODO
return SUCCESS;
}
// STUB: LEGO1 0x100346d0
MxBool Act1State::SetFlag()
{
// TODO
return FALSE;
}
// STUB: LEGO1 0x10034d00
void Act1State::FUN_10034d00()
{

View File

@ -1 +1,8 @@
#include "legoact2state.h"
// STUB: LEGO1 0x1000df70
MxBool LegoAct2State::VTable0x14()
{
// TODO
return FALSE;
}

View File

@ -1 +1,15 @@
#include "helicopterstate.h"
// STUB: LEGO1 0x1000e0b0
MxBool HelicopterState::VTable0x14()
{
// TODO
return FALSE;
}
// STUB: LEGO1 0x1000e0c0
MxBool HelicopterState::SetFlag()
{
// TODO
return FALSE;
}

View File

@ -23,3 +23,10 @@ LegoVehicleBuildState::LegoVehicleBuildState(char* p_classType)
this->m_unk0x4e = 0;
this->m_placedPartCount = 0;
}
// STUB: LEGO1 0x10026120
MxResult LegoVehicleBuildState::VTable0x1c(LegoFileStream* p_legoFileStream)
{
// TODO
return SUCCESS;
}

View File

@ -16,3 +16,10 @@ GasStationState::GasStationState()
unk0x08[1] = -1;
unk0x08[2] = -1;
}
// STUB: LEGO1 0x10006300
MxResult GasStationState::VTable0x1c(LegoFileStream* p_legoFileStream)
{
// TODO
return SUCCESS;
}

View File

@ -5,3 +5,10 @@ RadioState::RadioState()
{
// TODO
}
// STUB: LEGO1 0x1002cf50
MxBool RadioState::VTable0x14()
{
// TODO
return FALSE;
}

View File

@ -3,6 +3,13 @@
DECOMP_SIZE_ASSERT(PizzaMissionStateEntry, 0x20)
DECOMP_SIZE_ASSERT(PizzaMissionState, 0xb0)
// STUB: LEGO1 0x100393c0
MxResult PizzaMissionState::VTable0x1c(LegoFileStream* p_legoFileStream)
{
// TODO
return SUCCESS;
}
// FUNCTION: LEGO1 0x10039510
PizzaMissionStateEntry* PizzaMissionState::GetState(MxU8 p_id)
{

View File

@ -5,3 +5,10 @@ PizzeriaState::PizzeriaState()
{
// TODO
}
// STUB: LEGO1 0x10017da0
MxResult PizzeriaState::VTable0x1c(LegoFileStream* p_legoFileStream)
{
// TODO
return SUCCESS;
}

View File

@ -10,3 +10,10 @@ PoliceState::PoliceState()
m_unk0xc = 0;
m_unk0x8 = (rand() % 2 == 0) ? 501 : 500;
}
// STUB: LEGO1 0x1005e990
MxResult PoliceState::VTable0x1c(LegoFileStream* p_legoFileStream)
{
// TODO
return SUCCESS;
}

View File

@ -11,6 +11,13 @@ RaceState::RaceState()
// TODO
}
// STUB: LEGO1 0x10016140
MxResult RaceState::VTable0x1c(LegoFileStream* p_legoFileStream)
{
// TODO
return SUCCESS;
}
// FUNCTION: LEGO1 0x10016280
RaceStateEntry* RaceState::GetState(MxU8 p_id)
{