mirror of
https://github.com/SabreTools/SabreTools.Serialization.git
synced 2026-07-08 18:06:41 +00:00
Turn dupe type key into a metadata property
This commit is contained in:
@@ -444,9 +444,9 @@ namespace SabreTools.Metadata.DatFiles
|
||||
|
||||
// If the duplicate is external already
|
||||
#if NET20 || NET35
|
||||
if ((last.Read<DupeType>(DatItem.DupeTypeKey) & DupeType.External) != 0)
|
||||
if ((last.DupeType & DupeType.External) != 0)
|
||||
#else
|
||||
if (last.Read<DupeType>(DatItem.DupeTypeKey).HasFlag(DupeType.External))
|
||||
if (last.DupeType.HasFlag(DupeType.External))
|
||||
#endif
|
||||
output |= DupeType.External;
|
||||
|
||||
@@ -539,7 +539,7 @@ namespace SabreTools.Metadata.DatFiles
|
||||
savedRom.FillMissingInformation(romItem);
|
||||
|
||||
// Set the duplicate type on the saved item
|
||||
savedItem.Write(DatItem.DupeTypeKey, dupetype);
|
||||
savedItem.DupeType = dupetype;
|
||||
|
||||
// Get the sources associated with the items
|
||||
var savedSource = savedItem.Source;
|
||||
|
||||
@@ -750,9 +750,9 @@ namespace SabreTools.Metadata.DatFiles
|
||||
|
||||
// If the duplicate is external already
|
||||
#if NET20 || NET35
|
||||
if ((lastItem.Value.Value.Read<DupeType>(DatItem.DupeTypeKey) & DupeType.External) != 0)
|
||||
if ((lastItem.Value.Value.DupeType & DupeType.External) != 0)
|
||||
#else
|
||||
if (lastItem.Value.Value.Read<DupeType>(DatItem.DupeTypeKey).HasFlag(DupeType.External))
|
||||
if (lastItem.Value.Value.DupeType.HasFlag(DupeType.External))
|
||||
#endif
|
||||
output |= DupeType.External;
|
||||
|
||||
@@ -921,7 +921,7 @@ namespace SabreTools.Metadata.DatFiles
|
||||
else if (datItem is Rom romItem && savedItem is Rom savedRom)
|
||||
savedRom.FillMissingInformation(romItem);
|
||||
|
||||
savedItem.Write(DatItem.DupeTypeKey, dupetype);
|
||||
savedItem.DupeType = dupetype;
|
||||
|
||||
// Get the sources associated with the items
|
||||
var savedSource = _sources[_itemToSourceMapping[savedIndex]];
|
||||
|
||||
@@ -30,7 +30,7 @@ namespace SabreTools.Metadata.DatItems.Formats.Test
|
||||
disk.Optional = true;
|
||||
disk.Write(Data.Models.Metadata.Disk.MD5Key, HashType.MD5.ZeroString);
|
||||
disk.Write(Data.Models.Metadata.Disk.SHA1Key, HashType.SHA1.ZeroString);
|
||||
disk.Write(DatItem.DupeTypeKey, DupeType.All | DupeType.External);
|
||||
disk.DupeType = DupeType.All | DupeType.External;
|
||||
disk.Machine = machine;
|
||||
disk.Write(Disk.PartKey, part);
|
||||
disk.RemoveFlag = false;
|
||||
@@ -45,7 +45,7 @@ namespace SabreTools.Metadata.DatItems.Formats.Test
|
||||
Assert.Equal(true, actual.Optional);
|
||||
Assert.Equal(HashType.MD5.ZeroString, actual.ReadString(Data.Models.Metadata.Rom.MD5Key));
|
||||
Assert.Equal(HashType.SHA1.ZeroString, actual.ReadString(Data.Models.Metadata.Rom.SHA1Key));
|
||||
Assert.Equal(DupeType.All | DupeType.External, actual.Read<DupeType>(DatItem.DupeTypeKey));
|
||||
Assert.Equal(DupeType.All | DupeType.External, actual.DupeType);
|
||||
|
||||
DataArea? actualDataArea = actual.Read<DataArea?>(Rom.DataAreaKey);
|
||||
Assert.NotNull(actualDataArea);
|
||||
|
||||
@@ -26,7 +26,7 @@ namespace SabreTools.Metadata.DatItems.Formats.Test
|
||||
SHA256 = "DEADBEEF",
|
||||
Format = "XXXXXX"
|
||||
};
|
||||
file.Write(DatItem.DupeTypeKey, DupeType.All | DupeType.External);
|
||||
file.DupeType = DupeType.All | DupeType.External;
|
||||
file.Machine = machine;
|
||||
file.RemoveFlag = false;
|
||||
file.Source = source;
|
||||
@@ -41,7 +41,7 @@ namespace SabreTools.Metadata.DatItems.Formats.Test
|
||||
Assert.Equal("000000000000000000000000deadbeef", actual.ReadString(Data.Models.Metadata.Rom.MD5Key));
|
||||
Assert.Equal("00000000000000000000000000000000deadbeef", actual.ReadString(Data.Models.Metadata.Rom.SHA1Key));
|
||||
Assert.Equal("00000000000000000000000000000000000000000000000000000000deadbeef", actual.ReadString(Data.Models.Metadata.Rom.SHA256Key));
|
||||
Assert.Equal(DupeType.All | DupeType.External, actual.Read<DupeType>(DatItem.DupeTypeKey));
|
||||
Assert.Equal(DupeType.All | DupeType.External, actual.DupeType);
|
||||
|
||||
Machine? actualMachine = actual.Machine;
|
||||
Assert.NotNull(actualMachine);
|
||||
|
||||
@@ -21,7 +21,7 @@ namespace SabreTools.Metadata.DatItems.Formats.Test
|
||||
media.Write(Data.Models.Metadata.Media.SHA1Key, HashType.SHA1.ZeroString);
|
||||
media.Write(Data.Models.Metadata.Media.SHA256Key, HashType.SHA256.ZeroString);
|
||||
media.Write(Data.Models.Metadata.Media.SpamSumKey, HashType.SpamSum.ZeroString);
|
||||
media.Write(DatItem.DupeTypeKey, DupeType.All | DupeType.External);
|
||||
media.DupeType = DupeType.All | DupeType.External;
|
||||
media.Machine = machine;
|
||||
media.RemoveFlag = false;
|
||||
media.Source = source;
|
||||
@@ -33,7 +33,7 @@ namespace SabreTools.Metadata.DatItems.Formats.Test
|
||||
Assert.Equal(HashType.SHA1.ZeroString, actual.ReadString(Data.Models.Metadata.Rom.SHA1Key));
|
||||
Assert.Equal(HashType.SHA256.ZeroString, actual.ReadString(Data.Models.Metadata.Rom.SHA256Key));
|
||||
Assert.Equal(HashType.SpamSum.ZeroString, actual.ReadString(Data.Models.Metadata.Rom.SpamSumKey));
|
||||
Assert.Equal(DupeType.All | DupeType.External, actual.Read<DupeType>(DatItem.DupeTypeKey));
|
||||
Assert.Equal(DupeType.All | DupeType.External, actual.DupeType);
|
||||
|
||||
Machine? actualMachine = actual.Machine;
|
||||
Assert.NotNull(actualMachine);
|
||||
|
||||
@@ -56,16 +56,12 @@ namespace SabreTools.Metadata.DatItems
|
||||
[XmlInclude(typeof(SourceDetails))]
|
||||
public abstract class DatItem : ModelBackedItem<Data.Models.Metadata.DatItem>, IEquatable<DatItem>, IComparable<DatItem>, ICloneable
|
||||
{
|
||||
#region Constants
|
||||
#region Fields
|
||||
|
||||
/// <summary>
|
||||
/// Duplicate type when compared to another item
|
||||
/// </summary>
|
||||
public const string DupeTypeKey = "DUPETYPE";
|
||||
|
||||
#endregion
|
||||
|
||||
#region Fields
|
||||
public DupeType DupeType { get; set; } = 0x00;
|
||||
|
||||
/// <summary>
|
||||
/// Item type for the object
|
||||
|
||||
@@ -80,13 +80,13 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
|
||||
public Disk() : base()
|
||||
{
|
||||
Write<DupeType>(DupeTypeKey, 0x00);
|
||||
DupeType = 0x00;
|
||||
Status = ItemStatus.None;
|
||||
}
|
||||
|
||||
public Disk(Data.Models.Metadata.Disk item) : base(item)
|
||||
{
|
||||
Write<DupeType>(DupeTypeKey, 0x00);
|
||||
DupeType = 0x00;
|
||||
|
||||
// Process hash values
|
||||
string? md5 = ReadString(Data.Models.Metadata.Disk.MD5Key);
|
||||
@@ -129,7 +129,7 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
rom.Write<DataArea?>(Rom.DataAreaKey, dataArea);
|
||||
}
|
||||
|
||||
rom.Write(DupeTypeKey, Read<DupeType>(DupeTypeKey));
|
||||
rom.DupeType = DupeType;
|
||||
rom.Machine = Machine?.Clone() as Machine;
|
||||
rom.Write(Rom.PartKey, Read<Part>(PartKey)?.Clone() as Part);
|
||||
rom.RemoveFlag = RemoveFlag;
|
||||
|
||||
@@ -120,7 +120,7 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
_sha256 = this._sha256,
|
||||
Format = this.Format,
|
||||
};
|
||||
file.Write(DupeTypeKey, Read<DupeType>(DupeTypeKey));
|
||||
file.DupeType = DupeType;
|
||||
file.Machine = Machine!.Clone() as Machine ?? new Machine();
|
||||
file.RemoveFlag = RemoveFlag;
|
||||
file.Source = Source?.Clone() as Source;
|
||||
@@ -143,7 +143,7 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
rom.Write<string?>(Data.Models.Metadata.Rom.SHA1Key, SHA1);
|
||||
rom.Write<string?>(Data.Models.Metadata.Rom.SHA256Key, SHA256);
|
||||
|
||||
rom.Write(DupeTypeKey, Read<DupeType>(DupeTypeKey));
|
||||
rom.DupeType = DupeType;
|
||||
rom.Machine = Machine?.Clone() as Machine;
|
||||
rom.RemoveFlag = RemoveFlag;
|
||||
rom.Source = Source?.Clone() as Source;
|
||||
|
||||
@@ -25,12 +25,12 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
|
||||
public Media() : base()
|
||||
{
|
||||
Write<DupeType>(DupeTypeKey, 0x00);
|
||||
DupeType = 0x00;
|
||||
}
|
||||
|
||||
public Media(Data.Models.Metadata.Media item) : base(item)
|
||||
{
|
||||
Write<DupeType>(DupeTypeKey, 0x00);
|
||||
DupeType = 0x00;
|
||||
|
||||
// Process hash values
|
||||
string? md5 = ReadString(Data.Models.Metadata.Media.MD5Key);
|
||||
@@ -67,7 +67,7 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
{
|
||||
var rom = new Rom(_internal.ConvertToRom()!);
|
||||
|
||||
rom.Write(DupeTypeKey, Read<DupeType>(DupeTypeKey));
|
||||
rom.DupeType = DupeType;
|
||||
rom.Machine = Machine?.Clone() as Machine;
|
||||
rom.RemoveFlag = RemoveFlag;
|
||||
rom.Source = Source?.Clone() as Source;
|
||||
|
||||
@@ -136,7 +136,7 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
|
||||
public Rom() : base()
|
||||
{
|
||||
Write<DupeType>(DupeTypeKey, 0x00);
|
||||
DupeType = 0x00;
|
||||
Status = ItemStatus.None;
|
||||
}
|
||||
|
||||
@@ -247,7 +247,7 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
|
||||
public Rom(Data.Models.Metadata.Rom item) : base(item)
|
||||
{
|
||||
Write<DupeType>(DupeTypeKey, 0x00);
|
||||
DupeType = 0x00;
|
||||
|
||||
// Process hash values
|
||||
long? size = ReadLong(Data.Models.Metadata.Rom.SizeKey);
|
||||
|
||||
Reference in New Issue
Block a user