35#define MOVE_NOTHING -1
47#define WarpZone_TraceLine_ThroughZone(org, end, nomonsters, forent, zone, cb) \
48 WarpZone_TraceBox_ThroughZone(org, '0 0 0', '0 0 0', end, nomonsters, forent, zone, cb)
49#define WarpZone_TraceBox(org, mi, ma, end, nomonsters, forent) \
50 WarpZone_TraceBox_ThroughZone(org, mi, ma, end, nomonsters, forent, NULL, func_null)
51#define WarpZone_TraceLine(org, end, nomonsters, forent) \
52 WarpZone_TraceBox(org, '0 0 0', '0 0 0', end, nomonsters, forent)
53#define WarpZone_TraceToss(e, forent) \
54 WarpZone_TraceToss_ThroughZone(e, forent, NULL, func_null)
73#define WarpZone_FindRadius(org, radius) WarpZone_SearchInRadius(org, radius, MOVE_NOTHING, func_null)
88#define WarpZone_RefSys_Add(me, wz) \
89 WarpZone_RefSys_AddTransform(me, (wz).warpzone_transform, (wz).warpzone_shift)
90#define WarpZone_RefSys_AddInverse(me, wz) \
91 WarpZone_RefSys_AddInverseTransform(me, (wz).warpzone_transform, (wz).warpzone_shift)
110# define BITCLR(a, b) ((a) & ~(b))
113# define BITSET(a, b) ((a) | (b))
116# define BITXOR(a, b) (((a) ^ (b))
119# define BITCLR_ASSIGN(a, b) ((a) &= ~(b))
122# define BITSET_ASSIGN(a, b) ((a) |= (b))
125# define BITXOR_ASSIGN(a, b) ((a) ^= (b))
128#define move_out_of_solid(e) WarpZoneLib_MoveOutOfSolid(e)
133#define EXACTTRIGGER_TOUCH(e, t) if (!WarpZoneLib_ExactTrigger_Touch((e), (t), true)) return
134#define EXACTTRIGGER_INIT WarpZoneLib_ExactTrigger_Init(this, true)
var entity(vector mins, vector maxs,.entity tofield) findbox_tofield_OrFallback
limitations: NULL cannot be present elements can only be present once a maximum of IL_MAX lists can e...
void WarpZone_RefSys_AddInverseTransform(entity me, vector t, vector s)
vector WarpZone_UnTransformVelocity(entity wz, vector v)
Transforms angle vel backwards through warpzone wz, as the inverse of WarpZone_TransformVelocity.
void WarpZone_SetUp(entity e, vector my_org, vector my_ang, vector other_org, vector other_ang)
vector WarpZone_TransformVAngles(entity wz, vector v)
Transforms v_angle ang across warpzone wz.
void WarpZone_TraceToss_ThroughZone(entity e, entity forent, entity zone, WarpZone_trace_callback_t cb)
Traces tossing e, shifting & transforming each time it goes through a warpzone.
void WarpZone_RefSys_Clear(entity me)
vector WarpZone_RefSys_TransformVelocity(entity from, entity to, vector vel)
Transform velocity vel in from's reference into to's reference.
entity WarpZone_Find(vector mi, vector ma)
float WarpZoneLib_BoxTouchesBrush(vector mi, vector ma, entity e, entity ig)
vector warpzone_targetforward
bool WarpZoneLib_ExactTrigger_Touch(entity this, entity toucher, bool touchfunc)
float WarpZone_PlaneDist(entity wz, vector v)
entity WarpZone_trace_firstzone
First warpzone hit by a trace (can differ from the requested zone in case of _ThroughZone,...
vector warpzone_shift
Both a warpzone property, and set on entities found by WarpZone_SearchInRadius.
void WarpZone_Camera_SetUp(entity e, vector my_org, vector my_ang)
noref entity WarpZone_SearchInRadius_otherent
Free to use in the callback.
float warpzone_cameras_exist
vector WarpZone_TransformVelocity(entity wz, vector v)
Transforms velocity v across warpzone wz.
vector warpzone_targetorigin
void WarpZone_TrailParticles_WithMultiplier(entity own, float eff, vector org, vector end, float f, float boxflags)
void(vector start, vector hit, vector end) WarpZone_trace_callback_t
void WarpZone_RefSys_BeginAddingIncrementally(entity me, entity ref)
vector WarpZone_UnTransformVAngles(entity wz, vector v)
Transforms v_angle ang backwards through warpzone wz, as the inverse of WarpZone_TransformVAngles.
vector WarpZone_TransformAngles(entity wz, vector v)
Transforms angle v across warpzone wz.
vector warpzone_transform
Both a warpzone property, and set on entities found by WarpZone_SearchInRadius.
vector WarpZone_findradius_nearest
void WarpZone_TrailParticles(entity own, float eff, vector org, vector end)
void WarpZone_MakeAllOther()
vector WarpZone_UnTransformOrigin(entity wz, vector v)
Transforms origin org backwards through warpzone wz, as the inverse of WarpZone_TransformOrigin.
void WarpZone_TraceBox_ThroughZone(vector org, vector min, vector max, vector end, float nomonsters, entity forent, entity zone, WarpZone_trace_callback_t cb)
Traces a box from org to end, shifting & transforming each time it goes through a warpzone.
void WarpZone_RefSys_AddIncrementally(entity me, entity ref)
entity WarpZone_trace_lastzone
First warpzone hit by a trace (can differ from the requested zone in case of _ThroughZone,...
WarpZone_trace_callback_t te_csqc_trace_callback
vector WarpZone_TransformOrigin(entity wz, vector v)
Transforms origin org across warpzone wz.
entity WarpZone_RefSys_SpawnSameRefSys(entity me)
Spawns an entity in the same warpzone reference as me, and sets up its reference.
entity WarpZone_SearchInRadius(vector org, float radius, float nomonsters, WarpZone_FindRadius_cond_callback_t cb)
Modified findradius aware of warpzones, that only includes entities that meet the "cb" criteria.
vector WarpZone_tracetoss_velocity
Ending velocity of a tracetoss (post-transform).
void WarpZone_RefSys_AddTransform(entity me, vector t, vector s)
entity WarpZone_trace_transform
Transform accumulator during a trace.
float WarpZone_TargetPlaneDist(entity wz, vector v)
void WarpZone_MakeAllSolid()
vector warpzone_targetangles
IntrusiveList g_warpzones
vector WarpZone_RefSys_TransformOrigin(entity from, entity to, vector org)
Transform origin org in from's reference into to's reference.
void WarpZone_RefSys_Copy(entity me, entity from)
Copies the warpzone reference of from onto me.
float warpzone_warpzones_exist
vector WarpZone_UnTransformAngles(entity wz, vector v)
Transforms angle ang backwards through warpzone wz, as the inverse of WarpZone_TransformAngles.
float WarpZone_tracetoss_time
Duration of toss (approximate).
bool(entity e) WarpZone_FindRadius_cond_callback_t
var void te_csqc_trace_callback_func(vector start, vector hit)
vector WarpZone_findradius_dist
vector WarpZone_RefSys_TransformVAngles(entity from, entity to, vector ang)
Transform v_angle ang in from's reference into to's reference.
vector WarpZone_RefSys_TransformAngles(entity from, entity to, vector ang)
Transform angle ang in from's reference into to's reference.
entity WarpZone_trace_forent
Temp, callback is allowed to change it.
int WarpZoneLib_MoveOutOfSolid(entity e)
#define STATIC_INIT(func)
during worldspawn