- if(!ent.sameteam && trace_endpos != view_origin) // out of view, fade out
- ent.alpha = max(0, ent.alpha - SHOWNAMES_FADESPEED * frametime);
+ onscreen = (o_z >= 0 && o_x >= 0 && o_y >= 0 && o_x <= vid_conwidth && o_y <= vid_conheight);
+ crosshairdistance = sqrt( pow(o_x - vid_conwidth/2, 2) + pow(o_y - vid_conheight/2, 2) );
+
+ if(autocvar_hud_shownames_crosshairdistance)
+ {
+ if(autocvar_hud_shownames_crosshairdistance > crosshairdistance)
+ ent.pointtime = time;
+
+ if not(ent.pointtime + autocvar_hud_shownames_crosshairdistance_time > time)
+ overlap = TRUE;
+ else
+ overlap = (autocvar_hud_shownames_crosshairdistance_antioverlap ? overlap : FALSE); // override what antioverlap says unless allowed by cvar.
+ }
+
+ if(!ent.fadedelay)
+ ent.fadedelay = time + SHOWNAMES_FADEDELAY;
+
+ if(!ent.sameteam && (!onscreen || !hit)) // out of view, fade out
+ {
+ ent.alpha = max(0, ent.alpha - SHOWNAMES_FADESPEED * frametime);
+ ent.fadedelay = 0; // reset fade in delay, enemy has left the view
+ }