mirror of
https://github.com/claunia/SabreTools.git
synced 2025-12-16 19:14:27 +00:00
More SuperDAT woes
This commit is contained in:
@@ -15,7 +15,6 @@ namespace SabreTools
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Create a DAT file from a specified file, directory, or set thereof
|
/// Create a DAT file from a specified file, directory, or set thereof
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <remarks>Add SuperDAT functionality</remarks>
|
|
||||||
public class DATFromDir
|
public class DATFromDir
|
||||||
{
|
{
|
||||||
// Path-related variables
|
// Path-related variables
|
||||||
|
|||||||
@@ -144,6 +144,7 @@ namespace SabreTools
|
|||||||
OutputFormat outputFormat = RomManipulation.GetOutputFormat(filename);
|
OutputFormat outputFormat = RomManipulation.GetOutputFormat(filename);
|
||||||
DatData datdata = new DatData
|
DatData datdata = new DatData
|
||||||
{
|
{
|
||||||
|
Description = Path.GetFileNameWithoutExtension(filename),
|
||||||
Roms = new Dictionary<string, List<RomData>>(),
|
Roms = new Dictionary<string, List<RomData>>(),
|
||||||
};
|
};
|
||||||
datdata = RomManipulation.Parse(filename, 0, 0, datdata, _logger, true);
|
datdata = RomManipulation.Parse(filename, 0, 0, datdata, _logger, true);
|
||||||
|
|||||||
@@ -127,9 +127,9 @@ namespace SabreTools.Helper
|
|||||||
"\t\t<date>" + HttpUtility.HtmlEncode(datdata.Date) + "</date>\n" +
|
"\t\t<date>" + HttpUtility.HtmlEncode(datdata.Date) + "</date>\n" +
|
||||||
"\t\t<author>" + HttpUtility.HtmlEncode(datdata.Author) + "</author>\n" +
|
"\t\t<author>" + HttpUtility.HtmlEncode(datdata.Author) + "</author>\n" +
|
||||||
"\t\t<comment>" + HttpUtility.HtmlEncode(datdata.Comment) + "</comment>\n" +
|
"\t\t<comment>" + HttpUtility.HtmlEncode(datdata.Comment) + "</comment>\n" +
|
||||||
(datdata.Type != null && datdata.Type != "" && datdata.ForcePacking != ForcePacking.Unzip ?
|
(!String.IsNullOrEmpty(datdata.Type) && datdata.ForcePacking != ForcePacking.Unzip ?
|
||||||
"\t\t<flags>\n" +
|
"\t\t<flags>\n" +
|
||||||
(datdata.Type != null && datdata.Type != "" ? "\t\t\t<flag name=\"type\" value=\"" + datdata.Type + "\"/>\n" : "") +
|
(!String.IsNullOrEmpty(datdata.Type) ? "\t\t\t<flag name=\"type\" value=\"" + datdata.Type + "\"/>\n" : "") +
|
||||||
(datdata.ForcePacking == ForcePacking.Unzip ? "\t\t\t<flag name=\"forcepacking\" value=\"unzip\"/>\n" : "") +
|
(datdata.ForcePacking == ForcePacking.Unzip ? "\t\t\t<flag name=\"forcepacking\" value=\"unzip\"/>\n" : "") +
|
||||||
"\t\t</flags>\n" : "") +
|
"\t\t</flags>\n" : "") +
|
||||||
"\t</header>\n" +
|
"\t</header>\n" +
|
||||||
@@ -147,7 +147,7 @@ namespace SabreTools.Helper
|
|||||||
"\t\t<date>" + HttpUtility.HtmlEncode(datdata.Date) + "</date>\n" +
|
"\t\t<date>" + HttpUtility.HtmlEncode(datdata.Date) + "</date>\n" +
|
||||||
"\t\t<author>" + HttpUtility.HtmlEncode(datdata.Author) + "</author>\n" +
|
"\t\t<author>" + HttpUtility.HtmlEncode(datdata.Author) + "</author>\n" +
|
||||||
"\t\t<comment>" + HttpUtility.HtmlEncode(datdata.Comment) + "</comment>\n" +
|
"\t\t<comment>" + HttpUtility.HtmlEncode(datdata.Comment) + "</comment>\n" +
|
||||||
(datdata.Type != null && datdata.Type != "" ? "\t\t<type>" + datdata.Type + "</type>\n" : "") +
|
(!String.IsNullOrEmpty(datdata.Type) ? "\t\t<type>" + datdata.Type + "</type>\n" : "") +
|
||||||
(datdata.ForcePacking == ForcePacking.Unzip ? "\t\t<clrmamepro forcepacking=\"unzip\" />\n" : "") +
|
(datdata.ForcePacking == ForcePacking.Unzip ? "\t\t<clrmamepro forcepacking=\"unzip\" />\n" : "") +
|
||||||
"\t</header>\n";
|
"\t</header>\n";
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -144,17 +144,18 @@ namespace SabreTools.Helper
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Regardless, end the current folder
|
// Regardless, end the current folder
|
||||||
if (parent.Count == 0)
|
int parentcount = parent.Count;
|
||||||
|
if (parentcount == 0)
|
||||||
{
|
{
|
||||||
Console.WriteLine("Empty parent: " + String.Join("\\", parent));
|
Console.WriteLine("Empty parent: " + String.Join("\\", parent));
|
||||||
empty = true;
|
empty = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// If we have an end folder element, remove one item from the parent, if possible
|
// If we have an end folder element, remove one item from the parent, if possible
|
||||||
if (parent.Count > 0)
|
if (parentcount > 0)
|
||||||
{
|
{
|
||||||
parent.RemoveAt(parent.Count - 1);
|
parent.RemoveAt(parent.Count - 1);
|
||||||
if (keep)
|
if (keep && parentcount > 1)
|
||||||
{
|
{
|
||||||
datdata.Type = (String.IsNullOrEmpty(datdata.Type) ? "SuperDAT" : datdata.Type);
|
datdata.Type = (String.IsNullOrEmpty(datdata.Type) ? "SuperDAT" : datdata.Type);
|
||||||
superdat = true;
|
superdat = true;
|
||||||
@@ -194,7 +195,7 @@ namespace SabreTools.Helper
|
|||||||
content = headreader.ReadElementContentAsString(); ;
|
content = headreader.ReadElementContentAsString(); ;
|
||||||
datdata.Name = (String.IsNullOrEmpty(datdata.Name) ? content : datdata.Name);
|
datdata.Name = (String.IsNullOrEmpty(datdata.Name) ? content : datdata.Name);
|
||||||
superdat = superdat || content.Contains(" - SuperDAT");
|
superdat = superdat || content.Contains(" - SuperDAT");
|
||||||
if (keep)
|
if (keep && superdat)
|
||||||
{
|
{
|
||||||
datdata.Type = (String.IsNullOrEmpty(datdata.Type) ? "SuperDAT" : datdata.Type);
|
datdata.Type = (String.IsNullOrEmpty(datdata.Type) ? "SuperDAT" : datdata.Type);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user