mirror of
https://github.com/claunia/SabreTools.git
synced 2025-12-16 19:14:27 +00:00
Fix some issues in FromMetadata conversion
This commit is contained in:
@@ -430,7 +430,8 @@ namespace SabreTools.DatFiles
|
|||||||
if (item.ContainsKey(Models.Metadata.Machine.DumpKey))
|
if (item.ContainsKey(Models.Metadata.Machine.DumpKey))
|
||||||
{
|
{
|
||||||
var items = ReadItemArray<Models.Metadata.Dump>(item, Models.Metadata.Machine.DumpKey);
|
var items = ReadItemArray<Models.Metadata.Dump>(item, Models.Metadata.Machine.DumpKey);
|
||||||
ProcessItems(items, machine, filename, indexId, statsOnly);
|
string? machineName = machine.GetStringFieldValue(Models.Metadata.Machine.NameKey);
|
||||||
|
ProcessItems(items, machine, filename, indexId, statsOnly, machineName);
|
||||||
}
|
}
|
||||||
if (item.ContainsKey(Models.Metadata.Machine.FeatureKey))
|
if (item.ContainsKey(Models.Metadata.Machine.FeatureKey))
|
||||||
{
|
{
|
||||||
@@ -746,7 +747,7 @@ namespace SabreTools.DatFiles
|
|||||||
if (datItem.GetBoolFieldValue(Models.Metadata.Device.MandatoryKey) != null)
|
if (datItem.GetBoolFieldValue(Models.Metadata.Device.MandatoryKey) != null)
|
||||||
datItem.SetFieldValue<string?>(Models.Metadata.Device.MandatoryKey, datItem.GetBoolFieldValue(Models.Metadata.Device.MandatoryKey).FromYesNo());
|
datItem.SetFieldValue<string?>(Models.Metadata.Device.MandatoryKey, datItem.GetBoolFieldValue(Models.Metadata.Device.MandatoryKey).FromYesNo());
|
||||||
if (datItem.GetStringFieldValue(Models.Metadata.Device.DeviceTypeKey) != null)
|
if (datItem.GetStringFieldValue(Models.Metadata.Device.DeviceTypeKey) != null)
|
||||||
datItem.SetFieldValue<string?>(Models.Metadata.Device.DeviceTypeKey, machine.GetStringFieldValue(Models.Metadata.Device.DeviceTypeKey).AsEnumValue<DeviceType>().AsStringValue());
|
datItem.SetFieldValue<string?>(Models.Metadata.Device.DeviceTypeKey, datItem.GetStringFieldValue(Models.Metadata.Device.DeviceTypeKey).AsEnumValue<DeviceType>().AsStringValue());
|
||||||
|
|
||||||
// Handle subitems
|
// Handle subitems
|
||||||
var instance = item.Read<Models.Metadata.Instance>(Models.Metadata.Device.InstanceKey);
|
var instance = item.Read<Models.Metadata.Instance>(Models.Metadata.Device.InstanceKey);
|
||||||
@@ -820,7 +821,7 @@ namespace SabreTools.DatFiles
|
|||||||
|
|
||||||
// Process flag values
|
// Process flag values
|
||||||
if (datItem.GetBoolFieldValue(Models.Metadata.DipSwitch.DefaultKey) != null)
|
if (datItem.GetBoolFieldValue(Models.Metadata.DipSwitch.DefaultKey) != null)
|
||||||
datItem.SetFieldValue<string?>(Models.Metadata.DipSwitch.DefaultKey, machine.GetBoolFieldValue(Models.Metadata.DipSwitch.DefaultKey).FromYesNo());
|
datItem.SetFieldValue<string?>(Models.Metadata.DipSwitch.DefaultKey, datItem.GetBoolFieldValue(Models.Metadata.DipSwitch.DefaultKey).FromYesNo());
|
||||||
|
|
||||||
// Handle subitems
|
// Handle subitems
|
||||||
var condition = item.Read<Models.Metadata.Condition>(Models.Metadata.DipSwitch.ConditionKey);
|
var condition = item.Read<Models.Metadata.Condition>(Models.Metadata.DipSwitch.ConditionKey);
|
||||||
@@ -1036,7 +1037,8 @@ namespace SabreTools.DatFiles
|
|||||||
/// <param name="filename">Name of the file to be parsed</param>
|
/// <param name="filename">Name of the file to be parsed</param>
|
||||||
/// <param name="indexId">Index ID for the DAT</param>
|
/// <param name="indexId">Index ID for the DAT</param>
|
||||||
/// <param name="statsOnly">True to only add item statistics while parsing, false otherwise</param>
|
/// <param name="statsOnly">True to only add item statistics while parsing, false otherwise</param>
|
||||||
private void ProcessItems(Models.Metadata.Dump[]? items, DatItems.Machine machine, string filename, int indexId, bool statsOnly)
|
/// <param name="machineName">Machine name to use when constructing item names</param>
|
||||||
|
private void ProcessItems(Models.Metadata.Dump[]? items, DatItems.Machine machine, string filename, int indexId, bool statsOnly, string? machineName)
|
||||||
{
|
{
|
||||||
// If the array is null or empty, return without processing
|
// If the array is null or empty, return without processing
|
||||||
if (items == null || items.Length == 0)
|
if (items == null || items.Length == 0)
|
||||||
@@ -1069,7 +1071,7 @@ namespace SabreTools.DatFiles
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
string name = $"{machine.GetStringFieldValue(Models.Metadata.Machine.NameKey)}_{index++}{(!string.IsNullOrEmpty(rom!.ReadString(Models.Metadata.Rom.RemarkKey)) ? $" {rom.ReadString(Models.Metadata.Rom.RemarkKey)}" : string.Empty)}";
|
string name = $"{machineName}_{index++}{(!string.IsNullOrEmpty(rom!.ReadString(Models.Metadata.Rom.RemarkKey)) ? $" {rom.ReadString(Models.Metadata.Rom.RemarkKey)}" : string.Empty)}";
|
||||||
|
|
||||||
var item = new DatItems.Formats.Rom();
|
var item = new DatItems.Formats.Rom();
|
||||||
item.SetName(name);
|
item.SetName(name);
|
||||||
|
|||||||
Reference in New Issue
Block a user