After some further testing I found the item pick-up system to be generally very
robust, and correctly (or at least predictably) handled even corner case
situations (e.g. overlapping item labels). I did notice one irksome idiosyncrasy
with the pickup system when item labels are displayed.
If you click the item label, a combo action is set up to move to and pick up the
item. HOWEVER, if you don't release the mouse button immediately, move actions
are still added, causing tux to move to the cursors current locations (wherever
that may be) while still keeping the combo action to pickup the item. If you
release the button in a somewhat timely manner (off of the label but still
within ITEM_TAKE_DIST Tux will happily grab the item and you'll not even notice
the error. However, if you hold the mouse button for slightly longer, the
movement point gets set ever farther away. If this final point is farther than
ITEM_TAKE_DIST Tux will stupidly walk over the item (really, check it out) and
to wherever the target point lies.
In this manner it possible (but not guaranteed) that Tux may not pick up an item
despite the player's click originating on the label.
As a solution I would suggest locking Tux's combo action to an item's position
if the (currently held) click originated on that item's label and Z or X is
active. That way just clicking again will cancel the action, but the clearly
displayed intent of picking up an item is fulfilled without the current
idiosyncrasies. |