diff -r 82e3a6e5d51b -r 5b0be812dcdb hedgewars/GSHandlers.inc --- a/hedgewars/GSHandlers.inc Tue May 14 07:16:14 2013 -0400 +++ b/hedgewars/GSHandlers.inc Tue May 14 08:57:30 2013 -0400 @@ -178,6 +178,12 @@ if Gear^.dY.Round > 2 then Gear^.dY.QWordValue:= 8589934592; + if (Gear^.State and gstSubmersible <> 0) and (hwRound(Gear^.Y) > cWaterLine) then + begin + Gear^.dX:= Gear^.dX * _0_999; + Gear^.dY:= Gear^.dY * _0_999 + end; + Gear^.State := Gear^.State and (not gstCollision); collV := 0; collH := 0; @@ -185,6 +191,7 @@ tdY := Gear^.dY; + // might need some testing/adjustments - just to avoid projectiles to fly forever (accelerated by wind/skips) if (hwRound(Gear^.X) < min(LAND_WIDTH div -2, -2048)) or (hwRound(Gear^.X) > max(LAND_WIDTH * 3 div 2, 6144)) then