+#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;
}
-#define MAX_CHECKPOINTS 255
+const float MAX_CHECKPOINTS = 255;
void spawnfunc_target_checkpoint();
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;
// 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)
// 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)
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"));
}
}
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
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;
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;
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;