anchor.diff:      for dWT := Low(fDemandCount) to High(fDemandCount) do
         if ValidWareTypePair(oWT, dWT) then
           for iD := 0 to fDemandCount[dWT] - 1 do
  -          if fDemand[dWT,iD].IsActive
  +          if ValidDemand(dWT, iD)
             and not ((oldD = iD) and (oldDWT = dWT))
             and (fDemand[dWT,iD].Importance >= bestImportance) //Skip any less important than the best we found
             and ValidDelivery(oWT, dWT, iO, iD, True) then
  
positive.code:                           or (not demand.Loc_House.ShouldAbandonDeliveryTo(aWare)
                               and (demand.Loc_House <> oldDemand^.Loc_House)));
  
      //If Demand aren't reserved already
      Result := Result and ((demand.DemandType = dtAlways) or (demand.BeingPerformed = 0));
  
      //For constructing houses check if they are connected with road to some other houses,
      //which can produce demanded ware (stone or wood)
  
negative.code:   // Conditions are called in the frequency of a negative Result: most negative first
  
    //If Demand and Offer aren't reserved already
    Result := (aIgnoreOffer or (offer.BeingPerformed < offer.Count));
  
    Result := Result and (
              ( //House-House delivery should be performed only if there's a connecting road
  