summaryrefslogtreecommitdiff
path: root/src/engine.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/engine.cpp')
-rw-r--r--src/engine.cpp19
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()