X-Git-Url: https://git.artsoft.org/?p=rocksndiamonds.git;a=blobdiff_plain;f=src%2Fgame.c;h=c6a7ef73146a7cf1bd90b59121cbf0856b802189;hp=8b77ddef674f65d232e0c968c5e4c5ef9529870f;hb=fd0ec980e5c4c22978545aa72a2b0b9da0944de7;hpb=540581c4ab898cd7933cfff1f3ed6e56c4646d79 diff --git a/src/game.c b/src/game.c index 8b77ddef..c6a7ef73 100644 --- a/src/game.c +++ b/src/game.c @@ -13997,6 +13997,10 @@ static int DigField(struct PlayerInfo *player, CheckTriggeredElementChangeByPlayer(x, y, element, CE_PLAYER_DIGS_X, player->index_bit, dig_side); + // if digging triggered player relocation, finish digging tile + if (mode == DF_DIG && (player->jx != jx || player->jy != jy)) + setFieldForSnapping(x, y, element, move_direction); + if (mode == DF_SNAP) { if (level.block_snap_field) @@ -14118,9 +14122,15 @@ static int DigField(struct PlayerInfo *player, PlayLevelSoundElementAction(x, y, element, ACTION_COLLECTING); if (is_player) + { CheckTriggeredElementChangeByPlayer(x, y, element, CE_PLAYER_COLLECTS_X, player->index_bit, dig_side); + // if collecting triggered player relocation, finish collecting tile + if (mode == DF_DIG && (player->jx != jx || player->jy != jy)) + setFieldForSnapping(x, y, element, move_direction); + } + if (mode == DF_SNAP) { if (level.block_snap_field)