const float SHOWNAMES_FADEDELAY = 0.4;
void Draw_ShowNames(entity this)
{
- if (this.sv_entnum == (current_player + 1)) // self or spectatee
- if (!(autocvar_hud_shownames_self && autocvar_chase_active)) return;
+ if (this.sv_entnum == current_player + 1) // self or spectatee
+ {
+ if (!autocvar_chase_active)
+ return;
+
+ if (!autocvar_hud_shownames_self
+ && !(spectatee_status > 0 && time <= spectatee_status_changed_time + 1))
+ {
+ return;
+ }
+ }
+
if (!this.sameteam && !autocvar_hud_shownames_enemies) return;
bool hit;
if (!autocvar_hud_shownames_crosshairdistance && this.sameteam)
// FIXME: alpha is negative when dead, breaking death fade
if (!this.csqcmodel_isdead) a *= f;
}
- if (a < ALPHA_MIN_VISIBLE && gametype != MAPINFO_TYPE_CTS) return;
+ if (a < ALPHA_MIN_VISIBLE && ISGAMETYPE(CTS)) return;
if (vdist(this.origin - view_origin, >=, max_shot_distance)) return;
float dist = vlen(this.origin - view_origin);
if (autocvar_hud_shownames_maxdistance)
{
vector pos = namepos + eY * autocvar_hud_shownames_fontsize * resize;
vector sz = vec2(0.5 * mySize.x, resize * autocvar_hud_shownames_statusbar_height);
+ if (autocvar_hud_shownames_statusbar_highlight)
+ drawfill(pos + eX * 0.25 * mySize.x, sz, '0.7 0.7 0.7', a / 2, DRAWFLAG_NORMAL);
if (this.healthvalue > 0)
{
HUD_Panel_DrawProgressBar(pos, sz, "nametag_statusbar",
this.healthvalue / autocvar_hud_panel_healtharmor_maxhealth, false, 1, '1 0 0', a,
DRAWFLAG_NORMAL);
}
- if (GetResourceAmount(this, RESOURCE_ARMOR) > 0)
+ if (GetResource(this, RES_ARMOR) > 0)
{
HUD_Panel_DrawProgressBar(pos + eX * 0.5 * mySize.x, sz, "nametag_statusbar",
- GetResourceAmount(this, RESOURCE_ARMOR) / autocvar_hud_panel_healtharmor_maxarmor, false, 0, '0 1 0', a,
+ GetResource(this, RES_ARMOR) / autocvar_hud_panel_healtharmor_maxarmor, false, 0, '0 1 0', a,
DRAWFLAG_NORMAL);
}
}
if (entcs.m_entcs_private)
{
it.healthvalue = entcs.healthvalue;
- SetResourceAmountExplicit(it, RESOURCE_ARMOR, GetResourceAmount(entcs, RESOURCE_ARMOR));
+ SetResource(it, RES_ARMOR, GetResource(entcs, RES_ARMOR));
it.sameteam = true;
}
else
{
it.healthvalue = 0;
- SetResourceAmountExplicit(it, RESOURCE_ARMOR, 0);
+ SetResource(it, RES_ARMOR, 0);
it.sameteam = false;
}
bool dead = entcs_IsDead(i) || entcs_IsSpectating(i);