From 4351733ffec291ec97d77ab1618b39865af4217e Mon Sep 17 00:00:00 2001 From: ceski <56656010+ceski-1@users.noreply.github.com> Date: Thu, 14 Dec 2023 06:26:03 -0800 Subject: [PATCH 1/2] Don't limit menus to 35 fps (#1324) --- src/d_loop.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/d_loop.c b/src/d_loop.c index d2abec92..c7b24558 100644 --- a/src/d_loop.c +++ b/src/d_loop.c @@ -728,7 +728,7 @@ void TryRunTics (void) // [AM] If we've uncapped the framerate and there are no tics // to run, return early instead of waiting around. - #define return_early (uncapped && counts == 0 && leveltime > oldleveltime) + #define return_early (uncapped && counts == 0) // get real tics entertic = I_GetTime() / ticdup; From 9fe555ed2600efb29533f9110e09c0c34bfc8157 Mon Sep 17 00:00:00 2001 From: Fabian Greffrath Date: Thu, 14 Dec 2023 15:43:04 +0100 Subject: [PATCH 2/2] allow to show level stats "on HUD" only (#1325) * allow to show level stats "on HUD" only Fixes #1322 * selectively enable/disable stats/time on Automap/HUD with the key binding * some shorter check --- src/hu_stuff.c | 14 +++++++------- src/hu_stuff.h | 8 ++++++++ src/m_menu.c | 30 ++++++++++++++++++++++++++---- src/m_misc.c | 12 ++++++------ 4 files changed, 47 insertions(+), 17 deletions(-) diff --git a/src/hu_stuff.c b/src/hu_stuff.c index b0b1988d..ea124a6c 100644 --- a/src/hu_stuff.c +++ b/src/hu_stuff.c @@ -1471,7 +1471,7 @@ void WI_DrawTimeWidget(void) { const hu_widget_t w = {&w_sttime, align_left, align_top}; - if (hud_level_time == 2) + if (hud_level_time & HUD_WIDGET_HUD) { HUlib_reset_align_offsets(); // leveltime is already added to totalleveltimes before WI_Start() @@ -1632,15 +1632,15 @@ void HU_Ticker(void) if (automapactive) { - HU_cond_build_widget(&w_monsec, hud_level_stats); - HU_cond_build_widget(&w_sttime, hud_level_time); - HU_cond_build_widget(&w_coord, STRICTMODE(hud_player_coords)); + HU_cond_build_widget(&w_monsec, hud_level_stats & HUD_WIDGET_AUTOMAP); + HU_cond_build_widget(&w_sttime, hud_level_time & HUD_WIDGET_AUTOMAP); + HU_cond_build_widget(&w_coord, STRICTMODE(hud_player_coords) & HUD_WIDGET_AUTOMAP); } else { - HU_cond_build_widget(&w_monsec, hud_level_stats == 2); - HU_cond_build_widget(&w_sttime, hud_level_time == 2); - HU_cond_build_widget(&w_coord, STRICTMODE(hud_player_coords) == 2); + HU_cond_build_widget(&w_monsec, hud_level_stats & HUD_WIDGET_HUD); + HU_cond_build_widget(&w_sttime, hud_level_time & HUD_WIDGET_HUD); + HU_cond_build_widget(&w_coord, STRICTMODE(hud_player_coords) & HUD_WIDGET_HUD); } HU_cond_build_widget(&w_fps, plr->cheats & CF_SHOWFPS); diff --git a/src/hu_stuff.h b/src/hu_stuff.h index cdb69a02..8b1f5a54 100644 --- a/src/hu_stuff.h +++ b/src/hu_stuff.h @@ -84,6 +84,14 @@ extern int crispy_hud; extern int hud_crosshair; extern boolean hud_crosshair_health; +enum +{ + HUD_WIDGET_OFF, + HUD_WIDGET_AUTOMAP, + HUD_WIDGET_HUD, + HUD_WIDGET_ALWAYS, +}; + typedef enum { crosstarget_off, diff --git a/src/m_menu.c b/src/m_menu.c index 9771a8c0..62230aef 100644 --- a/src/m_menu.c +++ b/src/m_menu.c @@ -3298,7 +3298,7 @@ enum { }; static const char *show_widgets_strings[] = { - "OFF", "ON AUTOMAP", "ALWAYS", NULL + "OFF", "ON AUTOMAP", "ON HUD", "ALWAYS", NULL }; setup_menu_t stat_settings1[] = // Status Bar and HUD Settings screen @@ -5268,10 +5268,32 @@ boolean M_Responder (event_t* ev) if (M_InputActivated(input_hud_timestats)) { - if (hud_level_stats || hud_level_time) - hud_level_stats = hud_level_time = 0; + if (automapactive) + { + if ((hud_level_stats | hud_level_time) & HUD_WIDGET_AUTOMAP) + { + hud_level_stats &= ~HUD_WIDGET_AUTOMAP; + hud_level_time &= ~HUD_WIDGET_AUTOMAP; + } + else + { + hud_level_stats |= HUD_WIDGET_AUTOMAP; + hud_level_time |= HUD_WIDGET_AUTOMAP; + } + } else - hud_level_stats = hud_level_time = 1; + { + if ((hud_level_stats | hud_level_time) & HUD_WIDGET_HUD) + { + hud_level_stats &= ~HUD_WIDGET_HUD; + hud_level_time &= ~HUD_WIDGET_HUD; + } + else + { + hud_level_stats |= HUD_WIDGET_HUD; + hud_level_time |= HUD_WIDGET_HUD; + } + } return true; } diff --git a/src/m_misc.c b/src/m_misc.c index e2bd2fdf..699b3a4a 100644 --- a/src/m_misc.c +++ b/src/m_misc.c @@ -2651,24 +2651,24 @@ default_t defaults[] = { { "hud_player_coords", (config_t *) &hud_player_coords, NULL, - {1}, {0,2}, number, ss_stat, wad_no, - "show player coords widget (1 = on Automap, 2 = always)" + {HUD_WIDGET_AUTOMAP}, {HUD_WIDGET_OFF,HUD_WIDGET_ALWAYS}, number, ss_stat, wad_no, + "show player coords widget (1 = on Automap, 2 = on HUD, 3 = always)" }, // [FG] level stats widget { "hud_level_stats", (config_t *) &hud_level_stats, NULL, - {0}, {0,2}, number, ss_stat, wad_no, - "show level stats (kill, items and secrets) widget (1 = on Automap, 2 = always)" + {HUD_WIDGET_OFF}, {HUD_WIDGET_OFF,HUD_WIDGET_ALWAYS}, number, ss_stat, wad_no, + "show level stats (kill, items and secrets) widget (1 = on Automap, 2 = on HUD, 3 = always)" }, // [FG] level time widget { "hud_level_time", (config_t *) &hud_level_time, NULL, - {0}, {0,2}, number, ss_stat, wad_no, - "show level time widget (1 = on Automap, 2 = always)" + {HUD_WIDGET_OFF}, {HUD_WIDGET_OFF,HUD_WIDGET_ALWAYS}, number, ss_stat, wad_no, + "show level time widget (1 = on Automap, 2 = on HUD, 3 = always)" }, // prefer Crispy HUD over Boom HUD