Merge branch 'master' into sev/luma_revisions
authorSeverin Meyer <sev.ch@web.de>
Sun, 2 Aug 2015 09:40:58 +0000 (11:40 +0200)
committerSeverin Meyer <sev.ch@web.de>
Sun, 2 Aug 2015 09:40:58 +0000 (11:40 +0200)
1  2 
_hud_descriptions.cfg
hud_luma.cfg
hud_luminos.cfg
hud_luminos_minimal.cfg
hud_luminos_minimal_xhair.cfg
hud_luminos_old.cfg
hud_nexuiz.cfg
qcsrc/client/autocvars.qh
qcsrc/client/hud.qc

diff --combined _hud_descriptions.cfg
@@@ -25,6 -25,8 +25,8 @@@ seta hud_progressbar_nexball_color "" "
  seta hud_progressbar_speed_color "" "R G B vector of the progress bar background color"
  seta hud_progressbar_acceleration_color "" "R G B vector of the progress bar background color"
  seta hud_progressbar_acceleration_neg_color "" "R G B vector of the progress bar background color"
+ seta hud_progressbar_vehicles_ammo1_color "" "R G B vector of the progress bar background color"
+ seta hud_progressbar_vehicles_ammo2_color "" "R G B vector of the progress bar background color"
  
  seta _hud_panelorder "" "contains order in which panels are to be drawn"
  
@@@ -62,8 -64,6 +64,8 @@@ seta hud_panel_weapons_label_scale "" "
  seta hud_panel_weapons_accuracy "" "show accuracy color as the weapon icon background; colors can be configured with accuracy_color* cvars"
  seta hud_panel_weapons_ammo "" "show ammo as a status bar"
  seta hud_panel_weapons_onlyowned "" "show only owned weapons"
 +seta hud_panel_weapons_noncurrent_alpha "" "alpha of noncurrent weapons"
 +seta hud_panel_weapons_noncurrent_scale "" "scale of noncurrent weapons, relative to the current weapon"
  
  seta hud_panel_ammo "" "enable/disable this panel"
  seta hud_panel_ammo_pos "" "position of this panel"
diff --combined hud_luma.cfg
@@@ -23,6 -23,8 +23,8 @@@ seta hud_progressbar_nexball_color "0.
  seta hud_progressbar_speed_color "0.77 0.67 0"
  seta hud_progressbar_acceleration_color "0.2 0.65 0.93"
  seta hud_progressbar_acceleration_neg_color "0.86 0.35 0"
+ seta hud_progressbar_vehicles_ammo1_color "0.77 0.67 0"
+ seta hud_progressbar_vehicles_ammo2_color "0.86 0.35 0"
  
  seta _hud_panelorder "15 12 9 5 10 6 14 0 7 4 11 2 1 3 8 13 16 "
  
@@@ -31,7 -33,7 +33,7 @@@ seta hud_configure_grid_xsize "0.005000
  seta hud_configure_grid_ysize "0.005000"
  
  seta hud_panel_weapons 1
 -seta hud_panel_weapons_pos "0.965000 0.120000"
 +seta hud_panel_weapons_pos "0.965000 0.125000"
  seta hud_panel_weapons_size "0.035000 0.770000"
  seta hud_panel_weapons_bg "border_default_east"
  seta hud_panel_weapons_bg_color ""
@@@ -60,12 -62,10 +62,12 @@@ seta hud_panel_weapons_timeout_fadefgmi
  seta hud_panel_weapons_timeout_speed_in "0.25"
  seta hud_panel_weapons_timeout_speed_out "0.75"
  seta hud_panel_weapons_onlyowned "1"
 +seta hud_panel_weapons_noncurrent_alpha "0.8"
 +seta hud_panel_weapons_noncurrent_scale "0.8"
  
  seta hud_panel_ammo 1
 -seta hud_panel_ammo_pos "0.330000 0.865000"
 -seta hud_panel_ammo_size "0.340000 0.060000"
 +seta hud_panel_ammo_pos "0.315000 0.865000"
 +seta hud_panel_ammo_size "0.370000 0.060000"
  seta hud_panel_ammo_bg "border_tab_south"
  seta hud_panel_ammo_bg_color ""
  seta hud_panel_ammo_bg_color_team ""
