From 756dc9eb6b0a36c9dcb08cf588cf3b4f7aa14a25 Mon Sep 17 00:00:00 2001 From: divverent Date: Thu, 24 Dec 2009 08:15:39 +0000 Subject: [PATCH] try to notice uncompensated packet loss due to timeouts git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@9662 d7cf8633-e32d-0410-b094-e92efae38249 --- sv_user.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/sv_user.c b/sv_user.c index dfa9bb29..eec29870 100644 --- a/sv_user.c +++ b/sv_user.c @@ -620,8 +620,18 @@ void SV_ExecuteClientMoves(void) // discard (treat like lost) moves with too low distance from // the previous one to prevent hacks using float inaccuracy // clients will see this as packet loss in the netgraph + // this should also apply if a move cannot get + // executed because it came too late and + // already was performed serverside if(moveframetime < 0.0005) + { + // count the move as LOST if we don't + // execute it but it has higher + // sequence count + if(move->sequence > host_client->movesequence) + host_client->movement_count[(move->sequence) % NETGRAPH_PACKETS] = -1; continue; + } //Con_Printf("movesequence = %i (%i lost), moveframetime = %f\n", move->sequence, move->sequence ? move->sequence - host_client->movesequence - 1 : 0, moveframetime); host_client->cmd = *move; -- 2.39.2