diff options
author | Andrey Nazarov <skuller@skuller.net> | 2014-11-28 12:44:28 +0300 |
---|---|---|
committer | Andrey Nazarov <skuller@skuller.net> | 2014-12-01 23:04:37 +0300 |
commit | f3ace8348ea2f18e9b8530608b419e485274318c (patch) | |
tree | ee42c151de0dd4a16bda8fa4523749282c5373c6 /src/client/entities.c | |
parent | 2ea3dac6baa883430fc64916549347d6d39ee5ec (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.c | 8 |
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); |