From bf6be0424ff299fadc1f194467cdebd9a4c353a3 Mon Sep 17 00:00:00 2001 From: Paul Chote Date: Sat, 23 Jul 2011 00:49:18 +1200 Subject: [PATCH] Remove file prompting and drop all the remaining utility communication plumbing. --- OpenRA.Game/Game.cs | 4 -- OpenRA.Game/OpenRA.Game.csproj | 1 - OpenRA.Game/Utilities.cs | 50 ------------------ OpenRA.Launcher.Mac/Controller.h | 1 - OpenRA.Launcher.Mac/Controller.m | 30 +---------- .../Release/OpenRA.app/Contents/MacOS/OpenRA | Bin 76848 -> 68360 bytes .../Resources/English.lproj/MainMenu.nib | Bin 6774 -> 6774 bytes OpenRA.Launcher.Mac/main.m | 6 ++- OpenRA.Mods.RA/Widgets/Logic/GameInitLogic.cs | 29 ++++------ OpenRA.Utility/Command.cs | 15 +----- OpenRA.Utility/Program.cs | 1 - 11 files changed, 15 insertions(+), 122 deletions(-) delete mode 100644 OpenRA.Game/Utilities.cs diff --git a/OpenRA.Game/Game.cs b/OpenRA.Game/Game.cs index 18be2fd1fb..fea8b57bbe 100755 --- a/OpenRA.Game/Game.cs +++ b/OpenRA.Game/Game.cs @@ -27,8 +27,6 @@ namespace OpenRA { public static class Game { - public static Utilities Utilities; - public static int CellSize { get { return modData.Manifest.TileSize; } } public static ModData modData; @@ -244,8 +242,6 @@ namespace OpenRA Console.WriteLine("Platform is {0}", Platform.CurrentPlatform); AppDomain.CurrentDomain.AssemblyResolve += FileSystem.ResolveAssembly; - - Utilities = new Utilities(args.GetValue("UtilityPath", "OpenRA.Utility.exe")); Settings = new Settings(Platform.SupportDir + "settings.yaml", args); Settings.Save(); diff --git a/OpenRA.Game/OpenRA.Game.csproj b/OpenRA.Game/OpenRA.Game.csproj index 8289d20004..8ce96ce671 100755 --- a/OpenRA.Game/OpenRA.Game.csproj +++ b/OpenRA.Game/OpenRA.Game.csproj @@ -177,7 +177,6 @@ - diff --git a/OpenRA.Game/Utilities.cs b/OpenRA.Game/Utilities.cs deleted file mode 100644 index ab96758dd9..0000000000 --- a/OpenRA.Game/Utilities.cs +++ /dev/null @@ -1,50 +0,0 @@ -#region Copyright & License Information -/* - * Copyright 2007-2011 The OpenRA Developers (see AUTHORS) - * This file is part of OpenRA, which is free software. It is made - * available to you under the terms of the GNU General Public License - * as published by the Free Software Foundation. For more information, - * see COPYING. - */ -#endregion - -using System; -using System.Diagnostics; - -namespace OpenRA -{ - public class Utilities - { - readonly string Utility; - - public Utilities(string utility) - { - Utility = utility; - } - - public void PromptFilepathAsync(string title, Action withPath) - { - ExecuteUtility("--display-filepicker \"{0}\"".F(title), withPath); - } - - void ExecuteUtility(string args, Action onComplete) - { - try - { - Process p = new Process(); - p.StartInfo.FileName = Utility; - p.StartInfo.Arguments = args; - p.StartInfo.CreateNoWindow = true; - p.StartInfo.UseShellExecute = false; - p.StartInfo.RedirectStandardOutput = true; - p.EnableRaisingEvents = true; - p.Exited += (_,e) => - { - onComplete(p.StandardOutput.ReadToEnd().Trim()); - }; - p.Start(); - } - catch(System.ComponentModel.Win32Exception) {} // Don't crash if the process fails - } - } -} diff --git a/OpenRA.Launcher.Mac/Controller.h b/OpenRA.Launcher.Mac/Controller.h index 784e429512..df1d562fae 100644 --- a/OpenRA.Launcher.Mac/Controller.h +++ b/OpenRA.Launcher.Mac/Controller.h @@ -15,7 +15,6 @@ IBOutlet NSWindow *window; } -- (void)launchFilePicker:(NSArray *)args; - (void)launch; - (BOOL)initMono; - (BOOL)shouldHideMenubar; diff --git a/OpenRA.Launcher.Mac/Controller.m b/OpenRA.Launcher.Mac/Controller.m index 9a5cfee9b7..3e2a965484 100644 --- a/OpenRA.Launcher.Mac/Controller.m +++ b/OpenRA.Launcher.Mac/Controller.m @@ -19,7 +19,6 @@ extern char **environ; - (void)applicationDidFinishLaunching:(NSNotification *)aNotification { - NSArray *args = [[NSProcessInfo processInfo] arguments]; gamePath = [[NSUserDefaults standardUserDefaults] stringForKey:@"gamepath"]; // Try and launch the game @@ -37,36 +36,10 @@ extern char **environ; [[NSApplication sharedApplication] terminate:self]; } - // Ingame requests for native dialogs - if ([args containsObject:@"--display-filepicker"]) - [self launchFilePicker:args]; - else - [self launch]; - + [self launch]; [NSApp terminate: nil]; } -- (void)launchFilePicker:(NSArray *)args -{ - [NSApp activateIgnoringOtherApps:YES]; - - if ([self shouldHideMenubar]) - [NSMenu setMenuBarVisible:NO]; - - NSOpenPanel *op = [NSOpenPanel openPanel]; - [op setLevel:CGShieldingWindowLevel()]; - [op setAllowsMultipleSelection:NO]; - - NSUInteger a = [args indexOfObject:@"--display-filepicker"]; - if (a != NSNotFound) - [op setTitle:[args objectAtIndex:a+1]]; - - if ([op runModal] == NSFileHandlingPanelOKButton) - printf("%s\n", [[[op URL] path] UTF8String]); - - [NSApp terminate: nil]; -} - - (BOOL)shouldHideMenubar { NSTask *task = [[[NSTask alloc] init] autorelease]; @@ -113,7 +86,6 @@ extern char **environ; [self shouldHideMenubar] ? @"--hide-menubar" : @"--no-hide-menubar", gamePath, monoPath, - [NSString stringWithFormat:@"UtilityPath=%@", [[NSBundle mainBundle] executablePath]], nil]; FSRef appRef; CFURLGetFSRef((CFURLRef)[NSURL URLWithString:[[[NSBundle mainBundle] executablePath] stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding]], &appRef); diff --git a/OpenRA.Launcher.Mac/build/Release/OpenRA.app/Contents/MacOS/OpenRA b/OpenRA.Launcher.Mac/build/Release/OpenRA.app/Contents/MacOS/OpenRA index b9b0a89b45affcf241f8b816372aebc71202370a..d6f38b4caf9227347a58780dbf9ee191f2ad67f9 100755 GIT binary patch literal 68360 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 OQ>I#){1Xb)_WuAJ8ne#; literal 76848 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 Q#s5)R)g<}fY615D57VyP^Z)<= diff --git a/OpenRA.Launcher.Mac/build/Release/OpenRA.app/Contents/Resources/English.lproj/MainMenu.nib b/OpenRA.Launcher.Mac/build/Release/OpenRA.app/Contents/Resources/English.lproj/MainMenu.nib index 1a8f36a358930c27c98c5ee5f9556da3f07d8553..931c5c3ab7701d9dab83aa4fad9d7b59e59ff16e 100644 GIT binary patch delta 2247 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 */ - if (argc >= 6 && strcmp(argv[1], "--launch") == 0) + if (argc > 1 && strcmp(argv[1], "--launch") == 0) { + if (argc < 5) + exit(1); + /* Change into the game dir */ chdir(argv[3]); @@ -23,7 +26,6 @@ int main(int argc, char *argv[]) argv[4], "--debug", "OpenRA.Game.exe", - argv[5], NULL }; diff --git a/OpenRA.Mods.RA/Widgets/Logic/GameInitLogic.cs b/OpenRA.Mods.RA/Widgets/Logic/GameInitLogic.cs index 3846987f52..ed05608262 100644 --- a/OpenRA.Mods.RA/Widgets/Logic/GameInitLogic.cs +++ b/OpenRA.Mods.RA/Widgets/Logic/GameInitLogic.cs @@ -66,11 +66,8 @@ namespace OpenRA.Mods.RA.Widgets.Logic if (FileSystem.Exists(Info.TestFile)) { Game.LoadShellMap(); - if (Info.InstallMode != "cnc") - { - Widget.ResetAll(); - Widget.OpenWindow("MAINMENU_BG"); - } + Widget.ResetAll(); + Widget.OpenWindow("MAINMENU_BG"); } else { @@ -90,13 +87,9 @@ namespace OpenRA.Mods.RA.Widgets.Logic void PromptForCD() { - Game.Utilities.PromptFilepathAsync("Select MAIN.MIX on the CD", path => - { - if (!string.IsNullOrEmpty(path)) - Game.RunAfterTick(() => InstallFromCD(Path.GetDirectoryName(path))); - }); + // TODO: Automatically search for cds } - + void InstallFromCD(string path) { var window = Widget.OpenWindow("INIT_COPY"); @@ -112,14 +105,10 @@ namespace OpenRA.Mods.RA.Widgets.Logic { switch (Info.InstallMode) { - case "ra": - if (InstallRAPackages(window, path, Info.ResolvedPackagePath)) - Game.RunAfterTick(TestAndContinue); - break; - case "cnc": - if (InstallCncPackages(window, path, Info.ResolvedPackagePath)) - Game.RunAfterTick(TestAndContinue); - break; +// case "ra": +// if (InstallPackages(window, path, Info.ResolvedPackagePath)) +// Game.RunAfterTick(TestAndContinue); +// break; default: ShowError(window, "Installing from CD not supported"); break; @@ -198,7 +187,7 @@ namespace OpenRA.Mods.RA.Widgets.Logic e => ShowError(window, e)); } - bool InstallRAPackages(Widget window, string source, string dest) + bool InstallPackages(Widget window, string source, string dest) { if (!CopyFiles(window, Path.Combine(source, "INSTALL"), new string[] {"REDALERT.MIX"}, dest)) return false; diff --git a/OpenRA.Utility/Command.cs b/OpenRA.Utility/Command.cs index df8c67c88f..fda30f8c51 100644 --- a/OpenRA.Utility/Command.cs +++ b/OpenRA.Utility/Command.cs @@ -24,19 +24,6 @@ namespace OpenRA.Utility { static class Command { - public static void DisplayFilepicker(string[] args) - { - if (args.Length < 2) - { - Console.WriteLine("Error: Invalid syntax"); - return; - } - - using (var dialog = new OpenFileDialog() { Title = args[1] }) - if (dialog.ShowDialog() == DialogResult.OK) - Console.WriteLine(dialog.FileName); - } - public static void Settings(string[] args) { if (args.Length < 2) @@ -122,7 +109,7 @@ namespace OpenRA.Utility bitmap.Save(dest); } } - + public static void ConvertFormat2ToFormat80(string[] args) { var src = args[1]; diff --git a/OpenRA.Utility/Program.cs b/OpenRA.Utility/Program.cs index 6c76c17d8a..112d3313cb 100644 --- a/OpenRA.Utility/Program.cs +++ b/OpenRA.Utility/Program.cs @@ -21,7 +21,6 @@ namespace OpenRA.Utility { var actions = new Dictionary>() { - { "--display-filepicker", Command.DisplayFilepicker }, { "--settings-value", Command.Settings }, { "--shp", Command.ConvertPngToShp }, { "--png", Command.ConvertShpToPng },