]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/client/teamradar.qc
Merge branch 'terencehill/lms_itemtimes_fix' into 'master'
[xonotic/xonotic-data.pk3dir.git] / qcsrc / client / teamradar.qc
index 1822acb5e467a2934b7c60aa80353d5c7d019636..96fd5ee977695877739119e0ba69427588649859 100644 (file)
@@ -1,23 +1,10 @@
-#if defined(CSQC)
-       #include "teamradar.qh"
-#elif defined(MENUQC)
-#elif defined(SVQC)
-#endif
+#include "teamradar.qh"
 
-float vlen2d(vector v)
-{
-       return sqrt(v.x * v.x + v.y * v.y);
-}
+#include "hud/all.qh"
 
-float vlen_maxnorm2d(vector v)
-{
-       return max(v.x, v.y, -v.x, -v.y);
-}
+#include <common/mutators/mutator/waypoints/all.qh>
 
-float vlen_minnorm2d(vector v)
-{
-       return min(max(v.x, -v.x), max(v.y, -v.y));
-}
+#include "../lib/csqcmodel/interpolate.qh"
 
 vector teamradar_3dcoord_to_texcoord(vector in)
 {
@@ -43,10 +30,32 @@ vector teamradar_texcoord_to_2dcoord(vector in)
        return out;
 }
 
-vector yinvert(vector v)
+
+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)
 {
-       v.y = 1 - v.y;
-       return v;
+       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;
 }
 
 void draw_teamradar_background(float fg)
@@ -116,10 +125,10 @@ void draw_teamradar_player(vector coord3d, vector pangles, vector rgb)
        R_EndPolygon();
 }
 
-void draw_teamradar_icon(vector coord, float icon, entity pingdata, vector rgb, float a)
+void draw_teamradar_icon(vector coord, entity icon, entity pingdata, vector rgb, float a)
 {
        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);
+       drawpic(coord - '4 4 0', strcat("gfx/teamradar_icon_", ftos(icon.m_radaricon)), '8 8 0', rgb, a, 0);
 
        if(pingdata)
        {
@@ -185,34 +194,36 @@ void teamradar_loadcvars()
 
 // radar links
 
-void Ent_RadarLink()
+NET_HANDLE(ENT_CLIENT_RADARLINK, bool isnew)
 {
        int sendflags = ReadByte();
 
-       InterpolateOrigin_Undo();
+       InterpolateOrigin_Undo(this);
 
-       self.iflags = IFLAG_VELOCITY | IFLAG_ORIGIN;
-       self.classname = "radarlink";
+       this.iflags = IFLAG_VELOCITY | IFLAG_ORIGIN;
+       this.classname = "radarlink";
 
        if(sendflags & 1)
        {
-               self.origin_x = ReadCoord();
-               self.origin_y = ReadCoord();
-               self.origin_z = ReadCoord();
-               setorigin(self, self.origin);
+               this.origin_x = ReadCoord();
+               this.origin_y = ReadCoord();
+               this.origin_z = ReadCoord();
+               setorigin(this, this.origin);
        }
 
        if(sendflags & 2)
        {
-               self.velocity_x = ReadCoord();
-               self.velocity_y = ReadCoord();
-               self.velocity_z = ReadCoord();
+               this.velocity_x = ReadCoord();
+               this.velocity_y = ReadCoord();
+               this.velocity_z = ReadCoord();
        }
 
        if(sendflags & 4)
        {
-               self.team = ReadByte();
+               this.team = ReadByte();
        }
 
-       InterpolateOrigin_Note();
+       return = true;
+
+       InterpolateOrigin_Note(this);
 }