Refactor actor states, define enum (#1220)

* Refactor actor states, define enum

* Revert

* Rename `UpdateState` to `Animate`
This commit is contained in:
Christian Semmler
2024-12-13 12:30:50 -07:00
committed by GitHub
parent ce3f71ea0f
commit 6da2faa48c
44 changed files with 161 additions and 153 deletions

View File

@@ -48,19 +48,17 @@ MxS32 LegoRaceActor::VTable0x68(Vector3& p_v1, Vector3& p_v2, Vector3& p_v3)
MxU32 LegoRaceActor::VTable0x90(float p_time, Matrix4& p_transform)
{
// Note: Code duplication with LegoExtraActor::VTable0x90
switch (m_actorFlags) {
case 0:
case 1:
return 1;
case 2:
switch (m_actorState) {
case c_initial:
case c_one:
return TRUE;
case c_two:
m_unk0x08 = p_time + 2000.0f;
m_actorFlags = 3;
m_actorState = c_three;
m_actorTime += (p_time - m_lastTime) * m_worldSpeed;
m_lastTime = p_time;
return 0;
case 3:
return FALSE;
case c_three:
assert(!m_userNavFlag);
Vector3 positionRef(p_transform[3]);
@@ -78,19 +76,19 @@ MxU32 LegoRaceActor::VTable0x90(float p_time, Matrix4& p_transform)
m_lastTime = p_time;
VTable0x74(p_transform);
return 0;
return FALSE;
}
else {
m_actorFlags = 0;
m_actorState = c_initial;
m_unk0x08 = 0;
positionRef -= g_unk0x10102b08;
m_roi->FUN_100a58f0(p_transform);
return 1;
return TRUE;
}
}
return 0;
return FALSE;
}
// FUNCTION: LEGO1 0x10014a00
@@ -98,7 +96,7 @@ MxU32 LegoRaceActor::VTable0x90(float p_time, Matrix4& p_transform)
MxResult LegoRaceActor::HitActor(LegoPathActor* p_actor, MxBool p_bool)
{
if (!p_actor->GetUserNavFlag()) {
if (p_actor->GetActorFlags()) {
if (p_actor->GetActorState() != c_initial) {
return FAILURE;
}
@@ -112,7 +110,7 @@ MxResult LegoRaceActor::HitActor(LegoPathActor* p_actor, MxBool p_bool)
roi->FUN_100a58f0(matr);
p_actor->SetActorFlags(2);
p_actor->SetActorState(c_two);
}
}