Merge pull request #1411 from OpenMW/revert-1401-master

Reverts OpenMW/openmw#1401
pull/280/head
scrawl 7 years ago committed by GitHub
commit 2c11ed2454

@ -271,6 +271,7 @@ namespace MWSound
return sound;
}
// Gets the combined volume settings for the given sound type
float SoundManager::volumeFromType(PlayType type) const
{
@ -297,6 +298,7 @@ namespace MWSound
return volume;
}
void SoundManager::stopMusic()
{
if(mMusic)
@ -365,9 +367,7 @@ namespace MWSound
}
mMusicFiles[mCurrentPlaylist] = filelist;
mMusicToPlay.reserve(mMusicToPlay.size() + filelist.size());
for(int it = 0; it < filelist.size(); it++)
mMusicToPlay.push_back(it);
}
else
filelist = mMusicFiles[mCurrentPlaylist];
@ -375,23 +375,15 @@ namespace MWSound
if(filelist.empty())
return;
// Do a Fisher-Yates shuffle
if(mMusicFiles.size() == 0)
int i = Misc::Rng::rollDice(filelist.size());
// Don't play the same music track twice in a row
if (filelist[i] == mLastPlayedMusic)
{
mMusicToPlay.reserve(filelist.size());
for (int it = 0; it < filelist.size(); it++)
mMusicToPlay.push_back(it);
i = (i+1) % filelist.size();
}
int i = Misc::Rng::rollDice(mMusicToPlay.size());
// Fix last played music being the same after another shuffle
if(filelist[mMusicToPlay[i]] == mLastPlayedMusic)
i = (i+1) % mMusicToPlay.size();
advanceMusic(filelist[mMusicToPlay[i]]);
mMusicToPlay[i] = mMusicToPlay.back();
mMusicToPlay.pop_back();
advanceMusic(filelist[i]);
}
bool SoundManager::isMusicPlaying()

@ -49,7 +49,6 @@ namespace MWSound
// Caches available music tracks by <playlist name, (sound files) >
std::map<std::string, std::vector<std::string> > mMusicFiles;
std::vector<int> mMusicToPlay; // The list of music files not played yet
std::string mLastPlayedMusic; // The music file that was last played
float mMasterVolume;

Loading…
Cancel
Save