changed triggering CE actions by digging or collecting
authorHolger Schemel <info@artsoft.org>
Mon, 4 Jan 2021 11:21:36 +0000 (12:21 +0100)
committerHolger Schemel <info@artsoft.org>
Mon, 4 Jan 2021 11:21:36 +0000 (12:21 +0100)
commitca2d65072bf921ae4341eaa86ff7f674f3e3ba91
treed7b76f0308bc22e8e852364f043645118ac957ec
parentde5140b18022b8d5db653e1175e7ffd202b2645d
changed triggering CE actions by digging or collecting

Before this change, when CEs are triggered by the player digging or
collecting some tile or element, the trigger action was executed
immediately when the player started digging or collecting.

While this generally works fine, it looks (and behaves) strange when
the related CE action causes the player to relocate to a different
position in the playfield (CEs that are "teleporting" the player). In
such cases, the player's dig or collect action is usually executed at
both the old and the new player position, which is not how it really
should work.

This change fixes this behaviour by delaying the CE trigger action
until the dig or collect action is finished, so that only the tile at
the old player position gets digged or collected, but not the tile at
the new player position (if the triggered CE causes the player to
relocate).

This commit improves the workaround in commit fd0ec980.
src/editor.c
src/files.c
src/game.c
src/game.h
src/main.h