+/*
+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 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.
+
+You should have received a copy of the GNU General Public License
+along with Lugaru. If not, see <http://www.gnu.org/licenses/>.
+*/
+
#include "Settings.h"
#include "Game.h"
#include "Input.h"
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;
vblsync = 1;
debugmode = 0;
- crouchkey = SDLK_LSHIFT;
- jumpkey = SDLK_SPACE;
- leftkey = SDLK_a;
- forwardkey = SDLK_w;
- backkey = SDLK_s;
- rightkey = SDLK_d;
- drawkey = SDLK_e;
- throwkey = SDLK_q;
+ crouchkey = SDL_SCANCODE_LSHIFT;
+ jumpkey = SDL_SCANCODE_SPACE;
+ leftkey = SDL_SCANCODE_A;
+ forwardkey = SDL_SCANCODE_W;
+ backkey = SDL_SCANCODE_S;
+ rightkey = SDL_SCANCODE_D;
+ drawkey = SDL_SCANCODE_E;
+ throwkey = SDL_SCANCODE_Q;
attackkey = MOUSEBUTTON1;
- consolekey = SDLK_BACKQUOTE;
- chatkey = SDLK_t;
+ consolekey = SDL_SCANCODE_GRAVE;
}
void SaveSettings()
{
- if (newdetail < 0) newdetail = 0;
- if (newdetail > 2) newdetail = 2;
- if (newscreenwidth > 3000) newscreenwidth = screenwidth;
- if (newscreenwidth < 0) newscreenwidth = screenwidth;
- if (newscreenheight > 3000) newscreenheight = screenheight;
- if (newscreenheight < 0) newscreenheight = screenheight;
+ if (newdetail < 0)
+ newdetail = 0;
+ if (newdetail > 2)
+ newdetail = 2;
+ if (newscreenwidth > 3000)
+ newscreenwidth = screenwidth;
+ if (newscreenwidth < 0)
+ newscreenwidth = screenwidth;
+ if (newscreenheight > 3000)
+ newscreenheight = screenheight;
+ if (newscreenheight < 0)
+ newscreenheight = screenheight;
ofstream opstream(ConvertFileName(":Data:config.txt", "w"));
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";
opstream << "\nInvert mouse:\n";
opstream << invertmouse;
opstream << "\nGamespeed:\n";
- if (oldgamespeed == 0)oldgamespeed = 1;
+ if (oldgamespeed == 0)
+ oldgamespeed = 1;
opstream << oldgamespeed;
opstream << "\nDifficulty(0,1,2) higher=harder:\n";
opstream << difficulty;
opstream << "\nVolume:\n";
opstream << volume;
opstream << "\nForward key:\n";
- opstream << Input::keyToChar(forwardkey);
+ opstream << forwardkey;
opstream << "\nBack key:\n";
- opstream << Input::keyToChar(backkey);
+ opstream << backkey;
opstream << "\nLeft key:\n";
- opstream << Input::keyToChar(leftkey);
+ opstream << leftkey;
opstream << "\nRight key:\n";
- opstream << Input::keyToChar(rightkey);
+ opstream << rightkey;
opstream << "\nJump key:\n";
- opstream << Input::keyToChar(jumpkey);
+ opstream << jumpkey;
opstream << "\nCrouch key:\n";
- opstream << Input::keyToChar(crouchkey);
+ opstream << crouchkey;
opstream << "\nDraw key:\n";
- opstream << Input::keyToChar(drawkey);
+ opstream << drawkey;
opstream << "\nThrow key:\n";
- opstream << Input::keyToChar(throwkey);
+ opstream << throwkey;
opstream << "\nAttack key:\n";
- opstream << Input::keyToChar(attackkey);
+ opstream << attackkey;
opstream << "\nConsole key:\n";
- opstream << Input::keyToChar(consolekey);
- opstream << "\nChat key:\n";
- opstream << Input::keyToChar(chatkey);
+ opstream << consolekey;
opstream << "\nDamage bar:\n";
opstream << showdamagebar;
opstream << "\nStereoMode:\n";
// skip blank lines
// assume lines starting with spaces are all blank
- if ( strlen(setting) == 0 || setting[0] == ' ' || setting[0] == '\t') continue;
+ if ( strlen(setting) == 0 || setting[0] == ' ' || setting[0] == '\t')
+ continue;
//~ printf("setting : %s\n",setting);
if ( ipstream.eof() || ipstream.fail() ) {
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;
+ if (detail != 0)
+ kBitsPerPixel = 32;
+ else
+ kBitsPerPixel = 16;
} else if ( !strncmp(setting, "Floating jump", 13) ) {
ipstream >> floatjump;
} else if ( !strncmp(setting, "Mouse jump", 10) ) {
} else if ( !strncmp(setting, "Volume", 6) ) {
ipstream >> volume;
} else if ( !strncmp(setting, "Forward key", 11) ) {
- ipstream.getline( string, sizeof(string) );
- forwardkey = Input::CharToKey(string);
+ ipstream >> forwardkey;
} else if ( !strncmp(setting, "Back key", 8) ) {
- ipstream.getline( string, sizeof(string) );
- backkey = Input::CharToKey(string);
+ ipstream >> backkey;
} else if ( !strncmp(setting, "Left key", 8) ) {
- ipstream.getline( string, sizeof(string) );
- leftkey = Input::CharToKey(string);
+ ipstream >> leftkey;
} else if ( !strncmp(setting, "Right key", 9) ) {
- ipstream.getline( string, sizeof(string) );
- rightkey = Input::CharToKey(string);
+ ipstream >> rightkey;
} else if ( !strncmp(setting, "Jump key", 8) ) {
- ipstream.getline( string, sizeof(string) );
- jumpkey = Input::CharToKey(string);
+ ipstream >> jumpkey;
} else if ( !strncmp(setting, "Crouch key", 10) ) {
- ipstream.getline( string, sizeof(string) );
- crouchkey = Input::CharToKey(string);
+ ipstream >> crouchkey;
} else if ( !strncmp(setting, "Draw key", 8) ) {
- ipstream.getline( string, sizeof(string) );
- drawkey = Input::CharToKey(string);
+ ipstream >> drawkey;
} else if ( !strncmp(setting, "Throw key", 9) ) {
- ipstream.getline( string, sizeof(string) );
- throwkey = Input::CharToKey(string);
+ ipstream >> throwkey;
} else if ( !strncmp(setting, "Attack key", 10) ) {
- ipstream.getline( string, sizeof(string) );
- attackkey = Input::CharToKey(string);
+ ipstream >> attackkey;
} else if ( !strncmp(setting, "Console key", 11) ) {
- ipstream.getline( string, sizeof(string) );
- consolekey = Input::CharToKey(string);
- } else if ( !strncmp(setting, "Chat key", 8) ) {
- ipstream.getline( string, sizeof(string) );
- chatkey = Input::CharToKey(string);
+ ipstream >> consolekey;
} else if ( !strncmp(setting, "Damage bar", 10) ) {
ipstream >> showdamagebar;
} else if ( !strncmp(setting, "StereoMode", 10) ) {
ipstream.close();
- if (detail > 2)detail = 2;
- if (detail < 0)detail = 0;
- if (screenwidth < 0)screenwidth = 640;
- if (screenheight < 0)screenheight = 480;
+ if (detail > 2)
+ detail = 2;
+ if (detail < 0)
+ detail = 0;
+ if (screenwidth < 0)
+ screenwidth = 1024;
+ if (screenheight < 0)
+ screenheight = 768;
return true;
}