From e30d4f954b9ec90632484b31673b7fe6185481a5 Mon Sep 17 00:00:00 2001
From: James R <justsomejames2@gmail.com>
Date: Thu, 8 Jul 2021 14:37:03 -0700
Subject: [PATCH] Revert netvars after demo finishes playback

(Demos do not call CL_Reset BTW.)
---
 src/command.c  | 4 +++-
 src/d_clisrv.c | 3 ++-
 2 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/src/command.c b/src/command.c
index 95b1fd67d8..da777310a9 100644
--- a/src/command.c
+++ b/src/command.c
@@ -1738,6 +1738,8 @@ void CV_SaveVars(UINT8 **p, boolean in_demo)
 static void CV_LoadVars(UINT8 **p,
 		consvar_t *(*got)(UINT8 **p, char **ret_value, boolean *ret_stealth))
 {
+	const boolean store = (client || demoplayback);
+
 	consvar_t *cvar;
 	UINT16 count;
 
@@ -1751,7 +1753,7 @@ static void CV_LoadVars(UINT8 **p,
 	{
 		if (cvar->flags & CV_NETVAR)
 		{
-			if (client && cvar->revert.v.string == NULL)
+			if (store && cvar->revert.v.string == NULL)
 			{
 				cvar->revert.v.const_munge = cvar->string;
 				cvar->revert.allocated = ( cvar->zstring != NULL );
diff --git a/src/d_clisrv.c b/src/d_clisrv.c
index 1549811c12..1d895c0e1e 100644
--- a/src/d_clisrv.c
+++ b/src/d_clisrv.c
@@ -2599,7 +2599,6 @@ void CL_Reset(void)
 	doomcom->numslots = 1;
 	SV_StopServer();
 	SV_ResetServer();
-	CV_RevertNetVars();
 
 	// make sure we don't leave any fileneeded gunk over from a failed join
 	fileneedednum = 0;
@@ -3231,6 +3230,8 @@ void SV_ResetServer(void)
 	// clear server_context
 	memset(server_context, '-', 8);
 
+	CV_RevertNetVars();
+
 	DEBFILE("\n-=-=-=-=-=-=-= Server Reset =-=-=-=-=-=-=-\n\n");
 }
 
-- 
GitLab