diff -r 55d272e34f9a -r fb361d137524 hedgewars/GSHandlers.inc --- a/hedgewars/GSHandlers.inc Sat Mar 06 13:45:25 2010 +0000 +++ b/hedgewars/GSHandlers.inc Sat Mar 06 13:49:55 2010 +0000 @@ -1256,7 +1256,8 @@ AllInactive:= false; if not Gear^.dY.isNegative and (Gear^.dY > _0_03) and TestCollisionYwithGear(Gear, 1) then begin - inc(Gear^.Damage, hwRound(Gear^.dY * _30)); + Gear^.State:= Gear^.State or gsttmpFlag; + inc(Gear^.Damage, hwRound(Gear^.dY * _40)); for i:= min(12, hwRound(Gear^.dY*_10)) downto 0 do begin particle:= AddVisualGear(hwRound(Gear^.X) - 5 + Random(10), hwRound(Gear^.Y) + 12, vgtDust); @@ -1264,11 +1265,11 @@ end end else if not Gear^.dX.isNegative and (Gear^.dX > _0_03) and TestCollisionXwithGear(Gear, 1) then - inc(Gear^.Damage, hwRound(Gear^.dX * _30)) + inc(Gear^.Damage, hwRound(Gear^.dX * _40)) else if Gear^.dY.isNegative and (Gear^.dY < -_0_03) and TestCollisionYwithGear(Gear, -1) then - inc(Gear^.Damage, hwRound(Gear^.dY * -_30)) + inc(Gear^.Damage, hwRound(Gear^.dY * -_40)) else if Gear^.dX.isNegative and (Gear^.dX < -_0_03) and TestCollisionXwithGear(Gear, -1) then - inc(Gear^.Damage, hwRound(Gear^.dX * -_30)); + inc(Gear^.Damage, hwRound(Gear^.dX * -_40)); if Gear^.Damage <> 0 then PlaySound(sndGraveImpact); doStepFallingGear(Gear); CalcRotationDirAngle(Gear); @@ -1376,7 +1377,7 @@ if (not Gear^.dY.isNegative) and TestCollisionYwithGear(Gear, 1) then begin if (Gear^.dY > _0_02) and (k = gtExplosives) then - inc(Gear^.Damage, hwRound(Gear^.dY * _30)); + inc(Gear^.Damage, hwRound(Gear^.dY * _40)); if Gear^.dY > _0_2 then for i:= min(12, hwRound(Gear^.dY*_10)) downto 0 do