diff -r 2ed42786aca7 -r 091293bc974f hedgewars/uGearsUtils.pas --- a/hedgewars/uGearsUtils.pas Sun Nov 11 14:59:22 2012 +0100 +++ b/hedgewars/uGearsUtils.pas Sun Nov 11 15:14:18 2012 +0100 @@ -286,7 +286,7 @@ procedure CheckHHDamage(Gear: PGear); var dmg: Longword; - i: LongInt; + i: LongWord; particle: PVisualGear; begin if _0_4 < Gear^.dY then @@ -555,8 +555,8 @@ procedure FindPlace(var Gear: PGear; withFall: boolean; Left, Right: LongInt; skipProximity: boolean); var x: LongInt; y, sy: LongInt; - ar: array[0..511] of TPoint; - ar2: array[0..1023] of TPoint; + ar: array[0..1023] of TPoint; + ar2: array[0..2047] of TPoint; cnt, cnt2: Longword; delta: LongInt; ignoreNearObjects, ignoreOverlap, tryAgain: boolean; @@ -566,10 +566,10 @@ tryAgain:= true; while tryAgain do begin - delta:= 250; + delta:= LAND_WIDTH div 16; cnt2:= 0; repeat - x:= Left + LongInt(GetRandom(Delta)); + x:= Left + max(LAND_WIDTH div 2048, LongInt(GetRandom(Delta))); repeat inc(x, Delta); cnt:= 0;