address review comments, part 1 [skip ci]

This commit is contained in:
jonschz 2024-06-11 20:21:17 +02:00
parent 7dc241176e
commit 6e811c7971
8 changed files with 66 additions and 74 deletions

View File

@ -28,20 +28,19 @@ class RaceState : public LegoState {
inline MxResult Serialize(LegoFile* p_legoFile) inline MxResult Serialize(LegoFile* p_legoFile)
{ {
if (p_legoFile->IsReadMode()) { if (p_legoFile->IsReadMode()) {
p_legoFile->Read(&m_id, 1); p_legoFile->Read(&m_id, sizeof(m_id));
p_legoFile->Read(&m_unk0x02, 2); p_legoFile->Read(&m_unk0x02, sizeof(m_unk0x02));
p_legoFile->Read(&m_score, 2); p_legoFile->Read(&m_score, sizeof(m_score));
} }
else if (p_legoFile->IsWriteMode()) { else if (p_legoFile->IsWriteMode()) {
// A write variable needs to be used here, otherwise
// the compiler aggresively optimizes the function
MxS8 id = m_id; MxS8 id = m_id;
p_legoFile->Write(&id, 1); p_legoFile->Write(&id, sizeof(id));
MxS16 unk0x02 = m_unk0x02; MxS16 unk0x02 = m_unk0x02;
p_legoFile->Write(&unk0x02, 2); p_legoFile->Write(&unk0x02, sizeof(unk0x02));
MxS16 score = m_score; MxS16 score = m_score;
p_legoFile->Write(&score, 2); p_legoFile->Write(&score, sizeof(score));
} }
return SUCCESS; return SUCCESS;
} }

View File

@ -60,16 +60,14 @@ class LegoState : public MxCore {
inline MxResult ReadFromFile(LegoFile* p_legoFile) inline MxResult ReadFromFile(LegoFile* p_legoFile)
{ {
p_legoFile->Read(&m_nextIndex, 2); p_legoFile->Read(&m_nextIndex, sizeof(m_nextIndex));
return SUCCESS; return SUCCESS;
} }
inline MxResult WriteToFile(LegoFile* p_legoFile) 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; MxS16 write = m_nextIndex;
p_legoFile->Write(&write, 2); p_legoFile->Write(&write, sizeof(write));
return SUCCESS; return SUCCESS;
} }

View File

@ -15,6 +15,28 @@ class PizzaMissionState : public LegoState {
// SIZE 0x20 // SIZE 0x20
struct Entry { struct Entry {
public: 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 undefined2 m_unk0x00; // 0x00
MxU8 m_id; // 0x02 MxU8 m_id; // 0x02
undefined m_unk0x03[3]; // 0x03 undefined m_unk0x03[3]; // 0x03
@ -26,30 +48,6 @@ class PizzaMissionState : public LegoState {
MxS16 m_unk0x16; // 0x16 MxS16 m_unk0x16; // 0x16
MxS16 m_score; // 0x18 MxS16 m_score; // 0x18
undefined m_unk0x1a[6]; // 0x1a 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(); PizzaMissionState();

View File

@ -646,42 +646,42 @@ AmbulanceMissionState::AmbulanceMissionState()
MxResult AmbulanceMissionState::Serialize(LegoFile* p_legoFile) MxResult AmbulanceMissionState::Serialize(LegoFile* p_legoFile)
{ {
LegoState::Serialize(p_legoFile); LegoState::Serialize(p_legoFile);
if (p_legoFile->IsReadMode()) { if (p_legoFile->IsReadMode()) {
p_legoFile->Read(&m_unk0x10, 2); p_legoFile->Read(&m_unk0x10, sizeof(m_unk0x10));
p_legoFile->Read(&m_unk0x12, 2); p_legoFile->Read(&m_unk0x12, sizeof(m_unk0x12));
p_legoFile->Read(&m_unk0x14, 2); p_legoFile->Read(&m_unk0x14, sizeof(m_unk0x14));
p_legoFile->Read(&m_unk0x16, 2); p_legoFile->Read(&m_unk0x16, sizeof(m_unk0x16));
p_legoFile->Read(&m_unk0x18, 2); p_legoFile->Read(&m_unk0x18, sizeof(m_unk0x18));
p_legoFile->Read(&m_score1, 2); p_legoFile->Read(&m_score1, sizeof(m_score1));
p_legoFile->Read(&m_score2, 2); p_legoFile->Read(&m_score2, sizeof(m_score2));
p_legoFile->Read(&m_score3, 2); p_legoFile->Read(&m_score3, sizeof(m_score3));
p_legoFile->Read(&m_score4, 2); p_legoFile->Read(&m_score4, sizeof(m_score4));
p_legoFile->Read(&m_score5, 2); p_legoFile->Read(&m_score5, sizeof(m_score5));
} }
else if (p_legoFile->IsWriteMode()) { else if (p_legoFile->IsWriteMode()) {
// A write variable needs to be used here, otherwise
// the compiler aggresively optimizes the function
MxS16 write; MxS16 write;
write = m_unk0x10; write = m_unk0x10;
p_legoFile->Write(&write, 2); p_legoFile->Write(&write, sizeof(write));
write = m_unk0x12; write = m_unk0x12;
p_legoFile->Write(&write, 2); p_legoFile->Write(&write, sizeof(write));
write = m_unk0x14; write = m_unk0x14;
p_legoFile->Write(&write, 2); p_legoFile->Write(&write, sizeof(write));
write = m_unk0x16; write = m_unk0x16;
p_legoFile->Write(&write, 2); p_legoFile->Write(&write, sizeof(write));
write = m_unk0x18; write = m_unk0x18;
p_legoFile->Write(&write, 2); p_legoFile->Write(&write, sizeof(write));
write = m_score1; write = m_score1;
p_legoFile->Write(&write, 2); p_legoFile->Write(&write, sizeof(write));
write = m_score2; write = m_score2;
p_legoFile->Write(&write, 2); p_legoFile->Write(&write, sizeof(write));
write = m_score3; write = m_score3;
p_legoFile->Write(&write, 2); p_legoFile->Write(&write, sizeof(write));
write = m_score4; write = m_score4;
p_legoFile->Write(&write, 2); p_legoFile->Write(&write, sizeof(write));
write = m_score5; write = m_score5;
p_legoFile->Write(&write, 2); p_legoFile->Write(&write, sizeof(write));
} }
return SUCCESS; return SUCCESS;
} }

View File

@ -120,6 +120,7 @@ MxResult PizzaMissionState::Serialize(LegoFile* p_legoFile)
m_state[i].WriteToFile(p_legoFile); m_state[i].WriteToFile(p_legoFile);
} }
} }
return SUCCESS; return SUCCESS;
} }

