summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Dombrowski <stefan@uni-bonn.de>2010-09-13 14:19:11 +0200
committerStefan Dombrowski <stefan@uni-bonn.de>2010-09-13 14:19:11 +0200
commitaf176c1f344a78a352ecaa6f252054f5ac38ec73 (patch)
treec4f42886095ca9e2d114e9b403977e6db3cc2cd1
parente93253b36b73d7335d98a3c73d532a1bbd7212a5 (diff)
downloadmana-af176c1f344a78a352ecaa6f252054f5ac38ec73.tar.gz
mana-af176c1f344a78a352ecaa6f252054f5ac38ec73.tar.bz2
mana-af176c1f344a78a352ecaa6f252054f5ac38ec73.tar.xz
mana-af176c1f344a78a352ecaa6f252054f5ac38ec73.zip
Avoid loading non-existing music and minimaps
Reviewed-by: Thorbjorn
-rw-r--r--src/game.cpp7
-rw-r--r--src/gui/minimap.cpp3
-rw-r--r--src/sound.cpp7
3 files changed, 9 insertions, 8 deletions
diff --git a/src/game.cpp b/src/game.cpp
index 026b0017..8e856dc0 100644
--- a/src/game.cpp
+++ b/src/game.cpp
@@ -958,7 +958,12 @@ void Game::changeMap(const std::string &mapPath)
std::string oldMusic = mCurrentMap ? mCurrentMap->getMusicFile() : "";
std::string newMusic = newMap ? newMap->getMusicFile() : "";
if (newMusic != oldMusic)
- sound.playMusic(newMusic);
+ {
+ if (newMusic.empty())
+ sound.stopMusic();
+ else
+ sound.playMusic(newMusic);
+ }
delete mCurrentMap;
mCurrentMap = newMap;
diff --git a/src/gui/minimap.cpp b/src/gui/minimap.cpp
index 35844f64..8713d3f9 100644
--- a/src/gui/minimap.cpp
+++ b/src/gui/minimap.cpp
@@ -106,7 +106,8 @@ void Minimap::setMap(Map *map)
if (minimapName.empty() && resman->exists(tempname))
minimapName = tempname;
- mMapImage = resman->getImage(minimapName);
+ if (!minimapName.empty())
+ mMapImage = resman->getImage(minimapName);
}
if (mMapImage)
diff --git a/src/sound.cpp b/src/sound.cpp
index d3542a48..fa39e49b 100644
--- a/src/sound.cpp
+++ b/src/sound.cpp
@@ -195,12 +195,7 @@ void Sound::stopMusic()
logger->log("Sound::stopMusic()");
- if (mMusic)
- {
- Mix_HaltMusic();
- Mix_FreeMusic(mMusic);
- mMusic = NULL;
- }
+ haltMusic();
}
void Sound::fadeInMusic(const std::string &path, int ms)