/*
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;
void DefaultSettings()
{
- detail = 1;
- ismotionblur = 0;
+ detail = 2;
+ ismotionblur = 1;
usermousesensitivity = 1;
- newscreenwidth = kContextWidth = 640;
- newscreenheight = kContextHeight = 480;
+ newscreenwidth = kContextWidth = 1024;
+ newscreenheight = kContextHeight = 768;
fullscreen = 0;
- kBitsPerPixel = 32;
floatjump = 0;
autoslomo = 1;
decals = 1;
musictoggle = 1;
trilinear = 1;
gamespeed = 1;
- difficulty = 1;
damageeffects = 0;
texttoggle = 1;
alwaysblur = 0;
velocityblur = 0;
volume = 0.8f;
ambientsound = 1;
- vblsync = 1;
- debugmode = 0;
+ devtools = 0;
crouchkey = SDL_SCANCODE_LSHIFT;
jumpkey = SDL_SCANCODE_SPACE;
throwkey = SDL_SCANCODE_Q;
attackkey = MOUSEBUTTON1;
consolekey = SDL_SCANCODE_GRAVE;
+
+ newdetail = detail;
}
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";
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";
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];
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) ) {
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) ) {
if (detail < 0)
detail = 0;
if (screenwidth < 0)
- screenwidth = 640;
+ screenwidth = 1024;
if (screenheight < 0)
- screenheight = 480;
+ screenheight = 768;
+ newdetail = detail;
return true;
}