diff --git a/RombaSharp/Features/Diffdat.cs b/RombaSharp/Features/Diffdat.cs
index 5c8d369f..c1b5b325 100644
--- a/RombaSharp/Features/Diffdat.cs
+++ b/RombaSharp/Features/Diffdat.cs
@@ -64,7 +64,7 @@ in -old DAT file. Ignores those entries in -old that are not in -new.";
// Diff against the new datfile
DatFile intDat = Parser.CreateAndParse(newdat);
- DatTool.DiffAgainst(datfile, intDat, false);
+ DatFileTool.DiffAgainst(datfile, intDat, false);
Writer.Write(intDat, outdat);
}
}
diff --git a/RombaSharp/Features/EDiffdat.cs b/RombaSharp/Features/EDiffdat.cs
index e945c6ba..33ee8997 100644
--- a/RombaSharp/Features/EDiffdat.cs
+++ b/RombaSharp/Features/EDiffdat.cs
@@ -56,7 +56,7 @@ namespace RombaSharp.Features
// Diff against the new datfile
DatFile intDat = Parser.CreateAndParse(newdat);
- DatTool.DiffAgainst(datfile, intDat, false);
+ DatFileTool.DiffAgainst(datfile, intDat, false);
Writer.Write(intDat, outdat);
}
}
diff --git a/SabreTools.DatItems/Adjuster.cs b/SabreTools.DatItems/Adjuster.cs
index 72090dba..69e37f8b 100644
--- a/SabreTools.DatItems/Adjuster.cs
+++ b/SabreTools.DatItems/Adjuster.cs
@@ -1,5 +1,4 @@
using System.Collections.Generic;
-using System.IO;
using System.Linq;
using System.Xml.Serialization;
@@ -151,44 +150,6 @@ namespace SabreTools.DatItems
#endregion
- #region Filtering
-
- ///
- public override void RemoveFields(
- List datItemFields,
- List machineFields)
- {
- // Remove common fields first
- base.RemoveFields(datItemFields, machineFields);
-
- // Remove the fields
- if (datItemFields.Contains(DatItemField.Name))
- Name = null;
-
- if (datItemFields.Contains(DatItemField.Default))
- Default = null;
-
- if (ConditionsSpecified)
- {
- foreach (Condition condition in Conditions)
- {
- condition.RemoveFields(datItemFields, machineFields, true);
- }
- }
- }
-
- ///
- /// Set internal names to match One Rom Per Game (ORPG) logic
- ///
- public override void SetOneRomPerGame()
- {
- string[] splitname = Name.Split('.');
- Machine.Name += $"/{string.Join(".", splitname.Take(splitname.Length > 1 ? splitname.Length - 1 : 1))}";
- Name = Path.GetFileName(Name);
- }
-
- #endregion
-
#region Sorting and Merging
///
diff --git a/SabreTools.DatItems/Analog.cs b/SabreTools.DatItems/Analog.cs
index 6416a541..879d9a00 100644
--- a/SabreTools.DatItems/Analog.cs
+++ b/SabreTools.DatItems/Analog.cs
@@ -89,23 +89,6 @@ namespace SabreTools.DatItems
#endregion
- #region Filtering
-
- ///
- public override void RemoveFields(
- List datItemFields,
- List machineFields)
- {
- // Remove common fields first
- base.RemoveFields(datItemFields, machineFields);
-
- // Remove the fields
- if (datItemFields.Contains(DatItemField.Analog_Mask))
- Mask = null;
- }
-
- #endregion
-
#region Sorting and Merging
///
diff --git a/SabreTools.DatItems/Archive.cs b/SabreTools.DatItems/Archive.cs
index 7ea0746c..119233a5 100644
--- a/SabreTools.DatItems/Archive.cs
+++ b/SabreTools.DatItems/Archive.cs
@@ -1,5 +1,4 @@
using System.Collections.Generic;
-using System.IO;
using System.Linq;
using System.Xml.Serialization;
@@ -103,33 +102,6 @@ namespace SabreTools.DatItems
#endregion
- #region Filtering
-
- ///
- public override void RemoveFields(
- List datItemFields,
- List machineFields)
- {
- // Remove common fields first
- base.RemoveFields(datItemFields, machineFields);
-
- // Remove the fields
- if (datItemFields.Contains(DatItemField.Name))
- Name = null;
- }
-
- ///
- /// Set internal names to match One Rom Per Game (ORPG) logic
- ///
- public override void SetOneRomPerGame()
- {
- string[] splitname = Name.Split('.');
- Machine.Name += $"/{string.Join(".", splitname.Take(splitname.Length > 1 ? splitname.Length - 1 : 1))}";
- Name = Path.GetFileName(Name);
- }
-
- #endregion
-
#region Sorting and Merging
///
diff --git a/SabreTools.DatItems/BiosSet.cs b/SabreTools.DatItems/BiosSet.cs
index fa181358..7574fa55 100644
--- a/SabreTools.DatItems/BiosSet.cs
+++ b/SabreTools.DatItems/BiosSet.cs
@@ -1,5 +1,4 @@
using System.Collections.Generic;
-using System.IO;
using System.Linq;
using System.Xml.Serialization;
@@ -131,39 +130,6 @@ namespace SabreTools.DatItems
#endregion
- #region Filtering
-
- ///
- public override void RemoveFields(
- List datItemFields,
- List machineFields)
- {
- // Remove common fields first
- base.RemoveFields(datItemFields, machineFields);
-
- // Remove the fields
- if (datItemFields.Contains(DatItemField.Name))
- Name = null;
-
- if (datItemFields.Contains(DatItemField.Description))
- Description = null;
-
- if (datItemFields.Contains(DatItemField.Default))
- Default = null;
- }
-
- ///
- /// Set internal names to match One Rom Per Game (ORPG) logic
- ///
- public override void SetOneRomPerGame()
- {
- string[] splitname = Name.Split('.');
- Machine.Name += $"/{string.Join(".", splitname.Take(splitname.Length > 1 ? splitname.Length - 1 : 1))}";
- Name = Path.GetFileName(Name);
- }
-
- #endregion
-
#region Sorting and Merging
///
diff --git a/SabreTools.DatItems/Chip.cs b/SabreTools.DatItems/Chip.cs
index d2f5ee04..cd746b00 100644
--- a/SabreTools.DatItems/Chip.cs
+++ b/SabreTools.DatItems/Chip.cs
@@ -1,6 +1,5 @@
using System;
using System.Collections.Generic;
-using System.IO;
using System.Linq;
using System.Xml.Serialization;
@@ -149,42 +148,6 @@ namespace SabreTools.DatItems
#endregion
- #region Filtering
-
- ///
- public override void RemoveFields(
- List datItemFields,
- List machineFields)
- {
- // Remove common fields first
- base.RemoveFields(datItemFields, machineFields);
-
- // Remove the fields
- if (datItemFields.Contains(DatItemField.Name))
- Name = null;
-
- if (datItemFields.Contains(DatItemField.Tag))
- Tag = null;
-
- if (datItemFields.Contains(DatItemField.ChipType))
- ChipType = ChipType.NULL;
-
- if (datItemFields.Contains(DatItemField.Clock))
- Clock = null;
- }
-
- ///
- /// Set internal names to match One Rom Per Game (ORPG) logic
- ///
- public override void SetOneRomPerGame()
- {
- string[] splitname = Name.Split('.');
- Machine.Name += $"/{string.Join(".", splitname.Take(splitname.Length > 1 ? splitname.Length - 1 : 1))}";
- Name = Path.GetFileName(Name);
- }
-
- #endregion
-
#region Sorting and Merging
///
diff --git a/SabreTools.DatItems/Condition.cs b/SabreTools.DatItems/Condition.cs
index 30e9dc27..d04b9306 100644
--- a/SabreTools.DatItems/Condition.cs
+++ b/SabreTools.DatItems/Condition.cs
@@ -162,63 +162,6 @@ namespace SabreTools.DatItems
#endregion
- #region Filtering
-
- ///
- public override void RemoveFields(
- List datItemFields,
- List machineFields)
- {
- RemoveFields(datItemFields, machineFields, false);
- }
-
- ///
- /// Remove fields from the DatItem
- ///
- /// DatItem fields to remove
- /// Machine fields to remove
- /// True if this is a subitem, false otherwise
- public void RemoveFields(
- List datItemFields,
- List machineFields,
- bool sub)
- {
- // Remove common fields first
- base.RemoveFields(datItemFields, machineFields);
-
- // Remove the fields
- if (sub)
- {
- if (datItemFields.Contains(DatItemField.Condition_Tag))
- Tag = null;
-
- if (datItemFields.Contains(DatItemField.Condition_Mask))
- Mask = null;
-
- if (datItemFields.Contains(DatItemField.Condition_Relation))
- Relation = Relation.NULL;
-
- if (datItemFields.Contains(DatItemField.Condition_Value))
- Value = null;
- }
- else
- {
- if (datItemFields.Contains(DatItemField.Tag))
- Tag = null;
-
- if (datItemFields.Contains(DatItemField.Mask))
- Mask = null;
-
- if (datItemFields.Contains(DatItemField.Relation))
- Relation = Relation.NULL;
-
- if (datItemFields.Contains(DatItemField.Value))
- Value = null;
- }
- }
-
- #endregion
-
#region Sorting and Merging
///
diff --git a/SabreTools.DatItems/Configuration.cs b/SabreTools.DatItems/Configuration.cs
index cafca099..30b9de7d 100644
--- a/SabreTools.DatItems/Configuration.cs
+++ b/SabreTools.DatItems/Configuration.cs
@@ -1,5 +1,4 @@
using System.Collections.Generic;
-using System.IO;
using System.Linq;
using System.Xml.Serialization;
@@ -215,63 +214,6 @@ namespace SabreTools.DatItems
#endregion
- #region Filtering
-
- ///
- public override void RemoveFields(
- List datItemFields,
- List machineFields)
- {
- // Remove common fields first
- base.RemoveFields(datItemFields, machineFields);
-
- // Remove the fields
- if (datItemFields.Contains(DatItemField.Name))
- Name = null;
-
- if (datItemFields.Contains(DatItemField.Tag))
- Tag = null;
-
- if (datItemFields.Contains(DatItemField.Mask))
- Mask = null;
-
- if (ConditionsSpecified)
- {
- foreach (Condition condition in Conditions)
- {
- condition.RemoveFields(datItemFields, machineFields, true);
- }
- }
-
- if (LocationsSpecified)
- {
- foreach (Location location in Locations)
- {
- location.RemoveFields(datItemFields, machineFields);
- }
- }
-
- if (SettingsSpecified)
- {
- foreach (Setting setting in Settings)
- {
- setting.RemoveFields(datItemFields, machineFields);
- }
- }
- }
-
- ///
- /// Set internal names to match One Rom Per Game (ORPG) logic
- ///
- public override void SetOneRomPerGame()
- {
- string[] splitname = Name.Split('.');
- Machine.Name += $"/{string.Join(".", splitname.Take(splitname.Length > 1 ? splitname.Length - 1 : 1))}";
- Name = Path.GetFileName(Name);
- }
-
- #endregion
-
#region Sorting and Merging
///
diff --git a/SabreTools.DatItems/Control.cs b/SabreTools.DatItems/Control.cs
index 394e1b19..1346fa35 100644
--- a/SabreTools.DatItems/Control.cs
+++ b/SabreTools.DatItems/Control.cs
@@ -252,56 +252,6 @@ namespace SabreTools.DatItems
#endregion
- #region Filtering
-
- ///
- public override void RemoveFields(
- List datItemFields,
- List machineFields)
- {
- // Remove common fields first
- base.RemoveFields(datItemFields, machineFields);
-
- // Remove the fields
- if (datItemFields.Contains(DatItemField.Control_Type))
- ControlType = ControlType.NULL;
-
- if (datItemFields.Contains(DatItemField.Control_Player))
- Player = null;
-
- if (datItemFields.Contains(DatItemField.Control_Buttons))
- Buttons = null;
-
- if (datItemFields.Contains(DatItemField.Control_RequiredButtons))
- RequiredButtons = null;
-
- if (datItemFields.Contains(DatItemField.Control_Minimum))
- Minimum = null;
-
- if (datItemFields.Contains(DatItemField.Control_Maximum))
- Maximum = null;
-
- if (datItemFields.Contains(DatItemField.Control_Sensitivity))
- Sensitivity = null;
-
- if (datItemFields.Contains(DatItemField.Control_KeyDelta))
- KeyDelta = null;
-
- if (datItemFields.Contains(DatItemField.Control_Reverse))
- Reverse = null;
-
- if (datItemFields.Contains(DatItemField.Control_Ways))
- Ways = null;
-
- if (datItemFields.Contains(DatItemField.Control_Ways2))
- Ways2 = null;
-
- if (datItemFields.Contains(DatItemField.Control_Ways3))
- Ways3 = null;
- }
-
- #endregion
-
#region Sorting and Merging
///
diff --git a/SabreTools.DatItems/DatItem.cs b/SabreTools.DatItems/DatItem.cs
index 2e29852b..d85cc146 100644
--- a/SabreTools.DatItems/DatItem.cs
+++ b/SabreTools.DatItems/DatItem.cs
@@ -455,25 +455,6 @@ namespace SabreTools.DatItems
#region Filtering
- ///
- /// Remove fields from the DatItem
- ///
- /// DatItem fields to remove
- /// Machine fields to remove
- /// TODO: Fix case where datItemFields is null
- public virtual void RemoveFields(
- List datItemFields,
- List machineFields)
- {
- }
-
- ///
- /// Set internal names to match One Rom Per Game (ORPG) logic
- ///
- public virtual void SetOneRomPerGame()
- {
- }
-
///
/// Clean a CRC32 string and pad to the correct size
///
diff --git a/SabreTools.DatItems/DataArea.cs b/SabreTools.DatItems/DataArea.cs
index 90da76f6..cf97b0f8 100644
--- a/SabreTools.DatItems/DataArea.cs
+++ b/SabreTools.DatItems/DataArea.cs
@@ -1,6 +1,5 @@
using System;
using System.Collections.Generic;
-using System.IO;
using System.Linq;
using System.Xml.Serialization;
@@ -151,42 +150,6 @@ namespace SabreTools.DatItems
#endregion
- #region Filtering
-
- ///
- public override void RemoveFields(
- List datItemFields,
- List machineFields)
- {
- // Remove common fields first
- base.RemoveFields(datItemFields, machineFields);
-
- // Remove the fields
- if (datItemFields.Contains(DatItemField.AreaName))
- Name = null;
-
- if (datItemFields.Contains(DatItemField.AreaSize))
- Size = null;
-
- if (datItemFields.Contains(DatItemField.AreaWidth))
- Width = null;
-
- if (datItemFields.Contains(DatItemField.AreaEndianness))
- Endianness = Endianness.NULL;
- }
-
- ///
- /// Set internal names to match One Rom Per Game (ORPG) logic
- ///
- public override void SetOneRomPerGame()
- {
- string[] splitname = Name.Split('.');
- Machine.Name += $"/{string.Join(".", splitname.Take(splitname.Length > 1 ? splitname.Length - 1 : 1))}";
- Name = Path.GetFileName(Name);
- }
-
- #endregion
-
#region Sorting and Merging
///
diff --git a/SabreTools.DatItems/Device.cs b/SabreTools.DatItems/Device.cs
index 90dd6c10..ae71816c 100644
--- a/SabreTools.DatItems/Device.cs
+++ b/SabreTools.DatItems/Device.cs
@@ -207,51 +207,6 @@ namespace SabreTools.DatItems
#endregion
- #region Filtering
-
- ///
- public override void RemoveFields(
- List datItemFields,
- List machineFields)
- {
- // Remove common fields first
- base.RemoveFields(datItemFields, machineFields);
-
- // Remove the fields
- if (datItemFields.Contains(DatItemField.DeviceType))
- DeviceType = DeviceType.NULL;
-
- if (datItemFields.Contains(DatItemField.Tag))
- Tag = null;
-
- if (datItemFields.Contains(DatItemField.FixedImage))
- FixedImage = null;
-
- if (datItemFields.Contains(DatItemField.Mandatory))
- Mandatory = null;
-
- if (datItemFields.Contains(DatItemField.Interface))
- Interface = null;
-
- if (InstancesSpecified)
- {
- foreach (Instance instance in Instances)
- {
- instance.RemoveFields(datItemFields, machineFields);
- }
- }
-
- if (ExtensionsSpecified)
- {
- foreach (Extension extension in Extensions)
- {
- extension.RemoveFields(datItemFields, machineFields);
- }
- }
- }
-
- #endregion
-
#region Sorting and Merging
///
diff --git a/SabreTools.DatItems/DeviceReference.cs b/SabreTools.DatItems/DeviceReference.cs
index 51562fe0..50180871 100644
--- a/SabreTools.DatItems/DeviceReference.cs
+++ b/SabreTools.DatItems/DeviceReference.cs
@@ -1,5 +1,4 @@
using System.Collections.Generic;
-using System.IO;
using System.Linq;
using System.Xml.Serialization;
@@ -103,33 +102,6 @@ namespace SabreTools.DatItems
#endregion
- #region Filtering
-
- ///
- public override void RemoveFields(
- List datItemFields,
- List machineFields)
- {
- // Remove common fields first
- base.RemoveFields(datItemFields, machineFields);
-
- // Remove the fields
- if (datItemFields.Contains(DatItemField.Name))
- Name = null;
- }
-
- ///
- /// Set internal names to match One Rom Per Game (ORPG) logic
- ///
- public override void SetOneRomPerGame()
- {
- string[] splitname = Name.Split('.');
- Machine.Name += $"/{string.Join(".", splitname.Take(splitname.Length > 1 ? splitname.Length - 1 : 1))}";
- Name = Path.GetFileName(Name);
- }
-
- #endregion
-
#region Sorting and Merging
///
diff --git a/SabreTools.DatItems/DipSwitch.cs b/SabreTools.DatItems/DipSwitch.cs
index 629834a5..5d61a2c7 100644
--- a/SabreTools.DatItems/DipSwitch.cs
+++ b/SabreTools.DatItems/DipSwitch.cs
@@ -1,5 +1,4 @@
using System.Collections.Generic;
-using System.IO;
using System.Linq;
using System.Xml.Serialization;
@@ -262,75 +261,6 @@ namespace SabreTools.DatItems
#endregion
- #region Filtering
-
- ///
- public override void RemoveFields(
- List datItemFields,
- List machineFields)
- {
- // Remove common fields first
- base.RemoveFields(datItemFields, machineFields);
-
- // Remove the fields
-
- #region Common
-
- if (datItemFields.Contains(DatItemField.Name))
- Name = null;
-
- if (datItemFields.Contains(DatItemField.Tag))
- Tag = null;
-
- if (datItemFields.Contains(DatItemField.Mask))
- Mask = null;
-
- if (ConditionsSpecified)
- {
- foreach (Condition condition in Conditions)
- {
- condition.RemoveFields(datItemFields, machineFields, true);
- }
- }
-
- if (LocationsSpecified)
- {
- foreach (Location location in Locations)
- {
- location.RemoveFields(datItemFields, machineFields);
- }
- }
-
- if (ValuesSpecified)
- {
- foreach (Setting value in Values)
- {
- value.RemoveFields(datItemFields, machineFields);
- }
- }
-
- #endregion
-
- #region SoftwareList
-
- if (PartSpecified)
- Part.RemoveFields(datItemFields, machineFields);
-
- #endregion
- }
-
- ///
- /// Set internal names to match One Rom Per Game (ORPG) logic
- ///
- public override void SetOneRomPerGame()
- {
- string[] splitname = Name.Split('.');
- Machine.Name += $"/{string.Join(".", splitname.Take(splitname.Length > 1 ? splitname.Length - 1 : 1))}";
- Name = Path.GetFileName(Name);
- }
-
- #endregion
-
#region Sorting and Merging
///
diff --git a/SabreTools.DatItems/Disk.cs b/SabreTools.DatItems/Disk.cs
index 24ed23e8..f5cf4b06 100644
--- a/SabreTools.DatItems/Disk.cs
+++ b/SabreTools.DatItems/Disk.cs
@@ -1,5 +1,4 @@
using System.Collections.Generic;
-using System.IO;
using System.Linq;
using System.Xml.Serialization;
@@ -422,72 +421,6 @@ namespace SabreTools.DatItems
#endregion
- #region Filtering
-
- ///
- public override void RemoveFields(
- List datItemFields,
- List machineFields)
- {
- // Remove common fields first
- base.RemoveFields(datItemFields, machineFields);
-
- // Remove the fields
-
- #region Common
-
- if (datItemFields.Contains(DatItemField.Name))
- Name = null;
-
- if (datItemFields.Contains(DatItemField.MD5))
- MD5 = null;
-
- if (datItemFields.Contains(DatItemField.SHA1))
- SHA1 = null;
-
- if (datItemFields.Contains(DatItemField.Merge))
- MergeTag = null;
-
- if (datItemFields.Contains(DatItemField.Region))
- Region = null;
-
- if (datItemFields.Contains(DatItemField.Index))
- Index = null;
-
- if (datItemFields.Contains(DatItemField.Writable))
- Writable = null;
-
- if (datItemFields.Contains(DatItemField.Status))
- ItemStatus = ItemStatus.NULL;
-
- if (datItemFields.Contains(DatItemField.Optional))
- Optional = null;
-
- #endregion
-
- #region SoftwareList
-
- if (DiskAreaSpecified)
- DiskArea.RemoveFields(datItemFields, machineFields);
-
- if (PartSpecified)
- Part.RemoveFields(datItemFields, machineFields);
-
- #endregion
- }
-
- ///
- /// Set internal names to match One Rom Per Game (ORPG) logic
- ///
- public override void SetOneRomPerGame()
- {
- string[] splitname = Name.Split('.');
- Machine.Name += $"/{string.Join(".", splitname.Take(splitname.Length > 1 ? splitname.Length - 1 : 1))}";
- Name = Path.GetFileName(Name);
- }
-
- #endregion
-
#region Sorting and Merging
///
diff --git a/SabreTools.DatItems/DiskArea.cs b/SabreTools.DatItems/DiskArea.cs
index 7ad97f8d..77a4891a 100644
--- a/SabreTools.DatItems/DiskArea.cs
+++ b/SabreTools.DatItems/DiskArea.cs
@@ -1,6 +1,5 @@
using System;
using System.Collections.Generic;
-using System.IO;
using System.Linq;
using System.Xml.Serialization;
@@ -105,33 +104,6 @@ namespace SabreTools.DatItems
#endregion
- #region Filtering
-
- ///
- public override void RemoveFields(
- List datItemFields,
- List machineFields)
- {
- // Remove common fields first
- base.RemoveFields(datItemFields, machineFields);
-
- // Remove the fields
- if (datItemFields.Contains(DatItemField.AreaName))
- Name = null;
- }
-
- ///
- /// Set internal names to match One Rom Per Game (ORPG) logic
- ///
- public override void SetOneRomPerGame()
- {
- string[] splitname = Name.Split('.');
- Machine.Name += $"/{string.Join(".", splitname.Take(splitname.Length > 1 ? splitname.Length - 1 : 1))}";
- Name = Path.GetFileName(Name);
- }
-
- #endregion
-
#region Sorting and Merging
///
diff --git a/SabreTools.DatItems/Display.cs b/SabreTools.DatItems/Display.cs
index 9e6ed9c0..0ea34c73 100644
--- a/SabreTools.DatItems/Display.cs
+++ b/SabreTools.DatItems/Display.cs
@@ -291,62 +291,6 @@ namespace SabreTools.DatItems
#endregion
- #region Filtering
-
- ///
- public override void RemoveFields(
- List datItemFields,
- List machineFields)
- {
- // Remove common fields first
- base.RemoveFields(datItemFields, machineFields);
-
- // Remove the fields
- if (datItemFields.Contains(DatItemField.Tag))
- Tag = null;
-
- if (datItemFields.Contains(DatItemField.DisplayType))
- DisplayType = DisplayType.NULL;
-
- if (datItemFields.Contains(DatItemField.Rotate))
- Rotate = null;
-
- if (datItemFields.Contains(DatItemField.FlipX))
- FlipX = null;
-
- if (datItemFields.Contains(DatItemField.Width))
- Width = null;
-
- if (datItemFields.Contains(DatItemField.Height))
- Height = null;
-
- if (datItemFields.Contains(DatItemField.Refresh))
- Refresh = null;
-
- if (datItemFields.Contains(DatItemField.PixClock))
- PixClock = null;
-
- if (datItemFields.Contains(DatItemField.HTotal))
- HTotal = null;
-
- if (datItemFields.Contains(DatItemField.HBEnd))
- HBEnd = null;
-
- if (datItemFields.Contains(DatItemField.HBStart))
- HBStart = null;
-
- if (datItemFields.Contains(DatItemField.VTotal))
- VTotal = null;
-
- if (datItemFields.Contains(DatItemField.VBEnd))
- VBEnd = null;
-
- if (datItemFields.Contains(DatItemField.VBStart))
- VBStart = null;
- }
-
- #endregion
-
#region Sorting and Merging
///
diff --git a/SabreTools.DatItems/Driver.cs b/SabreTools.DatItems/Driver.cs
index 0e304b10..c04d6be3 100644
--- a/SabreTools.DatItems/Driver.cs
+++ b/SabreTools.DatItems/Driver.cs
@@ -143,32 +143,6 @@ namespace SabreTools.DatItems
#endregion
- #region Filtering
-
- ///
- public override void RemoveFields(
- List datItemFields,
- List machineFields)
- {
- // Remove common fields first
- base.RemoveFields(datItemFields, machineFields);
-
- // Remove the fields
- if (datItemFields.Contains(DatItemField.SupportStatus))
- Status = SupportStatus.NULL;
-
- if (datItemFields.Contains(DatItemField.EmulationStatus))
- Emulation = SupportStatus.NULL;
-
- if (datItemFields.Contains(DatItemField.CocktailStatus))
- Cocktail = SupportStatus.NULL;
-
- if (datItemFields.Contains(DatItemField.SaveStateStatus))
- SaveState = Supported.NULL;
- }
-
- #endregion
-
#region Sorting and Merging
///
diff --git a/SabreTools.DatItems/Extension.cs b/SabreTools.DatItems/Extension.cs
index 2ba4cb23..b34fba40 100644
--- a/SabreTools.DatItems/Extension.cs
+++ b/SabreTools.DatItems/Extension.cs
@@ -1,5 +1,4 @@
using System.Collections.Generic;
-using System.IO;
using System.Linq;
using System.Xml.Serialization;
@@ -103,33 +102,6 @@ namespace SabreTools.DatItems
#endregion
- #region Filtering
-
- ///
- public override void RemoveFields(
- List datItemFields,
- List machineFields)
- {
- // Remove common fields first
- base.RemoveFields(datItemFields, machineFields);
-
- // Remove the fields
- if (datItemFields.Contains(DatItemField.Extension_Name))
- Name = null;
- }
-
- ///
- /// Set internal names to match One Rom Per Game (ORPG) logic
- ///
- public override void SetOneRomPerGame()
- {
- string[] splitname = Name.Split('.');
- Machine.Name += $"/{string.Join(".", splitname.Take(splitname.Length > 1 ? splitname.Length - 1 : 1))}";
- Name = Path.GetFileName(Name);
- }
-
- #endregion
-
#region Sorting and Merging
///
diff --git a/SabreTools.DatItems/Feature.cs b/SabreTools.DatItems/Feature.cs
index ed62fab4..f8e4f60e 100644
--- a/SabreTools.DatItems/Feature.cs
+++ b/SabreTools.DatItems/Feature.cs
@@ -125,29 +125,6 @@ namespace SabreTools.DatItems
#endregion
- #region Filtering
-
- ///
- public override void RemoveFields(
- List datItemFields,
- List machineFields)
- {
- // Remove common fields first
- base.RemoveFields(datItemFields, machineFields);
-
- // Remove the fields
- if (datItemFields.Contains(DatItemField.FeatureType))
- Type = FeatureType.NULL;
-
- if (datItemFields.Contains(DatItemField.FeatureStatus))
- Status = FeatureStatus.NULL;
-
- if (datItemFields.Contains(DatItemField.FeatureOverall))
- Overall = FeatureStatus.NULL;
- }
-
- #endregion
-
#region Sorting and Merging
///
diff --git a/SabreTools.DatItems/Info.cs b/SabreTools.DatItems/Info.cs
index 4dbf2e22..1f44734c 100644
--- a/SabreTools.DatItems/Info.cs
+++ b/SabreTools.DatItems/Info.cs
@@ -1,5 +1,4 @@
using System.Collections.Generic;
-using System.IO;
using System.Linq;
using System.Xml.Serialization;
@@ -114,36 +113,6 @@ namespace SabreTools.DatItems
#endregion
- #region Filtering
-
- ///
- public override void RemoveFields(
- List datItemFields,
- List machineFields)
- {
- // Remove common fields first
- base.RemoveFields(datItemFields, machineFields);
-
- // Remove the fields
- if (datItemFields.Contains(DatItemField.Name))
- Name = null;
-
- if (datItemFields.Contains(DatItemField.Value))
- Value = null;
- }
-
- ///
- /// Set internal names to match One Rom Per Game (ORPG) logic
- ///
- public override void SetOneRomPerGame()
- {
- string[] splitname = Name.Split('.');
- Machine.Name += $"/{string.Join(".", splitname.Take(splitname.Length > 1 ? splitname.Length - 1 : 1))}";
- Name = Path.GetFileName(Name);
- }
-
- #endregion
-
#region Sorting and Merging
///
diff --git a/SabreTools.DatItems/Input.cs b/SabreTools.DatItems/Input.cs
index 34c25d82..13913960 100644
--- a/SabreTools.DatItems/Input.cs
+++ b/SabreTools.DatItems/Input.cs
@@ -171,40 +171,6 @@ namespace SabreTools.DatItems
#endregion
- #region Filtering
-
- ///
- public override void RemoveFields(
- List datItemFields,
- List machineFields)
- {
- // Remove common fields first
- base.RemoveFields(datItemFields, machineFields);
-
- // Remove the fields
- if (datItemFields.Contains(DatItemField.Service))
- Service = null;
-
- if (datItemFields.Contains(DatItemField.Tilt))
- Tilt = null;
-
- if (datItemFields.Contains(DatItemField.Players))
- Players = 0;
-
- if (datItemFields.Contains(DatItemField.Coins))
- Coins = null;
-
- if (ControlsSpecified)
- {
- foreach (Control control in Controls)
- {
- control.RemoveFields(datItemFields, machineFields);
- }
- }
- }
-
- #endregion
-
#region Sorting and Merging
///
diff --git a/SabreTools.DatItems/Instance.cs b/SabreTools.DatItems/Instance.cs
index df898e38..31f09699 100644
--- a/SabreTools.DatItems/Instance.cs
+++ b/SabreTools.DatItems/Instance.cs
@@ -1,5 +1,4 @@
using System.Collections.Generic;
-using System.IO;
using System.Linq;
using System.Xml.Serialization;
@@ -114,36 +113,6 @@ namespace SabreTools.DatItems
#endregion
- #region Filtering
-
- ///
- public override void RemoveFields(
- List datItemFields,
- List machineFields)
- {
- // Remove common fields first
- base.RemoveFields(datItemFields, machineFields);
-
- // Remove the fields
- if (datItemFields.Contains(DatItemField.Instance_Name))
- Name = null;
-
- if (datItemFields.Contains(DatItemField.Instance_BriefName))
- BriefName = null;
- }
-
- ///
- /// Set internal names to match One Rom Per Game (ORPG) logic
- ///
- public override void SetOneRomPerGame()
- {
- string[] splitname = Name.Split('.');
- Machine.Name += $"/{string.Join(".", splitname.Take(splitname.Length > 1 ? splitname.Length - 1 : 1))}";
- Name = Path.GetFileName(Name);
- }
-
- #endregion
-
#region Sorting and Merging
///
diff --git a/SabreTools.DatItems/Location.cs b/SabreTools.DatItems/Location.cs
index 1529862c..1056e877 100644
--- a/SabreTools.DatItems/Location.cs
+++ b/SabreTools.DatItems/Location.cs
@@ -1,5 +1,4 @@
using System.Collections.Generic;
-using System.IO;
using System.Linq;
using System.Xml.Serialization;
@@ -134,39 +133,6 @@ namespace SabreTools.DatItems
#endregion
- #region Filtering
-
- ///
- public override void RemoveFields(
- List datItemFields,
- List machineFields)
- {
- // Remove common fields first
- base.RemoveFields(datItemFields, machineFields);
-
- // Remove the fields
- if (datItemFields.Contains(DatItemField.Location_Name))
- Name = null;
-
- if (datItemFields.Contains(DatItemField.Location_Number))
- Number = null;
-
- if (datItemFields.Contains(DatItemField.Location_Inverted))
- Inverted = null;
- }
-
- ///
- /// Set internal names to match One Rom Per Game (ORPG) logic
- ///
- public override void SetOneRomPerGame()
- {
- string[] splitname = Name.Split('.');
- Machine.Name += $"/{string.Join(".", splitname.Take(splitname.Length > 1 ? splitname.Length - 1 : 1))}";
- Name = Path.GetFileName(Name);
- }
-
- #endregion
-
#region Sorting and Merging
///
diff --git a/SabreTools.DatItems/Media.cs b/SabreTools.DatItems/Media.cs
index 3929b54f..20eddee6 100644
--- a/SabreTools.DatItems/Media.cs
+++ b/SabreTools.DatItems/Media.cs
@@ -1,5 +1,4 @@
using System.Collections.Generic;
-using System.IO;
using System.Linq;
using System.Text;
using System.Xml.Serialization;
@@ -321,45 +320,6 @@ namespace SabreTools.DatItems
#endregion
- #region Filtering
-
- ///
- public override void RemoveFields(
- List datItemFields,
- List machineFields)
- {
- // Remove common fields first
- base.RemoveFields(datItemFields, machineFields);
-
- // Remove the fields
- if (datItemFields.Contains(DatItemField.Name))
- Name = null;
-
- if (datItemFields.Contains(DatItemField.MD5))
- MD5 = null;
-
- if (datItemFields.Contains(DatItemField.SHA1))
- SHA1 = null;
-
- if (datItemFields.Contains(DatItemField.SHA256))
- SHA256 = null;
-
- if (datItemFields.Contains(DatItemField.SpamSum))
- SpamSum = null;
- }
-
- ///
- /// Set internal names to match One Rom Per Game (ORPG) logic
- ///
- public override void SetOneRomPerGame()
- {
- string[] splitname = Name.Split('.');
- Machine.Name += $"/{string.Join(".", splitname.Take(splitname.Length > 1 ? splitname.Length - 1 : 1))}";
- Name = Path.GetFileName(Name);
- }
-
- #endregion
-
#region Sorting and Merging
///
diff --git a/SabreTools.DatItems/Part.cs b/SabreTools.DatItems/Part.cs
index 77de5673..d474f354 100644
--- a/SabreTools.DatItems/Part.cs
+++ b/SabreTools.DatItems/Part.cs
@@ -1,6 +1,5 @@
using System;
using System.Collections.Generic;
-using System.IO;
using System.Linq;
using System.Xml.Serialization;
@@ -141,44 +140,6 @@ namespace SabreTools.DatItems
#endregion
- #region Filtering
-
- ///
- public override void RemoveFields(
- List datItemFields,
- List machineFields)
- {
- // Remove common fields first
- base.RemoveFields(datItemFields, machineFields);
-
- // Remove the fields
- if (datItemFields.Contains(DatItemField.Part_Name))
- Name = null;
-
- if (datItemFields.Contains(DatItemField.Part_Interface))
- Interface = null;
-
- if (FeaturesSpecified)
- {
- foreach (PartFeature partFeature in Features)
- {
- partFeature.RemoveFields(datItemFields, machineFields);
- }
- }
- }
-
- ///
- /// Set internal names to match One Rom Per Game (ORPG) logic
- ///
- public override void SetOneRomPerGame()
- {
- string[] splitname = Name.Split('.');
- Machine.Name += $"/{string.Join(".", splitname.Take(splitname.Length > 1 ? splitname.Length - 1 : 1))}";
- Name = Path.GetFileName(Name);
- }
-
- #endregion
-
#region Sorting and Merging
///
diff --git a/SabreTools.DatItems/PartFeature.cs b/SabreTools.DatItems/PartFeature.cs
index c32e3ef7..e4cbd3ef 100644
--- a/SabreTools.DatItems/PartFeature.cs
+++ b/SabreTools.DatItems/PartFeature.cs
@@ -1,5 +1,4 @@
using System.Collections.Generic;
-using System.IO;
using System.Linq;
using System.Xml.Serialization;
@@ -114,36 +113,6 @@ namespace SabreTools.DatItems
#endregion
- #region Filtering
-
- ///
- public override void RemoveFields(
- List datItemFields,
- List machineFields)
- {
- // Remove common fields first
- base.RemoveFields(datItemFields, machineFields);
-
- // Remove the fields
- if (datItemFields.Contains(DatItemField.Part_Feature_Name))
- Name = null;
-
- if (datItemFields.Contains(DatItemField.Part_Feature_Value))
- Value = null;
- }
-
- ///
- /// Set internal names to match One Rom Per Game (ORPG) logic
- ///
- public override void SetOneRomPerGame()
- {
- string[] splitname = Name.Split('.');
- Machine.Name += $"/{string.Join(".", splitname.Take(splitname.Length > 1 ? splitname.Length - 1 : 1))}";
- Name = Path.GetFileName(Name);
- }
-
- #endregion
-
#region Sorting and Merging
///
diff --git a/SabreTools.DatItems/Port.cs b/SabreTools.DatItems/Port.cs
index cc9b9b85..410b9a0e 100644
--- a/SabreTools.DatItems/Port.cs
+++ b/SabreTools.DatItems/Port.cs
@@ -121,31 +121,6 @@ namespace SabreTools.DatItems
#endregion
- #region Filtering
-
- ///
- public override void RemoveFields(
- List datItemFields,
- List machineFields)
- {
- // Remove common fields first
- base.RemoveFields(datItemFields, machineFields);
-
- // Remove the fields
- if (datItemFields.Contains(DatItemField.Tag))
- Tag = null;
-
- if (AnalogsSpecified)
- {
- foreach (Analog analog in Analogs)
- {
- analog.RemoveFields(datItemFields, machineFields);
- }
- }
- }
-
- #endregion
-
#region Sorting and Merging
///
diff --git a/SabreTools.DatItems/RamOption.cs b/SabreTools.DatItems/RamOption.cs
index f074481f..5f6c6d64 100644
--- a/SabreTools.DatItems/RamOption.cs
+++ b/SabreTools.DatItems/RamOption.cs
@@ -1,5 +1,4 @@
using System.Collections.Generic;
-using System.IO;
using System.Linq;
using System.Xml.Serialization;
@@ -129,39 +128,6 @@ namespace SabreTools.DatItems
#endregion
- #region Filtering
-
- ///
- public override void RemoveFields(
- List datItemFields,
- List machineFields)
- {
- // Remove common fields first
- base.RemoveFields(datItemFields, machineFields);
-
- // Remove the fields
- if (datItemFields.Contains(DatItemField.Name))
- Name = null;
-
- if (datItemFields.Contains(DatItemField.Default))
- Default = null;
-
- if (datItemFields.Contains(DatItemField.Content))
- Content = null;
- }
-
- ///
- /// Set internal names to match One Rom Per Game (ORPG) logic
- ///
- public override void SetOneRomPerGame()
- {
- string[] splitname = Name.Split('.');
- Machine.Name += $"/{string.Join(".", splitname.Take(splitname.Length > 1 ? splitname.Length - 1 : 1))}";
- Name = Path.GetFileName(Name);
- }
-
- #endregion
-
#region Sorting and Merging
///
diff --git a/SabreTools.DatItems/Release.cs b/SabreTools.DatItems/Release.cs
index a5638618..9ac8226b 100644
--- a/SabreTools.DatItems/Release.cs
+++ b/SabreTools.DatItems/Release.cs
@@ -1,5 +1,4 @@
using System.Collections.Generic;
-using System.IO;
using System.Linq;
using System.Xml.Serialization;
@@ -159,45 +158,6 @@ namespace SabreTools.DatItems
#endregion
- #region Filtering
-
- ///
- public override void RemoveFields(
- List datItemFields,
- List machineFields)
- {
- // Remove common fields first
- base.RemoveFields(datItemFields, machineFields);
-
- // Remove the fields
- if (datItemFields.Contains(DatItemField.Name))
- Name = null;
-
- if (datItemFields.Contains(DatItemField.Region))
- Region = null;
-
- if (datItemFields.Contains(DatItemField.Language))
- Language = null;
-
- if (datItemFields.Contains(DatItemField.Date))
- Date = null;
-
- if (datItemFields.Contains(DatItemField.Default))
- Default = null;
- }
-
- ///
- /// Set internal names to match One Rom Per Game (ORPG) logic
- ///
- public override void SetOneRomPerGame()
- {
- string[] splitname = Name.Split('.');
- Machine.Name += $"/{string.Join(".", splitname.Take(splitname.Length > 1 ? splitname.Length - 1 : 1))}";
- Name = Path.GetFileName(Name);
- }
-
- #endregion
-
#region Sorting and Merging
///
diff --git a/SabreTools.DatItems/Rom.cs b/SabreTools.DatItems/Rom.cs
index 0df3af7d..4ebe97af 100644
--- a/SabreTools.DatItems/Rom.cs
+++ b/SabreTools.DatItems/Rom.cs
@@ -1,6 +1,5 @@
using System;
using System.Collections.Generic;
-using System.IO;
using System.Linq;
using System.Text;
using System.Xml.Serialization;
@@ -795,136 +794,6 @@ namespace SabreTools.DatItems
#endregion
- #region Filtering
-
- ///
- public override void RemoveFields(
- List datItemFields,
- List machineFields)
- {
- // Remove common fields first
- base.RemoveFields(datItemFields, machineFields);
-
- // Remove the fields
-
- #region Common
-
- if (datItemFields.Contains(DatItemField.Name))
- Name = null;
-
- if (datItemFields.Contains(DatItemField.Bios))
- Bios = null;
-
- if (datItemFields.Contains(DatItemField.Size))
- Size = 0;
-
- if (datItemFields.Contains(DatItemField.CRC))
- CRC = null;
-
- if (datItemFields.Contains(DatItemField.MD5))
- MD5 = null;
-
-#if NET_FRAMEWORK
- if (datItemFields.Contains(DatItemField.RIPEMD160))
- RIPEMD160 = null;
-#endif
-
- if (datItemFields.Contains(DatItemField.SHA1))
- SHA1 = null;
-
- if (datItemFields.Contains(DatItemField.SHA256))
- SHA256 = null;
-
- if (datItemFields.Contains(DatItemField.SHA384))
- SHA384 = null;
-
- if (datItemFields.Contains(DatItemField.SHA512))
- SHA512 = null;
-
- if (datItemFields.Contains(DatItemField.SpamSum))
- SpamSum = null;
-
- if (datItemFields.Contains(DatItemField.Merge))
- MergeTag = null;
-
- if (datItemFields.Contains(DatItemField.Region))
- Region = null;
-
- if (datItemFields.Contains(DatItemField.Offset))
- Offset = null;
-
- if (datItemFields.Contains(DatItemField.Date))
- Date = null;
-
- if (datItemFields.Contains(DatItemField.Status))
- ItemStatus = ItemStatus.NULL;
-
- if (datItemFields.Contains(DatItemField.Optional))
- Optional = null;
-
- if (datItemFields.Contains(DatItemField.Inverted))
- Inverted = null;
-
- #endregion
-
- #region AttractMode
-
- if (datItemFields.Contains(DatItemField.AltName))
- AltName = null;
-
- if (datItemFields.Contains(DatItemField.AltTitle))
- AltTitle = null;
-
- #endregion
-
- #region OpenMSX
-
- if (datItemFields.Contains(DatItemField.Original))
- Original = null;
-
- if (datItemFields.Contains(DatItemField.OpenMSXSubType))
- OpenMSXSubType = OpenMSXSubType.NULL;
-
- if (datItemFields.Contains(DatItemField.OpenMSXType))
- OpenMSXType = null;
-
- if (datItemFields.Contains(DatItemField.Remark))
- Remark = null;
-
- if (datItemFields.Contains(DatItemField.Boot))
- Boot = null;
-
- #endregion
-
- #region SoftwareList
-
- if (datItemFields.Contains(DatItemField.LoadFlag))
- LoadFlag = LoadFlag.NULL;
-
- if (datItemFields.Contains(DatItemField.Value))
- Value = null;
-
- if (DataAreaSpecified)
- DataArea.RemoveFields(datItemFields, machineFields);
-
- if (PartSpecified)
- Part.RemoveFields(datItemFields, machineFields);
-
- #endregion
- }
-
- ///
- /// Set internal names to match One Rom Per Game (ORPG) logic
- ///
- public override void SetOneRomPerGame()
- {
- string[] splitname = Name.Split('.');
- Machine.Name += $"/{string.Join(".", splitname.Take(splitname.Length > 1 ? splitname.Length - 1 : 1))}";
- Name = Path.GetFileName(Name);
- }
-
- #endregion
-
#region Sorting and Merging
///
diff --git a/SabreTools.DatItems/Sample.cs b/SabreTools.DatItems/Sample.cs
index 5823673a..4a6264e7 100644
--- a/SabreTools.DatItems/Sample.cs
+++ b/SabreTools.DatItems/Sample.cs
@@ -1,5 +1,4 @@
using System.Collections.Generic;
-using System.IO;
using System.Linq;
using System.Xml.Serialization;
@@ -103,33 +102,6 @@ namespace SabreTools.DatItems
#endregion
- #region Filtering
-
- ///
- public override void RemoveFields(
- List datItemFields,
- List machineFields)
- {
- // Remove common fields first
- base.RemoveFields(datItemFields, machineFields);
-
- // Remove the fields
- if (datItemFields.Contains(DatItemField.Name))
- Name = null;
- }
-
- ///
- /// Set internal names to match One Rom Per Game (ORPG) logic
- ///
- public override void SetOneRomPerGame()
- {
- string[] splitname = Name.Split('.');
- Machine.Name += $"/{string.Join(".", splitname.Take(splitname.Length > 1 ? splitname.Length - 1 : 1))}";
- Name = Path.GetFileName(Name);
- }
-
- #endregion
-
#region Sorting and Merging
///
diff --git a/SabreTools.DatItems/Setting.cs b/SabreTools.DatItems/Setting.cs
index c397dc80..4d81600b 100644
--- a/SabreTools.DatItems/Setting.cs
+++ b/SabreTools.DatItems/Setting.cs
@@ -1,5 +1,4 @@
using System.Collections.Generic;
-using System.IO;
using System.Linq;
using System.Xml.Serialization;
@@ -163,47 +162,6 @@ namespace SabreTools.DatItems
#endregion
- #region Filtering
-
- ///
- public override void RemoveFields(
- List datItemFields,
- List machineFields)
- {
- // Remove common fields first
- base.RemoveFields(datItemFields, machineFields);
-
- // Remove the fields
- if (datItemFields.Contains(DatItemField.Setting_Name))
- Name = null;
-
- if (datItemFields.Contains(DatItemField.Setting_Value))
- Value = null;
-
- if (datItemFields.Contains(DatItemField.Setting_Default))
- Default = null;
-
- if (ConditionsSpecified)
- {
- foreach (Condition condition in Conditions)
- {
- condition.RemoveFields(datItemFields, machineFields, true);
- }
- }
- }
-
- ///
- /// Set internal names to match One Rom Per Game (ORPG) logic
- ///
- public override void SetOneRomPerGame()
- {
- string[] splitname = Name.Split('.');
- Machine.Name += $"/{string.Join(".", splitname.Take(splitname.Length > 1 ? splitname.Length - 1 : 1))}";
- Name = Path.GetFileName(Name);
- }
-
- #endregion
-
#region Sorting and Merging
///
diff --git a/SabreTools.DatItems/SharedFeature.cs b/SabreTools.DatItems/SharedFeature.cs
index e7ea4dbb..3805642b 100644
--- a/SabreTools.DatItems/SharedFeature.cs
+++ b/SabreTools.DatItems/SharedFeature.cs
@@ -1,5 +1,4 @@
using System.Collections.Generic;
-using System.IO;
using System.Linq;
using System.Xml.Serialization;
@@ -114,36 +113,6 @@ namespace SabreTools.DatItems
#endregion
- #region Filtering
-
- ///
- public override void RemoveFields(
- List datItemFields,
- List machineFields)
- {
- // Remove common fields first
- base.RemoveFields(datItemFields, machineFields);
-
- // Remove the fields
- if (datItemFields.Contains(DatItemField.Name))
- Name = null;
-
- if (datItemFields.Contains(DatItemField.Value))
- Value = null;
- }
-
- ///
- /// Set internal names to match One Rom Per Game (ORPG) logic
- ///
- public override void SetOneRomPerGame()
- {
- string[] splitname = Name.Split('.');
- Machine.Name += $"/{string.Join(".", splitname.Take(splitname.Length > 1 ? splitname.Length - 1 : 1))}";
- Name = Path.GetFileName(Name);
- }
-
- #endregion
-
#region Sorting and Merging
///
diff --git a/SabreTools.DatItems/Slot.cs b/SabreTools.DatItems/Slot.cs
index 6ba1b124..e947d3e7 100644
--- a/SabreTools.DatItems/Slot.cs
+++ b/SabreTools.DatItems/Slot.cs
@@ -1,5 +1,4 @@
using System.Collections.Generic;
-using System.IO;
using System.Linq;
using System.Xml.Serialization;
@@ -135,41 +134,6 @@ namespace SabreTools.DatItems
#endregion
- #region Filtering
-
- ///
- public override void RemoveFields(
- List datItemFields,
- List machineFields)
- {
- // Remove common fields first
- base.RemoveFields(datItemFields, machineFields);
-
- // Remove the fields
- if (datItemFields.Contains(DatItemField.Name))
- Name = null;
-
- if (SlotOptionsSpecified)
- {
- foreach (SlotOption slotOption in SlotOptions)
- {
- slotOption.RemoveFields(datItemFields, machineFields);
- }
- }
- }
-
- ///
- /// Set internal names to match One Rom Per Game (ORPG) logic
- ///
- public override void SetOneRomPerGame()
- {
- string[] splitname = Name.Split('.');
- Machine.Name += $"/{string.Join(".", splitname.Take(splitname.Length > 1 ? splitname.Length - 1 : 1))}";
- Name = Path.GetFileName(Name);
- }
-
- #endregion
-
#region Sorting and Merging
///
diff --git a/SabreTools.DatItems/SlotOption.cs b/SabreTools.DatItems/SlotOption.cs
index e1c2918a..5c77891b 100644
--- a/SabreTools.DatItems/SlotOption.cs
+++ b/SabreTools.DatItems/SlotOption.cs
@@ -1,5 +1,4 @@
using System.Collections.Generic;
-using System.IO;
using System.Linq;
using System.Xml.Serialization;
@@ -131,39 +130,6 @@ namespace SabreTools.DatItems
#endregion
- #region Filtering
-
- ///
- public override void RemoveFields(
- List datItemFields,
- List machineFields)
- {
- // Remove common fields first
- base.RemoveFields(datItemFields, machineFields);
-
- // Remove the fields
- if (datItemFields.Contains(DatItemField.SlotOption_Name))
- Name = null;
-
- if (datItemFields.Contains(DatItemField.SlotOption_DeviceName))
- DeviceName = null;
-
- if (datItemFields.Contains(DatItemField.SlotOption_Default))
- Default = null;
- }
-
- ///
- /// Set internal names to match One Rom Per Game (ORPG) logic
- ///
- public override void SetOneRomPerGame()
- {
- string[] splitname = Name.Split('.');
- Machine.Name += $"/{string.Join(".", splitname.Take(splitname.Length > 1 ? splitname.Length - 1 : 1))}";
- Name = Path.GetFileName(Name);
- }
-
- #endregion
-
#region Sorting and Merging
///
diff --git a/SabreTools.DatItems/SoftwareList.cs b/SabreTools.DatItems/SoftwareList.cs
index 05f27ee0..0fcf51ee 100644
--- a/SabreTools.DatItems/SoftwareList.cs
+++ b/SabreTools.DatItems/SoftwareList.cs
@@ -1,5 +1,4 @@
using System.Collections.Generic;
-using System.IO;
using System.Linq;
using System.Xml.Serialization;
@@ -133,39 +132,6 @@ namespace SabreTools.DatItems
#endregion
- #region Filtering
-
- ///
- public override void RemoveFields(
- List datItemFields,
- List machineFields)
- {
- // Remove common fields first
- base.RemoveFields(datItemFields, machineFields);
-
- // Remove the fields
- if (datItemFields.Contains(DatItemField.Name))
- Name = null;
-
- if (datItemFields.Contains(DatItemField.SoftwareListStatus))
- Status = SoftwareListStatus.NULL;
-
- if (datItemFields.Contains(DatItemField.Filter))
- Filter = null;
- }
-
- ///
- /// Set internal names to match One Rom Per Game (ORPG) logic
- ///
- public override void SetOneRomPerGame()
- {
- string[] splitname = Name.Split('.');
- Machine.Name += $"/{string.Join(".", splitname.Take(splitname.Length > 1 ? splitname.Length - 1 : 1))}";
- Name = Path.GetFileName(Name);
- }
-
- #endregion
-
#region Sorting and Merging
///
diff --git a/SabreTools.DatItems/Sound.cs b/SabreTools.DatItems/Sound.cs
index bf734ce9..e818fb3a 100644
--- a/SabreTools.DatItems/Sound.cs
+++ b/SabreTools.DatItems/Sound.cs
@@ -94,23 +94,6 @@ namespace SabreTools.DatItems
#endregion
- #region Filtering
-
- ///
- public override void RemoveFields(
- List datItemFields,
- List machineFields)
- {
- // Remove common fields first
- base.RemoveFields(datItemFields, machineFields);
-
- // Remove the fields
- if (datItemFields.Contains(DatItemField.Channels))
- Channels = null;
- }
-
- #endregion
-
#region Sorting and Merging
///
diff --git a/SabreTools.DatTools/DatTool.cs b/SabreTools.DatTools/DatFileTool.cs
similarity index 99%
rename from SabreTools.DatTools/DatTool.cs
rename to SabreTools.DatTools/DatFileTool.cs
index 21532a7f..7c2c8c52 100644
--- a/SabreTools.DatTools/DatTool.cs
+++ b/SabreTools.DatTools/DatFileTool.cs
@@ -13,7 +13,7 @@ using SabreTools.Logging;
namespace SabreTools.DatTools
{
// This file represents all methods related to converting and updating DatFiles
- public class DatTool
+ public class DatFileTool
{
#region Logging
@@ -87,7 +87,7 @@ namespace SabreTools.DatTools
{
DatItem newDatItem = datItem.Clone() as DatItem;
if (datFile.Items.ContainsKey(key) && datFile.Items[key].Count() > 0)
- Cleaner.ReplaceFields(newDatItem.Machine, datFile.Items[key][0].Machine, machineFields, onlySame);
+ DatItemTool.ReplaceFields(newDatItem.Machine, datFile.Items[key][0].Machine, machineFields, onlySame);
newDatItems.Add(newDatItem);
}
diff --git a/SabreTools.DatTools/DatItemTool.cs b/SabreTools.DatTools/DatItemTool.cs
new file mode 100644
index 00000000..87a08cfc
--- /dev/null
+++ b/SabreTools.DatTools/DatItemTool.cs
@@ -0,0 +1,1377 @@
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+
+using SabreTools.Core;
+using SabreTools.Core.Tools;
+using SabreTools.DatItems;
+
+namespace SabreTools.DatTools
+{
+ ///
+ /// Manipulate DatItems
+ ///
+ /// TODO: Use these instead of the baked in ones
+ public static class DatItemTool
+ {
+ ///
+ /// Remove fields with given values
+ ///
+ /// DatItem to remove fields from
+ /// DatItem fields to remove
+ /// Machine fields to remove
+ /// True if this is a subitem, false otherwise
+ /// TODO: Extract out setting name to common
+ public static void RemoveFields(
+ DatItem datItem,
+ List datItemFields = null,
+ List machineFields = null,
+ bool sub = false)
+ {
+ if (datItem == null)
+ return;
+
+ #region Common
+
+ if (machineFields != null && datItem.Machine != null)
+ RemoveFields(datItem.Machine, machineFields);
+
+ if (datItemFields == null)
+ return;
+
+ #endregion
+
+ #region Adjuster
+
+ if (datItem is Adjuster adjuster)
+ {
+ if (datItemFields.Contains(DatItemField.Name))
+ adjuster.Name = null;
+
+ if (datItemFields.Contains(DatItemField.Default))
+ adjuster.Default = null;
+
+ if (adjuster.ConditionsSpecified)
+ {
+ foreach (Condition subCondition in adjuster.Conditions)
+ {
+ RemoveFields(subCondition, datItemFields, machineFields, true);
+ }
+ }
+ }
+
+ #endregion
+
+ #region Analog
+
+ else if (datItem is Analog analog)
+ {
+ if (datItemFields.Contains(DatItemField.Analog_Mask))
+ analog.Mask = null;
+ }
+
+ #endregion
+
+ #region Archive
+
+ else if (datItem is Archive archive)
+ {
+ if (datItemFields.Contains(DatItemField.Name))
+ archive.Name = null;
+ }
+
+ #endregion
+
+ #region BiosSet
+
+ else if (datItem is BiosSet biosSet)
+ {
+ if (datItemFields.Contains(DatItemField.Name))
+ biosSet.Name = null;
+
+ if (datItemFields.Contains(DatItemField.Description))
+ biosSet.Description = null;
+
+ if (datItemFields.Contains(DatItemField.Default))
+ biosSet.Default = null;
+ }
+
+ #endregion
+
+ #region Chip
+
+ else if (datItem is Chip chip)
+ {
+ if (datItemFields.Contains(DatItemField.Name))
+ chip.Name = null;
+
+ if (datItemFields.Contains(DatItemField.Tag))
+ chip.Tag = null;
+
+ if (datItemFields.Contains(DatItemField.ChipType))
+ chip.ChipType = ChipType.NULL;
+
+ if (datItemFields.Contains(DatItemField.Clock))
+ chip.Clock = null;
+ }
+
+ #endregion
+
+ #region Condition
+
+ else if (datItem is Condition condition)
+ {
+ if (sub)
+ {
+ if (datItemFields.Contains(DatItemField.Condition_Tag))
+ condition.Tag = null;
+
+ if (datItemFields.Contains(DatItemField.Condition_Mask))
+ condition.Mask = null;
+
+ if (datItemFields.Contains(DatItemField.Condition_Relation))
+ condition.Relation = Relation.NULL;
+
+ if (datItemFields.Contains(DatItemField.Condition_Value))
+ condition.Value = null;
+ }
+ else
+ {
+ if (datItemFields.Contains(DatItemField.Tag))
+ condition.Tag = null;
+
+ if (datItemFields.Contains(DatItemField.Mask))
+ condition.Mask = null;
+
+ if (datItemFields.Contains(DatItemField.Relation))
+ condition.Relation = Relation.NULL;
+
+ if (datItemFields.Contains(DatItemField.Value))
+ condition.Value = null;
+ }
+ }
+
+ #endregion
+
+ #region Configuration
+
+ else if (datItem is Configuration configuration)
+ {
+ // Remove the fields
+ if (datItemFields.Contains(DatItemField.Name))
+ configuration.Name = null;
+
+ if (datItemFields.Contains(DatItemField.Tag))
+ configuration.Tag = null;
+
+ if (datItemFields.Contains(DatItemField.Mask))
+ configuration.Mask = null;
+
+ if (configuration.ConditionsSpecified)
+ {
+ foreach (Condition subCondition in configuration.Conditions)
+ {
+ RemoveFields(subCondition, datItemFields, machineFields, true);
+ }
+ }
+
+ if (configuration.LocationsSpecified)
+ {
+ foreach (Location subLocation in configuration.Locations)
+ {
+ RemoveFields(subLocation, datItemFields, machineFields);
+ }
+ }
+
+ if (configuration.SettingsSpecified)
+ {
+ foreach (Setting subSetting in configuration.Settings)
+ {
+ RemoveFields(subSetting, datItemFields, machineFields);
+ }
+ }
+ }
+
+ #endregion
+
+ #region Control
+
+ else if (datItem is Control control)
+ {
+ if (datItemFields.Contains(DatItemField.Control_Type))
+ control.ControlType = ControlType.NULL;
+
+ if (datItemFields.Contains(DatItemField.Control_Player))
+ control.Player = null;
+
+ if (datItemFields.Contains(DatItemField.Control_Buttons))
+ control.Buttons = null;
+
+ if (datItemFields.Contains(DatItemField.Control_RequiredButtons))
+ control.RequiredButtons = null;
+
+ if (datItemFields.Contains(DatItemField.Control_Minimum))
+ control.Minimum = null;
+
+ if (datItemFields.Contains(DatItemField.Control_Maximum))
+ control.Maximum = null;
+
+ if (datItemFields.Contains(DatItemField.Control_Sensitivity))
+ control.Sensitivity = null;
+
+ if (datItemFields.Contains(DatItemField.Control_KeyDelta))
+ control.KeyDelta = null;
+
+ if (datItemFields.Contains(DatItemField.Control_Reverse))
+ control.Reverse = null;
+
+ if (datItemFields.Contains(DatItemField.Control_Ways))
+ control.Ways = null;
+
+ if (datItemFields.Contains(DatItemField.Control_Ways2))
+ control.Ways2 = null;
+
+ if (datItemFields.Contains(DatItemField.Control_Ways3))
+ control.Ways3 = null;
+ }
+
+ #endregion
+
+ #region DataArea
+
+ else if (datItem is DataArea dataArea)
+ {
+ if (datItemFields.Contains(DatItemField.AreaName))
+ dataArea.Name = null;
+
+ if (datItemFields.Contains(DatItemField.AreaSize))
+ dataArea.Size = null;
+
+ if (datItemFields.Contains(DatItemField.AreaWidth))
+ dataArea.Width = null;
+
+ if (datItemFields.Contains(DatItemField.AreaEndianness))
+ dataArea.Endianness = Endianness.NULL;
+ }
+
+ #endregion
+
+ #region Device
+
+ else if (datItem is Device device)
+ {
+ if (datItemFields.Contains(DatItemField.DeviceType))
+ device.DeviceType = DeviceType.NULL;
+
+ if (datItemFields.Contains(DatItemField.Tag))
+ device.Tag = null;
+
+ if (datItemFields.Contains(DatItemField.FixedImage))
+ device.FixedImage = null;
+
+ if (datItemFields.Contains(DatItemField.Mandatory))
+ device.Mandatory = null;
+
+ if (datItemFields.Contains(DatItemField.Interface))
+ device.Interface = null;
+
+ if (device.InstancesSpecified)
+ {
+ foreach (Instance subInstance in device.Instances)
+ {
+ RemoveFields(subInstance, datItemFields, machineFields);
+ }
+ }
+
+ if (device.ExtensionsSpecified)
+ {
+ foreach (Extension subExtension in device.Extensions)
+ {
+ RemoveFields(subExtension, datItemFields, machineFields);
+ }
+ }
+ }
+
+ #endregion
+
+ #region DeviceReference
+
+ else if (datItem is DeviceReference deviceReference)
+ {
+ if (datItemFields.Contains(DatItemField.Name))
+ deviceReference.Name = null;
+ }
+
+ #endregion
+
+ #region DipSwitch
+
+ else if (datItem is DipSwitch dipSwitch)
+ {
+ #region Common
+
+ if (datItemFields.Contains(DatItemField.Name))
+ dipSwitch.Name = null;
+
+ if (datItemFields.Contains(DatItemField.Tag))
+ dipSwitch.Tag = null;
+
+ if (datItemFields.Contains(DatItemField.Mask))
+ dipSwitch.Mask = null;
+
+ if (dipSwitch.ConditionsSpecified)
+ {
+ foreach (Condition subCondition in dipSwitch.Conditions)
+ {
+ RemoveFields(subCondition, datItemFields, machineFields, true);
+ }
+ }
+
+ if (dipSwitch.LocationsSpecified)
+ {
+ foreach (Location subLocation in dipSwitch.Locations)
+ {
+ RemoveFields(subLocation, datItemFields, machineFields);
+ }
+ }
+
+ if (dipSwitch.ValuesSpecified)
+ {
+ foreach (Setting subValue in dipSwitch.Values)
+ {
+ RemoveFields(subValue, datItemFields, machineFields);
+ }
+ }
+
+ #endregion
+
+ #region SoftwareList
+
+ if (dipSwitch.PartSpecified)
+ RemoveFields(dipSwitch.Part, datItemFields, machineFields);
+
+ #endregion
+ }
+
+ #endregion
+
+ #region Disk
+
+ else if (datItem is Disk disk)
+ {
+ #region Common
+
+ if (datItemFields.Contains(DatItemField.Name))
+ disk.Name = null;
+
+ if (datItemFields.Contains(DatItemField.MD5))
+ disk.MD5 = null;
+
+ if (datItemFields.Contains(DatItemField.SHA1))
+ disk.SHA1 = null;
+
+ if (datItemFields.Contains(DatItemField.Merge))
+ disk.MergeTag = null;
+
+ if (datItemFields.Contains(DatItemField.Region))
+ disk.Region = null;
+
+ if (datItemFields.Contains(DatItemField.Index))
+ disk.Index = null;
+
+ if (datItemFields.Contains(DatItemField.Writable))
+ disk.Writable = null;
+
+ if (datItemFields.Contains(DatItemField.Status))
+ disk.ItemStatus = ItemStatus.NULL;
+
+ if (datItemFields.Contains(DatItemField.Optional))
+ disk.Optional = null;
+
+ #endregion
+
+ #region SoftwareList
+
+ if (disk.DiskAreaSpecified)
+ RemoveFields(disk.DiskArea, datItemFields, machineFields);
+
+ if (disk.PartSpecified)
+ RemoveFields(disk.Part, datItemFields, machineFields);
+
+ #endregion
+ }
+
+ #endregion
+
+ #region DiskArea
+
+ else if (datItem is DiskArea diskArea)
+ {
+ if (datItemFields.Contains(DatItemField.AreaName))
+ diskArea.Name = null;
+ }
+
+ #endregion
+
+ #region Display
+
+ else if (datItem is Display display)
+ {
+ if (datItemFields.Contains(DatItemField.Tag))
+ display.Tag = null;
+
+ if (datItemFields.Contains(DatItemField.DisplayType))
+ display.DisplayType = DisplayType.NULL;
+
+ if (datItemFields.Contains(DatItemField.Rotate))
+ display.Rotate = null;
+
+ if (datItemFields.Contains(DatItemField.FlipX))
+ display.FlipX = null;
+
+ if (datItemFields.Contains(DatItemField.Width))
+ display.Width = null;
+
+ if (datItemFields.Contains(DatItemField.Height))
+ display.Height = null;
+
+ if (datItemFields.Contains(DatItemField.Refresh))
+ display.Refresh = null;
+
+ if (datItemFields.Contains(DatItemField.PixClock))
+ display.PixClock = null;
+
+ if (datItemFields.Contains(DatItemField.HTotal))
+ display.HTotal = null;
+
+ if (datItemFields.Contains(DatItemField.HBEnd))
+ display.HBEnd = null;
+
+ if (datItemFields.Contains(DatItemField.HBStart))
+ display.HBStart = null;
+
+ if (datItemFields.Contains(DatItemField.VTotal))
+ display.VTotal = null;
+
+ if (datItemFields.Contains(DatItemField.VBEnd))
+ display.VBEnd = null;
+
+ if (datItemFields.Contains(DatItemField.VBStart))
+ display.VBStart = null;
+ }
+
+ #endregion
+
+ #region Driver
+
+ else if (datItem is Driver driver)
+ {
+ if (datItemFields.Contains(DatItemField.SupportStatus))
+ driver.Status = SupportStatus.NULL;
+
+ if (datItemFields.Contains(DatItemField.EmulationStatus))
+ driver.Emulation = SupportStatus.NULL;
+
+ if (datItemFields.Contains(DatItemField.CocktailStatus))
+ driver.Cocktail = SupportStatus.NULL;
+
+ if (datItemFields.Contains(DatItemField.SaveStateStatus))
+ driver.SaveState = Supported.NULL;
+ }
+
+ #endregion
+
+ #region Extension
+
+ else if (datItem is Extension extension)
+ {
+ if (datItemFields.Contains(DatItemField.Extension_Name))
+ extension.Name = null;
+ }
+
+ #endregion
+
+ #region Feature
+
+ else if (datItem is Feature feature)
+ {
+ if (datItemFields.Contains(DatItemField.FeatureType))
+ feature.Type = FeatureType.NULL;
+
+ if (datItemFields.Contains(DatItemField.FeatureStatus))
+ feature.Status = FeatureStatus.NULL;
+
+ if (datItemFields.Contains(DatItemField.FeatureOverall))
+ feature.Overall = FeatureStatus.NULL;
+ }
+
+ #endregion
+
+ #region Info
+
+ else if (datItem is Info info)
+ {
+ if (datItemFields.Contains(DatItemField.Name))
+ info.Name = null;
+
+ if (datItemFields.Contains(DatItemField.Value))
+ info.Value = null;
+ }
+
+ #endregion
+
+ #region Input
+
+ else if (datItem is Input input)
+ {
+ if (datItemFields.Contains(DatItemField.Service))
+ input.Service = null;
+
+ if (datItemFields.Contains(DatItemField.Tilt))
+ input.Tilt = null;
+
+ if (datItemFields.Contains(DatItemField.Players))
+ input.Players = 0;
+
+ if (datItemFields.Contains(DatItemField.Coins))
+ input.Coins = null;
+
+ if (input.ControlsSpecified)
+ {
+ foreach (Control subControl in input.Controls)
+ {
+ RemoveFields(subControl, datItemFields, machineFields);
+ }
+ }
+ }
+
+ #endregion
+
+ #region Instance
+
+ else if (datItem is Instance instance)
+ {
+ if (datItemFields.Contains(DatItemField.Instance_Name))
+ instance.Name = null;
+
+ if (datItemFields.Contains(DatItemField.Instance_BriefName))
+ instance.BriefName = null;
+ }
+
+ #endregion
+
+ #region Location
+
+ else if (datItem is Location location)
+ {
+ if (datItemFields.Contains(DatItemField.Location_Name))
+ location.Name = null;
+
+ if (datItemFields.Contains(DatItemField.Location_Number))
+ location.Number = null;
+
+ if (datItemFields.Contains(DatItemField.Location_Inverted))
+ location.Inverted = null;
+ }
+
+ #endregion
+
+ #region Media
+
+ else if (datItem is Media media)
+ {
+ if (datItemFields.Contains(DatItemField.Name))
+ media.Name = null;
+
+ if (datItemFields.Contains(DatItemField.MD5))
+ media.MD5 = null;
+
+ if (datItemFields.Contains(DatItemField.SHA1))
+ media.SHA1 = null;
+
+ if (datItemFields.Contains(DatItemField.SHA256))
+ media.SHA256 = null;
+
+ if (datItemFields.Contains(DatItemField.SpamSum))
+ media.SpamSum = null;
+ }
+
+ #endregion
+
+ #region Part
+
+ else if (datItem is Part part)
+ {
+ if (datItemFields.Contains(DatItemField.Part_Name))
+ part.Name = null;
+
+ if (datItemFields.Contains(DatItemField.Part_Interface))
+ part.Interface = null;
+
+ if (part.FeaturesSpecified)
+ {
+ foreach (PartFeature subPartFeature in part.Features)
+ {
+ RemoveFields(subPartFeature, datItemFields, machineFields);
+ }
+ }
+ }
+
+ #endregion
+
+ #region PartFeature
+
+ else if (datItem is PartFeature partFeature)
+ {
+ if (datItemFields.Contains(DatItemField.Part_Feature_Name))
+ partFeature.Name = null;
+
+ if (datItemFields.Contains(DatItemField.Part_Feature_Value))
+ partFeature.Value = null;
+ }
+
+ #endregion
+
+ #region Port
+
+ else if (datItem is Port port)
+ {
+ if (datItemFields.Contains(DatItemField.Tag))
+ port.Tag = null;
+
+ if (port.AnalogsSpecified)
+ {
+ foreach (Analog subAnalog in port.Analogs)
+ {
+ RemoveFields(subAnalog, datItemFields, machineFields);
+ }
+ }
+ }
+
+ #endregion
+
+ #region RamOption
+
+ else if (datItem is RamOption ramOption)
+ {
+ if (datItemFields.Contains(DatItemField.Name))
+ ramOption.Name = null;
+
+ if (datItemFields.Contains(DatItemField.Default))
+ ramOption.Default = null;
+
+ if (datItemFields.Contains(DatItemField.Content))
+ ramOption.Content = null;
+ }
+
+ #endregion
+
+ #region Release
+
+ else if (datItem is Release release)
+ {
+ if (datItemFields.Contains(DatItemField.Name))
+ release.Name = null;
+
+ if (datItemFields.Contains(DatItemField.Region))
+ release.Region = null;
+
+ if (datItemFields.Contains(DatItemField.Language))
+ release.Language = null;
+
+ if (datItemFields.Contains(DatItemField.Date))
+ release.Date = null;
+
+ if (datItemFields.Contains(DatItemField.Default))
+ release.Default = null;
+ }
+
+ #endregion
+
+ #region Rom
+
+ else if (datItem is Rom rom)
+ {
+ #region Common
+
+ if (datItemFields.Contains(DatItemField.Name))
+ rom.Name = null;
+
+ if (datItemFields.Contains(DatItemField.Bios))
+ rom.Bios = null;
+
+ if (datItemFields.Contains(DatItemField.Size))
+ rom.Size = 0;
+
+ if (datItemFields.Contains(DatItemField.CRC))
+ rom.CRC = null;
+
+ if (datItemFields.Contains(DatItemField.MD5))
+ rom.MD5 = null;
+
+ #if NET_FRAMEWORK
+ if (datItemFields.Contains(DatItemField.RIPEMD160))
+ rom.RIPEMD160 = null;
+ #endif
+
+ if (datItemFields.Contains(DatItemField.SHA1))
+ rom.SHA1 = null;
+
+ if (datItemFields.Contains(DatItemField.SHA256))
+ rom.SHA256 = null;
+
+ if (datItemFields.Contains(DatItemField.SHA384))
+ rom.SHA384 = null;
+
+ if (datItemFields.Contains(DatItemField.SHA512))
+ rom.SHA512 = null;
+
+ if (datItemFields.Contains(DatItemField.SpamSum))
+ rom.SpamSum = null;
+
+ if (datItemFields.Contains(DatItemField.Merge))
+ rom.MergeTag = null;
+
+ if (datItemFields.Contains(DatItemField.Region))
+ rom.Region = null;
+
+ if (datItemFields.Contains(DatItemField.Offset))
+ rom.Offset = null;
+
+ if (datItemFields.Contains(DatItemField.Date))
+ rom.Date = null;
+
+ if (datItemFields.Contains(DatItemField.Status))
+ rom.ItemStatus = ItemStatus.NULL;
+
+ if (datItemFields.Contains(DatItemField.Optional))
+ rom.Optional = null;
+
+ if (datItemFields.Contains(DatItemField.Inverted))
+ rom.Inverted = null;
+
+ #endregion
+
+ #region AttractMode
+
+ if (datItemFields.Contains(DatItemField.AltName))
+ rom.AltName = null;
+
+ if (datItemFields.Contains(DatItemField.AltTitle))
+ rom.AltTitle = null;
+
+ #endregion
+
+ #region OpenMSX
+
+ if (datItemFields.Contains(DatItemField.Original))
+ rom.Original = null;
+
+ if (datItemFields.Contains(DatItemField.OpenMSXSubType))
+ rom.OpenMSXSubType = OpenMSXSubType.NULL;
+
+ if (datItemFields.Contains(DatItemField.OpenMSXType))
+ rom.OpenMSXType = null;
+
+ if (datItemFields.Contains(DatItemField.Remark))
+ rom.Remark = null;
+
+ if (datItemFields.Contains(DatItemField.Boot))
+ rom.Boot = null;
+
+ #endregion
+
+ #region SoftwareList
+
+ if (datItemFields.Contains(DatItemField.LoadFlag))
+ rom.LoadFlag = LoadFlag.NULL;
+
+ if (datItemFields.Contains(DatItemField.Value))
+ rom.Value = null;
+
+ if (rom.DataAreaSpecified)
+ RemoveFields(rom.DataArea, datItemFields, machineFields);
+
+ if (rom.PartSpecified)
+ RemoveFields(rom.Part, datItemFields, machineFields);
+
+ #endregion
+ }
+
+ #endregion
+
+ #region Sample
+
+ else if (datItem is Sample sample)
+ {
+ if (datItemFields.Contains(DatItemField.Name))
+ sample.Name = null;
+ }
+
+ #endregion
+
+ #region Setting
+
+ else if (datItem is Setting setting)
+ {
+ if (datItemFields.Contains(DatItemField.Setting_Name))
+ setting.Name = null;
+
+ if (datItemFields.Contains(DatItemField.Setting_Value))
+ setting.Value = null;
+
+ if (datItemFields.Contains(DatItemField.Setting_Default))
+ setting.Default = null;
+
+ if (setting.ConditionsSpecified)
+ {
+ foreach (Condition subCondition in setting.Conditions)
+ {
+ RemoveFields(subCondition, datItemFields, machineFields, true);
+ }
+ }
+ }
+
+ #endregion
+
+ #region SharedFeature
+
+ else if (datItem is SharedFeature sharedFeature)
+ {
+ if (datItemFields.Contains(DatItemField.Name))
+ sharedFeature.Name = null;
+
+ if (datItemFields.Contains(DatItemField.Value))
+ sharedFeature.Value = null;
+ }
+
+ #endregion
+
+ #region Slot
+
+ else if (datItem is Slot slot)
+ {
+ if (datItemFields.Contains(DatItemField.Name))
+ slot.Name = null;
+
+ if (slot.SlotOptionsSpecified)
+ {
+ foreach (SlotOption subSlotOption in slot.SlotOptions)
+ {
+ RemoveFields(subSlotOption, datItemFields, machineFields);
+ }
+ }
+ }
+
+ #endregion
+
+ #region SlotOption
+
+ else if (datItem is SlotOption slotOption)
+ {
+ if (datItemFields.Contains(DatItemField.SlotOption_Name))
+ slotOption.Name = null;
+
+ if (datItemFields.Contains(DatItemField.SlotOption_DeviceName))
+ slotOption.DeviceName = null;
+
+ if (datItemFields.Contains(DatItemField.SlotOption_Default))
+ slotOption.Default = null;
+ }
+
+ #endregion
+
+ #region SoftwareList
+
+ else if (datItem is SoftwareList softwareList)
+ {
+ if (datItemFields.Contains(DatItemField.Name))
+ softwareList.Name = null;
+
+ if (datItemFields.Contains(DatItemField.SoftwareListStatus))
+ softwareList.Status = SoftwareListStatus.NULL;
+
+ if (datItemFields.Contains(DatItemField.Filter))
+ softwareList.Filter = null;
+ }
+
+ #endregion
+
+ #region Sound
+
+ else if (datItem is Sound sound)
+ {
+ if (datItemFields.Contains(DatItemField.Channels))
+ sound.Channels = null;
+ }
+
+ #endregion
+ }
+
+ ///
+ /// Remove fields with given values
+ ///
+ /// Machine to remove fields from
+ /// List of fields to remove
+ public static void RemoveFields(Machine machine, List fields)
+ {
+ #region Common
+
+ if (fields.Contains(MachineField.Name))
+ machine.Name = null;
+
+ if (fields.Contains(MachineField.Comment))
+ machine.Comment = null;
+
+ if (fields.Contains(MachineField.Description))
+ machine.Description = null;
+
+ if (fields.Contains(MachineField.Year))
+ machine.Year = null;
+
+ if (fields.Contains(MachineField.Manufacturer))
+ machine.Manufacturer = null;
+
+ if (fields.Contains(MachineField.Publisher))
+ machine.Publisher = null;
+
+ if (fields.Contains(MachineField.Category))
+ machine.Category = null;
+
+ if (fields.Contains(MachineField.RomOf))
+ machine.RomOf = null;
+
+ if (fields.Contains(MachineField.CloneOf))
+ machine.CloneOf = null;
+
+ if (fields.Contains(MachineField.SampleOf))
+ machine.SampleOf = null;
+
+ if (fields.Contains(MachineField.Type))
+ machine.MachineType = 0x0;
+
+ #endregion
+
+ #region AttractMode
+
+ if (fields.Contains(MachineField.Players))
+ machine.Players = null;
+
+ if (fields.Contains(MachineField.Rotation))
+ machine.Rotation = null;
+
+ if (fields.Contains(MachineField.Control))
+ machine.Control = null;
+
+ if (fields.Contains(MachineField.Status))
+ machine.Status = null;
+
+ if (fields.Contains(MachineField.DisplayCount))
+ machine.DisplayCount = null;
+
+ if (fields.Contains(MachineField.DisplayType))
+ machine.DisplayType = null;
+
+ if (fields.Contains(MachineField.Buttons))
+ machine.Buttons = null;
+
+ #endregion
+
+ #region ListXML
+
+ if (fields.Contains(MachineField.SourceFile))
+ machine.SourceFile = null;
+
+ if (fields.Contains(MachineField.Runnable))
+ machine.Runnable = Runnable.NULL;
+
+ #endregion
+
+ #region Logiqx
+
+ if (fields.Contains(MachineField.Board))
+ machine.Board = null;
+
+ if (fields.Contains(MachineField.RebuildTo))
+ machine.RebuildTo = null;
+
+ #endregion
+
+ #region Logiqx EmuArc
+
+ if (fields.Contains(MachineField.TitleID))
+ machine.TitleID = null;
+
+ if (fields.Contains(MachineField.Developer))
+ machine.Developer = null;
+
+ if (fields.Contains(MachineField.Genre))
+ machine.Genre = null;
+
+ if (fields.Contains(MachineField.Subgenre))
+ machine.Subgenre = null;
+
+ if (fields.Contains(MachineField.Ratings))
+ machine.Ratings = null;
+
+ if (fields.Contains(MachineField.Score))
+ machine.Score = null;
+
+ if (fields.Contains(MachineField.Enabled))
+ machine.Enabled = null;
+
+ if (fields.Contains(MachineField.CRC))
+ machine.Crc = null;
+
+ if (fields.Contains(MachineField.RelatedTo))
+ machine.RelatedTo = null;
+
+ #endregion
+
+ #region OpenMSX
+
+ if (fields.Contains(MachineField.GenMSXID))
+ machine.GenMSXID = null;
+
+ if (fields.Contains(MachineField.System))
+ machine.System = null;
+
+ if (fields.Contains(MachineField.Country))
+ machine.Country = null;
+
+ #endregion
+
+ #region SoftwareList
+
+ if (fields.Contains(MachineField.Supported))
+ machine.Supported = Supported.NULL;
+
+ #endregion
+ }
+
+ ///
+ /// Replace fields with given values
+ ///
+ /// DatItem to replace fields in
+ /// DatItem to pull new information from
+ /// List of fields representing what should be updated
+ public static void ReplaceFields(DatItem datItem, DatItem repDatItem, List fields)
+ {
+
+ }
+
+ ///
+ /// Replace fields with given values
+ ///
+ /// Machine to replace fields in
+ /// Machine to pull new information from
+ /// List of fields representing what should be updated
+ /// True if descriptions should only be replaced if the game name is the same, false otherwise
+ public static void ReplaceFields(Machine machine, Machine repMachine, List fields, bool onlySame)
+ {
+ #region Common
+
+ if (fields.Contains(MachineField.Name))
+ machine.Name = repMachine.Name;
+
+ if (fields.Contains(MachineField.Comment))
+ machine.Comment = repMachine.Comment;
+
+ if (fields.Contains(MachineField.Description))
+ {
+ if (!onlySame || (onlySame && machine.Name == machine.Description))
+ machine.Description = repMachine.Description;
+ }
+
+ if (fields.Contains(MachineField.Year))
+ machine.Year = repMachine.Year;
+
+ if (fields.Contains(MachineField.Manufacturer))
+ machine.Manufacturer = repMachine.Manufacturer;
+
+ if (fields.Contains(MachineField.Publisher))
+ machine.Publisher = repMachine.Publisher;
+
+ if (fields.Contains(MachineField.Category))
+ machine.Category = repMachine.Category;
+
+ if (fields.Contains(MachineField.RomOf))
+ machine.RomOf = repMachine.RomOf;
+
+ if (fields.Contains(MachineField.CloneOf))
+ machine.CloneOf = repMachine.CloneOf;
+
+ if (fields.Contains(MachineField.SampleOf))
+ machine.SampleOf = repMachine.SampleOf;
+
+ if (fields.Contains(MachineField.Type))
+ machine.MachineType = repMachine.MachineType;
+
+ #endregion
+
+ #region AttractMode
+
+ if (fields.Contains(MachineField.Players))
+ machine.Players = repMachine.Players;
+
+ if (fields.Contains(MachineField.Rotation))
+ machine.Rotation = repMachine.Rotation;
+
+ if (fields.Contains(MachineField.Control))
+ machine.Control = repMachine.Control;
+
+ if (fields.Contains(MachineField.Status))
+ machine.Status = repMachine.Status;
+
+ if (fields.Contains(MachineField.DisplayCount))
+ machine.DisplayCount = repMachine.DisplayCount;
+
+ if (fields.Contains(MachineField.DisplayType))
+ machine.DisplayType = repMachine.DisplayType;
+
+ if (fields.Contains(MachineField.Buttons))
+ machine.Buttons = repMachine.Buttons;
+
+ #endregion
+
+ #region ListXML
+
+ if (fields.Contains(MachineField.SourceFile))
+ machine.SourceFile = repMachine.SourceFile;
+
+ if (fields.Contains(MachineField.Runnable))
+ machine.Runnable = repMachine.Runnable;
+
+ #endregion
+
+ #region Logiqx
+
+ if (fields.Contains(MachineField.Board))
+ machine.Board = repMachine.Board;
+
+ if (fields.Contains(MachineField.RebuildTo))
+ machine.RebuildTo = repMachine.RebuildTo;
+
+ #endregion
+
+ #region Logiqx EmuArc
+
+ if (fields.Contains(MachineField.TitleID))
+ machine.TitleID = repMachine.TitleID;
+
+ if (fields.Contains(MachineField.Developer))
+ machine.Developer = repMachine.Developer;
+
+ if (fields.Contains(MachineField.Genre))
+ machine.Genre = repMachine.Genre;
+
+ if (fields.Contains(MachineField.Subgenre))
+ machine.Subgenre = repMachine.Subgenre;
+
+ if (fields.Contains(MachineField.Ratings))
+ machine.Ratings = repMachine.Ratings;
+
+ if (fields.Contains(MachineField.Score))
+ machine.Score = repMachine.Score;
+
+ if (fields.Contains(MachineField.Enabled))
+ machine.Enabled = repMachine.Enabled;
+
+ if (fields.Contains(MachineField.CRC))
+ machine.Crc = repMachine.Crc;
+
+ if (fields.Contains(MachineField.RelatedTo))
+ machine.RelatedTo = repMachine.RelatedTo;
+
+ #endregion
+
+ #region OpenMSX
+
+ if (fields.Contains(MachineField.GenMSXID))
+ machine.GenMSXID = repMachine.GenMSXID;
+
+ if (fields.Contains(MachineField.System))
+ machine.System = repMachine.System;
+
+ if (fields.Contains(MachineField.Country))
+ machine.Country = repMachine.Country;
+
+ #endregion
+
+ #region SoftwareList
+
+ if (fields.Contains(MachineField.Supported))
+ machine.Supported = repMachine.Supported;
+
+ #endregion
+ }
+
+ ///
+ /// Set fields with given values
+ ///
+ /// DatItem to set fields on
+ /// Mappings dictionary
+ public static void SetFields(DatItem datItem, Dictionary mappings)
+ {
+
+ }
+
+ ///
+ /// Set fields with given values
+ ///
+ /// Machine to set fields on
+ /// Mappings dictionary
+ public static void SetFields(Machine machine, Dictionary mappings)
+ {
+ if (machine == null || mappings == null)
+ return;
+
+ #region Common
+
+ if (mappings.Keys.Contains(MachineField.Name))
+ machine.Name = mappings[MachineField.Name];
+
+ if (mappings.Keys.Contains(MachineField.Comment))
+ machine.Comment = mappings[MachineField.Comment];
+
+ if (mappings.Keys.Contains(MachineField.Description))
+ machine.Description = mappings[MachineField.Description];
+
+ if (mappings.Keys.Contains(MachineField.Year))
+ machine.Year = mappings[MachineField.Year];
+
+ if (mappings.Keys.Contains(MachineField.Manufacturer))
+ machine.Manufacturer = mappings[MachineField.Manufacturer];
+
+ if (mappings.Keys.Contains(MachineField.Publisher))
+ machine.Publisher = mappings[MachineField.Publisher];
+
+ if (mappings.Keys.Contains(MachineField.Category))
+ machine.Category = mappings[MachineField.Category];
+
+ if (mappings.Keys.Contains(MachineField.RomOf))
+ machine.RomOf = mappings[MachineField.RomOf];
+
+ if (mappings.Keys.Contains(MachineField.CloneOf))
+ machine.CloneOf = mappings[MachineField.CloneOf];
+
+ if (mappings.Keys.Contains(MachineField.SampleOf))
+ machine.SampleOf = mappings[MachineField.SampleOf];
+
+ if (mappings.Keys.Contains(MachineField.Type))
+ machine.MachineType = mappings[MachineField.Type].AsMachineType();
+
+ #endregion
+
+ #region AttractMode
+
+ if (mappings.Keys.Contains(MachineField.Players))
+ machine.Players = mappings[MachineField.Players];
+
+ if (mappings.Keys.Contains(MachineField.Rotation))
+ machine.Rotation = mappings[MachineField.Rotation];
+
+ if (mappings.Keys.Contains(MachineField.Control))
+ machine.Control = mappings[MachineField.Control];
+
+ if (mappings.Keys.Contains(MachineField.Status))
+ machine.Status = mappings[MachineField.Status];
+
+ if (mappings.Keys.Contains(MachineField.DisplayCount))
+ machine.DisplayCount = mappings[MachineField.DisplayCount];
+
+ if (mappings.Keys.Contains(MachineField.DisplayType))
+ machine.DisplayType = mappings[MachineField.DisplayType];
+
+ if (mappings.Keys.Contains(MachineField.Buttons))
+ machine.Buttons = mappings[MachineField.Buttons];
+
+ #endregion
+
+ #region ListXML
+
+ if (mappings.Keys.Contains(MachineField.SourceFile))
+ machine.SourceFile = mappings[MachineField.SourceFile];
+
+ if (mappings.Keys.Contains(MachineField.Runnable))
+ machine.Runnable = mappings[MachineField.Runnable].AsRunnable();
+
+ #endregion
+
+ #region Logiqx
+
+ if (mappings.Keys.Contains(MachineField.Board))
+ machine.Board = mappings[MachineField.Board];
+
+ if (mappings.Keys.Contains(MachineField.RebuildTo))
+ machine.RebuildTo = mappings[MachineField.RebuildTo];
+
+ #endregion
+
+ #region Logiqx EmuArc
+
+ if (mappings.Keys.Contains(MachineField.TitleID))
+ machine.TitleID = mappings[MachineField.TitleID];
+
+ if (mappings.Keys.Contains(MachineField.Developer))
+ machine.Developer = mappings[MachineField.Developer];
+
+ if (mappings.Keys.Contains(MachineField.Genre))
+ machine.Genre = mappings[MachineField.Genre];
+
+ if (mappings.Keys.Contains(MachineField.Subgenre))
+ machine.Subgenre = mappings[MachineField.Subgenre];
+
+ if (mappings.Keys.Contains(MachineField.Ratings))
+ machine.Ratings = mappings[MachineField.Ratings];
+
+ if (mappings.Keys.Contains(MachineField.Score))
+ machine.Score = mappings[MachineField.Score];
+
+ if (mappings.Keys.Contains(MachineField.Enabled))
+ machine.Enabled = mappings[MachineField.Enabled];
+
+ if (mappings.Keys.Contains(MachineField.CRC))
+ machine.Crc = mappings[MachineField.CRC].AsYesNo();
+
+ if (mappings.Keys.Contains(MachineField.RelatedTo))
+ machine.RelatedTo = mappings[MachineField.RelatedTo];
+
+ #endregion
+
+ #region OpenMSX
+
+ if (mappings.Keys.Contains(MachineField.GenMSXID))
+ machine.GenMSXID = mappings[MachineField.GenMSXID];
+
+ if (mappings.Keys.Contains(MachineField.System))
+ machine.System = mappings[MachineField.System];
+
+ if (mappings.Keys.Contains(MachineField.Country))
+ machine.Country = mappings[MachineField.Country];
+
+ #endregion
+
+ #region SoftwareList
+
+ if (mappings.Keys.Contains(MachineField.Supported))
+ machine.Supported = mappings[MachineField.Supported].AsSupported();
+
+ #endregion
+ }
+
+ ///
+ /// Set internal names to match One Rom Per Game (ORPG) logic
+ ///
+ /// DatItem to run logic on
+ public static void SetOneRomPerGame(DatItem datItem)
+ {
+ if (datItem.GetName() == null)
+ return;
+
+ string[] splitname = datItem.GetName().Split('.');
+ datItem.Machine.Name += $"/{string.Join(".", splitname.Take(splitname.Length > 1 ? splitname.Length - 1 : 1))}";
+ datItem.SetName(Path.GetFileName(datItem.GetName()));
+ }
+ }
+}
\ No newline at end of file
diff --git a/SabreTools.DatTools/Modification.cs b/SabreTools.DatTools/Modification.cs
index b3572523..7b01fcc3 100644
--- a/SabreTools.DatTools/Modification.cs
+++ b/SabreTools.DatTools/Modification.cs
@@ -146,7 +146,7 @@ namespace SabreTools.DatTools
foreach (var datItem in datItems)
{
- Cleaner.SetFields(datItem.Machine, mappings);
+ DatItemTool.SetFields(datItem.Machine, mappings);
}
}
@@ -493,7 +493,7 @@ namespace SabreTools.DatTools
List items = datFile.Items[key];
for (int i = 0; i < items.Count; i++)
{
- items[i].SetOneRomPerGame();
+ DatItemTool.SetOneRomPerGame(items[i]);
}
});
}
@@ -524,8 +524,7 @@ namespace SabreTools.DatTools
List items = datFile.Items[key];
for (int j = 0; j < items.Count; j++)
{
- items[j].RemoveFields(datItemFields, null);
- Cleaner.RemoveFields(items[j].Machine, machineFields);
+ DatItemTool.RemoveFields(items[j], datItemFields, machineFields);
}
datFile.Items.Remove(key);
diff --git a/SabreTools.Filtering/Cleaner.cs b/SabreTools.Filtering/Cleaner.cs
index 2dea6469..095df606 100644
--- a/SabreTools.Filtering/Cleaner.cs
+++ b/SabreTools.Filtering/Cleaner.cs
@@ -4,7 +4,6 @@ using System.Linq;
using System.Text.RegularExpressions;
using SabreTools.Core;
-using SabreTools.Core.Tools;
using SabreTools.DatItems;
namespace SabreTools.Filtering
@@ -327,474 +326,6 @@ namespace SabreTools.Filtering
return input;
}
- #endregion
-
- // TODO: Use these instead of the baked in ones
- // TODO: Move to new class?
- #region Field Manipulation
-
- ///
- /// Remove fields with given values
- ///
- /// DatItem to remove fields from
- /// List of fields to remove
- public static void RemoveFields(DatItem datItem, List fields)
- {
-
- }
-
- ///
- /// Remove fields with given values
- ///
- /// Machine to remove fields from
- /// List of fields to remove
- public static void RemoveFields(Machine machine, List fields)
- {
- #region Common
-
- if (fields.Contains(MachineField.Name))
- machine.Name = null;
-
- if (fields.Contains(MachineField.Comment))
- machine.Comment = null;
-
- if (fields.Contains(MachineField.Description))
- machine.Description = null;
-
- if (fields.Contains(MachineField.Year))
- machine.Year = null;
-
- if (fields.Contains(MachineField.Manufacturer))
- machine.Manufacturer = null;
-
- if (fields.Contains(MachineField.Publisher))
- machine.Publisher = null;
-
- if (fields.Contains(MachineField.Category))
- machine.Category = null;
-
- if (fields.Contains(MachineField.RomOf))
- machine.RomOf = null;
-
- if (fields.Contains(MachineField.CloneOf))
- machine.CloneOf = null;
-
- if (fields.Contains(MachineField.SampleOf))
- machine.SampleOf = null;
-
- if (fields.Contains(MachineField.Type))
- machine.MachineType = 0x0;
-
- #endregion
-
- #region AttractMode
-
- if (fields.Contains(MachineField.Players))
- machine.Players = null;
-
- if (fields.Contains(MachineField.Rotation))
- machine.Rotation = null;
-
- if (fields.Contains(MachineField.Control))
- machine.Control = null;
-
- if (fields.Contains(MachineField.Status))
- machine.Status = null;
-
- if (fields.Contains(MachineField.DisplayCount))
- machine.DisplayCount = null;
-
- if (fields.Contains(MachineField.DisplayType))
- machine.DisplayType = null;
-
- if (fields.Contains(MachineField.Buttons))
- machine.Buttons = null;
-
- #endregion
-
- #region ListXML
-
- if (fields.Contains(MachineField.SourceFile))
- machine.SourceFile = null;
-
- if (fields.Contains(MachineField.Runnable))
- machine.Runnable = Runnable.NULL;
-
- #endregion
-
- #region Logiqx
-
- if (fields.Contains(MachineField.Board))
- machine.Board = null;
-
- if (fields.Contains(MachineField.RebuildTo))
- machine.RebuildTo = null;
-
- #endregion
-
- #region Logiqx EmuArc
-
- if (fields.Contains(MachineField.TitleID))
- machine.TitleID = null;
-
- if (fields.Contains(MachineField.Developer))
- machine.Developer = null;
-
- if (fields.Contains(MachineField.Genre))
- machine.Genre = null;
-
- if (fields.Contains(MachineField.Subgenre))
- machine.Subgenre = null;
-
- if (fields.Contains(MachineField.Ratings))
- machine.Ratings = null;
-
- if (fields.Contains(MachineField.Score))
- machine.Score = null;
-
- if (fields.Contains(MachineField.Enabled))
- machine.Enabled = null;
-
- if (fields.Contains(MachineField.CRC))
- machine.Crc = null;
-
- if (fields.Contains(MachineField.RelatedTo))
- machine.RelatedTo = null;
-
- #endregion
-
- #region OpenMSX
-
- if (fields.Contains(MachineField.GenMSXID))
- machine.GenMSXID = null;
-
- if (fields.Contains(MachineField.System))
- machine.System = null;
-
- if (fields.Contains(MachineField.Country))
- machine.Country = null;
-
- #endregion
-
- #region SoftwareList
-
- if (fields.Contains(MachineField.Supported))
- machine.Supported = Supported.NULL;
-
- #endregion
- }
-
- ///
- /// Replace fields with given values
- ///
- /// DatItem to replace fields in
- /// DatItem to pull new information from
- /// List of fields representing what should be updated
- public static void ReplaceFields(DatItem datItem, DatItem repDatItem, List fields)
- {
-
- }
-
- ///
- /// Replace fields with given values
- ///
- /// Machine to replace fields in
- /// Machine to pull new information from
- /// List of fields representing what should be updated
- /// True if descriptions should only be replaced if the game name is the same, false otherwise
- public static void ReplaceFields(Machine machine, Machine repMachine, List fields, bool onlySame)
- {
- #region Common
-
- if (fields.Contains(MachineField.Name))
- machine.Name = repMachine.Name;
-
- if (fields.Contains(MachineField.Comment))
- machine.Comment = repMachine.Comment;
-
- if (fields.Contains(MachineField.Description))
- {
- if (!onlySame || (onlySame && machine.Name == machine.Description))
- machine.Description = repMachine.Description;
- }
-
- if (fields.Contains(MachineField.Year))
- machine.Year = repMachine.Year;
-
- if (fields.Contains(MachineField.Manufacturer))
- machine.Manufacturer = repMachine.Manufacturer;
-
- if (fields.Contains(MachineField.Publisher))
- machine.Publisher = repMachine.Publisher;
-
- if (fields.Contains(MachineField.Category))
- machine.Category = repMachine.Category;
-
- if (fields.Contains(MachineField.RomOf))
- machine.RomOf = repMachine.RomOf;
-
- if (fields.Contains(MachineField.CloneOf))
- machine.CloneOf = repMachine.CloneOf;
-
- if (fields.Contains(MachineField.SampleOf))
- machine.SampleOf = repMachine.SampleOf;
-
- if (fields.Contains(MachineField.Type))
- machine.MachineType = repMachine.MachineType;
-
- #endregion
-
- #region AttractMode
-
- if (fields.Contains(MachineField.Players))
- machine.Players = repMachine.Players;
-
- if (fields.Contains(MachineField.Rotation))
- machine.Rotation = repMachine.Rotation;
-
- if (fields.Contains(MachineField.Control))
- machine.Control = repMachine.Control;
-
- if (fields.Contains(MachineField.Status))
- machine.Status = repMachine.Status;
-
- if (fields.Contains(MachineField.DisplayCount))
- machine.DisplayCount = repMachine.DisplayCount;
-
- if (fields.Contains(MachineField.DisplayType))
- machine.DisplayType = repMachine.DisplayType;
-
- if (fields.Contains(MachineField.Buttons))
- machine.Buttons = repMachine.Buttons;
-
- #endregion
-
- #region ListXML
-
- if (fields.Contains(MachineField.SourceFile))
- machine.SourceFile = repMachine.SourceFile;
-
- if (fields.Contains(MachineField.Runnable))
- machine.Runnable = repMachine.Runnable;
-
- #endregion
-
- #region Logiqx
-
- if (fields.Contains(MachineField.Board))
- machine.Board = repMachine.Board;
-
- if (fields.Contains(MachineField.RebuildTo))
- machine.RebuildTo = repMachine.RebuildTo;
-
- #endregion
-
- #region Logiqx EmuArc
-
- if (fields.Contains(MachineField.TitleID))
- machine.TitleID = repMachine.TitleID;
-
- if (fields.Contains(MachineField.Developer))
- machine.Developer = repMachine.Developer;
-
- if (fields.Contains(MachineField.Genre))
- machine.Genre = repMachine.Genre;
-
- if (fields.Contains(MachineField.Subgenre))
- machine.Subgenre = repMachine.Subgenre;
-
- if (fields.Contains(MachineField.Ratings))
- machine.Ratings = repMachine.Ratings;
-
- if (fields.Contains(MachineField.Score))
- machine.Score = repMachine.Score;
-
- if (fields.Contains(MachineField.Enabled))
- machine.Enabled = repMachine.Enabled;
-
- if (fields.Contains(MachineField.CRC))
- machine.Crc = repMachine.Crc;
-
- if (fields.Contains(MachineField.RelatedTo))
- machine.RelatedTo = repMachine.RelatedTo;
-
- #endregion
-
- #region OpenMSX
-
- if (fields.Contains(MachineField.GenMSXID))
- machine.GenMSXID = repMachine.GenMSXID;
-
- if (fields.Contains(MachineField.System))
- machine.System = repMachine.System;
-
- if (fields.Contains(MachineField.Country))
- machine.Country = repMachine.Country;
-
- #endregion
-
- #region SoftwareList
-
- if (fields.Contains(MachineField.Supported))
- machine.Supported = repMachine.Supported;
-
- #endregion
- }
-
- ///
- /// Set fields with given values
- ///
- /// DatItem to set fields on
- /// Mappings dictionary
- public static void SetFields(DatItem datItem, Dictionary mappings)
- {
-
- }
-
- ///
- /// Set fields with given values
- ///
- /// Machine to set fields on
- /// Mappings dictionary
- public static void SetFields(Machine machine, Dictionary mappings)
- {
- if (machine == null || mappings == null)
- return;
-
- #region Common
-
- if (mappings.Keys.Contains(MachineField.Name))
- machine.Name = mappings[MachineField.Name];
-
- if (mappings.Keys.Contains(MachineField.Comment))
- machine.Comment = mappings[MachineField.Comment];
-
- if (mappings.Keys.Contains(MachineField.Description))
- machine.Description = mappings[MachineField.Description];
-
- if (mappings.Keys.Contains(MachineField.Year))
- machine.Year = mappings[MachineField.Year];
-
- if (mappings.Keys.Contains(MachineField.Manufacturer))
- machine.Manufacturer = mappings[MachineField.Manufacturer];
-
- if (mappings.Keys.Contains(MachineField.Publisher))
- machine.Publisher = mappings[MachineField.Publisher];
-
- if (mappings.Keys.Contains(MachineField.Category))
- machine.Category = mappings[MachineField.Category];
-
- if (mappings.Keys.Contains(MachineField.RomOf))
- machine.RomOf = mappings[MachineField.RomOf];
-
- if (mappings.Keys.Contains(MachineField.CloneOf))
- machine.CloneOf = mappings[MachineField.CloneOf];
-
- if (mappings.Keys.Contains(MachineField.SampleOf))
- machine.SampleOf = mappings[MachineField.SampleOf];
-
- if (mappings.Keys.Contains(MachineField.Type))
- machine.MachineType = mappings[MachineField.Type].AsMachineType();
-
- #endregion
-
- #region AttractMode
-
- if (mappings.Keys.Contains(MachineField.Players))
- machine.Players = mappings[MachineField.Players];
-
- if (mappings.Keys.Contains(MachineField.Rotation))
- machine.Rotation = mappings[MachineField.Rotation];
-
- if (mappings.Keys.Contains(MachineField.Control))
- machine.Control = mappings[MachineField.Control];
-
- if (mappings.Keys.Contains(MachineField.Status))
- machine.Status = mappings[MachineField.Status];
-
- if (mappings.Keys.Contains(MachineField.DisplayCount))
- machine.DisplayCount = mappings[MachineField.DisplayCount];
-
- if (mappings.Keys.Contains(MachineField.DisplayType))
- machine.DisplayType = mappings[MachineField.DisplayType];
-
- if (mappings.Keys.Contains(MachineField.Buttons))
- machine.Buttons = mappings[MachineField.Buttons];
-
- #endregion
-
- #region ListXML
-
- if (mappings.Keys.Contains(MachineField.SourceFile))
- machine.SourceFile = mappings[MachineField.SourceFile];
-
- if (mappings.Keys.Contains(MachineField.Runnable))
- machine.Runnable = mappings[MachineField.Runnable].AsRunnable();
-
- #endregion
-
- #region Logiqx
-
- if (mappings.Keys.Contains(MachineField.Board))
- machine.Board = mappings[MachineField.Board];
-
- if (mappings.Keys.Contains(MachineField.RebuildTo))
- machine.RebuildTo = mappings[MachineField.RebuildTo];
-
- #endregion
-
- #region Logiqx EmuArc
-
- if (mappings.Keys.Contains(MachineField.TitleID))
- machine.TitleID = mappings[MachineField.TitleID];
-
- if (mappings.Keys.Contains(MachineField.Developer))
- machine.Developer = mappings[MachineField.Developer];
-
- if (mappings.Keys.Contains(MachineField.Genre))
- machine.Genre = mappings[MachineField.Genre];
-
- if (mappings.Keys.Contains(MachineField.Subgenre))
- machine.Subgenre = mappings[MachineField.Subgenre];
-
- if (mappings.Keys.Contains(MachineField.Ratings))
- machine.Ratings = mappings[MachineField.Ratings];
-
- if (mappings.Keys.Contains(MachineField.Score))
- machine.Score = mappings[MachineField.Score];
-
- if (mappings.Keys.Contains(MachineField.Enabled))
- machine.Enabled = mappings[MachineField.Enabled];
-
- if (mappings.Keys.Contains(MachineField.CRC))
- machine.Crc = mappings[MachineField.CRC].AsYesNo();
-
- if (mappings.Keys.Contains(MachineField.RelatedTo))
- machine.RelatedTo = mappings[MachineField.RelatedTo];
-
- #endregion
-
- #region OpenMSX
-
- if (mappings.Keys.Contains(MachineField.GenMSXID))
- machine.GenMSXID = mappings[MachineField.GenMSXID];
-
- if (mappings.Keys.Contains(MachineField.System))
- machine.System = mappings[MachineField.System];
-
- if (mappings.Keys.Contains(MachineField.Country))
- machine.Country = mappings[MachineField.Country];
-
- #endregion
-
- #region SoftwareList
-
- if (mappings.Keys.Contains(MachineField.Supported))
- machine.Supported = mappings[MachineField.Supported].AsSupported();
-
- #endregion
- }
-
#endregion
#region Filtering
diff --git a/SabreTools/Features/Update.cs b/SabreTools/Features/Update.cs
index 8ae08b4e..88d7354d 100644
--- a/SabreTools/Features/Update.cs
+++ b/SabreTools/Features/Update.cs
@@ -202,9 +202,9 @@ namespace SabreTools.Features
// Populate using the correct set
List datHeaders;
if (updateMode.HasFlag(UpdateMode.DiffAgainst) || updateMode.HasFlag(UpdateMode.BaseReplace))
- datHeaders = DatTool.PopulateUserData(userInputDat, basePaths);
+ datHeaders = DatFileTool.PopulateUserData(userInputDat, basePaths);
else
- datHeaders = DatTool.PopulateUserData(userInputDat, inputPaths);
+ datHeaders = DatFileTool.PopulateUserData(userInputDat, inputPaths);
// Perform additional processing steps
Modification.ApplyExtras(userInputDat, Extras);
@@ -215,7 +215,7 @@ namespace SabreTools.Features
// Output only DatItems that are duplicated across inputs
if (updateMode.HasFlag(UpdateMode.DiffDupesOnly))
{
- DatFile dupeData = DatTool.DiffDuplicates(userInputDat, inputPaths);
+ DatFile dupeData = DatFileTool.DiffDuplicates(userInputDat, inputPaths);
InternalStopwatch watch = new InternalStopwatch("Outputting duplicate DAT");
Writer.Write(dupeData, OutputDir, overwrite: false);
@@ -225,7 +225,7 @@ namespace SabreTools.Features
// Output only DatItems that are not duplicated across inputs
if (updateMode.HasFlag(UpdateMode.DiffNoDupesOnly))
{
- DatFile outerDiffData = DatTool.DiffNoDuplicates(userInputDat, inputPaths);
+ DatFile outerDiffData = DatFileTool.DiffNoDuplicates(userInputDat, inputPaths);
InternalStopwatch watch = new InternalStopwatch("Outputting no duplicate DAT");
Writer.Write(outerDiffData, OutputDir, overwrite: false);
@@ -236,7 +236,7 @@ namespace SabreTools.Features
if (updateMode.HasFlag(UpdateMode.DiffIndividualsOnly))
{
// Get all of the output DatFiles
- List datFiles = DatTool.DiffIndividuals(userInputDat, inputPaths);
+ List datFiles = DatFileTool.DiffIndividuals(userInputDat, inputPaths);
// Loop through and output the new DatFiles
InternalStopwatch watch = new InternalStopwatch("Outputting all individual DATs");
@@ -271,7 +271,7 @@ namespace SabreTools.Features
});
// Get all of the output DatFiles
- List datFiles = DatTool.DiffCascade(userInputDat, datHeaders);
+ List datFiles = DatFileTool.DiffCascade(userInputDat, datHeaders);
// Loop through and output the new DatFiles
InternalStopwatch watch = new InternalStopwatch("Outputting all created DATs");
@@ -305,7 +305,7 @@ namespace SabreTools.Features
Modification.ApplyCleaning(repDat, Cleaner);
// Now replace the fields from the base DatFile
- DatTool.DiffAgainst(userInputDat, repDat, GetBoolean(Features, ByGameValue));
+ DatFileTool.DiffAgainst(userInputDat, repDat, GetBoolean(Features, ByGameValue));
// Finally output the diffed DatFile
string interOutDir = inputPath.GetOutputPath(OutputDir, GetBoolean(features, InplaceValue));
@@ -330,7 +330,7 @@ namespace SabreTools.Features
Modification.ApplyCleaning(repDat, Cleaner);
// Now replace the fields from the base DatFile
- DatTool.BaseReplace(
+ DatFileTool.BaseReplace(
userInputDat,
repDat,
updateMachineFields,