void HUD_UpdatePlayerPos(entity player)
{
- for(other = player.sort_next; other && HUD_ComparePlayerScores(player, other); other = player.sort_next)
+ entity ent;
+ for(ent = player.sort_next; ent && HUD_ComparePlayerScores(player, ent); ent = player.sort_next)
{
- SORT_SWAP(player, other);
+ SORT_SWAP(player, ent);
}
- for(other = player.sort_prev; other != players && HUD_ComparePlayerScores(other, player); other = player.sort_prev)
+ for(ent = player.sort_prev; ent != players && HUD_ComparePlayerScores(ent, player); ent = player.sort_prev)
{
- SORT_SWAP(other, player);
+ SORT_SWAP(ent, player);
}
}
void HUD_UpdateTeamPos(entity Team)
{
- for(other = Team.sort_next; other && HUD_CompareTeamScores(Team, other); other = Team.sort_next)
+ entity ent;
+ for(ent = Team.sort_next; ent && HUD_CompareTeamScores(Team, ent); ent = Team.sort_next)
{
- SORT_SWAP(Team, other);
+ SORT_SWAP(Team, ent);
}
- for(other = Team.sort_prev; other != teams && HUD_CompareTeamScores(other, Team); other = Team.sort_prev)
+ for(ent = Team.sort_prev; ent != teams && HUD_CompareTeamScores(ent, Team); ent = Team.sort_prev)
{
- SORT_SWAP(other, Team);
+ SORT_SWAP(ent, Team);
}
}
}
float HUD_WouldDrawScoreboard() {
- if (autocvar__hud_configure)
- return 0;
- else if (QuickMenu_IsOpened())
+ if (QuickMenu_IsOpened())
return 0;
else if (HUD_Radar_Clickable())
return 0;
float hud_woulddrawscoreboard_change; // "time" at which HUD_WouldDrawScoreboard() changed
void HUD_DrawScoreboard()
{
- float hud_woulddrawscoreboard;
- hud_woulddrawscoreboard = scoreboard_active;
- if(hud_woulddrawscoreboard != hud_woulddrawscoreboard_prev) {
- hud_woulddrawscoreboard_change = time;
- hud_woulddrawscoreboard_prev = hud_woulddrawscoreboard;
- }
+ if(!autocvar__hud_configure)
+ {
+ float hud_woulddrawscoreboard;
+ hud_woulddrawscoreboard = scoreboard_active;
+ if(hud_woulddrawscoreboard != hud_woulddrawscoreboard_prev) {
+ hud_woulddrawscoreboard_change = time;
+ hud_woulddrawscoreboard_prev = hud_woulddrawscoreboard;
+ }
+
+ if(hud_woulddrawscoreboard) {
+ if(menu_enabled == 1)
+ scoreboard_fade_alpha = 1;
+ float scoreboard_fadeinspeed = autocvar_scoreboard_fadeinspeed;
+ if (scoreboard_fadeinspeed)
+ scoreboard_fade_alpha = bound (0, (time - hud_woulddrawscoreboard_change) * scoreboard_fadeinspeed, 1);
+ else
+ scoreboard_fade_alpha = 1;
+ }
+ else {
+ float scoreboard_fadeoutspeed = autocvar_scoreboard_fadeoutspeed;
+ if (scoreboard_fadeoutspeed)
+ scoreboard_fade_alpha = bound (0, (1/scoreboard_fadeoutspeed - (time - hud_woulddrawscoreboard_change)) * scoreboard_fadeoutspeed, 1);
+ else
+ scoreboard_fade_alpha = 0;
+ }
- if(hud_woulddrawscoreboard) {
- float scoreboard_fadeinspeed = autocvar_scoreboard_fadeinspeed;
- if (scoreboard_fadeinspeed)
- scoreboard_fade_alpha = bound (0, (time - hud_woulddrawscoreboard_change) * scoreboard_fadeinspeed, 1);
- else
- scoreboard_fade_alpha = 1;
- }
- else {
- float scoreboard_fadeoutspeed = autocvar_scoreboard_fadeoutspeed;
- if (scoreboard_fadeoutspeed)
- scoreboard_fade_alpha = bound (0, (1/scoreboard_fadeoutspeed - (time - hud_woulddrawscoreboard_change)) * scoreboard_fadeoutspeed, 1);
- else
- scoreboard_fade_alpha = 0;
+ if (!scoreboard_fade_alpha)
+ return;
}
+ else
+ scoreboard_fade_alpha = 0;
- if (!scoreboard_fade_alpha)
- return;
+ if (autocvar_scoreboard_dynamichud)
+ HUD_Scale_Enable();
+ else
+ HUD_Scale_Disable();
- HUD_UpdatePlayerTeams();
+ float hud_fade_alpha_save = hud_fade_alpha;
+ if(menu_enabled == 1)
+ hud_fade_alpha = 1;
+ else
+ hud_fade_alpha = scoreboard_fade_alpha * (1 - autocvar__menu_alpha);
+ HUD_Panel_UpdateCvars();
- scoreboard_alpha_bg = autocvar_scoreboard_alpha_bg * scoreboard_fade_alpha * (1 - autocvar__menu_alpha);
- scoreboard_alpha_fg = autocvar_scoreboard_alpha_fg * scoreboard_fade_alpha * (1 - autocvar__menu_alpha);
+ scoreboard_alpha_bg = autocvar_scoreboard_alpha_bg * panel_fg_alpha;
+ scoreboard_alpha_fg = autocvar_scoreboard_alpha_fg * panel_fg_alpha;
scoreboard_highlight = autocvar_scoreboard_highlight;
- scoreboard_highlight_alpha = autocvar_scoreboard_highlight_alpha * scoreboard_alpha_fg;
- scoreboard_highlight_alpha_self = autocvar_scoreboard_highlight_alpha_self * scoreboard_alpha_fg;
- scoreboard_alpha_name = autocvar_scoreboard_alpha_name * scoreboard_alpha_fg;
- scoreboard_alpha_name_self = autocvar_scoreboard_alpha_name_self * scoreboard_alpha_fg;
+ scoreboard_highlight_alpha = autocvar_scoreboard_highlight_alpha * panel_fg_alpha;
+ scoreboard_highlight_alpha_self = autocvar_scoreboard_highlight_alpha_self * panel_fg_alpha;
+ scoreboard_alpha_name = autocvar_scoreboard_alpha_name * panel_fg_alpha;
+ scoreboard_alpha_name_self = autocvar_scoreboard_alpha_name_self * panel_fg_alpha;
+
+ hud_fade_alpha = hud_fade_alpha_save;
+
+ // don't overlap with con_notify
+ if(!autocvar__hud_configure)
+ panel_pos_y = max((autocvar_con_notify * autocvar_con_notifysize), panel_pos_y);
+
+ HUD_Panel_DrawBg(scoreboard_fade_alpha);
+
+ if(panel_bg_padding)
+ {
+ panel_pos += '1 1 0' * panel_bg_padding;
+ panel_size -= '2 2 0' * panel_bg_padding;
+ }
+
+ HUD_UpdatePlayerTeams();
vector rgb, pos, tmp;
entity pl, tm;
string str;
- xmin = (autocvar_scoreboard_offset_left * vid_conwidth);
- ymin = max((autocvar_con_notify * autocvar_con_notifysize), (autocvar_scoreboard_offset_vertical * vid_conwidth));
+ xmin = panel_pos_x;
+ ymin = panel_pos_y;
- xmax = ((1 - autocvar_scoreboard_offset_right) * vid_conwidth);
- ymax = (vid_conheight - ymin);
+ xmax = panel_pos_x + panel_size_x;
+ ymax = panel_pos_y + panel_size_y;
- sbwidth = xmax - xmin;
+ sbwidth = panel_size_x;
// Initializes position
pos.x = xmin;
if(gametype == MAPINFO_TYPE_CTS || gametype == MAPINFO_TYPE_RACE) {
if(race_speedaward) {
- drawcolorcodedstring(pos, sprintf(_("Speed award: %d ^7(%s^7)"), race_speedaward, race_speedaward_holder), hud_fontsize, scoreboard_alpha_fg, DRAWFLAG_NORMAL);
+ drawcolorcodedstring(pos, sprintf(_("Speed award: %d%s ^7(%s^7)"), race_speedaward, race_speedaward_unit, race_speedaward_holder), hud_fontsize, scoreboard_alpha_fg, DRAWFLAG_NORMAL);
pos.y += 1.25 * hud_fontsize.y;
}
if(race_speedaward_alltimebest) {
- drawcolorcodedstring(pos, sprintf(_("All-time fastest: %d ^7(%s^7)"), race_speedaward_alltimebest, race_speedaward_alltimebest_holder), hud_fontsize, scoreboard_alpha_fg, DRAWFLAG_NORMAL);
+ drawcolorcodedstring(pos, sprintf(_("All-time fastest: %d%s ^7(%s^7)"), race_speedaward_alltimebest, race_speedaward_alltimebest_unit, race_speedaward_alltimebest_holder), hud_fontsize, scoreboard_alpha_fg, DRAWFLAG_NORMAL);
pos.y += 1.25 * hud_fontsize.y;
}
pos = HUD_DrawScoreboardRankings(pos, playerslots[player_localnum], rgb, bg_size);