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;
}