]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/client/waypointsprites.qc
Merge branch 'master' into Mario/overkill
[xonotic/xonotic-data.pk3dir.git] / qcsrc / client / waypointsprites.qc
index a3e856d1438197df091be171493946c75273a1c5..4c6dfde286aa46d083c6916897d725792b57014d 100644 (file)
@@ -115,39 +115,31 @@ void drawhealthbar(vector org, float rot, float h, vector sz, vector hotspot, fl
 // returns location of sprite text
 vector drawspritearrow(vector o, float ang, vector rgb, float a, float t)
 {
-       float SQRT2 = 1.414;
-       float BORDER; BORDER = 1.5 * t;
-       float TSIZE; TSIZE = 8 * t;
-       float RLENGTH; RLENGTH = 8 * t;
-       float RWIDTH; RWIDTH = 4 * t;
-       float MLENGTH; MLENGTH = 4 * t;
+       float size   = 9.0 * t;
+       float border = 1.5 * t;
+       float margin = 4.0 * t;
+
+       float borderDiag = border * 1.414;
+       vector arrowX  = eX * size;
+       vector arrowY  = eY * (size+borderDiag);
+       vector borderX = eX * (size+borderDiag);
+       vector borderY = eY * (size+borderDiag+border);
 
        R_BeginPolygon("", DRAWFLAG_NORMAL);
-       R_PolygonVertex(o + rotate(eX * -(TSIZE + BORDER * (1 + SQRT2)) + eY * (TSIZE + BORDER), ang), '0 0 0', '0 0 0', a);
-       R_PolygonVertex(o + rotate(eX *  (TSIZE + BORDER * (1 + SQRT2)) + eY * (TSIZE + BORDER), ang), '0 0 0', '0 0 0', a);
-       R_PolygonVertex(o + rotate(eY * -(        BORDER *      SQRT2),                          ang), '0 0 0', '0 0 0', a);
-       R_EndPolygon();
-       R_BeginPolygon("", DRAWFLAG_NORMAL);
-       R_PolygonVertex(o + rotate(eX * -(RWIDTH + BORDER) + eY * (TSIZE           + BORDER), ang), '0 0 0', '0 0 0', a);
-       R_PolygonVertex(o + rotate(eX * -(RWIDTH + BORDER) + eY * (TSIZE + RLENGTH + BORDER), ang), '0 0 0', '0 0 0', a);
-       R_PolygonVertex(o + rotate(eX *  (RWIDTH + BORDER) + eY * (TSIZE + RLENGTH + BORDER), ang), '0 0 0', '0 0 0', a);
-       R_PolygonVertex(o + rotate(eX *  (RWIDTH + BORDER) + eY * (TSIZE           + BORDER), ang), '0 0 0', '0 0 0', a);
+       R_PolygonVertex(o,                                  '0 0 0', '0 0 0', a);
+       R_PolygonVertex(o + rotate(arrowY  - borderX, ang), '0 0 0', '0 0 0', a);
+       R_PolygonVertex(o + rotate(borderY - borderX, ang), '0 0 0', '0 0 0', a);
+       R_PolygonVertex(o + rotate(borderY + borderX, ang), '0 0 0', '0 0 0', a);
+       R_PolygonVertex(o + rotate(arrowY  + borderX, ang), '0 0 0', '0 0 0', a);
        R_EndPolygon();
 
        R_BeginPolygon("", DRAWFLAG_ADDITIVE);
-       R_PolygonVertex(o + rotate(eX * -TSIZE + eY * TSIZE, ang), '0 0 0', rgb, a);
-       R_PolygonVertex(o + rotate(eX *  TSIZE + eY * TSIZE, ang), '0 0 0', rgb, a);
-       R_PolygonVertex(o + rotate('0 0 0',                  ang), '0 0 0', rgb, a);
-       R_EndPolygon();
-       R_BeginPolygon("", DRAWFLAG_ADDITIVE);
-       R_PolygonVertex(o + rotate(eX * -RWIDTH + eY *  TSIZE,            ang), '0 0 0', rgb, a);
-       R_PolygonVertex(o + rotate(eX * -RWIDTH + eY * (TSIZE + RLENGTH), ang), '0 0 0', rgb, a);
-       R_PolygonVertex(o + rotate(eX *  RWIDTH + eY * (TSIZE + RLENGTH), ang), '0 0 0', rgb, a);
-       R_PolygonVertex(o + rotate(eX *  RWIDTH + eY *  TSIZE,            ang), '0 0 0', rgb, a);
+       R_PolygonVertex(o + rotate(eY * borderDiag, ang), '0 0 0', rgb, a);
+       R_PolygonVertex(o + rotate(arrowY - arrowX, ang), '0 0 0', rgb, a);
+       R_PolygonVertex(o + rotate(arrowY + arrowX, ang), '0 0 0', rgb, a);
        R_EndPolygon();
 
-       return
-               o + rotate(eY * (TSIZE + RLENGTH + MLENGTH), ang);
+       return o + rotate(eY * (borderDiag+size+margin), ang);
 }
 
 // returns location of sprite healthbar
@@ -304,6 +296,8 @@ string spritelookuptext(string s)
                case "wpn-hlac": return _("HLAC");
                case "wpn-campingrifle": return _("Rifle");
                case "wpn-minelayer": return _("Mine Layer");
+               case "wpn-ok_hmg": return _("Heavy Machine Gun");
+               case "wpn-ok_rl": return _("Rocket-Propelled Chainsaw");
                case "dom-neut": return _("Control point");
                case "dom-red": return _("Control point");
                case "dom-blue": return _("Control point");
@@ -457,7 +451,7 @@ void Draw_WaypointSprite()
        if(rgb == '0 0 0')
        {
                self.teamradar_color = '1 0 1';
-               print(sprintf("WARNING: sprite of name %s has no color, using pink so you notice it\n", spriteimage));
+               printf("WARNING: sprite of name %s has no color, using pink so you notice it\n", spriteimage);
        }
 
        if(time - floor(time) > 0.5)