diff -r a26537586400 -r e6c0408b54ed hedgewars/uGears.pas --- a/hedgewars/uGears.pas Sun Mar 23 18:08:00 2008 +0000 +++ b/hedgewars/uGears.pas Mon Mar 24 19:18:13 2008 +0000 @@ -472,10 +472,28 @@ procedure DrawHH(Gear: PGear; Surface: PSDL_Surface); var t: LongInt; begin -DrawHedgehog(hwRound(Gear^.X) - 15 + WorldDx, hwRound(Gear^.Y) - 18 + WorldDy, - hwSign(Gear^.dX), 0, +if (Gear^.State and gstHHDriven) <> 0 then + begin + if CurAmmoGear <> nil then + begin + if (CurAmmoGear^.Kind = gtRope) then + DrawHedgehog(hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, + 1, + 1, + 0, + DxDy2Angle(CurAmmoGear^.dY, CurAmmoGear^.dX) - 110); + end else + DrawHedgehog(hwRound(Gear^.X) + 1 + WorldDx, hwRound(Gear^.Y) - 3 + WorldDy, + hwSign(Gear^.dX), + 0, PHedgehog(Gear^.Hedgehog)^.visStepPos div 2, - Surface); + 0); + end else + DrawHedgehog(hwRound(Gear^.X) + 1 + WorldDx, hwRound(Gear^.Y) - 3 + WorldDy, + hwSign(Gear^.dX), + 0, + 8, + 0); with PHedgehog(Gear^.Hedgehog)^ do if (Gear^.State{ and not gstAnimation}) = 0 then @@ -502,6 +520,7 @@ if bShowFinger and ((Gear^.State and gstHHDriven) <> 0) then DrawSprite(sprFinger, hwRound(Gear^.X) - 16 + WorldDx, hwRound(Gear^.Y) - 64 + WorldDy, GameTicks div 32 mod 16, Surface); + if (Gear^.State and (gstMoving or gstDrowning)) = 0 then if (Gear^.State and gstHHThinking) <> 0 then DrawSprite(sprQuestion, hwRound(Gear^.X) - 10 + WorldDx, hwRound(Gear^.Y) - cHHRadius - 34 + WorldDy, 0, Surface)