SavestateManager - pass in IEmulator, reduces some global dependencies

This commit is contained in:
adelikat 2020-04-12 12:44:26 -05:00
parent 6e40c46aa1
commit 622733d31a
2 changed files with 10 additions and 10 deletions

View File

@ -9,9 +9,9 @@ namespace BizHawk.Client.Common
{ {
public static class SavestateManager public static class SavestateManager
{ {
public static void SaveStateFile(string filename, string name) public static void SaveStateFile(IEmulator emulator, string filename)
{ {
var core = Global.Emulator.AsStatable(); var core = emulator.AsStatable();
// the old method of text savestate save is now gone. // the old method of text savestate save is now gone.
// a text savestate is just like a binary savestate, but with a different core lump // a text savestate is just like a binary savestate, but with a different core lump
@ -33,9 +33,9 @@ namespace BizHawk.Client.Common
} }
} }
if (Global.Config.SaveScreenshotWithStates && Global.Emulator.HasVideoProvider()) if (Global.Config.SaveScreenshotWithStates && emulator.HasVideoProvider())
{ {
var vp = Global.Emulator.AsVideoProvider(); var vp = emulator.AsVideoProvider();
var buff = vp.GetVideoBuffer(); var buff = vp.GetVideoBuffer();
if (buff.Length == 1) if (buff.Length == 1)
{ {
@ -59,7 +59,7 @@ namespace BizHawk.Client.Common
using (new SimpleTime("Save Framebuffer")) using (new SimpleTime("Save Framebuffer"))
{ {
bs.PutLump(BinaryStateLump.Framebuffer, s => QuickBmpFile.Save(Global.Emulator.AsVideoProvider(), s, outWidth, outHeight)); bs.PutLump(BinaryStateLump.Framebuffer, s => QuickBmpFile.Save(emulator.AsVideoProvider(), s, outWidth, outHeight));
} }
} }
} }
@ -70,7 +70,7 @@ namespace BizHawk.Client.Common
delegate(TextWriter tw) delegate(TextWriter tw)
{ {
// this never should have been a core's responsibility // this never should have been a core's responsibility
tw.WriteLine("Frame {0}", Global.Emulator.Frame); tw.WriteLine("Frame {0}", emulator.Frame);
Global.MovieSession.HandleMovieSaveState(tw); Global.MovieSession.HandleMovieSaveState(tw);
}); });
} }
@ -126,9 +126,9 @@ namespace BizHawk.Client.Common
} }
} }
public static bool LoadStateFile(string path, string name) public static bool LoadStateFile(IEmulator emulator, string path)
{ {
var core = Global.Emulator.AsStatable(); var core = emulator.AsStatable();
// try to detect binary first // try to detect binary first
var bl = BinaryStateLoader.LoadAndDetect(path); var bl = BinaryStateLoader.LoadAndDetect(path);

View File

@ -4057,7 +4057,7 @@ namespace BizHawk.Client.EmuHawk
MovieSession.Movie.IsCountingRerecords = false; MovieSession.Movie.IsCountingRerecords = false;
} }
if (SavestateManager.LoadStateFile(path, userFriendlyStateName)) if (SavestateManager.LoadStateFile(Emulator, path))
{ {
GlobalWin.OSD.ClearGuiText(); GlobalWin.OSD.ClearGuiText();
ClientApi.OnStateLoaded(this, userFriendlyStateName); ClientApi.OnStateLoaded(this, userFriendlyStateName);
@ -4136,7 +4136,7 @@ namespace BizHawk.Client.EmuHawk
try try
{ {
SavestateManager.SaveStateFile(path, userFriendlyStateName); SavestateManager.SaveStateFile(Emulator, path);
ClientApi.OnStateSaved(this, userFriendlyStateName); ClientApi.OnStateSaved(this, userFriendlyStateName);