From a0141318d53626eef0b8368e3dff3ba0505a138c Mon Sep 17 00:00:00 2001 From: Paul Chote Date: Mon, 15 Feb 2016 03:11:31 +0000 Subject: [PATCH] Pass FileSystem in to InstallUtils. --- OpenRA.Mods.Common/InstallUtils.cs | 9 +++++---- .../Widgets/Logic/Installation/InstallFromCDLogic.cs | 7 ++++--- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/OpenRA.Mods.Common/InstallUtils.cs b/OpenRA.Mods.Common/InstallUtils.cs index 05b2e7e102..fd7c58593b 100644 --- a/OpenRA.Mods.Common/InstallUtils.cs +++ b/OpenRA.Mods.Common/InstallUtils.cs @@ -14,6 +14,7 @@ using System.IO; using System.Linq; using ICSharpCode.SharpZipLib; using ICSharpCode.SharpZipLib.Zip; +using OpenRA.FileSystem; namespace OpenRA.Mods.Common { @@ -55,15 +56,15 @@ namespace OpenRA.Mods.Common } // TODO: The package should be mounted into its own context to avoid name collisions with installed files - public static bool ExtractFromPackage(string srcPath, string package, Dictionary filesByDirectory, + public static bool ExtractFromPackage(FileSystem.FileSystem fileSystem, string srcPath, string package, Dictionary filesByDirectory, string destPath, bool overwrite, ContentInstaller.FilenameCase caseModifier, Action onProgress, Action onError) { Directory.CreateDirectory(destPath); Log.Write("debug", "Mounting {0}".F(srcPath)); - Game.ModData.ModFiles.Mount(srcPath); + fileSystem.Mount(srcPath); Log.Write("debug", "Mounting {0}".F(package)); - Game.ModData.ModFiles.Mount(package); + fileSystem.Mount(package); foreach (var directory in filesByDirectory) { @@ -86,7 +87,7 @@ namespace OpenRA.Mods.Common Directory.CreateDirectory(containingDir); - using (var sourceStream = Game.ModData.ModFiles.Open(file)) + using (var sourceStream = fileSystem.Open(file)) using (var destStream = File.Create(dest)) { Log.Write("debug", "Extracting {0} to {1}".F(file, dest)); diff --git a/OpenRA.Mods.Common/Widgets/Logic/Installation/InstallFromCDLogic.cs b/OpenRA.Mods.Common/Widgets/Logic/Installation/InstallFromCDLogic.cs index 09647ea574..20dd26061c 100644 --- a/OpenRA.Mods.Common/Widgets/Logic/Installation/InstallFromCDLogic.cs +++ b/OpenRA.Mods.Common/Widgets/Logic/Installation/InstallFromCDLogic.cs @@ -91,6 +91,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic insertDiskContainer.IsVisible = () => false; installingContainer.IsVisible = () => true; progressBar.Percentage = 0; + var modData = Game.ModData; new Thread(() => { @@ -131,7 +132,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic statusLabel.GetText = () => "Extracting {0}".F(filename); var destFile = Platform.ResolvePath("^", "Content", modId, filename.ToLowerInvariant()); cabExtractor.ExtractFile(uint.Parse(archive[0]), destFile); - InstallUtils.ExtractFromPackage(source, destFile, extractFiles, destDir, overwrite, installData.OutputFilenameCase, onProgress, onError); + InstallUtils.ExtractFromPackage(modData.ModFiles, source, destFile, extractFiles, destDir, overwrite, installData.OutputFilenameCase, onProgress, onError); progressBar.Percentage += installPercent; } } @@ -150,7 +151,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic retryButton.IsDisabled = () => true; insertDiskContainer.IsVisible = () => false; installingContainer.IsVisible = () => true; - + var modData = Game.ModData; var dest = Platform.ResolvePath("^", "Content", modId); var copyFiles = installData.CopyFilesFromCD; @@ -189,7 +190,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic if (!string.IsNullOrEmpty(extractPackage)) { - if (!InstallUtils.ExtractFromPackage(source, extractPackage, extractFiles, dest, + if (!InstallUtils.ExtractFromPackage(modData.ModFiles, source, extractPackage, extractFiles, dest, overwrite, installData.OutputFilenameCase, onProgress, onError)) { onError("Extracting files from CD failed.");