diff --git a/BizHawk.Client.EmuHawk/FileLoader.cs b/BizHawk.Client.EmuHawk/FileLoader.cs index f0c0f7e492..5d95cc8331 100644 --- a/BizHawk.Client.EmuHawk/FileLoader.cs +++ b/BizHawk.Client.EmuHawk/FileLoader.cs @@ -1,33 +1,14 @@ using System; -using System.Drawing; using System.IO; using System.Windows.Forms; -using System.Reflection; using System.Linq; using System.Collections.Generic; using BizHawk.Common; - -using BizHawk.Emulation.Common; using BizHawk.Emulation.Common.IEmulatorExtensions; -using BizHawk.Emulation.Cores.Calculators; -using BizHawk.Emulation.Cores.ColecoVision; -using BizHawk.Emulation.Cores.Nintendo.Gameboy; -using BizHawk.Emulation.Cores.Nintendo.NES; -using BizHawk.Emulation.Cores.Nintendo.N64; -using BizHawk.Emulation.Cores.Nintendo.SNES; using BizHawk.Emulation.Cores.PCEngine; -using BizHawk.Emulation.Cores.Sega.MasterSystem; -using BizHawk.Emulation.Cores.Consoles.Nintendo.QuickNES; - using BizHawk.Client.Common; -using BizHawk.Client.EmuHawk.CustomControls; -using BizHawk.Client.EmuHawk.WinFormExtensions; -using BizHawk.Client.EmuHawk.ToolExtensions; -using BizHawk.Emulation.Cores.Computers.AppleII; -using BizHawk.Client.ApiHawk; - namespace BizHawk.Client.EmuHawk { partial class MainForm @@ -47,34 +28,31 @@ namespace BizHawk.Client.EmuHawk public struct FileInformation { - public string directoryName; - public string fileName; - public string archiveName; + public string DirectoryName { get; } + public string FileName { get; } + public string ArchiveName { get; } public FileInformation(string directory, string file, string archive) { - directoryName = directory; - fileName = file; - archiveName = archive; + DirectoryName = directory; + FileName = file; + ArchiveName = archive; } } // This is the list from MainForm->RomFilter()'s non-developer build. It needs to be kept up-to-date when new cores are added. - readonly string[] knownROMExtensions = { ".NES", ".FDS", ".UNF", ".SMS", ".GG", ".SG", ".GB", ".GBC", ".GBA", ".PCE", ".SGX", ".BIN", ".SMD", ".GEN", ".MD", ".SMC", ".SFC", ".A26", ".A78", ".LNX", ".COL", ".ROM", ".M3U", ".CUE", ".CCD", ".SGB", ".Z64", ".V64", ".N64", ".WS", ".WSC", ".XML", ".DSK", ".DO", ".PO", ".PSF", ".MINIPSF", ".NSF" }; - readonly string[] nonArchive = { ".ISO", ".CUE", ".CCD" }; + private readonly string[] _knownROMExtensions = { ".NES", ".FDS", ".UNF", ".SMS", ".GG", ".SG", ".GB", ".GBC", ".GBA", ".PCE", ".SGX", ".BIN", ".SMD", ".GEN", ".MD", ".SMC", ".SFC", ".A26", ".A78", ".LNX", ".COL", ".ROM", ".M3U", ".CUE", ".CCD", ".SGB", ".Z64", ".V64", ".N64", ".WS", ".WSC", ".XML", ".DSK", ".DO", ".PO", ".PSF", ".MINIPSF", ".NSF" }; + private readonly string[] _nonArchive = { ".ISO", ".CUE", ".CCD" }; #region Loaders - // According to the documentation (http://tasvideos.org/Bizhawk/CodeDataLogger.html), - // Currently supported for: PCE, GB/GBC, SMS/GG, Genesis, SNES - // Perhaps the 'is PCEngine' requirement needs to be expanded. private void _LoadCDL(string filename, string archive = null) { - if (!(Global.Emulator is PCEngine)) - return; - - GlobalWin.Tools.Load(); - (GlobalWin.Tools.Get() as CDL).LoadFile(filename); + if (GlobalWin.Tools.IsAvailable()) + { + CDL cdl = GlobalWin.Tools.Load(); + cdl.LoadFile(filename); + } } private void _LoadCheats(string filename, string archive = null) @@ -199,9 +177,9 @@ namespace BizHawk.Client.EmuHawk sortedFiles[LoadOrdering.MOVIEFILE].Add(fileInformation); else if (MovieImport.IsValidMovieExtension(ext)) sortedFiles[LoadOrdering.LEGACYMOVIEFILE].Add(fileInformation); - else if (knownROMExtensions.Contains(ext)) + else if (_knownROMExtensions.Contains(ext)) { - if (String.IsNullOrEmpty(archive) || !nonArchive.Contains(ext)) + if (String.IsNullOrEmpty(archive) || !_nonArchive.Contains(ext)) sortedFiles[LoadOrdering.ROM].Add(fileInformation); } else @@ -304,30 +282,31 @@ namespace BizHawk.Client.EmuHawk break; case 1: FileInformation fileInformation = sortedFiles[value].First(); - string filename = Path.Combine(new string[] { fileInformation.directoryName, fileInformation.fileName }); + string filename = Path.Combine(new string[] { fileInformation.DirectoryName, fileInformation.FileName }); switch (value) { case LoadOrdering.ROM: - _LoadRom(filename, fileInformation.archiveName); + MessageBox.Show("hi"); + _LoadRom(filename, fileInformation.ArchiveName); break; case LoadOrdering.STATE: - _LoadState(filename, fileInformation.archiveName); + _LoadState(filename, fileInformation.ArchiveName); break; case LoadOrdering.WATCH: - _LoadWatch(filename, fileInformation.archiveName); + _LoadWatch(filename, fileInformation.ArchiveName); break; case LoadOrdering.CDLFILE: - _LoadCDL(filename, fileInformation.archiveName); + _LoadCDL(filename, fileInformation.ArchiveName); break; case LoadOrdering.LUASESSION: - _LoadLuaSession(filename, fileInformation.archiveName); + _LoadLuaSession(filename, fileInformation.ArchiveName); break; case LoadOrdering.LUASCRIPT: - _LoadLuaFile(filename, fileInformation.archiveName); + _LoadLuaFile(filename, fileInformation.ArchiveName); break; case LoadOrdering.CHEAT: - _LoadCheats(filename, fileInformation.archiveName); + _LoadCheats(filename, fileInformation.ArchiveName); break; case LoadOrdering.MOVIEFILE: case LoadOrdering.LEGACYMOVIEFILE: @@ -336,9 +315,9 @@ namespace BizHawk.Client.EmuHawk break; if (value == LoadOrdering.MOVIEFILE) - _LoadMovie(filename, fileInformation.archiveName); + _LoadMovie(filename, fileInformation.ArchiveName); else - _LoadLegacyMovie(filename, fileInformation.archiveName); + _LoadLegacyMovie(filename, fileInformation.ArchiveName); break; } break;