diff --git a/apps/openmw/mwsound/soundmanager.cpp b/apps/openmw/mwsound/soundmanager.cpp index 105dc5a3d0..270a45656b 100644 --- a/apps/openmw/mwsound/soundmanager.cpp +++ b/apps/openmw/mwsound/soundmanager.cpp @@ -266,6 +266,13 @@ namespace MWSound } } + void SoundManager::stopMusic() + { + if (music) + music->stop(); + setPlaylist(); + } + void SoundManager::streamMusicFull(const std::string& filename) { @@ -327,7 +334,11 @@ namespace MWSound { const Files::PathContainer* previousPlaylist; previousPlaylist = mCurrentPlaylist; - if(mMusicLibrary.containsSection(playlist, mFSStrict)) + if (playlist == "") + { + mCurrentPlaylist = mMusicLibrary.section(playlist, mFSStrict); + } + else if(mMusicLibrary.containsSection(playlist, mFSStrict)) { mCurrentPlaylist = mMusicLibrary.section(playlist, mFSStrict); } diff --git a/apps/openmw/mwsound/soundmanager.hpp b/apps/openmw/mwsound/soundmanager.hpp index 39370d755d..29aacb373e 100644 --- a/apps/openmw/mwsound/soundmanager.hpp +++ b/apps/openmw/mwsound/soundmanager.hpp @@ -99,6 +99,9 @@ namespace MWSound MWWorld::Environment& environment); ~SoundManager(); + void stopMusic(); + ///< Stops music if it's playing + void streamMusic(const std::string& filename); ///< Play a soundifle /// \param filename name of a sound file in "Music/" in the data directory.