From e30b0c273de9228dc3ae40f0ac94e7e26f3f6c7f Mon Sep 17 00:00:00 2001 From: toaster Date: Fri, 1 Sep 2023 19:24:27 +0100 Subject: [PATCH] G_Responder: Call HU_Responder in Playing(), instead of a whitelisted set of gamestates Neatly sidesteps a class of bugs where whenever we added a new gamestate accessible in netplay, chat was console-only. --- src/g_game.c | 39 ++++++++------------------------------- 1 file changed, 8 insertions(+), 31 deletions(-) diff --git a/src/g_game.c b/src/g_game.c index 679a8d3d4..9905bc76f 100644 --- a/src/g_game.c +++ b/src/g_game.c @@ -2243,13 +2243,20 @@ boolean G_Responder(event_t *ev) return false; } - if (gamestate == GS_LEVEL) + if (Playing()) { + // If you're playing, chat is real. + // Neatly sidesteps a class of bugs where whenever we add a + // new gamestate accessible in netplay, chat was console-only. if (HU_Responder(ev)) { hu_keystrokes = true; return true; // chat ate the event } + } + + if (gamestate == GS_LEVEL) + { if (AM_Responder(ev)) return true; // automap ate it // map the event (key/mouse/joy) to a gamecontrol @@ -2265,12 +2272,6 @@ boolean G_Responder(event_t *ev) } else if (gamestate == GS_CUTSCENE) { - if (HU_Responder(ev)) - { - hu_keystrokes = true; - return true; // chat ate the event - } - if (F_CutsceneResponder(ev)) { D_StartTitle(); @@ -2279,12 +2280,6 @@ boolean G_Responder(event_t *ev) } else if (gamestate == GS_CREDITS) // todo: keep ending here? { - if (HU_Responder(ev)) - { - hu_keystrokes = true; - return true; // chat ate the event - } - if (F_CreditResponder(ev)) { // Skip credits for everyone @@ -2297,12 +2292,6 @@ boolean G_Responder(event_t *ev) } else if (gamestate == GS_BLANCREDITS) { - if (HU_Responder(ev)) - { - hu_keystrokes = true; - return true; // chat ate the event - } - if (F_CreditResponder(ev)) { // Skip credits for everyone @@ -2315,12 +2304,6 @@ boolean G_Responder(event_t *ev) } else if (gamestate == GS_SECRETCREDITS) { - if (HU_Responder(ev)) - { - hu_keystrokes = true; - return true; // chat ate the event - } - if (F_CreditResponder(ev)) { // Skip credits for everyone @@ -2331,12 +2314,6 @@ boolean G_Responder(event_t *ev) return true; } } - else if (gamestate == GS_INTERMISSION || gamestate == GS_VOTING || gamestate == GS_EVALUATION) - if (HU_Responder(ev)) - { - hu_keystrokes = true; - return true; // chat ate the event - } // allow spy mode changes even during the demo if (gamestate == GS_LEVEL && ev->type == ev_keydown