]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/common/turrets/targettrigger.qc
Merge branch 'TimePath/modules'
[xonotic/xonotic-data.pk3dir.git] / qcsrc / common / turrets / targettrigger.qc
index 625746341750754f0f6336550a1eff867aaf1430..f2a97d4a12529e6fd576819d7509b5bd55597937 100644 (file)
@@ -1,37 +1,25 @@
+#include "targettrigger.qh"
 spawnfunc(turret_targettrigger);
-void turret_targettrigger_touch();
+void turret_targettrigger_touch(entity this, entity toucher);
 
-void turret_targettrigger_touch()
-{SELFPARAM();
-    entity e;
-    if (self.cnt > time) return;
-    entity oldself = this;
-
-    e = find(world, targetname, self.target);
-    while (e)
-    {
-        if (e.turret_flags & TUR_FLAG_RECIEVETARGETS)
-        {
-            setself(e);
-            if(e.turret_addtarget)
-                e.turret_addtarget(other,oldself);
-        }
-
-        e = find(e, targetname, oldself.target);
-    }
-
-    oldself.cnt = time + 0.5;
-
-    setself(this);
+void turret_targettrigger_touch(entity this, entity toucher)
+{
+    if (this.cnt > time) return;
+    FOREACH_ENTITY_STRING_ORDERED(targetname, this.target, {
+        if (!(it.turret_flags & TUR_FLAG_RECIEVETARGETS)) continue;
+        if (!it.turret_addtarget) continue;
+        it.turret_addtarget(it, toucher, this);
+    });
+    this.cnt = time + 0.5;
 }
 
 /*QUAKED turret_targettrigger (.5 .5 .5) ?
 */
 spawnfunc(turret_targettrigger)
 {
-    if(!autocvar_g_turrets) { remove(self); return; }
+    if(!autocvar_g_turrets) { delete(this); return; }
 
-    InitTrigger ();
+    InitTrigger(this);
 
-    self.touch = turret_targettrigger_touch;
+    settouch(this, turret_targettrigger_touch);
 }