private void StartGame_Click(object sender, RoutedEventArgs e) { try { WriteConfig writeConfig = new WriteConfig(_errorHandler); writeConfig.UpdateLauncherConfig(new Dictionary<string, string>() { { "<lastLaunchGame>", (string)ListOfMods.SelectedItem }, { "<lastLaunchMode>", (string)ListOfLaunchMode.SelectedItem } }); writeConfig.WriteConfigBySelectionGame(ListOfMods.SelectedValue.ToString(), _configReader.Games, _configReader.ListBaseConfigDictionary); var hdMode = _configReader.ReadHdMode(); switch (hdMode) { case "WithOutHD": writeConfig.WriteConfigBySelectionGame(ListOfMods.SelectedValue.ToString(), _configReader.Games, _configReader.ListWithOutHdConfigDictionary); break; case "WithHDWithDefaultSight": writeConfig.WriteConfigBySelectionGame(ListOfMods.SelectedValue.ToString(), _configReader.Games, _configReader.ListWithHdWithDefaultSightConfigDictionary); break; case "WithHDWithSmallSight": writeConfig.WriteConfigBySelectionGame(ListOfMods.SelectedValue.ToString(), _configReader.Games, _configReader.ListWithHdWithSmallSightConfigDictionary); break; case "WithHDWithHardcoreSight": writeConfig.WriteConfigBySelectionGame(ListOfMods.SelectedValue.ToString(), _configReader.Games, _configReader.ListWithHdWithHardcoreSightConfigDictionary); break; case "WithHDWithOvalSight": writeConfig.WriteConfigBySelectionGame(ListOfMods.SelectedValue.ToString(), _configReader.Games, _configReader.ListWithHdWithOvalSightConfigDictionary); break; } var fullScreenList = new List<Dictionary<string, string>>(); for (var i = 0; i < _configReader.Games.Length; i++) { fullScreenList.Add(new Dictionary<string, string>() {{"r_fullScreen", _configReader.FullScreen}}); } writeConfig.WriteConfigBySelectionGame(ListOfMods.SelectedValue.ToString(), _configReader.Games, fullScreenList); string parametr = string.Empty; string console = string.Empty; if (ListOfLaunchMode.SelectedIndex == 0) { parametr = " /AFFINITY 0x2"; } if (_configReader.Console) { console = "-console"; } string command = String.Format("{0} {1} {2} {3}", "/C start", parametr, "\"Ex Machina\" " + _configReader.ExeName, console); Process cmd = new Process(); cmd.StartInfo.WorkingDirectory = Directory.GetCurrentDirectory(); cmd.StartInfo.FileName = "cmd.exe"; cmd.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; cmd.StartInfo.Arguments = command; cmd.Start(); this.Close(); } catch (Exception ex) { _errorHandler.CallErrorWindows(ex, "StartGame_Click"); } }
private void Save_Click(object sender, RoutedEventArgs e) { try { WriteConfig writeConfig = new WriteConfig(_errorHandler); var resolution = ResolutionComboBox.SelectedItem.ToString().Split('×'); _gameSettings.DesiredHeight = Convert.ToInt32(resolution[1]); _gameSettings.DesiredWidth = Convert.ToInt32(resolution[0]); _gameSettings.Height = Convert.ToInt32(resolution[1]); _gameSettings.Width = Convert.ToInt32(resolution[0]); _gameSettings.LsViewDistanceDivider = ViewDistanceSlider.Value; _gameSettings.ProjectorsFarDist = Convert.ToInt32(ProjectorsFarDistSlider.Value); _gameSettings.GrassDrawDist = GrassDrawDistSlider.Value; switch ((string)WaterQualityComboBox.SelectedItem) { case "Низкое": _gameSettings.WaterQuality = 1; break; case "Среднее": _gameSettings.WaterQuality = 2; break; case "Высокое": _gameSettings.WaterQuality = 3; break; } switch ((string)ShadowsQualityComboBox.SelectedItem) { case "Низкое": _gameSettings.DsShadows = false; _gameSettings.DetShadowTexSz = 512; _gameSettings.LgtShadowTexSz = 256; break; case "Среднее": _gameSettings.DsShadows = true; _gameSettings.DetShadowTexSz = 512; _gameSettings.LgtShadowTexSz = 256; break; case "Высокое": _gameSettings.DsShadows = true; _gameSettings.DetShadowTexSz = 1024; _gameSettings.LgtShadowTexSz = 512; break; } _gameSettings.ShadowBlurCoeff = ShadowBlurCoeffSlider.Value; switch ((string)PostEffectBloomComboBox.SelectedItem) { case "Низкое": _gameSettings.PostEffectBloom = 0; break; case "Среднее": _gameSettings.PostEffectBloom = 1; break; case "Высокое": _gameSettings.PostEffectBloom = 2; break; } switch ((string)SmoothingComboBox.SelectedItem) { case "Отключено": _gameSettings.MultiSamplesNum = 0; break; case "×2": _gameSettings.MultiSamplesNum = 2; break; case "×4": _gameSettings.MultiSamplesNum = 4; break; case "×8": _gameSettings.MultiSamplesNum = 8; break; } switch ((string)TexturesFilterComboBox.SelectedItem) { case "Билинейная": _gameSettings.TexturesFilter = 4; _gameSettings.ShaderMacro1 = "MIP_FILTER Point"; break; case "Трилинейная": _gameSettings.TexturesFilter = 5; _gameSettings.ShaderMacro1 = "MIP_FILTER Linear"; break; case "Анизотропная": _gameSettings.TexturesFilter = 3; _gameSettings.ShaderMacro1 = "MIP_FILTER Linear"; break; } _gameSettings.Gamma = GammaGammaSlider.Value; if (AutoPlayVideoCheckBox.IsChecked != null) _gameSettings.AutoPlayVideo = (bool)AutoPlayVideoCheckBox.IsChecked; if (DoNotLoadMainmenuLevelCheckBox.IsChecked != null) _gameSettings.DoNotLoadMainmenuLevel = (bool)!DoNotLoadMainmenuLevelCheckBox.IsChecked; _gameSettings.Fov = FovSlider.Value; if (SwitchCameraAllowCheckBox.IsChecked != null) _gameSettings.SwitchCameraAllow = (bool)SwitchCameraAllowCheckBox.IsChecked; _gameSettings.CamSpeed = Convert.ToInt32(CamSpeedSlider.Value); _gameSettings.Volume = Convert.ToInt32(MusicVolumeSlider.Value); _gameSettings.Volume3D = Convert.ToInt32(EffectVolumeSlider.Value); _gameSettings.Volume2D = Convert.ToInt32(SpeakVolumeSlider.Value); _gameSettings.SaveSettingsToConfig(); if (HdCheckBox.IsChecked != null && (bool)HdCheckBox.IsChecked) { string sightQualityToConfig; switch ((string)SightComboBox.SelectedItem) { case "Маленький": sightQualityToConfig = "WithHDWithSmallSight"; break; case "Овальный": sightQualityToConfig = "WithHDWithOvalSight"; break; case "Реалистичный": sightQualityToConfig = "WithHDWithHardcoreSight"; break; default: sightQualityToConfig = "WithHDWithDefaultSight"; break; } writeConfig.UpdateLauncherConfig(new Dictionary<string, string>() { { "<launcherHDMode>", sightQualityToConfig } }); } else { writeConfig.UpdateLauncherConfig(new Dictionary<string, string>() { { "<launcherHDMode>", "WithOutHD" } }); } this.Close(); } catch (Exception ex) { _errorHandler.CallErrorWindows(ex, "Save_Click"); this.Close(); } }