View File

@ -86,8 +86,6 @@ MxResult PizzeriaState::Serialize(LegoFile* p_legoFile)
} }
} }
else { else {
// A write variable needs to be used here, otherwise
// the compiler aggresively optimizes the function
for (MxS16 i = 0; i < 5; i++) { for (MxS16 i = 0; i < 5; i++) {
m_unk0x08[i].WriteToFile(p_legoFile); m_unk0x08[i].WriteToFile(p_legoFile);
} }

View File

@ -439,28 +439,28 @@ GasStationState::GasStationState()
MxResult GasStationState::Serialize(LegoFile* p_legoFile) MxResult GasStationState::Serialize(LegoFile* p_legoFile)
{ {
LegoState::Serialize(p_legoFile); LegoState::Serialize(p_legoFile);
if (p_legoFile->IsWriteMode()) { if (p_legoFile->IsWriteMode()) {
// A write variable needs to be used here, otherwise
// the compiler aggresively optimizes the function
MxS16 write; MxS16 write;
write = m_unk0x18; write = m_unk0x18;
p_legoFile->Write(&write, 2); p_legoFile->Write(&write, sizeof(write));
write = m_unk0x1a; write = m_unk0x1a;
p_legoFile->Write(&write, 2); p_legoFile->Write(&write, sizeof(write));
write = m_unk0x1c; write = m_unk0x1c;
p_legoFile->Write(&write, 2); p_legoFile->Write(&write, sizeof(write));
write = m_unk0x1e; write = m_unk0x1e;
p_legoFile->Write(&write, 2); p_legoFile->Write(&write, sizeof(write));
write = m_unk0x20; write = m_unk0x20;
p_legoFile->Write(&write, 2); p_legoFile->Write(&write, sizeof(write));
} }
else if (p_legoFile->IsReadMode()) { else if (p_legoFile->IsReadMode()) {
p_legoFile->Read(&m_unk0x18, 2); p_legoFile->Read(&m_unk0x18, sizeof(m_unk0x18));
p_legoFile->Read(&m_unk0x1a, 2); p_legoFile->Read(&m_unk0x1a, sizeof(m_unk0x1a));
p_legoFile->Read(&m_unk0x1c, 2); p_legoFile->Read(&m_unk0x1c, sizeof(m_unk0x1c));
p_legoFile->Read(&m_unk0x1e, 2); p_legoFile->Read(&m_unk0x1e, sizeof(m_unk0x1e));
p_legoFile->Read(&m_unk0x20, 2); p_legoFile->Read(&m_unk0x20, sizeof(m_unk0x20));
} }
return SUCCESS; return SUCCESS;
} }

View File

@ -689,8 +689,6 @@ MxResult HospitalState::Serialize(LegoFile* p_legoFile)
LegoState::Serialize(p_legoFile); LegoState::Serialize(p_legoFile);
if (p_legoFile->IsWriteMode()) { if (p_legoFile->IsWriteMode()) {
// A write variable needs to be used here, otherwise
// the compiler aggresively optimizes the function
MxS16 write; MxS16 write;
write = m_unk0x0c; write = m_unk0x0c;