Order Ambulance

This commit is contained in:
Christian Semmler 2025-01-16 18:39:54 -07:00
parent e8c856c585
commit bafa411787
3 changed files with 50 additions and 55 deletions

View File

@ -334,12 +334,12 @@ function(add_lego_libraries NAME)
LEGO1/lego/legoomni/src/paths/legopathactor.cpp LEGO1/lego/legoomni/src/paths/legopathactor.cpp
LEGO1/lego/legoomni/src/common/legobuildingmanager.cpp LEGO1/lego/legoomni/src/common/legobuildingmanager.cpp
LEGO1/lego/legoomni/src/worlds/isle.cpp LEGO1/lego/legoomni/src/worlds/isle.cpp
LEGO1/lego/legoomni/src/actors/ambulance.cpp
LEGO1/lego/legoomni/src/actors/pizza.cpp
LEGO1/lego/legoomni/src/actors/motorcycle.cpp LEGO1/lego/legoomni/src/actors/motorcycle.cpp
LEGO1/lego/legoomni/src/actors/ambulance.cpp
LEGO1/lego/legoomni/src/worlds/infocenterdoor.cpp
LEGO1/lego/legoomni/src/actors/pizza.cpp
LEGO1/lego/legoomni/src/actors/act3ammo.cpp LEGO1/lego/legoomni/src/actors/act3ammo.cpp
LEGO1/lego/legoomni/src/audio/legocachesoundmanager.cpp LEGO1/lego/legoomni/src/audio/legocachesoundmanager.cpp
LEGO1/lego/legoomni/src/worlds/infocenterdoor.cpp
LEGO1/lego/legoomni/src/common/legogamestate.cpp LEGO1/lego/legoomni/src/common/legogamestate.cpp
LEGO1/lego/legoomni/src/common/legobackgroundcolor.cpp LEGO1/lego/legoomni/src/common/legobackgroundcolor.cpp
LEGO1/lego/legoomni/src/common/legofullscreenmovie.cpp LEGO1/lego/legoomni/src/common/legofullscreenmovie.cpp

View File

@ -13,21 +13,39 @@ class AmbulanceMissionState : public LegoState {
public: public:
AmbulanceMissionState(); AmbulanceMissionState();
// FUNCTION: LEGO1 0x10037600 // FUNCTION: LEGO1 0x10037440
// FUNCTION: BETA10 0x100246c0 // FUNCTION: BETA10 0x10024480
const char* ClassName() const override // vtable+0x0c MxResult Serialize(LegoStorage* p_storage) override
{ {
// STRING: LEGO1 0x100f00e8 LegoState::Serialize(p_storage);
return "AmbulanceMissionState";
}
// FUNCTION: LEGO1 0x10037610 if (p_storage->IsReadMode()) {
MxBool IsA(const char* p_name) const override // vtable+0x10 p_storage->ReadS16(m_peScore);
{ p_storage->ReadS16(m_maScore);
return !strcmp(p_name, AmbulanceMissionState::ClassName()) || LegoState::IsA(p_name); p_storage->ReadS16(m_paScore);
} p_storage->ReadS16(m_niScore);
p_storage->ReadS16(m_laScore);
p_storage->ReadS16(m_peHighScore);
p_storage->ReadS16(m_maHighScore);
p_storage->ReadS16(m_paHighScore);
p_storage->ReadS16(m_niHighScore);
p_storage->ReadS16(m_laHighScore);
}
else if (p_storage->IsWriteMode()) {
p_storage->WriteS16(m_peScore);
p_storage->WriteS16(m_maScore);
p_storage->WriteS16(m_paScore);
p_storage->WriteS16(m_niScore);
p_storage->WriteS16(m_laScore);
p_storage->WriteS16(m_peHighScore);
p_storage->WriteS16(m_maHighScore);
p_storage->WriteS16(m_paHighScore);
p_storage->WriteS16(m_niHighScore);
p_storage->WriteS16(m_laHighScore);
}
MxResult Serialize(LegoStorage* p_storage) override; // vtable+0x1c return SUCCESS;
} // vtable+0x1c
// FUNCTION: BETA10 0x10088770 // FUNCTION: BETA10 0x10088770
MxS16 GetHighScore(MxU8 p_actorId) MxS16 GetHighScore(MxU8 p_actorId)
@ -105,6 +123,20 @@ class AmbulanceMissionState : public LegoState {
MxS16 m_paHighScore; // 0x1e MxS16 m_paHighScore; // 0x1e
MxS16 m_niHighScore; // 0x20 MxS16 m_niHighScore; // 0x20
MxS16 m_laHighScore; // 0x22 MxS16 m_laHighScore; // 0x22
// FUNCTION: LEGO1 0x10037600
// FUNCTION: BETA10 0x100246c0
const char* ClassName() const override // vtable+0x0c
{
// STRING: LEGO1 0x100f00e8
return "AmbulanceMissionState";
}
// FUNCTION: LEGO1 0x10037610
MxBool IsA(const char* p_name) const override // vtable+0x10
{
return !strcmp(p_name, AmbulanceMissionState::ClassName()) || LegoState::IsA(p_name);
}
}; };
// VTABLE: LEGO1 0x100d71a8 // VTABLE: LEGO1 0x100d71a8
@ -118,6 +150,9 @@ class Ambulance : public IslePathActor {
MxLong Notify(MxParam& p_param) override; // vtable+0x04 MxLong Notify(MxParam& p_param) override; // vtable+0x04
MxResult Tickle() override; // vtable+0x08 MxResult Tickle() override; // vtable+0x08
// FUNCTION: LEGO1 0x10035f90
void Destroy(MxBool p_fromDestructor) override {} // vtable+0x1c
// FUNCTION: LEGO1 0x10035fa0 // FUNCTION: LEGO1 0x10035fa0
// FUNCTION: BETA10 0x100240b0 // FUNCTION: BETA10 0x100240b0
const char* ClassName() const override // vtable+0x0c const char* ClassName() const override // vtable+0x0c
@ -133,7 +168,6 @@ class Ambulance : public IslePathActor {
} }
MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18 MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18
void Destroy(MxBool p_fromDestructor) override; // vtable+0x1c
void Animate(float p_time) override; // vtable+0x70 void Animate(float p_time) override; // vtable+0x70
MxLong HandleClick() override; // vtable+0xcc MxLong HandleClick() override; // vtable+0xcc
MxLong HandleControl(LegoControlManagerNotificationParam& p_param) override; // vtable+0xd4 MxLong HandleControl(LegoControlManagerNotificationParam& p_param) override; // vtable+0xd4

