String Machine keys to properties

This commit is contained in:
Matt Nadareski
2026-04-03 22:17:31 -04:00
parent 8e2f519e15
commit b55a932b2b
42 changed files with 2157 additions and 1124 deletions

View File

@@ -332,8 +332,8 @@ namespace SabreTools.Metadata.DatFiles
continue;
// Get the string values
string? cloneOf = machine.ReadString(Data.Models.Metadata.Machine.CloneOfKey)?.ToLowerInvariant();
string? romOf = machine.ReadString(Data.Models.Metadata.Machine.RomOfKey)?.ToLowerInvariant();
string? cloneOf = machine.CloneOf?.ToLowerInvariant();
string? romOf = machine.RomOf?.ToLowerInvariant();
// Match on CloneOf first
if (!string.IsNullOrEmpty(cloneOf))
@@ -411,8 +411,8 @@ namespace SabreTools.Metadata.DatFiles
continue;
// Get the string values
string? cloneOf = machineObj.ReadString(Data.Models.Metadata.Machine.CloneOfKey)?.ToLowerInvariant();
string? romOf = machineObj.ReadString(Data.Models.Metadata.Machine.RomOfKey)?.ToLowerInvariant();
string? cloneOf = machineObj.CloneOf?.ToLowerInvariant();
string? romOf = machineObj.RomOf?.ToLowerInvariant();
// Match on CloneOf first
if (!string.IsNullOrEmpty(cloneOf))
@@ -733,9 +733,9 @@ namespace SabreTools.Metadata.DatFiles
// Get the values to check against
string? machineName = machine.Name;
string? cloneOf = machine.ReadString(Data.Models.Metadata.Machine.CloneOfKey);
string? romOf = machine.ReadString(Data.Models.Metadata.Machine.RomOfKey);
string? sampleOf = machine.ReadString(Data.Models.Metadata.Machine.SampleOfKey);
string? cloneOf = machine.CloneOf;
string? romOf = machine.RomOf;
string? sampleOf = machine.SampleOf;
// Update machine name
if (machineName is not null && mapping.TryGetValue(machineName, out string? mappedMachineName))
@@ -743,15 +743,15 @@ namespace SabreTools.Metadata.DatFiles
// Update cloneof
if (cloneOf is not null && mapping.TryGetValue(cloneOf, out string? mappedCloneOf))
machine.Write<string?>(Data.Models.Metadata.Machine.CloneOfKey, mappedCloneOf);
machine.CloneOf = mappedCloneOf;
// Update romof
if (romOf is not null && mapping.TryGetValue(romOf, out string? mappedRomOf))
machine.Write<string?>(Data.Models.Metadata.Machine.RomOfKey, mappedRomOf);
machine.RomOf = mappedRomOf;
// Update sampleof
if (sampleOf is not null && mapping.TryGetValue(sampleOf, out string? mappedSampleOf))
machine.Write<string?>(Data.Models.Metadata.Machine.SampleOfKey, mappedSampleOf);
machine.SampleOf = mappedSampleOf;
}
#if NET40_OR_GREATER || NETCOREAPP || NETSTANDARD2_0_OR_GREATER
});
@@ -774,9 +774,9 @@ namespace SabreTools.Metadata.DatFiles
// Get the values to check against
string? machineName = machine.Value.Name;
string? cloneOf = machine.Value.ReadString(Data.Models.Metadata.Machine.CloneOfKey);
string? romOf = machine.Value.ReadString(Data.Models.Metadata.Machine.RomOfKey);
string? sampleOf = machine.Value.ReadString(Data.Models.Metadata.Machine.SampleOfKey);
string? cloneOf = machine.Value.CloneOf;
string? romOf = machine.Value.RomOf;
string? sampleOf = machine.Value.SampleOf;
// Update machine name
if (machineName is not null && mapping.TryGetValue(machineName, out string? mappedMachineName))
@@ -784,15 +784,15 @@ namespace SabreTools.Metadata.DatFiles
// Update cloneof
if (cloneOf is not null && mapping.TryGetValue(cloneOf, out string? mappedCloneOf))
machine.Value.Write<string?>(Data.Models.Metadata.Machine.CloneOfKey, mappedCloneOf);
machine.Value.CloneOf = mappedCloneOf;
// Update romof
if (romOf is not null && mapping.TryGetValue(romOf, out string? mappedRomOf))
machine.Value.Write<string?>(Data.Models.Metadata.Machine.RomOfKey, mappedRomOf);
machine.Value.RomOf = mappedRomOf;
// Update sampleof
if (sampleOf is not null && mapping.TryGetValue(sampleOf, out string? mappedSampleOf))
machine.Value.Write<string?>(Data.Models.Metadata.Machine.SampleOfKey, mappedSampleOf);
machine.Value.SampleOf = mappedSampleOf;
}
}

