a workaround on top of diff at RR 2370:
```
diff --git a/src/influ.c b/src/influ.c
index 9a6b1291d..a5107a4cb 100644
--- a/src/influ.c
+++ b/src/influ.c
@@ -1649,6 +1649,10 @@ static void handle_automatic_item_collection()
can_pickup = 1;
}
+ if (item_held_in_hand == &obj_lvl->ItemList[tmp]) {
+ can_pickup = 0;
+ }
+
if (can_pickup) {
give_item(&obj_lvl->ItemList[tmp]);
}
```
But really, the patch RR2370 should probably not be merged:
get_floor_item_index_under_me() is called on ever call to move_tux().
get_floor_item_index_under_me() iterates over all visible levels and over all
items per level and compares the position; it also calls
update_virtual_position() every time..
Even though it the function checks for items in a given radius it returns at
most one (and iteratively collects items if Tux is moving slow enough at high FPS).
While the feature is very convenient, the current implementation (RR2370) is
lacking, sadly. |