View File

@ -46,11 +46,6 @@ Ambulance::Ambulance()
m_fuel = 1.0; m_fuel = 1.0;
} }
// FUNCTION: LEGO1 0x10035f90
void Ambulance::Destroy(MxBool p_fromDestructor)
{
}
// FUNCTION: LEGO1 0x10036150 // FUNCTION: LEGO1 0x10036150
// FUNCTION: BETA10 0x100228fe // FUNCTION: BETA10 0x100228fe
Ambulance::~Ambulance() Ambulance::~Ambulance()
@ -644,37 +639,3 @@ AmbulanceMissionState::AmbulanceMissionState()
m_niHighScore = 0; m_niHighScore = 0;
m_laHighScore = 0; m_laHighScore = 0;
} }
// FUNCTION: LEGO1 0x10037440
// FUNCTION: BETA10 0x10024480
MxResult AmbulanceMissionState::Serialize(LegoStorage* p_storage)
{
LegoState::Serialize(p_storage);
if (p_storage->IsReadMode()) {
p_storage->ReadS16(m_peScore);
p_storage->ReadS16(m_maScore);
p_storage->ReadS16(m_paScore);
p_storage->ReadS16(m_niScore);
p_storage->ReadS16(m_laScore);
p_storage->ReadS16(m_peHighScore);
p_storage->ReadS16(m_maHighScore);
p_storage->ReadS16(m_paHighScore);
p_storage->ReadS16(m_niHighScore);
p_storage->ReadS16(m_laHighScore);
}
else if (p_storage->IsWriteMode()) {
p_storage->WriteS16(m_peScore);
p_storage->WriteS16(m_maScore);
p_storage->WriteS16(m_paScore);
p_storage->WriteS16(m_niScore);
p_storage->WriteS16(m_laScore);
p_storage->WriteS16(m_peHighScore);
p_storage->WriteS16(m_maHighScore);
p_storage->WriteS16(m_paHighScore);
p_storage->WriteS16(m_niHighScore);
p_storage->WriteS16(m_laHighScore);
}
return SUCCESS;
}