diff --git a/RombaSharp/Features/BaseFeature.cs b/RombaSharp/Features/BaseFeature.cs index 9c1b1c28..56debd8e 100644 --- a/RombaSharp/Features/BaseFeature.cs +++ b/RombaSharp/Features/BaseFeature.cs @@ -627,7 +627,7 @@ namespace RombaSharp.Features { foreach (DatItem datItem in tempdat.Items[romkey]) { - Globals.Logger.Verbose($"Checking and adding file '{datItem.Name}'"); + Globals.Logger.Verbose($"Checking and adding file '{datItem.GetName() ?? string.Empty}'"); if (datItem.ItemType == ItemType.Disk) { diff --git a/SabreTools.Library/DatFiles/ClrMamePro.cs b/SabreTools.Library/DatFiles/ClrMamePro.cs index daec763e..87482a26 100644 --- a/SabreTools.Library/DatFiles/ClrMamePro.cs +++ b/SabreTools.Library/DatFiles/ClrMamePro.cs @@ -281,7 +281,7 @@ namespace SabreTools.Library.DatFiles // Regular attributes case "name": - item.Name = attrVal; + item.SetFields(new Dictionary { [Field.DatItem_Name] = attrVal } ); break; case "size": @@ -602,8 +602,9 @@ namespace SabreTools.Library.DatFiles switch (datItem.ItemType) { case ItemType.Archive: + var archive = datItem as Archive; cmpw.WriteStartElement("archive"); - cmpw.WriteRequiredAttributeString("name", datItem.Name); + cmpw.WriteRequiredAttributeString("name", archive.Name); cmpw.WriteEndElement(); break; @@ -667,8 +668,9 @@ namespace SabreTools.Library.DatFiles break; case ItemType.Sample: + var sample = datItem as Sample; cmpw.WriteStartElement("sample"); - cmpw.WriteRequiredAttributeString("name", datItem.Name); + cmpw.WriteRequiredAttributeString("name", sample.Name); cmpw.WriteEndElement(); break; } diff --git a/SabreTools.Library/DatFiles/DosCenter.cs b/SabreTools.Library/DatFiles/DosCenter.cs index 6d8b2b5d..0dee0f2d 100644 --- a/SabreTools.Library/DatFiles/DosCenter.cs +++ b/SabreTools.Library/DatFiles/DosCenter.cs @@ -434,7 +434,7 @@ namespace SabreTools.Library.DatFiles case ItemType.Rom: var rom = datItem as Rom; cmpw.WriteStartElement("file"); - cmpw.WriteRequiredAttributeString("name", datItem.Name); + cmpw.WriteRequiredAttributeString("name", rom.Name); if (rom.Size != -1) cmpw.WriteAttributeString("size", rom.Size.ToString()); cmpw.WriteOptionalAttributeString("date", rom.Date); cmpw.WriteOptionalAttributeString("crc", rom.CRC?.ToLowerInvariant()); diff --git a/SabreTools.Library/DatFiles/Listxml.cs b/SabreTools.Library/DatFiles/Listxml.cs index 5dc6026f..e66526c2 100644 --- a/SabreTools.Library/DatFiles/Listxml.cs +++ b/SabreTools.Library/DatFiles/Listxml.cs @@ -1439,7 +1439,7 @@ namespace SabreTools.Library.DatFiles case ItemType.Adjuster: var adjuster = datItem as Adjuster; xtw.WriteStartElement("adjuster"); - xtw.WriteRequiredAttributeString("name", datItem.Name); + xtw.WriteRequiredAttributeString("name", adjuster.Name); xtw.WriteOptionalAttributeString("default", adjuster.Default.FromYesNo()); if (adjuster.Conditions != null) { @@ -1520,8 +1520,9 @@ namespace SabreTools.Library.DatFiles break; case ItemType.DeviceReference: + var deviceRef = datItem as DeviceReference; xtw.WriteStartElement("device_ref"); - xtw.WriteRequiredAttributeString("name", datItem.Name); + xtw.WriteRequiredAttributeString("name", deviceRef.Name); xtw.WriteEndElement(); break; @@ -1620,8 +1621,9 @@ namespace SabreTools.Library.DatFiles break; case ItemType.Sample: + var sample = datItem as Sample; xtw.WriteStartElement("sample"); - xtw.WriteRequiredAttributeString("name", datItem.Name); + xtw.WriteRequiredAttributeString("name", sample.Name); xtw.WriteEndElement(); break; @@ -1646,7 +1648,7 @@ namespace SabreTools.Library.DatFiles case ItemType.SoftwareList: var softwareList = datItem as DatItems.SoftwareList; xtw.WriteStartElement("softwarelist"); - xtw.WriteRequiredAttributeString("name", datItem.Name); + xtw.WriteRequiredAttributeString("name", softwareList.Name); xtw.WriteOptionalAttributeString("status", softwareList.Status.FromSoftwareListStatus()); xtw.WriteOptionalAttributeString("filter", softwareList.Filter); xtw.WriteEndElement(); diff --git a/SabreTools.Library/DatFiles/Logiqx.cs b/SabreTools.Library/DatFiles/Logiqx.cs index 08bfb524..6f66779e 100644 --- a/SabreTools.Library/DatFiles/Logiqx.cs +++ b/SabreTools.Library/DatFiles/Logiqx.cs @@ -939,8 +939,9 @@ namespace SabreTools.Library.DatFiles switch (datItem.ItemType) { case ItemType.Archive: + var archive = datItem as Archive; xtw.WriteStartElement("archive"); - xtw.WriteRequiredAttributeString("name", datItem.Name); + xtw.WriteRequiredAttributeString("name", archive.Name); xtw.WriteEndElement(); break; @@ -1005,8 +1006,9 @@ namespace SabreTools.Library.DatFiles break; case ItemType.Sample: + var sample = datItem as Sample; xtw.WriteStartElement("sample"); - xtw.WriteRequiredAttributeString("name", datItem.Name); + xtw.WriteRequiredAttributeString("name", sample.Name); xtw.WriteEndElement(); break; } diff --git a/SabreTools.Library/DatFiles/Missfile.cs b/SabreTools.Library/DatFiles/Missfile.cs index 445c7664..ef458182 100644 --- a/SabreTools.Library/DatFiles/Missfile.cs +++ b/SabreTools.Library/DatFiles/Missfile.cs @@ -115,7 +115,7 @@ namespace SabreTools.Library.DatFiles // Romba mode automatically uses item name if (Header.OutputDepot?.IsActive == true || Header.UseRomName) { - sw.Write($"{datItem.Name}\n"); + sw.Write($"{datItem.GetName() ?? string.Empty}\n"); } else if (!Header.UseRomName && datItem.Machine.Name != lastgame) { diff --git a/SabreTools.Library/DatFiles/OfflineList.cs b/SabreTools.Library/DatFiles/OfflineList.cs index 938393b3..b1538da3 100644 --- a/SabreTools.Library/DatFiles/OfflineList.cs +++ b/SabreTools.Library/DatFiles/OfflineList.cs @@ -868,7 +868,7 @@ namespace SabreTools.Library.DatFiles xtw.WriteStartElement("game"); xtw.WriteElementString("imageNumber", "1"); xtw.WriteElementString("releaseNumber", "1"); - xtw.WriteRequiredElementString("title", datItem.Name); + xtw.WriteRequiredElementString("title", datItem.GetName() ?? string.Empty); xtw.WriteElementString("saveType", "None"); if (datItem.ItemType == ItemType.Rom) diff --git a/SabreTools.Library/DatFiles/SabreDat.cs b/SabreTools.Library/DatFiles/SabreDat.cs index ca34541d..758b0b41 100644 --- a/SabreTools.Library/DatFiles/SabreDat.cs +++ b/SabreTools.Library/DatFiles/SabreDat.cs @@ -1212,7 +1212,7 @@ namespace SabreTools.Library.DatFiles var adjuster = datItem as Adjuster; xtw.WriteStartElement("file"); xtw.WriteAttributeString("type", "adjuster"); - xtw.WriteRequiredAttributeString("name", datItem.Name); + xtw.WriteRequiredAttributeString("name", adjuster.Name); xtw.WriteOptionalAttributeString("default", adjuster.Default.FromYesNo()); if (adjuster.Conditions != null) { @@ -1230,9 +1230,10 @@ namespace SabreTools.Library.DatFiles break; case ItemType.Archive: + var archive = datItem as Archive; xtw.WriteStartElement("file"); xtw.WriteAttributeString("type", "archive"); - xtw.WriteRequiredAttributeString("name", datItem.Name); + xtw.WriteRequiredAttributeString("name", archive.Name); xtw.WriteEndElement(); break; @@ -1303,9 +1304,10 @@ namespace SabreTools.Library.DatFiles break; case ItemType.DeviceReference: + var deviceRef = datItem as DeviceReference; xtw.WriteStartElement("file"); xtw.WriteAttributeString("type", "device_ref"); - xtw.WriteRequiredAttributeString("name", datItem.Name); + xtw.WriteRequiredAttributeString("name", deviceRef.Name); xtw.WriteEndElement(); break; @@ -1452,9 +1454,10 @@ namespace SabreTools.Library.DatFiles break; case ItemType.Sample: + var sample = datItem as Sample; xtw.WriteStartElement("file"); xtw.WriteAttributeString("type", "sample"); - xtw.WriteRequiredAttributeString("name", datItem.Name); + xtw.WriteRequiredAttributeString("name", sample.Name); xtw.WriteEndElement(); break; @@ -1481,7 +1484,7 @@ namespace SabreTools.Library.DatFiles var softwareList = datItem as DatItems.SoftwareList; xtw.WriteStartElement("file"); xtw.WriteAttributeString("type", "softwarelist"); - xtw.WriteRequiredAttributeString("name", datItem.Name); + xtw.WriteRequiredAttributeString("name", softwareList.Name); xtw.WriteOptionalAttributeString("status", softwareList.Status.FromSoftwareListStatus()); xtw.WriteOptionalAttributeString("sha512", softwareList.Filter); xtw.WriteEndElement();