mirror of
https://github.com/isledecomp/isle.git
synced 2026-01-24 08:41:16 +00:00
refactor: Remove Read/Write duplication
This commit is contained in:
parent
09c76008ad
commit
b7723c8a08
@ -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;
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -156,16 +156,4 @@ class LegoFile : public LegoStorage {
|
||||
FILE* m_file; // 0x08
|
||||
};
|
||||
|
||||
template <class T>
|
||||
inline void ReadFromStorage(LegoStorage* p_storage, T* p_variable, LegoU32 p_size = sizeof(T))
|
||||
{
|
||||
p_storage->Read(p_variable, p_size);
|
||||
}
|
||||
|
||||
template <class T>
|
||||
inline void WriteToStorage(LegoStorage* p_storage, T p_variable)
|
||||
{
|
||||
p_storage->Write(&p_variable, sizeof(T));
|
||||
}
|
||||
|
||||
#endif // __LEGOSTORAGE_H
|
||||
|
||||
Loading…
Reference in New Issue
Block a user