mirror of
https://github.com/claunia/SabreTools.git
synced 2025-12-16 19:14:27 +00:00
DatItems don't know about replacing fields
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override void ReplaceFields(
|
||||
DatItem item,
|
||||
List<DatItemField> datItemFields,
|
||||
List<MachineField> 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
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user