diff -r 7e489fe1b49c -r d79ffcdd77df hedgewars/GSHandlers.inc --- a/hedgewars/GSHandlers.inc Fri Nov 12 18:24:11 2010 -0500 +++ b/hedgewars/GSHandlers.inc Sat Nov 13 00:51:55 2010 +0100 @@ -2084,7 +2084,7 @@ 2: for i:= -19 to 19 do FollowGear := AddGear(hwRound(Gear^.X) + i div 3, hwRound(Gear^.Y), gtFlame, 0, _0_001 * i, _0, 0); - 3: FollowGear := AddGear(hwRound(Gear^.X), hwRound(Gear^.Y), gtDrill, 0, cBombsSpeed * + 3: FollowGear := AddGear(hwRound(Gear^.X), hwRound(Gear^.Y), gtDrill, gsttmpFlag, cBombsSpeed * Gear^.Tag, _0, 0); //4: FollowGear := AddGear(hwRound(Gear^.X), hwRound(Gear^.Y), gtWaterMelon, 0, cBombsSpeed * // Gear^.Tag, _0, 5000); @@ -2749,7 +2749,10 @@ begin //out of time or exited ground StopSound(Gear^.SoundChannel); - doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 50, EXPLAutoSound); + if (Gear^.State and gsttmpFlag) <> 0 then + doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 30, EXPLAutoSound) + else + doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 50, EXPLAutoSound); DeleteGear(Gear); exit end; @@ -2765,7 +2768,9 @@ begin AllInactive := false; - Gear^.dX := Gear^.dX + cWindSpeed; + if (Gear^.State and gsttmpFlag) = 0 then + Gear^.dX := Gear^.dX + cWindSpeed; + oldDx := Gear^.dX; oldDy := Gear^.dY; @@ -2791,7 +2796,10 @@ else begin //explode right on contact with HH - doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 50, EXPLAutoSound); + if (Gear^.State and gsttmpFlag) <> 0 then + doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 30, EXPLAutoSound) + else + doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 50, EXPLAutoSound); DeleteGear(Gear); exit; end; @@ -4230,7 +4238,7 @@ Gear^.doStep := @doStepHammerHitWork end; - +//////////////////////////////////////////////////////////////////////////////// procedure doStepResurrectorWork(Gear: PGear); var graves: TPGearArray; @@ -4345,3 +4353,5 @@ end end; +//////////////////////////////////////////////////////////////////////////////// +