diff --git a/src/interact/addon/Bindings.xml b/src/interact/addon/Bindings.xml
index 58387d4..dbec6b4 100644
--- a/src/interact/addon/Bindings.xml
+++ b/src/interact/addon/Bindings.xml
@@ -5,6 +5,9 @@
InteractNearest(1)
+
+ LootAllCorpses(1)
+
LootAllCorpses()
diff --git a/src/interact/interact.zig b/src/interact/interact.zig
index d738565..fcde683 100644
--- a/src/interact/interact.zig
+++ b/src/interact/interact.zig
@@ -300,9 +300,14 @@ fn processLootQueue() void {
interactNextCorpse();
}
-pub fn lootAllCorpses(_: *anyopaque) callconv(.c) u32 {
+pub fn lootAllCorpses(L: *anyopaque) callconv(.c) u32 {
if (!isInWorld()) return 0;
+ const max: usize = if (luaIsNumber(L, 1))
+ @intFromFloat(luaToNumber(L, 1))
+ else
+ MAX_LOOT_QUEUE;
+
// Cancel any in-progress chain
loot_queue_count = 0;
loot_queue_index = 0;
@@ -316,7 +321,7 @@ pub fn lootAllCorpses(_: *anyopaque) callconv(.c) u32 {
const p_pos = getUnitPosition(player);
while (current_object != 0 and (current_object & 1) == 0) {
- if (loot_queue_count >= MAX_LOOT_QUEUE) break;
+ if (loot_queue_count >= max) break;
const guid = hook.readMem(u64, current_object + 0x30);
const pointer = getObjectPointer(guid);