diff --git a/LEGO1/lego/legoomni/include/police.h b/LEGO1/lego/legoomni/include/police.h index d0bf5fa5..231bb5ef 100644 --- a/LEGO1/lego/legoomni/include/police.h +++ b/LEGO1/lego/legoomni/include/police.h @@ -6,6 +6,7 @@ #include "legogamestate.h" #include "legoworld.h" #include "mxdsaction.h" +#include "police_actions.h" #include "radio.h" class PoliceState; @@ -15,17 +16,6 @@ class PoliceState; // Radio at 0xf8 class Police : public LegoWorld { public: - enum PoliceScript { - c_leftArrowCtl = 1, - c_rightArrowCtl = 2, - c_infoCtl = 3, - c_doorCtl = 4, - c_donutCtl = 5, - - c_nickAnim = 500, - c_lauraAnim = 501, - }; - Police(); ~Police() override; // vtable+0x00 diff --git a/LEGO1/lego/legoomni/include/policestate.h b/LEGO1/lego/legoomni/include/policestate.h index b5f8c055..1a01fd04 100644 --- a/LEGO1/lego/legoomni/include/policestate.h +++ b/LEGO1/lego/legoomni/include/policestate.h @@ -36,7 +36,7 @@ class PoliceState : public LegoState { void FUN_1005ea40(); private: - Police::PoliceScript m_policeScript; // 0x08 + PoliceScript::Script m_policeScript; // 0x08 undefined4 m_unk0x0c; // 0x0c }; diff --git a/LEGO1/lego/legoomni/src/police/policestate.cpp b/LEGO1/lego/legoomni/src/police/policestate.cpp index 85365f0e..7b67251a 100644 --- a/LEGO1/lego/legoomni/src/police/policestate.cpp +++ b/LEGO1/lego/legoomni/src/police/policestate.cpp @@ -15,7 +15,7 @@ DECOMP_SIZE_ASSERT(PoliceState, 0x10) PoliceState::PoliceState() { m_unk0x0c = 0; - m_policeScript = (rand() % 2 == 0) ? Police::PoliceScript::c_lauraAnim : Police::PoliceScript::c_nickAnim; + m_policeScript = (rand() % 2 == 0) ? PoliceScript::c_nps002la_RunAnim : PoliceScript::c_nps001ni_RunAnim; } // FUNCTION: LEGO1 0x1005e990 @@ -29,7 +29,7 @@ MxResult PoliceState::VTable0x1c(LegoFile* p_legoFile) p_legoFile->Read(&m_policeScript, sizeof(m_policeScript)); } else { - Police::PoliceScript policeScript = m_policeScript; + PoliceScript::Script policeScript = m_policeScript; p_legoFile->Write(&policeScript, sizeof(m_policeScript)); } @@ -39,7 +39,7 @@ MxResult PoliceState::VTable0x1c(LegoFile* p_legoFile) // FUNCTION: LEGO1 0x1005ea40 void PoliceState::FUN_1005ea40() { - Police::PoliceScript policeScript; + PoliceScript::Script policeScript; if (m_unk0x0c == 1) { return; @@ -47,17 +47,17 @@ void PoliceState::FUN_1005ea40() switch (CurrentActor()->GetActorId()) { case 4: - policeScript = Police::PoliceScript::c_lauraAnim; + policeScript = PoliceScript::c_nps002la_RunAnim; m_policeScript = policeScript; break; case 5: - policeScript = Police::PoliceScript::c_nickAnim; + policeScript = PoliceScript::c_nps001ni_RunAnim; m_policeScript = policeScript; break; default: policeScript = m_policeScript; - m_policeScript = policeScript == Police::PoliceScript::c_lauraAnim ? Police::PoliceScript::c_nickAnim - : Police::PoliceScript::c_lauraAnim; + m_policeScript = policeScript == PoliceScript::c_nps002la_RunAnim ? PoliceScript::c_nps001ni_RunAnim + : PoliceScript::c_nps002la_RunAnim; } { diff --git a/LEGO1/lego/legoomni/src/worlds/police.cpp b/LEGO1/lego/legoomni/src/worlds/police.cpp index 59d89120..fb5dd53e 100644 --- a/LEGO1/lego/legoomni/src/worlds/police.cpp +++ b/LEGO1/lego/legoomni/src/worlds/police.cpp @@ -103,35 +103,35 @@ MxLong Police::HandleClick(LegoControlManagerEvent& p_param) { if (p_param.GetUnknown0x28() == 1) { switch (p_param.GetClickedObjectId()) { - case c_leftArrowCtl: - case c_rightArrowCtl: + case PoliceScript::c_LeftArrow_Ctl: + case PoliceScript::c_RightArrow_Ctl: if (m_policeState->GetUnknown0x0c() == 1) { - DeleteObjects(&m_atom, c_nickAnim, c_lauraAnim); + DeleteObjects(&m_atom, PoliceScript::c_nps001ni_RunAnim, PoliceScript::c_nps002la_RunAnim); } BackgroundAudioManager()->Stop(); m_transitionDestination = LegoGameState::Area::e_polidoor; TransitionManager()->StartTransition(MxTransitionManager::e_pixelation, 50, FALSE, FALSE); break; - case c_infoCtl: + case PoliceScript::c_Info_Ctl: if (m_policeState->GetUnknown0x0c() == 1) { - DeleteObjects(&m_atom, c_nickAnim, c_lauraAnim); + DeleteObjects(&m_atom, PoliceScript::c_nps001ni_RunAnim, PoliceScript::c_nps002la_RunAnim); } BackgroundAudioManager()->Stop(); m_transitionDestination = LegoGameState::Area::e_infomain; TransitionManager()->StartTransition(MxTransitionManager::e_pixelation, 50, FALSE, FALSE); break; - case c_doorCtl: + case PoliceScript::c_Door_Ctl: if (m_policeState->GetUnknown0x0c() == 1) { - DeleteObjects(&m_atom, c_nickAnim, c_lauraAnim); + DeleteObjects(&m_atom, PoliceScript::c_nps001ni_RunAnim, PoliceScript::c_nps002la_RunAnim); } BackgroundAudioManager()->Stop(); m_transitionDestination = LegoGameState::Area::e_copter; TransitionManager()->StartTransition(MxTransitionManager::e_pixelation, 50, FALSE, FALSE); break; - case c_donutCtl: + case PoliceScript::c_Donut_Ctl: m_policeState->FUN_1005ea40(); } } @@ -162,7 +162,7 @@ MxLong Police::HandleKeyPress(LegoEventNotificationParam& p_param) MxLong result = 0; if (p_param.GetKey() == ' ' && m_policeState->GetUnknown0x0c() == 1) { - DeleteObjects(&m_atom, c_nickAnim, c_lauraAnim); + DeleteObjects(&m_atom, PoliceScript::c_nps001ni_RunAnim, PoliceScript::c_nps002la_RunAnim); m_policeState->SetUnknown0x0c(0); return 1; } @@ -189,7 +189,7 @@ void Police::Enable(MxBool p_enable) // FUNCTION: LEGO1 0x1005e790 MxBool Police::VTable0x64() { - DeleteObjects(&m_atom, c_nickAnim, 510); + DeleteObjects(&m_atom, PoliceScript::c_nps001ni_RunAnim, 510); m_transitionDestination = LegoGameState::e_infomain; return TRUE; }