From ba7df965e73e121820f20e3a0e57631d078c11db Mon Sep 17 00:00:00 2001 From: Clyne Sullivan Date: Fri, 12 Feb 2016 08:47:15 -0500 Subject: more saving/loading --- src/config.cpp | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) (limited to 'src/config.cpp') diff --git a/src/config.cpp b/src/config.cpp index ca6db1b..efa2523 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,18 +37,23 @@ 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..."<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; + + Mix_Volume(0,VOLUME_MASTER); + Mix_Volume(1,VOLUME_SFX); + Mix_VolumeMusic(VOLUME_MUSIC); + ui::initFonts(); ui::setFontFace(xml.FirstChildElement("font")->Attribute("path")); } -- cgit v1.2.3 From 0d77d11b708e57546d8267e957230c30bc5d048c Mon Sep 17 00:00:00 2001 From: drumsetmonkey Date: Fri, 19 Feb 2016 00:12:50 -0500 Subject: Everything changes based off of master volume, volume updates in menu --- include/ui.h | 2 -- main.cpp | 2 -- src/config.cpp | 19 ++++++++----------- src/ui.cpp | 15 ++------------- src/world.cpp | 4 ++-- 5 files changed, 12 insertions(+), 30 deletions(-) (limited to 'src/config.cpp') diff --git a/include/ui.h b/include/ui.h index 38a4932..ccc16af 100644 --- a/include/ui.h +++ b/include/ui.h @@ -158,8 +158,6 @@ namespace ui { * Draw various menu items */ void quitGame(); - void quitMenu(); - void optionsMenuF(); void drawMenu(Menu* menu); diff --git a/main.cpp b/main.cpp index 19fe8d4..805fa00 100644 --- a/main.cpp +++ b/main.cpp @@ -377,8 +377,6 @@ int main(/*int argc, char *argv[]*/){ delete[] shaderSource; glEnable(GL_MULTISAMPLE); - - Mix_Volume(0,VOLUME_MASTER); /* * Create all the worlds, entities, mobs, and the player. This function is defined in diff --git a/src/config.cpp b/src/config.cpp index efa2523..72a071d 100644 --- a/src/config.cpp +++ b/src/config.cpp @@ -49,25 +49,22 @@ void readConfig(){ if(vol->FirstChildElement("sfx")->QueryFloatAttribute("volume",&fval) == XML_NO_ERROR) VOLUME_SFX = fval; else VOLUME_SFX = 50; - - Mix_Volume(0,VOLUME_MASTER); - Mix_Volume(1,VOLUME_SFX); - Mix_VolumeMusic(VOLUME_MUSIC); - + 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); } diff --git a/src/ui.cpp b/src/ui.cpp index 3d635ab..2d00453 100644 --- a/src/ui.cpp +++ b/src/ui.cpp @@ -648,11 +648,7 @@ namespace ui { updateConfig(); saveConfig(); } - - void quitMenu(){ - currentMenu = NULL; - } - + menuItem createButton(vec2 l, dim2 d, Color c, const char* t, menuFunc f){ menuItem temp; temp.member = 0; @@ -717,20 +713,13 @@ namespace ui { return temp; } - char* stradd(const char* a, const char* b){ - size_t len = strlen(a) + strlen(b); - char *ret = (char*)malloc(len * sizeof(char) + 1); - *ret = '\0'; - - return strcat(strcat(ret,a),b); - } - /* * Draws the menu */ void drawMenu(Menu *menu){ setFontSize(24); + updateConfig(); SDL_Event e; mouse.x=premouse.x+offset.x-(SCREEN_WIDTH/2); diff --git a/src/world.cpp b/src/world.cpp index 25b7d35..51efaf2 100644 --- a/src/world.cpp +++ b/src/world.cpp @@ -381,12 +381,12 @@ void World::bgmPlay(World *prev){ if(prev){ if(bgm != prev->bgm){ Mix_FadeOutMusic(800); - Mix_VolumeMusic(50); + //Mix_VolumeMusic(50); Mix_PlayMusic(bgmObj,-1); // Loop infinitely } }else{ Mix_FadeOutMusic(800); - Mix_VolumeMusic(50); + //Mix_VolumeMusic(50); Mix_PlayMusic(bgmObj,-1); // Loop infinitely } } -- cgit v1.2.3