From 95d7dbf88303b0a0ca460a0b4ed26012328366f5 Mon Sep 17 00:00:00 2001 From: havoc Date: Sat, 20 Nov 2004 09:25:49 +0000 Subject: [PATCH] fix the unintentional framegroup timing reset that happened when the .frame field changed after more than 100ms since the previous change (this was causing corpses to suddenly stand up and then fall down quickly in Nexuiz) git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@4774 d7cf8633-e32d-0410-b094-e92efae38249 --- cl_main.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/cl_main.c b/cl_main.c index efbdc0a1..6ecfefb1 100644 --- a/cl_main.c +++ b/cl_main.c @@ -619,7 +619,10 @@ void CL_LinkNetworkEntity(entity_t *e) e->render.framelerp = 1; if (e->render.frame2time > e->render.frame1time) { - e->render.framelerp = (cl.time - e->render.frame2time) / (e->render.frame2time - e->render.frame1time); + // make sure frame lerp won't last longer than 100ms + // (this mainly helps with models that use framegroups and + // switch between them infrequently) + e->render.framelerp = (cl.time - e->render.frame2time) / min(e->render.frame2time - e->render.frame1time, 0.1); e->render.framelerp = bound(0, e->render.framelerp, 1); } } @@ -631,10 +634,6 @@ void CL_LinkNetworkEntity(entity_t *e) e->render.frame = e->render.frame2 = e->state_current.frame; e->render.frame2time = cl.time; e->render.framelerp = 0; - // make sure frame lerp won't last longer than 100ms - // (this mainly helps with models that use framegroups and - // switch between them infrequently) - e->render.frame1time = max(e->render.frame1time, e->render.frame2time - 0.1f); } R_LerpAnimation(&e->render); -- 2.39.2