From 1b604273d44a54cf4b60085747f7b8aed6f8b3c0 Mon Sep 17 00:00:00 2001 From: james Date: Wed, 13 Feb 2019 20:21:09 -0800 Subject: [PATCH] Wait for HU_Responder and friends to finish eating before viewpoint control --- src/g_game.c | 88 ++++++++++++++++++++++++++-------------------------- 1 file changed, 44 insertions(+), 44 deletions(-) diff --git a/src/g_game.c b/src/g_game.c index 8a8b021c..fabb6657 100644 --- a/src/g_game.c +++ b/src/g_game.c @@ -1823,50 +1823,6 @@ static INT32 spectatedelay, spectatedelay2, spectatedelay3, spectatedelay4 = 0; // boolean G_Responder(event_t *ev) { - // allow spy mode changes even during the demo - if (gamestate == GS_LEVEL && ev->type == ev_keydown - && (ev->data1 == KEY_F12 || ev->data1 == gamecontrol[gc_viewpoint][0] || ev->data1 == gamecontrol[gc_viewpoint][1])) - { - if (!demoplayback && (splitscreen || !netgame)) - displayplayer = consoleplayer; - else - { - displayplayer++; - G_ResetView(1); - - // change statusbar also if playing back demo - if (singledemo) - ST_changeDemoView(); - - return true; - } - } - - if (gamestate == GS_LEVEL && ev->type == ev_keydown && multiplayer && demoplayback) - { - if (ev->data1 == gamecontrolbis[gc_viewpoint][0] || ev->data1 == gamecontrolbis[gc_viewpoint][1]) - { - secondarydisplayplayer++; - G_ResetView(2); - - return true; - } - else if (ev->data1 == gamecontrol3[gc_viewpoint][0] || ev->data1 == gamecontrol3[gc_viewpoint][1]) - { - thirddisplayplayer++; - G_ResetView(3); - - return true; - } - else if (ev->data1 == gamecontrol4[gc_viewpoint][0] || ev->data1 == gamecontrol4[gc_viewpoint][1]) - { - fourthdisplayplayer++; - G_ResetView(4); - - return true; - } - } - // any other key pops up menu if in demos if (gameaction == ga_nothing && !singledemo && ((demoplayback && !modeattacking && !titledemo && !multiplayer) || gamestate == GS_TITLESCREEN)) @@ -1944,6 +1900,50 @@ boolean G_Responder(event_t *ev) if (HU_Responder(ev)) return true; // chat ate the event + // allow spy mode changes even during the demo + if (gamestate == GS_LEVEL && ev->type == ev_keydown + && (ev->data1 == KEY_F12 || ev->data1 == gamecontrol[gc_viewpoint][0] || ev->data1 == gamecontrol[gc_viewpoint][1])) + { + if (!demoplayback && (splitscreen || !netgame)) + displayplayer = consoleplayer; + else + { + displayplayer++; + G_ResetView(1); + + // change statusbar also if playing back demo + if (singledemo) + ST_changeDemoView(); + + return true; + } + } + + if (gamestate == GS_LEVEL && ev->type == ev_keydown && multiplayer && demoplayback) + { + if (ev->data1 == gamecontrolbis[gc_viewpoint][0] || ev->data1 == gamecontrolbis[gc_viewpoint][1]) + { + secondarydisplayplayer++; + G_ResetView(2); + + return true; + } + else if (ev->data1 == gamecontrol3[gc_viewpoint][0] || ev->data1 == gamecontrol3[gc_viewpoint][1]) + { + thirddisplayplayer++; + G_ResetView(3); + + return true; + } + else if (ev->data1 == gamecontrol4[gc_viewpoint][0] || ev->data1 == gamecontrol4[gc_viewpoint][1]) + { + fourthdisplayplayer++; + G_ResetView(4); + + return true; + } + } + // update keys current state G_MapEventsToControls(ev);