diff --git a/SabreTools.Data.Extensions/MetadataExtensions.cs b/SabreTools.Data.Extensions/MetadataExtensions.cs
index c6ba3fa1..bf55a13f 100644
--- a/SabreTools.Data.Extensions/MetadataExtensions.cs
+++ b/SabreTools.Data.Extensions/MetadataExtensions.cs
@@ -140,7 +140,7 @@ namespace SabreTools.Data.Extensions
/// Deep clone a DictionaryBase object
///
/// TODO: Move this to Clone methods in each file when keys go away entirely
- public static DictionaryBase? Clone(this DictionaryBase self)
+ public static DictionaryBase? DeepClone(this DictionaryBase self)
{
// If construction failed, we can't do anything
if (Activator.CreateInstance(self.GetType()) is not DictionaryBase clone)
@@ -365,12 +365,12 @@ namespace SabreTools.Data.Extensions
bool or long or double or string => value,
// DictionaryBase types
- DictionaryBase db => db.Clone(),
+ DictionaryBase db => db.DeepClone(),
// Enumerable types
byte[] bytArr => bytArr.Clone(),
string[] strArr => strArr.Clone(),
- DictionaryBase[] dbArr => Array.ConvertAll(dbArr, Clone),
+ DictionaryBase[] dbArr => Array.ConvertAll(dbArr, DeepClone),
ICloneable[] clArr => Array.ConvertAll(clArr, cl => cl.Clone()),
// Everything else just copies
diff --git a/SabreTools.Metadata.DatFiles/DatHeader.cs b/SabreTools.Metadata.DatFiles/DatHeader.cs
index 0002b131..0a42f5ab 100644
--- a/SabreTools.Metadata.DatFiles/DatHeader.cs
+++ b/SabreTools.Metadata.DatFiles/DatHeader.cs
@@ -192,7 +192,7 @@ namespace SabreTools.Metadata.DatFiles
///
public Data.Models.Metadata.Header GetInternalClone()
{
- var header = (_internal.Clone() as Data.Models.Metadata.Header)!;
+ var header = (_internal.DeepClone() as Data.Models.Metadata.Header)!;
// Convert subheader values
if (CanOpenSpecified)
diff --git a/SabreTools.Metadata.DatItems.Test/DatItemTests.cs b/SabreTools.Metadata.DatItems.Test/DatItemTests.cs
index 85559259..cd63bf0d 100644
--- a/SabreTools.Metadata.DatItems.Test/DatItemTests.cs
+++ b/SabreTools.Metadata.DatItems.Test/DatItemTests.cs
@@ -32,7 +32,7 @@ namespace SabreTools.Metadata.DatItems.Test
///
public override object Clone() => new TestDatItem()
{
- _internal = _internal.Clone() as TestDatItemModel ?? []
+ _internal = _internal.DeepClone() as TestDatItemModel ?? []
};
///
diff --git a/SabreTools.Metadata.DatItems/DatItemT.cs b/SabreTools.Metadata.DatItems/DatItemT.cs
index f76bfe8f..79354958 100644
--- a/SabreTools.Metadata.DatItems/DatItemT.cs
+++ b/SabreTools.Metadata.DatItems/DatItemT.cs
@@ -45,7 +45,7 @@ namespace SabreTools.Metadata.DatItems
///
/// Get a clone of the current internal model
///
- public virtual T GetInternalClone() => (_internal.Clone() as T)!;
+ public virtual T GetInternalClone() => (_internal.DeepClone() as T)!;
#endregion
diff --git a/SabreTools.Metadata.DatItems/Formats/Adjuster.cs b/SabreTools.Metadata.DatItems/Formats/Adjuster.cs
index c602e6df..d6b81041 100644
--- a/SabreTools.Metadata.DatItems/Formats/Adjuster.cs
+++ b/SabreTools.Metadata.DatItems/Formats/Adjuster.cs
@@ -59,7 +59,7 @@ namespace SabreTools.Metadata.DatItems.Formats
#region Cloning Methods
///
- public override object Clone() => new Adjuster(_internal.Clone() as Data.Models.Metadata.Adjuster ?? []);
+ public override object Clone() => new Adjuster(_internal.DeepClone() as Data.Models.Metadata.Adjuster ?? []);
///
public override Data.Models.Metadata.Adjuster GetInternalClone()
diff --git a/SabreTools.Metadata.DatItems/Formats/Analog.cs b/SabreTools.Metadata.DatItems/Formats/Analog.cs
index 0cdaa4d1..7707b5a0 100644
--- a/SabreTools.Metadata.DatItems/Formats/Analog.cs
+++ b/SabreTools.Metadata.DatItems/Formats/Analog.cs
@@ -37,7 +37,7 @@ namespace SabreTools.Metadata.DatItems.Formats
#region Cloning Methods
///
- public override object Clone() => new Analog(_internal.Clone() as Data.Models.Metadata.Analog ?? []);
+ public override object Clone() => new Analog(_internal.DeepClone() as Data.Models.Metadata.Analog ?? []);
#endregion
}
diff --git a/SabreTools.Metadata.DatItems/Formats/Archive.cs b/SabreTools.Metadata.DatItems/Formats/Archive.cs
index 4c70993c..ed358eb9 100644
--- a/SabreTools.Metadata.DatItems/Formats/Archive.cs
+++ b/SabreTools.Metadata.DatItems/Formats/Archive.cs
@@ -37,7 +37,7 @@ namespace SabreTools.Metadata.DatItems.Formats
#region Cloning Methods
///
- public override object Clone() => new Archive(_internal.Clone() as Data.Models.Metadata.Archive ?? []);
+ public override object Clone() => new Archive(_internal.DeepClone() as Data.Models.Metadata.Archive ?? []);
#endregion
}
diff --git a/SabreTools.Metadata.DatItems/Formats/BiosSet.cs b/SabreTools.Metadata.DatItems/Formats/BiosSet.cs
index 0567e8f8..12403a17 100644
--- a/SabreTools.Metadata.DatItems/Formats/BiosSet.cs
+++ b/SabreTools.Metadata.DatItems/Formats/BiosSet.cs
@@ -49,7 +49,7 @@ namespace SabreTools.Metadata.DatItems.Formats
#region Cloning Methods
///
- public override object Clone() => new BiosSet(_internal.Clone() as Data.Models.Metadata.BiosSet ?? []);
+ public override object Clone() => new BiosSet(_internal.DeepClone() as Data.Models.Metadata.BiosSet ?? []);
#endregion
}
diff --git a/SabreTools.Metadata.DatItems/Formats/Blank.cs b/SabreTools.Metadata.DatItems/Formats/Blank.cs
index abc7f6b7..a386f590 100644
--- a/SabreTools.Metadata.DatItems/Formats/Blank.cs
+++ b/SabreTools.Metadata.DatItems/Formats/Blank.cs
@@ -27,7 +27,7 @@ namespace SabreTools.Metadata.DatItems.Formats
#region Cloning Methods
///
- public override object Clone() => new Blank(_internal.Clone() as Data.Models.Metadata.Blank ?? []);
+ public override object Clone() => new Blank(_internal.DeepClone() as Data.Models.Metadata.Blank ?? []);
#endregion
}
diff --git a/SabreTools.Metadata.DatItems/Formats/Chip.cs b/SabreTools.Metadata.DatItems/Formats/Chip.cs
index ea5f1d0d..7b3a26cf 100644
--- a/SabreTools.Metadata.DatItems/Formats/Chip.cs
+++ b/SabreTools.Metadata.DatItems/Formats/Chip.cs
@@ -55,7 +55,7 @@ namespace SabreTools.Metadata.DatItems.Formats
#region Cloning Methods
///
- public override object Clone() => new Chip(_internal.Clone() as Data.Models.Metadata.Chip ?? []);
+ public override object Clone() => new Chip(_internal.DeepClone() as Data.Models.Metadata.Chip ?? []);
#endregion
}
diff --git a/SabreTools.Metadata.DatItems/Formats/Condition.cs b/SabreTools.Metadata.DatItems/Formats/Condition.cs
index abcc6418..f730e526 100644
--- a/SabreTools.Metadata.DatItems/Formats/Condition.cs
+++ b/SabreTools.Metadata.DatItems/Formats/Condition.cs
@@ -55,7 +55,7 @@ namespace SabreTools.Metadata.DatItems.Formats
#region Cloning Methods
///
- public override object Clone() => new Condition(_internal.Clone() as Data.Models.Metadata.Condition ?? []);
+ public override object Clone() => new Condition(_internal.DeepClone() as Data.Models.Metadata.Condition ?? []);
#endregion
}
diff --git a/SabreTools.Metadata.DatItems/Formats/ConfLocation.cs b/SabreTools.Metadata.DatItems/Formats/ConfLocation.cs
index 91862a84..4a75faff 100644
--- a/SabreTools.Metadata.DatItems/Formats/ConfLocation.cs
+++ b/SabreTools.Metadata.DatItems/Formats/ConfLocation.cs
@@ -43,7 +43,7 @@ namespace SabreTools.Metadata.DatItems.Formats
#region Cloning Methods
///
- public override object Clone() => new ConfLocation(_internal.Clone() as Data.Models.Metadata.ConfLocation ?? []);
+ public override object Clone() => new ConfLocation(_internal.DeepClone() as Data.Models.Metadata.ConfLocation ?? []);
#endregion
}
diff --git a/SabreTools.Metadata.DatItems/Formats/ConfSetting.cs b/SabreTools.Metadata.DatItems/Formats/ConfSetting.cs
index db6b7d28..cb15271b 100644
--- a/SabreTools.Metadata.DatItems/Formats/ConfSetting.cs
+++ b/SabreTools.Metadata.DatItems/Formats/ConfSetting.cs
@@ -65,7 +65,7 @@ namespace SabreTools.Metadata.DatItems.Formats
#region Cloning Methods
///
- public override object Clone() => new ConfSetting(_internal.Clone() as Data.Models.Metadata.ConfSetting ?? []);
+ public override object Clone() => new ConfSetting(_internal.DeepClone() as Data.Models.Metadata.ConfSetting ?? []);
///
public override Data.Models.Metadata.ConfSetting GetInternalClone()
diff --git a/SabreTools.Metadata.DatItems/Formats/Configuration.cs b/SabreTools.Metadata.DatItems/Formats/Configuration.cs
index 7c2cdd23..66d28ed9 100644
--- a/SabreTools.Metadata.DatItems/Formats/Configuration.cs
+++ b/SabreTools.Metadata.DatItems/Formats/Configuration.cs
@@ -100,7 +100,7 @@ namespace SabreTools.Metadata.DatItems.Formats
#region Cloning Methods
///
- public override object Clone() => new Configuration(_internal.Clone() as Data.Models.Metadata.Configuration ?? []);
+ public override object Clone() => new Configuration(_internal.DeepClone() as Data.Models.Metadata.Configuration ?? []);
///
public override Data.Models.Metadata.Configuration GetInternalClone()
diff --git a/SabreTools.Metadata.DatItems/Formats/Control.cs b/SabreTools.Metadata.DatItems/Formats/Control.cs
index b4eb740e..2e8128c2 100644
--- a/SabreTools.Metadata.DatItems/Formats/Control.cs
+++ b/SabreTools.Metadata.DatItems/Formats/Control.cs
@@ -73,7 +73,7 @@ namespace SabreTools.Metadata.DatItems.Formats
#region Cloning Methods
///
- public override object Clone() => new Control(_internal.Clone() as Data.Models.Metadata.Control ?? []);
+ public override object Clone() => new Control(_internal.DeepClone() as Data.Models.Metadata.Control ?? []);
#endregion
}
diff --git a/SabreTools.Metadata.DatItems/Formats/DataArea.cs b/SabreTools.Metadata.DatItems/Formats/DataArea.cs
index ff09945b..bca04814 100644
--- a/SabreTools.Metadata.DatItems/Formats/DataArea.cs
+++ b/SabreTools.Metadata.DatItems/Formats/DataArea.cs
@@ -54,7 +54,7 @@ namespace SabreTools.Metadata.DatItems.Formats
#region Cloning Methods
///
- public override object Clone() => new DataArea(_internal.Clone() as Data.Models.Metadata.DataArea ?? []);
+ public override object Clone() => new DataArea(_internal.DeepClone() as Data.Models.Metadata.DataArea ?? []);
#endregion
}
diff --git a/SabreTools.Metadata.DatItems/Formats/Device.cs b/SabreTools.Metadata.DatItems/Formats/Device.cs
index cba73862..726b54b1 100644
--- a/SabreTools.Metadata.DatItems/Formats/Device.cs
+++ b/SabreTools.Metadata.DatItems/Formats/Device.cs
@@ -95,7 +95,7 @@ namespace SabreTools.Metadata.DatItems.Formats
#region Cloning Methods
///
- public override object Clone() => new Device(_internal.Clone() as Data.Models.Metadata.Device ?? []);
+ public override object Clone() => new Device(_internal.DeepClone() as Data.Models.Metadata.Device ?? []);
///
public override Data.Models.Metadata.Device GetInternalClone()
diff --git a/SabreTools.Metadata.DatItems/Formats/DeviceRef.cs b/SabreTools.Metadata.DatItems/Formats/DeviceRef.cs
index b0dc6ace..eef43874 100644
--- a/SabreTools.Metadata.DatItems/Formats/DeviceRef.cs
+++ b/SabreTools.Metadata.DatItems/Formats/DeviceRef.cs
@@ -37,7 +37,7 @@ namespace SabreTools.Metadata.DatItems.Formats
#region Cloning Methods
///
- public override object Clone() => new DeviceRef(_internal.Clone() as Data.Models.Metadata.DeviceRef ?? []);
+ public override object Clone() => new DeviceRef(_internal.DeepClone() as Data.Models.Metadata.DeviceRef ?? []);
#endregion
}
diff --git a/SabreTools.Metadata.DatItems/Formats/DipLocation.cs b/SabreTools.Metadata.DatItems/Formats/DipLocation.cs
index 5b044e93..f56cff1b 100644
--- a/SabreTools.Metadata.DatItems/Formats/DipLocation.cs
+++ b/SabreTools.Metadata.DatItems/Formats/DipLocation.cs
@@ -43,7 +43,7 @@ namespace SabreTools.Metadata.DatItems.Formats
#region Cloning Methods
///
- public override object Clone() => new DipLocation(_internal.Clone() as Data.Models.Metadata.DipLocation ?? []);
+ public override object Clone() => new DipLocation(_internal.DeepClone() as Data.Models.Metadata.DipLocation ?? []);
#endregion
}
diff --git a/SabreTools.Metadata.DatItems/Formats/DipSwitch.cs b/SabreTools.Metadata.DatItems/Formats/DipSwitch.cs
index d6b2924d..1cc7b99e 100644
--- a/SabreTools.Metadata.DatItems/Formats/DipSwitch.cs
+++ b/SabreTools.Metadata.DatItems/Formats/DipSwitch.cs
@@ -128,7 +128,7 @@ namespace SabreTools.Metadata.DatItems.Formats
#region Cloning Methods
///
- public override object Clone() => new DipSwitch(_internal.Clone() as Data.Models.Metadata.DipSwitch ?? []);
+ public override object Clone() => new DipSwitch(_internal.DeepClone() as Data.Models.Metadata.DipSwitch ?? []);
///
public override Data.Models.Metadata.DipSwitch GetInternalClone()
diff --git a/SabreTools.Metadata.DatItems/Formats/DipValue.cs b/SabreTools.Metadata.DatItems/Formats/DipValue.cs
index e207ed2e..b22e7cad 100644
--- a/SabreTools.Metadata.DatItems/Formats/DipValue.cs
+++ b/SabreTools.Metadata.DatItems/Formats/DipValue.cs
@@ -65,7 +65,7 @@ namespace SabreTools.Metadata.DatItems.Formats
#region Cloning Methods
///
- public override object Clone() => new DipValue(_internal.Clone() as Data.Models.Metadata.DipValue ?? []);
+ public override object Clone() => new DipValue(_internal.DeepClone() as Data.Models.Metadata.DipValue ?? []);
///
public override Data.Models.Metadata.DipValue GetInternalClone()
diff --git a/SabreTools.Metadata.DatItems/Formats/Disk.cs b/SabreTools.Metadata.DatItems/Formats/Disk.cs
index 0af6c769..c3ddb732 100644
--- a/SabreTools.Metadata.DatItems/Formats/Disk.cs
+++ b/SabreTools.Metadata.DatItems/Formats/Disk.cs
@@ -109,7 +109,7 @@ namespace SabreTools.Metadata.DatItems.Formats
#region Cloning Methods
///
- public override object Clone() => new Disk(_internal.Clone() as Data.Models.Metadata.Disk ?? []);
+ public override object Clone() => new Disk(_internal.DeepClone() as Data.Models.Metadata.Disk ?? []);
///
/// Convert a disk to the closest Rom approximation
diff --git a/SabreTools.Metadata.DatItems/Formats/DiskArea.cs b/SabreTools.Metadata.DatItems/Formats/DiskArea.cs
index 326e9ca4..e804e0f7 100644
--- a/SabreTools.Metadata.DatItems/Formats/DiskArea.cs
+++ b/SabreTools.Metadata.DatItems/Formats/DiskArea.cs
@@ -38,7 +38,7 @@ namespace SabreTools.Metadata.DatItems.Formats
#region Cloning Methods
///
- public override object Clone() => new DiskArea(_internal.Clone() as Data.Models.Metadata.DiskArea ?? []);
+ public override object Clone() => new DiskArea(_internal.DeepClone() as Data.Models.Metadata.DiskArea ?? []);
#endregion
}
diff --git a/SabreTools.Metadata.DatItems/Formats/Display.cs b/SabreTools.Metadata.DatItems/Formats/Display.cs
index d3b29c67..de1e3f89 100644
--- a/SabreTools.Metadata.DatItems/Formats/Display.cs
+++ b/SabreTools.Metadata.DatItems/Formats/Display.cs
@@ -147,7 +147,7 @@ namespace SabreTools.Metadata.DatItems.Formats
#region Cloning Methods
///
- public override object Clone() => new Display(_internal.Clone() as Data.Models.Metadata.Display ?? []);
+ public override object Clone() => new Display(_internal.DeepClone() as Data.Models.Metadata.Display ?? []);
#endregion
}
diff --git a/SabreTools.Metadata.DatItems/Formats/Driver.cs b/SabreTools.Metadata.DatItems/Formats/Driver.cs
index 1756da86..9c862f65 100644
--- a/SabreTools.Metadata.DatItems/Formats/Driver.cs
+++ b/SabreTools.Metadata.DatItems/Formats/Driver.cs
@@ -103,7 +103,7 @@ namespace SabreTools.Metadata.DatItems.Formats
#region Cloning Methods
///
- public override object Clone() => new Driver(_internal.Clone() as Data.Models.Metadata.Driver ?? []);
+ public override object Clone() => new Driver(_internal.DeepClone() as Data.Models.Metadata.Driver ?? []);
#endregion
}
diff --git a/SabreTools.Metadata.DatItems/Formats/Extension.cs b/SabreTools.Metadata.DatItems/Formats/Extension.cs
index 47232544..a66c0b4b 100644
--- a/SabreTools.Metadata.DatItems/Formats/Extension.cs
+++ b/SabreTools.Metadata.DatItems/Formats/Extension.cs
@@ -37,7 +37,7 @@ namespace SabreTools.Metadata.DatItems.Formats
#region Cloning Methods
///
- public override object Clone() => new Extension(_internal.Clone() as Data.Models.Metadata.Extension ?? []);
+ public override object Clone() => new Extension(_internal.DeepClone() as Data.Models.Metadata.Extension ?? []);
#endregion
}
diff --git a/SabreTools.Metadata.DatItems/Formats/Feature.cs b/SabreTools.Metadata.DatItems/Formats/Feature.cs
index e85d8a24..a7e43bfd 100644
--- a/SabreTools.Metadata.DatItems/Formats/Feature.cs
+++ b/SabreTools.Metadata.DatItems/Formats/Feature.cs
@@ -61,7 +61,7 @@ namespace SabreTools.Metadata.DatItems.Formats
#region Cloning Methods
///
- public override object Clone() => new Feature(_internal.Clone() as Data.Models.Metadata.Feature ?? []);
+ public override object Clone() => new Feature(_internal.DeepClone() as Data.Models.Metadata.Feature ?? []);
#endregion
}
diff --git a/SabreTools.Metadata.DatItems/Formats/Info.cs b/SabreTools.Metadata.DatItems/Formats/Info.cs
index df8bd583..64546651 100644
--- a/SabreTools.Metadata.DatItems/Formats/Info.cs
+++ b/SabreTools.Metadata.DatItems/Formats/Info.cs
@@ -43,7 +43,7 @@ namespace SabreTools.Metadata.DatItems.Formats
#region Cloning Methods
///
- public override object Clone() => new Info(_internal.Clone() as Data.Models.Metadata.Info ?? []);
+ public override object Clone() => new Info(_internal.DeepClone() as Data.Models.Metadata.Info ?? []);
#endregion
}
diff --git a/SabreTools.Metadata.DatItems/Formats/Input.cs b/SabreTools.Metadata.DatItems/Formats/Input.cs
index de343b4f..662d90f8 100644
--- a/SabreTools.Metadata.DatItems/Formats/Input.cs
+++ b/SabreTools.Metadata.DatItems/Formats/Input.cs
@@ -76,7 +76,7 @@ namespace SabreTools.Metadata.DatItems.Formats
#region Cloning Methods
///
- public override object Clone() => new Input(_internal.Clone() as Data.Models.Metadata.Input ?? []);
+ public override object Clone() => new Input(_internal.DeepClone() as Data.Models.Metadata.Input ?? []);
///
public override Data.Models.Metadata.Input GetInternalClone()
diff --git a/SabreTools.Metadata.DatItems/Formats/Instance.cs b/SabreTools.Metadata.DatItems/Formats/Instance.cs
index 873ed79a..33798be1 100644
--- a/SabreTools.Metadata.DatItems/Formats/Instance.cs
+++ b/SabreTools.Metadata.DatItems/Formats/Instance.cs
@@ -43,7 +43,7 @@ namespace SabreTools.Metadata.DatItems.Formats
#region Cloning Methods
///
- public override object Clone() => new Instance(_internal.Clone() as Data.Models.Metadata.Instance ?? []);
+ public override object Clone() => new Instance(_internal.DeepClone() as Data.Models.Metadata.Instance ?? []);
#endregion
}
diff --git a/SabreTools.Metadata.DatItems/Formats/Media.cs b/SabreTools.Metadata.DatItems/Formats/Media.cs
index d45ac675..9435426f 100644
--- a/SabreTools.Metadata.DatItems/Formats/Media.cs
+++ b/SabreTools.Metadata.DatItems/Formats/Media.cs
@@ -57,7 +57,7 @@ namespace SabreTools.Metadata.DatItems.Formats
#region Cloning Methods
///
- public override object Clone() => new Media(_internal.Clone() as Data.Models.Metadata.Media ?? []);
+ public override object Clone() => new Media(_internal.DeepClone() as Data.Models.Metadata.Media ?? []);
///
/// Convert a media to the closest Rom approximation
diff --git a/SabreTools.Metadata.DatItems/Formats/Part.cs b/SabreTools.Metadata.DatItems/Formats/Part.cs
index ef2151fe..8474612d 100644
--- a/SabreTools.Metadata.DatItems/Formats/Part.cs
+++ b/SabreTools.Metadata.DatItems/Formats/Part.cs
@@ -54,7 +54,7 @@ namespace SabreTools.Metadata.DatItems.Formats
#region Cloning Methods
///
- public override object Clone() => new Part(_internal.Clone() as Data.Models.Metadata.Part ?? []);
+ public override object Clone() => new Part(_internal.DeepClone() as Data.Models.Metadata.Part ?? []);
#endregion
}
diff --git a/SabreTools.Metadata.DatItems/Formats/PartFeature.cs b/SabreTools.Metadata.DatItems/Formats/PartFeature.cs
index b51dd85c..8af708d3 100644
--- a/SabreTools.Metadata.DatItems/Formats/PartFeature.cs
+++ b/SabreTools.Metadata.DatItems/Formats/PartFeature.cs
@@ -74,7 +74,7 @@ namespace SabreTools.Metadata.DatItems.Formats
#region Cloning Methods
///
- public override object Clone() => new PartFeature(_internal.Clone() as Data.Models.Metadata.Feature ?? []);
+ public override object Clone() => new PartFeature(_internal.DeepClone() as Data.Models.Metadata.Feature ?? []);
#endregion
}
diff --git a/SabreTools.Metadata.DatItems/Formats/Port.cs b/SabreTools.Metadata.DatItems/Formats/Port.cs
index fb0f83e4..fcbe2fde 100644
--- a/SabreTools.Metadata.DatItems/Formats/Port.cs
+++ b/SabreTools.Metadata.DatItems/Formats/Port.cs
@@ -57,7 +57,7 @@ namespace SabreTools.Metadata.DatItems.Formats
#region Cloning Methods
///
- public override object Clone() => new Port(_internal.Clone() as Data.Models.Metadata.Port ?? []);
+ public override object Clone() => new Port(_internal.DeepClone() as Data.Models.Metadata.Port ?? []);
///
public override Data.Models.Metadata.Port GetInternalClone()
diff --git a/SabreTools.Metadata.DatItems/Formats/RamOption.cs b/SabreTools.Metadata.DatItems/Formats/RamOption.cs
index 09de128b..a0e8c761 100644
--- a/SabreTools.Metadata.DatItems/Formats/RamOption.cs
+++ b/SabreTools.Metadata.DatItems/Formats/RamOption.cs
@@ -49,7 +49,7 @@ namespace SabreTools.Metadata.DatItems.Formats
#region Cloning Methods
///
- public override object Clone() => new RamOption(_internal.Clone() as Data.Models.Metadata.RamOption ?? []);
+ public override object Clone() => new RamOption(_internal.DeepClone() as Data.Models.Metadata.RamOption ?? []);
#endregion
}
diff --git a/SabreTools.Metadata.DatItems/Formats/Release.cs b/SabreTools.Metadata.DatItems/Formats/Release.cs
index 738fcc72..40ed9d3f 100644
--- a/SabreTools.Metadata.DatItems/Formats/Release.cs
+++ b/SabreTools.Metadata.DatItems/Formats/Release.cs
@@ -43,7 +43,7 @@ namespace SabreTools.Metadata.DatItems.Formats
#region Cloning Methods
///
- public override object Clone() => new Release(_internal.Clone() as Data.Models.Metadata.Release ?? []);
+ public override object Clone() => new Release(_internal.DeepClone() as Data.Models.Metadata.Release ?? []);
#endregion
}
diff --git a/SabreTools.Metadata.DatItems/Formats/ReleaseDetails.cs b/SabreTools.Metadata.DatItems/Formats/ReleaseDetails.cs
index 16b8f80c..fb8da182 100644
--- a/SabreTools.Metadata.DatItems/Formats/ReleaseDetails.cs
+++ b/SabreTools.Metadata.DatItems/Formats/ReleaseDetails.cs
@@ -26,7 +26,7 @@ namespace SabreTools.Metadata.DatItems.Formats
#region Cloning Methods
///
- public override object Clone() => new ReleaseDetails(_internal.Clone() as Data.Models.Metadata.ReleaseDetails ?? []);
+ public override object Clone() => new ReleaseDetails(_internal.DeepClone() as Data.Models.Metadata.ReleaseDetails ?? []);
#endregion
}
diff --git a/SabreTools.Metadata.DatItems/Formats/Rom.cs b/SabreTools.Metadata.DatItems/Formats/Rom.cs
index ca1e56df..3c15015f 100644
--- a/SabreTools.Metadata.DatItems/Formats/Rom.cs
+++ b/SabreTools.Metadata.DatItems/Formats/Rom.cs
@@ -397,7 +397,7 @@ namespace SabreTools.Metadata.DatItems.Formats
#region Cloning Methods
///
- public override object Clone() => new Rom(_internal.Clone() as Data.Models.Metadata.Rom ?? []);
+ public override object Clone() => new Rom(_internal.DeepClone() as Data.Models.Metadata.Rom ?? []);
#endregion
diff --git a/SabreTools.Metadata.DatItems/Formats/Sample.cs b/SabreTools.Metadata.DatItems/Formats/Sample.cs
index 1aadb4eb..70bf04fd 100644
--- a/SabreTools.Metadata.DatItems/Formats/Sample.cs
+++ b/SabreTools.Metadata.DatItems/Formats/Sample.cs
@@ -37,7 +37,7 @@ namespace SabreTools.Metadata.DatItems.Formats
#region Cloning Methods
///
- public override object Clone() => new Sample(_internal.Clone() as Data.Models.Metadata.Sample ?? []);
+ public override object Clone() => new Sample(_internal.DeepClone() as Data.Models.Metadata.Sample ?? []);
#endregion
}
diff --git a/SabreTools.Metadata.DatItems/Formats/Serials.cs b/SabreTools.Metadata.DatItems/Formats/Serials.cs
index 8d8a8a4a..ddc47806 100644
--- a/SabreTools.Metadata.DatItems/Formats/Serials.cs
+++ b/SabreTools.Metadata.DatItems/Formats/Serials.cs
@@ -27,7 +27,7 @@ namespace SabreTools.Metadata.DatItems.Formats
#region Cloning Methods
///
- public override object Clone() => new Serials(_internal.Clone() as Data.Models.Metadata.Serials ?? []);
+ public override object Clone() => new Serials(_internal.DeepClone() as Data.Models.Metadata.Serials ?? []);
#endregion
}
diff --git a/SabreTools.Metadata.DatItems/Formats/SharedFeat.cs b/SabreTools.Metadata.DatItems/Formats/SharedFeat.cs
index ab7379c0..33bc294e 100644
--- a/SabreTools.Metadata.DatItems/Formats/SharedFeat.cs
+++ b/SabreTools.Metadata.DatItems/Formats/SharedFeat.cs
@@ -43,7 +43,7 @@ namespace SabreTools.Metadata.DatItems.Formats
#region Cloning Methods
///
- public override object Clone() => new SharedFeat(_internal.Clone() as Data.Models.Metadata.SharedFeat ?? []);
+ public override object Clone() => new SharedFeat(_internal.DeepClone() as Data.Models.Metadata.SharedFeat ?? []);
#endregion
}
diff --git a/SabreTools.Metadata.DatItems/Formats/Slot.cs b/SabreTools.Metadata.DatItems/Formats/Slot.cs
index 48c5b1f3..43223404 100644
--- a/SabreTools.Metadata.DatItems/Formats/Slot.cs
+++ b/SabreTools.Metadata.DatItems/Formats/Slot.cs
@@ -57,7 +57,7 @@ namespace SabreTools.Metadata.DatItems.Formats
#region Cloning Methods
///
- public override object Clone() => new Slot(_internal.Clone() as Data.Models.Metadata.Slot ?? []);
+ public override object Clone() => new Slot(_internal.DeepClone() as Data.Models.Metadata.Slot ?? []);
///
public override Data.Models.Metadata.Slot GetInternalClone()
diff --git a/SabreTools.Metadata.DatItems/Formats/SlotOption.cs b/SabreTools.Metadata.DatItems/Formats/SlotOption.cs
index f3f64e47..280084ad 100644
--- a/SabreTools.Metadata.DatItems/Formats/SlotOption.cs
+++ b/SabreTools.Metadata.DatItems/Formats/SlotOption.cs
@@ -49,7 +49,7 @@ namespace SabreTools.Metadata.DatItems.Formats
#region Cloning Methods
///
- public override object Clone() => new SlotOption(_internal.Clone() as Data.Models.Metadata.SlotOption ?? []);
+ public override object Clone() => new SlotOption(_internal.DeepClone() as Data.Models.Metadata.SlotOption ?? []);
#endregion
}
diff --git a/SabreTools.Metadata.DatItems/Formats/SoftwareList.cs b/SabreTools.Metadata.DatItems/Formats/SoftwareList.cs
index c4951e5c..ed4694d4 100644
--- a/SabreTools.Metadata.DatItems/Formats/SoftwareList.cs
+++ b/SabreTools.Metadata.DatItems/Formats/SoftwareList.cs
@@ -59,7 +59,7 @@ namespace SabreTools.Metadata.DatItems.Formats
#region Cloning Methods
///
- public override object Clone() => new SoftwareList(_internal.Clone() as Data.Models.Metadata.SoftwareList ?? []);
+ public override object Clone() => new SoftwareList(_internal.DeepClone() as Data.Models.Metadata.SoftwareList ?? []);
#endregion
}
diff --git a/SabreTools.Metadata.DatItems/Formats/Sound.cs b/SabreTools.Metadata.DatItems/Formats/Sound.cs
index 3716fa56..b0c6b9fa 100644
--- a/SabreTools.Metadata.DatItems/Formats/Sound.cs
+++ b/SabreTools.Metadata.DatItems/Formats/Sound.cs
@@ -33,7 +33,7 @@ namespace SabreTools.Metadata.DatItems.Formats
#region Cloning Methods
///
- public override object Clone() => new Sound(_internal.Clone() as Data.Models.Metadata.Sound ?? []);
+ public override object Clone() => new Sound(_internal.DeepClone() as Data.Models.Metadata.Sound ?? []);
#endregion
}
diff --git a/SabreTools.Metadata.DatItems/Formats/SourceDetails.cs b/SabreTools.Metadata.DatItems/Formats/SourceDetails.cs
index 00d189d4..4f45ed10 100644
--- a/SabreTools.Metadata.DatItems/Formats/SourceDetails.cs
+++ b/SabreTools.Metadata.DatItems/Formats/SourceDetails.cs
@@ -27,7 +27,7 @@ namespace SabreTools.Metadata.DatItems.Formats
#region Cloning Methods
///
- public override object Clone() => new SourceDetails(_internal.Clone() as Data.Models.Metadata.SourceDetails ?? []);
+ public override object Clone() => new SourceDetails(_internal.DeepClone() as Data.Models.Metadata.SourceDetails ?? []);
#endregion
}
diff --git a/SabreTools.Metadata.DatItems/Machine.cs b/SabreTools.Metadata.DatItems/Machine.cs
index abe80866..d0c1599a 100644
--- a/SabreTools.Metadata.DatItems/Machine.cs
+++ b/SabreTools.Metadata.DatItems/Machine.cs
@@ -68,7 +68,7 @@ namespace SabreTools.Metadata.DatItems
public Machine(Data.Models.Metadata.Machine machine)
{
- _internal = machine.Clone() as Data.Models.Metadata.Machine ?? [];
+ _internal = machine.DeepClone() as Data.Models.Metadata.Machine ?? [];
// Remove all inverted fields
Remove(Data.Models.Metadata.Machine.AdjusterKey);
@@ -143,14 +143,14 @@ namespace SabreTools.Metadata.DatItems
{
return new Machine()
{
- _internal = _internal.Clone() as Data.Models.Metadata.Machine ?? [],
+ _internal = _internal.DeepClone() as Data.Models.Metadata.Machine ?? [],
};
}
///
/// Get a clone of the current internal model
///
- public Data.Models.Metadata.Machine GetInternalClone() => (_internal.Clone() as Data.Models.Metadata.Machine)!;
+ public Data.Models.Metadata.Machine GetInternalClone() => (_internal.DeepClone() as Data.Models.Metadata.Machine)!;
#endregion