X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fgame.c;h=8b77ddef674f65d232e0c968c5e4c5ef9529870f;hb=023dd1a5d064b6a2fbfb8145af8c61261ea53886;hp=0d28b40b2961e8774cd2cdea2d4f47feb68aa263;hpb=1e606dd0963695c0b9ef24497c979f8b6bc1035b;p=rocksndiamonds.git diff --git a/src/game.c b/src/game.c index 0d28b40b..8b77ddef 100644 --- a/src/game.c +++ b/src/game.c @@ -11200,6 +11200,15 @@ static void CheckSaveEngineSnapshot(struct PlayerInfo *player) if (!player->is_dropping) player->was_dropping = FALSE; } + + static struct MouseActionInfo mouse_action_last = { 0 }; + struct MouseActionInfo mouse_action = player->effective_mouse_action; + boolean new_released = (!mouse_action.button && mouse_action_last.button); + + if (new_released) + CheckSaveEngineSnapshotToList(); + + mouse_action_last = mouse_action; } static void CheckSingleStepMode(struct PlayerInfo *player) @@ -11210,7 +11219,8 @@ static void CheckSingleStepMode(struct PlayerInfo *player) player stopped moving after one tile (or never starts moving at all) */ if (!player->is_moving && !player->is_pushing && - !player->is_dropping_pressed) + !player->is_dropping_pressed && + !player->effective_mouse_action.button) TapeTogglePause(TAPE_TOGGLE_AUTOMATIC); }