private void btnSaveInput_Click(object sender, EventArgs e) { string launcherText = File.ReadAllText(Launcher.rootDir + "launcher.cfg"); string[] launcherCfgLines = File.ReadAllLines(Launcher.rootDir + "launcher.cfg"); string cfgText = File.ReadAllText(Launcher.rootDir + "nulldc-1-0-4-en-win\\nullDC.cfg"); string[] cfgLines = File.ReadAllLines(Launcher.rootDir + "nulldc-1-0-4-en-win\\nullDC.cfg"); if (chkCustomCFG.Checked) { if (!launcherText.Contains("custom_cfg")) { launcherText += "custom_cfg=1" + Environment.NewLine; } else { launcherText = launcherText.Replace("custom_cfg=0", "custom_cfg=1"); } } else { if (!launcherText.Contains("custom_cfg")) { launcherText += "custom_cfg=0" + Environment.NewLine; } else { launcherText = launcherText.Replace("custom_cfg=1", "custom_cfg=0"); } } if (chkEnableMapper.Checked) { launcherText = launcherText.Replace("enable_mapper=0", "enable_mapper=1"); launcherText = launcherText.Replace("player1=joy1", "player1=keyboard"); var player1_old = cfgLines.Where(s => s.Contains("player1=")).ToList().First(); cfgText = cfgText.Replace(player1_old, "player1=keyboard"); foreach (GamePadMapping mapping in Launcher.mappings.GamePadMappings) { mapping.Default = false; } ((GamePadMapping)cboGamePadMappings.SelectedValue).Default = true; Launcher.ActiveGamePadMapping = (GamePadMapping)cboGamePadMappings.SelectedValue; var path = Launcher.rootDir + "//GamePadMappingList.xml"; System.Xml.Serialization.XmlSerializer serializer = new System.Xml.Serialization.XmlSerializer(typeof(GamePadMappingList)); StreamWriter writer = new StreamWriter(path); serializer.Serialize(writer.BaseStream, Launcher.mappings); writer.Close(); NetplayLaunchForm.StopMapper(true); NetplayLaunchForm.StartMapper(); } else { launcherText = launcherText.Replace("enable_mapper=1", "enable_mapper=0"); if (cboPlayer1.SelectedValue.ToString() == "joy1") { launcherText = launcherText.Replace("player1=keyboard", "player1=joy1"); } var player1_old = cfgLines.Where(s => s.Contains("player1=")).ToList().First(); cfgText = cfgText.Replace(player1_old, "player1=joy1"); NetplayLaunchForm.StopMapper(); } String p1_val = $"{cboPlayer1.SelectedValue}"; if (p1_val.Length == 0) { p1_val = "NULL"; } var region_old = launcherCfgLines.Where(s => s.Contains("region=")).ToList().First(); String region_val = $"{cboRegion.SelectedValue}"; cfgText = cfgText.Replace(player1_old, "player1=" + p1_val); launcherText = launcherText.Replace(player1_old, "player1=" + p1_val); launcherText = launcherText.Replace(region_old, "region=" + region_val); File.WriteAllText(Launcher.rootDir + "nulldc-1-0-4-en-win\\nullDC.cfg", cfgText); File.WriteAllText(Launcher.rootDir + "launcher.cfg", launcherText); // reload from file cfgLines = File.ReadAllLines(Launcher.rootDir + "nulldc-1-0-4-en-win\\nullDC.cfg"); player1_old = cfgLines.Where(s => s.Contains("player1=")).ToList().First(); backup_old = cfgLines.Where(s => s.Contains("backup=")).ToList().First(); player2_old = cfgLines.Where(s => s.Contains("player2=")).ToList().First(); Launcher.LoadRegionSettings(); Launcher.RestoreFiles(); MessageBox.Show("Main Settings Successfully Saved"); }
public NetplayLaunchForm(bool tray = false, bool controllerSetup = false) { controller = new ControllerEngine(); launcher = new Launcher(); presets = ConnectionPreset.ReadPresetsFile(); StartTray = tray; string launcherCfgText = ""; try { var launcherCfgUri = new System.Uri(Path.Combine(Launcher.rootDir, @"launcher.cfg")); launcherCfgText = File.ReadAllText(launcherCfgUri.LocalPath); } catch (System.IO.DirectoryNotFoundException) { MessageBox.Show("launcher.cfg not found. Please enter a valid root directory."); System.Environment.Exit(1); } if (launcherCfgText.Contains("enable_mapper=1")) { StartMapper(); } if (controllerSetup) { LaunchControllerSetup(true); } else { if (!StartTray) { try { launcher.UpdateLauncher(true); } catch { } if (!Launcher.FilesRestored) { Launcher.RestoreFiles(); } } InitializeComponent(StartTray); //InitializeComponent(); if (StartTray) { this.WindowState = FormWindowState.Minimized; } ReloadRomList(); Launcher.LoadRegionSettings(); if (StartTray) { Process[] processes = Process.GetProcessesByName("nullDC_Win32_Release-NoTrace"); if (processes.Length > 0) { Process nulldcProcess = processes[0]; nulldcProcess.EnableRaisingEvents = true; nulldcProcess.Exited += (sender, e) => { Application.Exit(); }; } } } }