fixed name of element 'beamer' to 'teleporter'
[rocksndiamonds.git] / src / tools.c
index 777a1a08c833bcde707f13a322b04767195a82f3..dc847065c0916b414429cc4aae6af7373c946f88 100644 (file)
@@ -8747,9 +8747,21 @@ void CheckSaveEngineSnapshot_SP(boolean murphy_is_waiting,
   }
 }
 
-void CheckSaveEngineSnapshot_MM(boolean button_released)
+void CheckSaveEngineSnapshot_MM(boolean element_clicked,
+                               boolean button_released)
 {
-  CheckSaveEngineSnapshotToList();
+  if (button_released)
+  {
+    if (game.snapshot.mode == SNAPSHOT_MODE_EVERY_MOVE)
+      CheckSaveEngineSnapshotToList();
+  }
+  else if (element_clicked)
+  {
+    if (game.snapshot.mode != SNAPSHOT_MODE_EVERY_MOVE)
+      CheckSaveEngineSnapshotToList();
+
+    game.snapshot.changed_action = TRUE;
+  }
 }
 
 void CheckSingleStepMode_EM(byte action[MAX_PLAYERS], int frame,
@@ -8782,13 +8794,14 @@ void CheckSingleStepMode_SP(boolean murphy_is_waiting,
   CheckSaveEngineSnapshot_SP(murphy_is_waiting, murphy_is_dropping);
 }
 
-void CheckSingleStepMode_MM(boolean button_released)
+void CheckSingleStepMode_MM(boolean element_clicked,
+                           boolean button_released)
 {
   if (tape.single_step && tape.recording && !tape.pausing)
     if (button_released)
       TapeTogglePause(TAPE_TOGGLE_AUTOMATIC);
 
-  CheckSaveEngineSnapshot_MM(button_released);
+  CheckSaveEngineSnapshot_MM(element_clicked, button_released);
 }
 
 void getGraphicSource_SP(struct GraphicInfo_SP *g_sp,