--- 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