# HG changeset patch # User nemo # Date 1453588184 18000 # Node ID 58b4e357bcbf5f5fb17ef58590a467ecfb39a49f # Parent 8826ee0afe019ad35daa43ec068b7161cfaab296 As an animation effect this should be in uGearsRender. Plus it'll still spark when paused then, which is kinda fun. diff -r 8826ee0afe01 -r 58b4e357bcbf hedgewars/uGearsHandlersMess.pas --- a/hedgewars/uGearsHandlersMess.pas Sat Jan 23 23:02:03 2016 +0100 +++ b/hedgewars/uGearsHandlersMess.pas Sat Jan 23 17:29:44 2016 -0500 @@ -2008,27 +2008,6 @@ doStepFallingGear(Gear); AllInactive := false; - if (GameTicks and $F = 0) and (random(3) = 0) then - begin - VGear:= AddVisualGear(hwRound(Gear^.X)+12-(Gear^.Tag shr 1), hwRound(Gear^.Y)-16, vgtStraightShot); - if VGear <> nil then - with VGear^ do - begin - Tint:= $FFCC00FF; - Angle:= random(360); - dx:= 0.0005 * (random(200)); - dy:= 0.0005 * (random(200)); - if random(2) = 0 then - dx := -dx; - if random(2) = 0 then - dy := -dy; - FrameTicks:= 100+random(300); - Scale:= 0.1+1/(random(3)+3); - State:= ord(sprStar) - end - end; - - if Gear^.Timer mod 166 = 0 then inc(Gear^.Tag); if Gear^.Timer = 1000 then // might need better timing diff -r 8826ee0afe01 -r 58b4e357bcbf hedgewars/uGearsRender.pas --- a/hedgewars/uGearsRender.pas Sat Jan 23 23:02:03 2016 +0100 +++ b/hedgewars/uGearsRender.pas Sat Jan 23 17:29:44 2016 -0500 @@ -1268,7 +1268,29 @@ else DrawSpriteRotatedF(sprExplosivesRoll, x, y + 4, 1, 0, Gear^.DirAngle) end; - gtDynamite: DrawSprite(sprDynamite, x - 16, y - 25, Gear^.Tag and 1, Gear^.Tag shr 1); + gtDynamite: begin + DrawSprite(sprDynamite, x - 16, y - 25, Gear^.Tag and 1, Gear^.Tag shr 1); + if (random(3) = 0) then + begin + vg:= AddVisualGear(hwRound(Gear^.X)+12-(Gear^.Tag shr 1), hwRound(Gear^.Y)-16, vgtStraightShot); + if vg <> nil then + with vg^ do + begin + Tint:= $FFCC00FF; + Angle:= random(360); + dx:= 0.0005 * (random(200)); + dy:= 0.0005 * (random(200)); + if random(2) = 0 then + dx := -dx; + if random(2) = 0 then + dy := -dy; + FrameTicks:= 100+random(300); + Scale:= 0.1+1/(random(3)+3); + State:= ord(sprStar) + end + end; + + end; gtClusterBomb: DrawSpriteRotated(sprClusterBomb, x, y, 0, Gear^.DirAngle); gtCluster: DrawSprite(sprClusterParticle, x - 8, y - 8, 0); gtFlame: if Gear^.Tag and 1 = 0 then