diff --git a/src/BizHawk.Client.Common/config/Config.cs b/src/BizHawk.Client.Common/config/Config.cs index 50c5753087..76a50dad9c 100644 --- a/src/BizHawk.Client.Common/config/Config.cs +++ b/src/BizHawk.Client.Common/config/Config.cs @@ -34,14 +34,6 @@ namespace BizHawk.Client.Common new[] { CoreNames.TurboNyma, CoreNames.HyperNyma, CoreNames.PceHawk }) }; - public static string DefaultIniPath { get; private set; } = Path.Combine(PathUtils.ExeDirectoryPath, "config.ini"); - - // Shenanigans - public static void SetDefaultIniPath(string newDefaultIniPath) - { - DefaultIniPath = newDefaultIniPath; - } - public Config() { if (AllTrollers.Count == 0 diff --git a/src/BizHawk.Client.EmuHawk/MainForm.Events.cs b/src/BizHawk.Client.EmuHawk/MainForm.Events.cs index 0a64d975a7..cb55ef7c6a 100644 --- a/src/BizHawk.Client.EmuHawk/MainForm.Events.cs +++ b/src/BizHawk.Client.EmuHawk/MainForm.Events.cs @@ -1122,7 +1122,7 @@ namespace BizHawk.Client.EmuHawk private void SaveConfigAsMenuItem_Click(object sender, EventArgs e) { - var path = Config.DefaultIniPath; + var path = _getConfigPath(); using var sfd = new SaveFileDialog { InitialDirectory = Path.GetDirectoryName(path), @@ -1139,12 +1139,12 @@ namespace BizHawk.Client.EmuHawk private void LoadConfigMenuItem_Click(object sender, EventArgs e) { - LoadConfigFile(Config.DefaultIniPath); + LoadConfigFile(_getConfigPath()); } private void LoadConfigFromMenuItem_Click(object sender, EventArgs e) { - var path = Config.DefaultIniPath; + var path = _getConfigPath(); using var ofd = new OpenFileDialog { InitialDirectory = Path.GetDirectoryName(path), diff --git a/src/BizHawk.Client.EmuHawk/MainForm.cs b/src/BizHawk.Client.EmuHawk/MainForm.cs index 7a33676678..976e800874 100644 --- a/src/BizHawk.Client.EmuHawk/MainForm.cs +++ b/src/BizHawk.Client.EmuHawk/MainForm.cs @@ -284,6 +284,7 @@ namespace BizHawk.Client.EmuHawk public MainForm( ParsedCLIFlags cliFlags, IGL gl, + Func getConfigPath, Func getGlobalConfig, Action updateGlobalSound, string[] args, @@ -307,6 +308,7 @@ namespace BizHawk.Client.EmuHawk BootGodDb.Initialize(Path.Combine(PathUtils.ExeDirectoryPath, "gamedb")); _argParser = cliFlags; + _getConfigPath = getConfigPath; GL = gl; _updateGlobalSound = updateGlobalSound; @@ -910,6 +912,8 @@ namespace BizHawk.Client.EmuHawk public Action LoadGlobalConfigFromFile { get; set; } + private readonly Func _getConfigPath; + private readonly IGL GL; private readonly ExternalToolManager ExtToolManager; @@ -2465,7 +2469,7 @@ namespace BizHawk.Client.EmuHawk if (string.IsNullOrEmpty(path)) { - path = Config.DefaultIniPath; + path = _getConfigPath(); } ConfigService.Save(path, Config); diff --git a/src/BizHawk.Client.EmuHawk/Program.cs b/src/BizHawk.Client.EmuHawk/Program.cs index 567c107ad1..d909d3be4c 100644 --- a/src/BizHawk.Client.EmuHawk/Program.cs +++ b/src/BizHawk.Client.EmuHawk/Program.cs @@ -130,16 +130,16 @@ namespace BizHawk.Client.EmuHawk new ExceptionBox(e.Message).ShowDialog(); } - if (cliFlags.cmdConfigFile != null) Config.SetDefaultIniPath(cliFlags.cmdConfigFile); + var configPath = cliFlags.cmdConfigFile ?? Path.Combine(PathUtils.ExeDirectoryPath, "config.json"); Config initialConfig; try { - if (!VersionInfo.DeveloperBuild && !ConfigService.IsFromSameVersion(Config.DefaultIniPath, out var msg)) + if (!VersionInfo.DeveloperBuild && !ConfigService.IsFromSameVersion(configPath, out var msg)) { new MsgBox(msg, "Mismatched version in config file", MessageBoxIcon.Warning).ShowDialog(); } - initialConfig = ConfigService.Load(Config.DefaultIniPath); + initialConfig = ConfigService.Load(configPath); } catch (Exception e) { @@ -149,8 +149,8 @@ namespace BizHawk.Client.EmuHawk "The caught exception was:", e.ToString() )).ShowDialog(); - File.Delete(Config.DefaultIniPath); - initialConfig = ConfigService.Load(Config.DefaultIniPath); + File.Delete(configPath); + initialConfig = ConfigService.Load(configPath); } initialConfig.ResolveDefaults(); // initialConfig should really be globalConfig as it's mutable @@ -237,6 +237,7 @@ namespace BizHawk.Client.EmuHawk MainForm mf = new( cliFlags, workingGL, + () => configPath, () => initialConfig, newSound => globalSound = newSound, args,