anchor.diff:  
     GA_PLANNER_ObstaclesInHousePlan_Tree                : Single = 155.3616107;
     GA_PLANNER_ObstaclesInHousePlan_Road                : Single = 115.6175673;
  -  GA_PLANNER_FieldCrit_MissingFields                  : Single = 131.7506969;
  -  GA_PLANNER_FieldCrit_FarmPosition                   : Single = 7.101402878;
  +  GA_PLANNER_FieldCrit_FarmPolyroute                  : Single = 5;
  +  GA_PLANNER_FieldCrit_EvalArea                       : Single = 5;
     GA_PLANNER_SnapCrit_SnapToHouse                     : Single = 41.11732841;
     GA_PLANNER_SnapCrit_SnapToFields                    : Single = 4.409770668;
     GA_PLANNER_SnapCrit_SnapToRoads                     : Single = 88.02675605;
  
positive.code:       AND not (HT in HOUSE_DEPENDENCE[aHT]) then
        FindPlaceAroundHType(HT);
  
    for I := High(BestBidArr) downto Low(BestBidArr) do
      if (BestBidArr[I] <> INIT_BEST_BID) then
        break;
    Result := Min(Count, BEST_PLANS_CNT);
  end;
  //}
  
negative.code:   SQR_DEC_SPEED = AVOID_BUILDING_FOREST_RANGE / (BLOCK_RAD * BLOCK_RAD);
  var
    Output, PartOfForest: Boolean;
    I,K, Cnt: Integer;
    Point: TKMPoint;
  begin
    Output := False;
  
    gAIFields.Eye.GetForests(fForestsNearby);
    // Delete used forests (used by woodcutter - no matter if in chop only or chop and plant mode)
    for I := 0 to fForestsNearby.Count - 1 do
      if not (fForestsNearby.Tag2[I] > 0) AND ( // Skip detection of exist forest (map maker should be able to produce good forest)
          (gAIFields.Influences.AvoidBuilding[  fForestsNearby.Items[I].Y, fForestsNearby.Items[I].X  ] >= 250) // Skip center point inside of exist forest
           OR not EnoughTreeSeedTiles( fForestsNearby.Items[I] ) // Check count of good terrain
        ) then
      begin
        // Delete will remove element and move all others to left -> this array is not sorted yet so just switch actual and last
        Cnt := fForestsNearby.Count - 1;
        fForestsNearby.Items[I] := fForestsNearby.Items[Cnt];
        fForestsNearby.Tag[I] := fForestsNearby.Tag[Cnt];
        fForestsNearby.Tag2[I] := fForestsNearby.Tag2[Cnt];
        fForestsNearby.Delete(Cnt);
      end
      else // Remove potential forests around chop only woodcutters
        for K := 0 to fPlannedHouses[htWoodcutters].Count - 1 do
        begin
          Point := fPlannedHouses[htWoodcutters].Plans[K].SpecPoint;
          if (fPlannedHouses[htWoodcutters].Plans[K].ChopOnly) // Chop-only mode
            AND (KMDistanceSqr(fForestsNearby.Items[I], Point) < SQR_MIN_DIST_FROM_CHOP_ONLY) then
          begin
            Cnt := fForestsNearby.Count - 1;
            fForestsNearby.Items[I] := fForestsNearby.Items[Cnt];
            fForestsNearby.Tag[I] := fForestsNearby.Tag[Cnt];
            fForestsNearby.Tag2[I] := fForestsNearby.Tag2[Cnt];
            fForestsNearby.Delete(Cnt);
            break;
          end;
        end;
  