Switch to custom configuration and remove unneeded configs

This commit is contained in:
Norbi Peti 2021-05-16 01:08:27 +02:00
parent 0551535455
commit a27f3449be
12 changed files with 64 additions and 238 deletions

23
GCMM/Configuration.cs Normal file
View file

@ -0,0 +1,23 @@
using System.IO;
using Newtonsoft.Json;
namespace GCMM
{
public class Configuration
{
public string GamePath { get; set; }
public AutoPatchingState AutoPatch { get; set; } = AutoPatchingState.Unspecified;
public static Configuration Load()
{
if (File.Exists("configuration.json"))
return JsonConvert.DeserializeObject<Configuration>(File.ReadAllText("configuration.json"));
return new Configuration();
}
public void Save()
{
File.WriteAllText("configuration.json", JsonConvert.SerializeObject(this));
}
}
}

View file

@ -1,15 +1,4 @@
using GCMM.Properties; using System.Windows.Forms;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace GCMM namespace GCMM
{ {

View file

@ -38,18 +38,6 @@
<Compile Update="SettingsForm.cs"> <Compile Update="SettingsForm.cs">
<SubType>Form</SubType> <SubType>Form</SubType>
</Compile> </Compile>
<Compile Update="Properties\Settings.Designer.cs">
<DesignTimeSharedInput>True</DesignTimeSharedInput>
<AutoGen>True</AutoGen>
<DependentUpon>Settings.settings</DependentUpon>
</Compile>
</ItemGroup>
<ItemGroup>
<None Update="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
</None>
</ItemGroup> </ItemGroup>
</Project> </Project>

View file

@ -1,16 +1,10 @@
using GCMM.Properties; using System;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.ComponentModel; using System.ComponentModel;
using System.Diagnostics; using System.Diagnostics;
using System.Drawing; using System.Drawing;
using System.IO; using System.IO;
using System.IO.Compression;
using System.Linq; using System.Linq;
using System.Net;
using System.Reflection;
using System.Text.RegularExpressions;
using System.Threading.Tasks; using System.Threading.Tasks;
using System.Windows.Forms; using System.Windows.Forms;
@ -22,8 +16,11 @@ namespace GCMM
{ {
InitializeComponent(); InitializeComponent();
resources = new ComponentResourceManager(typeof(MainForm)); resources = new ComponentResourceManager(typeof(MainForm));
Configuration = Configuration.Load();
} }
public Configuration Configuration { get; }
private readonly ComponentResourceManager resources; private readonly ComponentResourceManager resources;
private readonly Dictionary<string, ModInfo> mods = new Dictionary<string, ModInfo>(); private readonly Dictionary<string, ModInfo> mods = new Dictionary<string, ModInfo>();
private readonly ModInfo gcipa = new ModInfo { Author = "modtainers", Name = "GCIPA" }; private readonly ModInfo gcipa = new ModInfo { Author = "modtainers", Name = "GCIPA" };
@ -58,40 +55,34 @@ You may also want to verify the game's files in the launcher.
public async Task LoadEverything(bool evenMods) public async Task LoadEverything(bool evenMods)
{ {
if (Settings.Default.NeedsUpdate)
{
Settings.Default.Upgrade();
Settings.Default.NeedsUpdate = false;
Settings.Default.Save();
}
modlist.Items.Clear(); modlist.Items.Clear();
mods.Clear(); //This method may get called twice when ran from the command line mods.Clear(); //This method may get called twice when ran from the command line
UpdateButton(installbtn, false); UpdateButton(installbtn, false);
modinfobox.Text = defaultInfo; modinfobox.Text = defaultInfo;
if (string.IsNullOrWhiteSpace(Settings.Default.GamePath) || GetExe() == null) if (string.IsNullOrWhiteSpace(Configuration.GamePath) || GetExe() == null)
{ {
Settings.Default.GamePath = GetGameFolder(); Configuration.GamePath = GetGameFolder();
if (string.IsNullOrWhiteSpace(Settings.Default.GamePath)) if (string.IsNullOrWhiteSpace(Configuration.GamePath))
{ {
DialogUtils.ShowWarning(resources.GetString("Game_not_found"), ""); DialogUtils.ShowWarning(resources.GetString("Game_not_found"), "");
Settings.Default.GamePath = SelectGameFolder(); Configuration.GamePath = SelectGameFolder();
} }
else else
DialogUtils.ShowInfo(string.Format(resources.GetString("Found_game_at"), Settings.Default.GamePath), ""); DialogUtils.ShowInfo(string.Format(resources.GetString("Found_game_at"), Configuration.GamePath), "");
Settings.Default.Save(); Configuration.Save();
} }
if (Settings.Default.AutoLaunch == AutoPatchingState.Unspecified) if(string.IsNullOrWhiteSpace(Configuration.GamePath))
{
Settings.Default.AutoLaunch = AutoPatchingState.Disabled;
if (DialogUtils.ShowYesNoQuestion(resources.GetString("Change_launch_settings_question"),
resources.GetString("Change_launch_settings_title")))
EnableDisableAutoPatchingWithDialog(true);
}
if(string.IsNullOrWhiteSpace(Settings.Default.GamePath))
{ {
status.Text = resources.GetString("Status_Game_not_found"); status.Text = resources.GetString("Status_Game_not_found");
return; return;
} }
if (Configuration.AutoPatch == AutoPatchingState.Unspecified)
{
Configuration.AutoPatch = AutoPatchingState.Disabled;
if (DialogUtils.ShowYesNoQuestion(resources.GetString("Change_launch_settings_question"),
resources.GetString("Change_launch_settings_title")))
EnableDisableAutoPatchingWithDialog(true);
}
DeleteEmptyPluginsDir(out bool pexists, out bool dexists); DeleteEmptyPluginsDir(out bool pexists, out bool dexists);
if (!pexists && dexists) if (!pexists && dexists)
unpatched.Checked = true; //It will call the event but that won't do anything unpatched.Checked = true; //It will call the event but that won't do anything

View file

@ -1,11 +1,9 @@
using GCMM.Properties; using Newtonsoft.Json;
using Newtonsoft.Json;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.IO; using System.IO;
using System.IO.Compression; using System.IO.Compression;
using System.Linq; using System.Linq;
using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using System.Windows.Forms; using System.Windows.Forms;
@ -57,7 +55,7 @@ namespace GCMM
if (!modFound) if (!modFound)
if (MessageBox.Show("The mod was not found in the downloaded archive. It likely means it's using a different name for the dll file. The mod manager will not be able to track this mod if you continue. Do you want to continue?", "Mod not found in archive", MessageBoxButtons.YesNo) == DialogResult.No) if (MessageBox.Show("The mod was not found in the downloaded archive. It likely means it's using a different name for the dll file. The mod manager will not be able to track this mod if you continue. Do you want to continue?", "Mod not found in archive", MessageBoxButtons.YesNo) == DialogResult.No)
return; return;
ExtractMod(archive, pluginOnly ? plugins.FullName : Settings.Default.GamePath, mod); ExtractMod(archive, pluginOnly ? plugins.FullName : Configuration.GamePath, mod);
} }
File.Delete(tmppath); File.Delete(tmppath);
} }

