diff -r 361e79c6c428 -r 9299f43ba0ec hedgewars/uCollisions.pas --- a/hedgewars/uCollisions.pas Tue Aug 06 23:28:14 2019 +0300 +++ b/hedgewars/uCollisions.pas Tue Aug 06 23:47:02 2019 +0300 @@ -1056,18 +1056,18 @@ while Gear <> nil do begin - if (Gear^.Kind = gtAirMine) or ((Gear^.Kind = gtHedgehog) and (Gear^.CollisionIndex <> 0)) then + if (Gear^.Kind = gtAirMine) or ((Gear^.Kind = gtHedgehog) and (Gear^.CollisionIndex = 0)) then begin gx:= hwRound(Gear^.X); gy:= hwRound(Gear^.Y); - r:= Gear^.Radius; + r:= Gear^.Radius + 1; if (gx + r >= sprX) and (gx - r < sprX + w) and (gy + r >= sprY) and (gy - r < sprY + h) then for y := gy - r to gy + r do for x := gx - r to gx + r do begin if (x >= sprX) and (x < sprX + w) and (y >= sprY) and (y < sprY + h) - and (Sqr(x - gx) + Sqr(y - gy) < Sqr(r)) - and (((PLongword(@(p^[Image^.pitch * y + x * 4]))^) and AMask) <> 0) then + and (Sqr(x - gx) + Sqr(y - gy) <= Sqr(r)) + and (((PLongword(@(p^[Image^.pitch * (y - sprY) + (x - sprX) * 4]))^) and AMask) <> 0) then begin CheckGearsUnderSprite := true; if SDL_MustLock(Image) then