summaryrefslogtreecommitdiff
path: root/src/client/entities.c
diff options
context:
space:
mode:
authorAndrey Nazarov <skuller@skuller.net>2014-11-28 12:44:28 +0300
committerAndrey Nazarov <skuller@skuller.net>2014-12-01 23:04:37 +0300
commitf3ace8348ea2f18e9b8530608b419e485274318c (patch)
treeee42c151de0dd4a16bda8fa4523749282c5373c6 /src/client/entities.c
parent2ea3dac6baa883430fc64916549347d6d39ee5ec (diff)
Interpolate client FOV between key frames.
This makes FOV change speed as seen by the player consistent between different variable server FPS rates. Fixes #90.
Diffstat (limited to 'src/client/entities.c')
-rw-r--r--src/client/entities.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/client/entities.c b/src/client/entities.c
index 82a08ff..9839c76 100644
--- a/src/client/entities.c
+++ b/src/client/entities.c
@@ -1211,10 +1211,6 @@ void CL_CalcViewValues(void)
cl.delta_angles[2] = LerpShort(ops->pmove.delta_angles[2], ps->pmove.delta_angles[2], lerp);
#endif
- // interpolate field of view
- cl.fov_x = lerp_client_fov(ops->fov, ps->fov, lerp);
- cl.fov_y = V_CalcFov(cl.fov_x, 4, 3);
-
// don't interpolate blend color
Vector4Copy(ps->blend, cl.refdef.blend);
@@ -1225,6 +1221,10 @@ void CL_CalcViewValues(void)
lerp = cl.keylerpfrac;
#endif
+ // interpolate field of view
+ cl.fov_x = lerp_client_fov(ops->fov, ps->fov, lerp);
+ cl.fov_y = V_CalcFov(cl.fov_x, 4, 3);
+
LerpVector(ops->viewoffset, ps->viewoffset, lerp, viewoffset);
AngleVectors(cl.refdef.viewangles, cl.v_forward, cl.v_right, cl.v_up);