From 3cef665b2b54e0f0f0166b90eb26505f86e6249e Mon Sep 17 00:00:00 2001 From: Matt Nadareski Date: Tue, 13 Sep 2016 11:02:02 -0700 Subject: [PATCH] [DatTools] Add sample as output type for split --- SabreTools.Helper/Tools/DatTools.cs | 43 ++++++++++++++++++++++++++++- 1 file changed, 42 insertions(+), 1 deletion(-) diff --git a/SabreTools.Helper/Tools/DatTools.cs b/SabreTools.Helper/Tools/DatTools.cs index 6a732244..2be5eba1 100644 --- a/SabreTools.Helper/Tools/DatTools.cs +++ b/SabreTools.Helper/Tools/DatTools.cs @@ -3242,7 +3242,7 @@ namespace SabreTools.Helper break; case OutputFormat.Xml: state += "\t\t<" + rom.Type.ToString().ToLowerInvariant() + " name=\"" + HttpUtility.HtmlEncode(rom.Name) + "\"" + - (rom.HashData.Size != -1 ? " size=\"" + rom.HashData.Size + "\"" : "") + + (rom.Type == ItemType.Rom && rom.HashData.Size != -1 ? " size=\"" + rom.HashData.Size + "\"" : "") + (!String.IsNullOrEmpty(rom.HashData.CRC) ? " crc=\"" + rom.HashData.CRC.ToLowerInvariant() + "\"" : "") + (!String.IsNullOrEmpty(rom.HashData.MD5) ? " md5=\"" + rom.HashData.MD5.ToLowerInvariant() + "\"" : "") + (!String.IsNullOrEmpty(rom.HashData.SHA1) ? " sha1=\"" + rom.HashData.SHA1.ToLowerInvariant() + "\"" : "") + @@ -3767,6 +3767,28 @@ namespace SabreTools.Helper MergeRoms = datdata.MergeRoms, Files = new Dictionary>(), }; + Dat sampledat = new Dat + { + FileName = datdata.FileName + " (Sample)", + Name = datdata.Name + " (Sample)", + Description = datdata.Description + " (Sample)", + Category = datdata.Category, + Version = datdata.Version, + Date = datdata.Date, + Author = datdata.Author, + Email = datdata.Email, + Homepage = datdata.Homepage, + Url = datdata.Url, + Comment = datdata.Comment, + Header = datdata.Header, + Type = datdata.Type, + ForceMerging = datdata.ForceMerging, + ForceNodump = datdata.ForceNodump, + ForcePacking = datdata.ForcePacking, + OutputFormat = outputFormat, + MergeRoms = datdata.MergeRoms, + Files = new Dictionary>(), + }; // Now populate each of the DAT objects in turn List keys = datdata.Files.Keys.ToList(); @@ -3803,6 +3825,21 @@ namespace SabreTools.Helper diskdat.Files.Add(key, temp); } } + + // If the file is a Sample + else if (rom.Type == ItemType.Sample) + { + if (sampledat.Files.ContainsKey(key)) + { + sampledat.Files[key].Add(rom); + } + else + { + List temp = new List(); + temp.Add(rom); + sampledat.Files.Add(key, temp); + } + } } } @@ -3827,6 +3864,10 @@ namespace SabreTools.Helper { success &= WriteDatfile(diskdat, outdir, logger); } + if (sampledat.Files.Count > 0) + { + success &= WriteDatfile(sampledat, outdir, logger); + } return success; }