Implement/match LegoAnimationManager::FUN_10062e20 (#967)

This commit is contained in:
Christian Semmler
2024-05-29 13:24:08 -04:00
committed by GitHub
parent 2f1aa58153
commit b978787f8f
11 changed files with 197 additions and 47 deletions

View File

@@ -192,7 +192,7 @@ MxU32 Helicopter::VTable0xd4(LegoControlManagerEvent& p_param)
if (m_state->GetUnkown8() == 0) {
state->SetUnknown18(4);
m_state->SetUnknown8(1);
m_world->RemovePathActor(this);
m_world->RemoveActor(this);
InvokeAction(Extra::ActionType::e_start, script, IsleScript::c_HelicopterTakeOff_Anim, NULL);
SetState(0);
}
@@ -205,7 +205,7 @@ MxU32 Helicopter::VTable0xd4(LegoControlManagerEvent& p_param)
}
if (m_state->GetUnkown8() == 2) {
m_state->SetUnknown8(3);
m_world->RemovePathActor(this);
m_world->RemoveActor(this);
InvokeAction(Extra::ActionType::e_start, script, IsleScript::c_HelicopterLand_Anim, NULL);
SetState(4);
}

View File

@@ -471,7 +471,7 @@ void IslePathActor::SpawnPlayer(LegoGameState::Area p_area, MxBool p_und, MxU8 p
assert(world);
if (m_world != NULL) {
m_world->RemovePathActor(this);
m_world->RemoveActor(this);
m_world->Remove(this);
VideoManager()->Get3DManager()->Remove(*m_roi);
}
@@ -556,7 +556,7 @@ void IslePathActor::SpawnPlayer(LegoGameState::Area p_area, MxBool p_und, MxU8 p
void IslePathActor::VTable0xec(MxMatrix p_transform, LegoPathBoundary* p_boundary, MxBool p_reset)
{
if (m_world) {
m_world->RemovePathActor(this);
m_world->RemoveActor(this);
m_world->Remove(this);
VideoManager()->Get3DManager()->GetLego3DView()->Remove(*m_roi);
}
@@ -566,7 +566,7 @@ void IslePathActor::VTable0xec(MxMatrix p_transform, LegoPathBoundary* p_boundar
VTable0xe0();
}
m_world->AddPathActor(this);
m_world->PlaceActor(this);
p_boundary->AddActor(this);
if (m_actorId != GameState()->GetActorId()) {
m_world->Add(this);