X-Git-Url: http://de.git.xonotic.org/?p=xonotic%2Fxonotic-data.pk3dir.git;a=blobdiff_plain;f=qcsrc%2Fclient%2Fwaypointsprites.qc;h=f63b3cf3c85da63e2c09fb5a39e422f88954a1ea;hp=4a8b156799cce1beb339e139e4d5f55375cd045c;hb=ae2c1407ec9a05e4f501a6604a7cce8e1030df9f;hpb=22a37c4431f80ece25aeff28c18bc67dd183a352 diff --git a/qcsrc/client/waypointsprites.qc b/qcsrc/client/waypointsprites.qc index 4a8b15679..f63b3cf3c 100644 --- a/qcsrc/client/waypointsprites.qc +++ b/qcsrc/client/waypointsprites.qc @@ -1,4 +1,20 @@ #include "waypointsprites.qh" +#include "_all.qh" + +#include "hud.qh" +#include "teamradar.qh" + +#include "../common/buffs.qh" +#include "../common/constants.qh" +#include "../common/teams.qh" + +#include "../common/weapons/all.qh" + +#include "../csqcmodellib/interpolate.qh" + +#include "../warpzonelib/mathlib.qh" + +.float alpha; void drawrotpic(vector org, float rot, string pic, vector sz, vector hotspot, vector rgb, float a, float f) { @@ -150,6 +166,10 @@ vector drawspritetext(vector o, float ang, float minwidth, vector rgb, float a, float spritelookupblinkvalue(string s) { + if(substring(s, 0, 4) == "wpn-") + if(get_weaponinfo(stof(substring(s, 4, strlen(s)))).spawnflags & WEP_FLAG_SUPERWEAPON) + return 2; + switch(s) { case "ons-cp-atck-neut": return 2; @@ -157,6 +177,8 @@ float spritelookupblinkvalue(string s) case "ons-cp-atck-blue": return 2; case "ons-cp-dfnd-red": return 0.5; case "ons-cp-dfnd-blue": return 0.5; + case "item_health_mega": return 2; + case "item_armor_large": return 2; case "item-invis": return 2; case "item-extralife": return 2; case "item-speed": return 2; @@ -182,7 +204,15 @@ vector spritelookupcolor(string s, vector def) string spritelookuptext(string s) { if(substring(s, 0, 4) == "wpn-") { return (get_weaponinfo(stof(substring(s, 4, strlen(s)))).message); } - if(substring(s, 0, 5) == "buff-") { return Buff_PrettyName(Buff_Type_FromSprite(s)); } + if (substring(s, 0, 5) == "buff-") + { + entity buff = BUFF_NULL; + FOREACH(BUFFS, it.m_sprite == s, LAMBDA( + buff = it; + break; + )); + return buff.m_prettyName; + } switch(s) { @@ -204,6 +234,9 @@ string spritelookuptext(string s) case "keycarrier-red": return _("Key carrier"); case "keycarrier-yellow": return _("Key carrier"); case "redbase": return _("Red base"); + case "yellowbase": return _("Yellow base"); + case "neutralbase": return _("White base"); + case "pinkbase": return _("Pink base"); case "waypoint": return _("Waypoint"); case "ons-gen-red": return _("Generator"); case "ons-gen-blue": return _("Generator"); @@ -229,6 +262,8 @@ string spritelookuptext(string s) case "dom-blue": return _("Control point"); case "dom-yellow": return _("Control point"); case "dom-pink": return _("Control point"); + case "item_health_mega": return _("Mega health"); + case "item_armor_large": return _("Large armor"); case "item-invis": return _("Invisibility"); case "item-extralife": return _("Extra life"); case "item-speed": return _("Speed"); @@ -239,6 +274,7 @@ string spritelookuptext(string s) case "frozen": return _("Frozen!"); case "tagged-target": return _("Tagged"); case "vehicle": return _("Vehicle"); + case "intruder": return _("Intruder!"); default: return s; } } @@ -330,6 +366,14 @@ void Draw_WaypointSprite() // choose the sprite switch(self.rule) { + case SPRITERULE_SPECTATOR: + if(!( + (autocvar_g_waypointsprite_itemstime == 1 && t == NUM_SPECTATOR + 1) + || (autocvar_g_waypointsprite_itemstime == 2 && (t == NUM_SPECTATOR + 1 || warmup_stage)) + )) + return; + spriteimage = self.netname; + break; case SPRITERULE_DEFAULT: if(self.team) { @@ -383,7 +427,7 @@ void Draw_WaypointSprite() { if(self.helpme && time < self.helpme) a *= SPRITE_HELPME_BLINK; - else + else if(!self.lifetime) // fading out waypoints don't blink a *= spritelookupblinkvalue(spriteimage); } @@ -393,7 +437,7 @@ void Draw_WaypointSprite() a = 1; } - if(a <= 0) + if(a <= 0.003) return; rgb = fixrgbexcess(rgb);