+#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;
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;
if (trace_startsolid)
{
setorigin(e, o);
- return FALSE;
+ return false;
}
- return TRUE;
+ return true;
}
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)