diff --git a/SabreTools.Helper/Dats/Partials/DatFile.Parsers.cs b/SabreTools.Helper/Dats/Partials/DatFile.Parsers.cs
index 805b6a9a..7363ca15 100644
--- a/SabreTools.Helper/Dats/Partials/DatFile.Parsers.cs
+++ b/SabreTools.Helper/Dats/Partials/DatFile.Parsers.cs
@@ -102,13 +102,13 @@ namespace SabreTools.Helper.Dats
break;
case DatFormat.ClrMamePro:
case DatFormat.DOSCenter:
- ParseCMP(filename, sysid, srcid, filter, splitType, trim, single, root, logger, keep, clean);
+ ParseCMP(filename, sysid, srcid, filter, trim, single, root, logger, keep, clean);
break;
case DatFormat.Logiqx:
case DatFormat.OfflineList:
case DatFormat.SabreDat:
case DatFormat.SoftwareList:
- ParseGenericXML(filename, sysid, srcid, filter, splitType, trim, single, root, logger, keep, clean, softlist);
+ ParseGenericXML(filename, sysid, srcid, filter, trim, single, root, logger, keep, clean, softlist);
break;
case DatFormat.RedumpMD5:
ParseRedumpMD5(filename, sysid, srcid, filter, trim, single, root, logger, clean);
@@ -120,11 +120,25 @@ namespace SabreTools.Helper.Dats
ParseRedumpSHA1(filename, sysid, srcid, filter, trim, single, root, logger, clean);
break;
case DatFormat.RomCenter:
- ParseRC(filename, sysid, srcid, filter, splitType, trim, single, root, logger, clean);
+ ParseRC(filename, sysid, srcid, filter, trim, single, root, logger, clean);
break;
default:
return;
}
+
+ // Now we pre-process the DAT with the splitting/merging mode
+ if (splitType == SplitType.Split)
+ {
+ CreateSplitSets(false, logger, output: false);
+ }
+ else if (splitType == SplitType.Merged)
+ {
+ CreateMergedSets(false, logger, output: false);
+ }
+ else if (splitType == SplitType.MergedWithDevice)
+ {
+ logger.User("Full merging is not yet available. Sorry for the inconvenience");
+ }
}
///
@@ -213,7 +227,7 @@ namespace SabreTools.Helper.Dats
// Now process and add the rom
string key = "";
- ParseAddHelper(rom, filter, SplitType.None, trim, single, root, clean, logger, out key);
+ ParseAddHelper(rom, filter, trim, single, root, clean, logger, out key);
}
sr.Dispose();
@@ -226,7 +240,6 @@ 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
@@ -243,7 +256,6 @@ namespace SabreTools.Helper.Dats
Filter filter,
// Rom renaming
- SplitType splitType,
bool trim,
bool single,
string root,
@@ -359,7 +371,7 @@ namespace SabreTools.Helper.Dats
// Now process and add the sample
key = "";
- ParseAddHelper(item, filter, splitType, trim, single, root, clean, logger, out key);
+ ParseAddHelper(item, filter, trim, single, root, clean, logger, out key);
continue;
}
@@ -420,7 +432,7 @@ namespace SabreTools.Helper.Dats
// Now process and add the rom
key = "";
- ParseAddHelper(item, filter, splitType, trim, single, root, clean, logger, out key);
+ ParseAddHelper(item, filter, trim, single, root, clean, logger, out key);
continue;
}
@@ -595,7 +607,7 @@ namespace SabreTools.Helper.Dats
// Now process and add the rom
key = "";
- ParseAddHelper(item, filter, splitType, trim, single, root, clean, logger, out key);
+ ParseAddHelper(item, filter, trim, single, root, clean, logger, out key);
}
// If the line is anything but a rom or disk and we're in a block
@@ -768,7 +780,6 @@ 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
@@ -786,7 +797,6 @@ namespace SabreTools.Helper.Dats
Filter filter,
// Rom renaming
- SplitType splitType,
bool trim,
bool single,
string root,
@@ -830,7 +840,7 @@ namespace SabreTools.Helper.Dats
Rom rom = new Rom("null", tempgame);
// Now process and add the rom
- ParseAddHelper(rom, filter, splitType, trim, single, root, clean, logger, out key);
+ ParseAddHelper(rom, filter, trim, single, root, clean, logger, out key);
}
// Regardless, end the current folder
@@ -1350,7 +1360,7 @@ namespace SabreTools.Helper.Dats
};
// Now process and add the rom
- ParseAddHelper(olrom, filter, splitType, trim, single, root, clean, logger, out key);
+ ParseAddHelper(olrom, filter, trim, single, root, clean, logger, out key);
break;
// For Software List only
@@ -1432,7 +1442,7 @@ namespace SabreTools.Helper.Dats
};
// Now process and add the rom
- ParseAddHelper(relrom, filter, splitType, trim, single, root, clean, logger, out key);
+ ParseAddHelper(relrom, filter, trim, single, root, clean, logger, out key);
subreader.Read();
break;
@@ -1475,7 +1485,7 @@ namespace SabreTools.Helper.Dats
};
// Now process and add the rom
- ParseAddHelper(biosrom, filter, splitType, trim, single, root, clean, logger, out key);
+ ParseAddHelper(biosrom, filter, trim, single, root, clean, logger, out key);
subreader.Read();
break;
@@ -1503,7 +1513,7 @@ namespace SabreTools.Helper.Dats
};
// Now process and add the rom
- ParseAddHelper(archiverom, filter, splitType, trim, single, root, clean, logger, out key);
+ ParseAddHelper(archiverom, filter, trim, single, root, clean, logger, out key);
subreader.Read();
break;
@@ -1531,7 +1541,7 @@ namespace SabreTools.Helper.Dats
};
// Now process and add the rom
- ParseAddHelper(samplerom, filter, splitType, trim, single, root, clean, logger, out key);
+ ParseAddHelper(samplerom, filter, trim, single, root, clean, logger, out key);
subreader.Read();
break;
@@ -1667,7 +1677,7 @@ namespace SabreTools.Helper.Dats
}
// Now process and add the rom
- ParseAddHelper(inrom, filter, splitType, trim, single, root, clean, logger, out key);
+ ParseAddHelper(inrom, filter, trim, single, root, clean, logger, out key);
subreader.Read();
break;
@@ -1839,7 +1849,7 @@ namespace SabreTools.Helper.Dats
}
// Now process and add the rom
- ParseAddHelper(rom, filter, splitType, trim, single, root, clean, logger, out key);
+ ParseAddHelper(rom, filter, trim, single, root, clean, logger, out key);
xtr.Read();
break;
@@ -1916,7 +1926,7 @@ namespace SabreTools.Helper.Dats
// Now process and add the rom
string key = "";
- ParseAddHelper(rom, filter, SplitType.None, trim, single, root, clean, logger, out key);
+ ParseAddHelper(rom, filter, trim, single, root, clean, logger, out key);
}
sr.Dispose();
@@ -1978,7 +1988,7 @@ namespace SabreTools.Helper.Dats
// Now process and add the rom
string key = "";
- ParseAddHelper(rom, filter, SplitType.None, trim, single, root, clean, logger, out key);
+ ParseAddHelper(rom, filter, trim, single, root, clean, logger, out key);
}
sr.Dispose();
@@ -2040,7 +2050,7 @@ namespace SabreTools.Helper.Dats
// Now process and add the rom
string key = "";
- ParseAddHelper(rom, filter, SplitType.None, trim, single, root, clean, logger, out key);
+ ParseAddHelper(rom, filter, trim, single, root, clean, logger, out key);
}
sr.Dispose();
@@ -2053,7 +2063,6 @@ 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
@@ -2069,7 +2078,6 @@ namespace SabreTools.Helper.Dats
Filter filter,
// Rom renaming
- SplitType splitType,
bool trim,
bool single,
string root,
@@ -2218,7 +2226,7 @@ namespace SabreTools.Helper.Dats
// Now process and add the rom
string key = "";
- ParseAddHelper(rom, filter, splitType, trim, single, root, clean, logger, out key);
+ ParseAddHelper(rom, filter, trim, single, root, clean, logger, out key);
}
}
}
@@ -2231,12 +2239,11 @@ 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, SplitType splitType, bool trim, bool single, string root, bool clean, Logger logger, out string key)
+ private void ParseAddHelper(DatItem item, Filter filter, bool trim, bool single, string root, bool clean, Logger logger, out string key)
{
key = "";