From b7723c8a08c97233b1833cb78b199c9e6a0acac3 Mon Sep 17 00:00:00 2001 From: jonschz Date: Fri, 14 Jun 2024 09:07:23 +0200 Subject: [PATCH] refactor: Remove Read/Write duplication --- LEGO1/lego/legoomni/include/legorace.h | 12 +++--- LEGO1/lego/legoomni/include/legostate.h | 4 +- LEGO1/lego/legoomni/include/pizza.h | 16 ++++---- LEGO1/lego/legoomni/src/actors/ambulance.cpp | 40 +++++++++---------- LEGO1/lego/legoomni/src/actors/towtrack.cpp | 40 +++++++++---------- LEGO1/lego/legoomni/src/worlds/gasstation.cpp | 20 +++++----- LEGO1/lego/legoomni/src/worlds/hospital.cpp | 24 +++++------ LEGO1/lego/legoomni/src/worlds/isle.cpp | 8 ++-- LEGO1/lego/legoomni/src/worlds/police.cpp | 4 +- LEGO1/lego/sources/misc/legostorage.h | 12 ------ 10 files changed, 84 insertions(+), 96 deletions(-) diff --git a/LEGO1/lego/legoomni/include/legorace.h b/LEGO1/lego/legoomni/include/legorace.h index ba8ba20d..84d3689a 100644 --- a/LEGO1/lego/legoomni/include/legorace.h +++ b/LEGO1/lego/legoomni/include/legorace.h @@ -28,14 +28,14 @@ class RaceState : public LegoState { inline MxResult Serialize(LegoFile* p_file) { if (p_file->IsReadMode()) { - ReadFromStorage(p_file, &m_id); - ReadFromStorage(p_file, &m_unk0x02); - ReadFromStorage(p_file, &m_score); + Read(p_file, &m_id); + Read(p_file, &m_unk0x02); + Read(p_file, &m_score); } else if (p_file->IsWriteMode()) { - WriteToStorage(p_file, m_id); - WriteToStorage(p_file, m_unk0x02); - WriteToStorage(p_file, m_score); + Write(p_file, m_id); + Write(p_file, m_unk0x02); + Write(p_file, m_score); } return SUCCESS; diff --git a/LEGO1/lego/legoomni/include/legostate.h b/LEGO1/lego/legoomni/include/legostate.h index 3e2d77c7..766da110 100644 --- a/LEGO1/lego/legoomni/include/legostate.h +++ b/LEGO1/lego/legoomni/include/legostate.h @@ -60,13 +60,13 @@ class LegoState : public MxCore { inline MxResult ReadFromFile(LegoFile* p_file) { - ReadFromStorage(p_file, &m_nextIndex); + Read(p_file, &m_nextIndex); return SUCCESS; } inline MxResult WriteToFile(LegoFile* p_file) { - WriteToStorage(p_file, m_nextIndex); + Write(p_file, m_nextIndex); return SUCCESS; } diff --git a/LEGO1/lego/legoomni/include/pizza.h b/LEGO1/lego/legoomni/include/pizza.h index 52699e7a..433b6f0f 100644 --- a/LEGO1/lego/legoomni/include/pizza.h +++ b/LEGO1/lego/legoomni/include/pizza.h @@ -17,19 +17,19 @@ class PizzaMissionState : public LegoState { public: inline MxResult WriteToFile(LegoFile* p_file) { - WriteToStorage(p_file, m_unk0x06); - WriteToStorage(p_file, m_unk0x14); - WriteToStorage(p_file, m_unk0x16); - WriteToStorage(p_file, m_score); + Write(p_file, m_unk0x06); + Write(p_file, m_unk0x14); + Write(p_file, m_unk0x16); + Write(p_file, m_score); return SUCCESS; } inline MxResult ReadFromFile(LegoFile* p_file) { - ReadFromStorage(p_file, &m_unk0x06); - ReadFromStorage(p_file, &m_unk0x14); - ReadFromStorage(p_file, &m_unk0x16); - ReadFromStorage(p_file, &m_score); + Read(p_file, &m_unk0x06); + Read(p_file, &m_unk0x14); + Read(p_file, &m_unk0x16); + Read(p_file, &m_score); return SUCCESS; } diff --git a/LEGO1/lego/legoomni/src/actors/ambulance.cpp b/LEGO1/lego/legoomni/src/actors/ambulance.cpp index 0ccbcf5c..726e784b 100644 --- a/LEGO1/lego/legoomni/src/actors/ambulance.cpp +++ b/LEGO1/lego/legoomni/src/actors/ambulance.cpp @@ -648,29 +648,29 @@ MxResult AmbulanceMissionState::Serialize(LegoFile* p_file) LegoState::Serialize(p_file); if (p_file->IsReadMode()) { - ReadFromStorage(p_file, &m_unk0x10); - ReadFromStorage(p_file, &m_unk0x12); - ReadFromStorage(p_file, &m_unk0x14); - ReadFromStorage(p_file, &m_unk0x16); - ReadFromStorage(p_file, &m_unk0x18); - ReadFromStorage(p_file, &m_score1); - ReadFromStorage(p_file, &m_score2); - ReadFromStorage(p_file, &m_score3); - ReadFromStorage(p_file, &m_score4); - ReadFromStorage(p_file, &m_score5); + Read(p_file, &m_unk0x10); + Read(p_file, &m_unk0x12); + Read(p_file, &m_unk0x14); + Read(p_file, &m_unk0x16); + Read(p_file, &m_unk0x18); + Read(p_file, &m_score1); + Read(p_file, &m_score2); + Read(p_file, &m_score3); + Read(p_file, &m_score4); + Read(p_file, &m_score5); } else if (p_file->IsWriteMode()) { MxS16 write; - WriteToStorage(p_file, m_unk0x10); - WriteToStorage(p_file, m_unk0x12); - WriteToStorage(p_file, m_unk0x14); - WriteToStorage(p_file, m_unk0x16); - WriteToStorage(p_file, m_unk0x18); - WriteToStorage(p_file, m_score1); - WriteToStorage(p_file, m_score2); - WriteToStorage(p_file, m_score3); - WriteToStorage(p_file, m_score4); - WriteToStorage(p_file, m_score5); + Write(p_file, m_unk0x10); + Write(p_file, m_unk0x12); + Write(p_file, m_unk0x14); + Write(p_file, m_unk0x16); + Write(p_file, m_unk0x18); + Write(p_file, m_score1); + Write(p_file, m_score2); + Write(p_file, m_score3); + Write(p_file, m_score4); + Write(p_file, m_score5); } return SUCCESS; diff --git a/LEGO1/lego/legoomni/src/actors/towtrack.cpp b/LEGO1/lego/legoomni/src/actors/towtrack.cpp index bf92ec79..ba51a309 100644 --- a/LEGO1/lego/legoomni/src/actors/towtrack.cpp +++ b/LEGO1/lego/legoomni/src/actors/towtrack.cpp @@ -163,28 +163,28 @@ MxResult TowTrackMissionState::Serialize(LegoFile* p_file) LegoState::Serialize(p_file); if (p_file->IsReadMode()) { - ReadFromStorage(p_file, &m_unk0x12); - ReadFromStorage(p_file, &m_unk0x14); - ReadFromStorage(p_file, &m_unk0x16); - ReadFromStorage(p_file, &m_unk0x18); - ReadFromStorage(p_file, &m_unk0x1a); - ReadFromStorage(p_file, &m_score1); - ReadFromStorage(p_file, &m_score2); - ReadFromStorage(p_file, &m_score3); - ReadFromStorage(p_file, &m_score4); - ReadFromStorage(p_file, &m_score5); + Read(p_file, &m_unk0x12); + Read(p_file, &m_unk0x14); + Read(p_file, &m_unk0x16); + Read(p_file, &m_unk0x18); + Read(p_file, &m_unk0x1a); + Read(p_file, &m_score1); + Read(p_file, &m_score2); + Read(p_file, &m_score3); + Read(p_file, &m_score4); + Read(p_file, &m_score5); } else if (p_file->IsWriteMode()) { - WriteToStorage(p_file, m_unk0x12); - WriteToStorage(p_file, m_unk0x14); - WriteToStorage(p_file, m_unk0x16); - WriteToStorage(p_file, m_unk0x18); - WriteToStorage(p_file, m_unk0x1a); - WriteToStorage(p_file, m_score1); - WriteToStorage(p_file, m_score2); - WriteToStorage(p_file, m_score3); - WriteToStorage(p_file, m_score4); - WriteToStorage(p_file, m_score5); + Write(p_file, m_unk0x12); + Write(p_file, m_unk0x14); + Write(p_file, m_unk0x16); + Write(p_file, m_unk0x18); + Write(p_file, m_unk0x1a); + Write(p_file, m_score1); + Write(p_file, m_score2); + Write(p_file, m_score3); + Write(p_file, m_score4); + Write(p_file, m_score5); } return SUCCESS; diff --git a/LEGO1/lego/legoomni/src/worlds/gasstation.cpp b/LEGO1/lego/legoomni/src/worlds/gasstation.cpp index a25c2554..aadf6b1c 100644 --- a/LEGO1/lego/legoomni/src/worlds/gasstation.cpp +++ b/LEGO1/lego/legoomni/src/worlds/gasstation.cpp @@ -441,18 +441,18 @@ MxResult GasStationState::Serialize(LegoFile* p_file) LegoState::Serialize(p_file); if (p_file->IsWriteMode()) { - WriteToStorage(p_file, m_unk0x18); - WriteToStorage(p_file, m_unk0x1a); - WriteToStorage(p_file, m_unk0x1c); - WriteToStorage(p_file, m_unk0x1e); - WriteToStorage(p_file, m_unk0x20); + Write(p_file, m_unk0x18); + Write(p_file, m_unk0x1a); + Write(p_file, m_unk0x1c); + Write(p_file, m_unk0x1e); + Write(p_file, m_unk0x20); } else if (p_file->IsReadMode()) { - ReadFromStorage(p_file, &m_unk0x18); - ReadFromStorage(p_file, &m_unk0x1a); - ReadFromStorage(p_file, &m_unk0x1c); - ReadFromStorage(p_file, &m_unk0x1e); - ReadFromStorage(p_file, &m_unk0x20); + Read(p_file, &m_unk0x18); + Read(p_file, &m_unk0x1a); + Read(p_file, &m_unk0x1c); + Read(p_file, &m_unk0x1e); + Read(p_file, &m_unk0x20); } return SUCCESS; diff --git a/LEGO1/lego/legoomni/src/worlds/hospital.cpp b/LEGO1/lego/legoomni/src/worlds/hospital.cpp index 2e384cd5..f29fe3df 100644 --- a/LEGO1/lego/legoomni/src/worlds/hospital.cpp +++ b/LEGO1/lego/legoomni/src/worlds/hospital.cpp @@ -689,20 +689,20 @@ MxResult HospitalState::Serialize(LegoFile* p_file) LegoState::Serialize(p_file); if (p_file->IsWriteMode()) { - WriteToStorage(p_file, m_unk0x0c); - WriteToStorage(p_file, m_unk0x0e); - WriteToStorage(p_file, m_unk0x10); - WriteToStorage(p_file, m_unk0x12); - WriteToStorage(p_file, m_unk0x14); - WriteToStorage(p_file, m_unk0x16); + Write(p_file, m_unk0x0c); + Write(p_file, m_unk0x0e); + Write(p_file, m_unk0x10); + Write(p_file, m_unk0x12); + Write(p_file, m_unk0x14); + Write(p_file, m_unk0x16); } else if (p_file->IsReadMode()) { - ReadFromStorage(p_file, &m_unk0x0c); - ReadFromStorage(p_file, &m_unk0x0e); - ReadFromStorage(p_file, &m_unk0x10); - ReadFromStorage(p_file, &m_unk0x12); - ReadFromStorage(p_file, &m_unk0x14); - ReadFromStorage(p_file, &m_unk0x16); + Read(p_file, &m_unk0x0c); + Read(p_file, &m_unk0x0e); + Read(p_file, &m_unk0x10); + Read(p_file, &m_unk0x12); + Read(p_file, &m_unk0x14); + Read(p_file, &m_unk0x16); } return SUCCESS; diff --git a/LEGO1/lego/legoomni/src/worlds/isle.cpp b/LEGO1/lego/legoomni/src/worlds/isle.cpp index 2cac6562..b542afac 100644 --- a/LEGO1/lego/legoomni/src/worlds/isle.cpp +++ b/LEGO1/lego/legoomni/src/worlds/isle.cpp @@ -1390,8 +1390,8 @@ MxResult Act1State::Serialize(LegoFile* p_file) } } - WriteToStorage(p_file, m_unk0x010); - WriteToStorage(p_file, m_unk0x022); + Write(p_file, m_unk0x010); + Write(p_file, m_unk0x022); } else if (p_file->IsReadMode()) { if (m_unk0x108.GetName()->Compare("") != 0) { @@ -1444,8 +1444,8 @@ MxResult Act1State::Serialize(LegoFile* p_file) } } - ReadFromStorage(p_file, &m_unk0x010); - ReadFromStorage(p_file, &m_unk0x022); + Read(p_file, &m_unk0x010); + Read(p_file, &m_unk0x022); } // TODO diff --git a/LEGO1/lego/legoomni/src/worlds/police.cpp b/LEGO1/lego/legoomni/src/worlds/police.cpp index e1d129e6..1af480a8 100644 --- a/LEGO1/lego/legoomni/src/worlds/police.cpp +++ b/LEGO1/lego/legoomni/src/worlds/police.cpp @@ -211,10 +211,10 @@ MxResult PoliceState::Serialize(LegoFile* p_file) LegoState::Serialize(p_file); if (p_file->IsReadMode()) { - ReadFromStorage(p_file, &m_policeScript); + Read(p_file, &m_policeScript); } else { - WriteToStorage(p_file, m_policeScript); + Write(p_file, m_policeScript); } return SUCCESS; diff --git a/LEGO1/lego/sources/misc/legostorage.h b/LEGO1/lego/sources/misc/legostorage.h index e4513aa1..5934617b 100644 --- a/LEGO1/lego/sources/misc/legostorage.h +++ b/LEGO1/lego/sources/misc/legostorage.h @@ -156,16 +156,4 @@ class LegoFile : public LegoStorage { FILE* m_file; // 0x08 }; -template -inline void ReadFromStorage(LegoStorage* p_storage, T* p_variable, LegoU32 p_size = sizeof(T)) -{ - p_storage->Read(p_variable, p_size); -} - -template -inline void WriteToStorage(LegoStorage* p_storage, T p_variable) -{ - p_storage->Write(&p_variable, sizeof(T)); -} - #endif // __LEGOSTORAGE_H