mirror of
https://github.com/isledecomp/isle-portable.git
synced 2024-11-26 09:28:01 -05:00
Implement/Match LegoPathActor::VTable0x74 (#805)
* Implement/Match LegoPathActor::VTable0x74 * Remove superfluous early returns * fix --------- Co-authored-by: Christian Semmler <mail@csemmler.com>
This commit is contained in:
parent
c8840117be
commit
dcbad318e0
1 changed files with 71 additions and 66 deletions
|
@ -221,10 +221,7 @@ MxS32 LegoPathActor::VTable0x8c(float p_time, Matrix4& p_transform)
|
|||
LegoNavController* nav = NavController();
|
||||
m_worldSpeed = nav->GetLinearVel();
|
||||
|
||||
if (!nav->CalculateNewPosDir(p4, p5, p2, p1, m_boundary->GetUnknown0x14())) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (nav->CalculateNewPosDir(p4, p5, p2, p1, m_boundary->GetUnknown0x14())) {
|
||||
Mx3DPointFloat p6;
|
||||
p6 = p2;
|
||||
|
||||
|
@ -293,11 +290,8 @@ MxS32 LegoPathActor::VTable0x8c(float p_time, Matrix4& p_transform)
|
|||
pos = p2;
|
||||
return result;
|
||||
}
|
||||
else {
|
||||
if (p_time < 0 || m_worldSpeed <= 0) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
else if (p_time >= 0 && m_worldSpeed > 0) {
|
||||
float f = (m_BADuration - m_unk0x7c) / m_worldSpeed + m_lastTime;
|
||||
|
||||
if (f < p_time) {
|
||||
|
@ -315,10 +309,10 @@ MxS32 LegoPathActor::VTable0x8c(float p_time, Matrix4& p_transform)
|
|||
p_transform.SetIdentity();
|
||||
|
||||
if (m_userNavFlag) {
|
||||
m_unk0x8c.FUN_1009a1e0(m_BADuration / m_unk0x7c, p_transform, *m_boundary->GetUnknown0x14(), 0);
|
||||
m_unk0x8c.FUN_1009a1e0(m_unk0x7c / m_BADuration, p_transform, *m_boundary->GetUnknown0x14(), 0);
|
||||
}
|
||||
else {
|
||||
m_unk0x8c.FUN_1009a1e0(m_BADuration / m_unk0x7c, p_transform, *m_boundary->GetUnknown0x14(), 1);
|
||||
m_unk0x8c.FUN_1009a1e0(m_unk0x7c / m_BADuration, p_transform, *m_boundary->GetUnknown0x14(), 1);
|
||||
}
|
||||
|
||||
Vector3 pos1(p_transform[3]);
|
||||
|
@ -344,10 +338,21 @@ MxS32 LegoPathActor::VTable0x8c(float p_time, Matrix4& p_transform)
|
|||
return -1;
|
||||
}
|
||||
|
||||
// STUB: LEGO1 0x1002e740
|
||||
// FUNCTION: LEGO1 0x1002e740
|
||||
void LegoPathActor::VTable0x74(Matrix4& p_transform)
|
||||
{
|
||||
// TODO
|
||||
if (m_userNavFlag) {
|
||||
m_roi->WrappedSetLocalTransform(p_transform);
|
||||
FUN_10010c30();
|
||||
}
|
||||
else {
|
||||
m_roi->WrappedSetLocalTransform(p_transform);
|
||||
m_roi->VTable0x14();
|
||||
|
||||
if (m_cameraFlag) {
|
||||
FUN_10010c30();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// STUB: LEGO1 0x1002e790
|
||||
|
|
Loading…
Reference in a new issue