From: Rudolf Polzer Date: Fri, 25 Nov 2011 10:24:08 +0000 (+0100) Subject: fix CTS spawns on courtfun X-Git-Tag: xonotic-v0.6.0~35^2~33^2~25 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=cc76e37deb83e3da0ae02cffc91d50d416a7434c;p=xonotic%2Fxonotic-data.pk3dir.git fix CTS spawns on courtfun --- diff --git a/qcsrc/server/cl_client.qc b/qcsrc/server/cl_client.qc index 32fe3cf52..6a11f2d34 100644 --- a/qcsrc/server/cl_client.qc +++ b/qcsrc/server/cl_client.qc @@ -155,14 +155,14 @@ vector Spawn_Score(entity spot, entity playerlist, float teamcheck, float anypoi if(spot.target != "") { entity ent; float good, found; - ent = find(world, targetname, spot.target); - while(ent) { + for(ent = world; (ent = find(ent, targetname, spot.target)); ) + { if(ent.classname == "target_objective") { found = 1; if(ent.health < 0 || ent.health >= ASSAULT_VALUE_INACTIVE) - return '-1 0 0'; + continue; good = 1; } else if(ent.classname == "trigger_race_checkpoint") @@ -175,14 +175,14 @@ vector Spawn_Score(entity spot, entity playerlist, float teamcheck, float anypoi { // spawn at first if(ent.race_checkpoint != 0) - return '-1 0 0'; + continue; if(spot.race_place != race_lowest_place_spawn) - return '-1 0 0'; + continue; } else { if(ent.race_checkpoint != self.race_respawn_checkpoint) - return '-1 0 0'; + continue; // try reusing the previous spawn if(ent == self.race_respawn_spotref || spot == self.race_respawn_spotref) prio += 1; @@ -195,13 +195,18 @@ vector Spawn_Score(entity spot, entity playerlist, float teamcheck, float anypoi if(pl == 0 && !self.race_started) pl = race_highest_place_spawn; // use last place if he has not even touched finish yet if(spot.race_place != pl) - return '-1 0 0'; + continue; } } } good = 1; } - ent = find(ent, targetname, spot.target); + } + + if(!found) + { + dprint("WARNING: spawnpoint at ", vtos(spot.origin), " could not find its target ", spot.target, "\n"); + return '-1 0 0'; } if(found && !good)