# HG changeset patch # User nemo # Date 1331412996 18000 # Node ID e95f7509a5c5923457044c5501e7950daa5a3a35 # Parent 057e3a3227b0b774efa585ce42acc295102787e6 Avoid rare double decrement. diff -r 057e3a3227b0 -r e95f7509a5c5 hedgewars/GSHandlers.inc --- a/hedgewars/GSHandlers.inc Sat Mar 10 14:38:31 2012 -0500 +++ b/hedgewars/GSHandlers.inc Sat Mar 10 15:56:36 2012 -0500 @@ -3369,19 +3369,17 @@ if (Gear^.State and gsttmpFlag) <> 0 then gear^.RenderTimer:= true; - dec(Gear^.Timer) + if Gear^.Timer > 0 then dec(Gear^.Timer) end - - else if ((Gear^.State and gsttmpFlag) <> 0) and (Gear^.Tag <> 0) then + else if ((Gear^.State and gsttmpFlag) <> 0) and (Gear^.Tag <> 0) then + begin + if Gear^.Timer > 0 then dec(Gear^.Timer); + if Gear^.Timer = 0 then begin - if Gear^.Timer = 0 then - begin - doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 30, Gear^.Hedgehog, EXPLAutoSound); - DeleteGear(Gear); - end - else - dec(Gear^.Timer); - end; + doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 30, Gear^.Hedgehog, EXPLAutoSound); + DeleteGear(Gear); + end + end; end; ////////////////////////////////////////////////////////////////////////////////