rnd-20140219-1-src
[rocksndiamonds.git] / src / events.c
index a189082a82c5cf01a8d7fc5390bd4fa0c0bd7b4d..9fb4ef03e124a204a77e688668ac0a7ab27852c4 100644 (file)
@@ -570,12 +570,14 @@ void HandleFingerEvent(FingerEvent *event)
                event->x < 5.0 / 6.0 ? setup.input[0].key.left :
                setup.input[0].key.right) :
               KSYM_UNDEFINED);
+#if 0
     char *key_name = (key == setup.input[0].key.snap  ? "SNAP" :
                      key == setup.input[0].key.drop  ? "DROP" :
                      key == setup.input[0].key.up    ? "UP" :
                      key == setup.input[0].key.down  ? "DOWN" :
                      key == setup.input[0].key.left  ? "LEFT" :
                      key == setup.input[0].key.right ? "RIGHT" : "(unknown)");
+#endif
     char *key_status_name = (key_status == KEY_RELEASED ? "KEY_RELEASED" :
                             "KEY_PRESSED");
 #else
@@ -1144,7 +1146,7 @@ void HandleButton(int mx, int my, int button, int button_nr)
 
     case GAME_MODE_PLAYING:
 #ifdef DEBUG
-      if (button == MB_PRESSED && !motion_status && IN_GFX_SCREEN(mx, my))
+      if (button == MB_PRESSED && !motion_status && IN_GFX_FIELD(mx, my))
        DumpTile(LEVELX((mx - SX) / TILEX), LEVELY((my - SY) / TILEY));
 #endif
       break;
@@ -1235,6 +1237,20 @@ static void HandleKeysSpecial(Key key)
     {
       DumpTape(&tape);
     }
+    else if (is_string_suffix(cheat_input, ":fix-tape") ||
+            is_string_suffix(cheat_input, ":ft"))
+    {
+      /* fix single-player tapes that contain player input for more than one
+        player (due to a bug in 3.3.1.2 and earlier versions), which results
+        in playing levels with more than one player in multi-player mode,
+        even though the tape was originally recorded in single-player mode */
+
+      /* remove player input actions for all players but the first one */
+      for (i = 1; i < MAX_PLAYERS; i++)
+       tape.player_participates[i] = FALSE;
+
+      tape.changed = TRUE;
+    }
     else if (is_string_suffix(cheat_input, ":save-native-level") ||
             is_string_suffix(cheat_input, ":snl"))
     {
@@ -1693,6 +1709,7 @@ void HandleKey(Key key, int key_status)
          }
          break;
 
+#if 0
        case KSYM_s:
          if (!global.fps_slowdown)
          {
@@ -1712,7 +1729,9 @@ void HandleKey(Key key, int key_status)
            printf("fps slowdown disabled\n");
          }
          break;
+#endif
 
+#if 0
        case KSYM_f:
          ScrollStepSize = TILEX / 8;
          printf("ScrollStepSize == %d (1/8)\n", ScrollStepSize);
@@ -1732,6 +1751,7 @@ void HandleKey(Key key, int key_status)
          ScrollStepSize = TILEX;
          printf("ScrollStepSize == %d (1/1)\n", ScrollStepSize);
          break;
+#endif
 
        case KSYM_v:
          printf("::: currently using game engine version %d\n",