anchor.diff:      begin
         if fPlannedHouses[aHT].Plans[I].RemoveTreeInPlanProcedure OR gAIFields.Eye.CanAddHousePlan(fPlannedHouses[aHT].Plans[I].Loc, aHT, True, True) then
         begin
  -        if (aHT in [ht_GoldMine, ht_IronMine, ht_CoalMine, ht_Quary, ht_Woodcutters]) AND CheckMine(I) then // Filter mines / chop-only woodcutters
  +        if (aHT in [ht_GoldMine, ht_IronMine, ht_CoalMine, ht_Quary]) AND CheckMine(I) then // Filter mines / chop-only woodcutters
             continue;
           Bid := DistFromStore(fPlannedHouses[aHT].Plans[I].Loc) + GetTreesInHousePlanCnt(aHT, fPlannedHouses[aHT].Plans[I].Loc) * TREE_PENALIZATION;
           if  (aHT = ht_Woodcutters) then
  
positive.code:       begin
          Bid := - GA_PLANNER_FindPlaceForWoodcutter_DistFromForest * KMDistanceAbs(aCenter, Loc)
                 + DistCrit(ht_Woodcutters, Loc)
                 + SnapCrit(ht_Woodcutters, Loc);
          if (Bid > BestBid) then
          begin
            BestBid := Bid;
  
negative.code:   end;
    Result := Output - GA_PLANNER_DistCrit_CenterStore * DistFromHouse([ht_Store]);
  end;
  //}
  
  
  // Original method (no optimalization)
  {
  function TKMCityPlanner.FindPlaceForHouse(aUnlockProcedure: Boolean; aHT: THouseType; out aBestLocs: TKMPointArray): Byte;
  const
    BEST_PLANS_CNT = 5;
  