draw cmd widget on intermission screen (#2024)

This commit is contained in:
Roman Fomin 2024-11-14 14:07:02 +07:00 committed by GitHub
parent 66f66ee40f
commit 59ed2c0c13
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 31 additions and 11 deletions

View File

@ -134,6 +134,8 @@ static sbardef_t *sbardef;
static statusbar_t *statusbar;
static int st_cmd_x, st_cmd_y;
typedef enum
{
st_original,
@ -782,7 +784,6 @@ static void UpdateNumber(sbarelem_t *elem, player_t *player)
number->xoffset -= totalwidth;
}
number->font = font;
number->value = value;
number->numvalues = numvalues;
}
@ -840,8 +841,6 @@ static void UpdateLines(sbarelem_t *elem)
}
line->totalwidth = totalwidth;
}
widget->font = font;
}
static void UpdateAnimation(sbarelem_t *elem)
@ -1382,6 +1381,11 @@ static void DrawElem(int x, int y, sbarelem_t *elem, player_t *player)
break;
case sbe_widget:
if (elem == st_cmd_elem)
{
st_cmd_x = x;
st_cmd_y = y;
}
DrawLines(x, y, elem);
break;
@ -1770,17 +1774,30 @@ void ST_ResetPalette(void)
}
// [FG] draw Time widget on intermission screen
void WI_UpdateWidgets(void)
{
if (st_cmd_elem && STRICTMODE(hud_command_history))
{
ST_UpdateWidget(st_cmd_elem, &players[displayplayer]);
UpdateLines(st_cmd_elem);
}
}
void WI_DrawWidgets(void)
{
if (!st_time_elem || !(hud_level_time & HUD_WIDGET_HUD))
if (st_time_elem && hud_level_time & HUD_WIDGET_HUD)
{
return;
sbarelem_t time = *st_time_elem;
time.alignment = sbe_wide_left;
// leveltime is already added to totalleveltimes before WI_Start()
DrawLines(0, 0, &time);
}
sbarelem_t time = *st_time_elem;
time.alignment = sbe_wide_left;
// leveltime is already added to totalleveltimes before WI_Start()
DrawLines(0, 0, &time);
if (st_cmd_elem && STRICTMODE(hud_command_history))
{
DrawLines(st_cmd_x, st_cmd_y, st_cmd_elem);
}
}
void ST_BindSTSVariables(void)

View File

@ -72,6 +72,7 @@ extern boolean palette_changes;
extern struct hudfont_s *stcfnt;
extern struct patch_s **hu_font;
void WI_UpdateWidgets(void);
void WI_DrawWidgets(void);
void ST_BindSTSVariables(void);

View File

@ -1103,7 +1103,7 @@ void ST_ResetMessageColors(void)
}
}
sbarelem_t *st_time_elem = NULL;
sbarelem_t *st_time_elem = NULL, *st_cmd_elem = NULL;
void ST_UpdateWidget(sbarelem_t *elem, player_t *player)
{
@ -1144,6 +1144,7 @@ void ST_UpdateWidget(sbarelem_t *elem, player_t *player)
UpdateRate(widget, player);
break;
case sbw_cmd:
st_cmd_elem = elem;
UpdateCmd(widget);
break;
case sbw_speed:

View File

@ -56,7 +56,7 @@ extern int hudcolor_xyco;
extern boolean hud_time_use;
extern struct sbarelem_s *st_time_elem;
extern struct sbarelem_s *st_time_elem, *st_cmd_elem;
void ST_ResetTitle(void);

View File

@ -2259,6 +2259,7 @@ void WI_Ticker(void)
else
if (netgame) WI_updateNetgameStats();
else WI_updateStats();
WI_UpdateWidgets();
break;
case ShowNextLoc: