]> git.jsancho.org Git - lugaru.git/blobdiff - Source/Settings.cpp
Stopped using Account pointers, and removed general difficulty setting (difficulty...
[lugaru.git] / Source / Settings.cpp
index 3283b441d639541797c9e5b82ecfc30ef0076957..eca9efd0ebe18a68591cd317da6d5fbea849f00d 100644 (file)
@@ -1,27 +1,27 @@
 /*
 Copyright (C) 2003, 2010 - Wolfire Games
+Copyright (C) 2010-2016 - Lugaru contributors (see AUTHORS file)
 
 This file is part of Lugaru.
 
-Lugaru is free software; you can redistribute it and/or
-modify it under the terms of the GNU General Public License
-as published by the Free Software Foundation; either version 2
-of the License, or (at your option) any later version.
+Lugaru is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
 
-This program is distributed in the hope that it will be useful,
+Lugaru is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
-See the GNU General Public License for more details.
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
 
 You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+along with Lugaru.  If not, see <http://www.gnu.org/licenses/>.
 */
 
 #include "Settings.h"
 #include "Game.h"
 #include "Input.h"
+#include "Utils/Folders.h"
 
 using namespace Game;
 
@@ -33,7 +33,6 @@ void DefaultSettings()
     newscreenwidth = kContextWidth = 1024;
     newscreenheight = kContextHeight = 768;
     fullscreen = 0;
-    kBitsPerPixel = 32;
     floatjump = 0;
     autoslomo = 1;
     decals = 1;
@@ -43,7 +42,6 @@ void DefaultSettings()
     musictoggle = 1;
     trilinear = 1;
     gamespeed = 1;
-    difficulty = 1;
     damageeffects = 0;
     texttoggle = 1;
     alwaysblur = 0;
@@ -53,8 +51,7 @@ void DefaultSettings()
     velocityblur = 0;
     volume = 0.8f;
     ambientsound = 1;
-    vblsync = 1;
-    debugmode = 0;
+    devtools = 0;
 
     crouchkey = SDL_SCANCODE_LSHIFT;
     jumpkey = SDL_SCANCODE_SPACE;
@@ -66,6 +63,8 @@ void DefaultSettings()
     throwkey = SDL_SCANCODE_Q;
     attackkey = MOUSEBUTTON1;
     consolekey = SDL_SCANCODE_GRAVE;
+
+    newdetail = detail;
 }
 
 void SaveSettings()
@@ -82,7 +81,12 @@ void SaveSettings()
         newscreenheight = screenheight;
     if (newscreenheight < 0)
         newscreenheight = screenheight;
-    ofstream opstream(ConvertFileName(":Data:config.txt", "w"));
+    errno = 0;
+    ofstream opstream(Folders::getConfigFilePath());
+    if (opstream.fail()) {
+        perror(("Couldn't save config file " + Folders::getConfigFilePath()).c_str());
+        return;
+    }
     opstream << "Screenwidth:\n";
     opstream << newscreenwidth;
     opstream << "\nScreenheight:\n";
@@ -119,16 +123,10 @@ void SaveSettings()
     if (oldgamespeed == 0)
         oldgamespeed = 1;
     opstream << oldgamespeed;
-    opstream << "\nDifficulty(0,1,2) higher=harder:\n";
-    opstream << difficulty;
     opstream << "\nDamage effects(blackout, doublevision):\n";
     opstream << damageeffects;
     opstream << "\nText:\n";
     opstream << texttoggle;
-    opstream << "\nDebug:\n";
-    opstream << debugmode;
-    opstream << "\nVBL Sync:\n";
-    opstream << vblsync;
     opstream << "\nShow Points:\n";
     opstream << showpoints;
     opstream << "\nAlways Blur:\n";
@@ -167,14 +165,16 @@ void SaveSettings()
     opstream << stereoseparation;
     opstream << "\nStereoReverse:\n";
     opstream << stereoreverse;
+    opstream << "\n";
     opstream.close();
 }
 
 bool LoadSettings()
 {
-    ifstream ipstream(ConvertFileName(":Data:config.txt"), std::ios::in);
-    if ( !ipstream || ipstream.fail() ) {
-        printf("Config file not found\n");
+    errno = 0;
+    ifstream ipstream(Folders::getConfigFilePath(), std::ios::in);
+    if ( ipstream.fail() ) {
+        perror(("Couldn't read config file " + Folders::getConfigFilePath()).c_str());
         return false;
     }
     char setting[256];
@@ -209,10 +209,6 @@ bool LoadSettings()
             ipstream >> ismotionblur;
         } else if ( !strncmp(setting, "Overall Detail", 14) ) {
             ipstream >> detail;
-            if (detail != 0)
-                kBitsPerPixel = 32;
-            else
-                kBitsPerPixel = 16;
         } else if ( !strncmp(setting, "Floating jump", 13) ) {
             ipstream >> floatjump;
         } else if ( !strncmp(setting, "Mouse jump", 10) ) {
@@ -240,16 +236,12 @@ bool LoadSettings()
                 gamespeed = 1;
                 oldgamespeed = 1;
             }
-        } else if ( !strncmp(setting, "Difficulty", 10) ) {
-            ipstream >> difficulty;
         } else if ( !strncmp(setting, "Damage effects", 14) ) {
             ipstream >> damageeffects;
         } else if ( !strncmp(setting, "Text", 4) ) {
             ipstream >> texttoggle;
-        } else if ( !strncmp(setting, "Debug", 5) ) {
-            ipstream >> debugmode;
-        } else if ( !strncmp(setting, "VBL Sync", 8) ) {
-            ipstream >> vblsync;
+        } else if ( !strncmp(setting, "Devtools", 5) ) {
+            ipstream >> devtools;
         } else if ( !strncmp(setting, "Show Points", 11) ) {
             ipstream >> showpoints;
         } else if ( !strncmp(setting, "Always Blur", 11) ) {
@@ -319,5 +311,6 @@ bool LoadSettings()
     if (screenheight < 0)
         screenheight = 768;
 
+    newdetail = detail;
     return true;
 }