From 6e811c7971430dd675be9476378fdb553f432db3 Mon Sep 17 00:00:00 2001 From: jonschz Date: Tue, 11 Jun 2024 20:21:17 +0200 Subject: [PATCH] address review comments, part 1 [skip ci] --- LEGO1/lego/legoomni/include/legorace.h | 15 +++--- LEGO1/lego/legoomni/include/legostate.h | 6 +-- LEGO1/lego/legoomni/include/pizza.h | 46 +++++++++---------- LEGO1/lego/legoomni/src/actors/ambulance.cpp | 44 +++++++++--------- LEGO1/lego/legoomni/src/actors/pizza.cpp | 1 + LEGO1/lego/legoomni/src/actors/pizzeria.cpp | 2 - LEGO1/lego/legoomni/src/worlds/gasstation.cpp | 24 +++++----- LEGO1/lego/legoomni/src/worlds/hospital.cpp | 2 - 8 files changed, 66 insertions(+), 74 deletions(-) diff --git a/LEGO1/lego/legoomni/include/legorace.h b/LEGO1/lego/legoomni/include/legorace.h index 10ce4be0..2da68867 100644 --- a/LEGO1/lego/legoomni/include/legorace.h +++ b/LEGO1/lego/legoomni/include/legorace.h @@ -28,20 +28,19 @@ class RaceState : public LegoState { inline MxResult Serialize(LegoFile* p_legoFile) { if (p_legoFile->IsReadMode()) { - p_legoFile->Read(&m_id, 1); - p_legoFile->Read(&m_unk0x02, 2); - p_legoFile->Read(&m_score, 2); + p_legoFile->Read(&m_id, sizeof(m_id)); + p_legoFile->Read(&m_unk0x02, sizeof(m_unk0x02)); + p_legoFile->Read(&m_score, sizeof(m_score)); } else if (p_legoFile->IsWriteMode()) { - // A write variable needs to be used here, otherwise - // the compiler aggresively optimizes the function MxS8 id = m_id; - p_legoFile->Write(&id, 1); + p_legoFile->Write(&id, sizeof(id)); MxS16 unk0x02 = m_unk0x02; - p_legoFile->Write(&unk0x02, 2); + p_legoFile->Write(&unk0x02, sizeof(unk0x02)); MxS16 score = m_score; - p_legoFile->Write(&score, 2); + p_legoFile->Write(&score, sizeof(score)); } + return SUCCESS; } diff --git a/LEGO1/lego/legoomni/include/legostate.h b/LEGO1/lego/legoomni/include/legostate.h index 74cafe81..a63ce5eb 100644 --- a/LEGO1/lego/legoomni/include/legostate.h +++ b/LEGO1/lego/legoomni/include/legostate.h @@ -60,16 +60,14 @@ class LegoState : public MxCore { inline MxResult ReadFromFile(LegoFile* p_legoFile) { - p_legoFile->Read(&m_nextIndex, 2); + p_legoFile->Read(&m_nextIndex, sizeof(m_nextIndex)); return SUCCESS; } inline MxResult WriteToFile(LegoFile* p_legoFile) { - // A write variable needs to be used here, otherwise - // the compiler aggresively optimizes the function MxS16 write = m_nextIndex; - p_legoFile->Write(&write, 2); + p_legoFile->Write(&write, sizeof(write)); return SUCCESS; } diff --git a/LEGO1/lego/legoomni/include/pizza.h b/LEGO1/lego/legoomni/include/pizza.h index 8d2be82a..48d89c50 100644 --- a/LEGO1/lego/legoomni/include/pizza.h +++ b/LEGO1/lego/legoomni/include/pizza.h @@ -15,6 +15,28 @@ class PizzaMissionState : public LegoState { // SIZE 0x20 struct Entry { public: + inline MxResult WriteToFile(LegoFile* p_legoFile) + { + MxS16 unk0x06 = m_unk0x06; + p_legoFile->Write(&unk0x06, sizeof(unk0x06)); + MxS16 unk0x14 = m_unk0x14; + p_legoFile->Write(&unk0x14, sizeof(unk0x14)); + MxS16 unk0x16 = m_unk0x16; + p_legoFile->Write(&unk0x16, sizeof(unk0x16)); + MxS16 score = m_score; + p_legoFile->Write(&score, sizeof(score)); + return SUCCESS; + } + + inline MxResult ReadFromFile(LegoFile* p_legoFile) + { + p_legoFile->Read(&m_unk0x06, sizeof(m_unk0x06)); + p_legoFile->Read(&m_unk0x14, sizeof(m_unk0x14)); + p_legoFile->Read(&m_unk0x16, sizeof(m_unk0x16)); + p_legoFile->Read(&m_score, sizeof(m_score)); + return SUCCESS; + } + undefined2 m_unk0x00; // 0x00 MxU8 m_id; // 0x02 undefined m_unk0x03[3]; // 0x03 @@ -26,30 +48,6 @@ class PizzaMissionState : public LegoState { MxS16 m_unk0x16; // 0x16 MxS16 m_score; // 0x18 undefined m_unk0x1a[6]; // 0x1a - - inline MxResult WriteToFile(LegoFile* p_legoFile) - { - // A write variable needs to be used here, otherwise - // the compiler aggresively optimizes the function - MxS16 unk0x06 = m_unk0x06; - p_legoFile->Write(&unk0x06, 2); - MxS16 unk0x14 = m_unk0x14; - p_legoFile->Write(&unk0x14, 2); - MxS16 unk0x16 = m_unk0x16; - p_legoFile->Write(&unk0x16, 2); - MxS16 score = m_score; - p_legoFile->Write(&score, 2); - return SUCCESS; - } - - inline MxResult ReadFromFile(LegoFile* p_legoFile) - { - p_legoFile->Read(&m_unk0x06, 2); - p_legoFile->Read(&m_unk0x14, 2); - p_legoFile->Read(&m_unk0x16, 2); - p_legoFile->Read(&m_score, 2); - return SUCCESS; - } }; PizzaMissionState(); diff --git a/LEGO1/lego/legoomni/src/actors/ambulance.cpp b/LEGO1/lego/legoomni/src/actors/ambulance.cpp index acd5c148..3361f366 100644 --- a/LEGO1/lego/legoomni/src/actors/ambulance.cpp +++ b/LEGO1/lego/legoomni/src/actors/ambulance.cpp @@ -646,42 +646,42 @@ AmbulanceMissionState::AmbulanceMissionState() MxResult AmbulanceMissionState::Serialize(LegoFile* p_legoFile) { LegoState::Serialize(p_legoFile); + if (p_legoFile->IsReadMode()) { - p_legoFile->Read(&m_unk0x10, 2); - p_legoFile->Read(&m_unk0x12, 2); - p_legoFile->Read(&m_unk0x14, 2); - p_legoFile->Read(&m_unk0x16, 2); - p_legoFile->Read(&m_unk0x18, 2); - p_legoFile->Read(&m_score1, 2); - p_legoFile->Read(&m_score2, 2); - p_legoFile->Read(&m_score3, 2); - p_legoFile->Read(&m_score4, 2); - p_legoFile->Read(&m_score5, 2); + p_legoFile->Read(&m_unk0x10, sizeof(m_unk0x10)); + p_legoFile->Read(&m_unk0x12, sizeof(m_unk0x12)); + p_legoFile->Read(&m_unk0x14, sizeof(m_unk0x14)); + p_legoFile->Read(&m_unk0x16, sizeof(m_unk0x16)); + p_legoFile->Read(&m_unk0x18, sizeof(m_unk0x18)); + p_legoFile->Read(&m_score1, sizeof(m_score1)); + p_legoFile->Read(&m_score2, sizeof(m_score2)); + p_legoFile->Read(&m_score3, sizeof(m_score3)); + p_legoFile->Read(&m_score4, sizeof(m_score4)); + p_legoFile->Read(&m_score5, sizeof(m_score5)); } else if (p_legoFile->IsWriteMode()) { - // A write variable needs to be used here, otherwise - // the compiler aggresively optimizes the function MxS16 write; write = m_unk0x10; - p_legoFile->Write(&write, 2); + p_legoFile->Write(&write, sizeof(write)); write = m_unk0x12; - p_legoFile->Write(&write, 2); + p_legoFile->Write(&write, sizeof(write)); write = m_unk0x14; - p_legoFile->Write(&write, 2); + p_legoFile->Write(&write, sizeof(write)); write = m_unk0x16; - p_legoFile->Write(&write, 2); + p_legoFile->Write(&write, sizeof(write)); write = m_unk0x18; - p_legoFile->Write(&write, 2); + p_legoFile->Write(&write, sizeof(write)); write = m_score1; - p_legoFile->Write(&write, 2); + p_legoFile->Write(&write, sizeof(write)); write = m_score2; - p_legoFile->Write(&write, 2); + p_legoFile->Write(&write, sizeof(write)); write = m_score3; - p_legoFile->Write(&write, 2); + p_legoFile->Write(&write, sizeof(write)); write = m_score4; - p_legoFile->Write(&write, 2); + p_legoFile->Write(&write, sizeof(write)); write = m_score5; - p_legoFile->Write(&write, 2); + p_legoFile->Write(&write, sizeof(write)); } + return SUCCESS; } diff --git a/LEGO1/lego/legoomni/src/actors/pizza.cpp b/LEGO1/lego/legoomni/src/actors/pizza.cpp index a9d49aa5..b998ff60 100644 --- a/LEGO1/lego/legoomni/src/actors/pizza.cpp +++ b/LEGO1/lego/legoomni/src/actors/pizza.cpp @@ -120,6 +120,7 @@ MxResult PizzaMissionState::Serialize(LegoFile* p_legoFile) m_state[i].WriteToFile(p_legoFile); } } + return SUCCESS; } diff --git a/LEGO1/lego/legoomni/src/actors/pizzeria.cpp b/LEGO1/lego/legoomni/src/actors/pizzeria.cpp index 28162cf6..6659c368 100644 --- a/LEGO1/lego/legoomni/src/actors/pizzeria.cpp +++ b/LEGO1/lego/legoomni/src/actors/pizzeria.cpp @@ -86,8 +86,6 @@ MxResult PizzeriaState::Serialize(LegoFile* p_legoFile) } } else { - // A write variable needs to be used here, otherwise - // the compiler aggresively optimizes the function for (MxS16 i = 0; i < 5; i++) { m_unk0x08[i].WriteToFile(p_legoFile); } diff --git a/LEGO1/lego/legoomni/src/worlds/gasstation.cpp b/LEGO1/lego/legoomni/src/worlds/gasstation.cpp index 97356209..c20dde57 100644 --- a/LEGO1/lego/legoomni/src/worlds/gasstation.cpp +++ b/LEGO1/lego/legoomni/src/worlds/gasstation.cpp @@ -439,28 +439,28 @@ GasStationState::GasStationState() MxResult GasStationState::Serialize(LegoFile* p_legoFile) { LegoState::Serialize(p_legoFile); + if (p_legoFile->IsWriteMode()) { - // A write variable needs to be used here, otherwise - // the compiler aggresively optimizes the function MxS16 write; write = m_unk0x18; - p_legoFile->Write(&write, 2); + p_legoFile->Write(&write, sizeof(write)); write = m_unk0x1a; - p_legoFile->Write(&write, 2); + p_legoFile->Write(&write, sizeof(write)); write = m_unk0x1c; - p_legoFile->Write(&write, 2); + p_legoFile->Write(&write, sizeof(write)); write = m_unk0x1e; - p_legoFile->Write(&write, 2); + p_legoFile->Write(&write, sizeof(write)); write = m_unk0x20; - p_legoFile->Write(&write, 2); + p_legoFile->Write(&write, sizeof(write)); } else if (p_legoFile->IsReadMode()) { - p_legoFile->Read(&m_unk0x18, 2); - p_legoFile->Read(&m_unk0x1a, 2); - p_legoFile->Read(&m_unk0x1c, 2); - p_legoFile->Read(&m_unk0x1e, 2); - p_legoFile->Read(&m_unk0x20, 2); + p_legoFile->Read(&m_unk0x18, sizeof(m_unk0x18)); + p_legoFile->Read(&m_unk0x1a, sizeof(m_unk0x1a)); + p_legoFile->Read(&m_unk0x1c, sizeof(m_unk0x1c)); + p_legoFile->Read(&m_unk0x1e, sizeof(m_unk0x1e)); + p_legoFile->Read(&m_unk0x20, sizeof(m_unk0x20)); } + return SUCCESS; } diff --git a/LEGO1/lego/legoomni/src/worlds/hospital.cpp b/LEGO1/lego/legoomni/src/worlds/hospital.cpp index e08a39c6..47b6beed 100644 --- a/LEGO1/lego/legoomni/src/worlds/hospital.cpp +++ b/LEGO1/lego/legoomni/src/worlds/hospital.cpp @@ -689,8 +689,6 @@ MxResult HospitalState::Serialize(LegoFile* p_legoFile) LegoState::Serialize(p_legoFile); if (p_legoFile->IsWriteMode()) { - // A write variable needs to be used here, otherwise - // the compiler aggresively optimizes the function MxS16 write; write = m_unk0x0c;