diff options
Diffstat (limited to 'src/engine.cpp')
-rw-r--r-- | src/engine.cpp | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/src/engine.cpp b/src/engine.cpp index 3d18f8ad..1743bcc1 100644 --- a/src/engine.cpp +++ b/src/engine.cpp @@ -268,14 +268,21 @@ Map *Engine::getCurrentMap() void Engine::setCurrentMap(Map *newMap) { + std::string oldMusic = ""; + if (mCurrentMap) { + oldMusic = mCurrentMap->getProperty("music"); + logger->log("old: %s",oldMusic.c_str()); + } + std::string newMusic = newMap->getProperty("music"); + logger->log("new: %s",newMusic.c_str()); + if(newMusic!=oldMusic) { + logger->log("new: %s",newMusic.c_str()); + newMusic = std::string(TMW_DATADIR) + "data/music/" + newMusic; + sound.playMusic(newMusic.c_str(), -1); + } + mCurrentMap = newMap; minimap->setMap(mCurrentMap); - std::string musicFile = newMap->getProperty("music"); - - if(musicFile!="") { - musicFile = std::string(TMW_DATADIR) + "data/music/" + musicFile; - sound.playMusic(musicFile.c_str(), -1); - } } void Engine::logic() |