diff options
author | Nikolay Korolev <nickvnuk@gmail.com> | 2020-04-25 11:15:29 +0200 |
---|---|---|
committer | Nikolay Korolev <nickvnuk@gmail.com> | 2020-04-25 11:15:29 +0200 |
commit | 34ef766c67b50b6abf4a05a77521e2393b116cca (patch) | |
tree | 3005e50fdcd82c3a9dc604fdcd89e694d5f621b8 /src/core/Cam.cpp | |
parent | undo (diff) | |
parent | disable mouse steering by default (diff) | |
download | re3-34ef766c67b50b6abf4a05a77521e2393b116cca.tar re3-34ef766c67b50b6abf4a05a77521e2393b116cca.tar.gz re3-34ef766c67b50b6abf4a05a77521e2393b116cca.tar.bz2 re3-34ef766c67b50b6abf4a05a77521e2393b116cca.tar.lz re3-34ef766c67b50b6abf4a05a77521e2393b116cca.tar.xz re3-34ef766c67b50b6abf4a05a77521e2393b116cca.tar.zst re3-34ef766c67b50b6abf4a05a77521e2393b116cca.zip |
Diffstat (limited to '')
-rw-r--r-- | src/core/Cam.cpp | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/src/core/Cam.cpp b/src/core/Cam.cpp index e9bbb5a7..801652cb 100644 --- a/src/core/Cam.cpp +++ b/src/core/Cam.cpp @@ -2789,17 +2789,20 @@ CCam::Process_1rstPersonPedOnPC(const CVector&, float TargetOrientation, float, if(CamTargetEntity->IsPed()){ // static bool FailedTestTwelveFramesAgo = false; // unused - RwV3d HeadPos = vecHeadCamOffset; + CVector HeadPos = vecHeadCamOffset; CVector TargetCoors; - // needs fix for SKINNING - RwFrame *frm = ((CPed*)CamTargetEntity)->GetNodeFrame(PED_HEAD); + ((CPed*)CamTargetEntity)->TransformToNode(HeadPos, PED_HEAD); + // This is done on PC, but checking for the clump frame is not necessary apparently +/* + RwFrame *frm = ((CPed*)CamTargetEntity)->m_pFrames[PED_HEAD]->frame; while(frm){ RwV3dTransformPoints(&HeadPos, &HeadPos, 1, RwFrameGetMatrix(frm)); frm = RwFrameGetParent(frm); if(frm == RpClumpGetFrame(CamTargetEntity->GetClump())) frm = nil; } +*/ if(ResetStatics){ Beta = TargetOrientation; @@ -2826,13 +2829,13 @@ CCam::Process_1rstPersonPedOnPC(const CVector&, float TargetOrientation, float, m_vecBufferedPlayerBodyOffset.z = TheCamera.m_fGaitSwayBuffer * m_vecBufferedPlayerBodyOffset.z + (1.0f-TheCamera.m_fGaitSwayBuffer) * HeadPos.z; - HeadPos = (CamTargetEntity->GetMatrix() * m_vecBufferedPlayerBodyOffset).toRwV3d(); + HeadPos = (CamTargetEntity->GetMatrix() * m_vecBufferedPlayerBodyOffset); }else{ float HeadDelta = (HeadPos - InitialHeadPos).Magnitude2D(); CVector Fwd = CamTargetEntity->GetForward(); Fwd.z = 0.0f; Fwd.Normalise(); - HeadPos = (HeadDelta*1.23f*Fwd + CamTargetEntity->GetPosition()).toRwV3d(); + HeadPos = (HeadDelta*1.23f*Fwd + CamTargetEntity->GetPosition()); HeadPos.z += 0.59f; } Source = HeadPos; |