Okay, now a real fix
authorunc0rr
Sun, 31 May 2009 19:32:54 +0000
changeset 2137 4bb9ff2069ec
parent 2136 3b19c7874a45
child 2138 b246ad6484f5
Okay, now a real fix
hedgewars/HHHandlers.inc
hedgewars/uGears.pas
--- 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);