Convert size keys to size properties

This commit is contained in:
Matt Nadareski
2026-04-02 23:45:17 -04:00
parent 11803aa34c
commit 3c6cfef070
115 changed files with 377 additions and 446 deletions

View File

@@ -609,7 +609,7 @@ namespace SabreTools.Metadata.DatFiles
// Convert the item
var romItem = new Rom(rom, machine, source);
long? size = romItem.ReadLong(Data.Models.Metadata.Rom.SizeKey);
long? size = romItem.Size;
// If the rom is a continue or ignore
Data.Models.Metadata.LoadFlag? loadFlag = rom.LoadFlag;
@@ -618,8 +618,8 @@ namespace SabreTools.Metadata.DatFiles
|| loadFlag == Data.Models.Metadata.LoadFlag.Ignore))
{
var lastRom = addRoms[addRoms.Count - 1];
long? lastSize = lastRom.ReadLong(Data.Models.Metadata.Rom.SizeKey);
lastRom.Write(Data.Models.Metadata.Rom.SizeKey, lastSize + size);
long? lastSize = lastRom.Size;
lastRom.Size = lastSize + size;
continue;
}

View File

@@ -360,7 +360,7 @@ namespace SabreTools.Metadata.DatFiles
aggregateDataArea = [];
aggregateDataArea.Endianness = dataArea.Endianness;
aggregateDataArea.Name = dataArea.Name;
aggregateDataArea[Data.Models.Metadata.DataArea.SizeKey] = dataArea.ReadString(Data.Models.Metadata.DataArea.SizeKey);
aggregateDataArea.Size = dataArea.Size;
aggregateDataArea[Data.Models.Metadata.DataArea.WidthKey] = dataArea.ReadString(Data.Models.Metadata.DataArea.WidthKey);
}
@@ -786,7 +786,7 @@ namespace SabreTools.Metadata.DatFiles
aggregateDataArea = [];
aggregateDataArea.Endianness = dataArea.Endianness;
aggregateDataArea.Name = dataArea.Name;
aggregateDataArea[Data.Models.Metadata.DataArea.SizeKey] = dataArea.ReadString(Data.Models.Metadata.DataArea.SizeKey);
aggregateDataArea.Size = dataArea.Size;
aggregateDataArea[Data.Models.Metadata.DataArea.WidthKey] = dataArea.ReadString(Data.Models.Metadata.DataArea.WidthKey);
}

View File

