--- a/hedgewars/HHHandlers.inc Sun May 31 19:31:37 2009 +0000
+++ b/hedgewars/HHHandlers.inc Sun May 31 19:32:54 2009 +0000
@@ -470,7 +470,7 @@
begin
CheckHHDamage(Gear);
- if ((Gear^.State and gstHHHJump) <> 0) and
+ if ((Gear^.State and gstHHHJump) <> 0) and (not cArtillery) and
(Gear^.dX.QWordValue < _0_02.QWordValue) then Gear^.dX.isNegative:= not Gear^.dX.isNegative; // landing after high jump
Gear^.State:= Gear^.State and not (gstHHJumping or gstHHHJump);
@@ -627,13 +627,9 @@
((Gear^.State and gstHHHJump) = 0) then
if (not (hwAbs(Gear^.dX) > cLittle)) and (Gear^.dY < -_0_02) then
begin
+ Gear^.State:= Gear^.State or gstHHHJump;
Gear^.dY:= -_0_25;
- if not cArtillery then
- begin
- Gear^.State:= Gear^.State or gstHHHJump;
- Gear^.dX:= -SignAs(_0_02, Gear^.dX)
- end;
-
+ if not cArtillery then Gear^.dX:= -SignAs(_0_02, Gear^.dX);
PlaySound(sndJump2, false, PHedgehog(Gear^.Hedgehog)^.Team^.voicepack)
end;
--- a/hedgewars/uGears.pas Sun May 31 19:31:37 2009 +0000
+++ b/hedgewars/uGears.pas Sun May 31 19:32:54 2009 +0000
@@ -738,7 +738,7 @@
VertexBuffer: array [0..1] of TVertex2f;
begin
m:= 1;
-if (Gear^.State and gstHHHJump) <> 0 then m:= -1;
+if ((Gear^.State and gstHHHJump) <> 0) and not cArtillery then m:= -1;
if (Gear^.State and gstHHDeath) <> 0 then
begin
DrawSprite(sprHHDeath, hwRound(Gear^.X) - 16 + WorldDx, hwRound(Gear^.Y) - 26 + WorldDy, Gear^.Pos);