Move a bunch of math to cpp files + small fixes

# Conflicts:
#	src/control/CarCtrl.cpp
#	src/math/Matrix.h
#	src/math/Vector2D.h
#	src/math/math.cpp
#	src/render/Skidmarks.cpp
This commit is contained in:
Sergeanur
2020-09-14 20:48:49 +03:00
parent 25a22cc6f2
commit a8a28c1512
13 changed files with 820 additions and 508 deletions

View File

@ -700,7 +700,7 @@ CGlass::WindowRespondsToExplosion(CEntity *entity, CVector point)
if ( fDistToGlass < 10.0f )
{
distToGlass.Normalise(0.3f);
distToGlass *= (0.3f / fDistToGlass); // normalise
WindowRespondsToCollision(object, 10000.0f, distToGlass, object->GetPosition(), true);
}
else

View File

@ -215,10 +215,11 @@ CSkidmarks::RegisterOne(uintptr id, const CVector &pos, float fwdX, float fwdY,
aSkidmarks[i].m_pos[aSkidmarks[i].m_last] = pos;
CVector2D dist = aSkidmarks[i].m_pos[aSkidmarks[i].m_last] - aSkidmarks[i].m_pos[aSkidmarks[i].m_last-1];
dist.Normalise();
CVector2D right(aSkidmarks[i].m_pos[aSkidmarks[i].m_last].y - aSkidmarks[i].m_pos[aSkidmarks[i].m_last - 1].y,
aSkidmarks[i].m_pos[aSkidmarks[i].m_last - 1].x - aSkidmarks[i].m_pos[aSkidmarks[i].m_last].x);
right.Normalise();
fwd.Normalise();
CVector2D right(dist.y, -dist.x);
float turn = DotProduct2D(fwd, right);
turn = Abs(turn) + 1.0f;
aSkidmarks[i].m_sideX[aSkidmarks[i].m_last] = right.x * turn * 0.125f;

View File

@ -140,8 +140,7 @@ void CWaterCannon::Render(void)
if ( !bInit )
{
CVector cp = CrossProduct(m_avecPos[pointB] - m_avecPos[pointA], TheCamera.GetForward());
cp.Normalise(0.05f);
norm = cp;
norm = cp * (0.05f / cp.Magnitude());
bInit = true;
}