From 3a12518a4f3897519c5578d154c597b8549b8dcf Mon Sep 17 00:00:00 2001 From: havoc Date: Fri, 6 Apr 2007 09:48:52 +0000 Subject: [PATCH] made the following changes to CL_NetworkTimeReceived: changed cl_nettimesyncmode 2 to be more tolerant of out of bounds values, this fixes occasional choppyness now prints warnings if time is out of bounds if developer is 10 or higher simplified some code disabled time interpolation code during signon process, this should give better starting values for cl.time git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@7060 d7cf8633-e32d-0410-b094-e92efae38249 --- cl_parse.c | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/cl_parse.c b/cl_parse.c index 857398c9..eb33a388 100644 --- a/cl_parse.c +++ b/cl_parse.c @@ -2767,22 +2767,27 @@ qboolean CL_ExaminePrintString(const char *text) static void CL_NetworkTimeReceived(double newtime) { - if (cls.timedemo || (cl.islocalgame && !sv_fixedframeratesingleplayer.integer)) - cl.mtime[1] = cl.mtime[0] = newtime; + if (cls.timedemo || (cl.islocalgame && !sv_fixedframeratesingleplayer.integer) || cl.mtime[0] == newtime || cls.signon < SIGNONS) + cl.time = cl.mtime[1] = cl.mtime[0] = newtime; else { cl.mtime[1] = max(cl.mtime[0], newtime - 0.1); cl.mtime[0] = newtime; - } - if (cl_nettimesyncmode.integer == 3) - cl.time = cl.mtime[1]; - if (cl_nettimesyncmode.integer == 2) - { - if (cl.time < cl.mtime[1] || cl.time > cl.mtime[0]) + if (developer.integer >= 10) + { + if (cl.time < cl.mtime[1] - (cl.mtime[0] - cl.mtime[1])) + Con_Printf("--- cl.time < cl.mtime[1] (%f < %f ... %f)\n", cl.time, cl.mtime[1], cl.mtime[0]); + else if (cl.time > cl.mtime[0] + (cl.mtime[0] - cl.mtime[1])) + Con_Printf("--- cl.time > cl.mtime[0] (%f > %f ... %f)\n", cl.time, cl.mtime[1], cl.mtime[0]); + } + if (cl_nettimesyncmode.integer == 2) + { + if (cl.time < cl.mtime[1] || cl.time > cl.mtime[0] + (cl.mtime[0] - cl.mtime[1])) + cl.time = cl.mtime[1]; + } + else if (cl_nettimesyncmode.integer) cl.time = cl.mtime[1]; } - else if (cl_nettimesyncmode.integer == 1) - cl.time = cl.mtime[1]; // this packet probably contains a player entity update, so we will need // to update the prediction cl.movement_needupdate = true; -- 2.39.2