Add a massive amount of TODOs

This commit is contained in:
Matt Nadareski
2020-08-22 12:56:38 -07:00
parent 93b774b69a
commit f85b859126
2 changed files with 30 additions and 14 deletions

View File

@@ -301,16 +301,19 @@ namespace SabreTools.Library.DatFiles
switch (reader.Name.ToLowerInvariant()) switch (reader.Name.ToLowerInvariant())
{ {
case "datversionurl": case "datversionurl":
// TODO: Read this into an appropriate field
content = reader.ReadElementContentAsString(); content = reader.ReadElementContentAsString();
Header.Url = (string.IsNullOrWhiteSpace(Header.Url) ? content : Header.Url); Header.Url = (string.IsNullOrWhiteSpace(Header.Url) ? content : Header.Url);
break; break;
case "daturl": case "daturl":
// TODO: Read this into an appropriate structure
reader.GetAttribute("fileName"); reader.GetAttribute("fileName");
reader.ReadElementContentAsString(); reader.ReadElementContentAsString();
break; break;
case "imurl": case "imurl":
// TODO: Read this into an appropriate field
reader.ReadElementContentAsString(); reader.ReadElementContentAsString();
break; break;
@@ -348,6 +351,7 @@ namespace SabreTools.Library.DatFiles
switch (reader.Name.ToLowerInvariant()) switch (reader.Name.ToLowerInvariant())
{ {
case "to": case "to":
// TODO: Read this into an appropriate structure
reader.GetAttribute("value"); reader.GetAttribute("value");
reader.GetAttribute("default"); // (true|false) reader.GetAttribute("default"); // (true|false)
reader.GetAttribute("auto"); // (true|false) reader.GetAttribute("auto"); // (true|false)
@@ -392,6 +396,7 @@ namespace SabreTools.Library.DatFiles
switch (reader.Name.ToLowerInvariant()) switch (reader.Name.ToLowerInvariant())
{ {
case "find": case "find":
// TODO: Read this into an appropriate structure
reader.GetAttribute("operation"); reader.GetAttribute("operation");
reader.GetAttribute("value"); // Int32? reader.GetAttribute("value"); // Int32?
reader.ReadElementContentAsString(); reader.ReadElementContentAsString();
@@ -465,9 +470,9 @@ namespace SabreTools.Library.DatFiles
int indexId) int indexId)
{ {
// Prepare all internal variables // Prepare all internal variables
string releaseNumber = string.Empty, publisher = string.Empty, duplicateid; string releaseNumber = string.Empty, duplicateid;
long size = -1; long size = -1;
List<Rom> roms = new List<Rom>(); List<Rom> datItems = new List<Rom>();
Machine machine = new Machine(); Machine machine = new Machine();
// If there's no subtree to the configuration, skip it // If there's no subtree to the configuration, skip it
@@ -491,10 +496,12 @@ namespace SabreTools.Library.DatFiles
switch (reader.Name.ToLowerInvariant()) switch (reader.Name.ToLowerInvariant())
{ {
case "imagenumber": case "imagenumber":
// TODO: Read this into a field
reader.ReadElementContentAsString(); reader.ReadElementContentAsString();
break; break;
case "releasenumber": case "releasenumber":
// TODO: Read this into a field
releaseNumber = reader.ReadElementContentAsString(); releaseNumber = reader.ReadElementContentAsString();
break; break;
@@ -503,6 +510,7 @@ namespace SabreTools.Library.DatFiles
break; break;
case "savetype": case "savetype":
// TODO: Read this into a field
reader.ReadElementContentAsString(); reader.ReadElementContentAsString();
break; break;
@@ -513,33 +521,38 @@ namespace SabreTools.Library.DatFiles
break; break;
case "publisher": case "publisher":
publisher = reader.ReadElementContentAsString(); machine.Publisher = reader.ReadElementContentAsString();
break; break;
case "location": case "location":
// TODO: Read this into a field
reader.ReadElementContentAsString(); reader.ReadElementContentAsString();
break; break;
case "sourcerom": case "sourcerom":
// TODO: Read this into a field
reader.ReadElementContentAsString(); reader.ReadElementContentAsString();
break; break;
case "language": case "language":
// TODO: Read this into a field
reader.ReadElementContentAsString(); reader.ReadElementContentAsString();
break; break;
case "files": case "files":
roms = ReadFiles(reader.ReadSubtree(), releaseNumber, machine.Name, filename, indexId); datItems = ReadFiles(reader.ReadSubtree(), releaseNumber, machine.Name, filename, indexId);
// Skip the files node now that we've processed it // Skip the files node now that we've processed it
reader.Skip(); reader.Skip();
break; break;
case "im1crc": case "im1crc":
// TODO: Read this into a field
reader.ReadElementContentAsString(); reader.ReadElementContentAsString();
break; break;
case "im2crc": case "im2crc":
// TODO: Read this into a field
reader.ReadElementContentAsString(); reader.ReadElementContentAsString();
break; break;
@@ -561,14 +574,13 @@ namespace SabreTools.Library.DatFiles
} }
// Add information accordingly for each rom // Add information accordingly for each rom
for (int i = 0; i < roms.Count; i++) for (int i = 0; i < datItems.Count; i++)
{ {
roms[i].Size = size; datItems[i].Size = size;
roms[i].CopyMachineInformation(machine); datItems[i].CopyMachineInformation(machine);
roms[i].Machine.Publisher = publisher;
// Now process and add the rom // Now process and add the rom
ParseAddHelper(roms[i]); ParseAddHelper(datItems[i]);
} }
} }
@@ -620,6 +632,8 @@ namespace SabreTools.Library.DatFiles
reader.ReadElementContentAsString().ToLowerInvariant())); reader.ReadElementContentAsString().ToLowerInvariant()));
break; break;
// TODO: Should I support the "custom" romMD5 and romSHA1 tags I write out?
default: default:
reader.Read(); reader.Read();
break; break;
@@ -889,16 +903,16 @@ 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.WriteElementString("title", datItem.GetField(Field.Name, Header.ExcludeFields)); xtw.WriteElementString("title", datItem.GetField(Field.Name, Header.ExcludeFields) ?? string.Empty);
xtw.WriteElementString("saveType", "None"); xtw.WriteElementString("saveType", "None");
if (datItem.ItemType == ItemType.Rom) if (datItem.ItemType == ItemType.Rom)
{ {
var rom = datItem as Rom; var rom = datItem as Rom;
xtw.WriteElementString("romSize", datItem.GetField(Field.Size, Header.ExcludeFields)); xtw.WriteElementString("romSize", datItem.GetField(Field.Size, Header.ExcludeFields) ?? string.Empty);
} }
xtw.WriteElementString("publisher", "None"); xtw.WriteElementString("publisher", datItem.GetField(Field.Publisher, Header.ExcludeFields) ?? string.Empty);
xtw.WriteElementString("location", "0"); xtw.WriteElementString("location", "0");
xtw.WriteElementString("sourceRom", "None"); xtw.WriteElementString("sourceRom", "None");
xtw.WriteElementString("language", "0"); xtw.WriteElementString("language", "0");
@@ -959,8 +973,8 @@ namespace SabreTools.Library.DatFiles
xtw.WriteElementString("im1CRC", "00000000"); xtw.WriteElementString("im1CRC", "00000000");
xtw.WriteElementString("im2CRC", "00000000"); xtw.WriteElementString("im2CRC", "00000000");
xtw.WriteElementString("comment", ""); xtw.WriteElementString("comment", datItem.GetField(Field.Comment, Header.ExcludeFields) ?? string.Empty);
xtw.WriteElementString("duplicateID", "0"); xtw.WriteElementString("duplicateID", datItem.GetField(Field.CloneOf, Header.ExcludeFields) ?? string.Empty);
// End game // End game
xtw.WriteEndElement(); xtw.WriteEndElement();

View File

@@ -19,6 +19,8 @@ namespace SabreTools.Library.DatItems
/// </summary> /// </summary>
public abstract class DatItem : IEquatable<DatItem>, IComparable<DatItem>, ICloneable public abstract class DatItem : IEquatable<DatItem>, IComparable<DatItem>, ICloneable
{ {
// TODO: Should any of these be specific to certain types?
// Most of the "weird" fields might only apply to Rom or Disk?
#region Fields #region Fields
#region Common Fields #region Common Fields