diff -r 73545fd91efa -r 5989c293955a hedgewars/uGearsHandlersMess.pas --- a/hedgewars/uGearsHandlersMess.pas Mon Dec 15 20:03:20 2014 +0100 +++ b/hedgewars/uGearsHandlersMess.pas Tue Dec 16 08:04:18 2014 -0500 @@ -1661,6 +1661,7 @@ procedure doStepMine(Gear: PGear); var vg: PVisualGear; dxdy: hwFloat; + dmg: LongWord; begin if Gear^.Health = 0 then dxdy:= hwAbs(Gear^.dX)+hwAbs(Gear^.dY); if (Gear^.State and gstMoving) <> 0 then @@ -1681,7 +1682,11 @@ if (Gear^.Health = 0) then begin if (dxdy > _0_4) and (Gear^.State and gstCollision <> 0) then - inc(Gear^.Damage, hwRound(dxdy * _50)); + begin + dmg:= hwRound(dxdy * _50); + inc(Gear^.Damage, dmg); + ScriptCall('onGearDamage', Gear^.UID, dmg) + end; if ((GameTicks and $FF) = 0) and (Gear^.Damage > random(30)) then begin @@ -1820,7 +1825,7 @@ procedure doStepRollingBarrel(Gear: PGear); var - i: LongInt; + i, dmg: LongInt; particle: PVisualGear; dxdy: hwFloat; begin @@ -1848,7 +1853,9 @@ particle^.dX := particle^.dX + (Gear^.dX.QWordValue / 21474836480) end end; - inc(Gear^.Damage, hwRound(dxdy * _50)) + dmg:= hwRound(dxdy * _50); + inc(Gear^.Damage, dmg); + ScriptCall('onGearDamage', Gear^.UID, dmg) end; CalcRotationDirAngle(Gear); //CheckGearDrowning(Gear)