diff --git a/DATabase/ExtSplit.cs b/DATabase/ExtSplit.cs index 57052559..0694cfff 100644 --- a/DATabase/ExtSplit.cs +++ b/DATabase/ExtSplit.cs @@ -9,8 +9,8 @@ namespace SabreTools public class ExtSplit { // Instance variables - private string _extA; - private string _extB; + private List _extA; + private List _extB; private string _filename; private string _outdir; private static Logger _logger; @@ -19,14 +19,22 @@ namespace SabreTools /// Create a new DatSplit object /// /// Filename of the DAT to split - /// First extension to split on - /// Second extension to split on + /// List of extensions to split on (first DAT) + /// List of extensions to split on (second DAT) /// Logger object for console and file writing - public ExtSplit(string filename, string extA, string extB, string outdir, Logger logger) + public ExtSplit(string filename, List extA, List extB, string outdir, Logger logger) { _filename = filename.Replace("\"", ""); - _extA = (extA.StartsWith(".") ? extA : "." + extA).ToUpperInvariant(); - _extB = (extB.StartsWith(".") ? extB : "." + extB).ToUpperInvariant(); + _extA = new List(); + foreach (string s in extA) + { + _extA.Add((s.StartsWith(".") ? s : "." + s).ToUpperInvariant()); + } + _extB = new List(); + foreach (string s in extB) + { + _extB.Add((s.StartsWith(".") ? s : "." + s).ToUpperInvariant()); + } _outdir = outdir.Replace("\"", ""); _logger = logger; } @@ -106,7 +114,7 @@ namespace SabreTools { foreach (RomData rom in datdata.Roms[key]) { - if (rom.Name.ToUpperInvariant().EndsWith(_extA)) + if (rom.Name.ToUpperInvariant().EndsWith(_extA[0])) { if (datdataA.Roms.ContainsKey(key)) { @@ -119,7 +127,7 @@ namespace SabreTools datdataA.Roms.Add(key, temp); } } - else if (rom.Name.ToUpperInvariant().EndsWith(_extB)) + else if (rom.Name.ToUpperInvariant().EndsWith(_extB[0])) { if (datdataB.Roms.ContainsKey(key)) { diff --git a/DATabase/Partials/DATabase_Inits.cs b/DATabase/Partials/DATabase_Inits.cs index eaea09a0..ef386cfc 100644 --- a/DATabase/Partials/DATabase_Inits.cs +++ b/DATabase/Partials/DATabase_Inits.cs @@ -416,6 +416,11 @@ namespace SabreTools extb = extb.Replace("\"", ""); outdir = outdir.Replace("\"", ""); + List extaList = new List(); + extaList.Add(exta); + List extbList = new List(); + extbList.Add(extb); + if (input != "" && File.Exists(input)) { if (exta == "" || extb == "") @@ -423,7 +428,7 @@ namespace SabreTools _logger.Warning("Two extensions are needed to split a DAT!"); return; } - ExtSplit es = new ExtSplit(input, exta, extb, outdir, _logger); + ExtSplit es = new ExtSplit(input, extaList, extbList, outdir, _logger); es.Split(); return; } diff --git a/SabreHelper/sqlite3.dll b/SabreHelper/sqlite3.dll index fcac1b2d..2797682c 100644 Binary files a/SabreHelper/sqlite3.dll and b/SabreHelper/sqlite3.dll differ