]> git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/server/mutators/mutator/gamemode_ca.qc
Merge branch 'master' into TimePath/stats
[xonotic/xonotic-data.pk3dir.git] / qcsrc / server / mutators / mutator / gamemode_ca.qc
index cdd2d4d4de512cfb53c9685ef12858909398fc4f..d4ca5cb3cc26ed4463de2ff1cef39b95c92a7fc9 100644 (file)
@@ -202,28 +202,24 @@ float ca_isEliminated(entity e)
        return false;
 }
 
-// Returns next available player to spectate if g_ca_spectate_enemies == 0
+/** Returns next available player to spectate if g_ca_spectate_enemies == 0 */
 entity CA_SpectateNext(entity player, entity start)
 {
-       if(SAME_TEAM(start, player))
-               return start;
-
-       entity spec_other = start;
+    if (SAME_TEAM(start, player)) return start;
        // continue from current player
-       while(spec_other && DIFF_TEAM(spec_other, player))
-               spec_other = find(spec_other, classname, "player");
-
-       if (!spec_other)
+       for (entity e = start; (e = find(e, classname, "player")); )
        {
-               // restart from begining
-               spec_other = find(spec_other, classname, "player");
-               while(spec_other && DIFF_TEAM(spec_other, player))
-                       spec_other = find(spec_other, classname, "player");
+               if (SAME_TEAM(player, e)) return e;
        }
-
-       return spec_other;
+       // restart from begining
+       for (entity e = NULL; (e = find(e, classname, "player")); )
+       {
+               if (SAME_TEAM(player, e)) return e;
+       }
+       return start;
 }
 
+
 MUTATOR_HOOKFUNCTION(ca, PlayerSpawn)
 {SELFPARAM();
        self.caplayer = 1;