# HG changeset patch # User unc0rr # Date 1243798374 0 # Node ID 4bb9ff2069ec71247b21adb6c1da5eff69d281d6 # Parent 3b19c7874a455d423f97f1e4a2dc2ecd86c88534 Okay, now a real fix diff -r 3b19c7874a45 -r 4bb9ff2069ec hedgewars/HHHandlers.inc --- 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; diff -r 3b19c7874a45 -r 4bb9ff2069ec hedgewars/uGears.pas --- 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);