From bafa4117870d29ae79f3fb6a0bda152932f2acef Mon Sep 17 00:00:00 2001 From: Christian Semmler Date: Thu, 16 Jan 2025 18:39:54 -0700 Subject: [PATCH] Order `Ambulance` --- CMakeLists.txt | 6 +- LEGO1/lego/legoomni/include/ambulance.h | 60 +++++++++++++++----- LEGO1/lego/legoomni/src/actors/ambulance.cpp | 39 ------------- 3 files changed, 50 insertions(+), 55 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 2fc4a4ca..f3455b11 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -334,12 +334,12 @@ function(add_lego_libraries NAME) LEGO1/lego/legoomni/src/paths/legopathactor.cpp LEGO1/lego/legoomni/src/common/legobuildingmanager.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/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/audio/legocachesoundmanager.cpp - LEGO1/lego/legoomni/src/worlds/infocenterdoor.cpp LEGO1/lego/legoomni/src/common/legogamestate.cpp LEGO1/lego/legoomni/src/common/legobackgroundcolor.cpp LEGO1/lego/legoomni/src/common/legofullscreenmovie.cpp diff --git a/LEGO1/lego/legoomni/include/ambulance.h b/LEGO1/lego/legoomni/include/ambulance.h index 7bb1fd3f..e6a66f2c 100644 --- a/LEGO1/lego/legoomni/include/ambulance.h +++ b/LEGO1/lego/legoomni/include/ambulance.h @@ -13,21 +13,39 @@ class AmbulanceMissionState : public LegoState { public: AmbulanceMissionState(); - // FUNCTION: LEGO1 0x10037600 - // FUNCTION: BETA10 0x100246c0 - const char* ClassName() const override // vtable+0x0c + // FUNCTION: LEGO1 0x10037440 + // FUNCTION: BETA10 0x10024480 + MxResult Serialize(LegoStorage* p_storage) override { - // STRING: LEGO1 0x100f00e8 - return "AmbulanceMissionState"; - } + LegoState::Serialize(p_storage); - // FUNCTION: LEGO1 0x10037610 - MxBool IsA(const char* p_name) const override // vtable+0x10 - { - return !strcmp(p_name, AmbulanceMissionState::ClassName()) || LegoState::IsA(p_name); - } + 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); + } - MxResult Serialize(LegoStorage* p_storage) override; // vtable+0x1c + return SUCCESS; + } // vtable+0x1c // FUNCTION: BETA10 0x10088770 MxS16 GetHighScore(MxU8 p_actorId) @@ -105,6 +123,20 @@ class AmbulanceMissionState : public LegoState { MxS16 m_paHighScore; // 0x1e MxS16 m_niHighScore; // 0x20 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 @@ -118,6 +150,9 @@ class Ambulance : public IslePathActor { MxLong Notify(MxParam& p_param) override; // vtable+0x04 MxResult Tickle() override; // vtable+0x08 + // FUNCTION: LEGO1 0x10035f90 + void Destroy(MxBool p_fromDestructor) override {} // vtable+0x1c + // FUNCTION: LEGO1 0x10035fa0 // FUNCTION: BETA10 0x100240b0 const char* ClassName() const override // vtable+0x0c @@ -133,7 +168,6 @@ class Ambulance : public IslePathActor { } MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18 - void Destroy(MxBool p_fromDestructor) override; // vtable+0x1c void Animate(float p_time) override; // vtable+0x70 MxLong HandleClick() override; // vtable+0xcc MxLong HandleControl(LegoControlManagerNotificationParam& p_param) override; // vtable+0xd4 diff --git a/LEGO1/lego/legoomni/src/actors/ambulance.cpp b/LEGO1/lego/legoomni/src/actors/ambulance.cpp index ca2c0ddb..4eddcaa2 100644 --- a/LEGO1/lego/legoomni/src/actors/ambulance.cpp +++ b/LEGO1/lego/legoomni/src/actors/ambulance.cpp @@ -46,11 +46,6 @@ Ambulance::Ambulance() m_fuel = 1.0; } -// FUNCTION: LEGO1 0x10035f90 -void Ambulance::Destroy(MxBool p_fromDestructor) -{ -} - // FUNCTION: LEGO1 0x10036150 // FUNCTION: BETA10 0x100228fe Ambulance::~Ambulance() @@ -644,37 +639,3 @@ AmbulanceMissionState::AmbulanceMissionState() m_niHighScore = 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; -}