From ea5a71c40803dccd3a0f7691acb9252e14642cfb Mon Sep 17 00:00:00 2001 From: havoc Date: Fri, 2 Feb 2007 14:39:13 +0000 Subject: [PATCH] moved interpolation of viewangles when playing back demos or spectating someone to a better place, this should work better with csqc git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@6772 d7cf8633-e32d-0410-b094-e92efae38249 --- cl_main.c | 14 ++++++++++++++ view.c | 15 --------------- 2 files changed, 14 insertions(+), 15 deletions(-) diff --git a/cl_main.c b/cl_main.c index 9380a58e..3086515d 100644 --- a/cl_main.c +++ b/cl_main.c @@ -1473,6 +1473,20 @@ void CL_LerpPlayer(float frac) cl.punchvector[i] = cl.mpunchvector[1][i] + frac * (cl.mpunchvector[0][i] - cl.mpunchvector[1][i]); cl.velocity[i] = cl.mvelocity[1][i] + frac * (cl.mvelocity[0][i] - cl.mvelocity[1][i]); } + + // interpolate the angles if playing a demo or spectating someone + if (cls.demoplayback || cl.fixangle[0]) + { + for (i = 0;i < 3;i++) + { + float d = cl.mviewangles[0][i] - cl.mviewangles[1][i]; + if (d > 180) + d -= 360; + else if (d < -180) + d += 360; + cl.viewangles[i] = cl.mviewangles[1][i] + frac * d; + } + } } void CSQC_RelinkAllEntities (int drawmask) diff --git a/view.c b/view.c index c3ccb51f..00281912 100644 --- a/view.c +++ b/view.c @@ -369,21 +369,6 @@ void V_CalcRefdef (void) oldz = vieworg[2]; cl.stairoffset = bound(-16, cl.stairoffset, 16); - // interpolate the angles if playing a demo or spectating someone - if (cls.demoplayback || cl.fixangle[0]) - { - int i; - float frac = bound(0, (cl.time - cl.mtime[1]) / (cl.mtime[0] - cl.mtime[1]), 1); - for (i = 0;i < 3;i++) - { - float d = cl.mviewangles[0][i] - cl.mviewangles[1][i]; - if (d > 180) - d -= 360; - else if (d < -180) - d += 360; - viewangles[i] = cl.mviewangles[1][i] + frac * d; - } - } if (cl.intermission) { // entity is a fixed camera, just copy the matrix -- 2.39.2