From: havoc Date: Fri, 6 Apr 2007 09:48:52 +0000 (+0000) Subject: made the following changes to CL_NetworkTimeReceived: X-Git-Tag: xonotic-v0.1.0preview~3359 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=3a12518a4f3897519c5578d154c597b8549b8dcf;p=xonotic%2Fdarkplaces.git 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 --- 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;