do not play bg music files twice until all files are played
This commit is contained in:
1 parent
351aa6e799
commit
0e73a77c0b
1 file changed
+13
-1
@@ -16,6 +16,7 @@ namespace Vocaluxe.Base
|
||||
private static string _CurrentMusicFilePath = String.Empty;
|
||||
|
||||
private static List<string> _AllFileNames = new List<string>();
|
||||
private static List<string> _NotPlayedFileNames = new List<string>();
|
||||
private static List<string> _BGMusicFileNames = new List<string>();
|
||||
|
||||
private static bool _OwnMusicAdded;
|
||||
@@ -84,7 +85,12 @@ namespace Vocaluxe.Base
|
||||
{
|
||||
Stop();
|
||||
|
||||
_CurrentMusicFilePath = _AllFileNames[CGame.Rand.Next(_AllFileNames.Count)];
|
||||
if (_NotPlayedFileNames.Count == 0)
|
||||
_NotPlayedFileNames.AddRange(_AllFileNames);
|
||||
|
||||
_CurrentMusicFilePath = _NotPlayedFileNames[CGame.Rand.Next(_NotPlayedFileNames.Count)];
|
||||
_NotPlayedFileNames.Remove(_CurrentMusicFilePath);
|
||||
|
||||
_CurrentMusicStream = CSound.Load(_CurrentMusicFilePath);
|
||||
CSound.SetStreamVolume(_CurrentMusicStream, 0f);
|
||||
Play();
|
||||
@@ -105,6 +111,7 @@ namespace Vocaluxe.Base
|
||||
foreach (CSong song in CSongs.AllSongs)
|
||||
{
|
||||
_AllFileNames.Add(song.GetMP3());
|
||||
_NotPlayedFileNames.Add(song.GetMP3());
|
||||
}
|
||||
}
|
||||
_OwnMusicAdded = true;
|
||||
@@ -113,9 +120,13 @@ namespace Vocaluxe.Base
|
||||
public static void RemoveOwnMusic()
|
||||
{
|
||||
_AllFileNames.Clear();
|
||||
_NotPlayedFileNames.Clear();
|
||||
|
||||
if (_BackgroundMusicAdded)
|
||||
{
|
||||
_AllFileNames.AddRange(_BGMusicFileNames);
|
||||
_NotPlayedFileNames.AddRange(_BGMusicFileNames);
|
||||
}
|
||||
|
||||
if (IsPlaying() && !IsBackgroundFile(_CurrentMusicFilePath) || _AllFileNames.Count == 0)
|
||||
Next();
|
||||
@@ -128,6 +139,7 @@ namespace Vocaluxe.Base
|
||||
if (!_BackgroundMusicAdded)
|
||||
{
|
||||
_AllFileNames.AddRange(_BGMusicFileNames);
|
||||
_NotPlayedFileNames.AddRange(_BGMusicFileNames);
|
||||
_BackgroundMusicAdded = true;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user