anchor.diff:        end;
       end;
   
  -  if WARFARE_ORDER_PROPORTIONAL then
  -  begin
  -    //See the ratio between items that were made (since last order amount change)
  -    TotalLeft := fResourceOrder[1] + fResourceOrder[2] + fResourceOrder[3] + fResourceOrder[4];
  -    for I := 1 to 4 do
  -      LeftRatio[I] := fResourceOrder[I] / TotalLeft;
  -
  -    //Left   Desired
  -    //0.5    0.6
  -    //0.3    0.3
  -    //0.2    0.1
  -
  -    //Find order that which production ratio is the smallest
  -    BestBid := -MaxSingle;
  -    for I := 1 to 4 do
  -    if (ResOrder[I] > 0) then //Player has ordered some of this
  -    begin
  -      Ware := gRes.Houses[fType].ResOutput[I];
  -
  -      if (CheckResOut(Ware) < MAX_WARES_IN_HOUSE) //Output of this is not full
  -      //Check we have enough wares to produce this weapon. If both are the same type check > 1 not > 0
  -      and ((WarfareCosts[Ware,1] <> WarfareCosts[Ware,2]) or (CheckResIn(WarfareCosts[Ware,1]) > 1))
  -      and ((WarfareCosts[Ware,1] = wtNone) or (CheckResIn(WarfareCosts[Ware,1]) > 0))
  -      and ((WarfareCosts[Ware,2] = wtNone) or (CheckResIn(WarfareCosts[Ware,2]) > 0))
  -      and (LeftRatio[I] - fResOrderDesired[I] > BestBid) then
  -      begin
  -        Result := I;
  -        BestBid := LeftRatio[Result] - fResOrderDesired[Result];
  -      end;
  -    end;
  -  end;
  +//  if WARFARE_ORDER_PROPORTIONAL then
  +//  begin
  +//    //See the ratio between items that were made (since last order amount change)
  +//    TotalLeft := fResourceOrder[1] + fResourceOrder[2] + fResourceOrder[3] + fResourceOrder[4];
  +//    for I := 1 to 4 do
  +//      LeftRatio[I] := fResourceOrder[I] / TotalLeft;
  +//
  +//    //Left   Desired
  +//    //0.5    0.6
  +//    //0.3    0.3
  +//    //0.2    0.1
  +//
  +//    //Find order that which production ratio is the smallest
  +//    BestBid := -MaxSingle;
  +//    for I := 1 to 4 do
  +//    if (ResOrder[I] > 0) then //Player has ordered some of this
  +//    begin
  +//      Ware := gRes.Houses[fType].ResOutput[I];
  +//
  +//      if (CheckResOut(Ware) < MAX_WARES_IN_HOUSE) //Output of this is not full
  +//      //Check we have enough wares to produce this weapon. If both are the same type check > 1 not > 0
  +//      and ((WarfareCosts[Ware,1] <> WarfareCosts[Ware,2]) or (CheckResIn(WarfareCosts[Ware,1]) > 1))
  +//      and ((WarfareCosts[Ware,1] = wtNone) or (CheckResIn(WarfareCosts[Ware,1]) > 0))
  +//      and ((WarfareCosts[Ware,2] = wtNone) or (CheckResIn(WarfareCosts[Ware,2]) > 0))
  +//      and (LeftRatio[I] - fResOrderDesired[I] > BestBid) then
  +//      begin
  +//        Result := I;
  +//        BestBid := LeftRatio[Result] - fResOrderDesired[Result];
  +//      end;
  +//    end;
  +//  end;
   
     if Result <> 0 then
     begin
  
positive.code:   for I:=1 to 4 do SaveStream.Write(fResourceDeliveryCount[I]);
    for I:=1 to 4 do SaveStream.Write(fResourceOut[I]);
    for I:=1 to 4 do SaveStream.Write(fResourceOrder[I], SizeOf(fResourceOrder[I]));
    for I:=1 to 4 do SaveStream.Write(fResOrderDesired[I], SizeOf(fResOrderDesired[I]));
  
    if fType in HOUSE_WORKSHOP then
      SaveStream.Write(fResourceOutPool, 20);
  
negative.code:     fResourceOrder: array [1..4] of Word; //If HousePlaceOrders=true then here are production orders
      fResourceOutPool: array[0..19] of Byte;
      fLastOrderProduced: Byte;
  //    fResOrderDesired: array [1..4] of Single;
  
      fIsOnSnow: Boolean;
      fSnowStep: Single;
  