Not as I can't understand (

DC4 | Сергей

Member
Member
Jul 12, 2017
53
1
6
28
Parts Unknown
This is the function that is responsible for moving inventory items? I do a hook on catching the movement of objects

C#:
public static Inventory.Transfer[] Build(Inventory.Slot.KindFlags fallbackKindFlags)
{
    if (!begun)
    {
        throw new InvalidOperationException();
    }
    Inventory.Transfer[] transferArray = new Inventory.Transfer[totalItemCount];
    int slotNumber = 0;
    foreach (KeyValuePair<int, Inventory.Report> pair in dict)
    {
        Inventory.Transfer transfer;
        Inventory.Report first = pair.Value;
        transfer.addition.Ident = (Datablock.Ident) first.datablock;
        int length = first.length;
        first = first.first;
        bool splittable = first.splittable;
        for (int i = 0; i < length; i++)
        {
            transfer.addition.SlotPreference = Inventory.Slot.Preference.Define(slotNumber, false, fallbackKindFlags);
            transfer.addition.UsesQuantity = Inventory.Uses.Quantity.Manual(first.amount);
            transfer.item = first.item;
            transferArray[slotNumber++] = transfer;
            Inventory.Report report2 = first;
            first = first.typeNext;
            if (!report2.Disposed)
            {
                report2.Disposed = true;
                report2.dumpNext = dump;
                report2.first = (Inventory.Report) (report2.typeNext = null);
                report2.datablock = null;
                report2.item = null;
                dump = report2;
                dumpSize++;
            }
        }
    }
    dict.Clear();
    begun = false;
    return transferArray;
}
 

DreTaX

Probably knows the answer...
Administrator
Jun 29, 2014
4,098
4,863
113
At your house.
github.com
This is the function that is responsible for moving inventory items? I do a hook on catching the movement of objects

C#:
public static Inventory.Transfer[] Build(Inventory.Slot.KindFlags fallbackKindFlags)
{
    if (!begun)
    {
        throw new InvalidOperationException();
    }
    Inventory.Transfer[] transferArray = new Inventory.Transfer[totalItemCount];
    int slotNumber = 0;
    foreach (KeyValuePair<int, Inventory.Report> pair in dict)
    {
        Inventory.Transfer transfer;
        Inventory.Report first = pair.Value;
        transfer.addition.Ident = (Datablock.Ident) first.datablock;
        int length = first.length;
        first = first.first;
        bool splittable = first.splittable;
        for (int i = 0; i < length; i++)
        {
            transfer.addition.SlotPreference = Inventory.Slot.Preference.Define(slotNumber, false, fallbackKindFlags);
            transfer.addition.UsesQuantity = Inventory.Uses.Quantity.Manual(first.amount);
            transfer.item = first.item;
            transferArray[slotNumber++] = transfer;
            Inventory.Report report2 = first;
            first = first.typeNext;
            if (!report2.Disposed)
            {
                report2.Disposed = true;
                report2.dumpNext = dump;
                report2.first = (Inventory.Report) (report2.typeNext = null);
                report2.datablock = null;
                report2.item = null;
                dump = report2;
                dumpSize++;
            }
        }
    }
    dict.Clear();
    begun = false;
    return transferArray;
}
I can patch this in the next Fougerite version.

https://github.com/Notulp/Fougerite/issues
I made the issue for you.