Special case small radius gears to try and prevent repeated collisions.
--- a/hedgewars/GSHandlers.inc Sat Aug 20 14:00:51 2011 -0400
+++ b/hedgewars/GSHandlers.inc Sat Aug 20 14:26:29 2011 -0400
@@ -358,8 +358,9 @@
if (Gear^.nImpactSounds > 0) and
((Gear^.Damage <> 0) or
((Gear^.State and (gstCollision or gstMoving)) = (gstCollision or gstMoving))) and
- ((Gear^.dX.QWordValue > _0_1.QWordValue) or
- (Gear^.dY.QWordValue > _0_1.QWordValue)) then
+ (((Gear^.Radius < 3) and (Gear^.dY < -_0_1)) or
+ ((Gear^.Radius >= 3) and ((Gear^.dX.QWordValue > _0_1.QWordValue) or
+ (Gear^.dY.QWordValue > _0_1.QWordValue)))) then
PlaySound(TSound(ord(Gear^.ImpactSound) + LongInt(GetRandom(Gear^.nImpactSounds))), true);
end;