View file

@ -1,5 +1,4 @@
using GCMM.Properties; using Newtonsoft.Json.Linq;
using Newtonsoft.Json.Linq;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Diagnostics; using System.Diagnostics;
@ -8,7 +7,6 @@ using System.IO;
using System.Linq; using System.Linq;
using System.Net; using System.Net;
using System.Reflection; using System.Reflection;
using System.Runtime.CompilerServices;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using System.Windows.Forms; using System.Windows.Forms;

View file

@ -1,16 +1,11 @@
using GCMM.Properties; using System;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Diagnostics; using System.Diagnostics;
using System.IO.Compression; using System.IO.Compression;
using System.IO; using System.IO;
using System.Linq; using System.Linq;
using System.Net; using System.Net;
using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using System.Windows.Forms; using System.Windows.Forms;
using System.Reflection;
namespace GCMM namespace GCMM
{ {
@ -117,7 +112,7 @@ namespace GCMM
await client.DownloadFileTaskAsync(url, "IPA.zip"); await client.DownloadFileTaskAsync(url, "IPA.zip");
using (var fs = new FileStream("IPA.zip", FileMode.Open)) using (var fs = new FileStream("IPA.zip", FileMode.Open))
using (var za = new ZipArchive(fs)) using (var za = new ZipArchive(fs))
za.ExtractToDirectory(Settings.Default.GamePath, true); //Overwrite files that were left from a previous install of the patcher za.ExtractToDirectory(Configuration.GamePath, true); //Overwrite files that were left from a previous install of the patcher
File.Delete("IPA.zip"); File.Delete("IPA.zip");
} }
} }
@ -139,7 +134,7 @@ namespace GCMM
UseShellExecute = false, UseShellExecute = false,
RedirectStandardError = true, RedirectStandardError = true,
RedirectStandardOutput = true, RedirectStandardOutput = true,
WorkingDirectory = Settings.Default.GamePath, WorkingDirectory = Configuration.GamePath,
CreateNoWindow = true CreateNoWindow = true
}; };
var process = Process.Start(psi); var process = Process.Start(psi);

