Skip to content

Commit 367eb06

Browse files
Fix SetPedAimTarget from generating NaN's. (#4145)
* Fix SetPedAimTarget from generating NaN's. - Fix #492 aim direction and collision vector * Update CClientPed.cpp More readable way of fixing #492. --------- Co-authored-by: TEDERIs <[email protected]>
1 parent 3764762 commit 367eb06

File tree

1 file changed

+6
-6
lines changed

1 file changed

+6
-6
lines changed

Client/mods/deathmatch/logic/CClientPed.cpp

+6-6
Original file line numberDiff line numberDiff line change
@@ -1016,12 +1016,12 @@ void CClientPed::SetTargetTarget(unsigned long ulDelay, const CVector& vecSource
10161016
float fRadius = DistanceBetweenPoints3D(m_vecTargetSource, m_vecTargetTarget);
10171017

10181018
// Grab the angle of the source vector and the angle of the target vector relative to the source vector that applies
1019-
m_vecBeginTargetAngle.fX = acos((m_vecBeginTarget.fX - m_vecBeginSource.fX) / fRadius);
1020-
m_vecBeginTargetAngle.fY = acos((m_vecBeginTarget.fY - m_vecBeginSource.fY) / fRadius);
1021-
m_vecBeginTargetAngle.fZ = acos((m_vecBeginTarget.fZ - m_vecBeginSource.fZ) / fRadius);
1022-
m_vecTargetTargetAngle.fX = acos((m_vecTargetTarget.fX - m_vecTargetSource.fX) / fRadius);
1023-
m_vecTargetTargetAngle.fY = acos((m_vecTargetTarget.fY - m_vecTargetSource.fY) / fRadius);
1024-
m_vecTargetTargetAngle.fZ = acos((m_vecTargetTarget.fZ - m_vecTargetSource.fZ) / fRadius);
1019+
m_vecBeginTargetAngle.fX = acos(Clamp(-1.0f, (m_vecBeginTarget.fX - m_vecBeginSource.fX) / fRadius, 1.0f));
1020+
m_vecBeginTargetAngle.fY = acos(Clamp(-1.0f, (m_vecBeginTarget.fY - m_vecBeginSource.fY) / fRadius, 1.0f));
1021+
m_vecBeginTargetAngle.fZ = acos(Clamp(-1.0f, (m_vecBeginTarget.fZ - m_vecBeginSource.fZ) / fRadius, 1.0f));
1022+
m_vecTargetTargetAngle.fX = acos(Clamp(-1.0f, (m_vecTargetTarget.fX - m_vecTargetSource.fX) / fRadius, 1.0f));
1023+
m_vecTargetTargetAngle.fY = acos(Clamp(-1.0f, (m_vecTargetTarget.fY - m_vecTargetSource.fY) / fRadius, 1.0f));
1024+
m_vecTargetTargetAngle.fZ = acos(Clamp(-1.0f, (m_vecTargetTarget.fZ - m_vecTargetSource.fZ) / fRadius, 1.0f));
10251025

10261026
// Grab the angle to interpolate and make sure it's below pi and above -pi (shortest path of interpolation)
10271027
m_vecTargetInterpolateAngle = m_vecTargetTargetAngle - m_vecBeginTargetAngle;

0 commit comments

Comments
 (0)