--- a/hedgewars/uGears.pas Sat Nov 12 15:48:55 2011 +0100
+++ b/hedgewars/uGears.pas Sat Nov 12 17:06:49 2011 +0100
@@ -320,7 +320,7 @@
gear^.Timer:= 500;
gear^.RenderTimer:= true;
gear^.Elasticity:= _0_9;
- gear^.Tag:= getRandom(32);
+ gear^.Tag:= 0;
end;
gtSeduction: begin
gear^.Radius:= 250;
@@ -1290,7 +1290,7 @@
gtMelonPiece,
gtGrenade,
gtClusterBomb,
- gtCluster,
+ // gtCluster, too game breaking I think
gtSMine,
gtCase,
gtTarget,
@@ -1314,8 +1314,17 @@
if ((Mask and EXPLDoNotTouchAny) = 0) and (((Mask and EXPLDoNotTouchHH) = 0) or (Gear^.Kind <> gtHedgehog)) then
begin
DeleteCI(Gear);
- Gear^.dX:= Gear^.dX + SignAs(_0_005 * dmg + cHHKick, Gear^.X - fX);
- Gear^.dY:= Gear^.dY + SignAs(_0_005 * dmg + cHHKick, Gear^.Y - fY);
+ if Gear^.Kind <> gtHedgehog then
+ begin
+ Gear^.dX:= Gear^.dX + SignAs(_0_005 * dmg + cHHKick, Gear^.X - fX)/Gear^.Density;
+ Gear^.dY:= Gear^.dY + SignAs(_0_005 * dmg + cHHKick, Gear^.Y - fY)/Gear^.Density;
+ end
+ else
+ begin
+ Gear^.dX:= Gear^.dX + SignAs(_0_005 * dmg + cHHKick, Gear^.X - fX);
+ Gear^.dY:= Gear^.dY + SignAs(_0_005 * dmg + cHHKick, Gear^.Y - fY);
+ end;
+
Gear^.State:= (Gear^.State or gstMoving) and (not gstLoser);
if not Gear^.Invulnerable then
Gear^.State:= (Gear^.State or gstMoving) and (not gstWinner);