@@@ -82,17 -82,17 +84,17 @@@ seta hud_panel_ammo_progressbar_xoffse
  seta hud_panel_ammo_text "1"
  
  seta hud_panel_powerups 1
 -seta hud_panel_powerups_pos "0 0.270000"
 -seta hud_panel_powerups_size "0.040000 0.415000"
 -seta hud_panel_powerups_bg "border_default_west"
 +seta hud_panel_powerups_pos "0.325000 0.820000"
 +seta hud_panel_powerups_size "0.350000 0.050000"
 +seta hud_panel_powerups_bg "border_shadow_south"
  seta hud_panel_powerups_bg_color ""
  seta hud_panel_powerups_bg_color_team ""
  seta hud_panel_powerups_bg_alpha ""
  seta hud_panel_powerups_bg_border ""
 -seta hud_panel_powerups_bg_padding "2"
 +seta hud_panel_powerups_bg_padding ""
  seta hud_panel_powerups_flip "1"
 -seta hud_panel_powerups_iconalign "1"
 -seta hud_panel_powerups_baralign "1"
 +seta hud_panel_powerups_iconalign "2"
 +seta hud_panel_powerups_baralign "2"
  seta hud_panel_powerups_progressbar "1"
  seta hud_panel_powerups_progressbar_strength "progressbar"
  seta hud_panel_powerups_progressbar_shield "progressbar"
@@@ -208,7 -208,7 +210,7 @@@ seta hud_panel_modicons_dom_layout "1
  seta hud_panel_modicons_freezetag_layout "1"
  
  seta hud_panel_pressedkeys 1
 -seta hud_panel_pressedkeys_pos "0.445000 0.730000"
 +seta hud_panel_pressedkeys_pos "0.445000 0.710000"
  seta hud_panel_pressedkeys_size "0.110000 0.090000"
  seta hud_panel_pressedkeys_bg " "
  seta hud_panel_pressedkeys_bg_color ""
@@@ -253,7 -253,7 +255,7 @@@ seta hud_panel_infomessages_bg_padding 
  seta hud_panel_infomessages_flip "1"
  
  seta hud_panel_physics 3
 -seta hud_panel_physics_pos "0.410000 0.630000"
 +seta hud_panel_physics_pos "0.410000 0.625000"
  seta hud_panel_physics_size "0.180000 0.080000"
  seta hud_panel_physics_bg "0"
  seta hud_panel_physics_bg_color ""
@@@ -302,8 -302,8 +304,8 @@@ seta hud_panel_centerprint_fade_subsequ
  seta hud_panel_centerprint_fade_minfontsize "0"
  
  seta hud_panel_buffs 1
 -seta hud_panel_buffs_pos "0.435000 0.840000"
 -seta hud_panel_buffs_size "0.125000 0.035000"
 +seta hud_panel_buffs_pos "0.325000 0.820000"
 +seta hud_panel_buffs_size "0.350000 0.050000"
  seta hud_panel_buffs_bg "0"
  seta hud_panel_buffs_bg_color ""
  seta hud_panel_buffs_bg_color_team ""
diff --combined hud_luminos.cfg
@@@ -23,6 -23,8 +23,8 @@@ seta hud_progressbar_nexball_color "0.
  seta hud_progressbar_speed_color "1 0.75 0"
  seta hud_progressbar_acceleration_color "0.5 0.75 1"
  seta hud_progressbar_acceleration_neg_color "0.125 0.25 0.5"
+ seta hud_progressbar_vehicles_ammo1_color "0.8 0.7 0"
+ seta hud_progressbar_vehicles_ammo2_color "0.7 0.4 0"
  
  seta _hud_panelorder "15 12 9 10 5 6 14 0 7 4 11 2 1 3 8 13 16 "
  
