# 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;