From 01e2a26689b550d86975978343ea537053e9f82e Mon Sep 17 00:00:00 2001 From: James R Date: Mon, 14 Aug 2023 05:05:21 -0700 Subject: [PATCH] DEVELOP: let us spectate or pause the game at all times TODO: This should be available as a debugging option at release, since it would be useful for addon authors. I don't want to make more cvars, those are getting cluttered and should maybe be coalesced into a single debugging option. --- src/d_netcmd.c | 6 ++++++ src/g_game.c | 4 ++++ src/k_battle.c | 3 +++ src/p_inter.c | 8 ++++++++ src/p_mobj.c | 3 +++ 5 files changed, 24 insertions(+) diff --git a/src/d_netcmd.c b/src/d_netcmd.c index 68abb753f..f49647810 100644 --- a/src/d_netcmd.c +++ b/src/d_netcmd.c @@ -3690,11 +3690,14 @@ static void Command_Pause(void) CONS_Printf(M_GetText("You can't pause here.\n")); return; } + // TODO: this would make a great debug feature for release +#ifndef DEVELOP else if (modeattacking) // in time attack, pausing restarts the map { //M_ModeAttackRetry(0); // directly call from m_menu; return; } +#endif SendNetXCmd(XD_PAUSE, &buf, 2); } @@ -3715,8 +3718,11 @@ static void Got_Pause(UINT8 **cp, INT32 playernum) return; } + // TODO: this would make a great debug feature for release +#ifndef DEVELOP if (modeattacking && !demo.playback) return; +#endif paused = READUINT8(*cp); dedicatedpause = READUINT8(*cp); diff --git a/src/g_game.c b/src/g_game.c index e108861df..08fc60159 100644 --- a/src/g_game.c +++ b/src/g_game.c @@ -3318,6 +3318,10 @@ boolean G_GametypeHasTeams(void) // boolean G_GametypeHasSpectators(void) { + // TODO: this would make a great debug feature for release +#ifdef DEVELOP + return true; +#endif return (netgame || (multiplayer && demo.netgame)); } diff --git a/src/k_battle.c b/src/k_battle.c index 66e98561c..837f173b4 100644 --- a/src/k_battle.c +++ b/src/k_battle.c @@ -127,7 +127,10 @@ void K_CheckBumpers(void) { if (nobumpers > 0 && nobumpers >= numingame) { + // TODO: this would make a great debug feature for release +#ifndef DEVELOP P_DoAllPlayersExit(PF_NOCONTEST, false); +#endif return; } } diff --git a/src/p_inter.c b/src/p_inter.c index fb2a7a071..918c3faca 100644 --- a/src/p_inter.c +++ b/src/p_inter.c @@ -1998,7 +1998,15 @@ static boolean P_KillPlayer(player_t *player, mobj_t *inflictor, mobj_t *source, if (!player->exiting && (specialstageinfo.valid == true || modeattacking & ATTACKING_SPB)) { + // TODO: this would make a great debug feature for release +#ifdef DEVELOP + if (type != DMG_SPECTATOR) + { + P_DoPlayerExit(player, PF_NOCONTEST); + } +#else P_DoPlayerExit(player, PF_NOCONTEST); +#endif } if (player->exiting) diff --git a/src/p_mobj.c b/src/p_mobj.c index ddcce4818..e3abdee26 100644 --- a/src/p_mobj.c +++ b/src/p_mobj.c @@ -11841,7 +11841,10 @@ void P_SpawnPlayer(INT32 playernum) } else // Otherwise, never spectator. { + // TODO: this would make a great debug feature for release +#ifndef DEVELOP p->spectator = false; +#endif } }