@@@ -60,8 -62,6 +62,8 @@@ seta hud_panel_weapons_timeout_fadefgmi
  seta hud_panel_weapons_timeout_speed_in "0.25"
  seta hud_panel_weapons_timeout_speed_out "0.75"
  seta hud_panel_weapons_onlyowned "1"
 +seta hud_panel_weapons_noncurrent_alpha "1"
 +seta hud_panel_weapons_noncurrent_scale "1"
  
  seta hud_panel_ammo 1
  seta hud_panel_ammo_pos "0.330000 0.960000"
diff --combined hud_luminos_minimal.cfg
@@@ -23,6 -23,8 +23,8 @@@ seta hud_progressbar_nexball_color "0.
  seta hud_progressbar_speed_color "1 0.75 0"
  seta hud_progressbar_acceleration_color "0.5 0.75 1"
  seta hud_progressbar_acceleration_neg_color "0.125 0.25 0.5"
+ seta hud_progressbar_vehicles_ammo1_color "0.8 0.7 0"
+ seta hud_progressbar_vehicles_ammo2_color "0.7 0.4 0"
  
  seta _hud_panelorder "10 3 0 14 6 9 13 4 1 2 11 12 7 5 8 15 16 "
  
@@@ -60,8 -62,6 +62,8 @@@ seta hud_panel_weapons_timeout_fadefgmi
  seta hud_panel_weapons_timeout_speed_in "0.25"
  seta hud_panel_weapons_timeout_speed_out "0.75"
  seta hud_panel_weapons_onlyowned "1"
 +seta hud_panel_weapons_noncurrent_alpha "1"
 +seta hud_panel_weapons_noncurrent_scale "1"
  
  seta hud_panel_ammo 1
  seta hud_panel_ammo_pos "0.650000 0.890000"
@@@ -23,6 -23,8 +23,8 @@@ seta hud_progressbar_nexball_color "0.
  seta hud_progressbar_speed_color "1 0.75 0"
  seta hud_progressbar_acceleration_color "0.5 0.75 1"
  seta hud_progressbar_acceleration_neg_color "0.125 0.25 0.5"
+ seta hud_progressbar_vehicles_ammo1_color "0.8 0.7 0"
+ seta hud_progressbar_vehicles_ammo2_color "0.7 0.4 0"
  
  seta _hud_panelorder "15 3 1 2 11 10 0 14 6 9 13 4 12 7 5 8 16 "
  
@@@ -60,8 -62,6 +62,8 @@@ seta hud_panel_weapons_timeout_fadefgmi
  seta hud_panel_weapons_timeout_speed_in "0.25"
  seta hud_panel_weapons_timeout_speed_out "0.75"
  seta hud_panel_weapons_onlyowned "1"
 +seta hud_panel_weapons_noncurrent_alpha "1"
 +seta hud_panel_weapons_noncurrent_scale "1"
  
  seta hud_panel_ammo 1
  seta hud_panel_ammo_pos "0.450000 0.630000"
diff --combined hud_luminos_old.cfg
@@@ -23,6 -23,8 +23,8 @@@ seta hud_progressbar_nexball_color "0.
  seta hud_progressbar_speed_color "1 0.75 0"
  seta hud_progressbar_acceleration_color "0.5 0.75 1"
  seta hud_progressbar_acceleration_neg_color "0.125 0.25 0.5"
+ seta hud_progressbar_vehicles_ammo1_color "0.8 0.7 0"
+ seta hud_progressbar_vehicles_ammo2_color "0.7 0.4 0"
  
  seta _hud_panelorder "15 10 9 6 8 14 5 0 4 13 2 7 1 3 11 12 16 "
  
