From 0ef9832592cc9cb41864108d076cb5d8fa70082b Mon Sep 17 00:00:00 2001 From: Zwip-Zwap Zapony <ZwipZwapZapony@gmail.com> Date: Sat, 11 Nov 2023 20:37:05 +0100 Subject: [PATCH] Update player->quittime while a server is idling --- src/netcode/d_clisrv.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/netcode/d_clisrv.c b/src/netcode/d_clisrv.c index 7804b068f7..bd5ec3736d 100644 --- a/src/netcode/d_clisrv.c +++ b/src/netcode/d_clisrv.c @@ -1275,7 +1275,7 @@ static void UpdatePingTable(void) } } -static void IdleUpdate(void) +static void IdleUpdate(boolean updatequittime) { INT32 i; if (!server || !netgame) @@ -1297,7 +1297,18 @@ static void IdleUpdate(void) } } else + { players[i].lastinputtime = 0; + + if (updatequittime && players[i].quittime) + { + players[i].quittime++; + + if (server && players[i].quittime >= (tic_t)FixedMul(cv_rejointimeout.value, 60 * TICRATE) + && !(players[i].quittime % TICRATE)) + SendKick(i, KICK_MSG_PLAYER_QUIT); + } + } } } @@ -1333,7 +1344,7 @@ void NetKeepAlive(void) GetPackets(); - IdleUpdate(); + IdleUpdate(true); #ifdef MASTERSERVER MasterClient_Ticker(); @@ -1455,7 +1466,7 @@ void NetUpdate(void) GetPackets(); // get packet from client or from server - IdleUpdate(); + IdleUpdate(false); // The client sends the command after receiving from the server // The server sends it before because this is better in single player -- GitLab