anchor.diff:      function TileIsLocked(aLoc:TKMPoint): Boolean;
       function UnitsHitTest(X,Y:word): Pointer;
       function UnitsHitTestF(aLoc: TKMPointF): Pointer;
  -    function UnitsHitTestWithinRad(aLoc:TKMPoint; MinRad, MaxRad:single; aPlayer:TPlayerIndex; aAlliance:TAllianceType; Dir:TKMDirection; aClosest:Boolean): Pointer;
  -
  -    function ObjectIsChopableTree(Loc:TKMPoint; Stage: Byte): Boolean;
  -    function CanWalkDiagonaly(const A,B:TKMPoint): Boolean;
  +    function UnitsHitTestWithinRad(aLoc: TKMPoint; MinRad, MaxRad: Single; aPlayer: TPlayerIndex; aAlliance: TAllianceType; Dir: TKMDirection; const aClosest: Boolean): Pointer;
  +
  +    function ObjectIsChopableTree(Loc: TKMPoint; Stage: Byte): Boolean;
  +    function CanWalkDiagonaly(const A,B: TKMPoint): Boolean;
   
       procedure FlattenTerrain(Loc:TKMPoint; aUpdateWalkConnects: Boolean=true); overload;
       procedure FlattenTerrain(LocList:TKMPointList); overload;
  
positive.code:         else
            Citizens.Add(U);
        end;
      end;
    end;
  
    if aClosest then
  
negative.code: { Should scan withing given radius and return closest unit with given Alliance status
    Should be optimized versus usual UnitsHitTest
    Prefer Warriors over Citizens}
  function TTerrain.UnitsHitTestWithinRad(aLoc: TKMPoint; MinRad, MaxRad: Single; aPlayer: TPlayerIndex; aAlliance: TAllianceType; Dir: TKMDirection; const aClosest: Boolean): Pointer;
  var
    I,K: Integer; //Counters
    LowX,LowY,HighX,HighY: Integer; //Ranges
    dX,dY: Integer;
    RequiredMaxRad: Single;
    U,C,W: TKMUnit; //CurrentUnit, BestWarrior, BestCitizen
    Warriors, Citizens: TList;
    P: TKMPoint;
  