--- a/hedgewars/HHHandlers.inc Sun Sep 26 17:02:44 2010 +0200
+++ b/hedgewars/HHHandlers.inc Sun Sep 26 15:40:59 2010 -0400
@@ -604,8 +604,9 @@
procedure doStepHedgehog(Gear: PGear); forward;
////////////////////////////////////////////////////////////////////////////////
procedure doStepHedgehogMoving(Gear: PGear);
-var isFalling: boolean;
+var isFalling, isUnderwater: boolean;
begin
+isUnderwater:= cWaterLine < hwRound(Gear^.Y) + Gear^.Radius;
if Gear^.dX > _0_995 then Gear^.dX:= _0_995;
if Gear^.dY > _0_995 then Gear^.dY:= _0_995;
if PHedgehog(Gear^.Hedgehog)^.Unplaced then
@@ -642,6 +643,12 @@
if (Gear^.State <> 0) then DeleteCI(Gear);
+if isUnderwater then
+ begin
+ Gear^.dY:= Gear^.dY * _0_999;
+ Gear^.dX:= Gear^.dX * _0_999;
+ end;
+
if (Gear^.State and gstMoving) <> 0 then
if TestCollisionXKick(Gear, hwSign(Gear^.dX)) then
if not isFalling then