anchor.diff:  end;
   
   
  +procedure TKMDeliveries.UpdateOfferItem(aI: Integer);
  +begin
  +  with fOffer[aI] do
  +    if Assigned(FormLogistics)
  +      and (gGame <> nil) and not gGame.ReadyToStop
  +      and (Ware <> wt_None) then
  +    begin
  +      if Item = nil then
  +        Item := FormLogistics.OffersList.Items.Add;
  +
  +      if Item = nil then Exit;
  +
  +      Item.Caption := IntToStr(Item.Index);
  +      Item.SubItems.Clear;
  +
  +      Item.SubItems.Add(gRes.Wares[Ware].Title);
  +
  +      if Loc_House <> nil then
  +        Item.SubItems.Add(gRes.Houses[Loc_House.HouseType].HouseName)
  +      else
  +        Item.SubItems.Add('nil');
  +
  +      Item.SubItems.Add(IntToStr(Count));
  +      Item.SubItems.Add(IntToStr(BeingPerformed));
  +      Item.SubItems.Add(BoolToStr(IsDeleted, True));
  +    end;
  +end;
  +
  +
  +procedure TKMDeliveries.UpdateDemandItem(aI: Integer);
  +begin
  +  with fDemand[aI] do
  +    if Assigned(FormLogistics)
  +      and (gGame <> nil) and not gGame.ReadyToStop
  +      and (Ware <> wt_None) then
  +    begin
  +      if Item = nil then
  +        Item := FormLogistics.DemandsList.Items.Add;
  +
  +      if Item = nil then Exit;
  +
  +      Item.Caption := IntToStr(Item.Index);
  +      Item.SubItems.Clear;
  +
  +      Item.SubItems.Add(gRes.Wares[Ware].Title);
  +
  +      if Loc_House <> nil then
  +        Item.SubItems.Add('H: ' + gRes.Houses[Loc_House.HouseType].HouseName)
  +      else if Loc_Unit <> nil then
  +        Item.SubItems.Add('U: ' + gRes.Units[Loc_Unit.UnitType].UnitName)
  +      else
  +        Item.SubItems.Add('nil');
  +
  +      Item.SubItems.Add(GetEnumName(TypeInfo(TKMDemandType), Integer(DemandType)));
  +      Item.SubItems.Add(GetEnumName(TypeInfo(TKMDemandImportance), Integer(Importance)));
  +      Item.SubItems.Add(IntToStr(BeingPerformed));
  +      Item.SubItems.Add(BoolToStr(IsDeleted, True));
  +    end;
  +end;
  +
  +
   //Adds new Offer to the list. List is stored without sorting
   //(it matters only for Demand to keep everything in waiting its order in line),
   //so we just find an empty place and write there.
   procedure TKMDeliveries.AddOffer(aHouse: TKMHouse; aWare: TKMWareType; aCount: Integer);
  -
  -  procedure UpdatItem(aI: Integer);
  -  begin
  -    with fOffer[aI] do
  -      if Assigned(FormLogistics) and (gGame <> nil) and not gGame.ReadyToStop then
  -      begin
  -        if Item = nil then
  -          Item := FormLogistics.OffersList.Items.Add;
  -
  -        if Item = nil then Exit;
  -        
  -        Item.Caption := IntToStr(Item.Index);
  -        Item.SubItems.Clear;
  -
  -        Item.SubItems.Add(gRes.Wares[Ware].Title);
  -
  -        if aHouse <> nil then
  -          Item.SubItems.Add(gRes.Houses[aHouse.HouseType].HouseName)
  -        else
  -          Item.SubItems.Add('nil');
  -
  -        Item.SubItems.Add(IntToStr(Count));
  -        Item.SubItems.Add(IntToStr(BeingPerformed));
  -        Item.SubItems.Add(BoolToStr(IsDeleted, True));
  -      end;
  -  end;
  -
   var
     I, K: Integer;
   begin
  
positive.code:         and (Loc_House <> nil) and (Loc_House.HouseType = htInn) then
          Importance := diHigh3;
  
        if Assigned(FormLogistics) then
        begin
          Item := FormLogistics.DemandsList.Items.Add;
  
          Item.Caption := IntToStr(Item.Index);
          Item.SubItems.Add(gRes.Wares[Ware].Title);
  
          if aHouse <> nil then
            Item.SubItems.Add('H: ' + gRes.Houses[aHouse.HouseType].HouseName)
          else if aUnit <> nil then
            Item.SubItems.Add('U: ' + gRes.Units[aUnit.UnitType].UnitName)
          else
            Item.SubItems.Add('nil');
  
          Item.SubItems.Add(GetEnumName(TypeInfo(TKMDemandType), Integer(DemandType)));
          Item.SubItems.Add(GetEnumName(TypeInfo(TKMDemandImportance), Integer(Importance)));
          Item.SubItems.Add(IntToStr(BeingPerformed));
          Item.SubItems.Add(BoolToStr(IsDeleted, True));
        end;
      end;
    end;
  end;
  
negative.code: 
    if Assigned(fQueue[aID].Item) then
      fQueue[aID].Item.Delete;
  
    fQueue[aID].Item := nil; //Set to nil, as sometimes Item is not nil even after Delete
  end;
  
  
  