]> git.rm.cloudns.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Allow normal revival during automatic revival. It fixes issues with the revive progre...
authorterencehill <piuntn@gmail.com>
Sat, 30 May 2020 14:24:23 +0000 (16:24 +0200)
committerterencehill <piuntn@gmail.com>
Sat, 30 May 2020 14:24:23 +0000 (16:24 +0200)
qcsrc/common/gamemodes/gamemode/freezetag/sv_freezetag.qc

index 5b4c80e7f619c6fc0ce768f8c2cb2a09e5067004..360dc7a4ea8bb1f15ca4274c6ad2225a9625cf75 100644 (file)
@@ -486,24 +486,23 @@ MUTATOR_HOOKFUNCTION(ft, PlayerPreThink, CBC_ORDER_FIRST)
        entity reviving_players_last = NULL;
        entity reviving_players_first = NULL;
 
-       int n;
-       if(player.freezetag_frozen_timeout > 0 && time >= player.freezetag_frozen_timeout)
-               n = -1;
-       else
-       {
-               n = 0;
-               vector revive_extra_size = '1 1 1' * autocvar_g_freezetag_revive_extra_size;
-               FOREACH_CLIENT(IS_PLAYER(it) && IS_REVIVING(player, it, revive_extra_size), {
-                       if (reviving_players_last)
-                               reviving_players_last.chain = it;
-                       reviving_players_last = it;
-                       if (!reviving_players_first)
-                               reviving_players_first = it;
-                       ++n;
-               });
+       int n = 0;
+       vector revive_extra_size = '1 1 1' * autocvar_g_freezetag_revive_extra_size;
+       FOREACH_CLIENT(IS_PLAYER(it) && IS_REVIVING(player, it, revive_extra_size), {
                if (reviving_players_last)
-                       reviving_players_last.chain = NULL;
-       }
+                       reviving_players_last.chain = it;
+               reviving_players_last = it;
+               if (!reviving_players_first)
+                       reviving_players_first = it;
+               ++n;
+       });
+       if (reviving_players_last)
+               reviving_players_last.chain = NULL;
+
+       // allow normal revival during automatic revival
+       // (not allowing it IS_REVIVING should check freezetag_frozen_timeout too)
+       if (!n && player.freezetag_frozen_timeout > 0 && time >= player.freezetag_frozen_timeout)
+               n = -1;
 
        if (!n) // no teammate nearby
        {