]> git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/common/triggers/trigger/gravity.qc
take3: format 903 files
[xonotic/xonotic-data.pk3dir.git] / qcsrc / common / triggers / trigger / gravity.qc
index a6b3eedde651521db1a84c409b00940cec16c6a3..b6824ec2c82660dd8dcc546539c04fb034667356 100644 (file)
+#include "gravity.qh"
 #ifdef SVQC
 .entity trigger_gravity_check;
 void trigger_gravity_remove(entity own)
 {
-       if(own.trigger_gravity_check.owner == own)
-       {
+       if (own.trigger_gravity_check.owner == own) {
                UpdateCSQCProjectile(own);
                own.gravity = own.trigger_gravity_check.gravity;
-               remove(own.trigger_gravity_check);
-       }
-       else
+               delete(own.trigger_gravity_check);
+       } else {
                backtrace("Removing a trigger_gravity_check with no valid owner");
-       own.trigger_gravity_check = world;
+       }
+       own.trigger_gravity_check = NULL;
 }
-void trigger_gravity_check_think()
-{SELFPARAM();
+void trigger_gravity_check_think(entity this)
+{
        // This spawns when a player enters the gravity zone and checks if he left.
-       // Each frame, self.count is set to 2 by trigger_gravity_touch() and decreased by 1 here.
+       // Each frame, this.count is set to 2 by trigger_gravity_touch() and decreased by 1 here.
        // It the player has left the gravity trigger, this will be allowed to reach 0 and indicate that.
-       if(self.count <= 0)
-       {
-               if(self.owner.trigger_gravity_check == self)
-                       trigger_gravity_remove(self.owner);
-               else
-                       remove(self);
+       if (this.count <= 0) {
+               if (this.owner.trigger_gravity_check == this) {
+                       trigger_gravity_remove(this.owner);
+               } else {
+                       delete(this);
+               }
                return;
-       }
-       else
-       {
-               self.count -= 1;
-               self.nextthink = time;
+       } else {
+               this.count -= 1;
+               this.nextthink = time;
        }
 }
 
-void trigger_gravity_use()
-{SELFPARAM();
-       self.state = !self.state;
+void trigger_gravity_use(entity this, entity actor, entity trigger)
+{
+       this.state = !this.state;
 }
 
-void trigger_gravity_touch()
-{SELFPARAM();
+void trigger_gravity_touch(entity this, entity toucher)
+{
        float g;
 
-       if(self.state != true)
+       if (this.state != true) {
                return;
+       }
 
-       EXACTTRIGGER_TOUCH;
+       EXACTTRIGGER_TOUCH(this, toucher);
 
-       g = self.gravity;
+       g = this.gravity;
 
-       if (!(self.spawnflags & 1))
-       {
-               if(other.trigger_gravity_check)
-               {
-                       if(self == other.trigger_gravity_check.enemy)
-                       {
+       if (!(this.spawnflags & 1)) {
+               if (toucher.trigger_gravity_check) {
+                       if (this == toucher.trigger_gravity_check.enemy) {
                                // same?
-                               other.trigger_gravity_check.count = 2; // gravity one more frame...
+                               toucher.trigger_gravity_check.count = 2; // gravity one more frame...
                                return;
                        }
 
                        // compare prio
-                       if(self.cnt > other.trigger_gravity_check.enemy.cnt)
-                               trigger_gravity_remove(other);
-                       else
+                       if (this.cnt > toucher.trigger_gravity_check.enemy.cnt) {
+                               trigger_gravity_remove(toucher);
+                       } else {
                                return;
+                       }
+               }
+               toucher.trigger_gravity_check = spawn();
+               toucher.trigger_gravity_check.enemy = this;
+               toucher.trigger_gravity_check.owner = toucher;
+               toucher.trigger_gravity_check.gravity = toucher.gravity;
+               setthink(toucher.trigger_gravity_check, trigger_gravity_check_think);
+               toucher.trigger_gravity_check.nextthink = time;
+               toucher.trigger_gravity_check.count = 2;
+               if (toucher.gravity) {
+                       g *= toucher.gravity;
                }
-               other.trigger_gravity_check = spawn();
-               other.trigger_gravity_check.enemy = self;
-               other.trigger_gravity_check.owner = other;
-               other.trigger_gravity_check.gravity = other.gravity;
-               other.trigger_gravity_check.think = trigger_gravity_check_think;
-               other.trigger_gravity_check.nextthink = time;
-               other.trigger_gravity_check.count = 2;
-               if(other.gravity)
-                       g *= other.gravity;
        }
 
-       if (other.gravity != g)
-       {
-               other.gravity = g;
-               if(self.noise != "")
-                       _sound (other, CH_TRIGGER, self.noise, VOL_BASE, ATTEN_NORM);
-               UpdateCSQCProjectile(self.owner);
+       if (toucher.gravity != g) {
+               toucher.gravity = g;
+               if (this.noise != "") {
+                       _sound(toucher, CH_TRIGGER, this.noise, VOL_BASE, ATTEN_NORM);
+               }
+               UpdateCSQCProjectile(this.owner);
        }
 }
 
 spawnfunc(trigger_gravity)
 {
-       if(self.gravity == 1)
+       if (this.gravity == 1) {
                return;
+       }
 
        EXACTTRIGGER_INIT;
-       self.touch = trigger_gravity_touch;
-       if(self.noise != "")
-               precache_sound(self.noise);
+       settouch(this, trigger_gravity_touch);
+       if (this.noise != "") {
+               precache_sound(this.noise);
+       }
 
-       self.state = true;
-       IFTARGETED
-       {
-               self.use = trigger_gravity_use;
-               if(self.spawnflags & 2)
-                       self.state = false;
+       this.state = true;
+       if (THIS_TARGETED) {
+               this.use = trigger_gravity_use;
+               if (this.spawnflags & 2) {
+                       this.state = false;
+               }
        }
 }
 #endif