anchor.diff:  // Create possible places for forests and return count of already existed forests
   procedure TKMEye.GetForests(var aForests: TKMPointTagList);
   const
  -  OWNERSHIP_LIMIT = 120;
  -  RANDOM_POINTS_OWNERSHIP_LIMIT = 220;
  -  AVOID_BUILDING_FOREST_LIMIT = 240;
  -
  -  RADIUS = 5;
  -  MAX_DIST = RADIUS+1; // When is max radius = 5 and max distance = 6 and use KMDistanceAbs it will give area similar to circle (without need to calculate euclidean distance!)
  -  MIN_POINTS_CNT = 3;
  +  //RADIUS = 5;
  +  //MAX_DIST = RADIUS+1; // When is max radius = 5 and max distance = 6 and use KMDistanceAbs it will give area similar to circle (without need to calculate euclidean distance!)
   
     UNVISITED_TILE = 0;
     VISITED_TILE = 1;
  
positive.code:                 end;
                end;
              end;
            if (Cnt > MIN_POINTS_CNT) then
            begin
              Point := KMPoint( Round(sumPoint.X/Cnt), Round(sumPoint.Y/Cnt) );
              aForests.Add( Point, Round(Cnt) );
              aForests.Tag2[aForests.Count-1] := Cardinal(PartOfForest);
            end;
          end;
        end;
  
negative.code:   aForests.Clear;
    Polygons := gAIFields.NavMesh.Polygons;
  
    RADIUS := Round(GA_EYE_GetForests_Radius);
    MAX_DIST := RADIUS + 1;
  
    // Init visit array
    SetLength(VisitArr, gTerrain.MapY, gTerrain.MapX);
    for Y := 1 to gTerrain.MapY - 1 do
  