]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/warpzonelib/util_server.qc
#include this
[xonotic/xonotic-data.pk3dir.git] / qcsrc / warpzonelib / util_server.qc
index 85d99333ab37052cfc35bc448722837521042109..10a7a2ffbea2d8ea3cbfee7c1544f241db7c9b6b 100644 (file)
@@ -1,3 +1,13 @@
+#if defined(CSQC)
+#elif defined(MENUQC)
+#elif defined(SVQC)
+       #include "../dpdefs/progsdefs.qc"
+    #include "../dpdefs/dpextensions.qc"
+    #include "common.qh"
+    #include "util_server.qh"
+    #include "../csqcmodellib/sv_model.qh"
+#endif
+
 void WarpZoneLib_MoveOutOfSolid_Expand(entity e, vector by)
 {
        float eps = 0.0625;
@@ -19,11 +29,11 @@ float WarpZoneLib_MoveOutOfSolid(entity e)
        o = e.origin;
        traceline(o, o, MOVE_WORLDONLY, e);
        if (trace_startsolid)
-               return FALSE;
+               return false;
 
        tracebox(o, e.mins, e.maxs, o, MOVE_WORLDONLY, e);
        if (!trace_startsolid)
-               return TRUE;
+               return true;
 
        m0 = e.mins;
        m1 = e.maxs;
@@ -47,10 +57,10 @@ float WarpZoneLib_MoveOutOfSolid(entity e)
        if (trace_startsolid)
        {
                setorigin(e, o);
-               return FALSE;
+               return false;
        }
 
-       return TRUE;
+       return true;
 }
 
 float WarpZoneLib_ExactTrigger_Touch()
@@ -60,16 +70,28 @@ float WarpZoneLib_ExactTrigger_Touch()
 
 void WarpZoneLib_ExactTrigger_Init()
 {
+       vector mi, ma;
        if (self.movedir == '0 0 0')
        if (self.angles != '0 0 0')
        {
                makevectors (self.angles);
                self.movedir = v_forward;
        }
+       self.warpzone_isboxy = 1;
        if(self.model != "")
        {
+               mi = self.mins;
+               ma = self.maxs;
                precache_model(self.model);
                setmodel(self, self.model);
+               // let mapper-set mins/maxs override the model's bounds if set
+               if(mi != '0 0 0' || ma != '0 0 0')
+               {
+                       self.mins = mi;
+                       self.maxs = ma;
+               }
+               else
+                       self.warpzone_isboxy = 0; // enable exacttrigger matching
        }
        setorigin(self, self.origin);
        if(self.scale)