@@@ -60,8 -62,6 +62,8 @@@ seta hud_panel_weapons_timeout_fadefgmi
  seta hud_panel_weapons_timeout_speed_in "0.25"
  seta hud_panel_weapons_timeout_speed_out "0.75"
  seta hud_panel_weapons_onlyowned "1"
 +seta hud_panel_weapons_noncurrent_alpha "1"
 +seta hud_panel_weapons_noncurrent_scale "1"
  
  seta hud_panel_ammo 1
  seta hud_panel_ammo_pos "0.190000 0.920000"
diff --combined hud_nexuiz.cfg
@@@ -23,6 -23,8 +23,8 @@@ seta hud_progressbar_nexball_color "0.
  seta hud_progressbar_speed_color "1 0.75 0"
  seta hud_progressbar_acceleration_color "0.5 0.75 1"
  seta hud_progressbar_acceleration_neg_color "0.125 0.25 0.5"
+ seta hud_progressbar_vehicles_ammo1_color "0.8 0.7 0"
+ seta hud_progressbar_vehicles_ammo2_color "0.7 0.4 0"
  
  seta _hud_panelorder "15 0 11 8 5 6 14 9 13 7 2 3 1 10 12 4 16 "
  
@@@ -60,8 -62,6 +62,8 @@@ seta hud_panel_weapons_timeout_fadefgmi
  seta hud_panel_weapons_timeout_speed_in "0.25"
  seta hud_panel_weapons_timeout_speed_out "0.75"
  seta hud_panel_weapons_onlyowned "0"
 +seta hud_panel_weapons_noncurrent_alpha "1"
 +seta hud_panel_weapons_noncurrent_scale "1"
  
  seta hud_panel_ammo 1
  seta hud_panel_ammo_pos "0.160000 0.910000"
@@@ -77,9 -77,9 +77,9 @@@ bool autocvar_cl_spawnzoom = 1
  float autocvar_cl_spawnzoom_speed = 1;
  float autocvar_cl_spawnzoom_factor = 2;
  bool autocvar_cl_stripcolorcodes;
- float autocvar_cl_vehicle_spiderbot_cross_alpha = 0.6;
- float autocvar_cl_vehicle_spiderbot_cross_size = 1;
  bool autocvar_cl_vehicles_hud_tactical = 1;
+ float autocvar_cl_vehicles_hudscale = 0.5;
+ float autocvar_cl_vehicles_crosshair_size = 0.5;
  bool autocvar_cl_velocityzoom_enabled;
  float autocvar_cl_velocityzoom_factor;
  int autocvar_cl_velocityzoom_type = 3;
@@@ -354,8 -354,6 +354,8 @@@ float autocvar_hud_panel_weapons_compla
  int autocvar_hud_panel_weapons_label;
  float autocvar_hud_panel_weapons_label_scale = 0.5;
  bool autocvar_hud_panel_weapons_onlyowned;
 +float autocvar_hud_panel_weapons_noncurrent_alpha = 1;
 +float autocvar_hud_panel_weapons_noncurrent_scale = 1;
  float autocvar_hud_panel_weapons_timeout;
  int autocvar_hud_panel_weapons_timeout_effect;
  float autocvar_hud_panel_weapons_timeout_fadebgmin;
@@@ -373,6 -371,8 +373,8 @@@ vector autocvar_hud_progressbar_shield_
  vector autocvar_hud_progressbar_speed_color;
  vector autocvar_hud_progressbar_strength_color;
  vector autocvar_hud_progressbar_superweapons_color;
+ vector autocvar_hud_progressbar_vehicles_ammo1_color;
+ vector autocvar_hud_progressbar_vehicles_ammo2_color;
  bool autocvar_hud_showbinds;
  bool autocvar_hud_showbinds_limit;
  bool autocvar__hud_showbinds_reload;
