diff --git a/SabreTools.Helper/Data/Build.cs b/SabreTools.Helper/Data/Build.cs index 89d7e9b3..bc4a53dc 100644 --- a/SabreTools.Helper/Data/Build.cs +++ b/SabreTools.Helper/Data/Build.cs @@ -163,6 +163,7 @@ Options: Supported values are: None, Zip, Unzip -clean Clean game names according to WoD standards + -sl Use Software List name instead of description -trim Trim file names to fit NTFS length -rd=, --root-dir= Set the root directory for calc -si, --single All game names replaced by '!' diff --git a/SabreTools.Helper/Tools/DatTools.cs b/SabreTools.Helper/Tools/DatTools.cs index bf22367f..7f4f16f2 100644 --- a/SabreTools.Helper/Tools/DatTools.cs +++ b/SabreTools.Helper/Tools/DatTools.cs @@ -77,7 +77,7 @@ namespace SabreTools.Helper /// True if full pathnames are to be kept, false otherwise (default) /// True if game names are sanitized, false otherwise (default) /// DatData object representing the read-in data - public static Dat Parse(string filename, int sysid, int srcid, Dat datdata, Logger logger, bool keep = false, bool clean = false) + public static Dat Parse(string filename, int sysid, int srcid, Dat datdata, Logger logger, bool keep = false, bool clean = false, bool sl = false) { // If the output filename isn't set already, get the internal filename if (String.IsNullOrEmpty(datdata.FileName)) @@ -106,7 +106,7 @@ namespace SabreTools.Helper return ParseRC(filename, sysid, srcid, datdata, logger, clean); case OutputFormat.SabreDat: case OutputFormat.Xml: - return ParseXML(filename, sysid, srcid, datdata, logger, keep, clean); + return ParseXML(filename, sysid, srcid, datdata, logger, keep, clean, sl); default: return datdata; } @@ -619,8 +619,9 @@ namespace SabreTools.Helper /// Logger object for console and/or file output /// True if full pathnames are to be kept, false otherwise (default) /// True if game names are sanitized, false otherwise (default) + /// True if SL XML names should be kept, false otherwise (default) /// DatData object representing the read-in data - public static Dat ParseXML(string filename, int sysid, int srcid, Dat datdata, Logger logger, bool keep, bool clean) + public static Dat ParseXML(string filename, int sysid, int srcid, Dat datdata, Logger logger, bool keep, bool clean, bool sl) { // Prepare all internal variables XmlReader subreader, headreader, flagreader; @@ -956,7 +957,7 @@ namespace SabreTools.Helper // If we have a subtree, add what is possible if (subreader != null) { - if (temptype == "software" && subreader.ReadToFollowing("description")) + if (!sl && temptype == "software" && subreader.ReadToFollowing("description")) { tempname = subreader.ReadElementContentAsString(); tempname = tempname.Replace('/', '_').Replace("\"", "''");