[DatTools] Make DOSCenter dats compatible

This commit is contained in:
Matt Nadareski
2016-09-12 23:29:23 -07:00
parent 440215ef99
commit 2722ab668e
2 changed files with 19 additions and 4 deletions

View File

@@ -272,7 +272,7 @@ namespace SabreTools.Helper
{ {
GroupCollection gc = Regex.Match(line, Constants.HeaderPatternCMP).Groups; GroupCollection gc = Regex.Match(line, Constants.HeaderPatternCMP).Groups;
if (gc[1].Value == "clrmamepro" || gc[1].Value == "romvault") if (gc[1].Value == "clrmamepro" || gc[1].Value == "romvault" || gc[1].Value.ToLowerInvariant() == "doscenter")
{ {
blockname = "header"; blockname = "header";
} }
@@ -281,7 +281,7 @@ namespace SabreTools.Helper
} }
// If the line is a rom or disk and we're in a block // If the line is a rom or disk and we're in a block
else if ((line.Trim().StartsWith("rom (") || line.Trim().StartsWith("disk (")) && block) else if ((line.Trim().StartsWith("rom (") || line.Trim().StartsWith("disk (") || line.Trim().StartsWith("file (")) && block)
{ {
Rom rom = new Rom Rom rom = new Rom
{ {
@@ -347,6 +347,10 @@ namespace SabreTools.Helper
rom.Nodump = true; rom.Nodump = true;
} }
break; break;
case "date":
rom.Date = gc[i].Replace("\"", "") + " " + gc[i+1].Replace("\"", "");
i++;
break;
} }
attrib = ""; attrib = "";
@@ -404,6 +408,10 @@ namespace SabreTools.Helper
rom.Nodump = true; rom.Nodump = true;
} }
break; break;
case "date":
rom.Date = gc[i].Replace("\"", "") + " " + gc[i + 1].Replace("\"", "");
i++;
break;
} }
quote = false; quote = false;
@@ -455,6 +463,7 @@ namespace SabreTools.Helper
switch (gc[1].Value) switch (gc[1].Value)
{ {
case "name": case "name":
case "Name:":
datdata.Name = (String.IsNullOrEmpty(datdata.Name) ? itemval : datdata.Name); datdata.Name = (String.IsNullOrEmpty(datdata.Name) ? itemval : datdata.Name);
superdat = superdat || itemval.Contains(" - SuperDAT"); superdat = superdat || itemval.Contains(" - SuperDAT");
if (keep && superdat) if (keep && superdat)
@@ -463,6 +472,7 @@ namespace SabreTools.Helper
} }
break; break;
case "description": case "description":
case "Description:":
datdata.Description = (String.IsNullOrEmpty(datdata.Description) ? itemval : datdata.Description); datdata.Description = (String.IsNullOrEmpty(datdata.Description) ? itemval : datdata.Description);
break; break;
case "rootdir": case "rootdir":
@@ -472,24 +482,29 @@ namespace SabreTools.Helper
datdata.Category = (String.IsNullOrEmpty(datdata.Category) ? itemval : datdata.Category); datdata.Category = (String.IsNullOrEmpty(datdata.Category) ? itemval : datdata.Category);
break; break;
case "version": case "version":
case "Version:":
datdata.Version = (String.IsNullOrEmpty(datdata.Version) ? itemval : datdata.Version); datdata.Version = (String.IsNullOrEmpty(datdata.Version) ? itemval : datdata.Version);
break; break;
case "date": case "date":
case "Date:":
datdata.Date = (String.IsNullOrEmpty(datdata.Date) ? itemval : datdata.Date); datdata.Date = (String.IsNullOrEmpty(datdata.Date) ? itemval : datdata.Date);
break; break;
case "author": case "author":
case "Author:":
datdata.Author = (String.IsNullOrEmpty(datdata.Author) ? itemval : datdata.Author); datdata.Author = (String.IsNullOrEmpty(datdata.Author) ? itemval : datdata.Author);
break; break;
case "email": case "email":
datdata.Email = (String.IsNullOrEmpty(datdata.Email) ? itemval : datdata.Email); datdata.Email = (String.IsNullOrEmpty(datdata.Email) ? itemval : datdata.Email);
break; break;
case "homepage": case "homepage":
case "Homepage:":
datdata.Homepage = (String.IsNullOrEmpty(datdata.Homepage) ? itemval : datdata.Homepage); datdata.Homepage = (String.IsNullOrEmpty(datdata.Homepage) ? itemval : datdata.Homepage);
break; break;
case "url": case "url":
datdata.Url = (String.IsNullOrEmpty(datdata.Url) ? itemval : datdata.Url); datdata.Url = (String.IsNullOrEmpty(datdata.Url) ? itemval : datdata.Url);
break; break;
case "comment": case "comment":
case "Comment:":
datdata.Comment = (String.IsNullOrEmpty(datdata.Comment) ? itemval : datdata.Comment); datdata.Comment = (String.IsNullOrEmpty(datdata.Comment) ? itemval : datdata.Comment);
break; break;
case "header": case "header":

View File

@@ -250,9 +250,9 @@ namespace SabreTools.Helper
}); });
return true; return true;
} }
catch (Exception ex) catch (Exception)
{ {
Console.WriteLine(ex); // Absorb the error
return false; return false;
} }
} }