diff --combined qcsrc/client/hud.qc
@@@ -521,8 -521,6 +521,6 @@@ void HUD_Weapons(void
        // update generic hud functions
        HUD_Panel_UpdateCvars();
  
-       draw_beginBoldFont();
        // figure out weapon order (how the weapons are sorted) // TODO make this configurable
        if(weaponorder_bypriority != autocvar_cl_weaponpriority || !weaponorder[0])
        {
  
                // might as well commit suicide now, no reason to live ;)
                if (weapon_count == 0)
-               {
-                       draw_endBoldFont();
                        return;
-               }
  
                vector old_panel_size = panel_size;
                vector padded_panel_size = panel_size - '2 2 0' * panel_bg_padding;
        HUD_Panel_DrawBg(1);
  
        if(center.x == -1)
-       {
-               draw_endBoldFont();
                return;
-       }
  
        if(panel_bg_padding)
        {
        // draw items
        row = column = 0;
        vector label_size = '1 1 0' * min(weapon_size.x, weapon_size.y) * bound(0, autocvar_hud_panel_weapons_label_scale, 1);
 +      vector noncurrent_pos = '0 0 0';
 +      vector noncurrent_size = weapon_size * bound(0, autocvar_hud_panel_weapons_noncurrent_scale, 1);
 +      float noncurrent_alpha = panel_fg_alpha * bound(0, autocvar_hud_panel_weapons_noncurrent_alpha, 1);
 +      bool isCurrent;
 +
        for(i = 0; i <= WEP_LAST-WEP_FIRST; ++i)
        {
                // retrieve information about the current weapon to be drawn
                self = weaponorder[i];
                weapon_id = self.impulse;
 +              isCurrent = (self.weapon == switchweapon);
  
                // skip if this weapon doesn't exist
                if(!self || weapon_id < 0) { continue; }
                        continue;
  
                // figure out the drawing position of weapon
 -              weapon_pos = (panel_pos
 -                      + eX * column * weapon_size.x
 -                      + eY * row * weapon_size.y);
 +              weapon_pos = (panel_pos + eX * column * weapon_size.x + eY * row * weapon_size.y);
 +              noncurrent_pos.x = weapon_pos.x + (weapon_size.x - noncurrent_size.x) / 2;
 +              noncurrent_pos.y = weapon_pos.y + (weapon_size.y - noncurrent_size.y) / 2;
  
                // draw background behind currently selected weapon
 -              if(self.weapon == switchweapon)
 +              if(isCurrent)
                        drawpic_aspect_skin(weapon_pos, "weapon_current_bg", weapon_size, '1 1 1', panel_fg_alpha, DRAWFLAG_NORMAL);
  
                // draw the weapon accuracy
                if(weapons_stat & WepSet_FromWeapon(self.weapon))
                {
                        // draw the weapon image
 -                      drawpic_aspect_skin(weapon_pos, self.model2, weapon_size, '1 1 1', panel_fg_alpha, DRAWFLAG_NORMAL);
 +                      if(isCurrent)
 +                              drawpic_aspect_skin(weapon_pos, self.model2, weapon_size, '1 1 1', panel_fg_alpha, DRAWFLAG_NORMAL);
 +                      else
 +                              drawpic_aspect_skin(noncurrent_pos, self.model2, noncurrent_size, '1 1 1', noncurrent_alpha, DRAWFLAG_NORMAL);
  
                        // draw weapon label string
                        switch(autocvar_hud_panel_weapons_label)
                }
                else // draw a "ghost weapon icon" if you don't have the weapon
                {
 -                      drawpic_aspect_skin(weapon_pos, self.model2, weapon_size, '0 0 0', panel_fg_alpha * 0.5, DRAWFLAG_NORMAL);
 +                      drawpic_aspect_skin(noncurrent_pos, self.model2, noncurrent_size, '0.2 0.2 0.2', panel_fg_alpha * 0.5, DRAWFLAG_NORMAL);
                }
  
                // draw the complain message
                        }
                }
        }
-       draw_endBoldFont();
  }
  
  // Ammo (#1)
