X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;f=Source%2FSettings.cpp;h=eca9efd0ebe18a68591cd317da6d5fbea849f00d;hb=bdabd9d4a53be2fa9d90f900f7e5949d2f0ef75c;hp=38bf9b2c9785fca67b03e18ec375bca33d23523f;hpb=dcacd1c62fda9af9a042b2327041ea057652f1b3;p=lugaru.git diff --git a/Source/Settings.cpp b/Source/Settings.cpp index 38bf9b2..eca9efd 100644 --- a/Source/Settings.cpp +++ b/Source/Settings.cpp @@ -1,38 +1,38 @@ /* 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 . */ #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; - kBitsPerPixel = 32; + newscreenwidth = kContextWidth = 1024; + newscreenheight = kContextHeight = 768; + fullscreen = 0; floatjump = 0; autoslomo = 1; decals = 1; @@ -42,7 +42,6 @@ void DefaultSettings() musictoggle = 1; trilinear = 1; gamespeed = 1; - difficulty = 1; damageeffects = 0; texttoggle = 1; alwaysblur = 0; @@ -52,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; @@ -65,7 +63,8 @@ void DefaultSettings() throwkey = SDL_SCANCODE_Q; attackkey = MOUSEBUTTON1; consolekey = SDL_SCANCODE_GRAVE; - chatkey = SDL_SCANCODE_T; + + newdetail = detail; } void SaveSettings() @@ -82,11 +81,18 @@ 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"; opstream << newscreenheight; + opstream << "\nFullscreen:\n"; + opstream << fullscreen; opstream << "\nMouse sensitivity:\n"; opstream << usermousesensitivity; opstream << "\nBlur(0,1):\n"; @@ -117,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"; @@ -157,8 +157,6 @@ void SaveSettings() opstream << attackkey; opstream << "\nConsole key:\n"; opstream << consolekey; - opstream << "\nChat key:\n"; - opstream << chatkey; opstream << "\nDamage bar:\n"; opstream << showdamagebar; opstream << "\nStereoMode:\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]; @@ -201,16 +201,14 @@ bool LoadSettings() ipstream >> kContextWidth; } else if ( !strncmp(setting, "Screenheight", 12) ) { ipstream >> kContextHeight; + } else if ( !strncmp(setting, "Fullscreen", 10) ) { + ipstream >> fullscreen; } else if ( !strncmp(setting, "Mouse sensitivity", 17) ) { ipstream >> usermousesensitivity; } else if ( !strncmp(setting, "Blur", 4) ) { 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) ) { @@ -238,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) ) { @@ -278,8 +272,6 @@ bool LoadSettings() ipstream >> attackkey; } else if ( !strncmp(setting, "Console key", 11) ) { ipstream >> consolekey; - } else if ( !strncmp(setting, "Chat key", 8) ) { - ipstream >> chatkey; } else if ( !strncmp(setting, "Damage bar", 10) ) { ipstream >> showdamagebar; } else if ( !strncmp(setting, "StereoMode", 10) ) { @@ -315,9 +307,10 @@ bool LoadSettings() if (detail < 0) detail = 0; if (screenwidth < 0) - screenwidth = 640; + screenwidth = 1024; if (screenheight < 0) - screenheight = 480; + screenheight = 768; + newdetail = detail; return true; }