anchor.diff:                  end;
                 end;
               end;
  -          if (Cnt > MIN_POINTS_CNT) then
  +          if (Cnt > GA_EYE_GetForests_MinTrees) then
             begin
               Point := KMPoint( Round(sumPoint.X/Cnt), Round(sumPoint.Y/Cnt) );
  -            aForests.Add( Point, Round(Cnt) );
  -            aForests.Tag2[aForests.Count-1] := Cardinal(PartOfForest);
  +            aForests.Add( Point, Cardinal(PartOfForest) );
  +            aForests.Tag2[aForests.Count-1] := Round(Cnt);
             end;
           end;
         end;
  
positive.code:             AvoidBulding := gAIFields.Influences.AvoidBuilding[Point.Y,Point.X];
              if (AvoidBulding < AVOID_BUILDING_FOREST_MINIMUM) then
                VisitArr[Point.Y,Point.X] := UNVISITED_TREE
              else if (AvoidBulding < AVOID_BUILDING_FOREST_LIMIT) then
                VisitArr[Point.Y,Point.X] := UNVISITED_TREE_IN_FOREST
              else
                VisitArr[Point.Y,Point.X] := VISITED_TILE; // Tree in full forest -> ignore it
  
negative.code:   for I := 0 to Length(Polygons) - 1 do
    begin
      Ownership := gAIFields.Influences.OwnPoly[fOwner, I];
      if (Ownership > GA_EYE_GetForests_OwnLimit) then
      begin
        for K := Polygons[I].Poly2PointStart to Polygons[I].Poly2PointCnt - 1 do
        begin
  