anchor.diff:          AvoidBulding := gAIFields.Influences.AvoidBuilding[Y,X];
           if (AvoidBulding < AVOID_BUILDING_FOREST_MINIMUM) then
             VisitArr[Y,X] := UNVISITED_TREE
  -        else if (AvoidBulding < GA_EYE_GetForests_InflLimit) then
  +        else if (AvoidBulding < AVOID_BUILDING_FOREST_MINIMUM) then
             VisitArr[Y,X] := UNVISITED_TREE_IN_FOREST;
         end;
       end;
  
positive.code:     end;
    end;
  
    aFieldCnt := 0;
    aBuildCnt := 0;
    for Y := 1 to fMapY - 1 do
    for X := 1 to fMapX - 1 do
      if (gAIFields.Influences.GetBestOwner(X,Y) = fOwner) then
      begin
        Inc(aFieldCnt, Soil[Y,X]);
        Inc(aBuildCnt, Byte(gTerrain.TileIsRoadable( KMPoint(X,Y) )));
      end;
    Time := TimeGet() - Time;
  end;
  
  
negative.code: 
      procedure AfterMissionInit();
      procedure UpdateState(aTick: Cardinal);
      procedure OwnerUpdate(aPlayer: TKMHandIndex);
      procedure ScanLoc();
  
      function CanPlaceHouse(aLoc: TKMPoint; aHT: TKMHouseType; aIgnoreTrees: Boolean = False): Boolean;
      function CanAddHousePlan(aLoc: TKMPoint; aHT: TKMHouseType; aIgnoreAvoidBuilding: Boolean = False; aIgnoreTrees: Boolean = False; aIgnoreLocks: Boolean = True): Boolean;
  
      function FindSeparateMineLocs(aAllMines: Boolean; aMineType: TKMHouseType): TKMPointArray;
      function GetMineLocs(aHT: TKMHouseType): TKMPointTagList;
      function GetStoneLocs(): TKMPointTagList;
      procedure GetForests(var aForests: TKMPointTagList);
      function GetCityCenterPolygons(aMultiplePoints: Boolean = False): TKMWordArray;
      function GetCityCenterPoints(aMultiplePoints: Boolean = False): TKMPointArray;
  
      function GetClosestUnitAroundHouse(aHT: TKMHouseType; aLoc: TKMPoint; aInitPoint: TKMPoint): TKMUnit;
  