From 3b47366f05ce1151a58e17586781d4bd18459909 Mon Sep 17 00:00:00 2001 From: Christian Semmler Date: Sun, 12 Jan 2025 12:27:34 -0700 Subject: [PATCH] Match `LegoVehicleBuildState::Serialize` --- LEGO1/lego/legoomni/include/legocarbuild.h | 7 ++++--- .../lego/legoomni/src/build/legocarbuild.cpp | 21 ++++++++++++------- 2 files changed, 17 insertions(+), 11 deletions(-) diff --git a/LEGO1/lego/legoomni/include/legocarbuild.h b/LEGO1/lego/legoomni/include/legocarbuild.h index 6add3be3..8afbee01 100644 --- a/LEGO1/lego/legoomni/include/legocarbuild.h +++ b/LEGO1/lego/legoomni/include/legocarbuild.h @@ -15,6 +15,7 @@ class MxSoundPresenter; class MxActionNotificationParam; // VTABLE: LEGO1 0x100d66e0 +// VTABLE: BETA10 0x101bb910 // SIZE 0x50 class LegoVehicleBuildState : public LegoState { public: @@ -32,13 +33,13 @@ public: // FUNCTION: LEGO1 0x10025ff0 const char* ClassName() const override // vtable+0x0c { - return this->m_className.GetData(); + return m_className.GetData(); } // FUNCTION: LEGO1 0x10026000 MxBool IsA(const char* p_name) const override // vtable+0x10 { - return !strcmp(p_name, this->m_className.GetData()) || LegoState::IsA(p_name); + return !strcmp(p_name, m_className.GetData()) || LegoState::IsA(p_name); } MxResult Serialize(LegoFile* p_file) override; // vtable+0x1c @@ -56,7 +57,7 @@ public: MxString m_className; // 0x38 AnimationState m_animationState; // 0x48 - undefined m_unk0x4c; // 0x4c + MxU8 m_unk0x4c; // 0x4c MxBool m_unk0x4d; // 0x4d MxBool m_unk0x4e; // 0x4e MxU8 m_placedPartCount; // 0x4f diff --git a/LEGO1/lego/legoomni/src/build/legocarbuild.cpp b/LEGO1/lego/legoomni/src/build/legocarbuild.cpp index c65064c1..c5516b37 100644 --- a/LEGO1/lego/legoomni/src/build/legocarbuild.cpp +++ b/LEGO1/lego/legoomni/src/build/legocarbuild.cpp @@ -1704,21 +1704,26 @@ LegoVehicleBuildState::LegoVehicleBuildState(const char* p_classType) } // FUNCTION: LEGO1 0x10026120 +// FUNCTION: BETA10 0x1006eef0 MxResult LegoVehicleBuildState::Serialize(LegoFile* p_file) { LegoState::Serialize(p_file); if (p_file->IsReadMode()) { - Read(p_file, &m_unk0x4c); - Read(p_file, &m_unk0x4d); - Read(p_file, &m_unk0x4e); - Read(p_file, &m_placedPartCount); + p_file->Read(m_unk0x4c); + p_file->Read(m_unk0x4d); + p_file->Read(m_unk0x4e); +#ifndef BETA10 + p_file->Read(m_placedPartCount); +#endif } else { - Write(p_file, m_unk0x4c); - Write(p_file, m_unk0x4d); - Write(p_file, m_unk0x4e); - Write(p_file, m_placedPartCount); + p_file->Write(m_unk0x4c); + p_file->Write(m_unk0x4d); + p_file->Write(m_unk0x4e); +#ifndef BETA10 + p_file->Write(m_placedPartCount); +#endif } return SUCCESS;