X-Git-Url: https://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Flib%2Fwarpzone%2Fcommon.qh;h=4bbbb853b00bad0266f2482cd5ef7efcccd738d3;hb=641c47df604de42c11c68a7d80813b29affcefb2;hp=d0c1f22ea8deb1d108e10c34d2dd45d9f0fe3d08;hpb=437d67dbc7631d6c49e922990d96461d3ff4b7b2;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/lib/warpzone/common.qh b/qcsrc/lib/warpzone/common.qh index d0c1f22ea..4bbbb853b 100644 --- a/qcsrc/lib/warpzone/common.qh +++ b/qcsrc/lib/warpzone/common.qh @@ -1,5 +1,4 @@ -#ifndef LIB_WARPZONE_COMMON_H -#define LIB_WARPZONE_COMMON_H +#pragma once // uncomment this if your mod uses the roll angle in fixangle // #define KEEP_ROLL @@ -30,7 +29,7 @@ void WarpZone_MakeAllOther(); #define MOVE_NOTHING -1 entity WarpZone_trace_forent; // temp, callback is allowed to change it -typedef void(vector start, vector hit, vector end) WarpZone_trace_callback_t; // called on every elementary trace +USING(WarpZone_trace_callback_t, void(vector start, vector hit, vector end)); // called on every elementary trace var WarpZone_trace_callback_t WarpZone_trace_callback_t_null; entity WarpZone_trace_transform; // transform accumulator during a trace entity WarpZone_trace_firstzone; // first warpzone hit by a trace (can differ from the requested zone in case of _ThroughZone, the trace is aborted then) @@ -107,10 +106,9 @@ entity WarpZone_RefSys_SpawnSameRefSys(entity me); // spawn().R = me.R float WarpZoneLib_MoveOutOfSolid(entity e); #define move_out_of_solid(e) WarpZoneLib_MoveOutOfSolid(e) -float WarpZoneLib_ExactTrigger_Touch(); -void WarpZoneLib_ExactTrigger_Init(); +float WarpZoneLib_ExactTrigger_Touch(entity this, entity toucher); +void WarpZoneLib_ExactTrigger_Init(entity this); // WARNING: this kills the trace globals -#define EXACTTRIGGER_TOUCH if(WarpZoneLib_ExactTrigger_Touch()) return -#define EXACTTRIGGER_INIT WarpZoneLib_ExactTrigger_Init() -#endif +#define EXACTTRIGGER_TOUCH(e,t) if(WarpZoneLib_ExactTrigger_Touch((e), (t))) return +#define EXACTTRIGGER_INIT WarpZoneLib_ExactTrigger_Init(this)