- void DrawNadeScoreBar(vector myPos, vector mySize, vector color)
+ void DrawNadeProgressBar(vector myPos, vector mySize, float progress, vector color)
  {
        HUD_Panel_DrawProgressBar(
                myPos + eX * autocvar_hud_panel_ammo_progressbar_xoffset * mySize.x,
                mySize - eX * autocvar_hud_panel_ammo_progressbar_xoffset * mySize.x,
                autocvar_hud_panel_ammo_progressbar_name,
-               getstatf(STAT_NADE_BONUS_SCORE), 0, 0, color,
+               progress, 0, 0, color,
                autocvar_hud_progressbar_alpha * panel_fg_alpha, DRAWFLAG_NORMAL);
  }
  
  void DrawAmmoNades(vector myPos, vector mySize, bool draw_expanding, float expand_time)
  {
-       float theAlpha = 1, a, b;
-       vector nade_color, picpos, numpos;
-       nade_color = Nade_Color(getstati(STAT_NADE_BONUS_TYPE));
+       float bonusNades    = getstatf(STAT_NADE_BONUS);
+       float bonusProgress = getstatf(STAT_NADE_BONUS_SCORE);
+       float bonusType     = getstati(STAT_NADE_BONUS_TYPE);
+       vector nadeColor    = Nade_Color(bonusType);
+       string nadeIcon     = Nade_Icon(bonusType);
  
-       a = getstatf(STAT_NADE_BONUS);
-       b = getstatf(STAT_NADE_BONUS_SCORE);
+       vector iconPos, textPos;
  
        if(autocvar_hud_panel_ammo_iconalign)
        {
-               numpos = myPos;
-               picpos = myPos + eX * 2 * mySize.y;
+               iconPos = myPos + eX * 2 * mySize.y;
+               textPos = myPos;
        }
        else
        {
-               numpos = myPos + eX * mySize.y;
-               picpos = myPos;
+               iconPos = myPos;
+               textPos = myPos + eX * mySize.y;
        }
  
-       DrawNadeScoreBar(myPos, mySize, nade_color);
-       if(b > 0 || a > 0)
+       if(bonusNades > 0 || bonusProgress > 0)
        {
+               DrawNadeProgressBar(myPos, mySize, bonusProgress, nadeColor);
                if(autocvar_hud_panel_ammo_text)
-                       drawstring_aspect(numpos, ftos(a), eX * (2/3) * mySize.x + eY * mySize.y, '1 1 1', panel_fg_alpha * theAlpha, DRAWFLAG_NORMAL);
+                       drawstring_aspect(textPos, ftos(bonusNades), eX * (2/3) * mySize.x + eY * mySize.y, '1 1 1', panel_fg_alpha, DRAWFLAG_NORMAL);
  
                if(draw_expanding)
-                       drawpic_aspect_skin_expanding(picpos, "nade_nbg", '1 1 0' * mySize.y, '1 1 1', panel_fg_alpha * theAlpha, DRAWFLAG_NORMAL, expand_time);
+                       drawpic_aspect_skin_expanding(iconPos, nadeIcon, '1 1 0' * mySize.y, '1 1 1', panel_fg_alpha, DRAWFLAG_NORMAL, expand_time);
  
-               drawpic_aspect_skin(picpos, "nade_bg" , '1 1 0' * mySize.y, '1 1 1', panel_fg_alpha * theAlpha, DRAWFLAG_NORMAL);
-               drawpic_aspect_skin(picpos, "nade_nbg" , '1 1 0' * mySize.y, nade_color, panel_fg_alpha * theAlpha, DRAWFLAG_NORMAL);
+               drawpic_aspect_skin(iconPos, nadeIcon, '1 1 0' * mySize.y, '1 1 1', panel_fg_alpha, DRAWFLAG_NORMAL);
        }
  }
  
@@@ -1560,6 -1538,9 +1547,9 @@@ void HUD_HealthArmor(void
        }
  
        HUD_Panel_UpdateCvars();
+       draw_beginBoldFont();
        vector pos, mySize;
        pos = panel_pos;
        mySize = panel_size;
                        HUD_Panel_DrawProgressBar(pos, mySize, "progressbar", fuel/100, is_vertical, fuel_baralign, autocvar_hud_progressbar_fuel_color, panel_fg_alpha * 0.8, DRAWFLAG_NORMAL);
                }
        }
