aboutsummaryrefslogtreecommitdiffstats
path: root/src/world.cpp
diff options
context:
space:
mode:
authorClyne Sullivan <tullivan99@gmail.com>2015-12-03 20:06:19 -0500
committerClyne Sullivan <tullivan99@gmail.com>2015-12-03 20:06:19 -0500
commit897802f67d502c070eac0c14b43113d521a711ef (patch)
treeae3314c8c98bbd66277205a5a6415cf8d333f4a4 /src/world.cpp
parentdcd2d1e9ed9df2b67a48acc442c9e816b677b208 (diff)
fixed sounds
Diffstat (limited to 'src/world.cpp')
-rw-r--r--src/world.cpp24
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;