From 8aab0d00cd478d8d58af10cf5efbc4d67f8d4d73 Mon Sep 17 00:00:00 2001 From: YoshiRulz Date: Thu, 26 Nov 2020 21:41:54 +1000 Subject: [PATCH] Move GlobalWin.ExitCode to Program --- src/BizHawk.Client.EmuHawk/GlobalWin.cs | 2 -- src/BizHawk.Client.EmuHawk/Program.cs | 16 ++++++++++------ 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/src/BizHawk.Client.EmuHawk/GlobalWin.cs b/src/BizHawk.Client.EmuHawk/GlobalWin.cs index 9bc6d409dc..ea767d9126 100644 --- a/src/BizHawk.Client.EmuHawk/GlobalWin.cs +++ b/src/BizHawk.Client.EmuHawk/GlobalWin.cs @@ -26,8 +26,6 @@ namespace BizHawk.Client.EmuHawk public static readonly OSDManager OSD = new OSDManager(); public static DisplayManager DisplayManager; - public static int ExitCode; - public static Dictionary UserBag { get; set; } = new Dictionary(); public static Config Config { get; set; } diff --git a/src/BizHawk.Client.EmuHawk/Program.cs b/src/BizHawk.Client.EmuHawk/Program.cs index 5e2f28651d..8ffbc913a7 100644 --- a/src/BizHawk.Client.EmuHawk/Program.cs +++ b/src/BizHawk.Client.EmuHawk/Program.cs @@ -204,13 +204,14 @@ namespace BizHawk.Client.EmuHawk SetDllDirectory(dllDir); } + var exitCode = 0; try { if (!OSTC.IsUnixHost && GlobalWin.Config.SingleInstanceMode) { try { - InitAndRunSingleInstance(args); + InitAndRunSingleInstance(i => exitCode = i, args); } catch (ObjectDisposedException) { @@ -225,7 +226,7 @@ namespace BizHawk.Client.EmuHawk // mf.Text = title; try { - GlobalWin.ExitCode = mf.ProgramRunLoop(); + exitCode = mf.ProgramRunLoop(); if (!mf.IsDisposed) mf.Dispose(); } @@ -266,7 +267,7 @@ namespace BizHawk.Client.EmuHawk //((IDisposable)GlobalWin.IGL_GL).Dispose(); //return 0 assuming things have gone well, non-zero values could be used as error codes or for scripting purposes - return GlobalWin.ExitCode; + return exitCode; } //SubMain //declared here instead of a more usual place to avoid dependencies on the more usual place @@ -323,10 +324,13 @@ namespace BizHawk.Client.EmuHawk private class SingleInstanceController : WindowsFormsApplicationBase { + private readonly Action _setExitCode; + private readonly string[] cmdArgs; - public SingleInstanceController(string[] args) + public SingleInstanceController(Action setExitCode, string[] args) { + _setExitCode = setExitCode; cmdArgs = args; IsSingleInstance = true; StartupNextInstance += this_StartupNextInstance; @@ -346,10 +350,10 @@ namespace BizHawk.Client.EmuHawk var title = MainForm.Text; MainForm.Show(); MainForm.Text = title; - GlobalWin.ExitCode = ((MainForm)MainForm).ProgramRunLoop(); + _setExitCode(((MainForm) MainForm).ProgramRunLoop()); } } - private static void InitAndRunSingleInstance(string[] args) => new SingleInstanceController(args).Run(); + private static void InitAndRunSingleInstance(Action setExitCode, string[] args) => new SingleInstanceController(setExitCode, args).Run(); } }