From e3779b28dcaf053f15067269cb02fbff96bf437b Mon Sep 17 00:00:00 2001 From: toaster Date: Tue, 10 Jul 2018 13:29:44 +0100 Subject: [PATCH 1/4] Correction to the bug that prevented starting a server. --- src/d_clisrv.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/d_clisrv.c b/src/d_clisrv.c index f1e49b832..d1d99ecb6 100644 --- a/src/d_clisrv.c +++ b/src/d_clisrv.c @@ -3749,7 +3749,7 @@ static void HandlePacketFromAwayNode(SINT8 node) /// Also, according to HandleConnect, the server will send the savegame even during intermission... /// Sryder 2018-07-05: If we don't want to send the player config another way we need to send the gamestate /// At almost any gamestate there could be joiners... So just always send gamestate? - cl_mode = CL_DOWNLOADSAVEGAME; + cl_mode = ((node == servernode) ? CL_CONNECTED : CL_DOWNLOADSAVEGAME); #else cl_mode = CL_CONNECTED; #endif From 43252ca9621783bbee616a416c7b0bc639c0882d Mon Sep 17 00:00:00 2001 From: Sryder Date: Tue, 10 Jul 2018 19:21:59 +0100 Subject: [PATCH 2/4] User server instead of checking servernode For some reason both node and servernode are identical at that point. Both were 1 for the client when I tried it myself. --- src/d_clisrv.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/d_clisrv.c b/src/d_clisrv.c index d1d99ecb6..5aa105879 100644 --- a/src/d_clisrv.c +++ b/src/d_clisrv.c @@ -3749,7 +3749,7 @@ static void HandlePacketFromAwayNode(SINT8 node) /// Also, according to HandleConnect, the server will send the savegame even during intermission... /// Sryder 2018-07-05: If we don't want to send the player config another way we need to send the gamestate /// At almost any gamestate there could be joiners... So just always send gamestate? - cl_mode = ((node == servernode) ? CL_CONNECTED : CL_DOWNLOADSAVEGAME); + cl_mode = ((server) ? CL_CONNECTED : CL_DOWNLOADSAVEGAME); #else cl_mode = CL_CONNECTED; #endif From 4383894308f706de1bc6c9a57753d680e1b17679 Mon Sep 17 00:00:00 2001 From: toaster Date: Tue, 10 Jul 2018 19:39:11 +0100 Subject: [PATCH 3/4] Fix unpausing when you're a waitingplayers admin. --- src/d_netcmd.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/d_netcmd.c b/src/d_netcmd.c index f3aa3d8a9..81fd0da90 100644 --- a/src/d_netcmd.c +++ b/src/d_netcmd.c @@ -2269,7 +2269,7 @@ static void Command_Pause(void) if (cv_pause.value || server || (IsPlayerAdmin(consoleplayer))) { - if (modeattacking || !(gamestate == GS_LEVEL || gamestate == GS_INTERMISSION || gamestate == GS_VOTING)) + if (!paused && (modeattacking || !(gamestate == GS_LEVEL || gamestate == GS_INTERMISSION || gamestate == GS_VOTING || gamestate == GS_WAITINGPLAYERS))) { CONS_Printf(M_GetText("You can't pause here.\n")); return; From 7dcf286ffed2dcbb524bf54f77e7565cadc4131c Mon Sep 17 00:00:00 2001 From: toaster Date: Tue, 10 Jul 2018 19:51:34 +0100 Subject: [PATCH 4/4] While we're doing it, fix the animation/music happening while paused! --- src/f_finale.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/f_finale.c b/src/f_finale.c index d8e869b25..9f5dc1dc1 100644 --- a/src/f_finale.c +++ b/src/f_finale.c @@ -1043,6 +1043,9 @@ void F_StartWaitingPlayers(void) void F_WaitingPlayersTicker(void) { + if (paused) + return; + finalecount++; // dumb hack, only start the music on the 1st tick so if you instantly go into the map you aren't hearing a tic of music