diff --git a/SabreTools.Library/DatFiles/AttractMode.cs b/SabreTools.Library/DatFiles/AttractMode.cs index 5847120c..bdc6dfa2 100644 --- a/SabreTools.Library/DatFiles/AttractMode.cs +++ b/SabreTools.Library/DatFiles/AttractMode.cs @@ -29,12 +29,8 @@ namespace SabreTools.Library.DatFiles /// /// Parent DatFile to copy from public AttractMode(DatFile datFile) + : base(datFile, cloneHeader: false) { - this._datHeader = datFile._datHeader; - this._items = datFile._items; - this._sortedBy = datFile._sortedBy; - this._mergedBy = datFile._mergedBy; - this._datStats = datFile._datStats; } /// diff --git a/SabreTools.Library/DatFiles/ClrMamePro.cs b/SabreTools.Library/DatFiles/ClrMamePro.cs index 232c618a..fdb3367f 100644 --- a/SabreTools.Library/DatFiles/ClrMamePro.cs +++ b/SabreTools.Library/DatFiles/ClrMamePro.cs @@ -30,12 +30,8 @@ namespace SabreTools.Library.DatFiles /// /// Parent DatFile to copy from public ClrMamePro(DatFile datFile) + : base(datFile, cloneHeader: false) { - this._datHeader = datFile._datHeader; - this._items = datFile._items; - this._sortedBy = datFile._sortedBy; - this._mergedBy = datFile._mergedBy; - this._datStats = datFile._datStats; } /// diff --git a/SabreTools.Library/DatFiles/DatFile.cs b/SabreTools.Library/DatFiles/DatFile.cs index bdee9a56..c327a9b0 100644 --- a/SabreTools.Library/DatFiles/DatFile.cs +++ b/SabreTools.Library/DatFiles/DatFile.cs @@ -1557,9 +1557,21 @@ namespace SabreTools.Library.DatFiles /// Create a new DatFile from an existing one using the header values only /// /// - public DatFile(DatFile datFile) + /// True if only the header should be cloned (default), false if this should be a reference to another DatFile + public DatFile(DatFile datFile, bool cloneHeader = true) { - _datHeader = (DatHeader)datFile._datHeader.Clone(); + if (cloneHeader) + { + this._datHeader = (DatHeader)datFile._datHeader.Clone(); + } + else + { + this._datHeader = datFile._datHeader; + this._items = datFile._items; + this._sortedBy = datFile._sortedBy; + this._mergedBy = datFile._mergedBy; + this._datStats = datFile._datStats; + } } /// diff --git a/SabreTools.Library/DatFiles/DosCenter.cs b/SabreTools.Library/DatFiles/DosCenter.cs index 43ec7c7b..d98a9b85 100644 --- a/SabreTools.Library/DatFiles/DosCenter.cs +++ b/SabreTools.Library/DatFiles/DosCenter.cs @@ -29,12 +29,8 @@ namespace SabreTools.Library.DatFiles /// /// Parent DatFile to copy from public DosCenter(DatFile datFile) + : base(datFile, cloneHeader: false) { - this._datHeader = datFile._datHeader; - this._items = datFile._items; - this._sortedBy = datFile._sortedBy; - this._mergedBy = datFile._mergedBy; - this._datStats = datFile._datStats; } /// diff --git a/SabreTools.Library/DatFiles/Hashfile.cs b/SabreTools.Library/DatFiles/Hashfile.cs index ecf98116..6ea613c3 100644 --- a/SabreTools.Library/DatFiles/Hashfile.cs +++ b/SabreTools.Library/DatFiles/Hashfile.cs @@ -33,12 +33,8 @@ namespace SabreTools.Library.DatFiles /// Parent DatFile to copy from /// Type of hash that is associated with this DAT public Hashfile(DatFile datFile, Hash hash) + : base(datFile, cloneHeader: false) { - this._datHeader = datFile._datHeader; - this._items = datFile._items; - this._sortedBy = datFile._sortedBy; - this._mergedBy = datFile._mergedBy; - this._datStats = datFile._datStats; _hash = hash; } diff --git a/SabreTools.Library/DatFiles/Listroms.cs b/SabreTools.Library/DatFiles/Listroms.cs index ea56ba2a..e619d6f8 100644 --- a/SabreTools.Library/DatFiles/Listroms.cs +++ b/SabreTools.Library/DatFiles/Listroms.cs @@ -30,12 +30,8 @@ namespace SabreTools.Library.DatFiles /// /// Parent DatFile to copy from public Listroms(DatFile datFile) + : base(datFile, cloneHeader: false) { - this._datHeader = datFile._datHeader; - this._items = datFile._items; - this._sortedBy = datFile._sortedBy; - this._mergedBy = datFile._mergedBy; - this._datStats = datFile._datStats; } /// diff --git a/SabreTools.Library/DatFiles/Logiqx.cs b/SabreTools.Library/DatFiles/Logiqx.cs index 4d49aec3..111f1943 100644 --- a/SabreTools.Library/DatFiles/Logiqx.cs +++ b/SabreTools.Library/DatFiles/Logiqx.cs @@ -32,12 +32,8 @@ namespace SabreTools.Library.DatFiles /// /// Parent DatFile to copy from public Logiqx(DatFile datFile) + : base(datFile, cloneHeader: false) { - this._datHeader = datFile._datHeader; - this._items = datFile._items; - this._sortedBy = datFile._sortedBy; - this._mergedBy = datFile._mergedBy; - this._datStats = datFile._datStats; } /// diff --git a/SabreTools.Library/DatFiles/Missfile.cs b/SabreTools.Library/DatFiles/Missfile.cs index 9a218265..f913d17e 100644 --- a/SabreTools.Library/DatFiles/Missfile.cs +++ b/SabreTools.Library/DatFiles/Missfile.cs @@ -28,12 +28,8 @@ namespace SabreTools.Library.DatFiles /// /// Parent DatFile to copy from public Missfile(DatFile datFile) + : base(datFile, cloneHeader: false) { - this._datHeader = datFile._datHeader; - this._items = datFile._items; - this._sortedBy = datFile._sortedBy; - this._mergedBy = datFile._mergedBy; - this._datStats = datFile._datStats; } /// diff --git a/SabreTools.Library/DatFiles/OfflineList.cs b/SabreTools.Library/DatFiles/OfflineList.cs index 7bb0064e..15ab4b79 100644 --- a/SabreTools.Library/DatFiles/OfflineList.cs +++ b/SabreTools.Library/DatFiles/OfflineList.cs @@ -29,12 +29,8 @@ namespace SabreTools.Library.DatFiles /// /// Parent DatFile to copy from public OfflineList(DatFile datFile) + : base(datFile, cloneHeader: false) { - this._datHeader = datFile._datHeader; - this._items = datFile._items; - this._sortedBy = datFile._sortedBy; - this._mergedBy = datFile._mergedBy; - this._datStats = datFile._datStats; } /// diff --git a/SabreTools.Library/DatFiles/RomCenter.cs b/SabreTools.Library/DatFiles/RomCenter.cs index f625f66f..25d60e8e 100644 --- a/SabreTools.Library/DatFiles/RomCenter.cs +++ b/SabreTools.Library/DatFiles/RomCenter.cs @@ -30,12 +30,8 @@ namespace SabreTools.Library.DatFiles /// /// Parent DatFile to copy from public RomCenter(DatFile datFile) + : base(datFile, cloneHeader: false) { - this._datHeader = datFile._datHeader; - this._items = datFile._items; - this._sortedBy = datFile._sortedBy; - this._mergedBy = datFile._mergedBy; - this._datStats = datFile._datStats; } /// diff --git a/SabreTools.Library/DatFiles/SabreDat.cs b/SabreTools.Library/DatFiles/SabreDat.cs index 1eb8b41b..044b7053 100644 --- a/SabreTools.Library/DatFiles/SabreDat.cs +++ b/SabreTools.Library/DatFiles/SabreDat.cs @@ -30,12 +30,8 @@ namespace SabreTools.Library.DatFiles /// /// Parent DatFile to copy from public SabreDat(DatFile datFile) + : base(datFile, cloneHeader: false) { - this._datHeader = datFile._datHeader; - this._items = datFile._items; - this._sortedBy = datFile._sortedBy; - this._mergedBy = datFile._mergedBy; - this._datStats = datFile._datStats; } /// diff --git a/SabreTools.Library/DatFiles/SeparatedValue.cs b/SabreTools.Library/DatFiles/SeparatedValue.cs index cd919ff0..b097f04b 100644 --- a/SabreTools.Library/DatFiles/SeparatedValue.cs +++ b/SabreTools.Library/DatFiles/SeparatedValue.cs @@ -32,12 +32,8 @@ namespace SabreTools.Library.DatFiles /// Parent DatFile to copy from /// Delimiter for parsing individual lines public SeparatedValue(DatFile datFile, char delim) + : base(datFile, cloneHeader: false) { - this._datHeader = datFile._datHeader; - this._items = datFile._items; - this._sortedBy = datFile._sortedBy; - this._mergedBy = datFile._mergedBy; - this._datStats = datFile._datStats; _delim = delim; } diff --git a/SabreTools.Library/DatFiles/SoftwareList.cs b/SabreTools.Library/DatFiles/SoftwareList.cs index 7f447e11..a494b0be 100644 --- a/SabreTools.Library/DatFiles/SoftwareList.cs +++ b/SabreTools.Library/DatFiles/SoftwareList.cs @@ -29,12 +29,8 @@ namespace SabreTools.Library.DatFiles /// /// Parent DatFile to copy from public SoftwareList(DatFile datFile) + : base(datFile, cloneHeader: false) { - this._datHeader = datFile._datHeader; - this._items = datFile._items; - this._sortedBy = datFile._sortedBy; - this._mergedBy = datFile._mergedBy; - this._datStats = datFile._datStats; } ///