anchor.diff:    if (Node1Idx = -1) OR (Node2Idx = -1) then
       Exit;
   
  +  Output := cs_NoPlaceCanBeFound;
     if fPlanner.GetHousePlan(aUnlockProcedure, aIgnoreExistingPlans, aHT, Loc, HouseIdx) then
     begin
       // Check if we can place house by default KaM function
  
positive.code:   procedure CheckHouseReservation();
    const
      RESERVATION_StoneShortage: TSetOfHouseType = [ht_Quary, ht_MarketPlace];
      RESERVATION_GoldShortage: TSetOfHouseType = [ht_School, ht_Barracks, ht_Inn, ht_MarketPlace, ht_Store, ht_Quary, ht_GoldMine, ht_CoalMine, ht_Metallurgists];
      RESERVATION_WoodShortage: TSetOfHouseType = [ht_School, ht_Barracks, ht_Inn, ht_MarketPlace, ht_Store, ht_Quary, ht_GoldMine, ht_CoalMine, ht_Metallurgists, ht_Woodcutters, ht_Sawmill];
      RESERVATION_FullSet: TSetOfHouseType = [ht_ArmorSmithy, ht_ArmorWorkshop, ht_Bakery, ht_Barracks, ht_Butchers, ht_CoalMine, ht_Farm, ht_FisherHut, ht_GoldMine, ht_Inn, ht_IronMine, ht_IronSmithy, ht_Marketplace, ht_Metallurgists, ht_Mill, ht_Quary, ht_Sawmill, ht_School, ht_SiegeWorkshop, ht_Stables, ht_Store, ht_Swine, ht_Tannery, ht_TownHall, ht_WatchTower, ht_WeaponSmithy, ht_WeaponWorkshop, ht_Wineyard, ht_Woodcutters];
    var
  
negative.code:             Active := True;
              RemoveTreesMode := False;
              ShortcutMode := False;
              MaxReqWorkers := Round(GA_BUILDER_BuildHouse_RoadMaxWork) + Byte(aUnlockProcedure) * 20;
              RequiredWorkers := Min(MaxReqWorkers, FieldList.Count);
              CenterPoint := FieldList[ FieldList.Count-1 ]; // Road node must start from exist house
            end;
          end;
          // Add field to node (if is required [ht_Farm, ht_Wineyard])
  