mirror of
https://github.com/SabreTools/SabreTools.Serialization.git
synced 2026-09-22 23:05:12 +00:00
Make Source inherent to DatItem instead of passing through
This commit is contained in:
@@ -26,7 +26,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
datItem.SetName("rom.bin");
|
||||
datItem.Write(Data.Models.Metadata.Rom.CRCKey, "deadbeef");
|
||||
datItem.Machine = machine;
|
||||
datItem.Write(DatItem.SourceKey, source);
|
||||
datItem.Source = source;
|
||||
|
||||
DatFile datFile = new Logiqx(datFile: null, useGame: false);
|
||||
datFile.AddItem(datItem, statsOnly: false);
|
||||
@@ -54,7 +54,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
datItem.SetName("rom.bin");
|
||||
datItem.Write(Data.Models.Metadata.Rom.CRCKey, "deadbeef");
|
||||
datItem.Machine = machine;
|
||||
datItem.Write(DatItem.SourceKey, source);
|
||||
datItem.Source = source;
|
||||
|
||||
DatFile datFile = new Logiqx(datFile: null, useGame: false);
|
||||
long sourceIndex = datFile.AddSourceDB(source);
|
||||
@@ -84,7 +84,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
|
||||
DatItem datItem = new Rom();
|
||||
datItem.Machine = machine;
|
||||
datItem.Write(DatItem.SourceKey, source);
|
||||
datItem.Source = source;
|
||||
|
||||
DatFile datFile = new Logiqx(datFile: null, useGame: false);
|
||||
datFile.AddItem(datItem, statsOnly: false);
|
||||
@@ -131,12 +131,12 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
DatItem rom = new Rom();
|
||||
rom.SetName("rom.bin");
|
||||
rom.Machine = machine;
|
||||
rom.Write(DatItem.SourceKey, source);
|
||||
rom.Source = source;
|
||||
|
||||
DatItem disk = new Disk();
|
||||
disk.SetName("disk");
|
||||
disk.Machine = machine;
|
||||
disk.Write(DatItem.SourceKey, source);
|
||||
disk.Source = source;
|
||||
|
||||
DatFile datFile = new Logiqx(datFile: null, useGame: false);
|
||||
datFile.AddItem(rom, statsOnly: false);
|
||||
@@ -270,7 +270,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
|
||||
DatItem datItem = new Rom();
|
||||
datItem.Machine = machine;
|
||||
datItem.Write(DatItem.SourceKey, source);
|
||||
datItem.Source = source;
|
||||
|
||||
DatFile datFile = new Logiqx(datFile: null, useGame: false);
|
||||
datFile.AddItem(datItem, statsOnly: false);
|
||||
|
||||
@@ -27,21 +27,21 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
parentItem.Write<long>(Data.Models.Metadata.Rom.SizeKey, 12345);
|
||||
parentItem.Write<string?>(Data.Models.Metadata.Rom.CRCKey, "deadbeef");
|
||||
parentItem.Machine = parentMachine;
|
||||
parentItem.Write(DatItem.SourceKey, source);
|
||||
parentItem.Source = source;
|
||||
|
||||
DatItem matchChildItem = new Rom();
|
||||
matchChildItem.SetName("match_child_rom");
|
||||
matchChildItem.Write<long>(Data.Models.Metadata.Rom.SizeKey, 12345);
|
||||
matchChildItem.Write<string?>(Data.Models.Metadata.Rom.CRCKey, "deadbeef");
|
||||
matchChildItem.Machine = childMachine;
|
||||
matchChildItem.Write(DatItem.SourceKey, source);
|
||||
matchChildItem.Source = source;
|
||||
|
||||
DatItem noMatchChildItem = new Rom();
|
||||
noMatchChildItem.SetName("no_match_child_rom");
|
||||
noMatchChildItem.Write<long>(Data.Models.Metadata.Rom.SizeKey, 12345);
|
||||
noMatchChildItem.Write<string?>(Data.Models.Metadata.Rom.CRCKey, "beefdead");
|
||||
noMatchChildItem.Machine = childMachine;
|
||||
noMatchChildItem.Write(DatItem.SourceKey, source);
|
||||
noMatchChildItem.Source = source;
|
||||
|
||||
DatFile datFile = new Logiqx(datFile: null, useGame: false);
|
||||
datFile.AddItem(parentItem, statsOnly: false);
|
||||
@@ -72,21 +72,21 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
parentItem.Write<long>(Data.Models.Metadata.Rom.SizeKey, 12345);
|
||||
parentItem.Write<string?>(Data.Models.Metadata.Rom.CRCKey, "deadbeef");
|
||||
parentItem.Machine = parentMachine;
|
||||
parentItem.Write(DatItem.SourceKey, source);
|
||||
parentItem.Source = source;
|
||||
|
||||
DatItem matchChildItem = new Rom();
|
||||
matchChildItem.SetName("match_child_rom");
|
||||
matchChildItem.Write<long>(Data.Models.Metadata.Rom.SizeKey, 12345);
|
||||
matchChildItem.Write<string?>(Data.Models.Metadata.Rom.CRCKey, "deadbeef");
|
||||
matchChildItem.Machine = childMachine;
|
||||
matchChildItem.Write(DatItem.SourceKey, source);
|
||||
matchChildItem.Source = source;
|
||||
|
||||
DatItem noMatchChildItem = new Rom();
|
||||
noMatchChildItem.SetName("no_match_child_rom");
|
||||
noMatchChildItem.Write<long>(Data.Models.Metadata.Rom.SizeKey, 12345);
|
||||
noMatchChildItem.Write<string?>(Data.Models.Metadata.Rom.CRCKey, "beefdead");
|
||||
noMatchChildItem.Machine = childMachine;
|
||||
noMatchChildItem.Write(DatItem.SourceKey, source);
|
||||
noMatchChildItem.Source = source;
|
||||
|
||||
DatFile datFile = new Logiqx(datFile: null, useGame: false);
|
||||
datFile.AddItem(parentItem, statsOnly: false);
|
||||
@@ -117,21 +117,21 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
parentItem.Write<long>(Data.Models.Metadata.Rom.SizeKey, 12345);
|
||||
parentItem.Write<string?>(Data.Models.Metadata.Rom.CRCKey, "deadbeef");
|
||||
parentItem.Machine = parentMachine;
|
||||
parentItem.Write(DatItem.SourceKey, source);
|
||||
parentItem.Source = source;
|
||||
|
||||
DatItem matchChildItem = new Rom();
|
||||
matchChildItem.SetName("match_child_rom");
|
||||
matchChildItem.Write<long>(Data.Models.Metadata.Rom.SizeKey, 12345);
|
||||
matchChildItem.Write<string?>(Data.Models.Metadata.Rom.CRCKey, "deadbeef");
|
||||
matchChildItem.Machine = childMachine;
|
||||
matchChildItem.Write(DatItem.SourceKey, source);
|
||||
matchChildItem.Source = source;
|
||||
|
||||
DatItem noMatchChildItem = new Rom();
|
||||
noMatchChildItem.SetName("no_match_child_rom");
|
||||
noMatchChildItem.Write<long>(Data.Models.Metadata.Rom.SizeKey, 12345);
|
||||
noMatchChildItem.Write<string?>(Data.Models.Metadata.Rom.CRCKey, "beefdead");
|
||||
noMatchChildItem.Machine = childMachine;
|
||||
noMatchChildItem.Write(DatItem.SourceKey, source);
|
||||
noMatchChildItem.Source = source;
|
||||
|
||||
DatFile datFile = new Logiqx(datFile: null, useGame: false);
|
||||
long biosMachineIndex = datFile.AddMachineDB(parentMachine);
|
||||
@@ -165,21 +165,21 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
parentItem.Write<long>(Data.Models.Metadata.Rom.SizeKey, 12345);
|
||||
parentItem.Write<string?>(Data.Models.Metadata.Rom.CRCKey, "deadbeef");
|
||||
parentItem.Machine = parentMachine;
|
||||
parentItem.Write(DatItem.SourceKey, source);
|
||||
parentItem.Source = source;
|
||||
|
||||
DatItem matchChildItem = new Rom();
|
||||
matchChildItem.SetName("match_child_rom");
|
||||
matchChildItem.Write<long>(Data.Models.Metadata.Rom.SizeKey, 12345);
|
||||
matchChildItem.Write<string?>(Data.Models.Metadata.Rom.CRCKey, "deadbeef");
|
||||
matchChildItem.Machine = childMachine;
|
||||
matchChildItem.Write(DatItem.SourceKey, source);
|
||||
matchChildItem.Source = source;
|
||||
|
||||
DatItem noMatchChildItem = new Rom();
|
||||
noMatchChildItem.SetName("no_match_child_rom");
|
||||
noMatchChildItem.Write<long>(Data.Models.Metadata.Rom.SizeKey, 12345);
|
||||
noMatchChildItem.Write<string?>(Data.Models.Metadata.Rom.CRCKey, "beefdead");
|
||||
noMatchChildItem.Machine = childMachine;
|
||||
noMatchChildItem.Write(DatItem.SourceKey, source);
|
||||
noMatchChildItem.Source = source;
|
||||
|
||||
DatFile datFile = new Logiqx(datFile: null, useGame: false);
|
||||
long biosMachineIndex = datFile.AddMachineDB(parentMachine);
|
||||
@@ -217,21 +217,21 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
parentItem.Write<long>(Data.Models.Metadata.Rom.SizeKey, 12345);
|
||||
parentItem.Write<string?>(Data.Models.Metadata.Rom.CRCKey, "deadbeef");
|
||||
parentItem.Machine = parentMachine;
|
||||
parentItem.Write(DatItem.SourceKey, source);
|
||||
parentItem.Source = source;
|
||||
|
||||
DatItem matchChildItem = new Rom();
|
||||
matchChildItem.SetName("match_child_rom");
|
||||
matchChildItem.Write<long>(Data.Models.Metadata.Rom.SizeKey, 12345);
|
||||
matchChildItem.Write<string?>(Data.Models.Metadata.Rom.CRCKey, "deadbeef");
|
||||
matchChildItem.Machine = childMachine;
|
||||
matchChildItem.Write(DatItem.SourceKey, source);
|
||||
matchChildItem.Source = source;
|
||||
|
||||
DatItem noMatchChildItem = new Rom();
|
||||
noMatchChildItem.SetName("no_match_child_rom");
|
||||
noMatchChildItem.Write<long>(Data.Models.Metadata.Rom.SizeKey, 12345);
|
||||
noMatchChildItem.Write<string?>(Data.Models.Metadata.Rom.CRCKey, "beefdead");
|
||||
noMatchChildItem.Machine = childMachine;
|
||||
noMatchChildItem.Write(DatItem.SourceKey, source);
|
||||
noMatchChildItem.Source = source;
|
||||
|
||||
DatFile datFile = new Logiqx(datFile: null, useGame: false);
|
||||
datFile.AddItem(parentItem, statsOnly: false);
|
||||
@@ -262,21 +262,21 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
parentItem.Write<long>(Data.Models.Metadata.Rom.SizeKey, 12345);
|
||||
parentItem.Write<string?>(Data.Models.Metadata.Rom.CRCKey, "deadbeef");
|
||||
parentItem.Machine = parentMachine;
|
||||
parentItem.Write(DatItem.SourceKey, source);
|
||||
parentItem.Source = source;
|
||||
|
||||
DatItem matchChildItem = new Rom();
|
||||
matchChildItem.SetName("match_child_rom");
|
||||
matchChildItem.Write<long>(Data.Models.Metadata.Rom.SizeKey, 12345);
|
||||
matchChildItem.Write<string?>(Data.Models.Metadata.Rom.CRCKey, "deadbeef");
|
||||
matchChildItem.Machine = childMachine;
|
||||
matchChildItem.Write(DatItem.SourceKey, source);
|
||||
matchChildItem.Source = source;
|
||||
|
||||
DatItem noMatchChildItem = new Rom();
|
||||
noMatchChildItem.SetName("no_match_child_rom");
|
||||
noMatchChildItem.Write<long>(Data.Models.Metadata.Rom.SizeKey, 12345);
|
||||
noMatchChildItem.Write<string?>(Data.Models.Metadata.Rom.CRCKey, "beefdead");
|
||||
noMatchChildItem.Machine = childMachine;
|
||||
noMatchChildItem.Write(DatItem.SourceKey, source);
|
||||
noMatchChildItem.Source = source;
|
||||
|
||||
DatFile datFile = new Logiqx(datFile: null, useGame: false);
|
||||
long biosMachineIndex = datFile.AddMachineDB(parentMachine);
|
||||
@@ -318,29 +318,29 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
DatItem deviceItem = new Sample();
|
||||
deviceItem.SetName("device_item");
|
||||
deviceItem.Machine = deviceMachine;
|
||||
deviceItem.Write(DatItem.SourceKey, source);
|
||||
deviceItem.Source = source;
|
||||
|
||||
DatItem slotOptionItem = new Sample();
|
||||
slotOptionItem.SetName("slot_option_item");
|
||||
slotOptionItem.Machine = slotOptionMachine;
|
||||
slotOptionItem.Write(DatItem.SourceKey, source);
|
||||
slotOptionItem.Source = source;
|
||||
|
||||
DatItem datItem = new Rom();
|
||||
datItem.SetName("rom");
|
||||
datItem.Write<long>(Data.Models.Metadata.Rom.SizeKey, 12345);
|
||||
datItem.Write<string?>(Data.Models.Metadata.Rom.CRCKey, "deadbeef");
|
||||
datItem.Machine = itemMachine;
|
||||
datItem.Write(DatItem.SourceKey, source);
|
||||
datItem.Source = source;
|
||||
|
||||
DatItem deviceRef = new DeviceRef();
|
||||
deviceRef.SetName("device");
|
||||
deviceRef.Machine = itemMachine;
|
||||
deviceRef.Write(DatItem.SourceKey, source);
|
||||
deviceRef.Source = source;
|
||||
|
||||
DatItem slotOption = new SlotOption();
|
||||
slotOption.SetName("slotoption");
|
||||
slotOption.Machine = itemMachine;
|
||||
slotOption.Write(DatItem.SourceKey, source);
|
||||
slotOption.Source = source;
|
||||
|
||||
DatFile datFile = new Logiqx(datFile: null, useGame: false);
|
||||
datFile.AddItem(deviceItem, statsOnly: false);
|
||||
@@ -430,21 +430,21 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
parentItem.Write<long>(Data.Models.Metadata.Rom.SizeKey, 12345);
|
||||
parentItem.Write<string?>(Data.Models.Metadata.Rom.CRCKey, "deadbeef");
|
||||
parentItem.Machine = parentMachine;
|
||||
parentItem.Write(DatItem.SourceKey, source);
|
||||
parentItem.Source = source;
|
||||
|
||||
DatItem matchChildItem = new Rom();
|
||||
matchChildItem.SetName("match_child_rom");
|
||||
matchChildItem.Write<long>(Data.Models.Metadata.Rom.SizeKey, 12345);
|
||||
matchChildItem.Write<string?>(Data.Models.Metadata.Rom.CRCKey, "deadbeef");
|
||||
matchChildItem.Machine = childMachine;
|
||||
matchChildItem.Write(DatItem.SourceKey, source);
|
||||
matchChildItem.Source = source;
|
||||
|
||||
DatItem noMatchChildItem = new Rom();
|
||||
noMatchChildItem.SetName("no_match_child_rom");
|
||||
noMatchChildItem.Write<long>(Data.Models.Metadata.Rom.SizeKey, 12345);
|
||||
noMatchChildItem.Write<string?>(Data.Models.Metadata.Rom.CRCKey, "beefdead");
|
||||
noMatchChildItem.Machine = childMachine;
|
||||
noMatchChildItem.Write(DatItem.SourceKey, source);
|
||||
noMatchChildItem.Source = source;
|
||||
|
||||
DatFile datFile = new Logiqx(datFile: null, useGame: false);
|
||||
datFile.AddItem(parentItem, statsOnly: false);
|
||||
@@ -475,21 +475,21 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
parentItem.Write<long>(Data.Models.Metadata.Rom.SizeKey, 12345);
|
||||
parentItem.Write<string?>(Data.Models.Metadata.Rom.CRCKey, "deadbeef");
|
||||
parentItem.Machine = parentMachine;
|
||||
parentItem.Write(DatItem.SourceKey, source);
|
||||
parentItem.Source = source;
|
||||
|
||||
DatItem matchChildItem = new Rom();
|
||||
matchChildItem.SetName("match_child_rom");
|
||||
matchChildItem.Write<long>(Data.Models.Metadata.Rom.SizeKey, 12345);
|
||||
matchChildItem.Write<string?>(Data.Models.Metadata.Rom.CRCKey, "deadbeef");
|
||||
matchChildItem.Machine = childMachine;
|
||||
matchChildItem.Write(DatItem.SourceKey, source);
|
||||
matchChildItem.Source = source;
|
||||
|
||||
DatItem noMatchChildItem = new Rom();
|
||||
noMatchChildItem.SetName("no_match_child_rom");
|
||||
noMatchChildItem.Write<long>(Data.Models.Metadata.Rom.SizeKey, 12345);
|
||||
noMatchChildItem.Write<string?>(Data.Models.Metadata.Rom.CRCKey, "beefdead");
|
||||
noMatchChildItem.Machine = childMachine;
|
||||
noMatchChildItem.Write(DatItem.SourceKey, source);
|
||||
noMatchChildItem.Source = source;
|
||||
|
||||
DatFile datFile = new Logiqx(datFile: null, useGame: false);
|
||||
long biosMachineIndex = datFile.AddMachineDB(parentMachine);
|
||||
@@ -524,11 +524,11 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
|
||||
DatItem biosItem = new Rom();
|
||||
biosItem.Machine = biosMachine;
|
||||
biosItem.Write(DatItem.SourceKey, source);
|
||||
biosItem.Source = source;
|
||||
|
||||
DatItem deviceItem = new Rom();
|
||||
deviceItem.Machine = deviceMachine;
|
||||
deviceItem.Write(DatItem.SourceKey, source);
|
||||
deviceItem.Source = source;
|
||||
|
||||
DatFile datFile = new Logiqx(datFile: null, useGame: false);
|
||||
datFile.AddItem(biosItem, statsOnly: false);
|
||||
@@ -592,21 +592,21 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
parentItem.Write<long>(Data.Models.Metadata.Rom.SizeKey, 12345);
|
||||
parentItem.Write<string?>(Data.Models.Metadata.Rom.CRCKey, "deadbeef");
|
||||
parentItem.Machine = parentMachine;
|
||||
parentItem.Write(DatItem.SourceKey, source);
|
||||
parentItem.Source = source;
|
||||
|
||||
DatItem matchChildItem = new Rom();
|
||||
matchChildItem.SetName("match_child_rom");
|
||||
matchChildItem.Write<long>(Data.Models.Metadata.Rom.SizeKey, 12345);
|
||||
matchChildItem.Write<string?>(Data.Models.Metadata.Rom.CRCKey, "deadbeef");
|
||||
matchChildItem.Machine = childMachine;
|
||||
matchChildItem.Write(DatItem.SourceKey, source);
|
||||
matchChildItem.Source = source;
|
||||
|
||||
DatItem noMatchChildItem = new Rom();
|
||||
noMatchChildItem.SetName("no_match_child_rom");
|
||||
noMatchChildItem.Write<long>(Data.Models.Metadata.Rom.SizeKey, 12345);
|
||||
noMatchChildItem.Write<string?>(Data.Models.Metadata.Rom.CRCKey, "beefdead");
|
||||
noMatchChildItem.Machine = childMachine;
|
||||
noMatchChildItem.Write(DatItem.SourceKey, source);
|
||||
noMatchChildItem.Source = source;
|
||||
|
||||
DatFile datFile = new Logiqx(datFile: null, useGame: false);
|
||||
datFile.AddItem(parentItem, statsOnly: false);
|
||||
@@ -642,21 +642,21 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
parentItem.Write<long>(Data.Models.Metadata.Rom.SizeKey, 12345);
|
||||
parentItem.Write<string?>(Data.Models.Metadata.Rom.CRCKey, "deadbeef");
|
||||
parentItem.Machine = parentMachine;
|
||||
parentItem.Write(DatItem.SourceKey, source);
|
||||
parentItem.Source = source;
|
||||
|
||||
DatItem matchChildItem = new Rom();
|
||||
matchChildItem.SetName("match_child_rom");
|
||||
matchChildItem.Write<long>(Data.Models.Metadata.Rom.SizeKey, 12345);
|
||||
matchChildItem.Write<string?>(Data.Models.Metadata.Rom.CRCKey, "deadbeef");
|
||||
matchChildItem.Machine = childMachine;
|
||||
matchChildItem.Write(DatItem.SourceKey, source);
|
||||
matchChildItem.Source = source;
|
||||
|
||||
DatItem noMatchChildItem = new Rom();
|
||||
noMatchChildItem.SetName("no_match_child_rom");
|
||||
noMatchChildItem.Write<long>(Data.Models.Metadata.Rom.SizeKey, 12345);
|
||||
noMatchChildItem.Write<string?>(Data.Models.Metadata.Rom.CRCKey, "beefdead");
|
||||
noMatchChildItem.Machine = childMachine;
|
||||
noMatchChildItem.Write(DatItem.SourceKey, source);
|
||||
noMatchChildItem.Source = source;
|
||||
|
||||
DatFile datFile = new Logiqx(datFile: null, useGame: false);
|
||||
long biosMachineIndex = datFile.AddMachineDB(parentMachine);
|
||||
@@ -699,21 +699,21 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
parentItem.Write<long>(Data.Models.Metadata.Rom.SizeKey, 12345);
|
||||
parentItem.Write<string?>(Data.Models.Metadata.Rom.CRCKey, "deadbeef");
|
||||
parentItem.Machine = parentMachine;
|
||||
parentItem.Write(DatItem.SourceKey, source);
|
||||
parentItem.Source = source;
|
||||
|
||||
DatItem matchChildItem = new Rom();
|
||||
matchChildItem.SetName("match_child_rom");
|
||||
matchChildItem.Write<long>(Data.Models.Metadata.Rom.SizeKey, 12345);
|
||||
matchChildItem.Write<string?>(Data.Models.Metadata.Rom.CRCKey, "deadbeef");
|
||||
matchChildItem.Machine = childMachine;
|
||||
matchChildItem.Write(DatItem.SourceKey, source);
|
||||
matchChildItem.Source = source;
|
||||
|
||||
DatItem noMatchChildItem = new Rom();
|
||||
noMatchChildItem.SetName("no_match_child_rom");
|
||||
noMatchChildItem.Write<long>(Data.Models.Metadata.Rom.SizeKey, 12345);
|
||||
noMatchChildItem.Write<string?>(Data.Models.Metadata.Rom.CRCKey, "beefdead");
|
||||
noMatchChildItem.Machine = childMachine;
|
||||
noMatchChildItem.Write(DatItem.SourceKey, source);
|
||||
noMatchChildItem.Source = source;
|
||||
|
||||
DatFile datFile = new Logiqx(datFile: null, useGame: false);
|
||||
datFile.AddItem(parentItem, statsOnly: false);
|
||||
@@ -748,21 +748,21 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
parentItem.Write<long>(Data.Models.Metadata.Rom.SizeKey, 12345);
|
||||
parentItem.Write<string?>(Data.Models.Metadata.Rom.CRCKey, "deadbeef");
|
||||
parentItem.Machine = parentMachine;
|
||||
parentItem.Write(DatItem.SourceKey, source);
|
||||
parentItem.Source = source;
|
||||
|
||||
DatItem matchChildItem = new Rom();
|
||||
matchChildItem.SetName("match_child_rom");
|
||||
matchChildItem.Write<long>(Data.Models.Metadata.Rom.SizeKey, 12345);
|
||||
matchChildItem.Write<string?>(Data.Models.Metadata.Rom.CRCKey, "deadbeef");
|
||||
matchChildItem.Machine = childMachine;
|
||||
matchChildItem.Write(DatItem.SourceKey, source);
|
||||
matchChildItem.Source = source;
|
||||
|
||||
DatItem noMatchChildItem = new Rom();
|
||||
noMatchChildItem.SetName("no_match_child_rom");
|
||||
noMatchChildItem.Write<long>(Data.Models.Metadata.Rom.SizeKey, 12345);
|
||||
noMatchChildItem.Write<string?>(Data.Models.Metadata.Rom.CRCKey, "beefdead");
|
||||
noMatchChildItem.Machine = childMachine;
|
||||
noMatchChildItem.Write(DatItem.SourceKey, source);
|
||||
noMatchChildItem.Source = source;
|
||||
|
||||
DatFile datFile = new Logiqx(datFile: null, useGame: false);
|
||||
long biosMachineIndex = datFile.AddMachineDB(parentMachine);
|
||||
@@ -799,7 +799,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
|
||||
DatItem datItem = new Rom();
|
||||
datItem.Machine = machine;
|
||||
datItem.Write(DatItem.SourceKey, source);
|
||||
datItem.Source = source;
|
||||
|
||||
DatFile datFile = new Logiqx(datFile: null, useGame: false);
|
||||
datFile.AddItem(datItem, statsOnly: false);
|
||||
|
||||
@@ -36,7 +36,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
DatItem rom = new Rom();
|
||||
rom.SetName("rom");
|
||||
rom.Write(Data.Models.Metadata.Rom.CRCKey, "deadbeef");
|
||||
rom.Write(DatItem.SourceKey, source);
|
||||
rom.Source = source;
|
||||
rom.Machine = machine;
|
||||
|
||||
DatFile? datFile = new Logiqx(datFile: null, useGame: false);
|
||||
@@ -76,7 +76,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
machine.Name = "game-1";
|
||||
|
||||
DatItem datItem = new Rom();
|
||||
datItem.Write<Source?>(DatItem.SourceKey, source);
|
||||
datItem.Source = source;
|
||||
datItem.Machine = machine;
|
||||
|
||||
DatFile datFile = new Logiqx(datFile: null, useGame: false);
|
||||
@@ -1961,7 +1961,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
romA.Write(Data.Models.Metadata.Rom.SizeKey, 12345);
|
||||
romA.Write(Data.Models.Metadata.Rom.CRCKey, "crc");
|
||||
romA.Machine = (Machine)machine.Clone();
|
||||
romA.Write(DatItem.SourceKey, (Source)source.Clone());
|
||||
romA.Source = (Source)source.Clone();
|
||||
|
||||
List<DatItem> datItems = [romA];
|
||||
|
||||
@@ -1989,14 +1989,14 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
romA.Write(Data.Models.Metadata.Rom.SizeKey, 12345);
|
||||
romA.Write(Data.Models.Metadata.Rom.CRCKey, "crc");
|
||||
romA.Machine = (Machine)machine.Clone();
|
||||
romA.Write(DatItem.SourceKey, (Source)source.Clone());
|
||||
romA.Source = (Source)source.Clone();
|
||||
|
||||
Rom romB = new Rom();
|
||||
romB.SetName("romB");
|
||||
romB.Write(Data.Models.Metadata.Rom.SizeKey, 23456);
|
||||
romB.Write(Data.Models.Metadata.Rom.CRCKey, "crc2");
|
||||
romB.Machine = (Machine)machine.Clone();
|
||||
romB.Write(DatItem.SourceKey, (Source)source.Clone());
|
||||
romB.Source = (Source)source.Clone();
|
||||
|
||||
List<DatItem> datItems = [romA, romB];
|
||||
|
||||
@@ -2031,14 +2031,14 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
romA.Write(Data.Models.Metadata.Rom.SizeKey, 12345);
|
||||
romA.Write(Data.Models.Metadata.Rom.CRCKey, "crc");
|
||||
romA.Machine = (Machine)machine.Clone();
|
||||
romA.Write(DatItem.SourceKey, (Source)source.Clone());
|
||||
romA.Source = (Source)source.Clone();
|
||||
|
||||
Rom romB = new Rom();
|
||||
romB.SetName("rom");
|
||||
romB.Write(Data.Models.Metadata.Rom.SizeKey, 12345);
|
||||
romB.Write(Data.Models.Metadata.Rom.CRCKey, "crc");
|
||||
romB.Machine = (Machine)machine.Clone();
|
||||
romB.Write(DatItem.SourceKey, (Source)source.Clone());
|
||||
romB.Source = (Source)source.Clone();
|
||||
|
||||
List<DatItem> datItems = [romA, romB];
|
||||
|
||||
@@ -2066,14 +2066,14 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
romA.Write(Data.Models.Metadata.Rom.SizeKey, 12345);
|
||||
romA.Write(Data.Models.Metadata.Rom.CRCKey, "crc");
|
||||
romA.Machine = (Machine)machine.Clone();
|
||||
romA.Write(DatItem.SourceKey, (Source)source.Clone());
|
||||
romA.Source = (Source)source.Clone();
|
||||
|
||||
Rom romB = new Rom();
|
||||
romB.SetName("rom");
|
||||
romB.Write(Data.Models.Metadata.Rom.SizeKey, 23456);
|
||||
romB.Write(Data.Models.Metadata.Rom.CRCKey, "crc2");
|
||||
romB.Machine = (Machine)machine.Clone();
|
||||
romB.Write(DatItem.SourceKey, (Source)source.Clone());
|
||||
romB.Source = (Source)source.Clone();
|
||||
|
||||
List<DatItem> datItems = [romA, romB];
|
||||
|
||||
@@ -2123,7 +2123,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
romA.Write(Data.Models.Metadata.Rom.SizeKey, 12345);
|
||||
romA.Write(Data.Models.Metadata.Rom.CRCKey, "crc");
|
||||
romA.Machine = (Machine)machine.Clone();
|
||||
romA.Write(DatItem.SourceKey, (Source)source.Clone());
|
||||
romA.Source = (Source)source.Clone();
|
||||
|
||||
List<KeyValuePair<long, DatItem>> mappings =
|
||||
[
|
||||
@@ -2153,14 +2153,14 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
romA.Write(Data.Models.Metadata.Rom.SizeKey, 12345);
|
||||
romA.Write(Data.Models.Metadata.Rom.CRCKey, "crc");
|
||||
romA.Machine = (Machine)machine.Clone();
|
||||
romA.Write(DatItem.SourceKey, (Source)source.Clone());
|
||||
romA.Source = (Source)source.Clone();
|
||||
|
||||
Rom romB = new Rom();
|
||||
romB.SetName("romB");
|
||||
romB.Write(Data.Models.Metadata.Rom.SizeKey, 23456);
|
||||
romB.Write(Data.Models.Metadata.Rom.CRCKey, "crc2");
|
||||
romB.Machine = (Machine)machine.Clone();
|
||||
romB.Write(DatItem.SourceKey, (Source)source.Clone());
|
||||
romB.Source = (Source)source.Clone();
|
||||
|
||||
List<KeyValuePair<long, DatItem>> mappings =
|
||||
[
|
||||
@@ -2237,14 +2237,14 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
romA.Write(Data.Models.Metadata.Rom.SizeKey, 12345);
|
||||
romA.Write(Data.Models.Metadata.Rom.CRCKey, "crc");
|
||||
romA.Machine = (Machine)machine.Clone();
|
||||
romA.Write(DatItem.SourceKey, (Source)source.Clone());
|
||||
romA.Source = (Source)source.Clone();
|
||||
|
||||
Rom romB = new Rom();
|
||||
romB.SetName("rom");
|
||||
romB.Write(Data.Models.Metadata.Rom.SizeKey, 23456);
|
||||
romB.Write(Data.Models.Metadata.Rom.CRCKey, "crc2");
|
||||
romB.Machine = (Machine)machine.Clone();
|
||||
romB.Write(DatItem.SourceKey, (Source)source.Clone());
|
||||
romB.Source = (Source)source.Clone();
|
||||
|
||||
List<KeyValuePair<long, DatItem>> mappings =
|
||||
[
|
||||
|
||||
@@ -19,7 +19,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
DatItem disk = new Disk();
|
||||
disk.SetName("item");
|
||||
disk.Write<string?>(Data.Models.Metadata.Disk.SHA1Key, "deadbeef");
|
||||
disk.Write<Source?>(DatItem.SourceKey, source);
|
||||
disk.Source = source;
|
||||
disk.Machine = machine;
|
||||
|
||||
var dict = new ItemDictionary();
|
||||
@@ -39,7 +39,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
|
||||
DatItem disk = new Disk();
|
||||
disk.SetName("item");
|
||||
disk.Write<Source?>(DatItem.SourceKey, source);
|
||||
disk.Source = source;
|
||||
disk.Machine = machine;
|
||||
|
||||
var dict = new ItemDictionary();
|
||||
@@ -60,7 +60,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
var file = new File();
|
||||
file.SetName("item");
|
||||
file.SHA1 = "deadbeef";
|
||||
file.Write<Source?>(DatItem.SourceKey, source);
|
||||
file.Source = source;
|
||||
file.Machine = machine;
|
||||
|
||||
var dict = new ItemDictionary();
|
||||
@@ -79,7 +79,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
|
||||
DatItem file = new File();
|
||||
file.SetName("item");
|
||||
file.Write<Source?>(DatItem.SourceKey, source);
|
||||
file.Source = source;
|
||||
file.Machine = machine;
|
||||
|
||||
var dict = new ItemDictionary();
|
||||
@@ -99,7 +99,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
DatItem media = new Media();
|
||||
media.SetName("item");
|
||||
media.Write<string?>(Data.Models.Metadata.Media.SHA1Key, "deadbeef");
|
||||
media.Write<Source?>(DatItem.SourceKey, source);
|
||||
media.Source = source;
|
||||
media.Machine = machine;
|
||||
|
||||
var dict = new ItemDictionary();
|
||||
@@ -118,7 +118,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
|
||||
DatItem media = new Media();
|
||||
media.SetName("item");
|
||||
media.Write<Source?>(DatItem.SourceKey, source);
|
||||
media.Source = source;
|
||||
media.Machine = machine;
|
||||
|
||||
var dict = new ItemDictionary();
|
||||
@@ -139,7 +139,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
rom.SetName("item");
|
||||
rom.Write<long?>(Data.Models.Metadata.Rom.SizeKey, 12345);
|
||||
rom.Write<string?>(Data.Models.Metadata.Rom.SHA1Key, "deadbeef");
|
||||
rom.Write<Source?>(DatItem.SourceKey, source);
|
||||
rom.Source = source;
|
||||
rom.Machine = machine;
|
||||
|
||||
var dict = new ItemDictionary();
|
||||
@@ -162,7 +162,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
DatItem rom = new Rom();
|
||||
rom.SetName("item");
|
||||
rom.Write<long?>(Data.Models.Metadata.Rom.SizeKey, 12345);
|
||||
rom.Write<Source?>(DatItem.SourceKey, source);
|
||||
rom.Source = source;
|
||||
rom.Machine = machine;
|
||||
|
||||
var dict = new ItemDictionary();
|
||||
@@ -185,7 +185,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
DatItem rom = new Rom();
|
||||
rom.SetName("item");
|
||||
rom.Write<string?>(Data.Models.Metadata.Rom.SHA1Key, "deadbeef");
|
||||
rom.Write<Source?>(DatItem.SourceKey, source);
|
||||
rom.Source = source;
|
||||
rom.Machine = machine;
|
||||
|
||||
var dict = new ItemDictionary();
|
||||
@@ -207,7 +207,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
|
||||
DatItem rom = new Rom();
|
||||
rom.SetName("item");
|
||||
rom.Write<Source?>(DatItem.SourceKey, source);
|
||||
rom.Source = source;
|
||||
rom.Machine = machine;
|
||||
|
||||
var dict = new ItemDictionary();
|
||||
@@ -229,7 +229,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
|
||||
DatItem item = new Rom();
|
||||
item.SetName("item");
|
||||
item.Write<Source?>(DatItem.SourceKey, source);
|
||||
item.Source = source;
|
||||
item.Machine = machine;
|
||||
|
||||
var dict = new ItemDictionary();
|
||||
@@ -246,7 +246,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
|
||||
DatItem item = new Rom();
|
||||
item.SetName("item");
|
||||
item.Write<Source?>(DatItem.SourceKey, source);
|
||||
item.Source = source;
|
||||
item.Machine = machine;
|
||||
|
||||
var dict = new ItemDictionary();
|
||||
@@ -305,7 +305,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
machine.Name = "machine";
|
||||
|
||||
DatItem item = new Rom();
|
||||
item.Write<Source?>(DatItem.SourceKey, source);
|
||||
item.Source = source;
|
||||
item.Machine = machine;
|
||||
|
||||
var dict = new ItemDictionary();
|
||||
@@ -325,7 +325,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
machine.Name = "machine";
|
||||
|
||||
DatItem item = new Rom();
|
||||
item.Write<Source?>(DatItem.SourceKey, source);
|
||||
item.Source = source;
|
||||
item.Machine = machine;
|
||||
|
||||
var dict = new ItemDictionary();
|
||||
@@ -346,7 +346,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
|
||||
DatItem item = new Rom();
|
||||
item.Write<bool?>(DatItem.RemoveKey, true);
|
||||
item.Write<Source?>(DatItem.SourceKey, source);
|
||||
item.Source = source;
|
||||
item.Machine = machine;
|
||||
|
||||
var dict = new ItemDictionary();
|
||||
@@ -367,7 +367,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
|
||||
DatItem item = new Rom();
|
||||
item.Write<bool?>(DatItem.RemoveKey, true);
|
||||
item.Write<Source?>(DatItem.SourceKey, source);
|
||||
item.Source = source;
|
||||
item.Machine = machine;
|
||||
|
||||
var dict = new ItemDictionary();
|
||||
@@ -387,7 +387,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
machine.Name = "machine";
|
||||
|
||||
DatItem item = new Rom();
|
||||
item.Write<Source?>(DatItem.SourceKey, source);
|
||||
item.Source = source;
|
||||
item.Machine = machine;
|
||||
|
||||
var dict = new ItemDictionary();
|
||||
@@ -577,13 +577,13 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
var romA = new Rom();
|
||||
romA.Name = "same-name";
|
||||
romA.Write(Data.Models.Metadata.Rom.CRCKey, "BEEFDEAD");
|
||||
romA.Write<Source?>(DatItem.SourceKey, new Source(0));
|
||||
romA.Source = new Source(0);
|
||||
romA.CopyMachineInformation(machineA);
|
||||
|
||||
var romB = new Rom();
|
||||
romB.Name = "same-name";
|
||||
romB.Write(Data.Models.Metadata.Rom.CRCKey, "DEADBEEF");
|
||||
romB.Write<Source?>(DatItem.SourceKey, new Source(1));
|
||||
romB.Source = new Source(1);
|
||||
romB.CopyMachineInformation(machineB);
|
||||
|
||||
var actual = dict.GetDuplicateStatus(romA, romB);
|
||||
@@ -604,13 +604,13 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
var romA = new Rom();
|
||||
romA.Name = "same-name";
|
||||
romA.Write(Data.Models.Metadata.Rom.CRCKey, "DEADBEEF");
|
||||
romA.Write<Source?>(DatItem.SourceKey, new Source(0));
|
||||
romA.Source = new Source(0);
|
||||
romA.CopyMachineInformation(machineA);
|
||||
|
||||
var romB = new Rom();
|
||||
romB.Name = "same-name";
|
||||
romB.Write(Data.Models.Metadata.Rom.CRCKey, "DEADBEEF");
|
||||
romB.Write<Source?>(DatItem.SourceKey, new Source(1));
|
||||
romB.Source = new Source(1);
|
||||
romB.CopyMachineInformation(machineB);
|
||||
|
||||
var actual = dict.GetDuplicateStatus(romA, romB);
|
||||
@@ -631,13 +631,13 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
var romA = new Rom();
|
||||
romA.Name = "same-name";
|
||||
romA.Write(Data.Models.Metadata.Rom.CRCKey, "DEADBEEF");
|
||||
romA.Write<Source?>(DatItem.SourceKey, new Source(0));
|
||||
romA.Source = new Source(0);
|
||||
romA.CopyMachineInformation(machineA);
|
||||
|
||||
var romB = new Rom();
|
||||
romB.Name = "same-name";
|
||||
romB.Write(Data.Models.Metadata.Rom.CRCKey, "DEADBEEF");
|
||||
romB.Write<Source?>(DatItem.SourceKey, new Source(1));
|
||||
romB.Source = new Source(1);
|
||||
romB.CopyMachineInformation(machineB);
|
||||
|
||||
var actual = dict.GetDuplicateStatus(romA, romB);
|
||||
@@ -658,13 +658,13 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
var romA = new Rom();
|
||||
romA.Name = "same-name";
|
||||
romA.Write(Data.Models.Metadata.Rom.CRCKey, "DEADBEEF");
|
||||
romA.Write<Source?>(DatItem.SourceKey, new Source(0));
|
||||
romA.Source = new Source(0);
|
||||
romA.CopyMachineInformation(machineA);
|
||||
|
||||
var romB = new Rom();
|
||||
romB.Name = "same-name";
|
||||
romB.Write(Data.Models.Metadata.Rom.CRCKey, "DEADBEEF");
|
||||
romB.Write<Source?>(DatItem.SourceKey, new Source(0));
|
||||
romB.Source = new Source(0);
|
||||
romB.CopyMachineInformation(machineB);
|
||||
|
||||
var actual = dict.GetDuplicateStatus(romA, romB);
|
||||
@@ -685,13 +685,13 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
var romA = new Rom();
|
||||
romA.Name = "same-name";
|
||||
romA.Write(Data.Models.Metadata.Rom.CRCKey, "DEADBEEF");
|
||||
romA.Write<Source?>(DatItem.SourceKey, new Source(0));
|
||||
romA.Source = new Source(0);
|
||||
romA.CopyMachineInformation(machineA);
|
||||
|
||||
var romB = new Rom();
|
||||
romB.Name = "same-name";
|
||||
romB.Write(Data.Models.Metadata.Rom.CRCKey, "DEADBEEF");
|
||||
romB.Write<Source?>(DatItem.SourceKey, new Source(0));
|
||||
romB.Source = new Source(0);
|
||||
romB.CopyMachineInformation(machineB);
|
||||
|
||||
var actual = dict.GetDuplicateStatus(romA, romB);
|
||||
@@ -796,7 +796,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
item.SetName("rom");
|
||||
item.Write<long?>(Data.Models.Metadata.Rom.SizeKey, 12345);
|
||||
item.Write<string?>(Data.Models.Metadata.Rom.CRCKey, "deadbeef");
|
||||
item.Write<Source?>(DatItem.SourceKey, source);
|
||||
item.Source = source;
|
||||
item.Machine = machine;
|
||||
|
||||
var dict = new ItemDictionary();
|
||||
|
||||
@@ -480,7 +480,7 @@ namespace SabreTools.Metadata.DatFiles
|
||||
Array.ForEach(filtered, item =>
|
||||
{
|
||||
var datItem = new Rom(item, machine, source);
|
||||
datItem.Write<Source?>(DatItem.SourceKey, source);
|
||||
datItem.Source = source;
|
||||
datItem.CopyMachineInformation(machine);
|
||||
|
||||
AddItem(datItem, statsOnly);
|
||||
@@ -692,7 +692,7 @@ namespace SabreTools.Metadata.DatFiles
|
||||
|
||||
var partFeatureItem = new PartFeature(partFeature);
|
||||
partFeatureItem.Write<Part?>(DipSwitch.PartKey, partItem);
|
||||
partFeatureItem.Write<Source?>(DatItem.SourceKey, source);
|
||||
partFeatureItem.Source = source;
|
||||
partFeatureItem.CopyMachineInformation(machine);
|
||||
|
||||
AddItem(partFeatureItem, statsOnly);
|
||||
|
||||
@@ -1169,8 +1169,8 @@ namespace SabreTools.Metadata.DatFiles
|
||||
// Compare on source if renaming
|
||||
if (!norename)
|
||||
{
|
||||
int xSourceIndex = x.Read<Source?>(DatItem.SourceKey)?.Index ?? 0;
|
||||
int ySourceIndex = y.Read<Source?>(DatItem.SourceKey)?.Index ?? 0;
|
||||
int xSourceIndex = x.Source?.Index ?? 0;
|
||||
int ySourceIndex = y.Source?.Index ?? 0;
|
||||
if (xSourceIndex != ySourceIndex)
|
||||
return xSourceIndex - ySourceIndex;
|
||||
}
|
||||
|
||||
@@ -406,7 +406,7 @@ namespace SabreTools.Metadata.DatFiles.Formats
|
||||
return;
|
||||
|
||||
datItem.CopyMachineInformation(machine);
|
||||
datItem.Write<Source?>(DatItem.SourceKey, source);
|
||||
datItem.Source = source;
|
||||
AddItem(datItem, statsOnly);
|
||||
AddItemDB(datItem, machineIndex, sourceIndex, statsOnly);
|
||||
}
|
||||
|
||||
@@ -223,7 +223,7 @@ namespace SabreTools.Metadata.DatFiles.Formats
|
||||
}
|
||||
|
||||
item.CopyMachineInformation(machine);
|
||||
item.Write<Source?>(DatItem.SourceKey, source);
|
||||
item.Source = source;
|
||||
AddItem(item, statsOnly);
|
||||
// AddItemDB(item, machineIndex, sourceIndex, statsOnly);
|
||||
}
|
||||
|
||||
@@ -433,8 +433,8 @@ namespace SabreTools.Metadata.DatFiles
|
||||
return output;
|
||||
|
||||
// Get the sources for comparison
|
||||
var selfSource = self.Read<Source?>(DatItem.SourceKey);
|
||||
var lastSource = last.Read<Source?>(DatItem.SourceKey);
|
||||
var selfSource = self.Source;
|
||||
var lastSource = last.Source;
|
||||
|
||||
// Get the machines for comparison
|
||||
var selfMachine = self.Machine;
|
||||
@@ -542,8 +542,8 @@ namespace SabreTools.Metadata.DatFiles
|
||||
savedItem.Write(DatItem.DupeTypeKey, dupetype);
|
||||
|
||||
// Get the sources associated with the items
|
||||
var savedSource = savedItem.Read<Source?>(DatItem.SourceKey);
|
||||
var itemSource = datItem.Read<Source?>(DatItem.SourceKey);
|
||||
var savedSource = savedItem.Source;
|
||||
var itemSource = datItem.Source;
|
||||
|
||||
// Get the machines associated with the items
|
||||
var savedMachine = savedItem.Machine;
|
||||
@@ -552,7 +552,7 @@ namespace SabreTools.Metadata.DatFiles
|
||||
// If the current source has a lower ID than the saved, use the saved source
|
||||
if (itemSource?.Index < savedSource?.Index)
|
||||
{
|
||||
datItem.Write<Source?>(DatItem.SourceKey, savedSource.Clone() as Source);
|
||||
datItem.Source = savedSource.Clone() as Source;
|
||||
savedItem.CopyMachineInformation(datItem);
|
||||
savedItem.SetName(datItem.GetName());
|
||||
}
|
||||
@@ -733,7 +733,7 @@ namespace SabreTools.Metadata.DatFiles
|
||||
|
||||
// Get the machine and source
|
||||
var machine = datItem.Machine;
|
||||
var source = datItem.Read<Source?>(DatItem.SourceKey);
|
||||
var source = datItem.Source;
|
||||
|
||||
// Get the bucket key
|
||||
return datItem.GetKey(bucketBy, machine, source, lower, norename);
|
||||
@@ -772,7 +772,7 @@ namespace SabreTools.Metadata.DatFiles
|
||||
|
||||
// Get the machine and source
|
||||
var machine = item.Machine;
|
||||
var source = item.Read<Source?>(DatItem.SourceKey);
|
||||
var source = item.Source;
|
||||
|
||||
// We want to get the key most appropriate for the given sorting type
|
||||
string newkey = item.GetKey(bucketBy, machine, source, lower, norename);
|
||||
@@ -845,8 +845,8 @@ namespace SabreTools.Metadata.DatFiles
|
||||
// Compare on source if renaming
|
||||
if (!norename)
|
||||
{
|
||||
int xSourceIndex = x.Read<Source?>(DatItem.SourceKey)?.Index ?? 0;
|
||||
int ySourceIndex = y.Read<Source?>(DatItem.SourceKey)?.Index ?? 0;
|
||||
int xSourceIndex = x.Source?.Index ?? 0;
|
||||
int ySourceIndex = y.Source?.Index ?? 0;
|
||||
if (xSourceIndex != ySourceIndex)
|
||||
return xSourceIndex - ySourceIndex;
|
||||
}
|
||||
|
||||
@@ -34,7 +34,7 @@ namespace SabreTools.Metadata.DatItems.Formats.Test
|
||||
disk.Machine = machine;
|
||||
disk.Write(Disk.PartKey, part);
|
||||
disk.Write(DatItem.RemoveKey, (bool?)false);
|
||||
disk.Write(DatItem.SourceKey, source);
|
||||
disk.Source = source;
|
||||
|
||||
Rom actual = disk.ConvertToRom();
|
||||
|
||||
@@ -61,7 +61,7 @@ namespace SabreTools.Metadata.DatItems.Formats.Test
|
||||
Assert.NotNull(actualPart);
|
||||
Assert.Equal("name", actualPart.Name);
|
||||
|
||||
Source? actualSource = actual.Read<Source?>(DatItem.SourceKey);
|
||||
Source? actualSource = actual.Source;
|
||||
Assert.NotNull(actualSource);
|
||||
Assert.Equal(0, actualSource.Index);
|
||||
Assert.Equal("XXXXXX", actualSource.Name);
|
||||
|
||||
@@ -29,9 +29,9 @@ namespace SabreTools.Metadata.DatItems.Formats.Test
|
||||
file.Write(DatItem.DupeTypeKey, DupeType.All | DupeType.External);
|
||||
file.Machine = machine;
|
||||
file.Write(DatItem.RemoveKey, (bool?)false);
|
||||
file.Write(DatItem.SourceKey, source);
|
||||
file.Source = source;
|
||||
file.Machine = machine;
|
||||
file.Write(DatItem.SourceKey, source);
|
||||
file.Source = source;
|
||||
|
||||
Rom actual = file.ConvertToRom();
|
||||
|
||||
@@ -49,7 +49,7 @@ namespace SabreTools.Metadata.DatItems.Formats.Test
|
||||
|
||||
Assert.Equal(false, actual.ReadBool(DatItem.RemoveKey));
|
||||
|
||||
Source? actualSource = actual.Read<Source?>(DatItem.SourceKey);
|
||||
Source? actualSource = actual.Source;
|
||||
Assert.NotNull(actualSource);
|
||||
Assert.Equal(0, actualSource.Index);
|
||||
Assert.Equal("XXXXXX", actualSource.Name);
|
||||
|
||||
@@ -24,7 +24,7 @@ namespace SabreTools.Metadata.DatItems.Formats.Test
|
||||
media.Write(DatItem.DupeTypeKey, DupeType.All | DupeType.External);
|
||||
media.Machine = machine;
|
||||
media.Write(DatItem.RemoveKey, (bool?)false);
|
||||
media.Write(DatItem.SourceKey, source);
|
||||
media.Source = source;
|
||||
|
||||
Rom actual = media.ConvertToRom();
|
||||
|
||||
@@ -41,7 +41,7 @@ namespace SabreTools.Metadata.DatItems.Formats.Test
|
||||
|
||||
Assert.Equal(false, actual.ReadBool(DatItem.RemoveKey));
|
||||
|
||||
Source? actualSource = actual.Read<Source?>(DatItem.SourceKey);
|
||||
Source? actualSource = actual.Source;
|
||||
Assert.NotNull(actualSource);
|
||||
Assert.Equal(0, actualSource.Index);
|
||||
Assert.Equal("XXXXXX", actualSource.Name);
|
||||
|
||||
@@ -68,11 +68,6 @@ namespace SabreTools.Metadata.DatItems
|
||||
/// </summary>
|
||||
public const string RemoveKey = "REMOVE";
|
||||
|
||||
/// <summary>
|
||||
/// Source information
|
||||
/// </summary>
|
||||
public const string SourceKey = "SOURCE";
|
||||
|
||||
#endregion
|
||||
|
||||
#region Fields
|
||||
@@ -87,6 +82,11 @@ namespace SabreTools.Metadata.DatItems
|
||||
/// </summary>
|
||||
public Machine? Machine { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Source information
|
||||
/// </summary>
|
||||
public Source? Source { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
#region Logging
|
||||
@@ -199,12 +199,6 @@ namespace SabreTools.Metadata.DatItems
|
||||
if (other is not DatItem otherItem)
|
||||
return false;
|
||||
|
||||
// Compare machines
|
||||
if ((Machine is null) ^ (otherItem.Machine is null))
|
||||
return false;
|
||||
if (Machine is not null && !Machine.Equals(otherItem.Machine))
|
||||
return false;
|
||||
|
||||
// Compare internal models
|
||||
return _internal.Equals(otherItem);
|
||||
}
|
||||
@@ -220,18 +214,8 @@ namespace SabreTools.Metadata.DatItems
|
||||
if (other is null)
|
||||
return false;
|
||||
|
||||
// Get the types for comparison
|
||||
Data.Models.Metadata.ItemType selfType = ItemType;
|
||||
Data.Models.Metadata.ItemType otherType = other.ItemType;
|
||||
|
||||
// If we don't have a matched type, return false
|
||||
if (selfType != otherType)
|
||||
return false;
|
||||
|
||||
// Compare machines
|
||||
if ((Machine is null) ^ (other.Machine is null))
|
||||
return false;
|
||||
if (Machine is not null && !Machine.Equals(other.Machine))
|
||||
if (ItemType != other.ItemType)
|
||||
return false;
|
||||
|
||||
// Compare the internal models
|
||||
|
||||
@@ -50,7 +50,7 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
|
||||
public Adjuster(Data.Models.Metadata.Adjuster item, Machine machine, Source source) : this(item)
|
||||
{
|
||||
Write<Source?>(SourceKey, source);
|
||||
Source = source;
|
||||
CopyMachineInformation(machine);
|
||||
}
|
||||
|
||||
|
||||
@@ -28,7 +28,7 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
|
||||
public Analog(Data.Models.Metadata.Analog item, Machine machine, Source source) : this(item)
|
||||
{
|
||||
Write<Source?>(SourceKey, source);
|
||||
Source = source;
|
||||
CopyMachineInformation(machine);
|
||||
}
|
||||
|
||||
|
||||
@@ -28,7 +28,7 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
|
||||
public Archive(Data.Models.Metadata.Archive item, Machine machine, Source source) : this(item)
|
||||
{
|
||||
Write<Source?>(SourceKey, source);
|
||||
Source = source;
|
||||
CopyMachineInformation(machine);
|
||||
}
|
||||
|
||||
|
||||
@@ -40,7 +40,7 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
|
||||
public BiosSet(Data.Models.Metadata.BiosSet item, Machine machine, Source source) : this(item)
|
||||
{
|
||||
Write<Source?>(SourceKey, source);
|
||||
Source = source;
|
||||
CopyMachineInformation(machine);
|
||||
}
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
|
||||
public Blank(Data.Models.Metadata.Blank item, Machine machine, Source source) : this(item)
|
||||
{
|
||||
Write<Source?>(SourceKey, source);
|
||||
Source = source;
|
||||
CopyMachineInformation(machine);
|
||||
}
|
||||
|
||||
|
||||
@@ -46,7 +46,7 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
|
||||
public Chip(Data.Models.Metadata.Chip item, Machine machine, Source source) : this(item)
|
||||
{
|
||||
Write<Source?>(SourceKey, source);
|
||||
Source = source;
|
||||
CopyMachineInformation(machine);
|
||||
}
|
||||
|
||||
|
||||
@@ -46,7 +46,7 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
|
||||
public Condition(Data.Models.Metadata.Condition item, Machine machine, Source source) : this(item)
|
||||
{
|
||||
Write<Source?>(SourceKey, source);
|
||||
Source = source;
|
||||
CopyMachineInformation(machine);
|
||||
}
|
||||
|
||||
|
||||
@@ -34,7 +34,7 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
|
||||
public ConfLocation(Data.Models.Metadata.ConfLocation item, Machine machine, Source source) : this(item)
|
||||
{
|
||||
Write<Source?>(SourceKey, source);
|
||||
Source = source;
|
||||
CopyMachineInformation(machine);
|
||||
}
|
||||
|
||||
|
||||
@@ -56,7 +56,7 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
|
||||
public ConfSetting(Data.Models.Metadata.ConfSetting item, Machine machine, Source source) : this(item)
|
||||
{
|
||||
Write<Source?>(SourceKey, source);
|
||||
Source = source;
|
||||
CopyMachineInformation(machine);
|
||||
}
|
||||
|
||||
|
||||
@@ -91,7 +91,7 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
|
||||
public Configuration(Data.Models.Metadata.Configuration item, Machine machine, Source source) : this(item)
|
||||
{
|
||||
Write<Source?>(SourceKey, source);
|
||||
Source = source;
|
||||
CopyMachineInformation(machine);
|
||||
}
|
||||
|
||||
|
||||
@@ -64,7 +64,7 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
|
||||
public Control(Data.Models.Metadata.Control item, Machine machine, Source source) : this(item)
|
||||
{
|
||||
Write<Source?>(SourceKey, source);
|
||||
Source = source;
|
||||
CopyMachineInformation(machine);
|
||||
}
|
||||
|
||||
|
||||
@@ -45,7 +45,7 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
|
||||
public DataArea(Data.Models.Metadata.DataArea item, Machine machine, Source source) : this(item)
|
||||
{
|
||||
Write<Source?>(SourceKey, source);
|
||||
Source = source;
|
||||
CopyMachineInformation(machine);
|
||||
}
|
||||
|
||||
|
||||
@@ -86,7 +86,7 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
|
||||
public Device(Data.Models.Metadata.Device item, Machine machine, Source source) : this(item)
|
||||
{
|
||||
Write<Source?>(SourceKey, source);
|
||||
Source = source;
|
||||
CopyMachineInformation(machine);
|
||||
}
|
||||
|
||||
|
||||
@@ -28,7 +28,7 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
|
||||
public DeviceRef(Data.Models.Metadata.DeviceRef item, Machine machine, Source source) : this(item)
|
||||
{
|
||||
Write<Source?>(SourceKey, source);
|
||||
Source = source;
|
||||
CopyMachineInformation(machine);
|
||||
}
|
||||
|
||||
|
||||
@@ -34,7 +34,7 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
|
||||
public DipLocation(Data.Models.Metadata.DipLocation item, Machine machine, Source source) : this(item)
|
||||
{
|
||||
Write<Source?>(SourceKey, source);
|
||||
Source = source;
|
||||
CopyMachineInformation(machine);
|
||||
}
|
||||
|
||||
|
||||
@@ -119,7 +119,7 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
|
||||
public DipSwitch(Data.Models.Metadata.DipSwitch item, Machine machine, Source source) : this(item)
|
||||
{
|
||||
Write<Source?>(SourceKey, source);
|
||||
Source = source;
|
||||
CopyMachineInformation(machine);
|
||||
}
|
||||
|
||||
|
||||
@@ -56,7 +56,7 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
|
||||
public DipValue(Data.Models.Metadata.DipValue item, Machine machine, Source source) : this(item)
|
||||
{
|
||||
Write<Source?>(SourceKey, source);
|
||||
Source = source;
|
||||
CopyMachineInformation(machine);
|
||||
}
|
||||
|
||||
|
||||
@@ -100,7 +100,7 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
|
||||
public Disk(Data.Models.Metadata.Disk item, Machine machine, Source source) : this(item)
|
||||
{
|
||||
Write<Source?>(SourceKey, source);
|
||||
Source = source;
|
||||
CopyMachineInformation(machine);
|
||||
}
|
||||
|
||||
@@ -133,7 +133,7 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
rom.Machine = Machine?.Clone() as Machine;
|
||||
rom.Write(Rom.PartKey, Read<Part>(PartKey)?.Clone() as Part);
|
||||
rom.Write(RemoveKey, ReadBool(RemoveKey));
|
||||
rom.Write<Source?>(SourceKey, Read<Source?>(SourceKey)?.Clone() as Source);
|
||||
rom.Source = Source?.Clone() as Source;
|
||||
|
||||
return rom;
|
||||
}
|
||||
|
||||
@@ -29,7 +29,7 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
|
||||
public DiskArea(Data.Models.Metadata.DiskArea item, Machine machine, Source source) : this(item)
|
||||
{
|
||||
Write<Source?>(SourceKey, source);
|
||||
Source = source;
|
||||
CopyMachineInformation(machine);
|
||||
}
|
||||
|
||||
|
||||
@@ -87,7 +87,7 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
|
||||
public Display(Data.Models.Metadata.Display item, Machine machine, Source source) : this(item)
|
||||
{
|
||||
Write<Source?>(SourceKey, source);
|
||||
Source = source;
|
||||
CopyMachineInformation(machine);
|
||||
}
|
||||
|
||||
@@ -138,7 +138,7 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
|
||||
public Display(Data.Models.Metadata.Video item, Machine machine, Source source) : this(item)
|
||||
{
|
||||
Write<Source?>(SourceKey, source);
|
||||
Source = source;
|
||||
CopyMachineInformation(machine);
|
||||
}
|
||||
|
||||
|
||||
@@ -94,7 +94,7 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
|
||||
public Driver(Data.Models.Metadata.Driver item, Machine machine, Source source) : this(item)
|
||||
{
|
||||
Write<Source?>(SourceKey, source);
|
||||
Source = source;
|
||||
CopyMachineInformation(machine);
|
||||
}
|
||||
|
||||
|
||||
@@ -28,7 +28,7 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
|
||||
public Extension(Data.Models.Metadata.Extension item, Machine machine, Source source) : this(item)
|
||||
{
|
||||
Write<Source?>(SourceKey, source);
|
||||
Source = source;
|
||||
CopyMachineInformation(machine);
|
||||
}
|
||||
|
||||
|
||||
@@ -52,7 +52,7 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
|
||||
public Feature(Data.Models.Metadata.Feature item, Machine machine, Source source) : this(item)
|
||||
{
|
||||
Write<Source?>(SourceKey, source);
|
||||
Source = source;
|
||||
CopyMachineInformation(machine);
|
||||
}
|
||||
|
||||
|
||||
@@ -123,7 +123,7 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
file.Write(DupeTypeKey, Read<DupeType>(DupeTypeKey));
|
||||
file.Machine = Machine!.Clone() as Machine ?? new Machine();
|
||||
file.Write(RemoveKey, ReadBool(RemoveKey));
|
||||
file.Write<Source?>(SourceKey, Read<Source?>(SourceKey));
|
||||
file.Source = Source?.Clone() as Source;
|
||||
|
||||
return file;
|
||||
}
|
||||
@@ -146,7 +146,7 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
rom.Write(DupeTypeKey, Read<DupeType>(DupeTypeKey));
|
||||
rom.Machine = Machine?.Clone() as Machine;
|
||||
rom.Write(RemoveKey, ReadBool(RemoveKey));
|
||||
rom.Write<Source?>(SourceKey, Read<Source?>(SourceKey));
|
||||
rom.Source = Source?.Clone() as Source;
|
||||
|
||||
return rom;
|
||||
}
|
||||
|
||||
@@ -34,7 +34,7 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
|
||||
public Info(Data.Models.Metadata.Info item, Machine machine, Source source) : this(item)
|
||||
{
|
||||
Write<Source?>(SourceKey, source);
|
||||
Source = source;
|
||||
CopyMachineInformation(machine);
|
||||
}
|
||||
|
||||
|
||||
@@ -67,7 +67,7 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
|
||||
public Input(Data.Models.Metadata.Input item, Machine machine, Source source) : this(item)
|
||||
{
|
||||
Write<Source?>(SourceKey, source);
|
||||
Source = source;
|
||||
CopyMachineInformation(machine);
|
||||
}
|
||||
|
||||
|
||||
@@ -34,7 +34,7 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
|
||||
public Instance(Data.Models.Metadata.Instance item, Machine machine, Source source) : this(item)
|
||||
{
|
||||
Write<Source?>(SourceKey, source);
|
||||
Source = source;
|
||||
CopyMachineInformation(machine);
|
||||
}
|
||||
|
||||
|
||||
@@ -48,7 +48,7 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
|
||||
public Media(Data.Models.Metadata.Media item, Machine machine, Source source) : this(item)
|
||||
{
|
||||
Write<Source?>(SourceKey, source);
|
||||
Source = source;
|
||||
CopyMachineInformation(machine);
|
||||
}
|
||||
|
||||
@@ -70,7 +70,7 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
rom.Write(DupeTypeKey, Read<DupeType>(DupeTypeKey));
|
||||
rom.Machine = Machine?.Clone() as Machine;
|
||||
rom.Write(RemoveKey, ReadBool(RemoveKey));
|
||||
rom.Write<Source?>(SourceKey, Read<Source?>(SourceKey));
|
||||
rom.Source = Source?.Clone() as Source;
|
||||
|
||||
return rom;
|
||||
}
|
||||
|
||||
@@ -45,7 +45,7 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
|
||||
public Part(Data.Models.Metadata.Part item, Machine machine, Source source) : this(item)
|
||||
{
|
||||
Write<Source?>(SourceKey, source);
|
||||
Source = source;
|
||||
CopyMachineInformation(machine);
|
||||
}
|
||||
|
||||
|
||||
@@ -65,7 +65,7 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
|
||||
public PartFeature(Data.Models.Metadata.Feature item, Machine machine, Source source) : this(item)
|
||||
{
|
||||
Write<Source?>(SourceKey, source);
|
||||
Source = source;
|
||||
CopyMachineInformation(machine);
|
||||
}
|
||||
|
||||
|
||||
@@ -48,7 +48,7 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
|
||||
public Port(Data.Models.Metadata.Port item, Machine machine, Source source) : this(item)
|
||||
{
|
||||
Write<Source?>(SourceKey, source);
|
||||
Source = source;
|
||||
CopyMachineInformation(machine);
|
||||
}
|
||||
|
||||
|
||||
@@ -40,7 +40,7 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
|
||||
public RamOption(Data.Models.Metadata.RamOption item, Machine machine, Source source) : this(item)
|
||||
{
|
||||
Write<Source?>(SourceKey, source);
|
||||
Source = source;
|
||||
CopyMachineInformation(machine);
|
||||
}
|
||||
|
||||
|
||||
@@ -34,7 +34,7 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
|
||||
public Release(Data.Models.Metadata.Release item, Machine machine, Source source) : this(item)
|
||||
{
|
||||
Write<Source?>(SourceKey, source);
|
||||
Source = source;
|
||||
CopyMachineInformation(machine);
|
||||
}
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
|
||||
public ReleaseDetails(Data.Models.Metadata.ReleaseDetails item, Machine machine, Source source) : this(item)
|
||||
{
|
||||
Write<Source?>(SourceKey, source);
|
||||
Source = source;
|
||||
CopyMachineInformation(machine);
|
||||
}
|
||||
#endregion
|
||||
|
||||
@@ -175,7 +175,7 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
Write<string?>(Data.Models.Metadata.Rom.RemarkKey, rom.ReadString(Data.Models.Metadata.Rom.RemarkKey));
|
||||
Write<string?>(Data.Models.Metadata.Rom.SHA1Key, rom.ReadString(Data.Models.Metadata.Rom.SHA1Key));
|
||||
Write<string?>(Data.Models.Metadata.Rom.StartKey, rom.ReadString(Data.Models.Metadata.Rom.StartKey));
|
||||
Write<Source?>(SourceKey, source);
|
||||
Source = source;
|
||||
|
||||
var original = item.Read<Data.Models.Metadata.Original>(Dump.OriginalKey);
|
||||
if (original is not null)
|
||||
@@ -307,7 +307,7 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
|
||||
public Rom(Data.Models.Metadata.Rom item, Machine machine, Source source) : this(item)
|
||||
{
|
||||
Write<Source?>(SourceKey, source);
|
||||
Source = source;
|
||||
CopyMachineInformation(machine);
|
||||
}
|
||||
|
||||
|
||||
@@ -28,7 +28,7 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
|
||||
public Sample(Data.Models.Metadata.Sample item, Machine machine, Source source) : this(item)
|
||||
{
|
||||
Write<Source?>(SourceKey, source);
|
||||
Source = source;
|
||||
CopyMachineInformation(machine);
|
||||
}
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
|
||||
public Serials(Data.Models.Metadata.Serials item, Machine machine, Source source) : this(item)
|
||||
{
|
||||
Write<Source?>(SourceKey, source);
|
||||
Source = source;
|
||||
CopyMachineInformation(machine);
|
||||
}
|
||||
|
||||
|
||||
@@ -34,7 +34,7 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
|
||||
public SharedFeat(Data.Models.Metadata.SharedFeat item, Machine machine, Source source) : this(item)
|
||||
{
|
||||
Write<Source?>(SourceKey, source);
|
||||
Source = source;
|
||||
CopyMachineInformation(machine);
|
||||
}
|
||||
|
||||
|
||||
@@ -48,7 +48,7 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
|
||||
public Slot(Data.Models.Metadata.Slot item, Machine machine, Source source) : this(item)
|
||||
{
|
||||
Write<Source?>(SourceKey, source);
|
||||
Source = source;
|
||||
CopyMachineInformation(machine);
|
||||
}
|
||||
|
||||
|
||||
@@ -40,7 +40,7 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
|
||||
public SlotOption(Data.Models.Metadata.SlotOption item, Machine machine, Source source) : this(item)
|
||||
{
|
||||
Write<Source?>(SourceKey, source);
|
||||
Source = source;
|
||||
CopyMachineInformation(machine);
|
||||
}
|
||||
|
||||
|
||||
@@ -50,7 +50,7 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
|
||||
public SoftwareList(Data.Models.Metadata.SoftwareList item, Machine machine, Source source) : this(item)
|
||||
{
|
||||
Write<Source?>(SourceKey, source);
|
||||
Source = source;
|
||||
CopyMachineInformation(machine);
|
||||
}
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
|
||||
public Sound(Data.Models.Metadata.Sound item, Machine machine, Source source) : this(item)
|
||||
{
|
||||
Write<Source?>(SourceKey, source);
|
||||
Source = source;
|
||||
CopyMachineInformation(machine);
|
||||
}
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
|
||||
public SourceDetails(Data.Models.Metadata.SourceDetails item, Machine machine, Source source) : this(item)
|
||||
{
|
||||
Write<Source?>(SourceKey, source);
|
||||
Source = source;
|
||||
CopyMachineInformation(machine);
|
||||
}
|
||||
|
||||
|
||||
@@ -193,6 +193,32 @@ namespace SabreTools.Metadata.DatItems
|
||||
if (other is null)
|
||||
return false;
|
||||
|
||||
// Properties
|
||||
if ((Description is null) ^ (other.Description is null))
|
||||
return false;
|
||||
if (Description is not null && !Description.Equals(other.Description, StringComparison.OrdinalIgnoreCase))
|
||||
return false;
|
||||
|
||||
if (IsBios != other.IsBios)
|
||||
return false;
|
||||
|
||||
if (IsDevice != other.IsDevice)
|
||||
return false;
|
||||
|
||||
if (IsMechanical != other.IsMechanical)
|
||||
return false;
|
||||
|
||||
if ((Name is null) ^ (other.Name is null))
|
||||
return false;
|
||||
if (Name is not null && !Name.Equals(other.Name, StringComparison.OrdinalIgnoreCase))
|
||||
return false;
|
||||
|
||||
if (Runnable != other.Runnable)
|
||||
return false;
|
||||
|
||||
if (Supported != other.Supported)
|
||||
return false;
|
||||
|
||||
// Compare internal models
|
||||
return _internal.EqualTo(other._internal);
|
||||
}
|
||||
|
||||
@@ -13,6 +13,7 @@ namespace SabreTools.Metadata
|
||||
/// <summary>
|
||||
/// Check equality of two DictionaryBase objects
|
||||
/// </summary>
|
||||
/// TODO: Fix equality checking with case sensitivity of string properties
|
||||
public static bool EqualTo(this DictionaryBase self, DictionaryBase other)
|
||||
{
|
||||
// Check types first
|
||||
@@ -59,6 +60,279 @@ namespace SabreTools.Metadata
|
||||
if (self.GetName() != other.GetName())
|
||||
return false;
|
||||
|
||||
// Handle individual type properties
|
||||
if (self is Adjuster selfAdjuster && other is Adjuster cloneAdjuster)
|
||||
{
|
||||
if (selfAdjuster.Default != cloneAdjuster.Default)
|
||||
return false;
|
||||
}
|
||||
else if (self is Analog selfAnalog && other is Analog cloneAnalog)
|
||||
{
|
||||
if (selfAnalog.Mask != cloneAnalog.Mask)
|
||||
return false;
|
||||
}
|
||||
else if (self is Archive selfArchive && other is Archive cloneArchive)
|
||||
{
|
||||
if (selfArchive.Description != cloneArchive.Description)
|
||||
return false;
|
||||
}
|
||||
else if (self is BiosSet selfBiosSet && other is BiosSet cloneBiosSet)
|
||||
{
|
||||
if (selfBiosSet.Default != cloneBiosSet.Default)
|
||||
return false;
|
||||
if (selfBiosSet.Description != cloneBiosSet.Description)
|
||||
return false;
|
||||
}
|
||||
else if (self is Chip selfChip && other is Chip cloneChip)
|
||||
{
|
||||
if (selfChip.ChipType != cloneChip.ChipType)
|
||||
return false;
|
||||
if (selfChip.SoundOnly != cloneChip.SoundOnly)
|
||||
return false;
|
||||
if (selfChip.Tag != cloneChip.Tag)
|
||||
return false;
|
||||
}
|
||||
else if (self is Condition selfCondition && other is Condition cloneCondition)
|
||||
{
|
||||
if (selfCondition.Mask != cloneCondition.Mask)
|
||||
return false;
|
||||
if (selfCondition.Relation != cloneCondition.Relation)
|
||||
return false;
|
||||
if (selfCondition.Tag != cloneCondition.Tag)
|
||||
return false;
|
||||
if (selfCondition.Value != cloneCondition.Value)
|
||||
return false;
|
||||
}
|
||||
else if (self is Configuration selfConfiguration && other is Configuration cloneConfiguration)
|
||||
{
|
||||
if (selfConfiguration.Mask != cloneConfiguration.Mask)
|
||||
return false;
|
||||
if (selfConfiguration.Tag != cloneConfiguration.Tag)
|
||||
return false;
|
||||
}
|
||||
else if (self is ConfLocation selfConfLocation && other is ConfLocation cloneConfLocation)
|
||||
{
|
||||
if (selfConfLocation.Inverted != cloneConfLocation.Inverted)
|
||||
return false;
|
||||
}
|
||||
else if (self is ConfSetting selfConfSetting && other is ConfSetting cloneConfSetting)
|
||||
{
|
||||
if (selfConfSetting.Default != cloneConfSetting.Default)
|
||||
return false;
|
||||
if (selfConfSetting.Value != cloneConfSetting.Value)
|
||||
return false;
|
||||
}
|
||||
else if (self is Control selfControl && other is Control cloneControl)
|
||||
{
|
||||
if (selfControl.ControlType != cloneControl.ControlType)
|
||||
return false;
|
||||
if (selfControl.Reverse != cloneControl.Reverse)
|
||||
return false;
|
||||
}
|
||||
else if (self is DataArea selfDataArea && other is DataArea cloneDataArea)
|
||||
{
|
||||
if (selfDataArea.Endianness != cloneDataArea.Endianness)
|
||||
return false;
|
||||
}
|
||||
else if (self is Device selfDevice && other is Device cloneDevice)
|
||||
{
|
||||
if (selfDevice.DeviceType != cloneDevice.DeviceType)
|
||||
return false;
|
||||
if (selfDevice.FixedImage != cloneDevice.FixedImage)
|
||||
return false;
|
||||
if (selfDevice.Interface != cloneDevice.Interface)
|
||||
return false;
|
||||
if (selfDevice.Mandatory != cloneDevice.Mandatory)
|
||||
return false;
|
||||
if (selfDevice.Tag != cloneDevice.Tag)
|
||||
return false;
|
||||
}
|
||||
else if (self is DipLocation selfDipLocation && other is DipLocation cloneDipLocation)
|
||||
{
|
||||
if (selfDipLocation.Inverted != cloneDipLocation.Inverted)
|
||||
return false;
|
||||
}
|
||||
else if (self is DipSwitch selfDipSwitch && other is DipSwitch cloneDipSwitch)
|
||||
{
|
||||
if (selfDipSwitch.Default != cloneDipSwitch.Default)
|
||||
return false;
|
||||
if (selfDipSwitch.Mask != cloneDipSwitch.Mask)
|
||||
return false;
|
||||
if (selfDipSwitch.Tag != cloneDipSwitch.Tag)
|
||||
return false;
|
||||
}
|
||||
else if (self is DipValue selfDipValue && other is DipValue cloneDipValue)
|
||||
{
|
||||
if (selfDipValue.Default != cloneDipValue.Default)
|
||||
return false;
|
||||
if (selfDipValue.Value != cloneDipValue.Value)
|
||||
return false;
|
||||
}
|
||||
else if (self is Display selfDisplay && other is Display cloneDisplay)
|
||||
{
|
||||
if (selfDisplay.DisplayType != cloneDisplay.DisplayType)
|
||||
return false;
|
||||
if (selfDisplay.FlipX != cloneDisplay.FlipX)
|
||||
return false;
|
||||
if (selfDisplay.Tag != cloneDisplay.Tag)
|
||||
return false;
|
||||
}
|
||||
else if (self is Driver selfDriver && other is Driver cloneDriver)
|
||||
{
|
||||
if (selfDriver.Blit != cloneDriver.Blit)
|
||||
return false;
|
||||
if (selfDriver.Cocktail != cloneDriver.Cocktail)
|
||||
return false;
|
||||
if (selfDriver.Color != cloneDriver.Color)
|
||||
return false;
|
||||
if (selfDriver.Emulation != cloneDriver.Emulation)
|
||||
return false;
|
||||
if (selfDriver.Incomplete != cloneDriver.Incomplete)
|
||||
return false;
|
||||
if (selfDriver.NoSoundHardware != cloneDriver.NoSoundHardware)
|
||||
return false;
|
||||
if (selfDriver.RequiresArtwork != cloneDriver.RequiresArtwork)
|
||||
return false;
|
||||
if (selfDriver.SaveState != cloneDriver.SaveState)
|
||||
return false;
|
||||
if (selfDriver.Sound != cloneDriver.Sound)
|
||||
return false;
|
||||
if (selfDriver.Status != cloneDriver.Status)
|
||||
return false;
|
||||
if (selfDriver.Unofficial != cloneDriver.Unofficial)
|
||||
return false;
|
||||
}
|
||||
else if (self is Feature selfFeature && other is Feature cloneFeature)
|
||||
{
|
||||
if (selfFeature.FeatureType != cloneFeature.FeatureType)
|
||||
return false;
|
||||
if (selfFeature.Overall != cloneFeature.Overall)
|
||||
return false;
|
||||
if (selfFeature.Status != cloneFeature.Status)
|
||||
return false;
|
||||
if (selfFeature.Value != cloneFeature.Value)
|
||||
return false;
|
||||
}
|
||||
else if (self is Header selfHeader && other is Header cloneHeader)
|
||||
{
|
||||
if (selfHeader.BiosMode != cloneHeader.BiosMode)
|
||||
return false;
|
||||
if (selfHeader.Debug != cloneHeader.Debug)
|
||||
return false;
|
||||
if (selfHeader.Description != cloneHeader.Description)
|
||||
return false;
|
||||
if (selfHeader.ForceMerging != cloneHeader.ForceMerging)
|
||||
return false;
|
||||
if (selfHeader.ForceNodump != cloneHeader.ForceNodump)
|
||||
return false;
|
||||
if (selfHeader.ForcePacking != cloneHeader.ForcePacking)
|
||||
return false;
|
||||
if (selfHeader.ForceZipping != cloneHeader.ForceZipping)
|
||||
return false;
|
||||
if (selfHeader.LockBiosMode != cloneHeader.LockBiosMode)
|
||||
return false;
|
||||
if (selfHeader.LockRomMode != cloneHeader.LockRomMode)
|
||||
return false;
|
||||
if (selfHeader.LockSampleMode != cloneHeader.LockSampleMode)
|
||||
return false;
|
||||
if (selfHeader.RomMode != cloneHeader.RomMode)
|
||||
return false;
|
||||
if (selfHeader.SampleMode != cloneHeader.SampleMode)
|
||||
return false;
|
||||
}
|
||||
else if (self is Info selfInfo && other is Info cloneInfo)
|
||||
{
|
||||
if (selfInfo.Value != cloneInfo.Value)
|
||||
return false;
|
||||
}
|
||||
else if (self is Input selfInput && other is Input cloneInput)
|
||||
{
|
||||
if (selfInput.Service != cloneInput.Service)
|
||||
return false;
|
||||
if (selfInput.Tilt != cloneInput.Tilt)
|
||||
return false;
|
||||
}
|
||||
else if (self is Instance selfInstance && other is Instance cloneInstance)
|
||||
{
|
||||
if (selfInstance.BriefName != cloneInstance.BriefName)
|
||||
return false;
|
||||
}
|
||||
else if (self is Machine selfMachine && other is Machine cloneMachine)
|
||||
{
|
||||
if (selfMachine.Description != cloneMachine.Description)
|
||||
return false;
|
||||
if (selfMachine.IsBios != cloneMachine.IsBios)
|
||||
return false;
|
||||
if (selfMachine.IsDevice != cloneMachine.IsDevice)
|
||||
return false;
|
||||
if (selfMachine.IsMechanical != cloneMachine.IsMechanical)
|
||||
return false;
|
||||
if (selfMachine.Runnable != cloneMachine.Runnable)
|
||||
return false;
|
||||
if (selfMachine.Supported != cloneMachine.Supported)
|
||||
return false;
|
||||
}
|
||||
else if (self is Original selfOriginal && other is Original cloneOriginal)
|
||||
{
|
||||
if (selfOriginal.Content != cloneOriginal.Content)
|
||||
return false;
|
||||
}
|
||||
else if (self is Part selfPart && other is Part clonePart)
|
||||
{
|
||||
if (selfPart.Interface != clonePart.Interface)
|
||||
return false;
|
||||
}
|
||||
else if (self is Port selfPort && other is Port clonePort)
|
||||
{
|
||||
if (selfPort.Tag != clonePort.Tag)
|
||||
return false;
|
||||
}
|
||||
else if (self is RamOption selfRamOption && other is RamOption cloneRamOption)
|
||||
{
|
||||
if (selfRamOption.Content != cloneRamOption.Content)
|
||||
return false;
|
||||
if (selfRamOption.Default != cloneRamOption.Default)
|
||||
return false;
|
||||
}
|
||||
else if (self is Release selfRelease && other is Release cloneRelease)
|
||||
{
|
||||
if (selfRelease.Default != cloneRelease.Default)
|
||||
return false;
|
||||
}
|
||||
else if (self is SharedFeat selfSharedFeat && other is SharedFeat cloneSharedFeat)
|
||||
{
|
||||
if (selfSharedFeat.Value != cloneSharedFeat.Value)
|
||||
return false;
|
||||
}
|
||||
else if (self is SlotOption selfSlotOption && other is SlotOption cloneSlotOption)
|
||||
{
|
||||
if (selfSlotOption.Default != cloneSlotOption.Default)
|
||||
return false;
|
||||
if (selfSlotOption.DevName != cloneSlotOption.DevName)
|
||||
return false;
|
||||
}
|
||||
else if (self is Software selfSoftware && other is Software cloneSoftware)
|
||||
{
|
||||
if (selfSoftware.Description != cloneSoftware.Description)
|
||||
return false;
|
||||
if (selfSoftware.Supported != cloneSoftware.Supported)
|
||||
return false;
|
||||
}
|
||||
else if (self is SoftwareList selfSoftwareList && other is SoftwareList cloneSoftwareList)
|
||||
{
|
||||
if (selfSoftwareList.Description != cloneSoftwareList.Description)
|
||||
return false;
|
||||
if (selfSoftwareList.Status != cloneSoftwareList.Status)
|
||||
return false;
|
||||
if (selfSoftwareList.Tag != cloneSoftwareList.Tag)
|
||||
return false;
|
||||
}
|
||||
else if (self is Video selfVideo && other is Video cloneVideo)
|
||||
{
|
||||
if (selfVideo.Screen != cloneVideo.Screen)
|
||||
return false;
|
||||
}
|
||||
|
||||
// Check all pairs to see if they're equal
|
||||
foreach (var kvp in self)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user