summaryrefslogtreecommitdiffstats
path: root/src/peds/PedIK.cpp
diff options
context:
space:
mode:
authorSergeanur <s.anureev@yandex.ua>2021-08-21 12:25:42 +0200
committerSergeanur <s.anureev@yandex.ua>2021-08-21 12:25:42 +0200
commite0be6beb18e55338cda7a613bb9b8df798c81b17 (patch)
tree22514458646c67c2981ea368b00d474a50b4de86 /src/peds/PedIK.cpp
parentcar ctrl fixes (diff)
parentRemove cMissionAudio, move cAMCrime array outside of cPoliceRadioQueue (R* vision) (diff)
downloadre3-e0be6beb18e55338cda7a613bb9b8df798c81b17.tar
re3-e0be6beb18e55338cda7a613bb9b8df798c81b17.tar.gz
re3-e0be6beb18e55338cda7a613bb9b8df798c81b17.tar.bz2
re3-e0be6beb18e55338cda7a613bb9b8df798c81b17.tar.lz
re3-e0be6beb18e55338cda7a613bb9b8df798c81b17.tar.xz
re3-e0be6beb18e55338cda7a613bb9b8df798c81b17.tar.zst
re3-e0be6beb18e55338cda7a613bb9b8df798c81b17.zip
Diffstat (limited to 'src/peds/PedIK.cpp')
-rw-r--r--src/peds/PedIK.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/peds/PedIK.cpp b/src/peds/PedIK.cpp
index cf2e4ed5..3bc5796b 100644
--- a/src/peds/PedIK.cpp
+++ b/src/peds/PedIK.cpp
@@ -205,9 +205,15 @@ CPedIK::PointGunInDirection(float targetYaw, float targetPitch)
else if (status == ANGLES_SET_EXACTLY)
m_flags |= GUN_POINTED_SUCCESSFULLY;
}
- RwMatrix *m = GetBoneMatrix(m_ped, BONE_spine); // BUG: game uses index 2 directly, which happens to be identical to BONE_spine
+#ifdef FIX_BUGS
+ RwMatrix *m = GetBoneMatrix(m_ped, BONE_spine);
+#else
+ RpHAnimHierarchy* hier = GetAnimHierarchyFromSkinClump(m_ped->GetClump());
+ RwMatrix *mats = RpHAnimHierarchyGetMatrixArray(hier);
+ RwMatrix *m = &mats[2];
+#endif
RwV3d axis = { 0.0f, 0.0f, 0.0f };
- float axisangle = -CGeneral::LimitRadianAngle(Atan2(-m->at.y, -m->at.x) - m_ped->m_fRotationCur);
+ float axisangle = -CGeneral::LimitRadianAngle(Atan2(-m->up.y, -m->up.x) - m_ped->m_fRotationCur);
axis.y = -Sin(axisangle);
axis.z = Cos(axisangle);