anchor.diff:    TSetOfHouseType = set of TKMHouseType;
   const
   
  -  //ht_Woodcutters,    ht_Quary,         ht_Sawmill,        ht_IronMine,      ht_GoldMine,
  -  //ht_CoalMine,       ht_IronSmithy,    ht_Metallurgists,  ht_Wineyard,      ht_Farm,
  -  //ht_Bakery,         ht_Mill,          ht_Tannery,        ht_Butchers,      ht_Swine,
  -  //ht_Swine,          ht_ArmorWorkshop, ht_ArmorSmithy,    ht_ArmorWorkshop, ht_ArmorSmithy,
  -  //ht_WeaponWorkshop, ht_WeaponSmithy,  ht_WeaponWorkshop, ht_WeaponSmithy,  ht_WeaponWorkshop,
  -  //ht_WeaponSmithy,   ht_Stables,       ht_FisherHut
  +  //htWoodcutters,    htQuary,         htSawmill,        htIronMine,      htGoldMine,
  +  //htCoalMine,       htIronSmithy,    htMetallurgists,  htWineyard,      htFarm,
  +  //htBakery,         htMill,          htTannery,        htButchers,      htSwine,
  +  //htSwine,          htArmorWorkshop, htArmorSmithy,    htArmorWorkshop, htArmorSmithy,
  +  //htWeaponWorkshop, htWeaponSmithy,  htWeaponWorkshop, htWeaponSmithy,  htWeaponWorkshop,
  +  //htWeaponSmithy,   htStables,       htFisherHut
   
   
     BASIC_HOUSES: TSetOfHouseType = [htSchool, htBarracks, htInn, htMarketplace, htStore];
  
positive.code:   for NodeIdx := Low(fBuildNodes) to High(fBuildNodes) do
      if not fBuildNodes[NodeIdx].Active then
        Break;
    if fBuildNodes[NodeIdx].Active then
      Exit;
  
    // Find house which was not checked for shortcuts
  
negative.code:   HT := htWatchTower;
    if (not Planner.DefenceTowersPlanned OR (gHands[fOwner].Stats.GetHouseTotal(HT) < Planner.PlannedHouses[HT].Count))
      AND (aTick + BUILD_TOWER_DELAY > gGame.GameOptions.Peacetime * 600)
      AND (aTick > MINIMAL_TOWER_DELAY)
      AND (AddToConstruction(HT, True, True) = cs_HousePlaced) then
      begin
        MaxPlans := MaxPlans - 1;
  