From 983fb4c53c6b43f02254293d63771404cf591d83 Mon Sep 17 00:00:00 2001 From: James R Date: Thu, 29 Feb 2024 21:38:55 -0800 Subject: [PATCH] Replays: merge HUD and intermission drawing functions for "Save replay" prompt --- src/st_stuff.c | 42 +++++++++++++++++++++++++----------------- src/st_stuff.h | 1 + src/y_inter.cpp | 21 +-------------------- 3 files changed, 27 insertions(+), 37 deletions(-) diff --git a/src/st_stuff.c b/src/st_stuff.c index df86acbb8..b2a2bbc41 100644 --- a/src/st_stuff.c +++ b/src/st_stuff.c @@ -1457,6 +1457,30 @@ void ST_DrawServerSplash(boolean timelimited) } } +void ST_DrawSaveReplayHint(INT32 flags) +{ + const char *text = ""; + switch (demo.savemode) + { + case DSM_NOTSAVING: + text = "\xAB" "or " "\xAE" "Save replay"; + break; + + case DSM_WILLAUTOSAVE: + text = "Replay will be saved. \xAB" "Change title"; + break; + + case DSM_WILLSAVE: + text = "Replay will be saved."; + break; + + case DSM_SAVED: + text = "Replay saved!"; + break; + } + V_DrawRightAlignedThinString(BASEVIDWIDTH - 2, 2, flags|V_YELLOWMAP, text); +} + static fixed_t ST_CalculateFadeIn(player_t *player) { const tic_t length = TICRATE/4; @@ -1596,22 +1620,6 @@ void ST_Drawer(void) INT32 flags = V_SNAPTOTOP | V_SNAPTORIGHT | (Easing_Linear(min(t, fadeLength) * FRACUNIT / fadeLength, 9, 0) << V_ALPHASHIFT); - switch (demo.savemode) - { - case DSM_NOTSAVING: - V_DrawRightAlignedThinString(BASEVIDWIDTH - 2, 2, flags|V_YELLOWMAP, "\xAB" "or " "\xAE" "Save replay"); - break; - - case DSM_WILLAUTOSAVE: - V_DrawRightAlignedThinString(BASEVIDWIDTH - 2, 2, flags|V_YELLOWMAP, "Replay will be saved. \xAB" "Change title"); - break; - - case DSM_WILLSAVE: - V_DrawRightAlignedThinString(BASEVIDWIDTH - 2, 2, flags|V_YELLOWMAP, "Replay will be saved."); - break; - - default: // Don't render anything - break; - } + ST_DrawSaveReplayHint(flags); } } diff --git a/src/st_stuff.h b/src/st_stuff.h index 72289d652..23eecb034 100644 --- a/src/st_stuff.h +++ b/src/st_stuff.h @@ -76,6 +76,7 @@ extern tic_t lt_exitticker, lt_endtime; extern tic_t lt_fade; void ST_DrawServerSplash(boolean timelimited); +void ST_DrawSaveReplayHint(INT32 flags); // return if player a is in the same team as player b boolean ST_SameTeam(player_t *a, player_t *b); diff --git a/src/y_inter.cpp b/src/y_inter.cpp index fe380119b..13a5e6ba1 100644 --- a/src/y_inter.cpp +++ b/src/y_inter.cpp @@ -1693,26 +1693,7 @@ finalcounter: { if ((modeattacking == ATTACKING_NONE) && (demo.recording || demo.savemode == demovars_s::DSM_SAVED) && !demo.playback) { - switch (demo.savemode) - { - case demovars_s::DSM_NOTSAVING: - { - INT32 buttonx = BASEVIDWIDTH; - INT32 buttony = 2; - - K_drawButtonAnim(buttonx - 76, buttony, 0, kp_button_b[1], replayprompttic); - V_DrawRightAlignedThinString(buttonx - 55, buttony, highlightflags, "or"); - K_drawButtonAnim(buttonx - 55, buttony, 0, kp_button_x[1], replayprompttic); - V_DrawRightAlignedThinString(buttonx - 2, buttony, highlightflags, "Save replay"); - break; - } - case demovars_s::DSM_SAVED: - V_DrawRightAlignedThinString(BASEVIDWIDTH - 2, 2, highlightflags, "Replay saved!"); - break; - - default: // Don't render any text here - break; - } + ST_DrawSaveReplayHint(0); } }