diff --git a/SabreTools.Helper/Dats/Partials/DatFile.ConvertUpdate.cs b/SabreTools.Helper/Dats/Partials/DatFile.ConvertUpdate.cs index 954d60d6..b75ceeff 100644 --- a/SabreTools.Helper/Dats/Partials/DatFile.ConvertUpdate.cs +++ b/SabreTools.Helper/Dats/Partials/DatFile.ConvertUpdate.cs @@ -116,7 +116,7 @@ namespace SabreTools.Helper.Dats MergeRoms = MergeRoms, }; - datHeaders[i].Parse(input.Split('¬')[0], i, 0, filter, trim, single, root, logger, true, clean, softlist); + datHeaders[i].Parse(input.Split('¬')[0], i, 0, filter, splitType, trim, single, root, logger, true, clean, softlist); }); logger.User("Processing complete in " + DateTime.Now.Subtract(start).ToString(@"hh\:mm\:ss\.fffff")); @@ -465,7 +465,7 @@ namespace SabreTools.Helper.Dats { DatFile innerDatdata = new DatFile(this); logger.User("Processing \"" + Path.GetFileName(inputFileName) + "\""); - innerDatdata.Parse(inputFileName, 0, 0, filter, trim, single, + innerDatdata.Parse(inputFileName, 0, 0, filter, splitType, trim, single, root, logger, true, clean, softlist, keepext: ((innerDatdata.DatFormat & DatFormat.TSV) != 0 || (innerDatdata.DatFormat & DatFormat.CSV) != 0)); @@ -485,7 +485,7 @@ namespace SabreTools.Helper.Dats { logger.User("Processing \"" + Path.GetFullPath(file).Remove(0, inputFileName.Length) + "\""); DatFile innerDatdata = new DatFile(this); - innerDatdata.Parse(file, 0, 0, filter, + innerDatdata.Parse(file, 0, 0, filter, splitType, trim, single, root, logger, true, clean, softlist, keepext: ((innerDatdata.DatFormat & DatFormat.TSV) != 0 || (innerDatdata.DatFormat & DatFormat.CSV) != 0)); diff --git a/SabreTools.Helper/Dats/Partials/DatFile.Parsers.cs b/SabreTools.Helper/Dats/Partials/DatFile.Parsers.cs index 1a341c94..805b6a9a 100644 --- a/SabreTools.Helper/Dats/Partials/DatFile.Parsers.cs +++ b/SabreTools.Helper/Dats/Partials/DatFile.Parsers.cs @@ -36,7 +36,7 @@ namespace SabreTools.Helper.Dats /// True if original extension should be kept, false otherwise (default) public void Parse(string filename, int sysid, int srcid, Logger logger, bool keep = false, bool clean = false, bool softlist = false, bool keepext = false) { - Parse(filename, sysid, srcid, new Filter(), false, false, "", logger, keep, clean, softlist, keepext); + Parse(filename, sysid, srcid, new Filter(), SplitType.None, false, false, "", logger, keep, clean, softlist, keepext); } /// @@ -46,6 +46,7 @@ namespace SabreTools.Helper.Dats /// System ID for the DAT /// Source ID for the DAT /// Filter object for passing to the DatItem level + /// Type of the split that should be performed (split, merged, fully merged) /// True if we are supposed to trim names to NTFS length, false otherwise /// True if all games should be replaced by '!', false otherwise /// String representing root directory to compare against for length calculation @@ -64,6 +65,7 @@ namespace SabreTools.Helper.Dats Filter filter, // Rom renaming + SplitType splitType, bool trim, bool single, string root, @@ -100,13 +102,13 @@ namespace SabreTools.Helper.Dats break; case DatFormat.ClrMamePro: case DatFormat.DOSCenter: - ParseCMP(filename, sysid, srcid, filter, trim, single, root, logger, keep, clean); + ParseCMP(filename, sysid, srcid, filter, splitType, trim, single, root, logger, keep, clean); break; case DatFormat.Logiqx: case DatFormat.OfflineList: case DatFormat.SabreDat: case DatFormat.SoftwareList: - ParseGenericXML(filename, sysid, srcid, filter, trim, single, root, logger, keep, clean, softlist); + ParseGenericXML(filename, sysid, srcid, filter, splitType, trim, single, root, logger, keep, clean, softlist); break; case DatFormat.RedumpMD5: ParseRedumpMD5(filename, sysid, srcid, filter, trim, single, root, logger, clean); @@ -118,7 +120,7 @@ namespace SabreTools.Helper.Dats ParseRedumpSHA1(filename, sysid, srcid, filter, trim, single, root, logger, clean); break; case DatFormat.RomCenter: - ParseRC(filename, sysid, srcid, filter, trim, single, root, logger, clean); + ParseRC(filename, sysid, srcid, filter, splitType, trim, single, root, logger, clean); break; default: return; @@ -211,7 +213,7 @@ namespace SabreTools.Helper.Dats // Now process and add the rom string key = ""; - ParseAddHelper(rom, filter, trim, single, root, clean, logger, out key); + ParseAddHelper(rom, filter, SplitType.None, trim, single, root, clean, logger, out key); } sr.Dispose(); @@ -224,6 +226,7 @@ namespace SabreTools.Helper.Dats /// System ID for the DAT /// Source ID for the DAT /// Filter object for passing to the DatItem level + /// Type of the split that should be performed (split, merged, fully merged) /// True if we are supposed to trim names to NTFS length, false otherwise /// True if all games should be replaced by '!', false otherwise /// String representing root directory to compare against for length calculation @@ -240,6 +243,7 @@ namespace SabreTools.Helper.Dats Filter filter, // Rom renaming + SplitType splitType, bool trim, bool single, string root, @@ -355,7 +359,7 @@ namespace SabreTools.Helper.Dats // Now process and add the sample key = ""; - ParseAddHelper(item, filter, trim, single, root, clean, logger, out key); + ParseAddHelper(item, filter, splitType, trim, single, root, clean, logger, out key); continue; } @@ -416,7 +420,7 @@ namespace SabreTools.Helper.Dats // Now process and add the rom key = ""; - ParseAddHelper(item, filter, trim, single, root, clean, logger, out key); + ParseAddHelper(item, filter, splitType, trim, single, root, clean, logger, out key); continue; } @@ -591,7 +595,7 @@ namespace SabreTools.Helper.Dats // Now process and add the rom key = ""; - ParseAddHelper(item, filter, trim, single, root, clean, logger, out key); + ParseAddHelper(item, filter, splitType, trim, single, root, clean, logger, out key); } // If the line is anything but a rom or disk and we're in a block @@ -764,6 +768,7 @@ namespace SabreTools.Helper.Dats /// System ID for the DAT /// Source ID for the DAT /// Filter object for passing to the DatItem level + /// Type of the split that should be performed (split, merged, fully merged) /// True if we are supposed to trim names to NTFS length, false otherwise /// True if all games should be replaced by '!', false otherwise /// String representing root directory to compare against for length calculation @@ -781,6 +786,7 @@ namespace SabreTools.Helper.Dats Filter filter, // Rom renaming + SplitType splitType, bool trim, bool single, string root, @@ -824,7 +830,7 @@ namespace SabreTools.Helper.Dats Rom rom = new Rom("null", tempgame); // Now process and add the rom - ParseAddHelper(rom, filter, trim, single, root, clean, logger, out key); + ParseAddHelper(rom, filter, splitType, trim, single, root, clean, logger, out key); } // Regardless, end the current folder @@ -1344,7 +1350,7 @@ namespace SabreTools.Helper.Dats }; // Now process and add the rom - ParseAddHelper(olrom, filter, trim, single, root, clean, logger, out key); + ParseAddHelper(olrom, filter, splitType, trim, single, root, clean, logger, out key); break; // For Software List only @@ -1426,7 +1432,7 @@ namespace SabreTools.Helper.Dats }; // Now process and add the rom - ParseAddHelper(relrom, filter, trim, single, root, clean, logger, out key); + ParseAddHelper(relrom, filter, splitType, trim, single, root, clean, logger, out key); subreader.Read(); break; @@ -1469,7 +1475,7 @@ namespace SabreTools.Helper.Dats }; // Now process and add the rom - ParseAddHelper(biosrom, filter, trim, single, root, clean, logger, out key); + ParseAddHelper(biosrom, filter, splitType, trim, single, root, clean, logger, out key); subreader.Read(); break; @@ -1497,7 +1503,7 @@ namespace SabreTools.Helper.Dats }; // Now process and add the rom - ParseAddHelper(archiverom, filter, trim, single, root, clean, logger, out key); + ParseAddHelper(archiverom, filter, splitType, trim, single, root, clean, logger, out key); subreader.Read(); break; @@ -1525,7 +1531,7 @@ namespace SabreTools.Helper.Dats }; // Now process and add the rom - ParseAddHelper(samplerom, filter, trim, single, root, clean, logger, out key); + ParseAddHelper(samplerom, filter, splitType, trim, single, root, clean, logger, out key); subreader.Read(); break; @@ -1661,7 +1667,7 @@ namespace SabreTools.Helper.Dats } // Now process and add the rom - ParseAddHelper(inrom, filter, trim, single, root, clean, logger, out key); + ParseAddHelper(inrom, filter, splitType, trim, single, root, clean, logger, out key); subreader.Read(); break; @@ -1833,7 +1839,7 @@ namespace SabreTools.Helper.Dats } // Now process and add the rom - ParseAddHelper(rom, filter, trim, single, root, clean, logger, out key); + ParseAddHelper(rom, filter, splitType, trim, single, root, clean, logger, out key); xtr.Read(); break; @@ -1910,7 +1916,7 @@ namespace SabreTools.Helper.Dats // Now process and add the rom string key = ""; - ParseAddHelper(rom, filter, trim, single, root, clean, logger, out key); + ParseAddHelper(rom, filter, SplitType.None, trim, single, root, clean, logger, out key); } sr.Dispose(); @@ -1972,7 +1978,7 @@ namespace SabreTools.Helper.Dats // Now process and add the rom string key = ""; - ParseAddHelper(rom, filter, trim, single, root, clean, logger, out key); + ParseAddHelper(rom, filter, SplitType.None, trim, single, root, clean, logger, out key); } sr.Dispose(); @@ -2034,7 +2040,7 @@ namespace SabreTools.Helper.Dats // Now process and add the rom string key = ""; - ParseAddHelper(rom, filter, trim, single, root, clean, logger, out key); + ParseAddHelper(rom, filter, SplitType.None, trim, single, root, clean, logger, out key); } sr.Dispose(); @@ -2047,6 +2053,7 @@ namespace SabreTools.Helper.Dats /// System ID for the DAT /// Source ID for the DAT /// Filter object for passing to the DatItem level + /// Type of the split that should be performed (split, merged, fully merged) /// True if we are supposed to trim names to NTFS length, false otherwise /// True if all games should be replaced by '!', false otherwise /// String representing root directory to compare against for length calculation @@ -2062,6 +2069,7 @@ namespace SabreTools.Helper.Dats Filter filter, // Rom renaming + SplitType splitType, bool trim, bool single, string root, @@ -2210,7 +2218,7 @@ namespace SabreTools.Helper.Dats // Now process and add the rom string key = ""; - ParseAddHelper(rom, filter, trim, single, root, clean, logger, out key); + ParseAddHelper(rom, filter, splitType, trim, single, root, clean, logger, out key); } } } @@ -2223,11 +2231,12 @@ namespace SabreTools.Helper.Dats /// /// Item data to check against /// Filter object for passing to the DatItem level + /// Type of the split that should be performed (split, merged, fully merged) /// True if we are supposed to trim names to NTFS length, false otherwise /// True if all games should be replaced by '!', false otherwise /// String representing root directory to compare against for length calculation /// Logger object for console and/or file output - private void ParseAddHelper(DatItem item, Filter filter, bool trim, bool single, string root, bool clean, Logger logger, out string key) + private void ParseAddHelper(DatItem item, Filter filter, SplitType splitType, bool trim, bool single, string root, bool clean, Logger logger, out string key) { key = "";