mirror of
https://github.com/isledecomp/isle.git
synced 2025-10-23 08:24:16 +00:00
Consolidate state and building entity classes (#989)
This commit is contained in:

committed by
GitHub

parent
73bb37596e
commit
133a312aee
@@ -13,9 +13,10 @@
|
||||
#include "mxnotificationmanager.h"
|
||||
#include "mxtransitionmanager.h"
|
||||
#include "police_actions.h"
|
||||
#include "policestate.h"
|
||||
#include "scripts.h"
|
||||
|
||||
DECOMP_SIZE_ASSERT(Police, 0x110)
|
||||
DECOMP_SIZE_ASSERT(PoliceState, 0x10)
|
||||
|
||||
// FUNCTION: LEGO1 0x1005e130
|
||||
Police::Police()
|
||||
@@ -196,3 +197,60 @@ MxBool Police::Escape()
|
||||
m_destLocation = LegoGameState::e_infomain;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x1005e7c0
|
||||
PoliceState::PoliceState()
|
||||
{
|
||||
m_unk0x0c = 0;
|
||||
m_policeScript = (rand() % 2 == 0) ? PoliceScript::c_nps002la_RunAnim : PoliceScript::c_nps001ni_RunAnim;
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x1005e990
|
||||
MxResult PoliceState::Serialize(LegoFile* p_legoFile)
|
||||
{
|
||||
LegoState::Serialize(p_legoFile);
|
||||
|
||||
if (p_legoFile->IsReadMode()) {
|
||||
p_legoFile->Read(&m_policeScript, sizeof(m_policeScript));
|
||||
}
|
||||
else {
|
||||
PoliceScript::Script policeScript = m_policeScript;
|
||||
p_legoFile->Write(&policeScript, sizeof(m_policeScript));
|
||||
}
|
||||
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x1005ea40
|
||||
void PoliceState::FUN_1005ea40()
|
||||
{
|
||||
PoliceScript::Script policeScript;
|
||||
|
||||
if (m_unk0x0c == 1) {
|
||||
return;
|
||||
}
|
||||
|
||||
switch (CurrentActor()->GetActorId()) {
|
||||
case 4:
|
||||
policeScript = PoliceScript::c_nps002la_RunAnim;
|
||||
m_policeScript = policeScript;
|
||||
break;
|
||||
case 5:
|
||||
policeScript = PoliceScript::c_nps001ni_RunAnim;
|
||||
m_policeScript = policeScript;
|
||||
break;
|
||||
default:
|
||||
policeScript = m_policeScript;
|
||||
m_policeScript = policeScript == PoliceScript::c_nps002la_RunAnim ? PoliceScript::c_nps001ni_RunAnim
|
||||
: PoliceScript::c_nps002la_RunAnim;
|
||||
}
|
||||
|
||||
{
|
||||
MxDSAction action;
|
||||
action.SetObjectId(policeScript);
|
||||
action.SetAtomId(*g_policeScript);
|
||||
Start(&action);
|
||||
}
|
||||
|
||||
m_unk0x0c = 1;
|
||||
}
|
||||
|
Reference in New Issue
Block a user