private void btnClientPath_Click(object sender, EventArgs e) { DialogResult result = AppContextManager.AskPath(new ClientFolderBrowserDialogSettings { Description = Resources.SelectClientFolder }); if (result == DialogResult.OK) { LaunchManager.SetClientIcon(); this.ShowOrFocus(); } }
private void btnGamePath_Click(object sender, EventArgs e) { DialogResult result = AppContextManager.AskPath(new GameFolderBrowserDialogSettings { Description = string.Format(Resources.SelectExecutableFolderFormat, AppContextManager.Context.Value.Executable.Name) }); if (result == DialogResult.OK) { LaunchManager.SetClientIcon(); this.ShowOrFocus(); } }
private void guiHome_FormClosing(object sender, FormClosingEventArgs e) { LaunchManager.GameProcess?.Dispose(); // reset SettingsManager.InvalidateXmlData(); HistoryManager.RestorePatchedFiles(); HistoryManager.Delete(); // dispose loggers so we can delete empty logs AppContextManager.Dispose(); SettingsManager.Dispose(); HistoryManager.Dispose(); LaunchManager.Dispose(); PatchManager.Dispose(); PreferencesManager.Dispose(); }
public LaunchManager() { this.Initialize(); State = Bindable.Variable(LaunchManagerState.Idle); // TODO: is this needed on windows? // the following is needed on linux... the current directory must be the Mono executable, which is bad. string assemblyLocation = Assembly.GetExecutingAssembly().Location; string assemblyFolder = Path.GetDirectoryName(assemblyLocation); Environment.CurrentDirectory = assemblyFolder; // also sets up AppContextManager PatchManager.Initialize(); // TODO: could just Thread.Sleep instead of calling it again, but LiteDB migration is on roadmap, so whatever AppContextManager.Setup(); }
public static void Initialize() { // we need to run setup here so we can combine the registry path with the executable filename Logger.Debug("Trying to set up AppContextManager for first time. Due to serialization speed, this could fail. Retry after initializing PatchManager."); AppContextManager.Setup(); // try to get game path from xml settings string gamePath = SettingsManager.XmlData.GamePath; if (!File.Exists(gamePath)) { // try to get game path from windows registry if (Environment.OSVersion.Platform == PlatformID.Win32NT) { if (string.IsNullOrEmpty(gamePath) || !Directory.Exists(gamePath)) { gamePath = SettingsManager.GetGamePathFromRegistry(); SettingsManager.XmlData.GamePath = gamePath; } } // try to get game path from user if (string.IsNullOrEmpty(gamePath) || !Directory.Exists(gamePath)) { DialogResult result = AppContextManager.AskPath(new GameFolderBrowserDialogSettings { Description = "Select folder containing game executable" }); if (result == DialogResult.Cancel) { LaunchManager.Exit(); } } } AddPatchesFromFolder(); }