anchor.diff:  end;
   
   
  -//Calc bid cost between serf and offer house
  -function TKMDeliveries.CalcSerfBidValue(aSerf: TKMUnitSerf; aOfferPos: TKMPoint; aToUID: Integer): Single;
  +//Try to Calc bid cost between serf and offer house
  +//Return False and aSerfBidValue = NOT_REACHABLE_DEST_VALUE, if house is not reachable by serf
  +function TKMDeliveries.TryCalcSerfBidValue(aSerf: TKMUnitSerf; aOfferPos: TKMPoint; aToUID: Integer; var aSerfBidValue: Single): Boolean;
   var
     BelowOfferPos: TKMPoint;
     {$IFDEF WDC}
  
positive.code: 
    //Also prefer deliveries near to the serf
    if aSerf <> nil then
      Result := GetRouteCost(aSerf.GetPosition, BelowOfferPos, tpWalkRoad);
  
    {$IFDEF WDC}
    if CACHE_DELIVERY_BIDS then
      fSerfToOfferCache.Add(BidKey, Result);
    {$ENDIF}
  end;
  
  
negative.code: begin
    assert(aHouse <> nil);
    for I := 1 to fDemandCount do
      if fDemand[I].Loc_House = aHouse then
      begin
        if fDemand[I].BeingPerformed > 0 then
          //Can't free it yet, some serf is using it
  