anchor.diff:    for I:=1 to 4 do LoadStream.Read(fResourceDeliveryCount[I]);
     for I:=1 to 4 do LoadStream.Read(fResourceOut[I]);
     for I:=1 to 4 do LoadStream.Read(fResourceOrder[I], SizeOf(fResourceOrder[I]));
  -  for I:=1 to 4 do LoadStream.Read(fResOrderDesired[I], SizeOf(fResOrderDesired[I]));
  +//  for I:=1 to 4 do LoadStream.Read(fResOrderDesired[I], SizeOf(fResOrderDesired[I]));
   
     if fType in HOUSE_WORKSHOP then
       LoadStream.Read(fResourceOutPool, 20);
  
positive.code: //Input value is integer because we might get a -100 order from outside and need to fit it to range
  //properly
  procedure TKMHouse.SetResOrder(aID: Byte; aValue: Integer);
  var
    I: Integer;
    TotalDesired: Integer;
  begin
    fResourceOrder[aID] := EnsureRange(aValue, 0, MAX_WARES_ORDER);
  
    //Calculate desired production ratio (so that we are not affected by fResourceOrder which decreases till 0)
    TotalDesired := fResourceOrder[1] + fResourceOrder[2] + fResourceOrder[3] + fResourceOrder[4];
    for I := 1 to 4 do
      fResOrderDesired[I] := fResourceOrder[I] / TotalDesired;
  
    fNeedIssueOrderCompletedMsg := False;
    fOrderCompletedMsgIssued := False;
  
negative.code: var
    I, Res: Byte;
    Ware: TKMWareType;
  //  BestBid: Single;
  //  TotalLeft: Integer;
  //  LeftRatio: array [1..4] of Single;
  begin
    Result := 0;
  
  