anchor.diff:    // Woodcutters have huge delay (8 min) + trunk is used only to produce wood -> decide shortage based on actual consumption and reserves
     TrunkBalance := (gHands[fOwner].Stats.GetWareBalance(wt_Trunk) + gHands[fOwner].Stats.GetWareBalance(wt_Wood) / 2) / Max(0.1,WareBalance[wt_Trunk].ActualConsumption);
     if (TrunkBalance < GA_BUILDER_TRUNK_SHORTAGE) then
  +  begin
  +    RequiredHouses[htWineyard] := 0; // Dont try to place wine
       fTrunkShortage := True;
  +  end;
   
     // Find place for chop-only woodcutters when we start to be out of wood
     if ((GA_BUILDER_ChHTB_TrunkBalance - TrunkBalance) / GA_BUILDER_ChHTB_TrunkFactor - GetChopOnlyCnt() > 0) then // Max 2 chop-only woodcutters
  
positive.code:       RequiredWood := RequiredWood + gRes.Houses[H.HouseType].WoodCost - H.GetBuildWoodDelivered;
      end;
    end;
    fStoneShortage := fStoneShortage OR (gHands[fOwner].Stats.GetWareBalance(wt_Stone) < RequiredStones);
    fWoodShortage := fWoodShortage OR (gHands[fOwner].Stats.GetWareBalance(wt_Wood) < RequiredWood);
  
    CheckHouseReservation();
    if (MaxPlans <= 0) then
      Exit;
  
  
negative.code:         break;
        if (RequiredHouses[  PRODUCTION[ WareOrder[I] ]  ] <= 0) then // wt_Leather and wt_Pig require the same building so avoid to place 2 houses at once
          continue;
        case AddToConstruction(PRODUCTION[ WareOrder[I] ], False, False) of
          cs_NoNodeAvailable: break;
          cs_HouseReservation, cs_RemoveTreeProcedure: Output := True;
          cs_HousePlaced:
          begin
            Output := True;
            MaxPlans := MaxPlans - 1;
            MaxPlace := MaxPlace - 1;
            if (MaxPlans <= 0) then
              break;
          end;
  