mirror of
https://github.com/isledecomp/isle.git
synced 2026-01-20 23:01:16 +00:00
Clear unknowns in IslePathActor
This commit is contained in:
parent
e05cb05983
commit
9c89b648c1
@ -102,10 +102,10 @@ class IslePathActor : public LegoPathActor {
|
||||
// FUNCTION: LEGO1 0x10002e00
|
||||
virtual MxLong HandlePathStruct(LegoPathStructNotificationParam&) { return 0; } // vtable+0xdc
|
||||
|
||||
virtual void Enter(); // vtable+0xe0
|
||||
virtual void Exit(); // vtable+0xe4
|
||||
virtual void SpawnPlayer(LegoGameState::Area p_area, MxBool p_enter, MxU8 p_flags); // vtable+0xe8
|
||||
virtual void VTable0xec(MxMatrix p_transform, LegoPathBoundary* p_boundary, MxBool p_reset); // vtable+0xec
|
||||
virtual void Enter(); // vtable+0xe0
|
||||
virtual void Exit(); // vtable+0xe4
|
||||
virtual void SpawnPlayer(LegoGameState::Area p_area, MxBool p_enter, MxU8 p_flags); // vtable+0xe8
|
||||
virtual void UpdateWorld(MxMatrix p_transform, LegoPathBoundary* p_boundary, MxBool p_reset); // vtable+0xec
|
||||
|
||||
// FUNCTION: LEGO1 0x10002e10
|
||||
~IslePathActor() override { IslePathActor::Destroy(TRUE); }
|
||||
@ -129,7 +129,7 @@ class IslePathActor : public LegoPathActor {
|
||||
MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18
|
||||
void Destroy(MxBool p_fromDestructor) override; // vtable+0x1c
|
||||
|
||||
void FUN_1001b660();
|
||||
void TurnAround();
|
||||
|
||||
void SetWorld(LegoWorld* p_world) { m_world = p_world; }
|
||||
|
||||
|
||||
@ -92,7 +92,7 @@ void IslePathActor::Enter()
|
||||
NavController()->ResetMaxLinearVel(m_maxLinearVel);
|
||||
|
||||
SetUserActor(this);
|
||||
FUN_1001b660();
|
||||
TurnAround();
|
||||
TransformPointOfView();
|
||||
}
|
||||
}
|
||||
@ -151,7 +151,7 @@ void IslePathActor::Exit()
|
||||
GameState()->m_currentArea = LegoGameState::Area::e_vehicleExited;
|
||||
}
|
||||
|
||||
FUN_1001b660();
|
||||
TurnAround();
|
||||
TransformPointOfView();
|
||||
ResetViewVelocity();
|
||||
}
|
||||
@ -611,7 +611,7 @@ void IslePathActor::SpawnPlayer(LegoGameState::Area p_area, MxBool p_enter, MxU8
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x1001b5b0
|
||||
void IslePathActor::VTable0xec(MxMatrix p_transform, LegoPathBoundary* p_boundary, MxBool p_reset)
|
||||
void IslePathActor::UpdateWorld(MxMatrix p_transform, LegoPathBoundary* p_boundary, MxBool p_reset)
|
||||
{
|
||||
if (m_world) {
|
||||
m_world->RemoveActor(this);
|
||||
@ -639,15 +639,15 @@ void IslePathActor::VTable0xec(MxMatrix p_transform, LegoPathBoundary* p_boundar
|
||||
|
||||
// FUNCTION: LEGO1 0x1001b660
|
||||
// FUNCTION: BETA10 0x10036ea2
|
||||
void IslePathActor::FUN_1001b660()
|
||||
void IslePathActor::TurnAround()
|
||||
{
|
||||
MxMatrix transform(m_roi->GetLocal2World());
|
||||
Vector3 position(transform[0]);
|
||||
Vector3 direction(transform[1]);
|
||||
Vector3 up(transform[2]);
|
||||
Vector3 right(transform[0]);
|
||||
Vector3 up(transform[1]);
|
||||
Vector3 direction(transform[2]);
|
||||
|
||||
up *= -1.0f;
|
||||
position.EqualsCross(direction, up);
|
||||
direction *= -1.0f;
|
||||
right.EqualsCross(up, direction);
|
||||
m_roi->SetLocal2World(transform);
|
||||
m_roi->WrappedUpdateWorldData();
|
||||
}
|
||||
|
||||
@ -867,7 +867,7 @@ void Isle::CheckAreaExiting()
|
||||
case LegoGameState::e_vehicleExited: {
|
||||
MxMatrix mat(UserActor()->GetROI()->GetLocal2World());
|
||||
LegoPathBoundary* boundary = UserActor()->GetBoundary();
|
||||
((IslePathActor*) UserActor())->VTable0xec(mat, boundary, TRUE);
|
||||
((IslePathActor*) UserActor())->UpdateWorld(mat, boundary, TRUE);
|
||||
break;
|
||||
}
|
||||
case LegoGameState::e_infocenterExited:
|
||||
|
||||
@ -534,7 +534,7 @@ void LegoAct2::Enable(MxBool p_enable)
|
||||
GameState()->SetActor(LegoActor::c_pepper);
|
||||
m_pepper = FindROI("pepper");
|
||||
|
||||
((IslePathActor*) m_pepper->GetEntity())->VTable0xec(m_transformOnDisable, m_boundaryOnDisable, TRUE);
|
||||
((IslePathActor*) m_pepper->GetEntity())->UpdateWorld(m_transformOnDisable, m_boundaryOnDisable, TRUE);
|
||||
|
||||
if (GameState()->m_previousArea == LegoGameState::e_infomain) {
|
||||
GameState()->StopArea(LegoGameState::e_infomain);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user