View file

@ -1,14 +1,9 @@
using GCMM.Properties; using System;
using Microsoft.Win32;
using System;
using System.Collections.Generic;
using System.Diagnostics; using System.Diagnostics;
using System.Drawing; using System.Drawing;
using System.IO; using System.IO;
using System.Linq; using System.Linq;
using System.Net; using System.Net;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks; using System.Threading.Tasks;
using System.Windows.Forms; using System.Windows.Forms;
@ -63,7 +58,7 @@ namespace GCMM
{ {
DialogUtils.ShowInfo(resources.GetString("Change_launch_settings_done"), DialogUtils.ShowInfo(resources.GetString("Change_launch_settings_done"),
resources.GetString("Change_launch_settings_title")); resources.GetString("Change_launch_settings_title"));
Settings.Default.AutoLaunch = enable ? AutoPatchingState.Enabled : AutoPatchingState.Disabled; Configuration.AutoPatch = enable ? AutoPatchingState.Enabled : AutoPatchingState.Disabled;
} }
else else
DialogUtils.ShowError(resources.GetString("Change_launch_settings_error"), DialogUtils.ShowError(resources.GetString("Change_launch_settings_error"),
@ -155,8 +150,6 @@ namespace GCMM
public WebClient GetClient() public WebClient GetClient()
{ {
var client = new WebClient(); var client = new WebClient();
if (!Settings.Default.UseProxy)
client.Proxy = null;
client.Headers.Clear(); client.Headers.Clear();
client.Headers[HttpRequestHeader.Accept] = "application/json"; client.Headers[HttpRequestHeader.Accept] = "application/json";
client.BaseAddress = "https://git.exmods.org"; client.BaseAddress = "https://git.exmods.org";
@ -198,7 +191,7 @@ namespace GCMM
/// <returns></returns> /// <returns></returns>
public string GamePath(string path, string gamepath = null) public string GamePath(string path, string gamepath = null)
{ {
return ((gamepath ?? Settings.Default.GamePath) + path).Replace('\\', Path.DirectorySeparatorChar); return ((gamepath ?? Configuration.GamePath) + path).Replace('\\', Path.DirectorySeparatorChar);
} }
public string GetExe(string path = null) public string GetExe(string path = null)

View file

@ -1,98 +0,0 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace GCMM.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.8.1.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
public static Settings Default {
get {
return defaultInstance;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("")]
public string GamePath {
get {
return ((string)(this["GamePath"]));
}
set {
this["GamePath"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("")]
public string WinePath {
get {
return ((string)(this["WinePath"]));
}
set {
this["WinePath"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("False")]
public bool UseProxy {
get {
return ((bool)(this["UseProxy"]));
}
set {
this["UseProxy"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("True")]
public bool NeedsUpdate {
get {
return ((bool)(this["NeedsUpdate"]));
}
set {
this["NeedsUpdate"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("0")]
public int SteamUserID {
get {
return ((int)(this["SteamUserID"]));
}
set {
this["SteamUserID"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("0")]
public AutoPatchingState AutoLaunch {
get {
return ((AutoPatchingState)(this["AutoLaunch"]));
}
set {
this["AutoLaunch"] = value;
}
}
}
}

View file

@ -1,25 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="GCMM.Properties" GeneratedClassName="Settings">
<Profiles />
<Settings>
<Setting Name="GamePath" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="WinePath" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="UseProxy" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="NeedsUpdate" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">True</Value>
</Setting>
<Setting Name="SteamUserID" Type="System.Int32" Scope="User">
<Value Profile="(Default)">0</Value>
</Setting>
<Setting Name="AutoLaunch" Type="GCMM.AutoPatchingState" Scope="User">
<Value Profile="(Default)">0</Value>
</Setting>
</Settings>
</SettingsFile>

View file

@ -34,14 +34,13 @@
this.browsebtn = new System.Windows.Forms.Button(); this.browsebtn = new System.Windows.Forms.Button();
this.savebtn = new System.Windows.Forms.Button(); this.savebtn = new System.Windows.Forms.Button();
this.cancelbtn = new System.Windows.Forms.Button(); this.cancelbtn = new System.Windows.Forms.Button();
this.useProxy = new System.Windows.Forms.CheckBox();
this.autopatching = new System.Windows.Forms.CheckBox(); this.autopatching = new System.Windows.Forms.CheckBox();
this.SuspendLayout(); this.SuspendLayout();
// //
// label1 // label1
// //
this.label1.AutoSize = true; this.label1.AutoSize = true;
this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238))); this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte) (238)));
this.label1.Location = new System.Drawing.Point(12, 15); this.label1.Location = new System.Drawing.Point(12, 15);
this.label1.Name = "label1"; this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(116, 20); this.label1.Size = new System.Drawing.Size(116, 20);
@ -70,7 +69,7 @@
// //
this.savebtn.DialogResult = System.Windows.Forms.DialogResult.OK; this.savebtn.DialogResult = System.Windows.Forms.DialogResult.OK;
this.savebtn.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Green; this.savebtn.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Green;
this.savebtn.FlatAppearance.MouseOverBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(40)))), ((int)(((byte)(0))))); this.savebtn.FlatAppearance.MouseOverBackColor = System.Drawing.Color.FromArgb(((int) (((byte) (0)))), ((int) (((byte) (40)))), ((int) (((byte) (0)))));
this.savebtn.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.savebtn.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.savebtn.Location = new System.Drawing.Point(270, 113); this.savebtn.Location = new System.Drawing.Point(270, 113);
this.savebtn.Name = "savebtn"; this.savebtn.Name = "savebtn";
@ -84,7 +83,7 @@
// //
this.cancelbtn.DialogResult = System.Windows.Forms.DialogResult.Cancel; this.cancelbtn.DialogResult = System.Windows.Forms.DialogResult.Cancel;
this.cancelbtn.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Green; this.cancelbtn.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Green;
this.cancelbtn.FlatAppearance.MouseOverBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(40)))), ((int)(((byte)(0))))); this.cancelbtn.FlatAppearance.MouseOverBackColor = System.Drawing.Color.FromArgb(((int) (((byte) (0)))), ((int) (((byte) (40)))), ((int) (((byte) (0)))));
this.cancelbtn.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.cancelbtn.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.cancelbtn.Location = new System.Drawing.Point(352, 113); this.cancelbtn.Location = new System.Drawing.Point(352, 113);
this.cancelbtn.Name = "cancelbtn"; this.cancelbtn.Name = "cancelbtn";
@ -94,20 +93,10 @@
this.cancelbtn.UseVisualStyleBackColor = true; this.cancelbtn.UseVisualStyleBackColor = true;
this.cancelbtn.Click += new System.EventHandler(this.cancelbtn_Click); this.cancelbtn.Click += new System.EventHandler(this.cancelbtn_Click);
// //
// useProxy
//
this.useProxy.AutoSize = true;
this.useProxy.Location = new System.Drawing.Point(12, 49);
this.useProxy.Name = "useProxy";
this.useProxy.Size = new System.Drawing.Size(147, 17);
this.useProxy.TabIndex = 5;
this.useProxy.Text = "Use system proxy settings";
this.useProxy.UseVisualStyleBackColor = true;
//
// autopatching // autopatching
// //
this.autopatching.AutoSize = true; this.autopatching.AutoSize = true;
this.autopatching.Location = new System.Drawing.Point(12, 72); this.autopatching.Location = new System.Drawing.Point(12, 56);
this.autopatching.Name = "autopatching"; this.autopatching.Name = "autopatching";
this.autopatching.Size = new System.Drawing.Size(194, 17); this.autopatching.Size = new System.Drawing.Size(194, 17);
this.autopatching.TabIndex = 6; this.autopatching.TabIndex = 6;
@ -123,7 +112,6 @@
this.CancelButton = this.cancelbtn; this.CancelButton = this.cancelbtn;
this.ClientSize = new System.Drawing.Size(439, 148); this.ClientSize = new System.Drawing.Size(439, 148);
this.Controls.Add(this.autopatching); this.Controls.Add(this.autopatching);
this.Controls.Add(this.useProxy);
this.Controls.Add(this.cancelbtn); this.Controls.Add(this.cancelbtn);
this.Controls.Add(this.savebtn); this.Controls.Add(this.savebtn);
this.Controls.Add(this.browsebtn); this.Controls.Add(this.browsebtn);
@ -131,7 +119,7 @@
this.Controls.Add(this.label1); this.Controls.Add(this.label1);
this.ForeColor = System.Drawing.Color.Lime; this.ForeColor = System.Drawing.Color.Lime;
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); this.Icon = ((System.Drawing.Icon) (resources.GetObject("$this.Icon")));
this.MaximizeBox = false; this.MaximizeBox = false;
this.MinimizeBox = false; this.MinimizeBox = false;
this.Name = "SettingsForm"; this.Name = "SettingsForm";
@ -142,7 +130,6 @@
this.Load += new System.EventHandler(this.Form1_Load); this.Load += new System.EventHandler(this.Form1_Load);
this.ResumeLayout(false); this.ResumeLayout(false);
this.PerformLayout(); this.PerformLayout();
} }
#endregion #endregion
@ -152,7 +139,6 @@
private System.Windows.Forms.Button browsebtn; private System.Windows.Forms.Button browsebtn;
private System.Windows.Forms.Button savebtn; private System.Windows.Forms.Button savebtn;
private System.Windows.Forms.Button cancelbtn; private System.Windows.Forms.Button cancelbtn;
private System.Windows.Forms.CheckBox useProxy;
private System.Windows.Forms.CheckBox autopatching; private System.Windows.Forms.CheckBox autopatching;
} }
} }

