]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/client/teamradar.qc
Merge branch 'master' into TimePath/unified_weapons
[xonotic/xonotic-data.pk3dir.git] / qcsrc / client / teamradar.qc
index 7f84f0ef6ad7ed2c742c6c8f6f58cfe47956f501..8eaf7e4c2206fe7d000e3d5f6b9aef87421fb966 100644 (file)
@@ -1,23 +1,11 @@
-#if defined(CSQC)
-       #include "teamradar.qh"
-#elif defined(MENUQC)
-#elif defined(SVQC)
-#endif
+#include "teamradar.qh"
+#include "_all.qh"
 
-float vlen2d(vector v)
-{
-       return sqrt(v.x * v.x + v.y * v.y);
-}
+#include "hud.qh"
 
-float vlen_maxnorm2d(vector v)
-{
-       return max(v.x, v.y, -v.x, -v.y);
-}
+#include "../common/util.qh"
 
-float vlen_minnorm2d(vector v)
-{
-       return min(max(v.x, -v.x), max(v.y, -v.y));
-}
+#include "../csqcmodellib/interpolate.qh"
 
 vector teamradar_3dcoord_to_texcoord(vector in)
 {
@@ -43,6 +31,34 @@ vector teamradar_texcoord_to_2dcoord(vector in)
        return out;
 }
 
+
+vector teamradar_2dcoord_to_texcoord(vector in)
+{
+       vector out;
+       out = in;
+
+       out -= teamradar_origin2d;
+       if(v_flipped)
+               out_x = -out_x;
+       out = out / teamradar_size;
+
+       out_y = - out_y; // screen space is reversed
+       out = rotate(out, -teamradar_angle * DEG2RAD);
+
+       out += teamradar_origin3d_in_texcoord;
+
+       return out;
+}
+
+vector teamradar_texcoord_to_3dcoord(vector in,float z)
+{
+       vector out;
+       out_x = in_x * (mi_picmax_x - mi_picmin_x) + mi_picmin_x;
+       out_y = in_y * (mi_picmax_y - mi_picmin_y) + mi_picmin_y;
+       out_z = z;
+       return out;
+}
+
 vector yinvert(vector v)
 {
        v.y = 1 - v.y;
@@ -118,24 +134,20 @@ void draw_teamradar_player(vector coord3d, vector pangles, vector rgb)
 
 void draw_teamradar_icon(vector coord, float icon, entity pingdata, vector rgb, float a)
 {
-       float dt;
-       vector v;
-       float i;
-
        coord = teamradar_texcoord_to_2dcoord(teamradar_3dcoord_to_texcoord(coord));
        drawpic(coord - '4 4 0', strcat("gfx/teamradar_icon_", ftos(icon)), '8 8 0', rgb, a, 0);
 
        if(pingdata)
        {
-               for(i = 0; i < MAX_TEAMRADAR_TIMES; ++i)
+               for(int i = 0; i < MAX_TEAMRADAR_TIMES; ++i)
                {
-                       dt = pingdata.(teamradar_times[i]);
+                       float dt = pingdata.(teamradar_times[i]);
                        if(dt == 0)
                                continue;
                        dt = time - dt;
                        if(dt >= 1 || dt <= 0)
                                continue;
-                       v = '2 2 0' * teamradar_size * dt;
+                       vector v = '2 2 0' * teamradar_size * dt;
                        drawpic(coord - 0.5 * v, "gfx/teamradar_ping", v, '1 1 1', (1 - dt) * a, DRAWFLAG_ADDITIVE);
                }
        }
@@ -190,7 +202,7 @@ void teamradar_loadcvars()
 // radar links
 
 void Ent_RadarLink()
-{
+{SELFPARAM();
        int sendflags = ReadByte();
 
        InterpolateOrigin_Undo();