From 37b068e2df223fdb8d1bc58c4c29a40532508023 Mon Sep 17 00:00:00 2001 From: Joshua Peisach Date: Sat, 20 Jan 2024 13:34:29 -0500 Subject: [PATCH] Implmement PoliceState::VTable0x1c --- LEGO1/lego/legoomni/include/policestate.h | 2 ++ LEGO1/lego/legoomni/src/police/policestate.cpp | 15 +++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/LEGO1/lego/legoomni/include/policestate.h b/LEGO1/lego/legoomni/include/policestate.h index be55ecae..517710ab 100644 --- a/LEGO1/lego/legoomni/include/policestate.h +++ b/LEGO1/lego/legoomni/include/policestate.h @@ -26,6 +26,8 @@ class PoliceState : public LegoState { // SYNTHETIC: LEGO1 0x1005e920 // PoliceState::`scalar deleting destructor' + virtual MxResult VTable0x1c(LegoFileStream* p_legoFileStream) override; // vtable+0x1C + private: undefined4 m_unk0x8; // 0x8 undefined4 m_unk0xc; // 0xc diff --git a/LEGO1/lego/legoomni/src/police/policestate.cpp b/LEGO1/lego/legoomni/src/police/policestate.cpp index 4965a36f..9e33b42b 100644 --- a/LEGO1/lego/legoomni/src/police/policestate.cpp +++ b/LEGO1/lego/legoomni/src/police/policestate.cpp @@ -10,3 +10,18 @@ PoliceState::PoliceState() m_unk0xc = 0; m_unk0x8 = (rand() % 2 == 0) ? 501 : 500; } + +// FUNCTION: LEGO1 0x1005e990 +MxResult PoliceState::VTable0x1c(LegoFileStream* p_legoFileStream) +{ + if (p_legoFileStream->IsWriteMode()) { + p_legoFileStream->FUN_10006030(this->ClassName()); + } + if (p_legoFileStream->IsReadMode()) { + p_legoFileStream->Write(&m_unk0x8, sizeof(MxU32)); + } + else if (p_legoFileStream->IsWriteMode()) { + p_legoFileStream->Read(&m_unk0x8, sizeof(MxU32)); + } + return SUCCESS; +}