aboutsummaryrefslogtreecommitdiffstats
path: root/code/server
diff options
context:
space:
mode:
authortma <tma@edf5b092-35ff-0310-97b2-ce42778d08ea>2009-10-15 23:39:19 +0000
committertma <tma@edf5b092-35ff-0310-97b2-ce42778d08ea>2009-10-15 23:39:19 +0000
commitbf006e8493643f1651c154b4e6d3418d2d8e5798 (patch)
tree197da33f5708565966cf002332c92aab36a55850 /code/server
parent02b51e4a9ac19c690ee5a9e7fc733608fb2965e8 (diff)
downloadioquake3-aero-bf006e8493643f1651c154b4e6d3418d2d8e5798.tar.gz
ioquake3-aero-bf006e8493643f1651c154b4e6d3418d2d8e5798.zip
* (bug #4232) Avoid "cl.snap.serverTime < cl.oldFrameServerTime" for slow
loading clients combined with short g_warmups git-svn-id: svn://svn.icculus.org/quake3/trunk@1670 edf5b092-35ff-0310-97b2-ce42778d08ea
Diffstat (limited to 'code/server')
-rw-r--r--code/server/sv_ccmds.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/code/server/sv_ccmds.c b/code/server/sv_ccmds.c
index 56a510f..8802b3c 100644
--- a/code/server/sv_ccmds.c
+++ b/code/server/sv_ccmds.c
@@ -278,6 +278,15 @@ static void SV_MapRestart_f( void ) {
sv.serverId = com_frameTime;
Cvar_Set( "sv_serverid", va("%i", sv.serverId ) );
+ // if a map_restart occurs while a client is changing maps, we need
+ // to give them the correct time so that when they finish loading
+ // they don't violate the backwards time check in cl_cgame.c
+ for (i=0 ; i<sv_maxclients->integer ; i++) {
+ if (svs.clients[i].state >= CS_CONNECTED) {
+ svs.clients[i].oldServerTime = sv.restartTime;
+ }
+ }
+
// reset all the vm data in place without changing memory allocation
// note that we do NOT set sv.state = SS_LOADING, so configstrings that
// had been changed from their default values will generate broadcast updates