mirror of
https://github.com/isledecomp/isle.git
synced 2025-10-27 10:24:18 +00:00
Match Serialize functions to BETA10 (#1334)
* Begin refactor Serialize functions
* Match more Serialize functions
* Match `LegoVehicleBuildState::Serialize`
* Match `LegoGameState::Username::Serialize`
* Match `LegoGameState::ScoreItem::Serialize`
* Match `LegoGameState::History::Serialize`
* Var name
* Var name
* Revert "Var name"
This reverts commit 1c0cccfba7.
* Add other Serialize implementations
* Add remaining Serialize implementations
* Add Read for char*
* Improvements
This commit is contained in:
committed by
GitHub
parent
f95eedd0ce
commit
77a3dc0795
@@ -646,33 +646,34 @@ AmbulanceMissionState::AmbulanceMissionState()
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x10037440
|
||||
// FUNCTION: BETA10 0x10024480
|
||||
MxResult AmbulanceMissionState::Serialize(LegoFile* p_file)
|
||||
{
|
||||
LegoState::Serialize(p_file);
|
||||
|
||||
if (p_file->IsReadMode()) {
|
||||
Read(p_file, &m_peScore);
|
||||
Read(p_file, &m_maScore);
|
||||
Read(p_file, &m_paScore);
|
||||
Read(p_file, &m_niScore);
|
||||
Read(p_file, &m_laScore);
|
||||
Read(p_file, &m_peHighScore);
|
||||
Read(p_file, &m_maHighScore);
|
||||
Read(p_file, &m_paHighScore);
|
||||
Read(p_file, &m_niHighScore);
|
||||
Read(p_file, &m_laHighScore);
|
||||
p_file->Read(m_peScore);
|
||||
p_file->Read(m_maScore);
|
||||
p_file->Read(m_paScore);
|
||||
p_file->Read(m_niScore);
|
||||
p_file->Read(m_laScore);
|
||||
p_file->Read(m_peHighScore);
|
||||
p_file->Read(m_maHighScore);
|
||||
p_file->Read(m_paHighScore);
|
||||
p_file->Read(m_niHighScore);
|
||||
p_file->Read(m_laHighScore);
|
||||
}
|
||||
else if (p_file->IsWriteMode()) {
|
||||
Write(p_file, m_peScore);
|
||||
Write(p_file, m_maScore);
|
||||
Write(p_file, m_paScore);
|
||||
Write(p_file, m_niScore);
|
||||
Write(p_file, m_laScore);
|
||||
Write(p_file, m_peHighScore);
|
||||
Write(p_file, m_maHighScore);
|
||||
Write(p_file, m_paHighScore);
|
||||
Write(p_file, m_niHighScore);
|
||||
Write(p_file, m_laHighScore);
|
||||
p_file->Write(m_peScore);
|
||||
p_file->Write(m_maScore);
|
||||
p_file->Write(m_paScore);
|
||||
p_file->Write(m_niScore);
|
||||
p_file->Write(m_laScore);
|
||||
p_file->Write(m_peHighScore);
|
||||
p_file->Write(m_maHighScore);
|
||||
p_file->Write(m_paHighScore);
|
||||
p_file->Write(m_niHighScore);
|
||||
p_file->Write(m_laHighScore);
|
||||
}
|
||||
|
||||
return SUCCESS;
|
||||
|
||||
@@ -605,18 +605,25 @@ PizzaMissionState::PizzaMissionState()
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x100393c0
|
||||
// FUNCTION: BETA10 0x100eebf2
|
||||
MxResult PizzaMissionState::Serialize(LegoFile* p_file)
|
||||
{
|
||||
LegoState::Serialize(p_file);
|
||||
|
||||
if (p_file->IsReadMode()) {
|
||||
for (MxS16 i = 0; i < 5; i++) {
|
||||
m_missions[i].ReadFromFile(p_file);
|
||||
p_file->Read(m_missions[i].m_unk0x06);
|
||||
p_file->Read(m_missions[i].m_unk0x14);
|
||||
p_file->Read(m_missions[i].m_score);
|
||||
p_file->Read(m_missions[i].m_hiScore);
|
||||
}
|
||||
}
|
||||
else if (p_file->IsWriteMode()) {
|
||||
for (MxS16 i = 0; i < 5; i++) {
|
||||
m_missions[i].WriteToFile(p_file);
|
||||
p_file->Write(m_missions[i].m_unk0x06);
|
||||
p_file->Write(m_missions[i].m_unk0x14);
|
||||
p_file->Write(m_missions[i].m_score);
|
||||
p_file->Write(m_missions[i].m_hiScore);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -633,6 +640,7 @@ PizzaMissionState::Mission* PizzaMissionState::GetMission(MxU8 p_actorId)
|
||||
}
|
||||
}
|
||||
|
||||
assert("No pizza mission for this character!" == NULL);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
@@ -124,12 +124,12 @@ MxResult PizzeriaState::Serialize(LegoFile* p_file)
|
||||
|
||||
if (p_file->IsReadMode()) {
|
||||
for (MxS16 i = 0; i < 5; i++) {
|
||||
m_unk0x08[i].ReadFromFile(p_file);
|
||||
p_file->Read(m_unk0x08[i].m_nextIndex);
|
||||
}
|
||||
}
|
||||
else {
|
||||
for (MxS16 i = 0; i < 5; i++) {
|
||||
m_unk0x08[i].WriteToFile(p_file);
|
||||
p_file->Write(m_unk0x08[i].m_nextIndex);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -209,6 +209,7 @@ void Radio::CreateState()
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x1002ce10
|
||||
// FUNCTION: BETA10 0x100f20f6
|
||||
RadioState::RadioState()
|
||||
{
|
||||
srand(Timer()->GetTime());
|
||||
@@ -217,13 +218,13 @@ RadioState::RadioState()
|
||||
m_unk0x2c = random % 3;
|
||||
|
||||
m_unk0x08[0] = Playlist((MxU32*) g_unk0x100f3218, sizeOfArray(g_unk0x100f3218), Playlist::e_loop);
|
||||
m_unk0x08[0].SetNextIndex(rand() % sizeOfArray(g_unk0x100f3218));
|
||||
m_unk0x08[0].m_nextIndex = (rand() % sizeOfArray(g_unk0x100f3218));
|
||||
|
||||
m_unk0x08[1] = Playlist((MxU32*) g_unk0x100f3230, sizeOfArray(g_unk0x100f3230), Playlist::e_loop);
|
||||
m_unk0x08[1].SetNextIndex(rand() % sizeOfArray(g_unk0x100f3230));
|
||||
m_unk0x08[1].m_nextIndex = (rand() % sizeOfArray(g_unk0x100f3230));
|
||||
|
||||
m_unk0x08[2] = Playlist((MxU32*) g_unk0x100f3268, sizeOfArray(g_unk0x100f3268), Playlist::e_loop);
|
||||
m_unk0x08[2].SetNextIndex(rand() % sizeOfArray(g_unk0x100f3268));
|
||||
m_unk0x08[2].m_nextIndex = (rand() % sizeOfArray(g_unk0x100f3268));
|
||||
|
||||
m_active = FALSE;
|
||||
}
|
||||
|
||||
@@ -609,33 +609,34 @@ TowTrackMissionState::TowTrackMissionState()
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x1004dde0
|
||||
// FUNCTION: BETA10 0x100f8720
|
||||
MxResult TowTrackMissionState::Serialize(LegoFile* p_file)
|
||||
{
|
||||
LegoState::Serialize(p_file);
|
||||
|
||||
if (p_file->IsReadMode()) {
|
||||
Read(p_file, &m_peScore);
|
||||
Read(p_file, &m_maScore);
|
||||
Read(p_file, &m_paScore);
|
||||
Read(p_file, &m_niScore);
|
||||
Read(p_file, &m_laScore);
|
||||
Read(p_file, &m_peHighScore);
|
||||
Read(p_file, &m_maHighScore);
|
||||
Read(p_file, &m_paHighScore);
|
||||
Read(p_file, &m_niHighScore);
|
||||
Read(p_file, &m_laHighScore);
|
||||
p_file->Read(m_peScore);
|
||||
p_file->Read(m_maScore);
|
||||
p_file->Read(m_paScore);
|
||||
p_file->Read(m_niScore);
|
||||
p_file->Read(m_laScore);
|
||||
p_file->Read(m_peHighScore);
|
||||
p_file->Read(m_maHighScore);
|
||||
p_file->Read(m_paHighScore);
|
||||
p_file->Read(m_niHighScore);
|
||||
p_file->Read(m_laHighScore);
|
||||
}
|
||||
else if (p_file->IsWriteMode()) {
|
||||
Write(p_file, m_peScore);
|
||||
Write(p_file, m_maScore);
|
||||
Write(p_file, m_paScore);
|
||||
Write(p_file, m_niScore);
|
||||
Write(p_file, m_laScore);
|
||||
Write(p_file, m_peHighScore);
|
||||
Write(p_file, m_maHighScore);
|
||||
Write(p_file, m_paHighScore);
|
||||
Write(p_file, m_niHighScore);
|
||||
Write(p_file, m_laHighScore);
|
||||
p_file->Write(m_peScore);
|
||||
p_file->Write(m_maScore);
|
||||
p_file->Write(m_paScore);
|
||||
p_file->Write(m_niScore);
|
||||
p_file->Write(m_laScore);
|
||||
p_file->Write(m_peHighScore);
|
||||
p_file->Write(m_maHighScore);
|
||||
p_file->Write(m_paHighScore);
|
||||
p_file->Write(m_niHighScore);
|
||||
p_file->Write(m_laHighScore);
|
||||
}
|
||||
|
||||
return SUCCESS;
|
||||
|
||||
Reference in New Issue
Block a user