]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/server/t_teleporters.qh
Clean up SVQC #includes
[xonotic/xonotic-data.pk3dir.git] / qcsrc / server / t_teleporters.qh
diff --git a/qcsrc/server/t_teleporters.qh b/qcsrc/server/t_teleporters.qh
new file mode 100644 (file)
index 0000000..4b1750c
--- /dev/null
@@ -0,0 +1,71 @@
+#ifndef T_TELEPORTERS_H
+#define T_TELEPORTERS_H
+
+void trigger_teleport_use();
+
+#define TDEATHLOOP(o) \
+       entity head; \
+       vector deathmin; \
+       vector deathmax; \
+       float deathradius; \
+       deathmin = (o) + player.mins; \
+       deathmax = (o) + player.maxs; \
+       if(telefragmin != telefragmax) \
+       { \
+               if(deathmin.x > telefragmin.x) deathmin_x = telefragmin.x; \
+               if(deathmin.y > telefragmin.y) deathmin_y = telefragmin.y; \
+               if(deathmin.z > telefragmin.z) deathmin_z = telefragmin.z; \
+               if(deathmax.x < telefragmax.x) deathmax_x = telefragmax.x; \
+               if(deathmax.y < telefragmax.y) deathmax_y = telefragmax.y; \
+               if(deathmax.z < telefragmax.z) deathmax_z = telefragmax.z; \
+       } \
+       deathradius = max(vlen(deathmin), vlen(deathmax)); \
+       for(head = findradius(o, deathradius); head; head = head.chain) \
+               if(head != player) \
+                       if(head.takedamage) \
+                               if(boxesoverlap(deathmin, deathmax, head.absmin, head.absmax))
+
+
+float check_tdeath(entity player, vector org, vector telefragmin, vector telefragmax);
+float tdeath_hit;
+void tdeath(entity player, entity teleporter, entity telefragger, vector telefragmin, vector telefragmax);
+
+void spawn_tdeath(vector v0, entity e, vector v);
+
+.entity pusher;
+const float TELEPORT_FLAG_SOUND = 1;
+const float TELEPORT_FLAG_PARTICLES = 2;
+const float TELEPORT_FLAG_TDEATH = 4;
+const float TELEPORT_FLAG_FORCE_TDEATH = 8;
+
+#define TELEPORT_FLAGS_WARPZONE   0
+#define TELEPORT_FLAGS_PORTAL     (TELEPORT_FLAG_SOUND | TELEPORT_FLAG_PARTICLES | TELEPORT_FLAG_TDEATH | TELEPORT_FLAG_FORCE_TDEATH)
+#define TELEPORT_FLAGS_TELEPORTER (TELEPORT_FLAG_SOUND | TELEPORT_FLAG_PARTICLES | TELEPORT_FLAG_TDEATH)
+
+// types for .teleportable entity setting
+const float TELEPORT_NORMAL = 1; // play sounds/effects etc
+const float TELEPORT_SIMPLE = 2; // only do teleport, nothing special
+
+void Reset_ArcBeam(entity player, vector forward);
+void TeleportPlayer(entity teleporter, entity player, vector to, vector to_angles, vector to_velocity, vector telefragmin, vector telefragmax, float tflags);
+
+entity Simple_TeleportPlayer(entity teleporter, entity player);
+
+void Teleport_Touch (void);
+
+void spawnfunc_info_teleport_destination (void);
+
+void spawnfunc_misc_teleporter_dest (void);
+
+void spawnfunc_target_teleporter (void);
+
+void teleport_findtarget (void);
+
+entity Teleport_Find(vector mi, vector ma);
+
+entity teleport_first;
+.entity teleport_next;
+void spawnfunc_trigger_teleport (void);
+
+void WarpZone_PostTeleportPlayer_Callback(entity pl);
+#endif
\ No newline at end of file