]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/server/race.qc
Merge branch 'TimePath/experiments/csqc_prediction' into Mario/qc_physics
[xonotic/xonotic-data.pk3dir.git] / qcsrc / server / race.qc
index 1c12058d0d9019ee4bb0ae36366a4db58c588c96..a42d24034404e06eda65045a8a517ae125a98fa7 100644 (file)
@@ -1,3 +1,8 @@
+#include "race.qh"
+#include "../common/triggers/subs.qh"
+
+void W_Porto_Fail(float failhard);
+
 float race_readTime(string map, float pos)
 {
        string rr = (g_cts) ? CTS_RECORD : RACE_RECORD;
@@ -67,7 +72,7 @@ string race_readName(string map, float pos)
 }
 
 
-#define MAX_CHECKPOINTS 255
+const float MAX_CHECKPOINTS = 255;
 
 void spawnfunc_target_checkpoint();
 
@@ -689,11 +694,11 @@ void checkpoint_use()
 float race_waypointsprite_visible_for_player(entity e)
 {
        if(e.race_checkpoint == -1 || self.owner.race_checkpoint == -2)
-               return TRUE;
+               return true;
        else if(e.race_checkpoint == self.owner.race_checkpoint)
-               return TRUE;
+               return true;
        else
-               return FALSE;
+               return false;
 }
 
 float have_verified;
@@ -722,7 +727,7 @@ void trigger_race_checkpoint_verify()
                        // race only (middle of the race)
                        g_race_qualifying = 0;
                        self.race_place = 0;
-                       if(!Spawn_FilterOutBadSpots(findchain(classname, "info_player_deathmatch"), 0, FALSE))
+                       if(!Spawn_FilterOutBadSpots(findchain(classname, "info_player_deathmatch"), 0, false))
                                error(strcat("Checkpoint ", ftos(i), " misses a spawnpoint with race_place==", ftos(self.race_place), " (used for respawning in race) - bailing out"));
 
                        if(i == 0)
@@ -730,7 +735,7 @@ void trigger_race_checkpoint_verify()
                                // qualifying only
                                g_race_qualifying = 1;
                                self.race_place = race_lowest_place_spawn;
-                               if(!Spawn_FilterOutBadSpots(findchain(classname, "info_player_deathmatch"), 0, FALSE))
+                               if(!Spawn_FilterOutBadSpots(findchain(classname, "info_player_deathmatch"), 0, false))
                                        error(strcat("Checkpoint ", ftos(i), " misses a spawnpoint with race_place==", ftos(self.race_place), " (used for qualifying) - bailing out"));
 
                                // race only (initial spawn)
@@ -738,7 +743,7 @@ void trigger_race_checkpoint_verify()
                                for(p = 1; p <= race_highest_place_spawn; ++p)
                                {
                                        self.race_place = p;
-                                       if(!Spawn_FilterOutBadSpots(findchain(classname, "info_player_deathmatch"), 0, FALSE))
+                                       if(!Spawn_FilterOutBadSpots(findchain(classname, "info_player_deathmatch"), 0, false))
                                                error(strcat("Checkpoint ", ftos(i), " misses a spawnpoint with race_place==", ftos(self.race_place), " (used for initially spawning in race) - bailing out"));
                                }
                        }
@@ -750,7 +755,7 @@ void trigger_race_checkpoint_verify()
                self.race_checkpoint = race_NextCheckpoint(0);
                g_race_qualifying = 1;
                self.race_place = race_lowest_place_spawn;
-               if(!Spawn_FilterOutBadSpots(findchain(classname, "info_player_deathmatch"), 0, FALSE))
+               if(!Spawn_FilterOutBadSpots(findchain(classname, "info_player_deathmatch"), 0, false))
                        error(strcat("Checkpoint 0 misses a spawnpoint with race_place==", ftos(self.race_place), " (used for qualifying) - bailing out"));
        }
        else
@@ -877,7 +882,7 @@ vector trigger_race_checkpoint_spawn_evalfunc(entity player, entity spot, vector
                        return '-1 0 0';
                // try reusing the previous spawn
                if(self == player.race_respawn_spotref || spot == player.race_respawn_spotref)
-                       current_x += SPAWN_PRIO_RACE_PREVIOUS_SPAWN;
+                       current.x += SPAWN_PRIO_RACE_PREVIOUS_SPAWN;
                if(self.race_checkpoint == 0)
                {
                        float pl;
@@ -905,7 +910,7 @@ void spawnfunc_trigger_race_checkpoint()
                self.touch = checkpoint_touch;
 
        o = (self.absmin + self.absmax) * 0.5;
-       tracebox(o, PL_MIN, PL_MAX, o - '0 0 1' * (o_z - self.absmin_z), MOVE_NORMAL, self);
+       tracebox(o, PL_MIN, PL_MAX, o - '0 0 1' * (o.z - self.absmin.z), MOVE_NORMAL, self);
        waypoint_spawnforitem_force(self, trace_endpos);
        self.nearestwaypointtimeout = time + 1000000000;
 
@@ -954,7 +959,7 @@ void spawnfunc_target_checkpoint() // defrag entity
                self.touch = checkpoint_touch;
 
        o = (self.absmin + self.absmax) * 0.5;
-       tracebox(o, PL_MIN, PL_MAX, o - '0 0 1' * (o_z - self.absmin_z), MOVE_NORMAL, self);
+       tracebox(o, PL_MIN, PL_MAX, o - '0 0 1' * (o.z - self.absmin.z), MOVE_NORMAL, self);
        waypoint_spawnforitem_force(self, trace_endpos);
        self.nearestwaypointtimeout = time + 1000000000;