+       draw_endBoldFont();
  }
  
  // Notification area (#4)
@@@ -2330,7 -2313,7 +2322,7 @@@ void HUD_Score(void
        vector distribution_color;
        entity tm, pl, me;
  
-       me = playerslots[player_localentnum - 1];
+       me = playerslots[current_player];
  
        if((scores_flags[ps_primary] & SFL_TIME) && !teamplay) { // race/cts record display on HUD
                string timer, distrtimer;
@@@ -2499,8 -2482,6 +2491,6 @@@ void HUD_RaceTimer (void
  
        HUD_Panel_UpdateCvars();
  
-       draw_beginBoldFont();
        vector pos, mySize;
        pos = panel_pos;
        mySize = panel_size;
        if(autocvar__hud_configure)
        {
                s = "0:13:37";
+               draw_beginBoldFont();
                drawstring(pos + eX * 0.5 * mySize.x - '0.5 0 0' * stringwidth(s, false, '0.60 0.60 0' * mySize.y), s, '0.60 0.60 0' * mySize.y, '1 1 1', panel_fg_alpha, DRAWFLAG_NORMAL);
+               draw_endBoldFont();
                s = _("^1Intermediate 1 (+15.42)");
                drawcolorcodedstring(pos + eX * 0.5 * mySize.x - '0.5 0 0' * stringwidth(s, true, '1 1 0' * 0.20 * mySize.y) + eY * 0.60 * mySize.y, s, '1 1 0' * 0.20 * mySize.y, panel_fg_alpha, DRAWFLAG_NORMAL);
                s = sprintf(_("^1PENALTY: %.1f (%s)"), 2, "missing a checkpoint");
                        }
                }
  
+               draw_beginBoldFont();
                if(forcetime != "")
                {
                        a = bound(0, (time - race_checkpointtime) / 0.5, 1);
                        s = TIME_ENCODED_TOSTRING(TIME_ENCODE(time + TIME_DECODE(race_penaltyaccumulator) - race_laptime));
                        drawstring(pos + eX * 0.5 * mySize.x - '0.5 0 0' * stringwidth(s, false, '0.6 0.6 0' * mySize.y), s, '0.6 0.6 0' * mySize.y, '1 1 1', panel_fg_alpha * a, DRAWFLAG_NORMAL);
                }
+               draw_endBoldFont();
        }
        else
        {
                        }
                }
        }
-       draw_endBoldFont();
  }
  
  // Vote window (#9)
@@@ -3794,7 -3779,7 +3788,7 @@@ void HUD_InfoMessages(void
                        if(spectatee_status == -1)
                                s = _("^1Observing");
                        else
-                               s = sprintf(_("^1Spectating: ^7%s"), GetPlayerName(player_localentnum - 1));
+                               s = sprintf(_("^1Spectating: ^7%s"), GetPlayerName(current_player));
                        drawInfoMessage(s);
  
                        if(spectatee_status == -1)
@@@ -4642,8 -4627,6 +4636,6 @@@ void HUD_Main (void
                hud_skin_prev = strzone(autocvar_hud_skin);
        }
  
-     current_player = player_localentnum;
        // draw the dock
        if(autocvar_hud_dock != "" && autocvar_hud_dock != "0")
        {
                {
                        string hud_dock_color = autocvar_hud_dock_color;
                        if(hud_dock_color == "shirt") {
-                               f = stof(getplayerkeyvalue(current_player - 1, "colors"));
+                               f = stof(getplayerkeyvalue(current_player, "colors"));
                                color = colormapPaletteColor(floor(f / 16), 0);
                        }
                        else if(hud_dock_color == "pants") {
-                               f = stof(getplayerkeyvalue(current_player - 1, "colors"));
+                               f = stof(getplayerkeyvalue(current_player, "colors"));
                                color = colormapPaletteColor(f % 16, 1);
                        }
                        else