anchor.diff:  procedure TKMDeliveries.Save(SaveStream: TKMemoryStream);
   var
     I: Integer;
  -  {$IFDEF USE_HASH}
  -  cacheKeyArray : TArray<TKMDeliveryBidKey>;
  -  key: TKMDeliveryBidKey;
  -  comparer: TKMDeliveryBidKeyComparer;
  -  bid: TKMDeliveryBid;
  -  {$ENDIF}
   begin
     SaveStream.PlaceMarker('Deliveries');
     SaveStream.Write(fOwner);
  
positive.code:         and not fDemand[iD].IsDeleted
          and (fDemand[iD].Importance >= BestImportance)
          and ValidBestDemand(iD, OldDemandId)
          and TryCalculateBidBasic(aSerf.UID, aSerf.CurrPosition, 1, htNone, aSerf.Owner, iD, Bid, nil,
                                   DeliverToUnit or fQueue[aDeliveryId].IsFromUnit)
          and ((Bid < BestBid) or (fDemand[iD].Importance > BestImportance)) then //Calc bid to find the best demand
        begin
  
negative.code:       if aAllowOffroad then
          SecondPass := tpWalk;
        //Calc cost between offer and demand houses
        Result := TryCalcRouteCost(aOfferPos, fDemand[iD].Loc_House.PointBelowEntrance, drsOfferToDemand, aBidBasicValue, tpWalkRoad, SecondPass);
        aBidBasicValue := aBidBasicValue
          //Resource ratios are also considered
          + KaMRandom(16 - 3*gHands[aOwner].Stats.WareDistribution[fDemand[iD].Ware, fDemand[iD].Loc_House.HouseType],
  