]> git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/server/t_jumppads.qc
Make most server includes order insensitive
[xonotic/xonotic-data.pk3dir.git] / qcsrc / server / t_jumppads.qc
index 0efb77df276ae2154a8127458e5695b2ecb0b53d..018a7c259c9f0ab24aeb90dcf2bb9866a357b63b 100644 (file)
@@ -1,13 +1,16 @@
-float PUSH_ONCE                        = 1;
-float PUSH_SILENT              = 2;
+#include "t_jumppads.qh"
+#include "_.qh"
 
-.float pushltime;
-.float istypefrag;
-.float height;
+#include "g_subs.qh"
 
-void() SUB_UseTargets;
+#include "bot/navigation.qh"
+#include "bot/waypoints.qh"
 
-float trigger_push_calculatevelocity_flighttime;
+#include "weapons/csqcprojectile.qh"
+
+#include "../common/animdecide.qh"
+
+#include "../warpzonelib/util_server.qh"
 
 void trigger_push_use()
 {
@@ -40,7 +43,7 @@ vector trigger_push_calculatevelocity(vector org, entity tgt, float ht)
        if(other.gravity)
                grav *= other.gravity;
 
-       zdist = torg_z - org_z;
+       zdist = torg.z - org.z;
        sdist = vlen(torg - org - zdist * '0 0 1');
        sdir = normalize(torg - org - zdist * '0 0 1');
 
@@ -81,10 +84,10 @@ vector trigger_push_calculatevelocity(vector org, entity tgt, float ht)
        vector solution;
        solution = solve_quadratic(0.5 * grav, -vz, zdist); // equation "z(ti) = zdist"
        // ALWAYS solvable because jumpheight >= zdist
-       if(!solution_z)
-               solution_y = solution_x; // just in case it is not solvable due to roundoff errors, assume two equal solutions at their center (this is mainly for the usual case with ht == 0)
+       if(!solution.z)
+               solution.y = solution.x; // just in case it is not solvable due to roundoff errors, assume two equal solutions at their center (this is mainly for the usual case with ht == 0)
        if(zdist == 0)
-               solution_x = solution_y; // solution_x is 0 in this case, so don't use it, but rather use solution_y (which will be sqrt(0.5 * jumpheight / grav), actually)
+               solution.x = solution.y; // solution_x is 0 in this case, so don't use it, but rather use solution_y (which will be sqrt(0.5 * jumpheight / grav), actually)
 
        if(zdist < 0)
        {
@@ -94,14 +97,14 @@ vector trigger_push_calculatevelocity(vector org, entity tgt, float ht)
                        // almost straight line type
                        // jump apex is before the jump
                        // we must take the larger one
-                       trigger_push_calculatevelocity_flighttime = solution_y;
+                       trigger_push_calculatevelocity_flighttime = solution.y;
                }
                else
                {
                        // regular jump
                        // jump apex is during the jump
                        // we must take the larger one too
-                       trigger_push_calculatevelocity_flighttime = solution_y;
+                       trigger_push_calculatevelocity_flighttime = solution.y;
                }
        }
        else
@@ -112,14 +115,14 @@ vector trigger_push_calculatevelocity(vector org, entity tgt, float ht)
                        // almost straight line type
                        // jump apex is after the jump
                        // we must take the smaller one
-                       trigger_push_calculatevelocity_flighttime = solution_x;
+                       trigger_push_calculatevelocity_flighttime = solution.x;
                }
                else
                {
                        // regular jump
                        // jump apex is during the jump
                        // we must take the larger one
-                       trigger_push_calculatevelocity_flighttime = solution_y;
+                       trigger_push_calculatevelocity_flighttime = solution.y;
                }
        }
        vs = sdist / trigger_push_calculatevelocity_flighttime;
@@ -137,7 +140,7 @@ void trigger_push_touch()
                return;
 
        if(self.team)
-               if((self.spawnflags & 4 == 0) == (self.team != other.team))
+               if(((self.spawnflags & 4) == 0) == (self.team != other.team))
                        return;
 
        EXACTTRIGGER_TOUCH;
@@ -164,7 +167,7 @@ void trigger_push_touch()
                other.velocity = self.movedir;
        }
 
-       other.flags &~= FL_ONGROUND;
+       other.flags &= ~FL_ONGROUND;
 
        if (IS_PLAYER(other))
        {
@@ -175,20 +178,18 @@ void trigger_push_touch()
                {
                        // flash when activated
                        pointparticles(particleeffectnum("jumppad_activate"), other.origin, other.velocity, 1);
-                       sound (other, CH_TRIGGER, self.noise, VOL_BASE, ATTN_NORM);
+                       sound (other, CH_TRIGGER, self.noise, VOL_BASE, ATTEN_NORM);
                        self.pushltime = time + 0.2;
                }
                if(IS_REAL_CLIENT(other) || IS_BOT_CLIENT(other))
                {
-                       float i;
-                       float found;
-                       found = FALSE;
-                       for(i = 0; i < other.jumppadcount && i < NUM_JUMPPADSUSED; ++i)
+                       bool found = false;
+                       for(int i = 0; i < other.jumppadcount && i < NUM_JUMPPADSUSED; ++i)
                                if(other.(jumppadsused[i]) == self)
-                                       found = TRUE;
+                                       found = true;
                        if(!found)
                        {
-                               other.(jumppadsused[mod(other.jumppadcount, NUM_JUMPPADSUSED)]) = self;
+                               other.(jumppadsused[other.jumppadcount % NUM_JUMPPADSUSED]) = self;
                                other.jumppadcount = other.jumppadcount + 1;
                        }
 
@@ -201,10 +202,10 @@ void trigger_push_touch()
                                other.lastteleporttime = time;
 
                        if (other.deadflag == DEAD_NO)
-                               animdecide_setaction(other, ANIMACTION_JUMP, TRUE);
+                               animdecide_setaction(other, ANIMACTION_JUMP, true);
                }
                else
-                       other.jumppadcount = TRUE;
+                       other.jumppadcount = true;
 
                // reset tracking of who pushed you into a hazard (for kill credit)
                other.pushltime = 0;
@@ -246,7 +247,6 @@ void trigger_push_touch()
        }
 }
 
-.vector dest;
 void trigger_push_findtarget()
 {
        entity e, t;
@@ -254,7 +254,7 @@ void trigger_push_findtarget()
 
        // first calculate a typical start point for the jump
        org = (self.absmin + self.absmax) * 0.5;
-       org_z = self.absmax_z - PL_MIN_z;
+       org.z = self.absmax.z - PL_MIN_z;
 
        if (self.target)
        {
@@ -329,7 +329,7 @@ void spawnfunc_trigger_push()
                self.speed = 1000;
        self.movedir = self.movedir * self.speed * 10;
 
-       if not(self.noise)
+       if (!self.noise)
                self.noise = "misc/jumppad.wav";
        precache_sound (self.noise);