View file

@ -1,14 +1,4 @@
using GCMM.Properties; using System;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using System.Windows.Forms; using System.Windows.Forms;
namespace GCMM namespace GCMM
@ -24,10 +14,9 @@ namespace GCMM
private void Form1_Load(object sender, EventArgs e) private void Form1_Load(object sender, EventArgs e)
{ {
gamelocation.Text = Settings.Default.GamePath; mainForm = (MainForm) Owner;
useProxy.Checked = Settings.Default.UseProxy; gamelocation.Text = mainForm.Configuration.GamePath;
mainForm = Owner as MainForm; autopatchingEnabled = mainForm.Configuration.AutoPatch == AutoPatchingState.Enabled;
autopatchingEnabled = Settings.Default.AutoLaunch == AutoPatchingState.Enabled;
autopatching.Checked = autopatchingEnabled; autopatching.Checked = autopatchingEnabled;
} }
@ -38,11 +27,10 @@ namespace GCMM
private void savebtn_Click(object sender, EventArgs e) private void savebtn_Click(object sender, EventArgs e)
{ {
Settings.Default.GamePath = gamelocation.Text; mainForm.Configuration.GamePath = gamelocation.Text;
Settings.Default.UseProxy = useProxy.Checked;
if (autopatching.Checked != autopatchingEnabled) if (autopatching.Checked != autopatchingEnabled)
mainForm.EnableDisableAutoPatchingWithDialog(autopatching.Checked); mainForm.EnableDisableAutoPatchingWithDialog(autopatching.Checked);
Settings.Default.Save(); mainForm.Configuration.Save();
Close(); Close();
} }