improved startup speed by optimizing parsing of parameter values
[rocksndiamonds.git] / src / screens.c
index 1808e9bcd4a6dbfe71083b9117e52ec82762ab3f..fe814ec765b5ddeea6e2e19e25f03cc21369a1e4 100644 (file)
@@ -5332,8 +5332,23 @@ static void execSetupGraphics(void)
   // screen rendering mode may have changed at this point
   SDLSetScreenRenderingMode(setup.screen_rendering_mode);
 
+  int setup_vsync_mode = VSYNC_MODE_STR_TO_INT(setup.vsync_mode);
+  int video_vsync_mode = video.vsync_mode;
+
   // screen vsync mode may have changed at this point
   ChangeVsyncModeIfNeeded();
+
+  // check if setting vsync mode to selected value failed
+  if (setup_vsync_mode != video_vsync_mode &&
+      setup_vsync_mode != video.vsync_mode)
+  {
+    // changing vsync mode to selected value failed -- reset displayed value
+    execSetupGraphics_setVsyncModes(TRUE);
+
+    Request("Setting VSync failed!", REQ_CONFIRM);
+
+    DrawSetupScreen();
+  }
 }
 
 static void execSetupChooseWindowSize(void)
@@ -8424,7 +8439,7 @@ void HandleGameActions(void)
   GameActions();       // main game loop
 
   if (tape.auto_play && !tape.playing)
-    AutoPlayTape();    // continue automatically playing next tape
+    AutoPlayTapes();   // continue automatically playing next tape
 }