anchor.diff:      I := I - 1;
       Point := fForestsNearby.Items[I]; // Get the best forest
       Output := FindPlaceForWoodcutter(Point);
  +    // Mark forest by protected radius
       if Output then
  -      gAIFields.Influences.AddAvoidBuilding(Point.X, Point.Y, GA_PLANNER_FindPlaceForWoodcutter_Radius, Min(255, Round(AVOID_BUILDING_FOREST_MINIMUM + GA_PLANNER_FindPlaceForWoodcutter_MaxAB)), True, GA_PLANNER_FindPlaceForWoodcutter_ABDecSpeed);
  +    begin
  +      AddValue := Min( 255, Round(AVOID_BUILDING_FOREST_MINIMUM + GA_PLANNER_FindPlaceForWoodcutter_AddAB) );
  +      // Rounding of paramters from GA may change border limit for forest +- 1 so substract it
  +      DecreaseSpeed := Min(AVOID_BUILDING_FOREST_RANGE-1, GA_PLANNER_FindPlaceForWoodcutter_AddAB-1) / sqr(GA_PLANNER_FindPlaceForWoodcutter_Radius);
  +      gAIFields.Influences.AddAvoidBuilding(
  +        Point.X, Point.Y,
  +        GA_PLANNER_FindPlaceForWoodcutter_Radius, AddValue,
  +        DecreaseSpeed
  +      );
  +    end;
     end;
     Result := Output;
   
  
positive.code: var
    Time: Cardinal;
    Output, PartOfForest: Boolean;
    I,K, Cnt: Integer;
    Point: TKMPoint;
  begin
    Time := TimeGet();
  
negative.code:     for HT in HOUSE_DEPENDENCE[aHT] do
        for I := 0 to fPlannedHouses[HT].Count - 1 do
        begin
          with fPlannedHouses[HT].Plans[I].Loc do
            Bid := abs(aLoc.X - X) + abs(aLoc.Y - Y) * 1.5;
          if (Bid < Output) then
            Output := Bid;
        end;
  