From d00cc7cddbe5c081371d423cbedb30f8a976be8b Mon Sep 17 00:00:00 2001 From: James R Date: Mon, 25 Mar 2019 16:17:02 -0700 Subject: [PATCH] Prevent just anyone from skipping credits but allow admins exitlevel works too --- src/d_netcmd.c | 2 +- src/g_game.c | 9 ++++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/d_netcmd.c b/src/d_netcmd.c index 11b9413a8..9d8b5961b 100644 --- a/src/d_netcmd.c +++ b/src/d_netcmd.c @@ -4015,7 +4015,7 @@ static void Command_ExitLevel_f(void) CONS_Printf(M_GetText("This only works in a netgame.\n")); else if (!(server || (IsPlayerAdmin(consoleplayer)))) CONS_Printf(M_GetText("Only the server or a remote admin can use this.\n")); - else if (gamestate != GS_LEVEL || demoplayback) + else if (( gamestate != GS_LEVEL && gamestate != GS_CREDITS ) || demoplayback) CONS_Printf(M_GetText("You must be in a level to use this.\n")); else SendNetXCmd(XD_EXITLEVEL, NULL, 0); diff --git a/src/g_game.c b/src/g_game.c index 213c3b83e..748570009 100644 --- a/src/g_game.c +++ b/src/g_game.c @@ -15,6 +15,7 @@ #include "console.h" #include "d_main.h" #include "d_player.h" +#include "d_clisrv.h" #include "f_finale.h" #include "p_setup.h" #include "p_saveg.h" @@ -1873,7 +1874,9 @@ boolean G_Responder(event_t *ev) if (F_CreditResponder(ev)) { - F_StartGameEvaluation(); + // Skip credits for everyone + if (!netgame || server || IsPlayerAdmin(consoleplayer)) + SendNetXCmd(XD_EXITLEVEL, NULL, 0); return true; } } @@ -2690,6 +2693,10 @@ void G_ExitLevel(void) // Remove CEcho text on round end. HU_ClearCEcho(); } + else if (gamestate == GS_CREDITS) + { + F_StartGameEvaluation(); + } } //