hedgewars/uGearsHandlersMess.pas
changeset 13410 4c813650fe17
parent 13409 8ce83caec236
child 13411 6a3f94fe2636
--- a/hedgewars/uGearsHandlersMess.pas	Sat May 26 10:54:17 2018 -0400
+++ b/hedgewars/uGearsHandlersMess.pas	Sun May 27 13:10:32 2018 -0400
@@ -6263,9 +6263,8 @@
                                 end
                             else if iter^.Kind = gtAirMine then
                                 begin
-                                AddCI(iter);
-                                iter^.Damage := 0;
-                                iter^.State:= iter^.State or gstFrozen
+								ForcePlaceOnLand(hwRound(iter^.X)-16, hwRound(iter^.Y)-16, sprFrozenAirMine, 0, lfIce, $FFFFFFFF, false, false, false);
+								iter^.State:= gstFrozen or gstInvisible;
                                 end
                             else // gtExplosives
                                 begin
@@ -6279,6 +6278,7 @@
                     // FillRoundInLandWithIce(Target.X, Target.Y, iceRadius);
                     SetAllHHToActive;
                     Timer := iceWaitCollision;
+					Power:= GameTicks
                     end;
 
                 if (Timer = iceCollideWithWater) and ((GameTicks - Power) > groundFreezingTime div 2) then
@@ -6338,13 +6338,17 @@
                 X:= HHGear^.X;
                 Y:= HHGear^.Y
                 end
-			else if CheckGearNear(Gear, gtAirMine, Gear^.Radius*2, Gear^.Radius*2) <> nil then
+			else
 				begin
-                Target.X:= gX;
-                Target.Y:= gY;
-                X:= HHGear^.X;
-                Y:= HHGear^.Y
-				end; 
+				iter:= CheckGearNear(Gear, gtAirMine, Gear^.Radius*2, Gear^.Radius*2);
+				if (iter <> nil) and (iter^.State <> gstFrozen) then
+					begin
+					Target.X:= gX;
+					Target.Y:= gY;
+					X:= HHGear^.X;
+					Y:= HHGear^.Y
+					end 
+				end;
             if (gX > max(LAND_WIDTH,4096)*2) or
                     (gX < -max(LAND_WIDTH,4096)) or
                     (gY < -max(LAND_HEIGHT,4096)) or