anchor.diff:    //Target has to be walkable within Distance
     testRadius := False;
     distanceSqr := Sqr(aDistance);
  -  for I := Max(round(LocB.Y - aDistance), 1) to Min(Round(LocB.Y + aDistance), fMapY - 1) do
  -    for K := Max(round(LocB.X - aDistance), 1) to Min(Round(LocB.X + aDistance), fMapX - 1) do
  -      if KMLengthSqr(LocB, KMPoint(K, I)) <= distanceSqr then
  +  for I := Max(round(aLocB.Y - aDistance), 1) to Min(Round(aLocB.Y + aDistance), fMapY - 1) do
  +    for K := Max(round(aLocB.X - aDistance), 1) to Min(Round(aLocB.X + aDistance), fMapX - 1) do
  +      if KMLengthSqr(aLocB, KMPoint(K, I)) <= distanceSqr then
           testRadius := testRadius or CheckPassability(KMPoint(K, I), aPass);
   
     Result := Result and testRadius;
  
positive.code:   //Result:=not (KMSamePoint(LocA,LocB)); //Or maybe we don't care
  
    //Source point has to be walkable
    Result := Result and CheckPassability(LocA, aPass);
  
    if not Result then
      Exit;
  
negative.code: 
  
  //Test wherever it is possible to make the route without actually making it to save performance
  function TKMTerrain.Route_CanBeMade(const aLocA, aLocB: TKMPoint; aPass: TKMTerrainPassability; aDistance: Single): Boolean;
  var
    I, K: Integer;
    testRadius: Boolean;
  