View File

@@ -273,7 +273,7 @@ namespace SabreTools.Metadata.DatFiles
continue;
// Get the cloneof parent items
string? cloneOf = machine.ReadString(Data.Models.Metadata.Machine.CloneOfKey);
string? cloneOf = machine.CloneOf;
List<DatItem> parentItems = GetItemsForBucket(cloneOf);
if (cloneOf is null)
continue;
@@ -408,7 +408,7 @@ namespace SabreTools.Metadata.DatFiles
continue;
// Get the clone parent
string? cloneOf = machine.Value.ReadString(Data.Models.Metadata.Machine.CloneOfKey);
string? cloneOf = machine.Value.CloneOf;
if (string.IsNullOrEmpty(cloneOf))
continue;
@@ -542,7 +542,7 @@ namespace SabreTools.Metadata.DatFiles
continue;
// Get the cloneof parent items
string? cloneOf = machine.ReadString(Data.Models.Metadata.Machine.CloneOfKey);
string? cloneOf = machine.CloneOf;
List<DatItem> parentItems = GetItemsForBucket(cloneOf);
if (parentItems.Count == 0)
continue;
@@ -562,10 +562,10 @@ namespace SabreTools.Metadata.DatFiles
// Now we want to get the parent romof tag and put it in each of the items
items = GetItemsForBucket(bucket);
string? romof = GetItemsForBucket(cloneOf)[0].Machine!.ReadString(Data.Models.Metadata.Machine.RomOfKey);
string? romof = GetItemsForBucket(cloneOf)[0].Machine!.RomOf;
foreach (DatItem item in items)
{
item.Machine!.Write<string?>(Data.Models.Metadata.Machine.RomOfKey, romof);
item.Machine!.RomOf = romof;
}
}
}
@@ -596,7 +596,7 @@ namespace SabreTools.Metadata.DatFiles
continue;
// Get the clone parent
string? cloneOf = machine.Value.ReadString(Data.Models.Metadata.Machine.CloneOfKey);
string? cloneOf = machine.Value.CloneOf;
if (string.IsNullOrEmpty(cloneOf))
continue;
@@ -623,7 +623,7 @@ namespace SabreTools.Metadata.DatFiles
// Now we want to get the parent romof tag and put it in each of the items
items = GetItemsForBucketDB(bucket);
string? romof = parentMachine.Value.ReadString(Data.Models.Metadata.Machine.RomOfKey);
string? romof = parentMachine.Value.RomOf;
foreach (var key in items.Keys)
{
var itemMachine = GetMachineForItemDB(key);
@@ -631,7 +631,7 @@ namespace SabreTools.Metadata.DatFiles
continue;
// TODO: Remove merge tags here
itemMachine.Value.Write<string?>(Data.Models.Metadata.Machine.RomOfKey, romof);
itemMachine.Value.RomOf = romof;
}
}
}
@@ -981,7 +981,7 @@ namespace SabreTools.Metadata.DatFiles
continue;
// Get the romof parent items
string? romOf = machine.ReadString(Data.Models.Metadata.Machine.RomOfKey);
string? romOf = machine.RomOf;
List<DatItem> parentItems = GetItemsForBucket(romOf);
if (parentItems.Count == 0)
continue;
@@ -1024,7 +1024,7 @@ namespace SabreTools.Metadata.DatFiles
continue;
// Get the romof parent items
string? romOf = machine.Value.ReadString(Data.Models.Metadata.Machine.RomOfKey);
string? romOf = machine.Value.RomOf;
Dictionary<long, DatItem> parentItems = GetItemsForBucketDB(romOf);
if (parentItems.Count == 0)
continue;
@@ -1163,7 +1163,7 @@ namespace SabreTools.Metadata.DatFiles
continue;
// Get the cloneof parent items
string? cloneOf = machine.ReadString(Data.Models.Metadata.Machine.CloneOfKey);
string? cloneOf = machine.CloneOf;
List<DatItem> parentItems = GetItemsForBucket(cloneOf);
if (parentItems.Count == 0)
continue;
@@ -1186,10 +1186,10 @@ namespace SabreTools.Metadata.DatFiles
// Now we want to get the parent romof tag and put it in each of the remaining items
items = GetItemsForBucket(bucket);
string? romof = GetItemsForBucket(cloneOf)[0].Machine!.ReadString(Data.Models.Metadata.Machine.RomOfKey);
string? romof = GetItemsForBucket(cloneOf)[0].Machine!.RomOf;
foreach (DatItem item in items)
{
item.Machine!.Write<string?>(Data.Models.Metadata.Machine.RomOfKey, romof);
item.Machine!.RomOf = romof;
}
}
}
@@ -1217,7 +1217,7 @@ namespace SabreTools.Metadata.DatFiles
continue;
// Get the cloneof parent items
string? cloneOf = machine.Value.ReadString(Data.Models.Metadata.Machine.CloneOfKey);
string? cloneOf = machine.Value.CloneOf;
Dictionary<long, DatItem> parentItems = GetItemsForBucketDB(cloneOf);
if (parentItems is null || parentItems.Count == 0)
continue;
@@ -1238,14 +1238,14 @@ namespace SabreTools.Metadata.DatFiles
if (machine.Value is null)
continue;
string? romof = machine.Value.ReadString(Data.Models.Metadata.Machine.RomOfKey);
string? romof = machine.Value.RomOf;
foreach (var item in items)
{
machine = GetMachineForItemDB(item.Key);
if (machine.Value is null)
continue;
machine.Value.Write<string?>(Data.Models.Metadata.Machine.RomOfKey, romof);
machine.Value.RomOf = romof;
}
}
}
@@ -1273,7 +1273,7 @@ namespace SabreTools.Metadata.DatFiles
continue;
// Get the romof parent items
string? romOf = machine.ReadString(Data.Models.Metadata.Machine.RomOfKey);
string? romOf = machine.RomOf;
List<DatItem> parentItems = GetItemsForBucket(romOf);
if (parentItems.Count == 0)
continue;
@@ -1320,7 +1320,7 @@ namespace SabreTools.Metadata.DatFiles
continue;
// Get the romof parent items
string? romOf = machine.Value.ReadString(Data.Models.Metadata.Machine.RomOfKey);
string? romOf = machine.Value.RomOf;
Dictionary<long, DatItem> parentItems = GetItemsForBucketDB(romOf);
if (parentItems.Count == 0)
continue;
@@ -1370,9 +1370,9 @@ namespace SabreTools.Metadata.DatFiles
if (machine is null)
continue;
machine.Write<string?>(Data.Models.Metadata.Machine.CloneOfKey, null);
machine.Write<string?>(Data.Models.Metadata.Machine.RomOfKey, null);
machine.Write<string?>(Data.Models.Metadata.Machine.SampleOfKey, null);
machine.CloneOf = null;
machine.RomOf = null;
machine.SampleOf = null;
}
#if NET40_OR_GREATER || NETCOREAPP || NETSTANDARD2_0_OR_GREATER
});
@@ -1404,9 +1404,9 @@ namespace SabreTools.Metadata.DatFiles
continue;
#endif
machine.Value.Write<string?>(Data.Models.Metadata.Machine.CloneOfKey, null);
machine.Value.Write<string?>(Data.Models.Metadata.Machine.RomOfKey, null);
machine.Value.Write<string?>(Data.Models.Metadata.Machine.SampleOfKey, null);
machine.Value.CloneOf = null;
machine.Value.RomOf = null;
machine.Value.SampleOf = null;
#if NET40_OR_GREATER || NETCOREAPP || NETSTANDARD2_0_OR_GREATER
});
#else

