From 83ee6b758e0c7ab4ebdc4633c85a2fafe17de51b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20Mail=C3=A4nder?= Date: Sat, 2 Jun 2012 21:17:42 +0200 Subject: [PATCH] fix CD rip logic a little will still fail on setup.z --- OpenRA.Mods.D2k/D2kLoadScreen.cs | 1 - .../Widgets/Logic/D2kInstallFromCDLogic.cs | 20 +++++++++++-------- .../Widgets/Logic/D2kInstallLogic.cs | 4 ++-- mods/d2k/chrome/gameinit.yaml | 2 +- 4 files changed, 15 insertions(+), 12 deletions(-) diff --git a/OpenRA.Mods.D2k/D2kLoadScreen.cs b/OpenRA.Mods.D2k/D2kLoadScreen.cs index 146d1e250e..9bd9c709da 100644 --- a/OpenRA.Mods.D2k/D2kLoadScreen.cs +++ b/OpenRA.Mods.D2k/D2kLoadScreen.cs @@ -77,7 +77,6 @@ namespace OpenRA.Mods.D2k { var args = new WidgetArgs() { - { "continueLoading", () => TestAndContinue() }, { "installData", Info } }; Ui.OpenWindow(Info["InstallerMenuWidget"], args); diff --git a/OpenRA.Mods.D2k/Widgets/Logic/D2kInstallFromCDLogic.cs b/OpenRA.Mods.D2k/Widgets/Logic/D2kInstallFromCDLogic.cs index 340a462624..666d18e9bb 100644 --- a/OpenRA.Mods.D2k/Widgets/Logic/D2kInstallFromCDLogic.cs +++ b/OpenRA.Mods.D2k/Widgets/Logic/D2kInstallFromCDLogic.cs @@ -23,14 +23,12 @@ namespace OpenRA.Mods.D2k.Widgets.Logic Widget panel; ProgressBarWidget progressBar; LabelWidget statusLabel; - Action continueLoading; ButtonWidget retryButton, backButton; Widget installingContainer, insertDiskContainer; [ObjectCreator.UseCtor] - public D2kInstallFromCDLogic(Widget widget, Action continueLoading) + public D2kInstallFromCDLogic(Widget widget) { - this.continueLoading = continueLoading; panel = widget.Get("INSTALL_FROMCD_PANEL"); progressBar = panel.Get("PROGRESS_BAR"); statusLabel = panel.Get("STATUS_LABEL"); @@ -46,12 +44,18 @@ namespace OpenRA.Mods.D2k.Widgets.Logic CheckForDisk(); } + public static bool IsValidDisk(string diskRoot) + { + var files = new string[][] { + new [] { diskRoot, "music", "ambush.aud" }, + }; + + return files.All(f => File.Exists(f.Aggregate(Path.Combine))); + } + void CheckForDisk() { - Func ValidDiskFilter = diskRoot => File.Exists(diskRoot+Path.DirectorySeparatorChar+"MAIN.MIX") && - File.Exists(new string[] { diskRoot, "setup", "setup.z" }.Aggregate(Path.Combine)); - - var path = InstallUtils.GetMountedDisk(ValidDiskFilter); + var path = InstallUtils.GetMountedDisk(IsValidDisk); if (path != null) Install(path); @@ -105,7 +109,7 @@ namespace OpenRA.Mods.D2k.Widgets.Logic Game.RunAfterTick(() => { Ui.CloseWindow(); - continueLoading(); + Game.Exit(); }); } catch diff --git a/OpenRA.Mods.D2k/Widgets/Logic/D2kInstallLogic.cs b/OpenRA.Mods.D2k/Widgets/Logic/D2kInstallLogic.cs index 712355ffa7..72eabdf13b 100644 --- a/OpenRA.Mods.D2k/Widgets/Logic/D2kInstallLogic.cs +++ b/OpenRA.Mods.D2k/Widgets/Logic/D2kInstallLogic.cs @@ -17,12 +17,12 @@ namespace OpenRA.Mods.D2k.Widgets.Logic public class D2kInstallLogic { [ObjectCreator.UseCtor] - public D2kInstallLogic(Widget widget, Dictionary installData, Action continueLoading) + public D2kInstallLogic(Widget widget, Dictionary installData) { var panel = widget.Get("INSTALL_PANEL"); var args = new WidgetArgs() { - { "afterInstall", () => { Ui.CloseWindow(); continueLoading(); } }, + { "afterInstall", () => { Ui.CloseWindow(); Game.Exit(); } }, { "installData", installData } }; diff --git a/mods/d2k/chrome/gameinit.yaml b/mods/d2k/chrome/gameinit.yaml index b7b0296b56..94d60d5bb4 100644 --- a/mods/d2k/chrome/gameinit.yaml +++ b/mods/d2k/chrome/gameinit.yaml @@ -67,7 +67,7 @@ Background@INSTALL_PANEL: Y:PARENT_BOTTOM - 45 Width:150 Height:25 - Text:Use CD (will crash) + Text:Use CD (broken) Font:Bold Button@QUIT_BUTTON: X:PARENT_RIGHT - 140