mirror of
https://github.com/isledecomp/isle.git
synced 2025-10-25 17:34:05 +00:00
Implement/match IslePathActor::Exit (#997)
* Implement/match IslePathActor::Exit * Name * Name * Partially fix vector interface * Revert "Partially fix vector interface" This reverts commit6e7a1e2b08. * Revert "Revert "Partially fix vector interface"" This reverts commite3860e3c9f. * Fix * Remove some COMPAT_MODE
This commit is contained in:
committed by
GitHub
parent
9b22642f0c
commit
9a9bccda0e
@@ -25,7 +25,7 @@ DECOMP_SIZE_ASSERT(MxMatrix, 0x48)
|
||||
// FUNCTION: LEGO1 0x10001e60
|
||||
Helicopter::Helicopter()
|
||||
{
|
||||
m_unk0x13c = 60;
|
||||
m_maxLinearVel = 60;
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x10003230
|
||||
@@ -63,7 +63,7 @@ void Helicopter::CreateState()
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x10003360
|
||||
void Helicopter::VTable0xe4()
|
||||
void Helicopter::Exit()
|
||||
{
|
||||
if (GameState()->GetCurrentAct() == LegoGameState::e_act1) {
|
||||
SpawnPlayer(
|
||||
@@ -73,7 +73,7 @@ void Helicopter::VTable0xe4()
|
||||
);
|
||||
}
|
||||
|
||||
IslePathActor::VTable0xe4();
|
||||
IslePathActor::Exit();
|
||||
|
||||
if (GameState()->GetCurrentAct() == LegoGameState::e_act1) {
|
||||
GameState()->SetCurrentArea(LegoGameState::e_copter);
|
||||
@@ -117,7 +117,7 @@ MxU32 Helicopter::HandleClick()
|
||||
|
||||
if (CurrentActor()) {
|
||||
if (CurrentActor()->GetActorId() != GameState()->GetActorId()) {
|
||||
((IslePathActor*) CurrentActor())->VTable0xe4();
|
||||
((IslePathActor*) CurrentActor())->Exit();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -144,7 +144,7 @@ MxU32 Helicopter::HandleClick()
|
||||
break;
|
||||
}
|
||||
|
||||
VTable0xe0();
|
||||
Enter();
|
||||
InvokeAction(Extra::ActionType::e_start, m_script, IsleScript::c_HelicopterDashboard, NULL);
|
||||
GetCurrentAction().SetObjectId(-1);
|
||||
ControlManager()->Register(this);
|
||||
@@ -179,7 +179,7 @@ MxU32 Helicopter::HandleControl(LegoControlManagerEvent& p_param)
|
||||
else if (m_state->GetUnkown8() != 0) {
|
||||
break;
|
||||
}
|
||||
VTable0xe4();
|
||||
Exit();
|
||||
GameState()->SetCurrentArea(LegoGameState::e_unk66);
|
||||
ret = 1;
|
||||
break;
|
||||
@@ -227,7 +227,7 @@ MxU32 Helicopter::HandleControl(LegoControlManagerEvent& p_param)
|
||||
lookat = dir;
|
||||
float scale = 3;
|
||||
lookat.Mul(scale);
|
||||
lookat.Add(&loc);
|
||||
lookat.Add(loc);
|
||||
Mx3DPointFloat v68, v7c, v90(0, 1, 0), va4;
|
||||
v68 = m_world->GetCamera()->GetWorldUp();
|
||||
va4.EqualsCross(&v68, &dir);
|
||||
@@ -248,7 +248,7 @@ MxU32 Helicopter::HandleControl(LegoControlManagerEvent& p_param)
|
||||
if (GameState()->GetCurrentAct() == LegoGameState::e_act1) {
|
||||
((Isle*) CurrentWorld())->SetDestLocation(LegoGameState::e_infomain);
|
||||
TransitionManager()->StartTransition(MxTransitionManager::e_mosaic, 50, FALSE, FALSE);
|
||||
VTable0xe4();
|
||||
Exit();
|
||||
}
|
||||
ret = 1;
|
||||
break;
|
||||
@@ -379,9 +379,9 @@ void Helicopter::VTable0x70(float p_float)
|
||||
mat.SetIdentity();
|
||||
m_unk0x1f4.Unknown6(mat, f2);
|
||||
v2.SetVector(loc);
|
||||
v2.Sub(&v);
|
||||
v2.Sub(v);
|
||||
v2.Mul(f2);
|
||||
v2.Add(&v);
|
||||
v2.Add(v);
|
||||
m_world->GetCamera()->FUN_100123e0(mat, 0);
|
||||
}
|
||||
else {
|
||||
|
||||
Reference in New Issue
Block a user