View File

@@ -84,11 +84,11 @@ namespace SabreTools.Metadata.DatFiles
if (trurip is not null)
{
var truripItem = trurip.ConvertToLogiqx();
truripItem.Publisher = machine.ReadString(Data.Models.Metadata.Machine.PublisherKey);
truripItem.Year = machine.ReadString(Data.Models.Metadata.Machine.YearKey);
truripItem.Players = machine.ReadString(Data.Models.Metadata.Machine.PlayersKey);
truripItem.Source = machine.ReadString(Data.Models.Metadata.Machine.SourceFileKey);
truripItem.CloneOf = machine.ReadString(Data.Models.Metadata.Machine.CloneOfKey);
truripItem.Publisher = machine.Publisher;
truripItem.Year = machine.Year;
truripItem.Players = machine.Players;
truripItem.Source = machine.SourceFile;
truripItem.CloneOf = machine.CloneOf;
machine[Data.Models.Metadata.Machine.TruripKey] = truripItem;
}
}
@@ -513,11 +513,11 @@ namespace SabreTools.Metadata.DatFiles
if (trurip is not null)
{
var truripItem = trurip.ConvertToLogiqx();
truripItem.Publisher = machine.ReadString(Data.Models.Metadata.Machine.PublisherKey);
truripItem.Year = machine.ReadString(Data.Models.Metadata.Machine.YearKey);
truripItem.Players = machine.ReadString(Data.Models.Metadata.Machine.PlayersKey);
truripItem.Source = machine.ReadString(Data.Models.Metadata.Machine.SourceFileKey);
truripItem.CloneOf = machine.ReadString(Data.Models.Metadata.Machine.CloneOfKey);
truripItem.Publisher = machine.Publisher;
truripItem.Year = machine.Year;
truripItem.Players = machine.Players;
truripItem.Source = machine.SourceFile;
truripItem.CloneOf = machine.CloneOf;
machine[Data.Models.Metadata.Machine.TruripKey] = truripItem;
}
}

