From 6e02979d47e9ec07499c022caf96a03093218be6 Mon Sep 17 00:00:00 2001 From: Rudolf Polzer Date: Fri, 25 Jun 2010 12:11:59 +0200 Subject: [PATCH] fix a warpzone connection bug when using random warpzone arrangement --- qcsrc/warpzonelib/server.qc | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/qcsrc/warpzonelib/server.qc b/qcsrc/warpzonelib/server.qc index 6388fbaade..4f8d83ac64 100644 --- a/qcsrc/warpzonelib/server.qc +++ b/qcsrc/warpzonelib/server.qc @@ -394,21 +394,29 @@ void WarpZone_InitStep_ClearTarget() self.enemy = world; } +entity warpzone_first; .entity warpzone_next; void WarpZone_InitStep_FindTarget() { float i; entity e, e2; + if(self.enemy) + return; + // this way only one of the two ents needs to target if(self.target != "") { + self.enemy = self; // so the if(!e.enemy) check also skips self, saves one IF + e2 = world; - for(e = world; (e = find(e, targetname, self.target)); ) + for(e = world, i = 0; (e = find(e, targetname, self.target)); ) if(!e.enemy) - if(random() * ++i < 1) - e2 = e; + if(e.classname == self.classname) // possibly non-warpzones may use the same targetname! + if(random() * ++i < 1) + e2 = e; if(!e2) { + self.enemy = world; error("Warpzone with non-existing target"); return; } -- 2.39.2