From: cloudwalk Date: Wed, 1 Jul 2020 16:18:20 +0000 (+0000) Subject: Tell clients to reconnect before loading the next map. Should fix lag/stutter X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=b30c46fb9423afb892b639de58ade85d5dbed03e;p=xonotic%2Fdarkplaces.git Tell clients to reconnect before loading the next map. Should fix lag/stutter There is a noticable stutter/connection loss/lag when changing level in some games, notably Xonotic. This is likely because the server already started loading the world before telling clients to reconnect, which can be an expensive process depending on the map. git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@12770 d7cf8633-e32d-0410-b094-e92efae38249 --- diff --git a/sv_main.c b/sv_main.c index 6d967254..f89c3073 100644 --- a/sv_main.c +++ b/sv_main.c @@ -3440,6 +3440,15 @@ void SV_SpawnServer (const char *server) if(sv.active) { + client_t *client; + for (i = 0, client = svs.clients;i < svs.maxclients;i++, client++) + { + if (client->netconnection) + { + MSG_WriteByte(&client->netconnection->message, svc_stufftext); + MSG_WriteString(&client->netconnection->message, "reconnect\n"); + } + } World_End(&sv.world); if(PRVM_serverfunction(SV_Shutdown)) { @@ -3482,23 +3491,8 @@ void SV_SpawnServer (const char *server) // // tell all connected clients that we are going to a new level // - if (sv.active) - { - client_t *client; - for (i = 0, client = svs.clients;i < svs.maxclients;i++, client++) - { - if (client->netconnection) - { - MSG_WriteByte(&client->netconnection->message, svc_stufftext); - MSG_WriteString(&client->netconnection->message, "reconnect\n"); - } - } - } - else - { - // open server port + if (!sv.active) NetConn_OpenServerPorts(true); - } // // make cvars consistant