X-Git-Url: https://de.git.xonotic.org/?p=xonotic%2Fxonotic-data.pk3dir.git;a=blobdiff_plain;f=qcsrc%2Fclient%2Fhud%2Fpanel%2Fscoreboard.qc;h=22be8b195c34076ec706b9f3680f14d114210605;hp=ca0bd063368cbcbd4ddfd86b0393a296d1eccda6;hb=f34fd47ee0a7f283ab60592a17399ec5a500416c;hpb=6585b5a8ef2ce4ee66826df826a6c759bd815cb8 diff --git a/qcsrc/client/hud/panel/scoreboard.qc b/qcsrc/client/hud/panel/scoreboard.qc index ca0bd0633..22be8b195 100644 --- a/qcsrc/client/hud/panel/scoreboard.qc +++ b/qcsrc/client/hud/panel/scoreboard.qc @@ -15,10 +15,21 @@ bool sbt_highlight; float sbt_highlight_alpha; float sbt_highlight_alpha_self; +// provide basic panel cvars to old clients +// TODO remove them after a future release (0.8.2+) +string autocvar_hud_panel_scoreboard_pos = "0.150000 0.150000"; +string autocvar_hud_panel_scoreboard_size = "0.700000 0.700000"; +string autocvar_hud_panel_scoreboard_bg = "border_default"; +string autocvar_hud_panel_scoreboard_bg_color = "0 0.3 0.5"; +string autocvar_hud_panel_scoreboard_bg_color_team = ""; +string autocvar_hud_panel_scoreboard_bg_alpha = "0.7"; +string autocvar_hud_panel_scoreboard_bg_border = ""; +string autocvar_hud_panel_scoreboard_bg_padding = ""; + float autocvar_hud_panel_scoreboard_fadeinspeed = 10; float autocvar_hud_panel_scoreboard_fadeoutspeed = 5; float autocvar_hud_panel_scoreboard_respawntime_decimals = 1; -float autocvar_hud_panel_scoreboard_table_bg_alpha = 0.7; +float autocvar_hud_panel_scoreboard_table_bg_alpha = 0; float autocvar_hud_panel_scoreboard_table_bg_scale = 0.25; float autocvar_hud_panel_scoreboard_table_fg_alpha = 0.9; float autocvar_hud_panel_scoreboard_table_fg_alpha_self = 1; @@ -74,6 +85,7 @@ string TranslateScoresLabel(string l) case "rank": return CTX(_("SCO^rank")); case "returns": return CTX(_("SCO^returns")); case "revivals": return CTX(_("SCO^revivals")); + case "rounds": return CTX(_("SCO^rounds won")); case "score": return CTX(_("SCO^score")); case "suicides": return CTX(_("SCO^suicides")); case "takes": return CTX(_("SCO^takes")); @@ -352,6 +364,7 @@ void Cmd_Scoreboard_SetFields(int argc) // no layout can be properly set up until score_info data haven't been received argc = tokenizebyseparator("0 1 ping pl name | score", " "); ps_primary = SP_SCORE; + ps_secondary = SP_SCORE; scores_label(ps_primary) = strzone("score"); scores_flags(ps_primary) = SFL_ALLOW_HIDE; } @@ -592,7 +605,7 @@ string Scoreboard_GetField(entity pl, PlayerScoreField field) } else if(!teamplay) { - f = stof(getplayerkeyvalue(pl.sv_entnum, "colors")); + f = entcs_GetClientColors(pl.sv_entnum); { sbt_field_icon0 = "gfx/scoreboard/playercolor_base"; sbt_field_icon1 = "gfx/scoreboard/playercolor_shirt"; @@ -773,10 +786,7 @@ vector Scoreboard_DrawHeader(vector pos, vector rgb) if (sbt_highlight) if (!(i % 2)) { - if (i == sbt_num_fields-1) - column_dim.x = sbt_field_size[i] + hud_fontsize.x * 0.5; - else - column_dim.x = sbt_field_size[i] + hud_fontsize.x; + column_dim.x = sbt_field_size[i] + hud_fontsize.x; drawfill(pos - eX * hud_fontsize.x * 0.5, column_dim, '0 0 0', sbt_highlight_alpha, DRAWFLAG_NORMAL); } @@ -796,8 +806,6 @@ void Scoreboard_DrawItem(vector item_pos, vector rgb, entity pl, bool is_self, i TC(bool, is_self); TC(int, pl_number); string str; bool is_spec = (entcs_GetTeam(pl.sv_entnum) == NUM_SPECTATOR); - if(is_spec && !is_self) - rgb = '0 0 0'; vector h_pos = item_pos; vector h_size = eX * panel_size.x + eY * hud_fontsize.y * 1.25; @@ -1058,7 +1066,7 @@ vector Scoreboard_AccuracyStats_Draw(vector pos, vector rgb, vector bg_size) // row highlighting for (int i = 0; i < rows; ++i) - drawfill(pos + eY * weapon_height + eY * height * i, eX * tmp.x + eY * fontsize, '1 1 1', sbt_highlight_alpha, DRAWFLAG_NORMAL); + drawfill(pos + eY * weapon_height + eY * height * i, eX * tmp.x + eY * fontsize, rgb, sbt_highlight_alpha, DRAWFLAG_NORMAL); } average_accuracy = 0; @@ -1275,7 +1283,7 @@ void Scoreboard_Draw() { // frametime checks allow to toggle the scoreboard even when the game is paused if(scoreboard_active) { - if(menu_enabled == 1) + if(hud_configure_menu_open == 1) scoreboard_fade_alpha = 1; float scoreboard_fadeinspeed = autocvar_hud_panel_scoreboard_fadeinspeed; if (scoreboard_fadeinspeed && frametime) @@ -1303,7 +1311,7 @@ void Scoreboard_Draw() HUD_Scale_Disable(); float hud_fade_alpha_save = hud_fade_alpha; - if(menu_enabled == 1) + if(hud_configure_menu_open == 1) hud_fade_alpha = 1; else hud_fade_alpha = scoreboard_fade_alpha * (1 - autocvar__menu_alpha); @@ -1358,7 +1366,7 @@ void Scoreboard_Draw() { if(tm.team == NUM_SPECTATOR) continue; - if(!tm.team && teamplay) + if(!tm.team) continue; draw_beginBoldFont(); @@ -1388,8 +1396,6 @@ void Scoreboard_Draw() { if(tm.team == NUM_SPECTATOR) continue; - if(!tm.team && teamplay) - continue; pos = Scoreboard_MakeTable(pos, tm, panel_bg_color, bg_size); } @@ -1419,7 +1425,7 @@ void Scoreboard_Draw() if(pl.team != NUM_SPECTATOR) continue; pos.y += 1.25 * hud_fontsize.y; - Scoreboard_DrawItem(pos, panel_bg_color, pl, (pl.sv_entnum == player_localnum), specs); + Scoreboard_DrawItem(pos, '0 0 0', pl, (pl.sv_entnum == player_localnum), specs); ++specs; } @@ -1498,15 +1504,17 @@ void Scoreboard_Draw() { // a negative number means we are awaiting respawn, time value is still the same respawn_time *= -1; // remove mark now that we checked it - respawn_time = max(time, respawn_time); // don't show a negative value while the server is respawning the player (lag) - str = sprintf(_("^1Respawning in ^3%s^1..."), - (autocvar_hud_panel_scoreboard_respawntime_decimals ? - count_seconds_decs(respawn_time - time, autocvar_hud_panel_scoreboard_respawntime_decimals) - : - count_seconds(respawn_time - time) - ) - ); + if(respawn_time < time) // it happens for a few frames when server is respawning the player + str = ""; // draw an empty string to not change suddenly scoreboard_bottom + else + str = sprintf(_("^1Respawning in ^3%s^1..."), + (autocvar_hud_panel_scoreboard_respawntime_decimals ? + count_seconds_decs(respawn_time - time, autocvar_hud_panel_scoreboard_respawntime_decimals) + : + count_seconds(ceil(respawn_time - time)) + ) + ); } else if(time < respawn_time) { @@ -1514,7 +1522,7 @@ void Scoreboard_Draw() (autocvar_hud_panel_scoreboard_respawntime_decimals ? count_seconds_decs(respawn_time - time, autocvar_hud_panel_scoreboard_respawntime_decimals) : - count_seconds(respawn_time - time) + count_seconds(ceil(respawn_time - time)) ) ); }