diff options
author | drumsetmonkey <abelleisle@roadrunner.com> | 2016-02-23 07:29:25 -0500 |
---|---|---|
committer | drumsetmonkey <abelleisle@roadrunner.com> | 2016-02-23 07:29:25 -0500 |
commit | f67648a124655305c3e8947fe312b97ccf74e2fd (patch) | |
tree | e2c2a006698836070b3ce651ac0fe89d192da6bc /src/config.cpp | |
parent | 0075f9e7997d01fa2105bff38e40a3d5b8b421e6 (diff) | |
parent | 0d77d11b708e57546d8267e957230c30bc5d048c (diff) |
Villages!
Diffstat (limited to 'src/config.cpp')
-rw-r--r-- | src/config.cpp | 39 |
1 files changed, 21 insertions, 18 deletions
diff --git a/src/config.cpp b/src/config.cpp index ca6db1b..72a071d 100644 --- a/src/config.cpp +++ b/src/config.cpp @@ -9,9 +9,9 @@ extern unsigned int SCREEN_WIDTH; extern unsigned int SCREEN_HEIGHT; extern bool FULLSCREEN; -extern float VOLUME_MASTER; -extern float VOLUME_MUSIC; -extern float VOLUME_SFX; +extern float VOLUME_MASTER; +extern float VOLUME_MUSIC; +extern float VOLUME_SFX; XMLDocument xml; XMLElement *scr; @@ -19,6 +19,7 @@ XMLElement *vol; void readConfig(){ unsigned int uval; + float fval; bool bval; xml.LoadFile("config/settings.xml"); @@ -36,32 +37,34 @@ void readConfig(){ if(xml.FirstChildElement("hline")->QueryUnsignedAttribute("size",&uval) == XML_NO_ERROR) HLINE = uval; else HLINE = 3; - - /*SCREEN_WIDTH = scr->UnsignedAttribute("width"); - SCREEN_HEIGHT = scr->UnsignedAttribute("height"); - FULLSCREEN = scr->BoolAttribute("fullscreen"); - HLINE = xml.FirstChildElement("hline")->UnsignedAttribute("size");*/ vol = xml.FirstChildElement("volume"); - VOLUME_MASTER = vol->FirstChildElement("master")->FloatAttribute("volume"); - VOLUME_MUSIC = vol->FirstChildElement("music")->FloatAttribute("volume"); - VOLUME_SFX = vol->FirstChildElement("sfx")->FloatAttribute("volume"); - std::cout<<"Loading font through settings.xml..."<<std::endl; + if(vol->FirstChildElement("master")->QueryFloatAttribute("volume",&fval) == XML_NO_ERROR) + VOLUME_MASTER = fval; + else VOLUME_MASTER = 50; + if(vol->FirstChildElement("music")->QueryFloatAttribute("volume",&fval) == XML_NO_ERROR) + VOLUME_MUSIC = fval; + else VOLUME_MUSIC = 50; + if(vol->FirstChildElement("sfx")->QueryFloatAttribute("volume",&fval) == XML_NO_ERROR) + VOLUME_SFX = fval; + else VOLUME_SFX = 50; + ui::initFonts(); ui::setFontFace(xml.FirstChildElement("font")->Attribute("path")); + updateConfig(); } void updateConfig(){ - vol->FirstChildElement("master")->SetAttribute("volume",VOLUME_MASTER); - vol->FirstChildElement("music")->SetAttribute("volume",VOLUME_MUSIC); - vol->FirstChildElement("sfx")->SetAttribute("volume", VOLUME_SFX); - Mix_Volume(0,VOLUME_MASTER); - Mix_Volume(1,VOLUME_SFX); - Mix_VolumeMusic(VOLUME_MUSIC); + Mix_Volume(1,VOLUME_SFX * (VOLUME_MASTER/100.0f)); + Mix_VolumeMusic(VOLUME_MUSIC * (VOLUME_MASTER/100.0f)); } void saveConfig(){ + vol->FirstChildElement("master")->SetAttribute("volume",VOLUME_MASTER); + vol->FirstChildElement("music")->SetAttribute("volume",VOLUME_MUSIC); + vol->FirstChildElement("sfx")->SetAttribute("volume", VOLUME_SFX); + xml.SaveFile("config/settings.xml", false); } |