]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - sv_user.c
combined glClear calls, may be a speedup
[xonotic/darkplaces.git] / sv_user.c
index 400627942b1960f3d1b7ee82544ca88ee48cd35b..12ef6157b964a51d775e7a9beab341299d52f2f8 100644 (file)
--- a/sv_user.c
+++ b/sv_user.c
@@ -456,16 +456,25 @@ void SV_ReadClientMove (usercmd_t *move)
        host_client->ping_times[host_client->num_pings%NUM_PING_TIMES]
                = sv.time - MSG_ReadFloat ();
        host_client->num_pings++;
+       for (i=0, total = 0;i < NUM_PING_TIMES;i++)
+               total += host_client->ping_times[i];
+       host_client->ping = total / NUM_PING_TIMES; // can be used for prediction
+       if (!sv.paused && (svs.maxclients > 1 || key_dest == key_game) ) // if paused for any reason, don't predict
+               host_client->latency = host_client->ping + sv_frametime; // push ahead by ticrate
        if ((val = GETEDICTFIELDVALUE(host_client->edict, eval_ping)))
+               val->_float = host_client->ping * 1000.0;
+
+// read current angles
+       if (dpprotocol)
        {
-               for (i=0, total = 0;i < NUM_PING_TIMES;i++)
-                       total += host_client->ping_times[i];
-               val->_float = 1000.0 / NUM_PING_TIMES;
+               for (i=0 ; i<3 ; i++)
+                       angle[i] = MSG_ReadPreciseAngle ();
+       }
+       else
+       {
+               for (i=0 ; i<3 ; i++)
+                       angle[i] = MSG_ReadAngle ();
        }
-
-// read current angles 
-       for (i=0 ; i<3 ; i++)
-               angle[i] = MSG_ReadAngle ();
 
        VectorCopy (angle, host_client->edict->v.v_angle);