Replays: merge HUD and intermission drawing functions for "Save replay" prompt

This commit is contained in:
James R 2024-02-29 21:38:55 -08:00
parent 153ffa4717
commit 983fb4c53c
3 changed files with 27 additions and 37 deletions

View file

@ -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);
}
}

View file

@ -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);

View file

@ -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);
}
}