diff --git a/SabreTools.DatItems/Adjuster.cs b/SabreTools.DatItems/Adjuster.cs
index 8592feb2..57efa942 100644
--- a/SabreTools.DatItems/Adjuster.cs
+++ b/SabreTools.DatItems/Adjuster.cs
@@ -116,37 +116,5 @@ namespace SabreTools.DatItems
}
#endregion
-
- #region Sorting and Merging
-
- ///
- public override void ReplaceFields(
- DatItem item,
- List datItemFields,
- List machineFields)
- {
- // Replace common fields first
- base.ReplaceFields(item, datItemFields, machineFields);
-
- // If we don't have a Adjuster to replace from, ignore specific fields
- if (item.ItemType != ItemType.Adjuster)
- return;
-
- // Cast for easier access
- Adjuster newItem = item as Adjuster;
-
- // Replace the fields
- if (datItemFields.Contains(DatItemField.Name))
- Name = newItem.Name;
-
- if (datItemFields.Contains(DatItemField.Default))
- Default = newItem.Default;
-
- // DatItem_Condition_* doesn't make sense here
- // since not every condition under the other item
- // can replace every condition under this item
- }
-
- #endregion
}
}
diff --git a/SabreTools.DatItems/Analog.cs b/SabreTools.DatItems/Analog.cs
index 2e472466..d2347725 100644
--- a/SabreTools.DatItems/Analog.cs
+++ b/SabreTools.DatItems/Analog.cs
@@ -1,5 +1,4 @@
-using System.Collections.Generic;
-using System.Xml.Serialization;
+using System.Xml.Serialization;
using SabreTools.Core;
using Newtonsoft.Json;
@@ -70,30 +69,5 @@ namespace SabreTools.DatItems
}
#endregion
-
- #region Sorting and Merging
-
- ///
- public override void ReplaceFields(
- DatItem item,
- List datItemFields,
- List machineFields)
- {
- // Replace common fields first
- base.ReplaceFields(item, datItemFields, machineFields);
-
- // If we don't have a Analog to replace from, ignore specific fields
- if (item.ItemType != ItemType.Analog)
- return;
-
- // Cast for easier access
- Analog newItem = item as Analog;
-
- // Replace the fields
- if (datItemFields.Contains(DatItemField.Analog_Mask))
- Mask = newItem.Mask;
- }
-
- #endregion
}
}
diff --git a/SabreTools.DatItems/Archive.cs b/SabreTools.DatItems/Archive.cs
index 441cff85..90e2e268 100644
--- a/SabreTools.DatItems/Archive.cs
+++ b/SabreTools.DatItems/Archive.cs
@@ -80,30 +80,5 @@ namespace SabreTools.DatItems
}
#endregion
-
- #region Sorting and Merging
-
- ///
- public override void ReplaceFields(
- DatItem item,
- List datItemFields,
- List machineFields)
- {
- // Replace common fields first
- base.ReplaceFields(item, datItemFields, machineFields);
-
- // If we don't have a Archive to replace from, ignore specific fields
- if (item.ItemType != ItemType.Archive)
- return;
-
- // Cast for easier access
- Archive newItem = item as Archive;
-
- // Replace the fields
- if (datItemFields.Contains(DatItemField.Name))
- Name = newItem.Name;
- }
-
- #endregion
}
}
diff --git a/SabreTools.DatItems/BiosSet.cs b/SabreTools.DatItems/BiosSet.cs
index 61565b34..ff3af616 100644
--- a/SabreTools.DatItems/BiosSet.cs
+++ b/SabreTools.DatItems/BiosSet.cs
@@ -1,5 +1,4 @@
-using System.Collections.Generic;
-using System.Xml.Serialization;
+using System.Xml.Serialization;
using SabreTools.Core;
using Newtonsoft.Json;
@@ -102,36 +101,5 @@ namespace SabreTools.DatItems
}
#endregion
-
- #region Sorting and Merging
-
- ///
- public override void ReplaceFields(
- DatItem item,
- List datItemFields,
- List machineFields)
- {
- // Replace common fields first
- base.ReplaceFields(item, datItemFields, machineFields);
-
- // If we don't have a BiosSet to replace from, ignore specific fields
- if (item.ItemType != ItemType.BiosSet)
- return;
-
- // Cast for easier access
- BiosSet newItem = item as BiosSet;
-
- // Replace the fields
- if (datItemFields.Contains(DatItemField.Name))
- Name = newItem.Name;
-
- if (datItemFields.Contains(DatItemField.Description))
- Description = newItem.Description;
-
- if (datItemFields.Contains(DatItemField.Default))
- Default = newItem.Default;
- }
-
- #endregion
}
}
diff --git a/SabreTools.DatItems/Chip.cs b/SabreTools.DatItems/Chip.cs
index f7f6089e..573b73cf 100644
--- a/SabreTools.DatItems/Chip.cs
+++ b/SabreTools.DatItems/Chip.cs
@@ -1,5 +1,4 @@
-using System.Collections.Generic;
-using System.Xml.Serialization;
+using System.Xml.Serialization;
using SabreTools.Core;
using Newtonsoft.Json;
@@ -116,39 +115,5 @@ namespace SabreTools.DatItems
}
#endregion
-
- #region Sorting and Merging
-
- ///
- public override void ReplaceFields(
- DatItem item,
- List datItemFields,
- List machineFields)
- {
- // Replace common fields first
- base.ReplaceFields(item, datItemFields, machineFields);
-
- // If we don't have a Chip to replace from, ignore specific fields
- if (item.ItemType != ItemType.Chip)
- return;
-
- // Cast for easier access
- Chip newItem = item as Chip;
-
- // Replace the fields
- if (datItemFields.Contains(DatItemField.Name))
- Name = newItem.Name;
-
- if (datItemFields.Contains(DatItemField.Tag))
- Tag = newItem.Tag;
-
- if (datItemFields.Contains(DatItemField.ChipType))
- ChipType = newItem.ChipType;
-
- if (datItemFields.Contains(DatItemField.Clock))
- Clock = newItem.Clock;
- }
-
- #endregion
}
}
diff --git a/SabreTools.DatItems/Condition.cs b/SabreTools.DatItems/Condition.cs
index 1085f1f6..f465e3ee 100644
--- a/SabreTools.DatItems/Condition.cs
+++ b/SabreTools.DatItems/Condition.cs
@@ -1,5 +1,4 @@
-using System.Collections.Generic;
-using System.Xml.Serialization;
+using System.Xml.Serialization;
using SabreTools.Core;
using Newtonsoft.Json;
@@ -102,47 +101,5 @@ namespace SabreTools.DatItems
}
#endregion
-
- #region Sorting and Merging
-
- ///
- public override void ReplaceFields(
- DatItem item,
- List datItemFields,
- List machineFields)
- {
- // Replace common fields first
- base.ReplaceFields(item, datItemFields, machineFields);
-
- // If we don't have a Condition to replace from, ignore specific fields
- if (item.ItemType != ItemType.Condition)
- return;
-
- // Cast for easier access
- Condition newItem = item as Condition;
-
- // Replace the fields
- if (datItemFields.Contains(DatItemField.Tag))
- Tag = newItem.Tag;
- else if (datItemFields.Contains(DatItemField.Condition_Tag))
- Tag = newItem.Tag;
-
- if (datItemFields.Contains(DatItemField.Mask))
- Mask = newItem.Mask;
- else if (datItemFields.Contains(DatItemField.Condition_Mask))
- Mask = newItem.Mask;
-
- if (datItemFields.Contains(DatItemField.Relation))
- Relation = newItem.Relation;
- else if (datItemFields.Contains(DatItemField.Condition_Relation))
- Relation = newItem.Relation;
-
- if (datItemFields.Contains(DatItemField.Value))
- Value = newItem.Value;
- else if (datItemFields.Contains(DatItemField.Condition_Value))
- Value = newItem.Value;
- }
-
- #endregion
}
}
diff --git a/SabreTools.DatItems/Configuration.cs b/SabreTools.DatItems/Configuration.cs
index d2241921..c77851dc 100644
--- a/SabreTools.DatItems/Configuration.cs
+++ b/SabreTools.DatItems/Configuration.cs
@@ -163,48 +163,5 @@ namespace SabreTools.DatItems
}
#endregion
-
- #region Sorting and Merging
-
- ///
- public override void ReplaceFields(
- DatItem item,
- List datItemFields,
- List machineFields)
- {
- // Replace common fields first
- base.ReplaceFields(item, datItemFields, machineFields);
-
- // If we don't have a Configuration to replace from, ignore specific fields
- if (item.ItemType != ItemType.Configuration)
- return;
-
- // Cast for easier access
- Configuration newItem = item as Configuration;
-
- // Replace the fields
- if (datItemFields.Contains(DatItemField.Name))
- Name = newItem.Name;
-
- if (datItemFields.Contains(DatItemField.Tag))
- Tag = newItem.Tag;
-
- if (datItemFields.Contains(DatItemField.Mask))
- Mask = newItem.Mask;
-
- // DatItem_Condition_* doesn't make sense here
- // since not every condition under the other item
- // can replace every condition under this item
-
- // DatItem_Location_* doesn't make sense here
- // since not every location under the other item
- // can replace every location under this item
-
- // DatItem_Setting_* doesn't make sense here
- // since not every setting under the other item
- // can replace every setting under this item
- }
-
- #endregion
}
}
diff --git a/SabreTools.DatItems/Control.cs b/SabreTools.DatItems/Control.cs
index cb149e3b..617a21e8 100644
--- a/SabreTools.DatItems/Control.cs
+++ b/SabreTools.DatItems/Control.cs
@@ -1,5 +1,4 @@
-using System.Collections.Generic;
-using System.Xml.Serialization;
+using System.Xml.Serialization;
using SabreTools.Core;
using Newtonsoft.Json;
@@ -198,63 +197,5 @@ namespace SabreTools.DatItems
}
#endregion
-
- #region Sorting and Merging
-
- ///
- public override void ReplaceFields(
- DatItem item,
- List datItemFields,
- List machineFields)
- {
- // Replace common fields first
- base.ReplaceFields(item, datItemFields, machineFields);
-
- // If we don't have a Control to replace from, ignore specific fields
- if (item.ItemType != ItemType.Control)
- return;
-
- // Cast for easier access
- Control newItem = item as Control;
-
- // Replace the fields
- if (datItemFields.Contains(DatItemField.Control_Type))
- ControlType = newItem.ControlType;
-
- if (datItemFields.Contains(DatItemField.Control_Player))
- Player = newItem.Player;
-
- if (datItemFields.Contains(DatItemField.Control_Buttons))
- Buttons = newItem.Buttons;
-
- if (datItemFields.Contains(DatItemField.Control_RequiredButtons))
- RequiredButtons = newItem.RequiredButtons;
-
- if (datItemFields.Contains(DatItemField.Control_Minimum))
- Minimum = newItem.Minimum;
-
- if (datItemFields.Contains(DatItemField.Control_Maximum))
- Maximum = newItem.Maximum;
-
- if (datItemFields.Contains(DatItemField.Control_Sensitivity))
- Sensitivity = newItem.Sensitivity;
-
- if (datItemFields.Contains(DatItemField.Control_KeyDelta))
- KeyDelta = newItem.KeyDelta;
-
- if (datItemFields.Contains(DatItemField.Control_Reverse))
- Reverse = newItem.Reverse;
-
- if (datItemFields.Contains(DatItemField.Control_Ways))
- Ways = newItem.Ways;
-
- if (datItemFields.Contains(DatItemField.Control_Ways2))
- Ways2 = newItem.Ways2;
-
- if (datItemFields.Contains(DatItemField.Control_Ways3))
- Ways3 = newItem.Ways3;
- }
-
- #endregion
}
}
diff --git a/SabreTools.DatItems/DatItem.cs b/SabreTools.DatItems/DatItem.cs
index 70138fb2..7c43eae3 100644
--- a/SabreTools.DatItems/DatItem.cs
+++ b/SabreTools.DatItems/DatItem.cs
@@ -630,25 +630,6 @@ namespace SabreTools.DatItems
return key;
}
- ///
- /// Replace fields from another item
- ///
- /// DatItem to pull new information from
- /// DatItem fields to remove
- /// Machine fields to remove
- /// TODO: Fix case where datItemFields is null
- public virtual void ReplaceFields(
- DatItem item,
- List datItemFields,
- List machineFields)
- {
- if (Machine == null)
- Machine = new Machine();
-
- // TODO: Figure out why this wasn't here
- // Machine.ReplaceFields(item.Machine, machineFields)
- }
-
#endregion
#endregion // Instance Methods
diff --git a/SabreTools.DatItems/DatItemTool.cs b/SabreTools.DatItems/DatItemTool.cs
index accfc4ce..59186011 100644
--- a/SabreTools.DatItems/DatItemTool.cs
+++ b/SabreTools.DatItems/DatItemTool.cs
@@ -1053,10 +1053,929 @@ namespace SabreTools.DatItems
///
/// 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)
+ /// List of fields representing what should be updated
+ /// TODO: Extract out setting name to common
+ public static void ReplaceFields(DatItem datItem, DatItem repDatItem, List datItemFields)
{
+ if (datItem == null || repDatItem == null || datItemFields == null)
+ return;
+ if (datItem.ItemType != repDatItem.ItemType)
+ return;
+
+ #region Adjuster
+
+ if (datItem is Adjuster adjuster)
+ {
+ Adjuster newItem = repDatItem as Adjuster;
+
+ if (datItemFields.Contains(DatItemField.Name))
+ adjuster.Name = newItem.Name;
+
+ if (datItemFields.Contains(DatItemField.Default))
+ adjuster.Default = newItem.Default;
+
+ // Condition_* doesn't make sense here
+ // since not every condition under the other item
+ // can replace every condition under this item
+ }
+
+ #endregion
+
+ #region Analog
+
+ else if (datItem is Analog analog)
+ {
+ Analog newItem = repDatItem as Analog;
+
+ if (datItemFields.Contains(DatItemField.Analog_Mask))
+ analog.Mask = newItem.Mask;
+ }
+
+ #endregion
+
+ #region Archive
+
+ else if (datItem is Archive archive)
+ {
+ Archive newItem = repDatItem as Archive;
+
+ if (datItemFields.Contains(DatItemField.Name))
+ archive.Name = newItem.Name;
+ }
+
+ #endregion
+
+ #region BiosSet
+
+ else if (datItem is BiosSet biosSet)
+ {
+ BiosSet newItem = repDatItem as BiosSet;
+
+ if (datItemFields.Contains(DatItemField.Name))
+ biosSet.Name = newItem.Name;
+
+ if (datItemFields.Contains(DatItemField.Description))
+ biosSet.Description = newItem.Description;
+
+ if (datItemFields.Contains(DatItemField.Default))
+ biosSet.Default = newItem.Default;
+ }
+
+ #endregion
+
+ #region Chip
+
+ else if (datItem is Chip chip)
+ {
+ Chip newItem = repDatItem as Chip;
+
+ if (datItemFields.Contains(DatItemField.Name))
+ chip.Name = newItem.Name;
+
+ if (datItemFields.Contains(DatItemField.Tag))
+ chip.Tag = newItem.Tag;
+
+ if (datItemFields.Contains(DatItemField.ChipType))
+ chip.ChipType = newItem.ChipType;
+
+ if (datItemFields.Contains(DatItemField.Clock))
+ chip.Clock = newItem.Clock;
+ }
+
+ #endregion
+
+ #region Condition
+
+ else if (datItem is Condition condition)
+ {
+ Condition newItem = repDatItem as Condition;
+
+ if (datItemFields.Contains(DatItemField.Tag))
+ condition.Tag = newItem.Tag;
+ else if (datItemFields.Contains(DatItemField.Condition_Tag))
+ condition.Tag = newItem.Tag;
+
+ if (datItemFields.Contains(DatItemField.Mask))
+ condition.Mask = newItem.Mask;
+ else if (datItemFields.Contains(DatItemField.Condition_Mask))
+ condition.Mask = newItem.Mask;
+
+ if (datItemFields.Contains(DatItemField.Relation))
+ condition.Relation = newItem.Relation;
+ else if (datItemFields.Contains(DatItemField.Condition_Relation))
+ condition.Relation = newItem.Relation;
+
+ if (datItemFields.Contains(DatItemField.Value))
+ condition.Value = newItem.Value;
+ else if (datItemFields.Contains(DatItemField.Condition_Value))
+ condition.Value = newItem.Value;
+ }
+
+ #endregion
+
+ #region Configuration
+
+ else if (datItem is Configuration configuration)
+ {
+ Configuration newItem = repDatItem as Configuration;
+
+ if (datItemFields.Contains(DatItemField.Name))
+ configuration.Name = newItem.Name;
+
+ if (datItemFields.Contains(DatItemField.Tag))
+ configuration.Tag = newItem.Tag;
+
+ if (datItemFields.Contains(DatItemField.Mask))
+ configuration.Mask = newItem.Mask;
+
+ // Condition_* doesn't make sense here
+ // since not every condition under the other item
+ // can replace every condition under this item
+
+ // Location_* doesn't make sense here
+ // since not every location under the other item
+ // can replace every location under this item
+
+ // Setting_* doesn't make sense here
+ // since not every setting under the other item
+ // can replace every setting under this item
+ }
+
+ #endregion
+
+ #region Control
+
+ else if (datItem is Control control)
+ {
+ Control newItem = repDatItem as Control;
+
+ if (datItemFields.Contains(DatItemField.Control_Type))
+ control.ControlType = newItem.ControlType;
+
+ if (datItemFields.Contains(DatItemField.Control_Player))
+ control.Player = newItem.Player;
+
+ if (datItemFields.Contains(DatItemField.Control_Buttons))
+ control.Buttons = newItem.Buttons;
+
+ if (datItemFields.Contains(DatItemField.Control_RequiredButtons))
+ control.RequiredButtons = newItem.RequiredButtons;
+
+ if (datItemFields.Contains(DatItemField.Control_Minimum))
+ control.Minimum = newItem.Minimum;
+
+ if (datItemFields.Contains(DatItemField.Control_Maximum))
+ control.Maximum = newItem.Maximum;
+
+ if (datItemFields.Contains(DatItemField.Control_Sensitivity))
+ control.Sensitivity = newItem.Sensitivity;
+
+ if (datItemFields.Contains(DatItemField.Control_KeyDelta))
+ control.KeyDelta = newItem.KeyDelta;
+
+ if (datItemFields.Contains(DatItemField.Control_Reverse))
+ control.Reverse = newItem.Reverse;
+
+ if (datItemFields.Contains(DatItemField.Control_Ways))
+ control.Ways = newItem.Ways;
+
+ if (datItemFields.Contains(DatItemField.Control_Ways2))
+ control.Ways2 = newItem.Ways2;
+
+ if (datItemFields.Contains(DatItemField.Control_Ways3))
+ control.Ways3 = newItem.Ways3;
+ }
+
+ #endregion
+
+ #region DataArea
+
+ else if (datItem is DataArea dataArea)
+ {
+ DataArea newItem = repDatItem as DataArea;
+
+ if (datItemFields.Contains(DatItemField.AreaName))
+ dataArea.Name = newItem.Name;
+
+ if (datItemFields.Contains(DatItemField.AreaSize))
+ dataArea.Size = newItem.Size;
+
+ if (datItemFields.Contains(DatItemField.AreaWidth))
+ dataArea.Width = newItem.Width;
+
+ if (datItemFields.Contains(DatItemField.AreaEndianness))
+ dataArea.Endianness = newItem.Endianness;
+ }
+
+ #endregion
+
+ #region Device
+
+ else if (datItem is Device device)
+ {
+ Device newItem = repDatItem as Device;
+
+ if (datItemFields.Contains(DatItemField.DeviceType))
+ device.DeviceType = newItem.DeviceType;
+
+ if (datItemFields.Contains(DatItemField.Tag))
+ device.Tag = newItem.Tag;
+
+ if (datItemFields.Contains(DatItemField.FixedImage))
+ device.FixedImage = newItem.FixedImage;
+
+ if (datItemFields.Contains(DatItemField.Mandatory))
+ device.Mandatory = newItem.Mandatory;
+
+ if (datItemFields.Contains(DatItemField.Interface))
+ device.Interface = newItem.Interface;
+
+ // Instance_* doesn't make sense here
+ // since not every instance under the other item
+ // can replace every instance under this item
+
+ // Extension_* doesn't make sense here
+ // since not every extension under the other item
+ // can replace every extension under this item
+ }
+
+ #endregion
+
+ #region DeviceReference
+
+ else if (datItem is DeviceReference deviceReference)
+ {
+ DeviceReference newItem = repDatItem as DeviceReference;
+
+ if (datItemFields.Contains(DatItemField.Name))
+ deviceReference.Name = newItem.Name;
+ }
+
+ #endregion
+
+ #region DipSwitch
+
+ else if (datItem is DipSwitch dipSwitch)
+ {
+ DipSwitch newItem = repDatItem as DipSwitch;
+
+ #region Common
+
+ if (datItemFields.Contains(DatItemField.Name))
+ dipSwitch.Name = newItem.Name;
+
+ if (datItemFields.Contains(DatItemField.Tag))
+ dipSwitch.Tag = newItem.Tag;
+
+ if (datItemFields.Contains(DatItemField.Mask))
+ dipSwitch.Mask = newItem.Mask;
+
+ // Condition_* doesn't make sense here
+ // since not every condition under the other item
+ // can replace every condition under this item
+
+ // Location_* doesn't make sense here
+ // since not every location under the other item
+ // can replace every location under this item
+
+ // Setting_* doesn't make sense here
+ // since not every value under the other item
+ // can replace every value under this item
+
+ #endregion
+
+ #region SoftwareList
+
+ if (dipSwitch.PartSpecified && newItem.PartSpecified)
+ ReplaceFields(dipSwitch.Part, newItem.Part, datItemFields);
+
+ #endregion
+ }
+
+ #endregion
+
+ #region Disk
+
+ else if (datItem is Disk disk)
+ {
+ Disk newItem = repDatItem as Disk;
+
+ #region Common
+
+ if (datItemFields.Contains(DatItemField.Name))
+ disk.Name = newItem.Name;
+
+ if (datItemFields.Contains(DatItemField.MD5))
+ {
+ if (string.IsNullOrEmpty(disk.MD5) && !string.IsNullOrEmpty(newItem.MD5))
+ disk.MD5 = newItem.MD5;
+ }
+
+ if (datItemFields.Contains(DatItemField.SHA1))
+ {
+ if (string.IsNullOrEmpty(disk.SHA1) && !string.IsNullOrEmpty(newItem.SHA1))
+ disk.SHA1 = newItem.SHA1;
+ }
+
+ if (datItemFields.Contains(DatItemField.Merge))
+ disk.MergeTag = newItem.MergeTag;
+
+ if (datItemFields.Contains(DatItemField.Region))
+ disk.Region = newItem.Region;
+
+ if (datItemFields.Contains(DatItemField.Index))
+ disk.Index = newItem.Index;
+
+ if (datItemFields.Contains(DatItemField.Writable))
+ disk.Writable = newItem.Writable;
+
+ if (datItemFields.Contains(DatItemField.Status))
+ disk.ItemStatus = newItem.ItemStatus;
+
+ if (datItemFields.Contains(DatItemField.Optional))
+ disk.Optional = newItem.Optional;
+
+ #endregion
+
+ #region SoftwareList
+
+ if (disk.DiskAreaSpecified && newItem.DiskAreaSpecified)
+ ReplaceFields(disk.DiskArea, newItem.DiskArea, datItemFields);
+
+ if (disk.PartSpecified && newItem.PartSpecified)
+ ReplaceFields(disk.Part, newItem.Part, datItemFields);
+
+ #endregion
+ }
+
+ #endregion
+
+ #region DiskArea
+
+ else if (datItem is DiskArea diskArea)
+ {
+ DiskArea newItem = repDatItem as DiskArea;
+
+ if (datItemFields.Contains(DatItemField.AreaName))
+ diskArea.Name = newItem.Name;
+ }
+
+ #endregion
+
+ #region Display
+
+ else if (datItem is Display display)
+ {
+ Display newItem = repDatItem as Display;
+
+ if (datItemFields.Contains(DatItemField.Tag))
+ display.Tag = newItem.Tag;
+
+ if (datItemFields.Contains(DatItemField.DisplayType))
+ display.DisplayType = newItem.DisplayType;
+
+ if (datItemFields.Contains(DatItemField.Rotate))
+ display.Rotate = newItem.Rotate;
+
+ if (datItemFields.Contains(DatItemField.FlipX))
+ display.FlipX = newItem.FlipX;
+
+ if (datItemFields.Contains(DatItemField.Width))
+ display.Width = newItem.Width;
+
+ if (datItemFields.Contains(DatItemField.Height))
+ display.Height = newItem.Height;
+
+ if (datItemFields.Contains(DatItemField.Refresh))
+ display.Refresh = newItem.Refresh;
+
+ if (datItemFields.Contains(DatItemField.PixClock))
+ display.PixClock = newItem.PixClock;
+
+ if (datItemFields.Contains(DatItemField.HTotal))
+ display.HTotal = newItem.HTotal;
+
+ if (datItemFields.Contains(DatItemField.HBEnd))
+ display.HBEnd = newItem.HBEnd;
+
+ if (datItemFields.Contains(DatItemField.HBStart))
+ display.HBStart = newItem.HBStart;
+
+ if (datItemFields.Contains(DatItemField.VTotal))
+ display.VTotal = newItem.VTotal;
+
+ if (datItemFields.Contains(DatItemField.VBEnd))
+ display.VBEnd = newItem.VBEnd;
+
+ if (datItemFields.Contains(DatItemField.VBStart))
+ display.VBStart = newItem.VBStart;
+ }
+
+ #endregion
+
+ #region Driver
+
+ else if (datItem is Driver driver)
+ {
+ Driver newItem = repDatItem as Driver;
+
+ if (datItemFields.Contains(DatItemField.SupportStatus))
+ driver.Status = newItem.Status;
+
+ if (datItemFields.Contains(DatItemField.EmulationStatus))
+ driver.Emulation = newItem.Emulation;
+
+ if (datItemFields.Contains(DatItemField.CocktailStatus))
+ driver.Cocktail = newItem.Cocktail;
+
+ if (datItemFields.Contains(DatItemField.SaveStateStatus))
+ driver.SaveState = newItem.SaveState;
+ }
+
+ #endregion
+
+ #region Extension
+
+ else if (datItem is Extension extension)
+ {
+ Extension newItem = repDatItem as Extension;
+
+ if (datItemFields.Contains(DatItemField.Extension_Name))
+ extension.Name = newItem.Name;
+ }
+
+ #endregion
+
+ #region Feature
+
+ else if (datItem is Feature feature)
+ {
+ Feature newItem = repDatItem as Feature;
+
+ if (datItemFields.Contains(DatItemField.FeatureType))
+ feature.Type = newItem.Type;
+
+ if (datItemFields.Contains(DatItemField.FeatureStatus))
+ feature.Status = newItem.Status;
+
+ if (datItemFields.Contains(DatItemField.FeatureOverall))
+ feature.Overall = newItem.Overall;
+ }
+
+ #endregion
+
+ #region Info
+
+ else if (datItem is Info info)
+ {
+ Info newItem = repDatItem as Info;
+
+ if (datItemFields.Contains(DatItemField.Name))
+ info.Name = newItem.Name;
+
+ if (datItemFields.Contains(DatItemField.Value))
+ info.Value = newItem.Value;
+ }
+
+ #endregion
+
+ #region Input
+
+ else if (datItem is Input input)
+ {
+ Input newItem = repDatItem as Input;
+
+ if (datItemFields.Contains(DatItemField.Service))
+ input.Service = newItem.Service;
+
+ if (datItemFields.Contains(DatItemField.Tilt))
+ input.Tilt = newItem.Tilt;
+
+ if (datItemFields.Contains(DatItemField.Players))
+ input.Players = newItem.Players;
+
+ if (datItemFields.Contains(DatItemField.Coins))
+ input.Coins = newItem.Coins;
+
+ // Control_* doesn't make sense here
+ // since not every control under the other item
+ // can replace every control under this item
+ }
+
+ #endregion
+
+ #region Instance
+
+ else if (datItem is Instance instance)
+ {
+ Instance newItem = repDatItem as Instance;
+
+ if (datItemFields.Contains(DatItemField.Instance_Name))
+ instance.Name = newItem.Name;
+
+ if (datItemFields.Contains(DatItemField.Instance_BriefName))
+ instance.BriefName = newItem.BriefName;
+ }
+
+ #endregion
+
+ #region Location
+
+ else if (datItem is Location location)
+ {
+ Location newItem = repDatItem as Location;
+
+ if (datItemFields.Contains(DatItemField.Location_Name))
+ location.Name = newItem.Name;
+
+ if (datItemFields.Contains(DatItemField.Location_Number))
+ location.Number = newItem.Number;
+
+ if (datItemFields.Contains(DatItemField.Location_Inverted))
+ location.Inverted = newItem.Inverted;
+ }
+
+ #endregion
+
+ #region Media
+
+ else if (datItem is Media media)
+ {
+ Media newItem = repDatItem as Media;
+
+ if (datItemFields.Contains(DatItemField.Name))
+ media.Name = newItem.Name;
+
+ if (datItemFields.Contains(DatItemField.MD5))
+ {
+ if (string.IsNullOrEmpty(media.MD5) && !string.IsNullOrEmpty(newItem.MD5))
+ media.MD5 = newItem.MD5;
+ }
+
+ if (datItemFields.Contains(DatItemField.SHA1))
+ {
+ if (string.IsNullOrEmpty(media.SHA1) && !string.IsNullOrEmpty(newItem.SHA1))
+ media.SHA1 = newItem.SHA1;
+ }
+
+ if (datItemFields.Contains(DatItemField.SHA256))
+ {
+ if (string.IsNullOrEmpty(media.SHA256) && !string.IsNullOrEmpty(newItem.SHA256))
+ media.SHA256 = newItem.SHA256;
+ }
+
+ if (datItemFields.Contains(DatItemField.SpamSum))
+ {
+ if (string.IsNullOrEmpty(media.SpamSum) && !string.IsNullOrEmpty(newItem.SpamSum))
+ media.SpamSum = newItem.SpamSum;
+ }
+ }
+
+ #endregion
+
+ #region Part
+
+ else if (datItem is Part part)
+ {
+ Part newItem = repDatItem as Part;
+
+ if (datItemFields.Contains(DatItemField.Part_Name))
+ part.Name = newItem.Name;
+
+ if (datItemFields.Contains(DatItemField.Part_Interface))
+ part.Interface = newItem.Interface;
+
+ // Part_Feature_* doesn't make sense here
+ // since not every part feature under the other item
+ // can replace every part feature under this item
+ }
+
+ #endregion
+
+ #region PartFeature
+
+ else if (datItem is PartFeature partFeature)
+ {
+ PartFeature newItem = repDatItem as PartFeature;
+
+ if (datItemFields.Contains(DatItemField.Part_Feature_Name))
+ partFeature.Name = newItem.Name;
+
+ if (datItemFields.Contains(DatItemField.Part_Feature_Value))
+ partFeature.Value = newItem.Value;
+ }
+
+ #endregion
+
+ #region Port
+
+ else if (datItem is Port port)
+ {
+ Port newItem = repDatItem as Port;
+
+ if (datItemFields.Contains(DatItemField.Name))
+ port.Tag = newItem.Tag;
+
+ // Analog_* doesn't make sense here
+ // since not every analog under the other item
+ // can replace every analog under this item
+ }
+
+ #endregion
+
+ #region RamOption
+
+ else if (datItem is RamOption ramOption)
+ {
+ RamOption newItem = repDatItem as RamOption;
+
+ if (datItemFields.Contains(DatItemField.Name))
+ ramOption.Name = newItem.Name;
+
+ if (datItemFields.Contains(DatItemField.Default))
+ ramOption.Default = newItem.Default;
+
+ if (datItemFields.Contains(DatItemField.Content))
+ ramOption.Content = newItem.Content;
+ }
+
+ #endregion
+
+ #region Release
+
+ else if (datItem is Release release)
+ {
+ Release newItem = repDatItem as Release;
+
+ if (datItemFields.Contains(DatItemField.Name))
+ release.Name = newItem.Name;
+
+ if (datItemFields.Contains(DatItemField.Region))
+ release.Region = newItem.Region;
+
+ if (datItemFields.Contains(DatItemField.Language))
+ release.Language = newItem.Language;
+
+ if (datItemFields.Contains(DatItemField.Date))
+ release.Date = newItem.Date;
+
+ if (datItemFields.Contains(DatItemField.Default))
+ release.Default = newItem.Default;
+ }
+
+ #endregion
+
+ #region Rom
+
+ else if (datItem is Rom rom)
+ {
+ Rom newItem = repDatItem as Rom;
+
+ #region Common
+
+ if (datItemFields.Contains(DatItemField.Name))
+ rom.Name = newItem.Name;
+
+ if (datItemFields.Contains(DatItemField.Bios))
+ rom.Bios = newItem.Bios;
+
+ if (datItemFields.Contains(DatItemField.Size))
+ rom.Size = newItem.Size;
+
+ if (datItemFields.Contains(DatItemField.CRC))
+ {
+ if (string.IsNullOrEmpty(rom.CRC) && !string.IsNullOrEmpty(newItem.CRC))
+ rom.CRC = newItem.CRC;
+ }
+
+ if (datItemFields.Contains(DatItemField.MD5))
+ {
+ if (string.IsNullOrEmpty(rom.MD5) && !string.IsNullOrEmpty(newItem.MD5))
+ rom.MD5 = newItem.MD5;
+ }
+
+#if NET_FRAMEWORK
+ if (datItemFields.Contains(DatItemField.RIPEMD160))
+ {
+ if (string.IsNullOrEmpty(rom.RIPEMD160) && !string.IsNullOrEmpty(newItem.RIPEMD160))
+ rom.RIPEMD160 = newItem.RIPEMD160;
+ }
+#endif
+
+ if (datItemFields.Contains(DatItemField.SHA1))
+ {
+ if (string.IsNullOrEmpty(rom.SHA1) && !string.IsNullOrEmpty(newItem.SHA1))
+ rom.SHA1 = newItem.SHA1;
+ }
+
+ if (datItemFields.Contains(DatItemField.SHA256))
+ {
+ if (string.IsNullOrEmpty(rom.SHA256) && !string.IsNullOrEmpty(newItem.SHA256))
+ rom.SHA256 = newItem.SHA256;
+ }
+
+ if (datItemFields.Contains(DatItemField.SHA384))
+ {
+ if (string.IsNullOrEmpty(rom.SHA384) && !string.IsNullOrEmpty(newItem.SHA384))
+ rom.SHA384 = newItem.SHA384;
+ }
+
+ if (datItemFields.Contains(DatItemField.SHA512))
+ {
+ if (string.IsNullOrEmpty(rom.SHA512) && !string.IsNullOrEmpty(newItem.SHA512))
+ rom.SHA512 = newItem.SHA512;
+ }
+
+ if (datItemFields.Contains(DatItemField.SpamSum))
+ {
+ if (string.IsNullOrEmpty(rom.SpamSum) && !string.IsNullOrEmpty(newItem.SpamSum))
+ rom.SpamSum = newItem.SpamSum;
+ }
+
+ if (datItemFields.Contains(DatItemField.Merge))
+ rom.MergeTag = newItem.MergeTag;
+
+ if (datItemFields.Contains(DatItemField.Region))
+ rom.Region = newItem.Region;
+
+ if (datItemFields.Contains(DatItemField.Offset))
+ rom.Offset = newItem.Offset;
+
+ if (datItemFields.Contains(DatItemField.Date))
+ rom.Date = newItem.Date;
+
+ if (datItemFields.Contains(DatItemField.Status))
+ rom.ItemStatus = newItem.ItemStatus;
+
+ if (datItemFields.Contains(DatItemField.Optional))
+ rom.Optional = newItem.Optional;
+
+ if (datItemFields.Contains(DatItemField.Inverted))
+ rom.Inverted = newItem.Inverted;
+
+ #endregion
+
+ #region AttractMode
+
+ if (datItemFields.Contains(DatItemField.AltName))
+ rom.AltName = newItem.AltName;
+
+ if (datItemFields.Contains(DatItemField.AltTitle))
+ rom.AltTitle = newItem.AltTitle;
+
+ #endregion
+
+ #region OpenMSX
+
+ if (datItemFields.Contains(DatItemField.Original))
+ rom.Original = newItem.Original;
+
+ if (datItemFields.Contains(DatItemField.OpenMSXSubType))
+ rom.OpenMSXSubType = newItem.OpenMSXSubType;
+
+ if (datItemFields.Contains(DatItemField.OpenMSXType))
+ rom.OpenMSXType = newItem.OpenMSXType;
+
+ if (datItemFields.Contains(DatItemField.Remark))
+ rom.Remark = newItem.Remark;
+
+ if (datItemFields.Contains(DatItemField.Boot))
+ rom.Boot = newItem.Boot;
+
+ #endregion
+
+ #region SoftwareList
+
+ if (datItemFields.Contains(DatItemField.LoadFlag))
+ rom.LoadFlag = newItem.LoadFlag;
+
+ if (datItemFields.Contains(DatItemField.Value))
+ rom.Value = newItem.Value;
+
+ if (rom.DataAreaSpecified && newItem.DataAreaSpecified)
+ ReplaceFields(rom.DataArea, newItem.DataArea, datItemFields);
+
+ if (rom.PartSpecified && newItem.PartSpecified)
+ ReplaceFields(rom.Part, newItem.Part, datItemFields);
+
+ #endregion
+ }
+
+ #endregion
+
+ #region Sample
+
+ else if (datItem is Sample sample)
+ {
+ Sample newItem = repDatItem as Sample;
+
+ if (datItemFields.Contains(DatItemField.Name))
+ sample.Name = newItem.Name;
+ }
+
+ #endregion
+
+ #region Setting
+
+ else if (datItem is Setting setting)
+ {
+ Setting newItem = repDatItem as Setting;
+
+ if (datItemFields.Contains(DatItemField.Setting_Name))
+ setting.Name = newItem.Name;
+
+ if (datItemFields.Contains(DatItemField.Setting_Value))
+ setting.Value = newItem.Value;
+
+ if (datItemFields.Contains(DatItemField.Setting_Default))
+ setting.Default = newItem.Default;
+
+ // Condition_* doesn't make sense here
+ // since not every condition under the other item
+ // can replace every condition under this item
+ }
+
+ #endregion
+
+ #region SharedFeature
+
+ else if (datItem is SharedFeature sharedFeature)
+ {
+ SharedFeature newItem = repDatItem as SharedFeature;
+
+ if (datItemFields.Contains(DatItemField.Name))
+ sharedFeature.Name = newItem.Name;
+
+ if (datItemFields.Contains(DatItemField.Value))
+ sharedFeature.Value = newItem.Value;
+ }
+
+ #endregion
+
+ #region Slot
+
+ else if (datItem is Slot slot)
+ {
+ Slot newItem = repDatItem as Slot;
+
+ if (datItemFields.Contains(DatItemField.Name))
+ slot.Name = newItem.Name;
+
+ // SlotOption_* doesn't make sense here
+ // since not every slot option under the other item
+ // can replace every slot option under this item
+ }
+
+ #endregion
+
+ #region SlotOption
+
+ else if (datItem is SlotOption slotOption)
+ {
+ SlotOption newItem = repDatItem as SlotOption;
+
+ if (datItemFields.Contains(DatItemField.SlotOption_Name))
+ slotOption.Name = newItem.Name;
+
+ if (datItemFields.Contains(DatItemField.SlotOption_DeviceName))
+ slotOption.DeviceName = newItem.DeviceName;
+
+ if (datItemFields.Contains(DatItemField.SlotOption_Default))
+ slotOption.Default = newItem.Default;
+ }
+
+ #endregion
+
+ #region SoftwareList
+
+ else if (datItem is SoftwareList softwareList)
+ {
+ SoftwareList newItem = repDatItem as SoftwareList;
+
+ if (datItemFields.Contains(DatItemField.Name))
+ softwareList.Name = newItem.Name;
+
+ if (datItemFields.Contains(DatItemField.SoftwareListStatus))
+ softwareList.Status = newItem.Status;
+
+ if (datItemFields.Contains(DatItemField.Filter))
+ softwareList.Filter = newItem.Filter;
+ }
+
+ #endregion
+
+ #region Sound
+
+ else if (datItem is Sound sound)
+ {
+ Sound newItem = repDatItem as Sound;
+
+ if (datItemFields.Contains(DatItemField.Channels))
+ sound.Channels = newItem.Channels;
+ }
+
+ #endregion
}
///
@@ -1064,142 +1983,142 @@ namespace SabreTools.DatItems
///
/// Machine to replace fields in
/// Machine to pull new information from
- /// List of fields representing what should be updated
+ /// 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)
+ public static void ReplaceFields(Machine machine, Machine repMachine, List machineFields, bool onlySame)
{
#region Common
- if (fields.Contains(MachineField.Name))
+ if (machineFields.Contains(MachineField.Name))
machine.Name = repMachine.Name;
- if (fields.Contains(MachineField.Comment))
+ if (machineFields.Contains(MachineField.Comment))
machine.Comment = repMachine.Comment;
- if (fields.Contains(MachineField.Description))
+ if (machineFields.Contains(MachineField.Description))
{
if (!onlySame || (onlySame && machine.Name == machine.Description))
machine.Description = repMachine.Description;
}
- if (fields.Contains(MachineField.Year))
+ if (machineFields.Contains(MachineField.Year))
machine.Year = repMachine.Year;
- if (fields.Contains(MachineField.Manufacturer))
+ if (machineFields.Contains(MachineField.Manufacturer))
machine.Manufacturer = repMachine.Manufacturer;
- if (fields.Contains(MachineField.Publisher))
+ if (machineFields.Contains(MachineField.Publisher))
machine.Publisher = repMachine.Publisher;
- if (fields.Contains(MachineField.Category))
+ if (machineFields.Contains(MachineField.Category))
machine.Category = repMachine.Category;
- if (fields.Contains(MachineField.RomOf))
+ if (machineFields.Contains(MachineField.RomOf))
machine.RomOf = repMachine.RomOf;
- if (fields.Contains(MachineField.CloneOf))
+ if (machineFields.Contains(MachineField.CloneOf))
machine.CloneOf = repMachine.CloneOf;
- if (fields.Contains(MachineField.SampleOf))
+ if (machineFields.Contains(MachineField.SampleOf))
machine.SampleOf = repMachine.SampleOf;
- if (fields.Contains(MachineField.Type))
+ if (machineFields.Contains(MachineField.Type))
machine.MachineType = repMachine.MachineType;
#endregion
#region AttractMode
- if (fields.Contains(MachineField.Players))
+ if (machineFields.Contains(MachineField.Players))
machine.Players = repMachine.Players;
- if (fields.Contains(MachineField.Rotation))
+ if (machineFields.Contains(MachineField.Rotation))
machine.Rotation = repMachine.Rotation;
- if (fields.Contains(MachineField.Control))
+ if (machineFields.Contains(MachineField.Control))
machine.Control = repMachine.Control;
- if (fields.Contains(MachineField.Status))
+ if (machineFields.Contains(MachineField.Status))
machine.Status = repMachine.Status;
- if (fields.Contains(MachineField.DisplayCount))
+ if (machineFields.Contains(MachineField.DisplayCount))
machine.DisplayCount = repMachine.DisplayCount;
- if (fields.Contains(MachineField.DisplayType))
+ if (machineFields.Contains(MachineField.DisplayType))
machine.DisplayType = repMachine.DisplayType;
- if (fields.Contains(MachineField.Buttons))
+ if (machineFields.Contains(MachineField.Buttons))
machine.Buttons = repMachine.Buttons;
#endregion
#region ListXML
- if (fields.Contains(MachineField.SourceFile))
+ if (machineFields.Contains(MachineField.SourceFile))
machine.SourceFile = repMachine.SourceFile;
- if (fields.Contains(MachineField.Runnable))
+ if (machineFields.Contains(MachineField.Runnable))
machine.Runnable = repMachine.Runnable;
#endregion
#region Logiqx
- if (fields.Contains(MachineField.Board))
+ if (machineFields.Contains(MachineField.Board))
machine.Board = repMachine.Board;
- if (fields.Contains(MachineField.RebuildTo))
+ if (machineFields.Contains(MachineField.RebuildTo))
machine.RebuildTo = repMachine.RebuildTo;
#endregion
#region Logiqx EmuArc
- if (fields.Contains(MachineField.TitleID))
+ if (machineFields.Contains(MachineField.TitleID))
machine.TitleID = repMachine.TitleID;
- if (fields.Contains(MachineField.Developer))
+ if (machineFields.Contains(MachineField.Developer))
machine.Developer = repMachine.Developer;
- if (fields.Contains(MachineField.Genre))
+ if (machineFields.Contains(MachineField.Genre))
machine.Genre = repMachine.Genre;
- if (fields.Contains(MachineField.Subgenre))
+ if (machineFields.Contains(MachineField.Subgenre))
machine.Subgenre = repMachine.Subgenre;
- if (fields.Contains(MachineField.Ratings))
+ if (machineFields.Contains(MachineField.Ratings))
machine.Ratings = repMachine.Ratings;
- if (fields.Contains(MachineField.Score))
+ if (machineFields.Contains(MachineField.Score))
machine.Score = repMachine.Score;
- if (fields.Contains(MachineField.Enabled))
+ if (machineFields.Contains(MachineField.Enabled))
machine.Enabled = repMachine.Enabled;
- if (fields.Contains(MachineField.CRC))
+ if (machineFields.Contains(MachineField.CRC))
machine.Crc = repMachine.Crc;
- if (fields.Contains(MachineField.RelatedTo))
+ if (machineFields.Contains(MachineField.RelatedTo))
machine.RelatedTo = repMachine.RelatedTo;
#endregion
#region OpenMSX
- if (fields.Contains(MachineField.GenMSXID))
+ if (machineFields.Contains(MachineField.GenMSXID))
machine.GenMSXID = repMachine.GenMSXID;
- if (fields.Contains(MachineField.System))
+ if (machineFields.Contains(MachineField.System))
machine.System = repMachine.System;
- if (fields.Contains(MachineField.Country))
+ if (machineFields.Contains(MachineField.Country))
machine.Country = repMachine.Country;
#endregion
#region SoftwareList
- if (fields.Contains(MachineField.Supported))
+ if (machineFields.Contains(MachineField.Supported))
machine.Supported = repMachine.Supported;
#endregion
diff --git a/SabreTools.DatItems/DataArea.cs b/SabreTools.DatItems/DataArea.cs
index e117adfc..bd88f6a3 100644
--- a/SabreTools.DatItems/DataArea.cs
+++ b/SabreTools.DatItems/DataArea.cs
@@ -1,5 +1,4 @@
-using System.Collections.Generic;
-using System.Xml.Serialization;
+using System.Xml.Serialization;
using SabreTools.Core;
using Newtonsoft.Json;
@@ -118,39 +117,5 @@ namespace SabreTools.DatItems
}
#endregion
-
- #region Sorting and Merging
-
- ///
- public override void ReplaceFields(
- DatItem item,
- List datItemFields,
- List machineFields)
- {
- // Replace common fields first
- base.ReplaceFields(item, datItemFields, machineFields);
-
- // If we don't have a DataArea to replace from, ignore specific fields
- if (item.ItemType != ItemType.DataArea)
- return;
-
- // Cast for easier access
- DataArea newItem = item as DataArea;
-
- // Replace the fields
- if (datItemFields.Contains(DatItemField.AreaName))
- Name = newItem.Name;
-
- if (datItemFields.Contains(DatItemField.AreaSize))
- Size = newItem.Size;
-
- if (datItemFields.Contains(DatItemField.AreaWidth))
- Width = newItem.Width;
-
- if (datItemFields.Contains(DatItemField.AreaEndianness))
- Endianness = newItem.Endianness;
- }
-
- #endregion
}
}
diff --git a/SabreTools.DatItems/Device.cs b/SabreTools.DatItems/Device.cs
index 69d49eee..82e4f728 100644
--- a/SabreTools.DatItems/Device.cs
+++ b/SabreTools.DatItems/Device.cs
@@ -159,50 +159,5 @@ namespace SabreTools.DatItems
}
#endregion
-
- #region Sorting and Merging
-
- ///
- public override void ReplaceFields(
- DatItem item,
- List datItemFields,
- List machineFields)
- {
- // Replace common fields first
- base.ReplaceFields(item, datItemFields, machineFields);
-
- // If we don't have a Device to replace from, ignore specific fields
- if (item.ItemType != ItemType.Device)
- return;
-
- // Cast for easier access
- Device newItem = item as Device;
-
- // Replace the fields
- if (datItemFields.Contains(DatItemField.DeviceType))
- DeviceType = newItem.DeviceType;
-
- if (datItemFields.Contains(DatItemField.Tag))
- Tag = newItem.Tag;
-
- if (datItemFields.Contains(DatItemField.FixedImage))
- FixedImage = newItem.FixedImage;
-
- if (datItemFields.Contains(DatItemField.Mandatory))
- Mandatory = newItem.Mandatory;
-
- if (datItemFields.Contains(DatItemField.Interface))
- Interface = newItem.Interface;
-
- // DatItem_Instance_* doesn't make sense here
- // since not every instance under the other item
- // can replace every instance under this item
-
- // DatItem_Extension_* doesn't make sense here
- // since not every extension under the other item
- // can replace every extension under this item
- }
-
- #endregion
}
}
diff --git a/SabreTools.DatItems/DeviceReference.cs b/SabreTools.DatItems/DeviceReference.cs
index 0bc8dbbf..3606d924 100644
--- a/SabreTools.DatItems/DeviceReference.cs
+++ b/SabreTools.DatItems/DeviceReference.cs
@@ -1,5 +1,4 @@
-using System.Collections.Generic;
-using System.Xml.Serialization;
+using System.Xml.Serialization;
using SabreTools.Core;
using Newtonsoft.Json;
@@ -81,30 +80,5 @@ namespace SabreTools.DatItems
}
#endregion
-
- #region Sorting and Merging
-
- ///
- public override void ReplaceFields(
- DatItem item,
- List datItemFields,
- List machineFields)
- {
- // Replace common fields first
- base.ReplaceFields(item, datItemFields, machineFields);
-
- // If we don't have a DeviceReference to replace from, ignore specific fields
- if (item.ItemType != ItemType.DeviceReference)
- return;
-
- // Cast for easier access
- DeviceReference newItem = item as DeviceReference;
-
- // Replace the fields
- if (datItemFields.Contains(DatItemField.Name))
- Name = newItem.Name;
- }
-
- #endregion
}
}
diff --git a/SabreTools.DatItems/DipSwitch.cs b/SabreTools.DatItems/DipSwitch.cs
index c18a93b0..7a816dc2 100644
--- a/SabreTools.DatItems/DipSwitch.cs
+++ b/SabreTools.DatItems/DipSwitch.cs
@@ -195,60 +195,5 @@ namespace SabreTools.DatItems
}
#endregion
-
- #region Sorting and Merging
-
- ///
- public override void ReplaceFields(
- DatItem item,
- List datItemFields,
- List machineFields)
- {
- // Replace common fields first
- base.ReplaceFields(item, datItemFields, machineFields);
-
- // If we don't have a DipSwitch to replace from, ignore specific fields
- if (item.ItemType != ItemType.DipSwitch)
- return;
-
- // Cast for easier access
- DipSwitch newItem = item as DipSwitch;
-
- // Replace the fields
-
- #region Common
-
- if (datItemFields.Contains(DatItemField.Name))
- Name = newItem.Name;
-
- if (datItemFields.Contains(DatItemField.Tag))
- Tag = newItem.Tag;
-
- if (datItemFields.Contains(DatItemField.Mask))
- Mask = newItem.Mask;
-
- // DatItem_Condition_* doesn't make sense here
- // since not every condition under the other item
- // can replace every condition under this item
-
- // DatItem_Location_* doesn't make sense here
- // since not every location under the other item
- // can replace every location under this item
-
- // DatItem_Setting_* doesn't make sense here
- // since not every value under the other item
- // can replace every value under this item
-
- #endregion
-
- #region SoftwareList
-
- if (PartSpecified && newItem.PartSpecified)
- Part.ReplaceFields(newItem.Part, datItemFields, machineFields);
-
- #endregion
- }
-
- #endregion
}
}
diff --git a/SabreTools.DatItems/Disk.cs b/SabreTools.DatItems/Disk.cs
index deb7d94a..cd6a02c9 100644
--- a/SabreTools.DatItems/Disk.cs
+++ b/SabreTools.DatItems/Disk.cs
@@ -1,5 +1,4 @@
-using System.Collections.Generic;
-using System.Xml.Serialization;
+using System.Xml.Serialization;
using SabreTools.Core;
using SabreTools.Core.Tools;
@@ -402,72 +401,6 @@ namespace SabreTools.DatItems
return key;
}
- ///
- public override void ReplaceFields(
- DatItem item,
- List datItemFields,
- List machineFields)
- {
- // Replace common fields first
- base.ReplaceFields(item, datItemFields, machineFields);
-
- // If we don't have a Disk to replace from, ignore specific fields
- if (item.ItemType != ItemType.Disk)
- return;
-
- // Cast for easier access
- Disk newItem = item as Disk;
-
- // Replace the fields
-
- #region Common
-
- if (datItemFields.Contains(DatItemField.Name))
- Name = newItem.Name;
-
- if (datItemFields.Contains(DatItemField.MD5))
- {
- if (string.IsNullOrEmpty(MD5) && !string.IsNullOrEmpty(newItem.MD5))
- MD5 = newItem.MD5;
- }
-
- if (datItemFields.Contains(DatItemField.SHA1))
- {
- if (string.IsNullOrEmpty(SHA1) && !string.IsNullOrEmpty(newItem.SHA1))
- SHA1 = newItem.SHA1;
- }
-
- if (datItemFields.Contains(DatItemField.Merge))
- MergeTag = newItem.MergeTag;
-
- if (datItemFields.Contains(DatItemField.Region))
- Region = newItem.Region;
-
- if (datItemFields.Contains(DatItemField.Index))
- Index = newItem.Index;
-
- if (datItemFields.Contains(DatItemField.Writable))
- Writable = newItem.Writable;
-
- if (datItemFields.Contains(DatItemField.Status))
- ItemStatus = newItem.ItemStatus;
-
- if (datItemFields.Contains(DatItemField.Optional))
- Optional = newItem.Optional;
-
- #endregion
-
- #region SoftwareList
-
- if (DiskAreaSpecified && newItem.DiskAreaSpecified)
- DiskArea.ReplaceFields(newItem.DiskArea, datItemFields, machineFields);
-
- if (PartSpecified && newItem.PartSpecified)
- Part.ReplaceFields(newItem.Part, datItemFields, machineFields);
-
- #endregion
- }
-
#endregion
}
}
diff --git a/SabreTools.DatItems/DiskArea.cs b/SabreTools.DatItems/DiskArea.cs
index 7c89da3e..3c07ece8 100644
--- a/SabreTools.DatItems/DiskArea.cs
+++ b/SabreTools.DatItems/DiskArea.cs
@@ -1,5 +1,4 @@
-using System.Collections.Generic;
-using System.Xml.Serialization;
+using System.Xml.Serialization;
using SabreTools.Core;
using Newtonsoft.Json;
@@ -82,30 +81,5 @@ namespace SabreTools.DatItems
}
#endregion
-
- #region Sorting and Merging
-
- ///
- public override void ReplaceFields(
- DatItem item,
- List datItemFields,
- List machineFields)
- {
- // Replace common fields first
- base.ReplaceFields(item, datItemFields, machineFields);
-
- // If we don't have a DiskArea to replace from, ignore specific fields
- if (item.ItemType != ItemType.DiskArea)
- return;
-
- // Cast for easier access
- DiskArea newItem = item as DiskArea;
-
- // Replace the fields
- if (datItemFields.Contains(DatItemField.AreaName))
- Name = newItem.Name;
- }
-
- #endregion
}
}
diff --git a/SabreTools.DatItems/Display.cs b/SabreTools.DatItems/Display.cs
index 45241db4..78945cfc 100644
--- a/SabreTools.DatItems/Display.cs
+++ b/SabreTools.DatItems/Display.cs
@@ -1,5 +1,4 @@
-using System.Collections.Generic;
-using System.Xml.Serialization;
+using System.Xml.Serialization;
using SabreTools.Core;
using Newtonsoft.Json;
@@ -228,69 +227,5 @@ namespace SabreTools.DatItems
}
#endregion
-
- #region Sorting and Merging
-
- ///
- public override void ReplaceFields(
- DatItem item,
- List datItemFields,
- List machineFields)
- {
- // Replace common fields first
- base.ReplaceFields(item, datItemFields, machineFields);
-
- // If we don't have a Display to replace from, ignore specific fields
- if (item.ItemType != ItemType.Display)
- return;
-
- // Cast for easier access
- Display newItem = item as Display;
-
- // Replace the fields
- if (datItemFields.Contains(DatItemField.Tag))
- Tag = newItem.Tag;
-
- if (datItemFields.Contains(DatItemField.DisplayType))
- DisplayType = newItem.DisplayType;
-
- if (datItemFields.Contains(DatItemField.Rotate))
- Rotate = newItem.Rotate;
-
- if (datItemFields.Contains(DatItemField.FlipX))
- FlipX = newItem.FlipX;
-
- if (datItemFields.Contains(DatItemField.Width))
- Width = newItem.Width;
-
- if (datItemFields.Contains(DatItemField.Height))
- Height = newItem.Height;
-
- if (datItemFields.Contains(DatItemField.Refresh))
- Refresh = newItem.Refresh;
-
- if (datItemFields.Contains(DatItemField.PixClock))
- PixClock = newItem.PixClock;
-
- if (datItemFields.Contains(DatItemField.HTotal))
- HTotal = newItem.HTotal;
-
- if (datItemFields.Contains(DatItemField.HBEnd))
- HBEnd = newItem.HBEnd;
-
- if (datItemFields.Contains(DatItemField.HBStart))
- HBStart = newItem.HBStart;
-
- if (datItemFields.Contains(DatItemField.VTotal))
- VTotal = newItem.VTotal;
-
- if (datItemFields.Contains(DatItemField.VBEnd))
- VBEnd = newItem.VBEnd;
-
- if (datItemFields.Contains(DatItemField.VBStart))
- VBStart = newItem.VBStart;
- }
-
- #endregion
}
}
diff --git a/SabreTools.DatItems/Driver.cs b/SabreTools.DatItems/Driver.cs
index 6fa17404..1588258e 100644
--- a/SabreTools.DatItems/Driver.cs
+++ b/SabreTools.DatItems/Driver.cs
@@ -1,5 +1,4 @@
-using System.Collections.Generic;
-using System.Xml.Serialization;
+using System.Xml.Serialization;
using SabreTools.Core;
using Newtonsoft.Json;
@@ -114,39 +113,5 @@ namespace SabreTools.DatItems
}
#endregion
-
- #region Sorting and Merging
-
- ///
- public override void ReplaceFields(
- DatItem item,
- List datItemFields,
- List machineFields)
- {
- // Replace common fields first
- base.ReplaceFields(item, datItemFields, machineFields);
-
- // If we don't have a Driver to replace from, ignore specific fields
- if (item.ItemType != ItemType.Driver)
- return;
-
- // Cast for easier access
- Driver newItem = item as Driver;
-
- // Replace the fields
- if (datItemFields.Contains(DatItemField.SupportStatus))
- Status = newItem.Status;
-
- if (datItemFields.Contains(DatItemField.EmulationStatus))
- Emulation = newItem.Emulation;
-
- if (datItemFields.Contains(DatItemField.CocktailStatus))
- Cocktail = newItem.Cocktail;
-
- if (datItemFields.Contains(DatItemField.SaveStateStatus))
- SaveState = newItem.SaveState;
- }
-
- #endregion
}
}
diff --git a/SabreTools.DatItems/Extension.cs b/SabreTools.DatItems/Extension.cs
index a6a538b2..09b29b6b 100644
--- a/SabreTools.DatItems/Extension.cs
+++ b/SabreTools.DatItems/Extension.cs
@@ -1,5 +1,4 @@
-using System.Collections.Generic;
-using System.Xml.Serialization;
+using System.Xml.Serialization;
using SabreTools.Core;
using Newtonsoft.Json;
@@ -81,30 +80,5 @@ namespace SabreTools.DatItems
}
#endregion
-
- #region Sorting and Merging
-
- ///
- public override void ReplaceFields(
- DatItem item,
- List datItemFields,
- List machineFields)
- {
- // Replace common fields first
- base.ReplaceFields(item, datItemFields, machineFields);
-
- // If we don't have a Extension to replace from, ignore specific fields
- if (item.ItemType != ItemType.Extension)
- return;
-
- // Cast for easier access
- Extension newItem = item as Extension;
-
- // Replace the fields
- if (datItemFields.Contains(DatItemField.Extension_Name))
- Name = newItem.Name;
- }
-
- #endregion
}
}
diff --git a/SabreTools.DatItems/Feature.cs b/SabreTools.DatItems/Feature.cs
index 096b8247..4184b7ae 100644
--- a/SabreTools.DatItems/Feature.cs
+++ b/SabreTools.DatItems/Feature.cs
@@ -1,5 +1,4 @@
-using System.Collections.Generic;
-using System.Xml.Serialization;
+using System.Xml.Serialization;
using SabreTools.Core;
using Newtonsoft.Json;
@@ -99,36 +98,5 @@ namespace SabreTools.DatItems
}
#endregion
-
- #region Sorting and Merging
-
- ///
- public override void ReplaceFields(
- DatItem item,
- List datItemFields,
- List machineFields)
- {
- // Replace common fields first
- base.ReplaceFields(item, datItemFields, machineFields);
-
- // If we don't have a Feature to replace from, ignore specific fields
- if (item.ItemType != ItemType.Feature)
- return;
-
- // Cast for easier access
- Feature newItem = item as Feature;
-
- // Replace the fields
- if (datItemFields.Contains(DatItemField.FeatureType))
- Type = newItem.Type;
-
- if (datItemFields.Contains(DatItemField.FeatureStatus))
- Status = newItem.Status;
-
- if (datItemFields.Contains(DatItemField.FeatureOverall))
- Overall = newItem.Overall;
- }
-
- #endregion
}
}
diff --git a/SabreTools.DatItems/Info.cs b/SabreTools.DatItems/Info.cs
index 202d305c..d30ab650 100644
--- a/SabreTools.DatItems/Info.cs
+++ b/SabreTools.DatItems/Info.cs
@@ -1,5 +1,4 @@
-using System.Collections.Generic;
-using System.Xml.Serialization;
+using System.Xml.Serialization;
using SabreTools.Core;
using Newtonsoft.Json;
@@ -89,33 +88,5 @@ namespace SabreTools.DatItems
}
#endregion
-
- #region Sorting and Merging
-
- ///
- public override void ReplaceFields(
- DatItem item,
- List datItemFields,
- List machineFields)
- {
- // Replace common fields first
- base.ReplaceFields(item, datItemFields, machineFields);
-
- // If we don't have a Info to replace from, ignore specific fields
- if (item.ItemType != ItemType.Info)
- return;
-
- // Cast for easier access
- Info newItem = item as Info;
-
- // Replace the fields
- if (datItemFields.Contains(DatItemField.Name))
- Name = newItem.Name;
-
- if (datItemFields.Contains(DatItemField.Value))
- Value = newItem.Value;
- }
-
- #endregion
}
}
diff --git a/SabreTools.DatItems/Input.cs b/SabreTools.DatItems/Input.cs
index 950c5c4f..456b7986 100644
--- a/SabreTools.DatItems/Input.cs
+++ b/SabreTools.DatItems/Input.cs
@@ -133,43 +133,5 @@ namespace SabreTools.DatItems
}
#endregion
-
- #region Sorting and Merging
-
- ///
- public override void ReplaceFields(
- DatItem item,
- List datItemFields,
- List machineFields)
- {
- // Replace common fields first
- base.ReplaceFields(item, datItemFields, machineFields);
-
- // If we don't have a Input to replace from, ignore specific fields
- if (item.ItemType != ItemType.Input)
- return;
-
- // Cast for easier access
- Input newItem = item as Input;
-
- // Replace the fields
- if (datItemFields.Contains(DatItemField.Service))
- Service = newItem.Service;
-
- if (datItemFields.Contains(DatItemField.Tilt))
- Tilt = newItem.Tilt;
-
- if (datItemFields.Contains(DatItemField.Players))
- Players = newItem.Players;
-
- if (datItemFields.Contains(DatItemField.Coins))
- Coins = newItem.Coins;
-
- // DatItem_Control_* doesn't make sense here
- // since not every control under the other item
- // can replace every control under this item
- }
-
- #endregion
}
}
diff --git a/SabreTools.DatItems/Instance.cs b/SabreTools.DatItems/Instance.cs
index 4923b25f..994d81a5 100644
--- a/SabreTools.DatItems/Instance.cs
+++ b/SabreTools.DatItems/Instance.cs
@@ -1,5 +1,4 @@
-using System.Collections.Generic;
-using System.Xml.Serialization;
+using System.Xml.Serialization;
using SabreTools.Core;
using Newtonsoft.Json;
@@ -89,33 +88,5 @@ namespace SabreTools.DatItems
}
#endregion
-
- #region Sorting and Merging
-
- ///
- public override void ReplaceFields(
- DatItem item,
- List datItemFields,
- List machineFields)
- {
- // Replace common fields first
- base.ReplaceFields(item, datItemFields, machineFields);
-
- // If we don't have a Instance to replace from, ignore specific fields
- if (item.ItemType != ItemType.Instance)
- return;
-
- // Cast for easier access
- Instance newItem = item as Instance;
-
- // Replace the fields
- if (datItemFields.Contains(DatItemField.Instance_Name))
- Name = newItem.Name;
-
- if (datItemFields.Contains(DatItemField.Instance_BriefName))
- BriefName = newItem.BriefName;
- }
-
- #endregion
}
}
diff --git a/SabreTools.DatItems/Location.cs b/SabreTools.DatItems/Location.cs
index b65f34eb..b7c609dc 100644
--- a/SabreTools.DatItems/Location.cs
+++ b/SabreTools.DatItems/Location.cs
@@ -1,5 +1,4 @@
-using System.Collections.Generic;
-using System.Xml.Serialization;
+using System.Xml.Serialization;
using SabreTools.Core;
using Newtonsoft.Json;
@@ -105,36 +104,5 @@ namespace SabreTools.DatItems
}
#endregion
-
- #region Sorting and Merging
-
- ///
- public override void ReplaceFields(
- DatItem item,
- List datItemFields,
- List machineFields)
- {
- // Replace common fields first
- base.ReplaceFields(item, datItemFields, machineFields);
-
- // If we don't have a Location to replace from, ignore specific fields
- if (item.ItemType != ItemType.Location)
- return;
-
- // Cast for easier access
- Location newItem = item as Location;
-
- // Replace the fields
- if (datItemFields.Contains(DatItemField.Location_Name))
- Name = newItem.Name;
-
- if (datItemFields.Contains(DatItemField.Location_Number))
- Number = newItem.Number;
-
- if (datItemFields.Contains(DatItemField.Location_Inverted))
- Inverted = newItem.Inverted;
- }
-
- #endregion
}
}
diff --git a/SabreTools.DatItems/Media.cs b/SabreTools.DatItems/Media.cs
index 494c83a1..6e166cf9 100644
--- a/SabreTools.DatItems/Media.cs
+++ b/SabreTools.DatItems/Media.cs
@@ -1,5 +1,4 @@
-using System.Collections.Generic;
-using System.Text;
+using System.Text;
using System.Xml.Serialization;
using SabreTools.Core;
@@ -333,51 +332,6 @@ namespace SabreTools.DatItems
return key;
}
- ///
- public override void ReplaceFields(
- DatItem item,
- List datItemFields,
- List machineFields)
- {
- // Replace common fields first
- base.ReplaceFields(item, datItemFields, machineFields);
-
- // If we don't have a Media to replace from, ignore specific fields
- if (item.ItemType != ItemType.Media)
- return;
-
- // Cast for easier access
- Media newItem = item as Media;
-
- // Replace the fields
- if (datItemFields.Contains(DatItemField.Name))
- Name = newItem.Name;
-
- if (datItemFields.Contains(DatItemField.MD5))
- {
- if (string.IsNullOrEmpty(MD5) && !string.IsNullOrEmpty(newItem.MD5))
- MD5 = newItem.MD5;
- }
-
- if (datItemFields.Contains(DatItemField.SHA1))
- {
- if (string.IsNullOrEmpty(SHA1) && !string.IsNullOrEmpty(newItem.SHA1))
- SHA1 = newItem.SHA1;
- }
-
- if (datItemFields.Contains(DatItemField.SHA256))
- {
- if (string.IsNullOrEmpty(SHA256) && !string.IsNullOrEmpty(newItem.SHA256))
- SHA256 = newItem.SHA256;
- }
-
- if (datItemFields.Contains(DatItemField.SpamSum))
- {
- if (string.IsNullOrEmpty(SpamSum) && !string.IsNullOrEmpty(newItem.SpamSum))
- SpamSum = newItem.SpamSum;
- }
- }
-
#endregion
}
}
diff --git a/SabreTools.DatItems/Part.cs b/SabreTools.DatItems/Part.cs
index 8392fb6b..fcb083ad 100644
--- a/SabreTools.DatItems/Part.cs
+++ b/SabreTools.DatItems/Part.cs
@@ -106,37 +106,5 @@ namespace SabreTools.DatItems
}
#endregion
-
- #region Sorting and Merging
-
- ///
- public override void ReplaceFields(
- DatItem item,
- List datItemFields,
- List machineFields)
- {
- // Replace common fields first
- base.ReplaceFields(item, datItemFields, machineFields);
-
- // If we don't have a Part to replace from, ignore specific fields
- if (item.ItemType != ItemType.Part)
- return;
-
- // Cast for easier access
- Part newItem = item as Part;
-
- // Replace the fields
- if (datItemFields.Contains(DatItemField.Part_Name))
- Name = newItem.Name;
-
- if (datItemFields.Contains(DatItemField.Part_Interface))
- Interface = newItem.Interface;
-
- // DatItem_Part_Feature_* doesn't make sense here
- // since not every part feature under the other item
- // can replace every part feature under this item
- }
-
- #endregion
}
}
diff --git a/SabreTools.DatItems/PartFeature.cs b/SabreTools.DatItems/PartFeature.cs
index 1b984ce6..56423e9b 100644
--- a/SabreTools.DatItems/PartFeature.cs
+++ b/SabreTools.DatItems/PartFeature.cs
@@ -1,5 +1,4 @@
-using System.Collections.Generic;
-using System.Xml.Serialization;
+using System.Xml.Serialization;
using SabreTools.Core;
using Newtonsoft.Json;
@@ -89,33 +88,5 @@ namespace SabreTools.DatItems
}
#endregion
-
- #region Sorting and Merging
-
- ///
- public override void ReplaceFields(
- DatItem item,
- List datItemFields,
- List machineFields)
- {
- // Replace common fields first
- base.ReplaceFields(item, datItemFields, machineFields);
-
- // If we don't have a PartFeature to replace from, ignore specific fields
- if (item.ItemType != ItemType.PartFeature)
- return;
-
- // Cast for easier access
- PartFeature newItem = item as PartFeature;
-
- // Replace the fields
- if (datItemFields.Contains(DatItemField.Part_Feature_Name))
- Name = newItem.Name;
-
- if (datItemFields.Contains(DatItemField.Part_Feature_Value))
- Value = newItem.Value;
- }
-
- #endregion
}
}
diff --git a/SabreTools.DatItems/Port.cs b/SabreTools.DatItems/Port.cs
index 4f297576..2266336f 100644
--- a/SabreTools.DatItems/Port.cs
+++ b/SabreTools.DatItems/Port.cs
@@ -94,34 +94,5 @@ namespace SabreTools.DatItems
}
#endregion
-
- #region Sorting and Merging
-
- ///
- public override void ReplaceFields(
- DatItem item,
- List datItemFields,
- List machineFields)
- {
- // Replace common fields first
- base.ReplaceFields(item, datItemFields, machineFields);
-
- // If we don't have a Port to replace from, ignore specific fields
- if (item.ItemType != ItemType.Port)
- return;
-
- // Cast for easier access
- Port newItem = item as Port;
-
- // Replace the fields
- if (datItemFields.Contains(DatItemField.Name))
- Tag = newItem.Tag;
-
- // DatItem_Analog_* doesn't make sense here
- // since not every analog under the other item
- // can replace every analog under this item
- }
-
- #endregion
}
}
diff --git a/SabreTools.DatItems/RamOption.cs b/SabreTools.DatItems/RamOption.cs
index c5a328ca..b0c264d2 100644
--- a/SabreTools.DatItems/RamOption.cs
+++ b/SabreTools.DatItems/RamOption.cs
@@ -1,5 +1,4 @@
-using System.Collections.Generic;
-using System.Xml.Serialization;
+using System.Xml.Serialization;
using SabreTools.Core;
using Newtonsoft.Json;
@@ -100,36 +99,5 @@ namespace SabreTools.DatItems
}
#endregion
-
- #region Sorting and Merging
-
- ///
- public override void ReplaceFields(
- DatItem item,
- List datItemFields,
- List machineFields)
- {
- // Replace common fields first
- base.ReplaceFields(item, datItemFields, machineFields);
-
- // If we don't have a RamOption to replace from, ignore specific fields
- if (item.ItemType != ItemType.RamOption)
- return;
-
- // Cast for easier access
- RamOption newItem = item as RamOption;
-
- // Replace the fields
- if (datItemFields.Contains(DatItemField.Name))
- Name = newItem.Name;
-
- if (datItemFields.Contains(DatItemField.Default))
- Default = newItem.Default;
-
- if (datItemFields.Contains(DatItemField.Content))
- Content = newItem.Content;
- }
-
- #endregion
}
}
diff --git a/SabreTools.DatItems/Release.cs b/SabreTools.DatItems/Release.cs
index 1a73e777..876a9f37 100644
--- a/SabreTools.DatItems/Release.cs
+++ b/SabreTools.DatItems/Release.cs
@@ -1,5 +1,4 @@
-using System.Collections.Generic;
-using System.Xml.Serialization;
+using System.Xml.Serialization;
using SabreTools.Core;
using Newtonsoft.Json;
@@ -124,42 +123,5 @@ namespace SabreTools.DatItems
}
#endregion
-
- #region Sorting and Merging
-
- ///
- public override void ReplaceFields(
- DatItem item,
- List datItemFields,
- List machineFields)
- {
- // Replace common fields first
- base.ReplaceFields(item, datItemFields, machineFields);
-
- // If we don't have a Release to replace from, ignore specific fields
- if (item.ItemType != ItemType.Release)
- return;
-
- // Cast for easier access
- Release newItem = item as Release;
-
- // Replace the fields
- if (datItemFields.Contains(DatItemField.Name))
- Name = newItem.Name;
-
- if (datItemFields.Contains(DatItemField.Region))
- Region = newItem.Region;
-
- if (datItemFields.Contains(DatItemField.Language))
- Language = newItem.Language;
-
- if (datItemFields.Contains(DatItemField.Date))
- Date = newItem.Date;
-
- if (datItemFields.Contains(DatItemField.Default))
- Default = newItem.Default;
- }
-
- #endregion
}
}
diff --git a/SabreTools.DatItems/Rom.cs b/SabreTools.DatItems/Rom.cs
index 46f2e53a..e531e927 100644
--- a/SabreTools.DatItems/Rom.cs
+++ b/SabreTools.DatItems/Rom.cs
@@ -1,5 +1,4 @@
using System;
-using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml.Serialization;
@@ -729,154 +728,6 @@ namespace SabreTools.DatItems
return key;
}
- ///
- public override void ReplaceFields(
- DatItem item,
- List datItemFields,
- List machineFields)
- {
- // Replace common fields first
- base.ReplaceFields(item, datItemFields, machineFields);
-
- // If we don't have a Rom to replace from, ignore specific fields
- if (item.ItemType != ItemType.Rom)
- return;
-
- // Cast for easier access
- Rom newItem = item as Rom;
-
- // Replace the fields
-
- #region Common
-
- if (datItemFields.Contains(DatItemField.Name))
- Name = newItem.Name;
-
- if (datItemFields.Contains(DatItemField.Bios))
- Bios = newItem.Bios;
-
- if (datItemFields.Contains(DatItemField.Size))
- Size = newItem.Size;
-
- if (datItemFields.Contains(DatItemField.CRC))
- {
- if (string.IsNullOrEmpty(CRC) && !string.IsNullOrEmpty(newItem.CRC))
- CRC = newItem.CRC;
- }
-
- if (datItemFields.Contains(DatItemField.MD5))
- {
- if (string.IsNullOrEmpty(MD5) && !string.IsNullOrEmpty(newItem.MD5))
- MD5 = newItem.MD5;
- }
-
-#if NET_FRAMEWORK
- if (datItemFields.Contains(DatItemField.RIPEMD160))
- {
- if (string.IsNullOrEmpty(RIPEMD160) && !string.IsNullOrEmpty(newItem.RIPEMD160))
- RIPEMD160 = newItem.RIPEMD160;
- }
-#endif
-
- if (datItemFields.Contains(DatItemField.SHA1))
- {
- if (string.IsNullOrEmpty(SHA1) && !string.IsNullOrEmpty(newItem.SHA1))
- SHA1 = newItem.SHA1;
- }
-
- if (datItemFields.Contains(DatItemField.SHA256))
- {
- if (string.IsNullOrEmpty(SHA256) && !string.IsNullOrEmpty(newItem.SHA256))
- SHA256 = newItem.SHA256;
- }
-
- if (datItemFields.Contains(DatItemField.SHA384))
- {
- if (string.IsNullOrEmpty(SHA384) && !string.IsNullOrEmpty(newItem.SHA384))
- SHA384 = newItem.SHA384;
- }
-
- if (datItemFields.Contains(DatItemField.SHA512))
- {
- if (string.IsNullOrEmpty(SHA512) && !string.IsNullOrEmpty(newItem.SHA512))
- SHA512 = newItem.SHA512;
- }
-
- if (datItemFields.Contains(DatItemField.SpamSum))
- {
- if (string.IsNullOrEmpty(SpamSum) && !string.IsNullOrEmpty(newItem.SpamSum))
- SpamSum = newItem.SpamSum;
- }
-
- if (datItemFields.Contains(DatItemField.Merge))
- MergeTag = newItem.MergeTag;
-
- if (datItemFields.Contains(DatItemField.Region))
- Region = newItem.Region;
-
- if (datItemFields.Contains(DatItemField.Offset))
- Offset = newItem.Offset;
-
- if (datItemFields.Contains(DatItemField.Date))
- Date = newItem.Date;
-
- if (datItemFields.Contains(DatItemField.Status))
- ItemStatus = newItem.ItemStatus;
-
- if (datItemFields.Contains(DatItemField.Optional))
- Optional = newItem.Optional;
-
- if (datItemFields.Contains(DatItemField.Inverted))
- Inverted = newItem.Inverted;
-
- #endregion
-
- #region AttractMode
-
- if (datItemFields.Contains(DatItemField.AltName))
- AltName = newItem.AltName;
-
- if (datItemFields.Contains(DatItemField.AltTitle))
- AltTitle = newItem.AltTitle;
-
- #endregion
-
- #region OpenMSX
-
- if (datItemFields.Contains(DatItemField.Original))
- Original = newItem.Original;
-
- if (datItemFields.Contains(DatItemField.OpenMSXSubType))
- OpenMSXSubType = newItem.OpenMSXSubType;
-
- if (datItemFields.Contains(DatItemField.OpenMSXType))
- OpenMSXType = newItem.OpenMSXType;
-
- if (datItemFields.Contains(DatItemField.Remark))
- Remark = newItem.Remark;
-
- if (datItemFields.Contains(DatItemField.Boot))
- Boot = newItem.Boot;
-
- #endregion
-
- #region SoftwareList
-
- if (datItemFields.Contains(DatItemField.LoadFlag))
- LoadFlag = newItem.LoadFlag;
-
- if (datItemFields.Contains(DatItemField.Value))
- Value = newItem.Value;
-
- if (DataAreaSpecified && newItem.DataAreaSpecified)
- DataArea.ReplaceFields(newItem.DataArea, datItemFields, machineFields);
-
- if (PartSpecified && newItem.PartSpecified)
- Part.ReplaceFields(newItem.Part, datItemFields, machineFields);
-
- #endregion
- }
-
#endregion
}
}
diff --git a/SabreTools.DatItems/Sample.cs b/SabreTools.DatItems/Sample.cs
index 4f95acc5..44cbac77 100644
--- a/SabreTools.DatItems/Sample.cs
+++ b/SabreTools.DatItems/Sample.cs
@@ -1,5 +1,4 @@
-using System.Collections.Generic;
-using System.Xml.Serialization;
+using System.Xml.Serialization;
using SabreTools.Core;
using Newtonsoft.Json;
@@ -81,30 +80,5 @@ namespace SabreTools.DatItems
}
#endregion
-
- #region Sorting and Merging
-
- ///
- public override void ReplaceFields(
- DatItem item,
- List datItemFields,
- List machineFields)
- {
- // Replace common fields first
- base.ReplaceFields(item, datItemFields, machineFields);
-
- // If we don't have a Sample to replace from, ignore specific fields
- if (item.ItemType != ItemType.Sample)
- return;
-
- // Cast for easier access
- Sample newItem = item as Sample;
-
- // Replace the fields
- if (datItemFields.Contains(DatItemField.Name))
- Name = newItem.Name;
- }
-
- #endregion
}
}
diff --git a/SabreTools.DatItems/Setting.cs b/SabreTools.DatItems/Setting.cs
index 0ff26c2f..203104e2 100644
--- a/SabreTools.DatItems/Setting.cs
+++ b/SabreTools.DatItems/Setting.cs
@@ -126,40 +126,5 @@ namespace SabreTools.DatItems
}
#endregion
-
- #region Sorting and Merging
-
- ///
- public override void ReplaceFields(
- DatItem item,
- List datItemFields,
- List machineFields)
- {
- // Replace common fields first
- base.ReplaceFields(item, datItemFields, machineFields);
-
- // If we don't have a Setting to replace from, ignore specific fields
- if (item.ItemType != ItemType.Setting)
- return;
-
- // Cast for easier access
- Setting newItem = item as Setting;
-
- // Replace the fields
- if (datItemFields.Contains(DatItemField.Setting_Name))
- Name = newItem.Name;
-
- if (datItemFields.Contains(DatItemField.Setting_Value))
- Value = newItem.Value;
-
- if (datItemFields.Contains(DatItemField.Setting_Default))
- Default = newItem.Default;
-
- // DatItem_Condition_* doesn't make sense here
- // since not every condition under the other item
- // can replace every condition under this item
- }
-
- #endregion
}
}
diff --git a/SabreTools.DatItems/SharedFeature.cs b/SabreTools.DatItems/SharedFeature.cs
index 505f5ed8..cbb4cb93 100644
--- a/SabreTools.DatItems/SharedFeature.cs
+++ b/SabreTools.DatItems/SharedFeature.cs
@@ -1,5 +1,4 @@
-using System.Collections.Generic;
-using System.Xml.Serialization;
+using System.Xml.Serialization;
using SabreTools.Core;
using Newtonsoft.Json;
@@ -89,33 +88,5 @@ namespace SabreTools.DatItems
}
#endregion
-
- #region Sorting and Merging
-
- ///
- public override void ReplaceFields(
- DatItem item,
- List datItemFields,
- List machineFields)
- {
- // Replace common fields first
- base.ReplaceFields(item, datItemFields, machineFields);
-
- // If we don't have a SharedFeature to replace from, ignore specific fields
- if (item.ItemType != ItemType.SharedFeature)
- return;
-
- // Cast for easier access
- SharedFeature newItem = item as SharedFeature;
-
- // Replace the fields
- if (datItemFields.Contains(DatItemField.Name))
- Name = newItem.Name;
-
- if (datItemFields.Contains(DatItemField.Value))
- Value = newItem.Value;
- }
-
- #endregion
}
}
diff --git a/SabreTools.DatItems/Slot.cs b/SabreTools.DatItems/Slot.cs
index 7fffa8c3..315c44fc 100644
--- a/SabreTools.DatItems/Slot.cs
+++ b/SabreTools.DatItems/Slot.cs
@@ -105,34 +105,5 @@ namespace SabreTools.DatItems
}
#endregion
-
- #region Sorting and Merging
-
- ///
- public override void ReplaceFields(
- DatItem item,
- List datItemFields,
- List machineFields)
- {
- // Replace common fields first
- base.ReplaceFields(item, datItemFields, machineFields);
-
- // If we don't have a Slot to replace from, ignore specific fields
- if (item.ItemType != ItemType.Slot)
- return;
-
- // Cast for easier access
- Slot newItem = item as Slot;
-
- // Replace the fields
- if (datItemFields.Contains(DatItemField.Name))
- Name = newItem.Name;
-
- // DatItem_SlotOption_* doesn't make sense here
- // since not every slot option under the other item
- // can replace every slot option under this item
- }
-
- #endregion
}
}
diff --git a/SabreTools.DatItems/SlotOption.cs b/SabreTools.DatItems/SlotOption.cs
index a953c243..81a73f60 100644
--- a/SabreTools.DatItems/SlotOption.cs
+++ b/SabreTools.DatItems/SlotOption.cs
@@ -1,5 +1,4 @@
-using System.Collections.Generic;
-using System.Xml.Serialization;
+using System.Xml.Serialization;
using SabreTools.Core;
using Newtonsoft.Json;
@@ -102,36 +101,5 @@ namespace SabreTools.DatItems
}
#endregion
-
- #region Sorting and Merging
-
- ///
- public override void ReplaceFields(
- DatItem item,
- List datItemFields,
- List machineFields)
- {
- // Replace common fields first
- base.ReplaceFields(item, datItemFields, machineFields);
-
- // If we don't have a SlotOption to replace from, ignore specific fields
- if (item.ItemType != ItemType.SlotOption)
- return;
-
- // Cast for easier access
- SlotOption newItem = item as SlotOption;
-
- // Replace the fields
- if (datItemFields.Contains(DatItemField.SlotOption_Name))
- Name = newItem.Name;
-
- if (datItemFields.Contains(DatItemField.SlotOption_DeviceName))
- DeviceName = newItem.DeviceName;
-
- if (datItemFields.Contains(DatItemField.SlotOption_Default))
- Default = newItem.Default;
- }
-
- #endregion
}
}
diff --git a/SabreTools.DatItems/SoftwareList.cs b/SabreTools.DatItems/SoftwareList.cs
index 0f993874..9bd9104d 100644
--- a/SabreTools.DatItems/SoftwareList.cs
+++ b/SabreTools.DatItems/SoftwareList.cs
@@ -1,9 +1,6 @@
-using System.Collections.Generic;
-using System.Linq;
-using System.Xml.Serialization;
+using System.Xml.Serialization;
using SabreTools.Core;
-using SabreTools.Core.Tools;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
@@ -106,36 +103,5 @@ namespace SabreTools.DatItems
}
#endregion
-
- #region Sorting and Merging
-
- ///
- public override void ReplaceFields(
- DatItem item,
- List datItemFields,
- List machineFields)
- {
- // Replace common fields first
- base.ReplaceFields(item, datItemFields, machineFields);
-
- // If we don't have a SoftwareList to replace from, ignore specific fields
- if (item.ItemType != ItemType.SoftwareList)
- return;
-
- // Cast for easier access
- SoftwareList newItem = item as SoftwareList;
-
- // Replace the fields
- if (datItemFields.Contains(DatItemField.Name))
- Name = newItem.Name;
-
- if (datItemFields.Contains(DatItemField.SoftwareListStatus))
- Status = newItem.Status;
-
- if (datItemFields.Contains(DatItemField.Filter))
- Filter = newItem.Filter;
- }
-
- #endregion
}
}
diff --git a/SabreTools.DatItems/Sound.cs b/SabreTools.DatItems/Sound.cs
index 048a1fdb..98fbf7cd 100644
--- a/SabreTools.DatItems/Sound.cs
+++ b/SabreTools.DatItems/Sound.cs
@@ -1,5 +1,4 @@
-using System.Collections.Generic;
-using System.Xml.Serialization;
+using System.Xml.Serialization;
using SabreTools.Core;
using Newtonsoft.Json;
@@ -73,30 +72,5 @@ namespace SabreTools.DatItems
}
#endregion
-
- #region Sorting and Merging
-
- ///
- public override void ReplaceFields(
- DatItem item,
- List datItemFields,
- List machineFields)
- {
- // Replace common fields first
- base.ReplaceFields(item, datItemFields, machineFields);
-
- // If we don't have a Sound to replace from, ignore specific fields
- if (item.ItemType != ItemType.Sound)
- return;
-
- // Cast for easier access
- Sound newItem = item as Sound;
-
- // Replace the fields
- if (datItemFields.Contains(DatItemField.Channels))
- Channels = newItem.Channels;
- }
-
- #endregion
}
}
diff --git a/SabreTools.DatTools/DatFileTool.cs b/SabreTools.DatTools/DatFileTool.cs
index 7c2c8c52..b6fff246 100644
--- a/SabreTools.DatTools/DatFileTool.cs
+++ b/SabreTools.DatTools/DatFileTool.cs
@@ -60,7 +60,7 @@ namespace SabreTools.DatTools
// Replace fields from the first duplicate, if we have one
if (dupes.Count > 0)
- newDatItem.ReplaceFields(dupes.First(), datItemFields, null);
+ DatItemTool.ReplaceFields(newDatItem, dupes.First(), datItemFields);
newDatItems.Add(newDatItem);
}
diff --git a/SabreTools.DatTools/DatFromDir.cs b/SabreTools.DatTools/DatFromDir.cs
index 3480e8a9..cbd2c497 100644
--- a/SabreTools.DatTools/DatFromDir.cs
+++ b/SabreTools.DatTools/DatFromDir.cs
@@ -434,7 +434,7 @@ namespace SabreTools.DatTools
}
// Set the item name back
- DatItemTool.SetFields(datItem, new Dictionary { [DatItemField.Name] = itemName });
+ datItem.SetName(itemName);
}
}
}
\ No newline at end of file