Fix writes

This commit is contained in:
Matt Nadareski
2020-09-02 12:32:10 -07:00
parent bd92f8993a
commit aa62319fc8
8 changed files with 27 additions and 18 deletions

View File

@@ -627,7 +627,7 @@ namespace RombaSharp.Features
{ {
foreach (DatItem datItem in tempdat.Items[romkey]) 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) if (datItem.ItemType == ItemType.Disk)
{ {

View File

@@ -281,7 +281,7 @@ namespace SabreTools.Library.DatFiles
// Regular attributes // Regular attributes
case "name": case "name":
item.Name = attrVal; item.SetFields(new Dictionary<Field, string> { [Field.DatItem_Name] = attrVal } );
break; break;
case "size": case "size":
@@ -602,8 +602,9 @@ namespace SabreTools.Library.DatFiles
switch (datItem.ItemType) switch (datItem.ItemType)
{ {
case ItemType.Archive: case ItemType.Archive:
var archive = datItem as Archive;
cmpw.WriteStartElement("archive"); cmpw.WriteStartElement("archive");
cmpw.WriteRequiredAttributeString("name", datItem.Name); cmpw.WriteRequiredAttributeString("name", archive.Name);
cmpw.WriteEndElement(); cmpw.WriteEndElement();
break; break;
@@ -667,8 +668,9 @@ namespace SabreTools.Library.DatFiles
break; break;
case ItemType.Sample: case ItemType.Sample:
var sample = datItem as Sample;
cmpw.WriteStartElement("sample"); cmpw.WriteStartElement("sample");
cmpw.WriteRequiredAttributeString("name", datItem.Name); cmpw.WriteRequiredAttributeString("name", sample.Name);
cmpw.WriteEndElement(); cmpw.WriteEndElement();
break; break;
} }

View File

@@ -434,7 +434,7 @@ namespace SabreTools.Library.DatFiles
case ItemType.Rom: case ItemType.Rom:
var rom = datItem as Rom; var rom = datItem as Rom;
cmpw.WriteStartElement("file"); cmpw.WriteStartElement("file");
cmpw.WriteRequiredAttributeString("name", datItem.Name); cmpw.WriteRequiredAttributeString("name", rom.Name);
if (rom.Size != -1) cmpw.WriteAttributeString("size", rom.Size.ToString()); if (rom.Size != -1) cmpw.WriteAttributeString("size", rom.Size.ToString());
cmpw.WriteOptionalAttributeString("date", rom.Date); cmpw.WriteOptionalAttributeString("date", rom.Date);
cmpw.WriteOptionalAttributeString("crc", rom.CRC?.ToLowerInvariant()); cmpw.WriteOptionalAttributeString("crc", rom.CRC?.ToLowerInvariant());

View File

@@ -1439,7 +1439,7 @@ namespace SabreTools.Library.DatFiles
case ItemType.Adjuster: case ItemType.Adjuster:
var adjuster = datItem as Adjuster; var adjuster = datItem as Adjuster;
xtw.WriteStartElement("adjuster"); xtw.WriteStartElement("adjuster");
xtw.WriteRequiredAttributeString("name", datItem.Name); xtw.WriteRequiredAttributeString("name", adjuster.Name);
xtw.WriteOptionalAttributeString("default", adjuster.Default.FromYesNo()); xtw.WriteOptionalAttributeString("default", adjuster.Default.FromYesNo());
if (adjuster.Conditions != null) if (adjuster.Conditions != null)
{ {
@@ -1520,8 +1520,9 @@ namespace SabreTools.Library.DatFiles
break; break;
case ItemType.DeviceReference: case ItemType.DeviceReference:
var deviceRef = datItem as DeviceReference;
xtw.WriteStartElement("device_ref"); xtw.WriteStartElement("device_ref");
xtw.WriteRequiredAttributeString("name", datItem.Name); xtw.WriteRequiredAttributeString("name", deviceRef.Name);
xtw.WriteEndElement(); xtw.WriteEndElement();
break; break;
@@ -1620,8 +1621,9 @@ namespace SabreTools.Library.DatFiles
break; break;
case ItemType.Sample: case ItemType.Sample:
var sample = datItem as Sample;
xtw.WriteStartElement("sample"); xtw.WriteStartElement("sample");
xtw.WriteRequiredAttributeString("name", datItem.Name); xtw.WriteRequiredAttributeString("name", sample.Name);
xtw.WriteEndElement(); xtw.WriteEndElement();
break; break;
@@ -1646,7 +1648,7 @@ namespace SabreTools.Library.DatFiles
case ItemType.SoftwareList: case ItemType.SoftwareList:
var softwareList = datItem as DatItems.SoftwareList; var softwareList = datItem as DatItems.SoftwareList;
xtw.WriteStartElement("softwarelist"); xtw.WriteStartElement("softwarelist");
xtw.WriteRequiredAttributeString("name", datItem.Name); xtw.WriteRequiredAttributeString("name", softwareList.Name);
xtw.WriteOptionalAttributeString("status", softwareList.Status.FromSoftwareListStatus()); xtw.WriteOptionalAttributeString("status", softwareList.Status.FromSoftwareListStatus());
xtw.WriteOptionalAttributeString("filter", softwareList.Filter); xtw.WriteOptionalAttributeString("filter", softwareList.Filter);
xtw.WriteEndElement(); xtw.WriteEndElement();

View File

@@ -939,8 +939,9 @@ namespace SabreTools.Library.DatFiles
switch (datItem.ItemType) switch (datItem.ItemType)
{ {
case ItemType.Archive: case ItemType.Archive:
var archive = datItem as Archive;
xtw.WriteStartElement("archive"); xtw.WriteStartElement("archive");
xtw.WriteRequiredAttributeString("name", datItem.Name); xtw.WriteRequiredAttributeString("name", archive.Name);
xtw.WriteEndElement(); xtw.WriteEndElement();
break; break;
@@ -1005,8 +1006,9 @@ namespace SabreTools.Library.DatFiles
break; break;
case ItemType.Sample: case ItemType.Sample:
var sample = datItem as Sample;
xtw.WriteStartElement("sample"); xtw.WriteStartElement("sample");
xtw.WriteRequiredAttributeString("name", datItem.Name); xtw.WriteRequiredAttributeString("name", sample.Name);
xtw.WriteEndElement(); xtw.WriteEndElement();
break; break;
} }

View File

@@ -115,7 +115,7 @@ namespace SabreTools.Library.DatFiles
// Romba mode automatically uses item name // Romba mode automatically uses item name
if (Header.OutputDepot?.IsActive == true || Header.UseRomName) 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) else if (!Header.UseRomName && datItem.Machine.Name != lastgame)
{ {

View File

@@ -868,7 +868,7 @@ namespace SabreTools.Library.DatFiles
xtw.WriteStartElement("game"); xtw.WriteStartElement("game");
xtw.WriteElementString("imageNumber", "1"); xtw.WriteElementString("imageNumber", "1");
xtw.WriteElementString("releaseNumber", "1"); xtw.WriteElementString("releaseNumber", "1");
xtw.WriteRequiredElementString("title", datItem.Name); xtw.WriteRequiredElementString("title", datItem.GetName() ?? string.Empty);
xtw.WriteElementString("saveType", "None"); xtw.WriteElementString("saveType", "None");
if (datItem.ItemType == ItemType.Rom) if (datItem.ItemType == ItemType.Rom)

View File

@@ -1212,7 +1212,7 @@ namespace SabreTools.Library.DatFiles
var adjuster = datItem as Adjuster; var adjuster = datItem as Adjuster;
xtw.WriteStartElement("file"); xtw.WriteStartElement("file");
xtw.WriteAttributeString("type", "adjuster"); xtw.WriteAttributeString("type", "adjuster");
xtw.WriteRequiredAttributeString("name", datItem.Name); xtw.WriteRequiredAttributeString("name", adjuster.Name);
xtw.WriteOptionalAttributeString("default", adjuster.Default.FromYesNo()); xtw.WriteOptionalAttributeString("default", adjuster.Default.FromYesNo());
if (adjuster.Conditions != null) if (adjuster.Conditions != null)
{ {
@@ -1230,9 +1230,10 @@ namespace SabreTools.Library.DatFiles
break; break;
case ItemType.Archive: case ItemType.Archive:
var archive = datItem as Archive;
xtw.WriteStartElement("file"); xtw.WriteStartElement("file");
xtw.WriteAttributeString("type", "archive"); xtw.WriteAttributeString("type", "archive");
xtw.WriteRequiredAttributeString("name", datItem.Name); xtw.WriteRequiredAttributeString("name", archive.Name);
xtw.WriteEndElement(); xtw.WriteEndElement();
break; break;
@@ -1303,9 +1304,10 @@ namespace SabreTools.Library.DatFiles
break; break;
case ItemType.DeviceReference: case ItemType.DeviceReference:
var deviceRef = datItem as DeviceReference;
xtw.WriteStartElement("file"); xtw.WriteStartElement("file");
xtw.WriteAttributeString("type", "device_ref"); xtw.WriteAttributeString("type", "device_ref");
xtw.WriteRequiredAttributeString("name", datItem.Name); xtw.WriteRequiredAttributeString("name", deviceRef.Name);
xtw.WriteEndElement(); xtw.WriteEndElement();
break; break;
@@ -1452,9 +1454,10 @@ namespace SabreTools.Library.DatFiles
break; break;
case ItemType.Sample: case ItemType.Sample:
var sample = datItem as Sample;
xtw.WriteStartElement("file"); xtw.WriteStartElement("file");
xtw.WriteAttributeString("type", "sample"); xtw.WriteAttributeString("type", "sample");
xtw.WriteRequiredAttributeString("name", datItem.Name); xtw.WriteRequiredAttributeString("name", sample.Name);
xtw.WriteEndElement(); xtw.WriteEndElement();
break; break;
@@ -1481,7 +1484,7 @@ namespace SabreTools.Library.DatFiles
var softwareList = datItem as DatItems.SoftwareList; var softwareList = datItem as DatItems.SoftwareList;
xtw.WriteStartElement("file"); xtw.WriteStartElement("file");
xtw.WriteAttributeString("type", "softwarelist"); xtw.WriteAttributeString("type", "softwarelist");
xtw.WriteRequiredAttributeString("name", datItem.Name); xtw.WriteRequiredAttributeString("name", softwareList.Name);
xtw.WriteOptionalAttributeString("status", softwareList.Status.FromSoftwareListStatus()); xtw.WriteOptionalAttributeString("status", softwareList.Status.FromSoftwareListStatus());
xtw.WriteOptionalAttributeString("sha512", softwareList.Filter); xtw.WriteOptionalAttributeString("sha512", softwareList.Filter);
xtw.WriteEndElement(); xtw.WriteEndElement();