private void btnConnect_Click(object sender, EventArgs e) { if (_currentServer == null) { return; } var settings = new ArmaStartSettings { Windowed = chkWindow.Checked, ShowScriptErrors = chkScriptErrors.Checked, NoPause = chkNoSplash.Checked, Profile = listProfiles.SelectedIndex >= 0 ? listProfiles.SelectedItem.ToString() : "" }; new ArmaLauncher().Connect(txtArmaPath.Text, _currentServer, settings); }
public static void StartArma( Modpack modpack, IEnumerable <Addon> addons, DirectoryInfo basePath, IEnumerable <string> arguments, bool connectIsChecked, IEnumerable <string> userAddons, bool set64bit, bool battleEye) { if (!Process.GetProcessesByName("Steam").Any()) { MessageBox.Show( "Steam is not running. Arma will probably not launch.", "Steam not running", MessageBoxButton.OK, MessageBoxImage.Warning); } var addonFolders = basePath.EnumerateDirectories(); var settings = new ArmaStartSettings(); settings.Mods = addons.Select(addon => addonFolders.First(folder => folder.Name == addon.Name).FullName).ToList(); settings.Mods.AddRange(userAddons); settings.OtherArgs.AddRange(arguments); settings.OtherArgs.Add(modpack.AdditionalParams); var server = ServerInfo(modpack); try { var exe = "arma3battleye.exe"; if (!battleEye) { exe = set64bit ? "arma3_x64.exe" : "arma3.exe"; } new ArmaLauncher().Connect( Path.Combine(GetArma3Path(), exe), connectIsChecked ? server : null, settings, true, set64bit: set64bit, battleEye: battleEye); } catch (ArmaRunningException ex) { Log.Warning(ex, "Arma already running"); MessageBox.Show( "Arma already running!", "Error launching Arma", MessageBoxButton.OK, MessageBoxImage.Error); } catch (ArmaNotFoundException ex) { Log.Warning(ex, "Arma path not found"); MessageBox.Show( "Arma path not found in the registry! Have you launched Arma at least once without the launcher before?", "Error launching Arma", MessageBoxButton.OK, MessageBoxImage.Error); } }