From 113584f72e6e44c5a9e42f64d798b9e9f0a1ab2a Mon Sep 17 00:00:00 2001 From: Christian Semmler Date: Thu, 15 Feb 2024 11:01:03 -0500 Subject: [PATCH] Clean up code --- LEGO1/lego/legoomni/include/police.h | 3 +- LEGO1/lego/legoomni/include/policestate.h | 5 ++-- LEGO1/lego/legoomni/src/police/police.cpp | 3 +- .../lego/legoomni/src/police/policestate.cpp | 29 ++++++++++--------- 4 files changed, 22 insertions(+), 18 deletions(-) diff --git a/LEGO1/lego/legoomni/include/police.h b/LEGO1/lego/legoomni/include/police.h index 31e490ce..58f03036 100644 --- a/LEGO1/lego/legoomni/include/police.h +++ b/LEGO1/lego/legoomni/include/police.h @@ -5,9 +5,10 @@ #include "legogamestate.h" #include "legoworld.h" #include "mxdsaction.h" -#include "policestate.h" #include "radio.h" +class PoliceState; + // VTABLE: LEGO1 0x100d8a80 // SIZE 0x110 // Radio at 0xf8 diff --git a/LEGO1/lego/legoomni/include/policestate.h b/LEGO1/lego/legoomni/include/policestate.h index e3d39674..b5f8c055 100644 --- a/LEGO1/lego/legoomni/include/policestate.h +++ b/LEGO1/lego/legoomni/include/policestate.h @@ -3,6 +3,7 @@ #include "decomp.h" #include "legostate.h" +#include "police.h" // VTABLE: LEGO1 0x100d8af0 // SIZE 0x10 @@ -35,8 +36,8 @@ class PoliceState : public LegoState { void FUN_1005ea40(); private: - undefined4 m_action; // 0x08 - undefined4 m_unk0x0c; // 0x0c + Police::PoliceScript m_policeScript; // 0x08 + undefined4 m_unk0x0c; // 0x0c }; #endif // POLICESTATE_H diff --git a/LEGO1/lego/legoomni/src/police/police.cpp b/LEGO1/lego/legoomni/src/police/police.cpp index 31b2288e..dfa14d7d 100644 --- a/LEGO1/lego/legoomni/src/police/police.cpp +++ b/LEGO1/lego/legoomni/src/police/police.cpp @@ -6,6 +6,7 @@ #include "legoinputmanager.h" #include "legoomni.h" #include "mxnotificationmanager.h" +#include "policestate.h" DECOMP_SIZE_ASSERT(Police, 0x110) @@ -123,7 +124,7 @@ MxLong Police::HandleKeyPress(LegoEventNotificationParam& p_param) MxLong result = 0; if (p_param.GetKey() == ' ' && m_policeState->GetUnknown0x0c() == 1) { - DeleteObjects(&m_atom, PoliceScript::c_nickAnim, PoliceScript::c_lauraAnim); + DeleteObjects(&m_atom, c_nickAnim, c_lauraAnim); m_policeState->SetUnknown0x0c(0); return 1; } diff --git a/LEGO1/lego/legoomni/src/police/policestate.cpp b/LEGO1/lego/legoomni/src/police/policestate.cpp index 298b431c..f3da99af 100644 --- a/LEGO1/lego/legoomni/src/police/policestate.cpp +++ b/LEGO1/lego/legoomni/src/police/policestate.cpp @@ -14,7 +14,7 @@ DECOMP_SIZE_ASSERT(PoliceState, 0x10) PoliceState::PoliceState() { m_unk0x0c = 0; - m_action = (rand() % 2 == 0) ? Police::PoliceScript::c_lauraAnim : Police::PoliceScript::c_nickAnim; + m_policeScript = (rand() % 2 == 0) ? Police::PoliceScript::c_lauraAnim : Police::PoliceScript::c_nickAnim; } // FUNCTION: LEGO1 0x1005e990 @@ -25,11 +25,11 @@ MxResult PoliceState::VTable0x1c(LegoFile* p_legoFile) } if (p_legoFile->IsReadMode()) { - p_legoFile->Read(&m_action, sizeof(m_action)); + p_legoFile->Read(&m_policeScript, sizeof(m_policeScript)); } else { - undefined4 unk0x08 = m_action; - p_legoFile->Write(&unk0x08, sizeof(m_action)); + undefined4 unk0x08 = m_policeScript; + p_legoFile->Write(&unk0x08, sizeof(m_policeScript)); } return SUCCESS; @@ -38,27 +38,28 @@ MxResult PoliceState::VTable0x1c(LegoFile* p_legoFile) // FUNCTION: LEGO1 0x1005ea40 void PoliceState::FUN_1005ea40() { - MxS32 actionId; + Police::PoliceScript policeScript; if (m_unk0x0c == 1) return; + switch (CurrentVehicle()->VTable0x60()) { case 4: - actionId = Police::PoliceScript::c_lauraAnim; + policeScript = Police::PoliceScript::c_lauraAnim; + m_policeScript = policeScript; break; case 5: - actionId = Police::PoliceScript::c_nickAnim; + policeScript = Police::PoliceScript::c_nickAnim; + m_policeScript = policeScript; break; default: - actionId = m_action; - m_action = m_action == Police::PoliceScript::c_lauraAnim ? Police::PoliceScript::c_nickAnim - : Police::PoliceScript::c_lauraAnim; - goto playAction; + policeScript = m_policeScript; + m_policeScript = m_policeScript == Police::PoliceScript::c_lauraAnim ? Police::PoliceScript::c_nickAnim + : Police::PoliceScript::c_lauraAnim; } - m_action = actionId; -playAction: + MxDSAction action; - action.SetObjectId(actionId); + action.SetObjectId(policeScript); action.SetAtomId(*g_policeScript); Start(&action); m_unk0x0c = 1;