Convert DatHeader to internal models

This commit is contained in:
Matt Nadareski
2024-03-10 04:10:37 -04:00
parent 63d7519adc
commit 7d974d4464
36 changed files with 697 additions and 826 deletions

View File

@@ -335,7 +335,7 @@ namespace SabreTools.DatTools
string romname = string.Empty;
// If we have a SuperDAT, we want anything that's not the base path as the game, and the file as the rom
if (datFile.Header.Type == "SuperDAT")
if (datFile.Header.GetFieldValue<string?>(Models.Metadata.Header.TypeKey) == "SuperDAT")
{
if (basePath != null)
gamename = fulldir.Remove(0, basePath.Length + 1);
@@ -384,7 +384,7 @@ namespace SabreTools.DatTools
private static void ProcessFile(DatFile datFile, string item, string? basePath, HashType[] hashes, TreatAsFile asFiles)
{
logger.Verbose($"'{Path.GetFileName(item)}' treated like a file");
BaseFile? baseFile = BaseFile.GetInfo(item, header: datFile.Header.HeaderSkipper, hashes: hashes, asFiles: asFiles);
BaseFile? baseFile = BaseFile.GetInfo(item, header: datFile.Header.GetFieldValue<string?>(Models.Metadata.Header.HeaderKey), hashes: hashes, asFiles: asFiles);
DatItem? datItem = DatItem.Create(baseFile);
if (datItem != null)
ProcessFileHelper(datFile, item, datItem, basePath, string.Empty);
@@ -447,7 +447,7 @@ namespace SabreTools.DatTools
if (string.IsNullOrEmpty(parent))
{
// If we have a SuperDAT, we want anything that's not the base path as the game, and the file as the rom
if (datFile.Header.Type == "SuperDAT")
if (datFile.Header.GetFieldValue<string?>(Models.Metadata.Header.TypeKey) == "SuperDAT")
{
machineName = Path.GetDirectoryName(item.Remove(0, basepath?.Length ?? 0));
itemName = Path.GetFileName(item);
@@ -468,7 +468,7 @@ namespace SabreTools.DatTools
else
{
// If we have a SuperDAT, we want the archive name as the game, and the file as everything else (?)
if (datFile.Header.Type == "SuperDAT")
if (datFile.Header.GetFieldValue<string?>(Models.Metadata.Header.TypeKey) == "SuperDAT")
{
machineName = parent;
itemName = datItem.GetName();