From 683672ff5de2463c9c29cd27bc96b658e61bac98 Mon Sep 17 00:00:00 2001 From: FruitieX Date: Sun, 1 May 2011 18:15:51 +0300 Subject: [PATCH] anti-overlap feature for tags --- defaultXonotic.cfg | 3 ++- qcsrc/client/autocvars.qh | 1 + qcsrc/client/shownames.qc | 27 +++++++++++++++------------ 3 files changed, 18 insertions(+), 13 deletions(-) diff --git a/defaultXonotic.cfg b/defaultXonotic.cfg index 145312227..3d3e5a92b 100644 --- a/defaultXonotic.cfg +++ b/defaultXonotic.cfg @@ -1503,7 +1503,8 @@ seta hud_shownames_alpha 0.7 "alpha" seta hud_shownames_resize 1 "enable resizing of the names, then the size cvars will correspond to the maximum size" seta hud_shownames_mindistance 1000 "start fading alpha/size at this distance" seta hud_shownames_maxdistance 2500 "alpha/size is 0 at this distance" -seta hud_shownames_antioverlap_distance 125 "2d distance to another tag after which to fade out the one further away from you" +seta hud_shownames_antioverlap 1 "if two tags get too close to each other, fade out the one further away from you" +seta hud_shownames_antioverlap_distance 125 "2d distance to other tag after which to fade out" // scoreboard seta scoreboard_columns default diff --git a/qcsrc/client/autocvars.qh b/qcsrc/client/autocvars.qh index d61e73dc6..2fe09ea1e 100644 --- a/qcsrc/client/autocvars.qh +++ b/qcsrc/client/autocvars.qh @@ -287,6 +287,7 @@ float autocvar_hud_shownames_alpha; float autocvar_hud_shownames_resize; float autocvar_hud_shownames_mindistance; float autocvar_hud_shownames_maxdistance; +float autocvar_hud_shownames_antioverlap; float autocvar_hud_shownames_antioverlap_distance; string autocvar_hud_skin; float autocvar_loddebug; diff --git a/qcsrc/client/shownames.qc b/qcsrc/client/shownames.qc index d876fd208..f69c495fb 100644 --- a/qcsrc/client/shownames.qc +++ b/qcsrc/client/shownames.qc @@ -30,22 +30,25 @@ void Draw_ShowNames() vector o, eo; o = project_3d_to_2d(self.origin); - - // fade tag out if another tag that is closer to you overlaps - entity e; float overlap; - for(e = world; (e = find(e, classname, "shownames_tag")); ) + + if(autocvar_hud_shownames_antioverlap) { - if(e == self) - continue; - eo = project_3d_to_2d(e.origin); - if not(eo_z < 0 || eo_x < 0 || eo_y < 0 || eo_x > vid_conwidth || eo_y > vid_conheight) + // fade tag out if another tag that is closer to you overlaps + entity e; + for(e = world; (e = find(e, classname, "shownames_tag")); ) { - eo_z = 0; - if(vlen((eX * o_x + eY * o_y) - eo) < autocvar_hud_shownames_antioverlap_distance && vlen(self.origin - view_origin) > vlen(e.origin - view_origin)) + if(e == self) + continue; + eo = project_3d_to_2d(e.origin); + if not(eo_z < 0 || eo_x < 0 || eo_y < 0 || eo_x > vid_conwidth || eo_y > vid_conheight) { - overlap = TRUE; - break; + eo_z = 0; + if(vlen((eX * o_x + eY * o_y) - eo) < autocvar_hud_shownames_antioverlap_distance && vlen(self.origin - view_origin) > vlen(e.origin - view_origin)) + { + overlap = TRUE; + break; + } } } } -- 2.39.2