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])
{
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)
{

View File

@@ -281,7 +281,7 @@ namespace SabreTools.Library.DatFiles
// Regular attributes
case "name":
item.Name = attrVal;
item.SetFields(new Dictionary<Field, string> { [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;
}

View File

@@ -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());

View File

@@ -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();

View File

@@ -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;
}

View File

@@ -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)
{

View File

@@ -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)

View File

@@ -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();