diff --git a/LEGO1/lego/legoomni/include/act1state.h b/LEGO1/lego/legoomni/include/act1state.h index 82e95f63..4babf08a 100644 --- a/LEGO1/lego/legoomni/include/act1state.h +++ b/LEGO1/lego/legoomni/include/act1state.h @@ -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; } diff --git a/LEGO1/lego/legoomni/include/gasstationstate.h b/LEGO1/lego/legoomni/include/gasstationstate.h index 0cdf7bf1..4f77e307 100644 --- a/LEGO1/lego/legoomni/include/gasstationstate.h +++ b/LEGO1/lego/legoomni/include/gasstationstate.h @@ -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' diff --git a/LEGO1/lego/legoomni/include/helicopterstate.h b/LEGO1/lego/legoomni/include/helicopterstate.h index 41dcf84b..eb104c93 100644 --- a/LEGO1/lego/legoomni/include/helicopterstate.h +++ b/LEGO1/lego/legoomni/include/helicopterstate.h @@ -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; } diff --git a/LEGO1/lego/legoomni/include/legoact2state.h b/LEGO1/lego/legoomni/include/legoact2state.h index 2f8a2e79..b2ae4b7e 100644 --- a/LEGO1/lego/legoomni/include/legoact2state.h +++ b/LEGO1/lego/legoomni/include/legoact2state.h @@ -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' }; diff --git a/LEGO1/lego/legoomni/include/legovehiclebuildstate.h b/LEGO1/lego/legoomni/include/legovehiclebuildstate.h index f441dfad..8deed7a5 100644 --- a/LEGO1/lego/legoomni/include/legovehiclebuildstate.h +++ b/LEGO1/lego/legoomni/include/legovehiclebuildstate.h @@ -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' diff --git a/LEGO1/lego/legoomni/include/pizzamissionstate.h b/LEGO1/lego/legoomni/include/pizzamissionstate.h index 76690a99..e3867728 100644 --- a/LEGO1/lego/legoomni/include/pizzamissionstate.h +++ b/LEGO1/lego/legoomni/include/pizzamissionstate.h @@ -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 diff --git a/LEGO1/lego/legoomni/include/pizzeriastate.h b/LEGO1/lego/legoomni/include/pizzeriastate.h index 188ee624..402981ff 100644 --- a/LEGO1/lego/legoomni/include/pizzeriastate.h +++ b/LEGO1/lego/legoomni/include/pizzeriastate.h @@ -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' }; diff --git a/LEGO1/lego/legoomni/include/policestate.h b/LEGO1/lego/legoomni/include/policestate.h index be55ecae..976588a3 100644 --- a/LEGO1/lego/legoomni/include/policestate.h +++ b/LEGO1/lego/legoomni/include/policestate.h @@ -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' diff --git a/LEGO1/lego/legoomni/include/racestate.h b/LEGO1/lego/legoomni/include/racestate.h index 05760e32..bfae3525 100644 --- a/LEGO1/lego/legoomni/include/racestate.h +++ b/LEGO1/lego/legoomni/include/racestate.h @@ -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 diff --git a/LEGO1/lego/legoomni/include/radiostate.h b/LEGO1/lego/legoomni/include/radiostate.h index 1035a659..68dc154a 100644 --- a/LEGO1/lego/legoomni/include/radiostate.h +++ b/LEGO1/lego/legoomni/include/radiostate.h @@ -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' }; diff --git a/LEGO1/lego/legoomni/src/act1/act1state.cpp b/LEGO1/lego/legoomni/src/act1/act1state.cpp index 17f09277..6a36e3c3 100644 --- a/LEGO1/lego/legoomni/src/act1/act1state.cpp +++ b/LEGO1/lego/legoomni/src/act1/act1state.cpp @@ -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() { diff --git a/LEGO1/lego/legoomni/src/act2/legoact2state.cpp b/LEGO1/lego/legoomni/src/act2/legoact2state.cpp index 1ca6a144..46b09a93 100644 --- a/LEGO1/lego/legoomni/src/act2/legoact2state.cpp +++ b/LEGO1/lego/legoomni/src/act2/legoact2state.cpp @@ -1 +1,8 @@ #include "legoact2state.h" + +// STUB: LEGO1 0x1000df70 +MxBool LegoAct2State::VTable0x14() +{ + // TODO + return FALSE; +} diff --git a/LEGO1/lego/legoomni/src/build/helicopterstate.cpp b/LEGO1/lego/legoomni/src/build/helicopterstate.cpp index 70d71a0c..368edfad 100644 --- a/LEGO1/lego/legoomni/src/build/helicopterstate.cpp +++ b/LEGO1/lego/legoomni/src/build/helicopterstate.cpp @@ -1 +1,15 @@ #include "helicopterstate.h" + +// STUB: LEGO1 0x1000e0b0 +MxBool HelicopterState::VTable0x14() +{ + // TODO + return FALSE; +} + +// STUB: LEGO1 0x1000e0c0 +MxBool HelicopterState::SetFlag() +{ + // TODO + return FALSE; +} diff --git a/LEGO1/lego/legoomni/src/build/legovehiclebuildstate.cpp b/LEGO1/lego/legoomni/src/build/legovehiclebuildstate.cpp index b0dccde2..df9a0de6 100644 --- a/LEGO1/lego/legoomni/src/build/legovehiclebuildstate.cpp +++ b/LEGO1/lego/legoomni/src/build/legovehiclebuildstate.cpp @@ -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; +} diff --git a/LEGO1/lego/legoomni/src/gasstation/gasstationstate.cpp b/LEGO1/lego/legoomni/src/gasstation/gasstationstate.cpp index b4ec4dfd..5bbcdde6 100644 --- a/LEGO1/lego/legoomni/src/gasstation/gasstationstate.cpp +++ b/LEGO1/lego/legoomni/src/gasstation/gasstationstate.cpp @@ -16,3 +16,10 @@ GasStationState::GasStationState() unk0x08[1] = -1; unk0x08[2] = -1; } + +// STUB: LEGO1 0x10006300 +MxResult GasStationState::VTable0x1c(LegoFileStream* p_legoFileStream) +{ + // TODO + return SUCCESS; +} diff --git a/LEGO1/lego/legoomni/src/isle/radiostate.cpp b/LEGO1/lego/legoomni/src/isle/radiostate.cpp index 012eea68..08aa91fa 100644 --- a/LEGO1/lego/legoomni/src/isle/radiostate.cpp +++ b/LEGO1/lego/legoomni/src/isle/radiostate.cpp @@ -5,3 +5,10 @@ RadioState::RadioState() { // TODO } + +// STUB: LEGO1 0x1002cf50 +MxBool RadioState::VTable0x14() +{ + // TODO + return FALSE; +} diff --git a/LEGO1/lego/legoomni/src/pizzeria/pizzamissionstate.cpp b/LEGO1/lego/legoomni/src/pizzeria/pizzamissionstate.cpp index a7aa59b4..6fb460a1 100644 --- a/LEGO1/lego/legoomni/src/pizzeria/pizzamissionstate.cpp +++ b/LEGO1/lego/legoomni/src/pizzeria/pizzamissionstate.cpp @@ -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) { diff --git a/LEGO1/lego/legoomni/src/pizzeria/pizzeriastate.cpp b/LEGO1/lego/legoomni/src/pizzeria/pizzeriastate.cpp index ea54a028..3422c68d 100644 --- a/LEGO1/lego/legoomni/src/pizzeria/pizzeriastate.cpp +++ b/LEGO1/lego/legoomni/src/pizzeria/pizzeriastate.cpp @@ -5,3 +5,10 @@ PizzeriaState::PizzeriaState() { // TODO } + +// STUB: LEGO1 0x10017da0 +MxResult PizzeriaState::VTable0x1c(LegoFileStream* p_legoFileStream) +{ + // TODO + return SUCCESS; +} diff --git a/LEGO1/lego/legoomni/src/police/policestate.cpp b/LEGO1/lego/legoomni/src/police/policestate.cpp index 4965a36f..8c32b968 100644 --- a/LEGO1/lego/legoomni/src/police/policestate.cpp +++ b/LEGO1/lego/legoomni/src/police/policestate.cpp @@ -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; +} diff --git a/LEGO1/lego/legoomni/src/race/racestate.cpp b/LEGO1/lego/legoomni/src/race/racestate.cpp index 4776f97c..bdc003f0 100644 --- a/LEGO1/lego/legoomni/src/race/racestate.cpp +++ b/LEGO1/lego/legoomni/src/race/racestate.cpp @@ -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) {