diff --git a/LEGO1/lego/legoomni/include/beachhouseentity.h b/LEGO1/lego/legoomni/include/beachhouseentity.h index 0910f49e..662f6382 100644 --- a/LEGO1/lego/legoomni/include/beachhouseentity.h +++ b/LEGO1/lego/legoomni/include/beachhouseentity.h @@ -20,6 +20,9 @@ class BeachHouseEntity : public BuildingEntity { return !strcmp(p_name, BeachHouseEntity::ClassName()) || BuildingEntity::IsA(p_name); } + // STUB: LEGO1 0x100153b0 + MxLong VTable0x50(MxParam& p_param) override { return 0; } + // SYNTHETIC: LEGO1 0x1000f970 // BeachHouseEntity::`scalar deleting destructor' }; diff --git a/LEGO1/lego/legoomni/include/buildingentity.h b/LEGO1/lego/legoomni/include/buildingentity.h index d07d9f5d..57297558 100644 --- a/LEGO1/lego/legoomni/include/buildingentity.h +++ b/LEGO1/lego/legoomni/include/buildingentity.h @@ -25,6 +25,8 @@ class BuildingEntity : public LegoEntity { return !strcmp(p_name, BuildingEntity::ClassName()) || LegoEntity::IsA(p_name); } + virtual MxLong VTable0x50(MxParam& p_param) = 0; + // SYNTHETIC: LEGO1 0x10015010 // BuildingEntity::`scalar deleting destructor' }; diff --git a/LEGO1/lego/legoomni/include/gasstationentity.h b/LEGO1/lego/legoomni/include/gasstationentity.h index 0b271d46..776c3c00 100644 --- a/LEGO1/lego/legoomni/include/gasstationentity.h +++ b/LEGO1/lego/legoomni/include/gasstationentity.h @@ -20,6 +20,9 @@ class GasStationEntity : public BuildingEntity { return !strcmp(p_name, GasStationEntity::ClassName()) || BuildingEntity::IsA(p_name); } + // STUB: LEGO1 0x100151d0 + MxLong VTable0x50(MxParam& p_param) override { return 0; } + // SYNTHETIC: LEGO1 0x1000f890 // GasStationEntity::`scalar deleting destructor' }; diff --git a/LEGO1/lego/legoomni/include/hospitalentity.h b/LEGO1/lego/legoomni/include/hospitalentity.h index a837bd7b..2910916e 100644 --- a/LEGO1/lego/legoomni/include/hospitalentity.h +++ b/LEGO1/lego/legoomni/include/hospitalentity.h @@ -20,6 +20,9 @@ class HospitalEntity : public BuildingEntity { return !strcmp(p_name, HospitalEntity::ClassName()) || BuildingEntity::IsA(p_name); } + // STUB: LEGO1 0x10015270 + MxLong VTable0x50(MxParam& p_param) override { return 0; } + // SYNTHETIC: LEGO1 0x1000f820 // HospitalEntity::`scalar deleting destructor' }; diff --git a/LEGO1/lego/legoomni/include/infocenterentity.h b/LEGO1/lego/legoomni/include/infocenterentity.h index 85bcbce5..0584db7f 100644 --- a/LEGO1/lego/legoomni/include/infocenterentity.h +++ b/LEGO1/lego/legoomni/include/infocenterentity.h @@ -20,6 +20,9 @@ class InfoCenterEntity : public BuildingEntity { return !strcmp(p_name, InfoCenterEntity::ClassName()) || BuildingEntity::IsA(p_name); } + // STUB: LEGO1 0x100150c0 + MxLong VTable0x50(MxParam& p_param) override { return 0; } + // SYNTHETIC: LEGO1 0x1000f7b0 // InfoCenterEntity::`scalar deleting destructor' }; diff --git a/LEGO1/lego/legoomni/include/policeentity.h b/LEGO1/lego/legoomni/include/policeentity.h index acf0937b..726d47b8 100644 --- a/LEGO1/lego/legoomni/include/policeentity.h +++ b/LEGO1/lego/legoomni/include/policeentity.h @@ -20,6 +20,9 @@ class PoliceEntity : public BuildingEntity { return !strcmp(p_name, PoliceEntity::ClassName()) || BuildingEntity::IsA(p_name); } + // STUB: LEGO1 0x10015310 + MxLong VTable0x50(MxParam& p_param) override { return 0; } + // SYNTHETIC: LEGO1 0x1000f900 // PoliceEntity::`scalar deleting destructor' }; diff --git a/LEGO1/lego/legoomni/include/racestandsentity.h b/LEGO1/lego/legoomni/include/racestandsentity.h index 5b5b83e5..61c70bd0 100644 --- a/LEGO1/lego/legoomni/include/racestandsentity.h +++ b/LEGO1/lego/legoomni/include/racestandsentity.h @@ -19,6 +19,9 @@ class RaceStandsEntity : public BuildingEntity { return !strcmp(p_name, RaceStandsEntity::ClassName()) || BuildingEntity::IsA(p_name); } + // STUB: LEGO1 0x10015450 + MxLong VTable0x50(MxParam& p_param) override { return 0; } + // SYNTHETIC: LEGO1 0x1000f9e0 // RaceStandsEntity::`scalar deleting destructor' }; diff --git a/LEGO1/lego/legoomni/src/build/buildingentity.cpp b/LEGO1/lego/legoomni/src/build/buildingentity.cpp index 37b0a8d9..f8ff1a83 100644 --- a/LEGO1/lego/legoomni/src/build/buildingentity.cpp +++ b/LEGO1/lego/legoomni/src/build/buildingentity.cpp @@ -1,21 +1,26 @@ #include "buildingentity.h" -// STUB: LEGO1 0x10014e20 +#include "legoomni.h" +#include "mxnotificationmanager.h" + +// FUNCTION: LEGO1 0x10014e20 BuildingEntity::BuildingEntity() { - // TODO + NotificationManager()->Register(this); } -// STUB: LEGO1 0x10015030 +// FUNCTION: LEGO1 0x10015030 BuildingEntity::~BuildingEntity() { - // TODO + NotificationManager()->Unregister(this); } -// STUB: LEGO1 0x100150a0 +// FUNCTION: LEGO1 0x100150a0 MxLong BuildingEntity::Notify(MxParam& p_param) { - // TODO + if (((MxNotificationParam&) p_param).GetType() == c_notificationType11) { + return VTable0x50(p_param); + } return 0; }