diff --git a/Subsurface/Source/Screens/EditMapScreen.cs b/Subsurface/Source/Screens/EditMapScreen.cs index 25579070e..b3097a063 100644 --- a/Subsurface/Source/Screens/EditMapScreen.cs +++ b/Subsurface/Source/Screens/EditMapScreen.cs @@ -314,6 +314,10 @@ namespace Barotrauma } SoundPlayer.OverrideMusicType = "none"; + for (int i = 0; i < Sounds.SoundManager.DefaultSourceCount; i++) + { + Sounds.SoundManager.Pause(i); + } cam.UpdateTransform(); } @@ -333,6 +337,10 @@ namespace Barotrauma if (wiringMode) ToggleWiringMode(); SoundPlayer.OverrideMusicType = null; + for (int i = 0; i < Sounds.SoundManager.DefaultSourceCount; i++) + { + Sounds.SoundManager.Resume(i); + } if (dummyCharacter != null) { diff --git a/Subsurface/Source/Utils/SaveUtil.cs b/Subsurface/Source/Utils/SaveUtil.cs index 3a4a3a5bb..b78fee054 100644 --- a/Subsurface/Source/Utils/SaveUtil.cs +++ b/Subsurface/Source/Utils/SaveUtil.cs @@ -22,9 +22,19 @@ namespace Barotrauma fileName = Path.Combine(SaveFolder, fileName); string tempPath = Path.Combine(SaveFolder, "temp"); - - Directory.CreateDirectory(tempPath); + DirectoryInfo dir = new DirectoryInfo(tempPath); + + Directory.CreateDirectory(tempPath); + try + { + ClearFolder(tempPath); + } + catch + { + + } + try { if (Submarine.MainSub != null) @@ -274,5 +284,22 @@ namespace Barotrauma using (GZipStream zipStream = new GZipStream(inFile, CompressionMode.Decompress, true)) while (DecompressFile(sDir, zipStream, progress)) ; } + + private static void ClearFolder(string FolderName) + { + DirectoryInfo dir = new DirectoryInfo(FolderName); + + foreach (FileInfo fi in dir.GetFiles()) + { + fi.IsReadOnly = false; + fi.Delete(); + } + + foreach (DirectoryInfo di in dir.GetDirectories()) + { + ClearFolder(di.FullName); + di.Delete(); + } + } } }