Remove static Game.ModData references from widget logic.

This commit is contained in:
Paul Chote
2016-02-17 02:39:13 +00:00
parent ff2aabda9b
commit 84b470017f
20 changed files with 78 additions and 67 deletions

View File

@@ -20,6 +20,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic
{
public class InstallFromCDLogic : ChromeLogic
{
readonly ModData modData;
readonly string modId;
readonly Widget panel;
readonly ProgressBarWidget progressBar;
@@ -30,8 +31,9 @@ namespace OpenRA.Mods.Common.Widgets.Logic
readonly ContentInstaller installData;
[ObjectCreator.UseCtor]
public InstallFromCDLogic(Widget widget, Action afterInstall, string modId)
public InstallFromCDLogic(Widget widget, ModData modData, Action afterInstall, string modId)
{
this.modData = modData;
this.modId = modId;
installData = ModMetadata.AllMods[modId].Content;
this.afterInstall = afterInstall;
@@ -92,11 +94,10 @@ namespace OpenRA.Mods.Common.Widgets.Logic
insertDiskContainer.IsVisible = () => false;
installingContainer.IsVisible = () => true;
progressBar.Percentage = 0;
var modData = Game.ModData;
new Thread(() =>
{
using (var cabExtractor = new InstallShieldCABExtractor(Game.ModData.ModFiles, source))
using (var cabExtractor = new InstallShieldCABExtractor(modData.ModFiles, source))
{
var denom = installData.InstallShieldCABFileIds.Count;
var extractFiles = installData.ExtractFilesFromCD;
@@ -152,7 +153,6 @@ 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;