Unstable 0.17.6.0

This commit is contained in:
Markus Isberg
2022-04-04 16:46:08 +09:00
parent 44ded0225a
commit 95764d1fa8
78 changed files with 1265 additions and 703 deletions
@@ -5,6 +5,7 @@ using System;
using System.Collections.Generic;
using Barotrauma.IO;
using System.Linq;
using System.Threading;
using System.Xml.Linq;
namespace Barotrauma
@@ -479,6 +480,36 @@ namespace Barotrauma
return sound.Play(volume ?? sound.BaseGain, far, freqMult ?? 1.0f, position, muffle: muffle);
}
public static void DisposeDisabledMusic()
{
bool musicDisposed = false;
for (int i = 0; i < currentMusic.Length; i++)
{
var music = currentMusic[i];
if (music is null) { continue; }
if (!SoundPrefab.Prefabs.Contains(music))
{
musicChannel[i].Dispose();
musicDisposed = true;
currentMusic[i] = null;
}
}
for (int i = 0; i < targetMusic.Length; i++)
{
var music = targetMusic[i];
if (music is null) { continue; }
if (!SoundPrefab.Prefabs.Contains(music))
{
targetMusic[i] = null;
}
}
if (musicDisposed) { Thread.Sleep(60); }
}
private static void UpdateMusic(float deltaTime)
{
if (musicClips == null || (GameMain.SoundManager?.Disabled ?? true)) { return; }
@@ -121,6 +121,7 @@ namespace Barotrauma
}
if (prefabSelectors.ContainsKey(p.ElementName)) { prefabSelectors[p.ElementName].RemoveIfContains(p); }
UpdateSoundsWithTag();
SoundPlayer.DisposeDisabledMusic();
},
onSort: () =>
{