# HG changeset patch
# User nemo
# Date 1318027924 14400
# Node ID fd602b5838ab60451aef3572f80069b22af98198
# Parent  77b826a8f996e9605d5a4d1ce5cb884cb4b07540
This should allow hedgehogs to still move freely after trapping other hedgehogs in a portal loop.

diff -r 77b826a8f996 -r fd602b5838ab hedgewars/GSHandlers.inc
--- a/hedgewars/GSHandlers.inc	Fri Oct 07 17:29:00 2011 -0400
+++ b/hedgewars/GSHandlers.inc	Fri Oct 07 18:52:04 2011 -0400
@@ -4205,7 +4205,8 @@
         iterator:= GearsList;
         while iterator <> nil do
             begin
-            if iterator^.Kind <> gtPortal then
+            if (iterator^.Kind <> gtPortal) and 
+               ((iterator^.Hedgehog <> CurrentHedgehog) or ((iterator^.Message and gmAllStoppable) = 0)) then
                 begin
                 iterator^.Active:= true;
                 if iterator^.dY.QWordValue = _0.QWordValue then iterator^.dY.isNegative:= false;
diff -r 77b826a8f996 -r fd602b5838ab hedgewars/HHHandlers.inc
--- a/hedgewars/HHHandlers.inc	Fri Oct 07 17:29:00 2011 -0400
+++ b/hedgewars/HHHandlers.inc	Fri Oct 07 18:52:04 2011 -0400
@@ -901,11 +901,13 @@
     Hedgehog: PHedgehog;
 begin
 Hedgehog:= HHGear^.Hedgehog;
-if not isInMultiShoot then
-   AllInactive:= false
-else
+if isInMultiShoot then
    HHGear^.Message:= 0;
 
+if ((Ammoz[CurrentHedgehog^.CurAmmoType].Ammo.Propz and ammoprop_Utility) <> 0) and isInMultiShoot then 
+    AllInactive:= true
+else if not isInMultiShoot then AllInactive:= false;
+
 if (TurnTimeLeft = 0) or (HHGear^.Damage > 0) then
     begin
     if TagTurnTimeLeft = 0 then TagTurnTimeLeft:= TurnTimeLeft;