fixed moving tile selection cursor
[rocksndiamonds.git] / src / events.c
index 65b20da1cb634a22e5a6cc1e4c8ce39fdd8a1e9e..5dabff98e944b25fb815cf470f6e58c58b1011b2 100644 (file)
@@ -1824,7 +1824,7 @@ void HandleKey(Key key, int key_status)
       else
        stored_player[pnr].action &= ~key_action;
 
-      if (tape.single_step && tape.recording && tape.pausing)
+      if (tape.single_step && tape.recording && tape.pausing && !tape.use_mouse)
       {
        if (key_status == KEY_PRESSED && key_action & KEY_MOTION)
        {
@@ -2187,7 +2187,7 @@ static void HandleTileCursor(int dx, int dy, int button)
                         (dx < 0 ? MB_LEFTBUTTON :
                          dx > 0 ? MB_RIGHTBUTTON : MB_RELEASED));
   }
-  else
+  else if (!tile_cursor.moving)
   {
     int old_xpos = tile_cursor.xpos;
     int old_ypos = tile_cursor.ypos;
@@ -2315,8 +2315,11 @@ void HandleJoystick()
     }
 
     case GAME_MODE_PLAYING:
+#if 0
+      // !!! causes immediate GameEnd() when solving MM level with keyboard !!!
       if (tape.playing || keyboard)
        newbutton = ((joy & JOY_BUTTON) != 0);
+#endif
 
       if (newbutton && AllPlayersGone)
       {
@@ -2325,7 +2328,7 @@ void HandleJoystick()
        return;
       }
 
-      if (tape.recording && tape.pausing)
+      if (tape.recording && tape.pausing && !tape.use_mouse)
       {
        if (joystick & JOY_ACTION)
          TapeTogglePause(TAPE_TOGGLE_MANUAL);