From 7152217faaaa2efc2871c364880e3e61705338c9 Mon Sep 17 00:00:00 2001 From: toaster Date: Wed, 17 Sep 2025 00:05:21 +0100 Subject: [PATCH] Resolve ring-racers#64 --- src/d_clisrv.c | 3 ++- src/d_clisrv.h | 1 + src/d_main.cpp | 1 + src/menus/play-online-server-browser.c | 3 +++ 4 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/d_clisrv.c b/src/d_clisrv.c index 48a53b265..73595b483 100644 --- a/src/d_clisrv.c +++ b/src/d_clisrv.c @@ -1587,6 +1587,7 @@ static void SendAskInfo(INT32 node) serverelem_t serverlist[MAXSERVERLIST]; UINT32 serverlistcount = 0; UINT32 serverlistultimatecount = 0; +boolean serverlistmode = false; static boolean resendserverlistnode[MAXNETNODES]; static tic_t serverlistepoch; @@ -1657,7 +1658,7 @@ static boolean SL_InsertServer(serverinfo_pak* info, SINT8 node) if (i == UINT32_MAX) { // Still not added to list... check for modifiedgame rejections - if (serverlistultimatecount) + if (serverlistmode) { // We're on the server browser page. We can reject based on our room. if ( diff --git a/src/d_clisrv.h b/src/d_clisrv.h index 8c05fa43f..5a9be5ca7 100644 --- a/src/d_clisrv.h +++ b/src/d_clisrv.h @@ -508,6 +508,7 @@ struct serverelem_t extern serverelem_t serverlist[MAXSERVERLIST]; extern UINT32 serverlistcount, serverlistultimatecount; +extern boolean serverlistmode; extern INT32 mapchangepending; // Points inside doomcom diff --git a/src/d_main.cpp b/src/d_main.cpp index 7c732927a..1775f612a 100644 --- a/src/d_main.cpp +++ b/src/d_main.cpp @@ -1209,6 +1209,7 @@ void D_ClearState(void) SV_StopServer(); SV_ResetServer(); serverlistultimatecount = 0; + serverlistmode = false; for (i = 0; i < MAXPLAYERS; i++) CL_ClearPlayer(i); diff --git a/src/menus/play-online-server-browser.c b/src/menus/play-online-server-browser.c index b28c0f66d..5282780b4 100644 --- a/src/menus/play-online-server-browser.c +++ b/src/menus/play-online-server-browser.c @@ -27,6 +27,7 @@ void M_ServerListFillDebug(void); static boolean M_ServerBrowserQuit(void) { serverlistultimatecount = 0; + serverlistmode = false; return true; } @@ -240,6 +241,8 @@ void M_ServersMenu(INT32 choice) // modified game check: no longer handled // we don't request a restart unless the filelist differs + serverlistmode = true; + CL_UpdateServerList(); mpmenu.ticker = 0;