1
0
Fork 0
mirror of https://github.com/AquariaOSE/Aquaria.git synced 2024-12-03 00:15:46 +00:00
Aquaria/Aquaria/UserSettings.h
2017-01-17 11:15:47 +01:00

141 lines
2.9 KiB
C++

/*
Copyright (C) 2007, 2010 - Bit-Blot
This file is part of Aquaria.
Aquaria 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,
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 this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#ifndef USERSETTINGS_H
#define USERSETTINGS_H
#include <string>
const std::string userSettingsFilename = "usersettings.xml";
#include "Base.h"
#include "ActionMapper.h"
// MAKE SURE to update this when changing the user settings
const int VERSION_USERSETTINGS = 1;
class UserSettings
{
public:
struct System
{
System() { debugLogOn = 0; devModeOn = 0; allowDangerousScriptFunctions = 0; grabInput=1; }
int debugLogOn;
std::string locale;
int devModeOn;
int allowDangerousScriptFunctions;
int grabInput;
} system;
struct Audio
{
Audio() { musvol=voxvol=sfxvol=1.0; subtitles=false; prebuffer=false;}
float voxvol, sfxvol, musvol;
int subtitles;
std::string deviceName;
int prebuffer;
} audio;
struct Video
{
Video() {
numParticles = 2048;
parallaxOn0 = parallaxOn1 = parallaxOn2 = 1;
saveSlotScreens = 1;
blur = 1;
noteEffects = 0;
fpsSmoothing = 30;
resx = 800;
resy = 600;
hz = 60;
displayindex = 0;
full = 1;
fbuffer = 1;
darkfbuffer = 1;
bits = 32;
vsync = 1;
darkbuffersize = 256;
displaylists = 0;
worldMapRevealMethod = 0;
}
int blur;
int noteEffects;
int fpsSmoothing;
int resx, resy, full, fbuffer, bits, vsync, darkfbuffer, darkbuffersize, hz, displayindex;
int saveSlotScreens;
int parallaxOn0, parallaxOn1, parallaxOn2;
int numParticles;
int displaylists;
int worldMapRevealMethod;
} video;
struct Control
{
Control() {
toolTipsOn = 1;
autoAim = 1;
targeting = 1;
flipInputButtons = 0;
joystickEnabled = 0;
minActionSets = 4;
}
int joystickEnabled;
int autoAim;
int targeting;
int flipInputButtons;
std::vector<ActionSet> actionSets;
int toolTipsOn;
int minActionSets;
} control;
struct Demo
{
Demo() { warpKeys=0; intro=0; shortLogos=0; }
int warpKeys;
int intro;
int shortLogos;
} demo;
struct Data
{
Data() { savePage=0; saveSlot=0; }
size_t savePage;
size_t saveSlot;
} data;
struct Version
{
Version() { settingsVersion=1; }
int settingsVersion;
} version;
struct Network
{
std::string masterServer;
} network;
void loadDefaults(bool doApply=true);
void load(bool doApply=true, const std::string &overrideFile="");
void save();
void apply();
};
#endif