[DatFile] Rely on count

This commit is contained in:
Matt Nadareski
2017-09-25 13:16:16 -07:00
parent 817a6cc180
commit 67e7d12d63
2 changed files with 35 additions and 66 deletions

View File

@@ -236,11 +236,8 @@ namespace SabreTools.Library.Dats
interOutDir = Path.GetDirectoryName(Path.Combine(Environment.CurrentDirectory, splitpath[0].Remove(0, splitpath[1].Length + 1))); interOutDir = Path.GetDirectoryName(Path.Combine(Environment.CurrentDirectory, splitpath[0].Remove(0, splitpath[1].Length + 1)));
} }
// Once we're done, we check to see if there's anything to write out // Once we're done, try writing out
if (intDat.Count > 0) intDat.WriteToFile(interOutDir);
{
intDat.WriteToFile(interOutDir);
}
// Due to possible memory requirements, we force a garbage collection // Due to possible memory requirements, we force a garbage collection
GC.Collect(); GC.Collect();

View File

@@ -1604,70 +1604,42 @@ namespace SabreTools.Library.Dats
{ {
string footer = ""; string footer = "";
// If we have roms, output the full footer // Output the proper footer
if (Count > 0) switch (datFormat)
{ {
switch (datFormat) case DatFormat.ClrMamePro:
{ case DatFormat.DOSCenter:
case DatFormat.ClrMamePro: footer = ")\n";
case DatFormat.DOSCenter: break;
footer = ")\n"; case DatFormat.Logiqx:
break; footer = "\t</machine>\n</datafile>\n";
case DatFormat.Logiqx: break;
footer = "\t</machine>\n</datafile>\n"; case DatFormat.OfflineList:
break; footer = "\t\t</game>"
case DatFormat.OfflineList: + "\t</games>\n"
footer = "\t\t</game>" + "\t<gui>\n"
+ "\t</games>\n" + "\t\t<images width=\"487\" height=\"162\">\n"
+ "\t<gui>\n" + "\t\t\t<image x=\"0\" y=\"0\" width=\"240\" height=\"160\"/>\n"
+ "\t\t<images width=\"487\" height=\"162\">\n" + "\t\t\t<image x=\"245\" y=\"0\" width=\"240\" height=\"160\"/>\n"
+ "\t\t\t<image x=\"0\" y=\"0\" width=\"240\" height=\"160\"/>\n" + "\t\t</images>\n"
+ "\t\t\t<image x=\"245\" y=\"0\" width=\"240\" height=\"160\"/>\n" + "\t</gui>\n"
+ "\t\t</images>\n" + "</dat>";
+ "\t</gui>\n" break;
+ "</dat>"; case DatFormat.SabreDat:
break; for (int i = depth - 1; i >= 2; i--)
case DatFormat.SabreDat: {
for (int i = depth - 1; i >= 2; i--) // Print out the number of tabs and the end folder
for (int j = 0; j < i; j++)
{ {
// Print out the number of tabs and the end folder footer += "\t";
for (int j = 0; j < i; j++)
{
footer += "\t";
}
footer += "</directory>\n";
} }
footer += "\t</data>\n</datafile>\n"; footer += "</directory>\n";
break; }
case DatFormat.SoftwareList: footer += "\t</data>\n</datafile>\n";
footer = "\t</software>\n\n</softwarelist>\n"; break;
break; case DatFormat.SoftwareList:
} footer = "\t</software>\n\n</softwarelist>\n";
} break;
// Otherwise, output the abbreviated form
else
{
switch (datFormat)
{
case DatFormat.Logiqx:
case DatFormat.SabreDat:
footer = "</datafile>\n";
break;
case DatFormat.OfflineList:
footer = "\t</games>\n"
+ "\t<gui>\n"
+ "\t\t<images width=\"487\" height=\"162\">\n"
+ "\t\t\t<image x=\"0\" y=\"0\" width=\"240\" height=\"160\"/>\n"
+ "\t\t\t<image x=\"245\" y=\"0\" width=\"240\" height=\"160\"/>\n"
+ "\t\t</images>\n"
+ "\t</gui>\n"
+ "</dat>";
break;
case DatFormat.SoftwareList:
footer = "</softwarelist>\n";
break;
}
} }
// Write the footer out // Write the footer out