From fffe82b8631bee7faeed9a631458bfdd8ae95b25 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 f1e49b83..d1d99ecb 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 bbbc0d38208a4bc5e8746e437553c64dc46cd6dc 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 d1d99ecb..5aa10587 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 c65a2e31770b105761283c93fbb52c0522c824cf 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 f3aa3d8a..81fd0da9 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 0accb8fca7522706ee89c6591245551430e36de5 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 d8e869b2..9f5dc1dc 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