View File

@@ -584,8 +584,8 @@ namespace SabreTools.Metadata.DatFiles
Data.Models.Metadata.ItemType type = item.ItemType;
string
game = machine?.Name ?? string.Empty,
manufacturer = machine?.ReadString(Data.Models.Metadata.Machine.ManufacturerKey) ?? string.Empty,
publisher = machine?.ReadString(Data.Models.Metadata.Machine.PublisherKey) ?? string.Empty,
manufacturer = machine?.Manufacturer ?? string.Empty,
publisher = machine?.Publisher ?? string.Empty,
category = machine?.ReadString(Data.Models.Metadata.Machine.CategoryKey) ?? string.Empty,
name = item.GetName() ?? type.AsStringValue() ?? string.Empty,
crc16 = string.Empty,

View File

@@ -558,8 +558,8 @@ namespace SabreTools.Metadata.DatFiles
}
// If the saved machine is a child of the current machine, use the current machine instead
if (savedMachine?.ReadString(Data.Models.Metadata.Machine.CloneOfKey) == itemMachine?.Name
|| savedMachine?.ReadString(Data.Models.Metadata.Machine.RomOfKey) == itemMachine?.Name)
if (savedMachine?.CloneOf == itemMachine?.Name
|| savedMachine?.RomOf == itemMachine?.Name)
{
savedItem.CopyMachineInformation(datItem);
savedItem.SetName(datItem.GetName());

View File

@@ -940,8 +940,8 @@ namespace SabreTools.Metadata.DatFiles
}
// If the saved machine is a child of the current machine, use the current machine instead
if (savedMachine.ReadString(Data.Models.Metadata.Machine.CloneOfKey) == itemMachine.Name
|| savedMachine.ReadString(Data.Models.Metadata.Machine.RomOfKey) == itemMachine.Name)
if (savedMachine.CloneOf == itemMachine.Name
|| savedMachine.RomOf == itemMachine.Name)
{
_machines[_itemToMachineMapping[savedIndex]] = (itemMachine.Clone() as Machine)!;
savedItem.SetName(datItem.GetName());