added creating engine snapshots when using mouse click events
[rocksndiamonds.git] / src / game.c
index 0d28b40b2961e8774cd2cdea2d4f47feb68aa263..8b77ddef674f65d232e0c968c5e4c5ef9529870f 100644 (file)
@@ -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);
   }