diff -r 887610b44848 -r a3b42e81803c hedgewars/uVisualGearsHandlers.pas --- a/hedgewars/uVisualGearsHandlers.pas Sat May 31 15:04:26 2014 -0400 +++ b/hedgewars/uVisualGearsHandlers.pas Sun Jun 01 04:17:27 2014 +0200 @@ -895,6 +895,27 @@ end end; +//////////////////////////////////////////////////////////////////////////////// +procedure doStepNoPlaceWarn(Gear: PVisualGear; Steps: Longword); +begin + +if Gear^.FrameTicks <= Steps then + DeleteVisualGear(Gear) +else + begin + // age + dec(Gear^.FrameTicks, Steps); + // toggle between orange and red every few ticks + if (Gear^.FrameTicks div 300) mod 2 = 0 then + Gear^.Tint:= $FF400000 + else + Gear^.Tint:= $FF000000; + // fade out alpha + Gear^.Tint:= Gear^.Tint or ((Gear^.FrameTicks * $FF) div 3000); + // get bigger as we fade out + // Gear^.Scale:= 1.1 - 0.001 * (Gear^.FrameTicks div 30); + end +end; const handlers: array[TVisualGearType] of TVGearStepProcedure = ( @@ -930,7 +951,8 @@ @doStepBulletHit, @doStepCircle, @doStepSmoothWindBar, - @doStepStraightShot + @doStepStraightShot, + @doStepNoPlaceWarn ); procedure initModule;