From 0b60831189184c985b730932b6e26f6ada3d9558 Mon Sep 17 00:00:00 2001 From: Alug Date: Tue, 2 Dec 2025 20:49:47 +0100 Subject: [PATCH] dont call CON_Drawer during frameskip, just call CON_MoveConsole instead fixes the issue at hand, without making the console flicker in gifs sigh.... --- src/console.c | 11 ++++++++--- src/console.h | 1 + src/d_main.cpp | 6 +++--- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/src/console.c b/src/console.c index deae1fe9b..14c295e2c 100644 --- a/src/console.c +++ b/src/console.c @@ -631,12 +631,18 @@ static void CON_ChangeHeight(void) // Handles Console moves in/out of screen (per frame) // -static void CON_MoveConsole(void) +void CON_MoveConsole(void) { static fixed_t fracmovement = 0; Lock_state(); + if (con_curlines == con_destlines) + { + Unlock_state(); + return; + } + // instant if (!cons_speed.value) { @@ -1620,8 +1626,7 @@ void CON_Drawer(void) } // console movement - if (con_curlines != con_destlines) - CON_MoveConsole(); + CON_MoveConsole(); if (con_curlines > 0) CON_DrawConsole(); diff --git a/src/console.h b/src/console.h index bcc503a21..21bb81aa5 100644 --- a/src/console.h +++ b/src/console.h @@ -81,6 +81,7 @@ void CON_ClearHUD(void); // clear heads up messages void CON_Ticker(void); void CON_Drawer(void); +void CON_MoveConsole(void); void CONS_Error(const char *msg); // print out error msg, and wait a key // force console to move out diff --git a/src/d_main.cpp b/src/d_main.cpp index 631b94e3c..1af4e6b74 100644 --- a/src/d_main.cpp +++ b/src/d_main.cpp @@ -1089,9 +1089,9 @@ void D_SRB2Loop(void) } else if (!dedicated && frameskip) { - // always update console and hud - // otherwise it may take minutes to open it - CON_Drawer(); + // always update console movement + // otherwise it will takes literal ages to open + CON_MoveConsole(); } }