rnd-20140313-2-src
[rocksndiamonds.git] / src / events.c
index f9e74a763b82d5c3ad7565332cc8520615d791b0..f1d9ad1125046821b51c8e390a320825be948b80 100644 (file)
@@ -465,9 +465,11 @@ void HandleWindowEvent(WindowEvent *event)
       int new_xpercent = (100 * new_window_width  / video.width);
       int new_ypercent = (100 * new_window_height / video.height);
 
+#if 0
       printf("::: RESIZED from %d, %d to %d, %d\n",
             video.window_width, video.window_height,
             new_window_width, new_window_height);
+#endif
 
       setup.window_scaling_percent = video.window_scaling_percent =
        MIN(MAX(MIN_WINDOW_SCALING_PERCENT, MIN(new_xpercent, new_ypercent)),
@@ -476,11 +478,15 @@ void HandleWindowEvent(WindowEvent *event)
       video.window_width  = new_window_width;
       video.window_height = new_window_height;
 
+#if 0
       printf("::: setup.window_scaling_percent set to %d\n",
             setup.window_scaling_percent);
+#endif
 
       if (game_status == GAME_MODE_SETUP)
        RedrawSetupScreenAfterFullscreenToggle();
+
+      SetWindowTitle();
     }
 #else
     // prevent slightly wrong scaling factor due to rounding differences
@@ -1146,7 +1152,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_FIELD(mx, my))
+      if (button == MB_PRESSED && !motion_status && IN_GFX_FIELD_PLAY(mx, my))
        DumpTile(LEVELX((mx - SX) / TILEX), LEVELY((my - SY) / TILEY));
 #endif
       break;
@@ -1237,6 +1243,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"))
     {
@@ -1695,6 +1715,7 @@ void HandleKey(Key key, int key_status)
          }
          break;
 
+#if 0
        case KSYM_s:
          if (!global.fps_slowdown)
          {
@@ -1714,7 +1735,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);
@@ -1734,6 +1757,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",