diff --git a/apps/openmw/engine.cpp b/apps/openmw/engine.cpp index 89068ce53..57723cac9 100644 --- a/apps/openmw/engine.cpp +++ b/apps/openmw/engine.cpp @@ -117,11 +117,7 @@ bool OMW::Engine::frameRenderingQueued (const Ogre::FrameEvent& evt) // sound if (mUseSound) - { - mEnvironment.mSoundManager->playPlaylist(); - mEnvironment.mSoundManager->update (evt.timeSinceLastFrame); - } // update GUI Ogre::RenderWindow* window = mOgre->getWindow(); diff --git a/apps/openmw/mwsound/soundmanager.cpp b/apps/openmw/mwsound/soundmanager.cpp index c0a1a8a83..b4a2409ca 100644 --- a/apps/openmw/mwsound/soundmanager.cpp +++ b/apps/openmw/mwsound/soundmanager.cpp @@ -384,6 +384,10 @@ namespace MWSound { timePassed = 0.0f; + // Make sure music is still playing + if(!mMusic || !mMusic->isPlaying()) + startRandomTitle(); + Ogre::Camera *cam = mEnvironment.mWorld->getPlayer().getRenderer()->getCamera(); Ogre::Vector3 nPos, nDir, nUp; nPos = cam->getRealPosition(); diff --git a/apps/openmw/mwsound/soundmanager.hpp b/apps/openmw/mwsound/soundmanager.hpp index 2a474e5f5..2f850b569 100644 --- a/apps/openmw/mwsound/soundmanager.hpp +++ b/apps/openmw/mwsound/soundmanager.hpp @@ -83,10 +83,9 @@ namespace MWSound bool isMusicPlaying(); ///< Returns true if music is playing - void playPlaylist(std::string playlist=""); + void playPlaylist(std::string playlist); ///< Start playing music from the selected folder /// \param name of the folder that contains the playlist - /// if none is set then it plays from the current playlist void say(MWWorld::Ptr reference, const std::string& filename); ///< Make an actor say some text.