]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/common/triggers/trigger/multi.qc
Fix compile
[xonotic/xonotic-data.pk3dir.git] / qcsrc / common / triggers / trigger / multi.qc
index 0e9a02016ca4fd7109561683785891a32e227444..fd3917d33be3fec7fa623f27b18c0066d4dca30a 100644 (file)
@@ -3,7 +3,7 @@
 #ifdef SVQC
 // the wait time has passed, so set back up for another activation
 void multi_wait()
-{
+{SELFPARAM();
        if (self.max_health)
        {
                self.health = self.max_health;
@@ -17,12 +17,16 @@ void multi_wait()
 // self.enemy should be set to the activator so it can be held through a delay
 // so wait for the delay time before firing
 void multi_trigger()
-{
+{SELFPARAM();
        if (self.nextthink > time)
        {
                return;         // allready been triggered
        }
 
+       if(self.spawnflags & 16384)
+       if(!IS_PLAYER(self.enemy))
+               return; // only players
+
        if (self.classname == "trigger_secret")
        {
                if (!IS_PLAYER(self.enemy))
@@ -32,7 +36,7 @@ void multi_trigger()
        }
 
        if (self.noise)
-               sound (self.enemy, CH_TRIGGER, self.noise, VOL_BASE, ATTEN_NORM);
+               _sound (self.enemy, CH_TRIGGER, self.noise, VOL_BASE, ATTEN_NORM);
 
 // don't trigger again until reset
        self.takedamage = DAMAGE_NO;
@@ -58,14 +62,14 @@ void multi_trigger()
 }
 
 void multi_use()
-{
+{SELFPARAM();
        self.goalentity = other;
        self.enemy = activator;
        multi_trigger();
 }
 
 void multi_touch()
-{
+{SELFPARAM();
        if(!(self.spawnflags & 2))
        if(!other.iscreature)
                        return;
@@ -96,7 +100,7 @@ void multi_touch()
 }
 
 void multi_eventdamage (entity inflictor, entity attacker, float damage, int deathtype, vector hitloc, vector force)
-{
+{SELFPARAM();
        if (!self.takedamage)
                return;
        if(self.spawnflags & DOOR_NOSPLASH)
@@ -111,19 +115,19 @@ void multi_eventdamage (entity inflictor, entity attacker, float damage, int dea
        }
 }
 
-void multi_reset()
+void multi_reset(entity this)
 {
-       if ( !(self.spawnflags & SPAWNFLAG_NOTOUCH) )
-               self.touch = multi_touch;
-       if (self.max_health)
+       if ( !(this.spawnflags & SPAWNFLAG_NOTOUCH) )
+               this.touch = multi_touch;
+       if (this.max_health)
        {
-               self.health = self.max_health;
-               self.takedamage = DAMAGE_YES;
-               self.solid = SOLID_BBOX;
+               this.health = this.max_health;
+               this.takedamage = DAMAGE_YES;
+               this.solid = SOLID_BBOX;
        }
-       self.think = func_null;
-       self.nextthink = 0;
-       self.team = self.team_saved;
+       this.think = func_null;
+       this.nextthink = 0;
+       this.team = this.team_saved;
 }
 
 /*QUAKED spawnfunc_trigger_multiple (.5 .5 .5) ? notouch
@@ -139,7 +143,7 @@ sounds
 4)
 set "message" to text string
 */
-void spawnfunc_trigger_multiple()
+spawnfunc(trigger_multiple)
 {
        self.reset = multi_reset;
        if (self.sounds == 1)
@@ -149,8 +153,7 @@ void spawnfunc_trigger_multiple()
        }
        else if (self.sounds == 2)
        {
-               precache_sound ("misc/talk.wav");
-               self.noise = "misc/talk.wav";
+               self.noise = strzone(SND(TALK));
        }
        else if (self.sounds == 3)
        {
@@ -202,9 +205,9 @@ sounds
 4)
 set "message" to text string
 */
-void spawnfunc_trigger_once()
+spawnfunc(trigger_once)
 {
-       self.wait = -1;
-       spawnfunc_trigger_multiple();
+       this.wait = -1;
+       spawnfunc_trigger_multiple(this);
 }
 #endif