From 8e62531ff9ac71be60b73b391d9fa4a7cc317b11 Mon Sep 17 00:00:00 2001 From: James R Date: Sun, 23 Oct 2022 13:54:54 -0700 Subject: [PATCH] Fix replay save dialog activating while chat is open --- src/g_demo.c | 13 +++++++++++++ src/g_demo.h | 2 ++ src/p_tick.c | 4 ++-- src/y_inter.c | 4 ++-- 4 files changed, 19 insertions(+), 4 deletions(-) diff --git a/src/g_demo.c b/src/g_demo.c index c025ff95d..58c6a8ac6 100644 --- a/src/g_demo.c +++ b/src/g_demo.c @@ -3937,3 +3937,16 @@ boolean G_DemoTitleResponder(event_t *ev) return true; } + +boolean G_CheckDemoTitleEntry(void) +{ + if (menuactive || chat_on) + return false; + + if (!G_PlayerInputDown(0, gc_b, 0) && !G_PlayerInputDown(0, gc_x, 0)) + return false; + + demo.savemode = DSM_TITLEENTRY; + + return true; +} diff --git a/src/g_demo.h b/src/g_demo.h index 53f49be4d..2dc93eef2 100644 --- a/src/g_demo.h +++ b/src/g_demo.h @@ -189,4 +189,6 @@ void G_SaveDemo(void); boolean G_DemoTitleResponder(event_t *ev); +boolean G_CheckDemoTitleEntry(void); + #endif // __G_DEMO__ diff --git a/src/p_tick.c b/src/p_tick.c index ad83abca6..34dccacbe 100644 --- a/src/p_tick.c +++ b/src/p_tick.c @@ -728,8 +728,8 @@ void P_Ticker(boolean run) G_WriteAllGhostTics(); if (cv_recordmultiplayerdemos.value && (demo.savemode == DSM_NOTSAVING || demo.savemode == DSM_WILLAUTOSAVE)) - if (demo.savebutton && demo.savebutton + 3*TICRATE < leveltime && !menuactive && (G_PlayerInputDown(0, gc_b, 0) || G_PlayerInputDown(0, gc_x, 0))) - demo.savemode = DSM_TITLEENTRY; + if (demo.savebutton && demo.savebutton + 3*TICRATE < leveltime) + G_CheckDemoTitleEntry(); } else if (demo.playback) // Use Ghost data for consistency checks. { diff --git a/src/y_inter.c b/src/y_inter.c index 34097718e..fd0383b5b 100644 --- a/src/y_inter.c +++ b/src/y_inter.c @@ -632,8 +632,8 @@ void Y_Ticker(void) if (demo.recording) { - if (demo.savemode == DSM_NOTSAVING && !menuactive && (G_PlayerInputDown(0, gc_b, 0) || G_PlayerInputDown(0, gc_x, 0))) - demo.savemode = DSM_TITLEENTRY; + if (demo.savemode == DSM_NOTSAVING) + G_CheckDemoTitleEntry(); if (demo.savemode == DSM_WILLSAVE || demo.savemode == DSM_WILLAUTOSAVE) G_SaveDemo();