diff -r 9cf7ec8fdb71 -r b6487d2c15ad hedgewars/VGSHandlers.inc --- a/hedgewars/VGSHandlers.inc Mon Dec 06 08:58:24 2010 -0500 +++ b/hedgewars/VGSHandlers.inc Mon Dec 06 13:07:36 2010 -0500 @@ -558,11 +558,16 @@ procedure doStepExplosion(Gear: PVisualGear; Steps: Longword); var i: LongWord; -gX,gY: LongInt; + gX,gY: LongInt; + vg: PVisualGear; begin gX:= round(Gear^.X); gY:= round(Gear^.Y); -for i:= 0 to 31 do AddVisualGear(gX, gY, vgtFire); +for i:= 0 to 31 do + begin + vg:= AddVisualGear(gX, gY, vgtFire); + if vg <> nil then vg^.State:= 1; + end; for i:= 0 to 8 do AddVisualGear(gX, gY, vgtExplPart); for i:= 0 to 8 do AddVisualGear(gX, gY, vgtExplPart2); Gear^.doStep:= @doStepExplosionWork; @@ -590,12 +595,17 @@ procedure doStepBigExplosion(Gear: PVisualGear; Steps: Longword); var i: LongWord; -gX,gY: LongInt; + gX,gY: LongInt; + vg: PVisualGear; begin gX:= round(Gear^.X); gY:= round(Gear^.Y); AddVisualGear(gX, gY, vgtSmokeRing); -for i:= 0 to 46 do AddVisualGear(gX, gY, vgtFire); +for i:= 0 to 46 do + begin + vg:= AddVisualGear(gX, gY, vgtFire); + if vg <> nil then vg^.State:= 1; + end; for i:= 0 to 15 do AddVisualGear(gX, gY, vgtExplPart); for i:= 0 to 15 do AddVisualGear(gX, gY, vgtExplPart2); Gear^.doStep:= @doStepBigExplosionWork;