@@ -639,7 +639,7 @@ namespace SabreTools.Metadata.DatFiles
sha256 = rom.ReadString(Data.Models.Metadata.Rom.SHA256Key) ?? string.Empty;
sha384 = rom.ReadString(Data.Models.Metadata.Rom.SHA384Key) ?? string.Empty;
sha512 = rom.ReadString(Data.Models.Metadata.Rom.SHA512Key) ?? string.Empty;
size = rom.ReadLong(Data.Models.Metadata.Rom.SizeKey).ToString() ?? string.Empty;
size = rom.Size.ToString() ?? string.Empty;
spamsum = rom.ReadString(Data.Models.Metadata.Rom.SpamSumKey) ?? string.Empty;
}
@@ -681,7 +681,7 @@ namespace SabreTools.Metadata.DatFiles
return item;
// If the item has a size
if (rom.ReadLong(Data.Models.Metadata.Rom.SizeKey) is not null)
if (rom.Size is not null)
return rom;
// If the item CRC isn't "null"
@@ -690,7 +690,7 @@ namespace SabreTools.Metadata.DatFiles
// If the Rom has "null" characteristics, ensure all fields
rom.Name = rom.Name == "null" ? "-" : rom.Name;
rom.Write<string?>(Data.Models.Metadata.Rom.SizeKey, "0");
rom.Size = 0;
rom.Write<string?>(Data.Models.Metadata.Rom.CRC16Key,
rom.ReadString(Data.Models.Metadata.Rom.CRC16Key) == "null" ? HashType.CRC16.ZeroString : null);
rom.Write<string?>(Data.Models.Metadata.Rom.CRCKey,
@@ -999,7 +999,7 @@ namespace SabreTools.Metadata.DatFiles
if (ignoreBlanks && datItem is Rom rom)
{
// If we have a 0-size or blank rom, then we ignore
long? size = rom.ReadLong(Data.Models.Metadata.Rom.SizeKey);
long? size = rom.Size;
if (size == 0 || size is null)
{
string itemString = JsonConvert.SerializeObject(datItem, Formatting.None);

View File

@@ -374,7 +374,7 @@ namespace SabreTools.Metadata.DatFiles
ItemStatus? status = rom.Status;
if (status != ItemStatus.Nodump)
{
TotalSize += rom.ReadLong(Data.Models.Metadata.Rom.SizeKey) ?? 0;
TotalSize += rom.Size ?? 0;
AddHashCount(HashType.CRC16, string.IsNullOrEmpty(rom.ReadString(Data.Models.Metadata.Rom.CRC16Key)) ? 0 : 1);
AddHashCount(HashType.CRC32, string.IsNullOrEmpty(rom.ReadString(Data.Models.Metadata.Rom.CRCKey)) ? 0 : 1);
AddHashCount(HashType.CRC64, string.IsNullOrEmpty(rom.ReadString(Data.Models.Metadata.Rom.CRC64Key)) ? 0 : 1);
@@ -503,7 +503,7 @@ namespace SabreTools.Metadata.DatFiles
ItemStatus? status = rom.Status;
if (status != ItemStatus.Nodump)
{
TotalSize -= rom.ReadLong(Data.Models.Metadata.Rom.SizeKey) ?? 0;
TotalSize -= rom.Size ?? 0;
RemoveHashCount(HashType.CRC16, string.IsNullOrEmpty(rom.ReadString(Data.Models.Metadata.Rom.CRC16Key)) ? 0 : 1);
RemoveHashCount(HashType.CRC32, string.IsNullOrEmpty(rom.ReadString(Data.Models.Metadata.Rom.CRCKey)) ? 0 : 1);
RemoveHashCount(HashType.CRC64, string.IsNullOrEmpty(rom.ReadString(Data.Models.Metadata.Rom.CRC64Key)) ? 0 : 1);

View File

@@ -90,8 +90,8 @@ namespace SabreTools.Metadata.DatFiles.Formats
case Rom rom:
if (string.IsNullOrEmpty(rom.Name))
missingFields.Add(nameof(Data.Models.Metadata.Rom.Name));
if (rom.ReadLong(Data.Models.Metadata.Rom.SizeKey) is null || rom.ReadLong(Data.Models.Metadata.Rom.SizeKey) < 0)
missingFields.Add(Data.Models.Metadata.Rom.SizeKey);
if (rom.Size is null || rom.Size < 0)
missingFields.Add(nameof(Data.Models.Metadata.Rom.Size));
if (string.IsNullOrEmpty(rom.ReadString(Data.Models.Metadata.Rom.CRC16Key))
&& string.IsNullOrEmpty(rom.ReadString(Data.Models.Metadata.Rom.CRCKey))
&& string.IsNullOrEmpty(rom.ReadString(Data.Models.Metadata.Rom.CRC64Key))

View File

@@ -36,8 +36,8 @@ namespace SabreTools.Metadata.DatFiles.Formats
switch (datItem)
{
case Rom rom:
if (rom.ReadLong(Data.Models.Metadata.Rom.SizeKey) is null || rom.ReadLong(Data.Models.Metadata.Rom.SizeKey) < 0)
missingFields.Add(Data.Models.Metadata.Rom.SizeKey);
if (rom.Size is null || rom.Size < 0)
missingFields.Add(nameof(Data.Models.Metadata.Rom.Size));
// if (string.IsNullOrEmpty(rom.Date))
// missingFields.Add(Data.Models.Metadata.Rom.DateKey);
if (string.IsNullOrEmpty(rom.ReadString(Data.Models.Metadata.Rom.CRCKey)))

View File

@@ -46,8 +46,8 @@ namespace SabreTools.Metadata.DatFiles.Formats
break;
case Rom rom:
if (rom.ReadLong(Data.Models.Metadata.Rom.SizeKey) is null || rom.ReadLong(Data.Models.Metadata.Rom.SizeKey) < 0)
missingFields.Add(Data.Models.Metadata.Rom.SizeKey);
if (rom.Size is null || rom.Size < 0)
missingFields.Add(nameof(Data.Models.Metadata.Rom.Size));
if (string.IsNullOrEmpty(rom.ReadString(Data.Models.Metadata.Rom.CRCKey)))
missingFields.Add(Data.Models.Metadata.Rom.CRCKey);
if (string.IsNullOrEmpty(rom.ReadString(Data.Models.Metadata.Rom.SHA1Key)))

View File

@@ -269,8 +269,8 @@ namespace SabreTools.Metadata.DatFiles.Formats
case Rom rom:
if (string.IsNullOrEmpty(rom.Name))
missingFields.Add(nameof(Data.Models.Metadata.Rom.Name));
if (rom.ReadLong(Data.Models.Metadata.Rom.SizeKey) is null || rom.ReadLong(Data.Models.Metadata.Rom.SizeKey) < 0)
missingFields.Add(Data.Models.Metadata.Rom.SizeKey);
if (rom.Size is null || rom.Size < 0)
missingFields.Add(nameof(Data.Models.Metadata.Rom.Size));
if (string.IsNullOrEmpty(rom.ReadString(Data.Models.Metadata.Rom.CRCKey))
&& string.IsNullOrEmpty(rom.ReadString(Data.Models.Metadata.Rom.SHA1Key)))
{

View File

@@ -282,8 +282,8 @@ namespace SabreTools.Metadata.DatFiles.Formats
case Rom rom:
if (string.IsNullOrEmpty(rom.Name))
missingFields.Add(nameof(Data.Models.Metadata.Rom.Name));
if (rom.ReadLong(Data.Models.Metadata.Rom.SizeKey) is null || rom.ReadLong(Data.Models.Metadata.Rom.SizeKey) < 0)
missingFields.Add(Data.Models.Metadata.Rom.SizeKey);
if (rom.Size is null || rom.Size < 0)
missingFields.Add(nameof(Data.Models.Metadata.Rom.Size));
if (string.IsNullOrEmpty(rom.ReadString(Data.Models.Metadata.Rom.CRC16Key))
&& string.IsNullOrEmpty(rom.ReadString(Data.Models.Metadata.Rom.CRCKey))
&& string.IsNullOrEmpty(rom.ReadString(Data.Models.Metadata.Rom.CRC64Key))

View File

@@ -32,8 +32,8 @@ namespace SabreTools.Metadata.DatFiles.Formats
switch (datItem)
{
case Rom rom:
if (rom.ReadLong(Data.Models.Metadata.Rom.SizeKey) is null || rom.ReadLong(Data.Models.Metadata.Rom.SizeKey) < 0)
missingFields.Add(Data.Models.Metadata.Rom.SizeKey);
if (rom.Size is null || rom.Size < 0)
missingFields.Add(nameof(Data.Models.Metadata.Rom.Size));
if (string.IsNullOrEmpty(rom.ReadString(Data.Models.Metadata.Rom.CRCKey)))
missingFields.Add(Data.Models.Metadata.Rom.CRCKey);
break;

View File

@@ -38,8 +38,8 @@ namespace SabreTools.Metadata.DatFiles.Formats
case Rom rom:
if (string.IsNullOrEmpty(rom.ReadString(Data.Models.Metadata.Rom.CRCKey)))
missingFields.Add(Data.Models.Metadata.Rom.CRCKey);
if (rom.ReadLong(Data.Models.Metadata.Rom.SizeKey) is null || rom.ReadLong(Data.Models.Metadata.Rom.SizeKey) < 0)
missingFields.Add(Data.Models.Metadata.Rom.SizeKey);
if (rom.Size is null || rom.Size < 0)
missingFields.Add(nameof(Data.Models.Metadata.Rom.Size));
break;
default:

View File

@@ -93,8 +93,8 @@ namespace SabreTools.Metadata.DatFiles.Formats
break;
case Rom rom:
if (rom.ReadLong(Data.Models.Metadata.Rom.SizeKey) is null || rom.ReadLong(Data.Models.Metadata.Rom.SizeKey) < 0)
missingFields.Add(Data.Models.Metadata.Rom.SizeKey);
if (rom.Size is null || rom.Size < 0)
missingFields.Add(nameof(Data.Models.Metadata.Rom.Size));
if (string.IsNullOrEmpty(rom.ReadString(Data.Models.Metadata.Rom.CRCKey))
&& string.IsNullOrEmpty(rom.ReadString(Data.Models.Metadata.Rom.MD5Key))
&& string.IsNullOrEmpty(rom.ReadString(Data.Models.Metadata.Rom.SHA1Key))

View File

@@ -187,14 +187,14 @@ namespace SabreTools.Metadata.DatFiles.Formats
if (!rom.DataAreaSpecified)
{
missingFields.Add(nameof(Data.Models.Metadata.DataArea.Name));
missingFields.Add(Data.Models.Metadata.DataArea.SizeKey);
missingFields.Add(nameof(Data.Models.Metadata.DataArea.Size));
}
else
{
if (string.IsNullOrEmpty(rom.Read<DataArea?>(Rom.DataAreaKey)!.Name))
missingFields.Add(nameof(Data.Models.Metadata.DataArea.Name));
if (rom.Read<DataArea?>(Rom.DataAreaKey)!.ReadLong(Data.Models.Metadata.DataArea.SizeKey) is null)
missingFields.Add(Data.Models.Metadata.DataArea.SizeKey);
if (rom.Read<DataArea?>(Rom.DataAreaKey)!.Size is null)
missingFields.Add(nameof(Data.Models.Metadata.DataArea.Size));
}
break;

View File

@@ -136,7 +136,7 @@ namespace SabreTools.Metadata.DatFiles
}
else if (item is Rom rom)
{
long? size = rom.ReadLong(Data.Models.Metadata.Rom.SizeKey);
long? size = rom.Size;
// If we have the case where there is SHA-1 and nothing else, we don't fill in any other part of the data
if (size is null && !string.IsNullOrEmpty(rom.ReadString(Data.Models.Metadata.Rom.SHA1Key)))
@@ -149,7 +149,7 @@ namespace SabreTools.Metadata.DatFiles
else if ((size == 0 || size is null)
&& (string.IsNullOrEmpty(rom.ReadString(Data.Models.Metadata.Rom.CRCKey)) || rom.HasZeroHash()))
{
rom.Write<string?>(Data.Models.Metadata.Rom.SizeKey, "0");
rom.Size = 0;
rom.Write<string?>(Data.Models.Metadata.Rom.CRC16Key, null); // HashType.CRC16.ZeroString
rom.Write<string?>(Data.Models.Metadata.Rom.CRCKey, HashType.CRC32.ZeroString);
rom.Write<string?>(Data.Models.Metadata.Rom.CRC64Key, null); // HashType.CRC64.ZeroString

View File

@@ -225,7 +225,7 @@ namespace SabreTools.Metadata.DatFiles
}
else if (item is Rom rom)
{
long? size = rom.ReadLong(Data.Models.Metadata.Rom.SizeKey);
long? size = rom.Size;
// If we have the case where there is SHA-1 and nothing else, we don't fill in any other part of the data
if (size is null && !string.IsNullOrEmpty(rom.ReadString(Data.Models.Metadata.Rom.SHA1Key)))
@@ -238,7 +238,7 @@ namespace SabreTools.Metadata.DatFiles
else if ((size == 0 || size is null)
&& (string.IsNullOrEmpty(rom.ReadString(Data.Models.Metadata.Rom.CRCKey)) || rom.HasZeroHash()))
{
rom.Write<string?>(Data.Models.Metadata.Rom.SizeKey, "0");
rom.Size = 0;
rom.Write<string?>(Data.Models.Metadata.Rom.CRC16Key, null); // HashType.CRC16.ZeroString
rom.Write<string?>(Data.Models.Metadata.Rom.CRCKey, HashType.CRC32.ZeroString);
rom.Write<string?>(Data.Models.Metadata.Rom.CRC64Key, null); // HashType.CRC64.ZeroString