]> git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/server/race.qc
Clean out self uses from spawnpoint code
[xonotic/xonotic-data.pk3dir.git] / qcsrc / server / race.qc
index ba13b14a95a64275b38a4290f3504f650c71652e..6fb39f6ce71cac1007025543fc982cbf2a9f8258 100644 (file)
@@ -741,7 +741,7 @@ void trigger_race_checkpoint_verify(entity this)
                        // race only (middle of the race)
                        g_race_qualifying = false;
                        pl_race_place = 0;
-                       if (!Spawn_FilterOutBadSpots(findchain(classname, "info_player_deathmatch"), 0, false)) {
+                       if (!Spawn_FilterOutBadSpots(this, findchain(classname, "info_player_deathmatch"), 0, false)) {
                                error(strcat("Checkpoint ", ftos(i), " misses a spawnpoint with race_place==", ftos(pl_race_place), " (used for respawning in race) - bailing out"));
             }
 
@@ -749,7 +749,7 @@ void trigger_race_checkpoint_verify(entity this)
                                // qualifying only
                                g_race_qualifying = 1;
                                pl_race_place = race_lowest_place_spawn;
-                               if (!Spawn_FilterOutBadSpots(findchain(classname, "info_player_deathmatch"), 0, false)) {
+                               if (!Spawn_FilterOutBadSpots(this, findchain(classname, "info_player_deathmatch"), 0, false)) {
                                        error(strcat("Checkpoint ", ftos(i), " misses a spawnpoint with race_place==", ftos(pl_race_place), " (used for qualifying) - bailing out"));
                 }
 
@@ -757,7 +757,7 @@ void trigger_race_checkpoint_verify(entity this)
                                g_race_qualifying = 0;
                                for (int p = 1; p <= race_highest_place_spawn; ++p) {
                                        pl_race_place = p;
-                                       if (!Spawn_FilterOutBadSpots(findchain(classname, "info_player_deathmatch"), 0, false)) {
+                                       if (!Spawn_FilterOutBadSpots(this, findchain(classname, "info_player_deathmatch"), 0, false)) {
                                                error(strcat("Checkpoint ", ftos(i), " misses a spawnpoint with race_place==", ftos(pl_race_place), " (used for initially spawning in race) - bailing out"));
                     }
                                }
@@ -768,7 +768,7 @@ void trigger_race_checkpoint_verify(entity this)
                pl_race_checkpoint = race_NextCheckpoint(0);
                g_race_qualifying = 1;
                pl_race_place = race_lowest_place_spawn;
-               if (!Spawn_FilterOutBadSpots(findchain(classname, "info_player_deathmatch"), 0, false)) {
+               if (!Spawn_FilterOutBadSpots(this, findchain(classname, "info_player_deathmatch"), 0, false)) {
                        error(strcat("Checkpoint 0 misses a spawnpoint with race_place==", ftos(pl_race_place), " (used for qualifying) - bailing out"));
         }
        } else {
@@ -872,27 +872,26 @@ void trigger_race_checkpoint_verify(entity this)
        }
 }
 
-vector trigger_race_checkpoint_spawn_evalfunc(entity player, entity spot, vector current)
-{SELFPARAM();
+vector trigger_race_checkpoint_spawn_evalfunc(entity this, entity player, entity spot, vector current)
+{
        if(g_race_qualifying)
        {
                // spawn at first
-               if(self.race_checkpoint != 0)
+               if(this.race_checkpoint != 0)
                        return '-1 0 0';
                if(spot.race_place != race_lowest_place_spawn)
                        return '-1 0 0';
        }
        else
        {
-               if(self.race_checkpoint != player.race_respawn_checkpoint)
+               if(this.race_checkpoint != player.race_respawn_checkpoint)
                        return '-1 0 0';
                // try reusing the previous spawn
-               if(self == player.race_respawn_spotref || spot == player.race_respawn_spotref)
+               if(this == player.race_respawn_spotref || spot == player.race_respawn_spotref)
                        current.x += SPAWN_PRIO_RACE_PREVIOUS_SPAWN;
-               if(self.race_checkpoint == 0)
+               if(this.race_checkpoint == 0)
                {
-                       float pl;
-                       pl = player.race_place;
+                       int pl = player.race_place;
                        if(pl > race_highest_place_spawn)
                                pl = 0;
                        if(pl == 0 && !player.race_started)