diff -r 82e3a6e5d51b -r 5b0be812dcdb hedgewars/uGearsHedgehog.pas --- a/hedgewars/uGearsHedgehog.pas Tue May 14 07:16:14 2013 -0400 +++ b/hedgewars/uGearsHedgehog.pas Tue May 14 08:57:30 2013 -0400 @@ -259,16 +259,8 @@ begin if (CurAmmoGear^.AmmoType = amJetpack) and (Gear^.Message and gmPrecise <> 0) then begin - if hwRound(Gear^.Y) > cWaterLine then - begin - newDx:= xx*cMaxPower/cPowerDivisor/2; - newDy:= yy*cMaxPower/cPowerDivisor/2 - end - else - begin - newDx:= xx*cMaxPower/cPowerDivisor; - newDy:= yy*cMaxPower/cPowerDivisor - end + newDx:= xx*cMaxPower/cPowerDivisor; + newDy:= yy*cMaxPower/cPowerDivisor end else begin @@ -409,7 +401,7 @@ end; if (CurAmmoGear <> nil) and (CurAmmoGear^.AmmoType = amJetpack) and (Gear^.Message and gmPrecise <> 0) and (hwRound(Y) > cWaterLine) then - newGear^.State:= newGear^.State or gstNoDrown; + newGear^.State:= newGear^.State or gstSubmersible; case CurAmmoType of amGrenade, amMolotov, @@ -534,7 +526,9 @@ begin if TagTurnTimeLeft = 0 then TagTurnTimeLeft:= TurnTimeLeft; - TurnTimeLeft:=(Ammoz[a].TimeAfterTurn * cGetAwayTime) div 100; + if (CurAmmoGear <> nil) and (CurAmmoGear^.State and gstSubmersible <> 0) and (hwRound(CurAmmoGear^.Y) > cWaterLine) then + TurnTimeLeft:=(Ammoz[a].TimeAfterTurn * cGetAwayTime) div 25 + else TurnTimeLeft:=(Ammoz[a].TimeAfterTurn * cGetAwayTime) div 100; end; if ((Ammoz[a].Ammo.Propz and ammoprop_NoRoundEnd) = 0) and (HHGear <> nil) then HHGear^.State:= HHGear^.State or gstAttacked;