Message3543

Author tuxcomp
Recipients
Date 2018-03-01.00:29:47
Content
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.
History
Date User Action Args
2018-03-01 00:29:47tuxcompsetmessageid: <1519864187.31.0.54198692933.issue907@freedroid.org>
2018-03-01 00:29:47tuxcomplinkissue907 messages
2018-03-01 00:29:47tuxcompcreate