diff -r 3aa85b5f3318 -r a70c61c076ae hedgewars/VGSHandlers.inc --- a/hedgewars/VGSHandlers.inc Sat Aug 21 22:54:43 2010 +0200 +++ b/hedgewars/VGSHandlers.inc Sun Aug 22 16:31:57 2010 +0200 @@ -144,11 +144,27 @@ //////////////////////////////////////////////////////////////////////////////// procedure doStepFire(Gear: PVisualGear; Steps: Longword); +var vgt: PVisualGear; begin Gear^.X:= Gear^.X + Gear^.dX * Steps; Gear^.Y:= Gear^.Y + Gear^.dY * Steps;// + cGravityf * (Steps * Steps); -Gear^.dY:= Gear^.dY + cGravityf * Steps; +if (Gear^.State and gstTmpFlag) = 0 then + begin + Gear^.dY:= Gear^.dY + cGravityf * Steps; + if ((GameTicks mod 100) < Steps + 1) then + begin + vgt:= AddVisualGear(round(Gear^.X), round(Gear^.Y), vgtFire); + if vgt <> nil then + begin + vgt^.dx:= 0; + vgt^.dy:= 0; + vgt^.State:= gstTmpFlag; + end; + end + end +else + inc(Steps, Steps); if Gear^.FrameTicks <= Steps then DeleteVisualGear(Gear)