2
0
mirror of https://github.com/AxioDL/metaforce.git synced 2025-12-08 22:27:43 +00:00

Bug fixes

This commit is contained in:
Jack Andersen
2017-11-28 00:06:40 -10:00
parent 5ed7bd7c45
commit 7951cb1ee0
10 changed files with 36 additions and 30 deletions

View File

@@ -79,8 +79,7 @@ zeus::CTransform CGameCamera::ValidateCameraTransform(const zeus::CTransform& a,
if ((a.rightVector().magnitude() - 1.f) >= epsilon || (a.frontVector().magnitude() - 1.f) >= epsilon ||
(a.upVector().magnitude() - 1.f) >= epsilon)
xfCpy.orthonormalize();
float f2 = zeus::CVector3f::skUp.x + a.upVector().x * a.upVector().y * a.upVector().z *
zeus::CVector3f::skUp.y + zeus::CVector3f::skUp.z;
float f2 = a.basis[1].dot(zeus::CVector3f::skUp);
if (std::fabs(f2) > 1.0f)
f2 = (f2 >= -0.f ? -1.0f : 1.0f);
if (std::fabs(f2) > 0.999f)
@@ -89,7 +88,7 @@ zeus::CTransform CGameCamera::ValidateCameraTransform(const zeus::CTransform& a,
if (xfCpy.upVector().z < -0.2f)
xfCpy = zeus::CQuaternion::fromAxisAngle(xfCpy.frontVector(), M_PIF).toTransform() * xfCpy;
if (std::fabs(xfCpy.rightVector().z - 0.f) >= 0.000009f && std::fabs(xfCpy.upVector().z - 0.f) > 0.000009f)
if (std::fabs(xfCpy.rightVector().z) >= 0.000009f && std::fabs(xfCpy.upVector().z) > 0.000009f)
{
if (xfCpy.frontVector().canBeNormalized())
xfCpy = zeus::lookAt(zeus::CUnitVector3f(xfCpy.frontVector(), true), zeus::CVector3f::skZero);