diff -r f7bb323a6934 -r 47cf32305d99 hedgewars/GSHandlers.inc --- a/hedgewars/GSHandlers.inc Mon May 13 23:31:03 2013 +0200 +++ b/hedgewars/GSHandlers.inc Mon May 13 22:40:32 2013 -0400 @@ -3181,10 +3181,11 @@ move:= _0_02; fuel:= 5; end;*) - - if Gear^.Health > 0 then - begin - if (HHGear^.Message and gmUp) <> 0 then + if HHGear^.Message and gmPrecise <> 0 then + HedgehogChAngle(HHGear) + else if Gear^.Health > 0 then + begin + if HHGear^.Message and gmUp <> 0 then begin if (not HHGear^.dY.isNegative) or (HHGear^.Y > -_256) then begin @@ -3251,10 +3252,12 @@ Gear^.Tex := RenderStringTex(trmsg[sidFuel] + ': ' + inttostr(i) + '%', cWhiteColor, fntSmall) end; - if HHGear^.Message and (gmAttack or gmUp or gmPrecise or gmLeft or gmRight) <> 0 then + if (HHGear^.Message and (gmAttack or gmUp or gmLeft or gmRight) <> 0) and + (HHGear^.Message and gmPrecise = 0) then Gear^.State := Gear^.State and (not gsttmpFlag); - HHGear^.Message := HHGear^.Message and (not (gmUp or gmPrecise or gmLeft or gmRight)); + if HHGear^.Message and gmPrecise = 0 then + HHGear^.Message := HHGear^.Message and (not (gmUp or gmLeft or gmRight)); HHGear^.State := HHGear^.State or gstMoving; Gear^.X := HHGear^.X;