]> git.jsancho.org Git - lugaru.git/commitdiff
In case the resolution settings in the config file have wrong values,
authorDavid Carlier <devnexen@gmail.com>
Sun, 10 Dec 2017 21:05:13 +0000 (21:05 +0000)
committerDavid Carlier <devnexen@gmail.com>
Sun, 10 Dec 2017 21:05:13 +0000 (21:05 +0000)
the main window is not appearing, forcing here minimum decent values.

Source/Globals.cpp
Source/User/Settings.cpp
Source/User/Settings.hpp

index 3a4d544ff10260ef591f8ab0d741d3e73da6690c..41d81cb741ca19cc5a6c6faaaa46a4b18e0a06c8 100644 (file)
@@ -46,6 +46,8 @@ int difficulty = 0;
 float multiplier = 0;
 float realmultiplier = 0;
 float screenwidth = 0, screenheight = 0;
+float minscreenwidth = 640, minscreenheight = 480;
+float maxscreenwidth = 3000, maxscreenheight = 3000;
 bool fullscreen = 0;
 float viewdistance = 0;
 XYZ viewer;
index fedc77e5bc328b0b8567312f5597177e5c39316d..4890f45f1d7c883f302b03b0314c929d001b4753 100644 (file)
@@ -76,16 +76,10 @@ void SaveSettings()
     if (newdetail > 2) {
         newdetail = 2;
     }
-    if (newscreenwidth > 3000) {
+    if (newscreenwidth < minscreenwidth || newscreenwidth > maxscreenwidth) {
         newscreenwidth = screenwidth;
     }
-    if (newscreenwidth < 0) {
-        newscreenwidth = screenwidth;
-    }
-    if (newscreenheight > 3000) {
-        newscreenheight = screenheight;
-    }
-    if (newscreenheight < 0) {
+    if (newscreenheight < minscreenheight || newscreenheight > maxscreenheight) {
         newscreenheight = screenheight;
     }
     errno = 0;
@@ -207,8 +201,14 @@ bool LoadSettings()
 
         if (!strncmp(setting, "Screenwidth", 11)) {
             ipstream >> kContextWidth;
+            if (kContextWidth < (int)minscreenwidth || kContextWidth > (int)maxscreenwidth) {
+               kContextWidth = (int)minscreenwidth;
+            }
         } else if (!strncmp(setting, "Screenheight", 12)) {
             ipstream >> kContextHeight;
+            if (kContextHeight < (int)minscreenheight || kContextHeight > (int)maxscreenheight) {
+               kContextHeight = (int)minscreenheight;
+            }
         } else if (!strncmp(setting, "Fullscreen", 10)) {
             ipstream >> fullscreen;
         } else if (!strncmp(setting, "Mouse sensitivity", 17)) {
@@ -316,10 +316,10 @@ bool LoadSettings()
     if (detail < 0) {
         detail = 0;
     }
-    if (screenwidth < 0) {
+    if (screenwidth < minscreenwidth || screenwidth > maxscreenwidth) {
         screenwidth = 1024;
     }
-    if (screenheight < 0) {
+    if (screenheight < minscreenheight || screenheight > maxscreenheight) {
         screenheight = 768;
     }
 
index e07d89509999d2647f31a6079210007d19048232..254250a2fe04ffeccca28b914d6afdcd829ac085 100644 (file)
@@ -51,6 +51,8 @@ extern int kContextWidth;
 extern int kContextHeight;
 extern float screenwidth, screenheight;
 extern bool fullscreen;
+extern float minscreenwidth, minscreenheight;
+extern float maxscreenwidth, maxscreenheight;
 
 void DefaultSettings();
 void SaveSettings();