]> de.git.xonotic.org Git - xonotic/darkplaces.git/commitdiff
made the following changes to CL_NetworkTimeReceived:
authorhavoc <havoc@d7cf8633-e32d-0410-b094-e92efae38249>
Fri, 6 Apr 2007 09:48:52 +0000 (09:48 +0000)
committerhavoc <havoc@d7cf8633-e32d-0410-b094-e92efae38249>
Fri, 6 Apr 2007 09:48:52 +0000 (09:48 +0000)
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

index 857398c9d39ba43a902787d9b95c91fa689e3186..eb33a388fdf413e19ef9e24485bd8ea5f7032b21 100644 (file)
@@ -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;