diff options
author | Clyne Sullivan <tullivan99@gmail.com> | 2015-12-03 20:06:19 -0500 |
---|---|---|
committer | Clyne Sullivan <tullivan99@gmail.com> | 2015-12-03 20:06:19 -0500 |
commit | 897802f67d502c070eac0c14b43113d521a711ef (patch) | |
tree | ae3314c8c98bbd66277205a5a6415cf8d333f4a4 /src/world.cpp | |
parent | dcd2d1e9ed9df2b67a48acc442c9e816b677b208 (diff) |
fixed sounds
Diffstat (limited to 'src/world.cpp')
-rw-r--r-- | src/world.cpp | 24 |
1 files changed, 15 insertions, 9 deletions
diff --git a/src/world.cpp b/src/world.cpp index ff4c461..5f8d44c 100644 --- a/src/world.cpp +++ b/src/world.cpp @@ -65,6 +65,7 @@ void World::load(FILE *s){ World::World(void){ bgm = NULL; + bgmObj = NULL; /* * Nullify pointers to other worlds. @@ -286,24 +287,29 @@ void World::update(Player *p,unsigned int delta){ void World::setBGM(const char *path){ if(!bgm) delete[] bgm; - if(!path){ + //if(!path){ bgm = new char[strlen(path) + 1]; strcpy(bgm,path); bgmObj = Mix_LoadMUS(bgm); - if(!bgmObj){ - std::cout<<"Failed to load song file "<<path<<": "<<Mix_GetError()<<std::endl; - } - } + //}else std::cout<<path; } +static Mix_Music *bgmC; + void World::bgmPlay(void){ - Mix_VolumeMusic(15); - Mix_PlayMusic(bgmObj,-1); // Loop infinitely + if(bgmObj && bgmC != bgmObj){ + Mix_VolumeMusic(15); + Mix_PlayMusic(bgmObj,-1); // Loop infinitely + bgmC = bgmObj; + } } void World::bgmStop(void){ - Mix_FreeMusic(bgmObj); - bgmObj = NULL; + if(bgmObj){ + if(bgmC != bgmObj){ + Mix_FreeMusic(bgmObj); + } + } } int worldShade = 0; |