X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fwarpzonelib%2Futil_server.qc;h=0af6d3c0dcd44dacfb266a3f3ed9f400b0ee7bf4;hb=125d619e9ab2a307b15b7ee1a2ededed32c7e84d;hp=b94eafbdafd4e422af7dd6eb5c31933156dbb988;hpb=bedc4037f669e55758528498bc1eb19311f6f71c;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/warpzonelib/util_server.qc b/qcsrc/warpzonelib/util_server.qc index b94eafbda..0af6d3c0d 100644 --- a/qcsrc/warpzonelib/util_server.qc +++ b/qcsrc/warpzonelib/util_server.qc @@ -1,72 +1,15 @@ +#include "util_server.qh" + +#include "common.qh" + #if defined(CSQC) #elif defined(MENUQC) #elif defined(SVQC) - #include "../dpdefs/progsdefs.qh" - #include "../dpdefs/dpextensions.qh" - #include "common.qh" - #include "util_server.qh" #include "../csqcmodellib/sv_model.qh" + #include "../dpdefs/dpextensions.qh" + #include "../dpdefs/progsdefs.qh" #endif - -void WarpZoneLib_MoveOutOfSolid_Expand(entity e, vector by) -{ - float eps = 0.0625; - tracebox(e.origin, e.mins - '1 1 1' * eps, e.maxs + '1 1 1' * eps, e.origin + by, MOVE_WORLDONLY, e); - if (trace_startsolid) - return; - if (trace_fraction < 1) - { - // hit something - // adjust origin in the other direction... - setorigin(e,e.origin - by * (1 - trace_fraction)); - } -} - -float WarpZoneLib_MoveOutOfSolid(entity e) -{ - vector o, m0, m1; - - o = e.origin; - traceline(o, o, MOVE_WORLDONLY, e); - if (trace_startsolid) - return false; - - tracebox(o, e.mins, e.maxs, o, MOVE_WORLDONLY, e); - if (!trace_startsolid) - return true; - - m0 = e.mins; - m1 = e.maxs; - e.mins = '0 0 0'; - e.maxs = '0 0 0'; - WarpZoneLib_MoveOutOfSolid_Expand(e, '1 0 0' * m0_x); - e.mins_x = m0_x; - WarpZoneLib_MoveOutOfSolid_Expand(e, '1 0 0' * m1_x); - e.maxs_x = m1_x; - WarpZoneLib_MoveOutOfSolid_Expand(e, '0 1 0' * m0_y); - e.mins_y = m0_y; - WarpZoneLib_MoveOutOfSolid_Expand(e, '0 1 0' * m1_y); - e.maxs_y = m1_y; - WarpZoneLib_MoveOutOfSolid_Expand(e, '0 0 1' * m0_z); - e.mins_z = m0_z; - WarpZoneLib_MoveOutOfSolid_Expand(e, '0 0 1' * m1_z); - e.maxs_z = m1_z; - setorigin(e, e.origin); - - tracebox(e.origin, e.mins, e.maxs, e.origin, MOVE_WORLDONLY, e); - if (trace_startsolid) - { - setorigin(e, o); - return false; - } - - return true; -} - -float WarpZoneLib_ExactTrigger_Touch() -{ - return !WarpZoneLib_BoxTouchesBrush(other.absmin, other.absmax, self, other); -} +#include "common.qh" void WarpZoneLib_ExactTrigger_Init() {