]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blob - qcsrc/warpzonelib/common.qh
ec2e50d162abdef5c909871c6951282e689589db
[xonotic/xonotic-data.pk3dir.git] / qcsrc / warpzonelib / common.qh
1 // uncomment this if your mod uses the roll angle in fixangle
2 // #define KEEP_ROLL
3
4 const void func_null(void); // never assign to this one please
5
6 .float warpzone_isboxy;
7 .vector warpzone_shift;
8 .vector warpzone_origin;
9 .vector warpzone_angles;
10 .vector warpzone_forward;
11 .vector warpzone_targetorigin;
12 .vector warpzone_targetangles;
13 .vector warpzone_targetforward;
14 .vector warpzone_transform;
15 void WarpZone_SetUp(entity e, vector my_org, vector my_ang, vector other_org, vector other_ang);
16
17 float WarpZoneLib_BoxTouchesBrush(vector mi, vector ma, entity e, entity ig);
18 vector WarpZoneLib_NearestPointOnBox(vector mi, vector ma, vector org);
19
20 entity WarpZone_Find(vector mi, vector ma);
21 void WarpZone_MakeAllSolid();
22 void WarpZone_MakeAllOther();
23
24 #define MOVE_NOTHING -1
25 typedef void(vector start, vector hit, vector end) WarpZone_trace_callback_t; // called on every elementary trace
26 const var WarpZone_trace_callback_t WarpZone_trace_callback_t_null;
27 entity WarpZone_trace_transform; // transform accumulator during a trace
28 vector WarpZone_tracetoss_velocity; // ending velocity of a tracetoss (post-transform)
29 float WarpZone_tracetoss_time; // duration of toss (approximate)
30 void WarpZone_TraceBox(vector org, vector min, vector max, vector end, float nomonsters, entity forent);
31 void WarpZone_TraceBox_ThroughZone(vector org, vector min, vector max, vector end, float nomonsters, entity forent, entity zone, WarpZone_trace_callback_t cb);
32 void WarpZone_TraceLine(vector org, vector end, float nomonsters, entity forent);
33 void WarpZone_TraceToss(entity e, entity forent);
34 void WarpZone_TraceToss_ThroughZone(entity e, entity forent, entity zone, WarpZone_trace_callback_t cb);
35 void WarpZone_TrailParticles(entity own, float eff, vector org, vector end);
36
37 .vector WarpZone_findradius_dist;
38 .vector WarpZone_findradius_nearest;
39 // also set: warpzone parameters, so WarpZone_TransformOrigin can transform vectors from blast's to victim's system
40 .vector WarpZone_findradius_findorigin;
41 .float WarpZone_findradius_findradius;
42 entity WarpZone_FindRadius(vector org, float radius, float needlineofsight);
43
44 float WarpZone_PlaneDist(entity wz, vector v);
45 float WarpZone_TargetPlaneDist(entity wz, vector v);
46 vector WarpZone_TransformOrigin(entity wz, vector v);
47 vector WarpZone_TransformVelocity(entity wz, vector v);
48 vector WarpZone_TransformAngles(entity wz, vector v);
49 vector WarpZone_TransformVAngles(entity wz, vector v);
50 vector WarpZone_UnTransformOrigin(entity wz, vector v);
51 vector WarpZone_UnTransformVelocity(entity wz, vector v);
52 vector WarpZone_UnTransformAngles(entity wz, vector v);
53 vector WarpZone_UnTransformVAngles(entity wz, vector v);
54
55 // reference systems (chained warpzone transforms)
56 void WarpZone_RefSys_Add(entity me, entity wz);
57 void WarpZone_RefSys_AddIncrementally(entity me, entity ref);
58 void WarpZone_RefSys_BeginAddingIncrementally(entity me, entity ref);
59 vector WarpZone_RefSys_TransformOrigin(entity from, entity to, vector org);
60 vector WarpZone_RefSys_TransformVelocity(entity from, entity to, vector vel);
61 vector WarpZone_RefSys_TransformAngles(entity from, entity to, vector ang);
62 vector WarpZone_RefSys_TransformVAngles(entity from, entity to, vector ang);
63 entity WarpZone_RefSys_SpawnSameRefSys(entity me);