]> git.rm.cloudns.org Git - voretournament/voretournament.git/commitdiff
Place an important code before the vore system delay
authorMirceaKitsune <sonichedgehog_hyperblast00@yahoo.com>
Thu, 9 Sep 2010 17:42:30 +0000 (20:42 +0300)
committerMirceaKitsune <sonichedgehog_hyperblast00@yahoo.com>
Thu, 9 Sep 2010 17:42:30 +0000 (20:42 +0300)
data/qcsrc/server/vore.qc

index 63a7bb1c75e63d4ebcaa823911443982a35766a0..ca583e67a37181d8e86a691fc6e2110e0075f8e9 100644 (file)
@@ -321,7 +321,29 @@ void Vore()
        }\r
        self.stat_canleave = Vore_CanLeave();\r
 \r
-       // skip the vore system under some circumstances\r
+       // don't allow a player inside a player inside another player :)\r
+       // prevent this by checking if such happened, and taking the proper measures\r
+       // this code has a high priority and must not be stopped by any delay, so run it here\r
+       if(self.predator.predator.classname == "player")\r
+       {\r
+               Vore_Regurgitate(self);\r
+\r
+               // now steal our prey's prey if this probability applies\r
+               entity target_predator, oldself;\r
+               target_predator = self.predator.predator;\r
+\r
+               if(random() < cvar("g_vore_stealprey"))\r
+               if(Swallow_condition_check(self))\r
+               if not(teams_matter && self.predator.team == target_predator.team) // don't steal a team mate's prey\r
+               {\r
+                       oldself = self;\r
+                       self = target_predator;\r
+                       Vore_Swallow(oldself);\r
+                       self = oldself;\r
+               }\r
+       }\r
+\r
+       // apply delays and skip the vore system under some circumstances\r
        if(time < game_starttime || (time < warmup && !inWarmupStage)) // don't allow vore before a round begins\r
        {\r
                Vore_Disconnect();\r
@@ -395,24 +417,8 @@ void Vore()
        if(self.predator.classname != "player")\r
                return;\r
 \r
-       if(self.predator.deadflag || self.deadflag)\r
-               Vore_Regurgitate(self);\r
-       else if(self.predator.predator.classname == "player") // don't allow a player inside a player inside another player :)\r
-       {\r
-               entity target_predator, oldself;\r
-               target_predator = self.predator.predator;\r
-\r
+       if(self.deadflag || self.predator.deadflag)\r
                Vore_Regurgitate(self);\r
-               if(random() < cvar("g_vore_stealprey")) // steal our prey's prey if this probability returns true\r
-               if not(teams_matter && self.predator.team == target_predator.team) // don't steal a team mate's prey\r
-               if(Swallow_condition_check(self))\r
-               {\r
-                       oldself = self;\r
-                       self = target_predator;\r
-                       Vore_Swallow(oldself);\r
-                       self = oldself;\r
-               }\r
-       }\r
        else if(vlen(self.predator.velocity) > cvar("g_balance_vore_regurgitate_speedcap"))\r
                Vore_Regurgitate(self);\r
 \r