mirror of
https://github.com/claunia/SabreTools.git
synced 2025-12-16 19:14:27 +00:00
Each item removes its own
This commit is contained in:
@@ -1238,7 +1238,6 @@ namespace SabreTools.Library.DatFiles
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Remove fields as per the header
|
/// Remove fields as per the header
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// TODO: Move internal logic to DatItem like the rest
|
|
||||||
public void RemoveFieldsFromItems()
|
public void RemoveFieldsFromItems()
|
||||||
{
|
{
|
||||||
// Output the logging statement
|
// Output the logging statement
|
||||||
@@ -1253,200 +1252,7 @@ namespace SabreTools.Library.DatFiles
|
|||||||
List<DatItem> items = Items[key];
|
List<DatItem> items = Items[key];
|
||||||
for (int j = 0; j < items.Count; j++)
|
for (int j = 0; j < items.Count; j++)
|
||||||
{
|
{
|
||||||
DatItem item = items[j];
|
items[j].RemoveFields(fields);
|
||||||
|
|
||||||
// TODO: Switch statement
|
|
||||||
foreach (Field field in fields)
|
|
||||||
{
|
|
||||||
// Machine Fields
|
|
||||||
if (field == Field.MachineName)
|
|
||||||
item.MachineName = null;
|
|
||||||
if (field == Field.Comment)
|
|
||||||
item.Comment = null;
|
|
||||||
if (field == Field.Description)
|
|
||||||
item.MachineDescription = null;
|
|
||||||
if (field == Field.Year)
|
|
||||||
item.Year = null;
|
|
||||||
if (field == Field.Manufacturer)
|
|
||||||
item.Manufacturer = null;
|
|
||||||
if (field == Field.Publisher)
|
|
||||||
item.Publisher = null;
|
|
||||||
if (field == Field.Category)
|
|
||||||
item.Category = null;
|
|
||||||
if (field == Field.RomOf)
|
|
||||||
item.RomOf = null;
|
|
||||||
if (field == Field.CloneOf)
|
|
||||||
item.CloneOf = null;
|
|
||||||
if (field == Field.SampleOf)
|
|
||||||
item.SampleOf = null;
|
|
||||||
if (field == Field.Supported)
|
|
||||||
item.Supported = null;
|
|
||||||
if (field == Field.SourceFile)
|
|
||||||
item.SourceFile = null;
|
|
||||||
if (field == Field.Runnable)
|
|
||||||
item.Runnable = null;
|
|
||||||
if (field == Field.Board)
|
|
||||||
item.Board = null;
|
|
||||||
if (field == Field.RebuildTo)
|
|
||||||
item.RebuildTo = null;
|
|
||||||
if (field == Field.Devices)
|
|
||||||
item.Devices = null;
|
|
||||||
if (field == Field.SlotOptions)
|
|
||||||
item.SlotOptions = null;
|
|
||||||
if (field == Field.Infos)
|
|
||||||
item.Infos = null;
|
|
||||||
if (field == Field.MachineType)
|
|
||||||
item.MachineType = MachineType.NULL;
|
|
||||||
|
|
||||||
// Item Fields
|
|
||||||
if (field == Field.Name)
|
|
||||||
item.Name = null;
|
|
||||||
if (field == Field.PartName)
|
|
||||||
item.PartName = null;
|
|
||||||
if (field == Field.PartInterface)
|
|
||||||
item.PartInterface = null;
|
|
||||||
if (field == Field.Features)
|
|
||||||
item.Features = null;
|
|
||||||
if (field == Field.AreaName)
|
|
||||||
item.AreaName = null;
|
|
||||||
if (field == Field.AreaSize)
|
|
||||||
item.AreaSize = null;
|
|
||||||
if (field == Field.Default)
|
|
||||||
{
|
|
||||||
if (item.ItemType == ItemType.BiosSet)
|
|
||||||
(item as BiosSet).Default = null;
|
|
||||||
else if (item.ItemType == ItemType.Release)
|
|
||||||
(item as Release).Default = null;
|
|
||||||
}
|
|
||||||
if (field == Field.BiosDescription)
|
|
||||||
{
|
|
||||||
if (item.ItemType == ItemType.BiosSet)
|
|
||||||
(item as BiosSet).Description = null;
|
|
||||||
}
|
|
||||||
if (field == Field.Size)
|
|
||||||
{
|
|
||||||
if (item.ItemType == ItemType.Rom)
|
|
||||||
(item as Rom).Size = 0;
|
|
||||||
}
|
|
||||||
if (field == Field.CRC)
|
|
||||||
{
|
|
||||||
if (item.ItemType == ItemType.Rom)
|
|
||||||
(item as Rom).CRC = null;
|
|
||||||
}
|
|
||||||
if (field == Field.MD5)
|
|
||||||
{
|
|
||||||
if (item.ItemType == ItemType.Disk)
|
|
||||||
(item as Disk).MD5 = null;
|
|
||||||
else if (item.ItemType == ItemType.Rom)
|
|
||||||
(item as Rom).MD5 = null;
|
|
||||||
}
|
|
||||||
#if NET_FRAMEWORK
|
|
||||||
if (field == Field.RIPEMD160)
|
|
||||||
{
|
|
||||||
if (item.ItemType == ItemType.Disk)
|
|
||||||
(item as Disk).RIPEMD160 = null;
|
|
||||||
else if (item.ItemType == ItemType.Rom)
|
|
||||||
(item as Rom).RIPEMD160 = null;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
if (field == Field.SHA1)
|
|
||||||
{
|
|
||||||
if (item.ItemType == ItemType.Disk)
|
|
||||||
(item as Disk).SHA1 = null;
|
|
||||||
else if (item.ItemType == ItemType.Rom)
|
|
||||||
(item as Rom).SHA1 = null;
|
|
||||||
}
|
|
||||||
if (field == Field.SHA256)
|
|
||||||
{
|
|
||||||
if (item.ItemType == ItemType.Disk)
|
|
||||||
(item as Disk).SHA256 = null;
|
|
||||||
else if (item.ItemType == ItemType.Rom)
|
|
||||||
(item as Rom).SHA256 = null;
|
|
||||||
}
|
|
||||||
if (field == Field.SHA384)
|
|
||||||
{
|
|
||||||
if (item.ItemType == ItemType.Disk)
|
|
||||||
(item as Disk).SHA384 = null;
|
|
||||||
else if (item.ItemType == ItemType.Rom)
|
|
||||||
(item as Rom).SHA384 = null;
|
|
||||||
}
|
|
||||||
if (field == Field.SHA512)
|
|
||||||
{
|
|
||||||
if (item.ItemType == ItemType.Disk)
|
|
||||||
(item as Disk).SHA512 = null;
|
|
||||||
else if (item.ItemType == ItemType.Rom)
|
|
||||||
(item as Rom).SHA512 = null;
|
|
||||||
}
|
|
||||||
if (field == Field.Merge)
|
|
||||||
{
|
|
||||||
if (item.ItemType == ItemType.Disk)
|
|
||||||
(item as Disk).MergeTag = null;
|
|
||||||
else if (item.ItemType == ItemType.Rom)
|
|
||||||
(item as Rom).MergeTag = null;
|
|
||||||
}
|
|
||||||
if (field == Field.Region)
|
|
||||||
{
|
|
||||||
if (item.ItemType == ItemType.Disk)
|
|
||||||
(item as Disk).Region = null;
|
|
||||||
else if (item.ItemType == ItemType.Release)
|
|
||||||
(item as Release).Region = null;
|
|
||||||
else if (item.ItemType == ItemType.Rom)
|
|
||||||
(item as Rom).Region = null;
|
|
||||||
}
|
|
||||||
if (field == Field.Index)
|
|
||||||
{
|
|
||||||
if (item.ItemType == ItemType.Disk)
|
|
||||||
(item as Disk).Index = null;
|
|
||||||
}
|
|
||||||
if (field == Field.Writable)
|
|
||||||
{
|
|
||||||
if (item.ItemType == ItemType.Disk)
|
|
||||||
(item as Disk).Writable = null;
|
|
||||||
}
|
|
||||||
if (field == Field.Optional)
|
|
||||||
{
|
|
||||||
if (item.ItemType == ItemType.Disk)
|
|
||||||
(item as Disk).Optional = null;
|
|
||||||
else if (item.ItemType == ItemType.Rom)
|
|
||||||
(item as Rom).Optional = null;
|
|
||||||
}
|
|
||||||
if (field == Field.Status)
|
|
||||||
{
|
|
||||||
if (item.ItemType == ItemType.Disk)
|
|
||||||
(item as Disk).ItemStatus = ItemStatus.NULL;
|
|
||||||
else if (item.ItemType == ItemType.Rom)
|
|
||||||
(item as Rom).ItemStatus = ItemStatus.NULL;
|
|
||||||
}
|
|
||||||
if (field == Field.Language)
|
|
||||||
{
|
|
||||||
if (item.ItemType == ItemType.Release)
|
|
||||||
(item as Release).Language = null;
|
|
||||||
}
|
|
||||||
if (field == Field.Date)
|
|
||||||
{
|
|
||||||
if (item.ItemType == ItemType.Release)
|
|
||||||
(item as Release).Date = null;
|
|
||||||
else if (item.ItemType == ItemType.Rom)
|
|
||||||
(item as Rom).Date = null;
|
|
||||||
}
|
|
||||||
if (field == Field.Bios)
|
|
||||||
{
|
|
||||||
if (item.ItemType == ItemType.Rom)
|
|
||||||
(item as Rom).Bios = null;
|
|
||||||
}
|
|
||||||
if (field == Field.Offset)
|
|
||||||
{
|
|
||||||
if (item.ItemType == ItemType.Rom)
|
|
||||||
(item as Rom).Offset = null;
|
|
||||||
}
|
|
||||||
if (field == Field.Inverted)
|
|
||||||
{
|
|
||||||
if (item.ItemType == ItemType.Rom)
|
|
||||||
(item as Rom).Inverted = null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
items[j] = item;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Items.Remove(key);
|
Items.Remove(key);
|
||||||
|
|||||||
@@ -160,6 +160,23 @@ namespace SabreTools.Library.DatItems
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Remove fields from the DatItem
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="fields">List of Fields to remove</param>
|
||||||
|
public override void RemoveFields(List<Field> fields)
|
||||||
|
{
|
||||||
|
// Remove common fields first
|
||||||
|
base.RemoveFields(fields);
|
||||||
|
|
||||||
|
// Remove the fields
|
||||||
|
if (fields.Contains(Field.BiosDescription))
|
||||||
|
Description = null;
|
||||||
|
|
||||||
|
if (fields.Contains(Field.Default))
|
||||||
|
Default = null;
|
||||||
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Sorting and Merging
|
#region Sorting and Merging
|
||||||
@@ -168,11 +185,11 @@ namespace SabreTools.Library.DatItems
|
|||||||
/// Replace fields from another item
|
/// Replace fields from another item
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="item">DatItem to pull new information from</param>
|
/// <param name="item">DatItem to pull new information from</param>
|
||||||
/// <param name="updateFields">List of Fields representing what should be updated</param>
|
/// <param name="fields">List of Fields representing what should be updated</param>
|
||||||
public override void ReplaceFields(DatItem item, List<Field> updateFields)
|
public override void ReplaceFields(DatItem item, List<Field> fields)
|
||||||
{
|
{
|
||||||
// Replace common fields first
|
// Replace common fields first
|
||||||
base.ReplaceFields(item, updateFields);
|
base.ReplaceFields(item, fields);
|
||||||
|
|
||||||
// If we don't have a BiosSet to replace from, ignore specific fields
|
// If we don't have a BiosSet to replace from, ignore specific fields
|
||||||
if (item.ItemType != ItemType.BiosSet)
|
if (item.ItemType != ItemType.BiosSet)
|
||||||
@@ -182,10 +199,10 @@ namespace SabreTools.Library.DatItems
|
|||||||
BiosSet newItem = item as BiosSet;
|
BiosSet newItem = item as BiosSet;
|
||||||
|
|
||||||
// Replace the fields
|
// Replace the fields
|
||||||
if (updateFields.Contains(Field.BiosDescription))
|
if (fields.Contains(Field.BiosDescription))
|
||||||
Description = newItem.Description;
|
Description = newItem.Description;
|
||||||
|
|
||||||
if (updateFields.Contains(Field.Default))
|
if (fields.Contains(Field.Default))
|
||||||
Default = newItem.Default;
|
Default = newItem.Default;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1081,6 +1081,96 @@ namespace SabreTools.Library.DatItems
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Remove fields from the DatItem
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="fields">List of Fields to remove</param>
|
||||||
|
public virtual void RemoveFields(List<Field> fields)
|
||||||
|
{
|
||||||
|
#region Machine Fields
|
||||||
|
|
||||||
|
if (fields.Contains(Field.MachineName))
|
||||||
|
MachineName = null;
|
||||||
|
|
||||||
|
if (fields.Contains(Field.Comment))
|
||||||
|
Comment = null;
|
||||||
|
|
||||||
|
if (fields.Contains(Field.Description))
|
||||||
|
MachineDescription = null;
|
||||||
|
|
||||||
|
if (fields.Contains(Field.Year))
|
||||||
|
Year = null;
|
||||||
|
|
||||||
|
if (fields.Contains(Field.Manufacturer))
|
||||||
|
Manufacturer = null;
|
||||||
|
|
||||||
|
if (fields.Contains(Field.Publisher))
|
||||||
|
Publisher = null;
|
||||||
|
|
||||||
|
if (fields.Contains(Field.Category))
|
||||||
|
Category = null;
|
||||||
|
|
||||||
|
if (fields.Contains(Field.RomOf))
|
||||||
|
RomOf = null;
|
||||||
|
|
||||||
|
if (fields.Contains(Field.CloneOf))
|
||||||
|
CloneOf = null;
|
||||||
|
|
||||||
|
if (fields.Contains(Field.SampleOf))
|
||||||
|
SampleOf = null;
|
||||||
|
|
||||||
|
if (fields.Contains(Field.Supported))
|
||||||
|
Supported = null;
|
||||||
|
|
||||||
|
if (fields.Contains(Field.SourceFile))
|
||||||
|
SourceFile = null;
|
||||||
|
|
||||||
|
if (fields.Contains(Field.Runnable))
|
||||||
|
Runnable = null;
|
||||||
|
|
||||||
|
if (fields.Contains(Field.Board))
|
||||||
|
Board = null;
|
||||||
|
|
||||||
|
if (fields.Contains(Field.RebuildTo))
|
||||||
|
RebuildTo = null;
|
||||||
|
|
||||||
|
if (fields.Contains(Field.Devices))
|
||||||
|
Devices = null;
|
||||||
|
|
||||||
|
if (fields.Contains(Field.SlotOptions))
|
||||||
|
SlotOptions = null;
|
||||||
|
|
||||||
|
if (fields.Contains(Field.Infos))
|
||||||
|
Infos = null;
|
||||||
|
|
||||||
|
if (fields.Contains(Field.MachineType))
|
||||||
|
MachineType = MachineType.NULL;
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region Item Fields
|
||||||
|
|
||||||
|
if (fields.Contains(Field.Name))
|
||||||
|
Name = null;
|
||||||
|
|
||||||
|
if (fields.Contains(Field.PartName))
|
||||||
|
PartName = null;
|
||||||
|
|
||||||
|
if (fields.Contains(Field.PartInterface))
|
||||||
|
PartInterface = null;
|
||||||
|
|
||||||
|
if (fields.Contains(Field.Features))
|
||||||
|
Features = null;
|
||||||
|
|
||||||
|
if (fields.Contains(Field.AreaName))
|
||||||
|
AreaName = null;
|
||||||
|
|
||||||
|
if (fields.Contains(Field.AreaSize))
|
||||||
|
AreaSize = null;
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Sorting and Merging
|
#region Sorting and Merging
|
||||||
@@ -1158,25 +1248,25 @@ namespace SabreTools.Library.DatItems
|
|||||||
/// Replace fields from another item
|
/// Replace fields from another item
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="item">DatItem to pull new information from</param>
|
/// <param name="item">DatItem to pull new information from</param>
|
||||||
/// <param name="updateFields">List of Fields representing what should be updated</param>
|
/// <param name="fields">List of Fields representing what should be updated</param>
|
||||||
public virtual void ReplaceFields(DatItem item, List<Field> updateFields)
|
public virtual void ReplaceFields(DatItem item, List<Field> fields)
|
||||||
{
|
{
|
||||||
if (updateFields.Contains(Field.Name))
|
if (fields.Contains(Field.Name))
|
||||||
Name = item.Name;
|
Name = item.Name;
|
||||||
|
|
||||||
if (updateFields.Contains(Field.PartName))
|
if (fields.Contains(Field.PartName))
|
||||||
PartName = item.PartName;
|
PartName = item.PartName;
|
||||||
|
|
||||||
if (updateFields.Contains(Field.PartInterface))
|
if (fields.Contains(Field.PartInterface))
|
||||||
PartInterface = item.PartInterface;
|
PartInterface = item.PartInterface;
|
||||||
|
|
||||||
if (updateFields.Contains(Field.Features))
|
if (fields.Contains(Field.Features))
|
||||||
Features = item.Features;
|
Features = item.Features;
|
||||||
|
|
||||||
if (updateFields.Contains(Field.AreaName))
|
if (fields.Contains(Field.AreaName))
|
||||||
AreaName = item.AreaName;
|
AreaName = item.AreaName;
|
||||||
|
|
||||||
if (updateFields.Contains(Field.AreaSize))
|
if (fields.Contains(Field.AreaSize))
|
||||||
AreaSize = item.AreaSize;
|
AreaSize = item.AreaSize;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1184,68 +1274,68 @@ namespace SabreTools.Library.DatItems
|
|||||||
/// Replace machine fields from another item
|
/// Replace machine fields from another item
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="item">DatItem to pull new information from</param>
|
/// <param name="item">DatItem to pull new information from</param>
|
||||||
/// <param name="updateFields">List of Fields representing what should be updated</param>
|
/// <param name="fields">List of Fields representing what should be updated</param>
|
||||||
/// <param name="onlySame">True if descriptions should only be replaced if the game name is the same, false otherwise</param>
|
/// <param name="onlySame">True if descriptions should only be replaced if the game name is the same, false otherwise</param>
|
||||||
public void ReplaceMachineFields(DatItem item, List<Field> updateFields, bool onlySame)
|
public void ReplaceMachineFields(DatItem item, List<Field> fields, bool onlySame)
|
||||||
{
|
{
|
||||||
if (updateFields.Contains(Field.MachineName))
|
if (fields.Contains(Field.MachineName))
|
||||||
MachineName = item.MachineName;
|
MachineName = item.MachineName;
|
||||||
|
|
||||||
if (updateFields.Contains(Field.Comment))
|
if (fields.Contains(Field.Comment))
|
||||||
Comment = item.Comment;
|
Comment = item.Comment;
|
||||||
|
|
||||||
if (updateFields.Contains(Field.Description))
|
if (fields.Contains(Field.Description))
|
||||||
{
|
{
|
||||||
if (!onlySame || (onlySame && MachineName == MachineDescription))
|
if (!onlySame || (onlySame && MachineName == MachineDescription))
|
||||||
MachineDescription = item.MachineDescription;
|
MachineDescription = item.MachineDescription;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (updateFields.Contains(Field.Year))
|
if (fields.Contains(Field.Year))
|
||||||
Year = item.Year;
|
Year = item.Year;
|
||||||
|
|
||||||
if (updateFields.Contains(Field.Manufacturer))
|
if (fields.Contains(Field.Manufacturer))
|
||||||
Manufacturer = item.Manufacturer;
|
Manufacturer = item.Manufacturer;
|
||||||
|
|
||||||
if (updateFields.Contains(Field.Publisher))
|
if (fields.Contains(Field.Publisher))
|
||||||
Publisher = item.Publisher;
|
Publisher = item.Publisher;
|
||||||
|
|
||||||
if (updateFields.Contains(Field.Category))
|
if (fields.Contains(Field.Category))
|
||||||
Category = item.Category;
|
Category = item.Category;
|
||||||
|
|
||||||
if (updateFields.Contains(Field.RomOf))
|
if (fields.Contains(Field.RomOf))
|
||||||
RomOf = item.RomOf;
|
RomOf = item.RomOf;
|
||||||
|
|
||||||
if (updateFields.Contains(Field.CloneOf))
|
if (fields.Contains(Field.CloneOf))
|
||||||
CloneOf = item.CloneOf;
|
CloneOf = item.CloneOf;
|
||||||
|
|
||||||
if (updateFields.Contains(Field.SampleOf))
|
if (fields.Contains(Field.SampleOf))
|
||||||
SampleOf = item.SampleOf;
|
SampleOf = item.SampleOf;
|
||||||
|
|
||||||
if (updateFields.Contains(Field.Supported))
|
if (fields.Contains(Field.Supported))
|
||||||
Supported = item.Supported;
|
Supported = item.Supported;
|
||||||
|
|
||||||
if (updateFields.Contains(Field.SourceFile))
|
if (fields.Contains(Field.SourceFile))
|
||||||
SourceFile = item.SourceFile;
|
SourceFile = item.SourceFile;
|
||||||
|
|
||||||
if (updateFields.Contains(Field.Runnable))
|
if (fields.Contains(Field.Runnable))
|
||||||
Runnable = item.Runnable;
|
Runnable = item.Runnable;
|
||||||
|
|
||||||
if (updateFields.Contains(Field.Board))
|
if (fields.Contains(Field.Board))
|
||||||
Board = item.Board;
|
Board = item.Board;
|
||||||
|
|
||||||
if (updateFields.Contains(Field.RebuildTo))
|
if (fields.Contains(Field.RebuildTo))
|
||||||
RebuildTo = item.RebuildTo;
|
RebuildTo = item.RebuildTo;
|
||||||
|
|
||||||
if (updateFields.Contains(Field.Devices))
|
if (fields.Contains(Field.Devices))
|
||||||
Devices = item.Devices;
|
Devices = item.Devices;
|
||||||
|
|
||||||
if (updateFields.Contains(Field.SlotOptions))
|
if (fields.Contains(Field.SlotOptions))
|
||||||
SlotOptions = item.SlotOptions;
|
SlotOptions = item.SlotOptions;
|
||||||
|
|
||||||
if (updateFields.Contains(Field.Infos))
|
if (fields.Contains(Field.Infos))
|
||||||
Infos = item.Infos;
|
Infos = item.Infos;
|
||||||
|
|
||||||
if (updateFields.Contains(Field.MachineType))
|
if (fields.Contains(Field.MachineType))
|
||||||
MachineType = item.MachineType;
|
MachineType = item.MachineType;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -568,6 +568,55 @@ namespace SabreTools.Library.DatItems
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Remove fields from the DatItem
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="fields">List of Fields to remove</param>
|
||||||
|
public override void RemoveFields(List<Field> fields)
|
||||||
|
{
|
||||||
|
// Remove common fields first
|
||||||
|
base.RemoveFields(fields);
|
||||||
|
|
||||||
|
// Remove the fields
|
||||||
|
if (fields.Contains(Field.MD5))
|
||||||
|
MD5 = null;
|
||||||
|
|
||||||
|
#if NET_FRAMEWORK
|
||||||
|
if (fields.Contains(Field.RIPEMD160))
|
||||||
|
RIPEMD160 = null;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
if (fields.Contains(Field.SHA1))
|
||||||
|
SHA1 = null;
|
||||||
|
|
||||||
|
if (fields.Contains(Field.SHA256))
|
||||||
|
SHA256 = null;
|
||||||
|
|
||||||
|
if (fields.Contains(Field.SHA384))
|
||||||
|
SHA384 = null;
|
||||||
|
|
||||||
|
if (fields.Contains(Field.SHA512))
|
||||||
|
SHA512 = null;
|
||||||
|
|
||||||
|
if (fields.Contains(Field.Merge))
|
||||||
|
MergeTag = null;
|
||||||
|
|
||||||
|
if (fields.Contains(Field.Region))
|
||||||
|
Region = null;
|
||||||
|
|
||||||
|
if (fields.Contains(Field.Index))
|
||||||
|
Index = null;
|
||||||
|
|
||||||
|
if (fields.Contains(Field.Writable))
|
||||||
|
Writable = null;
|
||||||
|
|
||||||
|
if (fields.Contains(Field.Status))
|
||||||
|
ItemStatus = ItemStatus.NULL;
|
||||||
|
|
||||||
|
if (fields.Contains(Field.Optional))
|
||||||
|
Optional = null;
|
||||||
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Sorting and Merging
|
#region Sorting and Merging
|
||||||
@@ -629,11 +678,11 @@ namespace SabreTools.Library.DatItems
|
|||||||
/// Replace fields from another item
|
/// Replace fields from another item
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="item">DatItem to pull new information from</param>
|
/// <param name="item">DatItem to pull new information from</param>
|
||||||
/// <param name="updateFields">List of Fields representing what should be updated</param>
|
/// <param name="fields">List of Fields representing what should be updated</param>
|
||||||
public override void ReplaceFields(DatItem item, List<Field> updateFields)
|
public override void ReplaceFields(DatItem item, List<Field> fields)
|
||||||
{
|
{
|
||||||
// Replace common fields first
|
// Replace common fields first
|
||||||
base.ReplaceFields(item, updateFields);
|
base.ReplaceFields(item, fields);
|
||||||
|
|
||||||
// If we don't have a Disk to replace from, ignore specific fields
|
// If we don't have a Disk to replace from, ignore specific fields
|
||||||
if (item.ItemType != ItemType.Disk)
|
if (item.ItemType != ItemType.Disk)
|
||||||
@@ -643,60 +692,60 @@ namespace SabreTools.Library.DatItems
|
|||||||
Disk newItem = item as Disk;
|
Disk newItem = item as Disk;
|
||||||
|
|
||||||
// Replace the fields
|
// Replace the fields
|
||||||
if (updateFields.Contains(Field.MD5))
|
if (fields.Contains(Field.MD5))
|
||||||
{
|
{
|
||||||
if (string.IsNullOrEmpty(MD5) && !string.IsNullOrEmpty(newItem.MD5))
|
if (string.IsNullOrEmpty(MD5) && !string.IsNullOrEmpty(newItem.MD5))
|
||||||
MD5 = newItem.MD5;
|
MD5 = newItem.MD5;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if NET_FRAMEWORK
|
#if NET_FRAMEWORK
|
||||||
if (updateFields.Contains(Field.RIPEMD160))
|
if (fields.Contains(Field.RIPEMD160))
|
||||||
{
|
{
|
||||||
if (string.IsNullOrEmpty(RIPEMD160) && !string.IsNullOrEmpty(newItem.RIPEMD160))
|
if (string.IsNullOrEmpty(RIPEMD160) && !string.IsNullOrEmpty(newItem.RIPEMD160))
|
||||||
RIPEMD160 = newItem.RIPEMD160;
|
RIPEMD160 = newItem.RIPEMD160;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (updateFields.Contains(Field.SHA1))
|
if (fields.Contains(Field.SHA1))
|
||||||
{
|
{
|
||||||
if (string.IsNullOrEmpty(SHA1) && !string.IsNullOrEmpty(newItem.SHA1))
|
if (string.IsNullOrEmpty(SHA1) && !string.IsNullOrEmpty(newItem.SHA1))
|
||||||
SHA1 = newItem.SHA1;
|
SHA1 = newItem.SHA1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (updateFields.Contains(Field.SHA256))
|
if (fields.Contains(Field.SHA256))
|
||||||
{
|
{
|
||||||
if (string.IsNullOrEmpty(SHA256) && !string.IsNullOrEmpty(newItem.SHA256))
|
if (string.IsNullOrEmpty(SHA256) && !string.IsNullOrEmpty(newItem.SHA256))
|
||||||
SHA256 = newItem.SHA256;
|
SHA256 = newItem.SHA256;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (updateFields.Contains(Field.SHA384))
|
if (fields.Contains(Field.SHA384))
|
||||||
{
|
{
|
||||||
if (string.IsNullOrEmpty(SHA384) && !string.IsNullOrEmpty(newItem.SHA384))
|
if (string.IsNullOrEmpty(SHA384) && !string.IsNullOrEmpty(newItem.SHA384))
|
||||||
SHA384 = newItem.SHA384;
|
SHA384 = newItem.SHA384;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (updateFields.Contains(Field.SHA512))
|
if (fields.Contains(Field.SHA512))
|
||||||
{
|
{
|
||||||
if (string.IsNullOrEmpty(SHA512) && !string.IsNullOrEmpty(newItem.SHA512))
|
if (string.IsNullOrEmpty(SHA512) && !string.IsNullOrEmpty(newItem.SHA512))
|
||||||
SHA512 = newItem.SHA512;
|
SHA512 = newItem.SHA512;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (updateFields.Contains(Field.Merge))
|
if (fields.Contains(Field.Merge))
|
||||||
MergeTag = newItem.MergeTag;
|
MergeTag = newItem.MergeTag;
|
||||||
|
|
||||||
if (updateFields.Contains(Field.Region))
|
if (fields.Contains(Field.Region))
|
||||||
Region = newItem.Region;
|
Region = newItem.Region;
|
||||||
|
|
||||||
if (updateFields.Contains(Field.Index))
|
if (fields.Contains(Field.Index))
|
||||||
Index = newItem.Index;
|
Index = newItem.Index;
|
||||||
|
|
||||||
if (updateFields.Contains(Field.Writable))
|
if (fields.Contains(Field.Writable))
|
||||||
Writable = newItem.Writable;
|
Writable = newItem.Writable;
|
||||||
|
|
||||||
if (updateFields.Contains(Field.Status))
|
if (fields.Contains(Field.Status))
|
||||||
ItemStatus = newItem.ItemStatus;
|
ItemStatus = newItem.ItemStatus;
|
||||||
|
|
||||||
if (updateFields.Contains(Field.Optional))
|
if (fields.Contains(Field.Optional))
|
||||||
Optional = newItem.Optional;
|
Optional = newItem.Optional;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -202,6 +202,29 @@ namespace SabreTools.Library.DatItems
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Remove fields from the DatItem
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="fields">List of Fields to remove</param>
|
||||||
|
public override void RemoveFields(List<Field> fields)
|
||||||
|
{
|
||||||
|
// Remove common fields first
|
||||||
|
base.RemoveFields(fields);
|
||||||
|
|
||||||
|
// Remove the fields
|
||||||
|
if (fields.Contains(Field.Region))
|
||||||
|
Region = null;
|
||||||
|
|
||||||
|
if (fields.Contains(Field.Language))
|
||||||
|
Language = null;
|
||||||
|
|
||||||
|
if (fields.Contains(Field.Date))
|
||||||
|
Date = null;
|
||||||
|
|
||||||
|
if (fields.Contains(Field.Default))
|
||||||
|
Default = null;
|
||||||
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Sorting and Merging
|
#region Sorting and Merging
|
||||||
@@ -210,11 +233,11 @@ namespace SabreTools.Library.DatItems
|
|||||||
/// Replace fields from another item
|
/// Replace fields from another item
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="item">DatItem to pull new information from</param>
|
/// <param name="item">DatItem to pull new information from</param>
|
||||||
/// <param name="updateFields">List of Fields representing what should be updated</param>
|
/// <param name="fields">List of Fields representing what should be updated</param>
|
||||||
public override void ReplaceFields(DatItem item, List<Field> updateFields)
|
public override void ReplaceFields(DatItem item, List<Field> fields)
|
||||||
{
|
{
|
||||||
// Replace common fields first
|
// Replace common fields first
|
||||||
base.ReplaceFields(item, updateFields);
|
base.ReplaceFields(item, fields);
|
||||||
|
|
||||||
// If we don't have a Release to replace from, ignore specific fields
|
// If we don't have a Release to replace from, ignore specific fields
|
||||||
if (item.ItemType != ItemType.Release)
|
if (item.ItemType != ItemType.Release)
|
||||||
@@ -224,16 +247,16 @@ namespace SabreTools.Library.DatItems
|
|||||||
Release newItem = item as Release;
|
Release newItem = item as Release;
|
||||||
|
|
||||||
// Replace the fields
|
// Replace the fields
|
||||||
if (updateFields.Contains(Field.Region))
|
if (fields.Contains(Field.Region))
|
||||||
Region = newItem.Region;
|
Region = newItem.Region;
|
||||||
|
|
||||||
if (updateFields.Contains(Field.Language))
|
if (fields.Contains(Field.Language))
|
||||||
Language = newItem.Language;
|
Language = newItem.Language;
|
||||||
|
|
||||||
if (updateFields.Contains(Field.Date))
|
if (fields.Contains(Field.Date))
|
||||||
Date = newItem.Date;
|
Date = newItem.Date;
|
||||||
|
|
||||||
if (updateFields.Contains(Field.Default))
|
if (fields.Contains(Field.Default))
|
||||||
Default = newItem.Default;
|
Default = newItem.Default;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -619,6 +619,67 @@ namespace SabreTools.Library.DatItems
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Remove fields from the DatItem
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="fields">List of Fields to remove</param>
|
||||||
|
public override void RemoveFields(List<Field> fields)
|
||||||
|
{
|
||||||
|
// Remove common fields first
|
||||||
|
base.RemoveFields(fields);
|
||||||
|
|
||||||
|
// Remove the fields
|
||||||
|
if (fields.Contains(Field.Bios))
|
||||||
|
Bios = null;
|
||||||
|
|
||||||
|
if (fields.Contains(Field.Size))
|
||||||
|
Size = 0;
|
||||||
|
|
||||||
|
if (fields.Contains(Field.CRC))
|
||||||
|
CRC = null;
|
||||||
|
|
||||||
|
if (fields.Contains(Field.MD5))
|
||||||
|
MD5 = null;
|
||||||
|
|
||||||
|
#if NET_FRAMEWORK
|
||||||
|
if (fields.Contains(Field.RIPEMD160))
|
||||||
|
RIPEMD160 = null;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
if (fields.Contains(Field.SHA1))
|
||||||
|
SHA1 = null;
|
||||||
|
|
||||||
|
if (fields.Contains(Field.SHA256))
|
||||||
|
SHA256 = null;
|
||||||
|
|
||||||
|
if (fields.Contains(Field.SHA384))
|
||||||
|
SHA384 = null;
|
||||||
|
|
||||||
|
if (fields.Contains(Field.SHA512))
|
||||||
|
SHA512 = null;
|
||||||
|
|
||||||
|
if (fields.Contains(Field.Merge))
|
||||||
|
MergeTag = null;
|
||||||
|
|
||||||
|
if (fields.Contains(Field.Region))
|
||||||
|
Region = null;
|
||||||
|
|
||||||
|
if (fields.Contains(Field.Offset))
|
||||||
|
Offset = null;
|
||||||
|
|
||||||
|
if (fields.Contains(Field.Date))
|
||||||
|
Date = null;
|
||||||
|
|
||||||
|
if (fields.Contains(Field.Status))
|
||||||
|
ItemStatus = ItemStatus.NULL;
|
||||||
|
|
||||||
|
if (fields.Contains(Field.Optional))
|
||||||
|
Optional = null;
|
||||||
|
|
||||||
|
if (fields.Contains(Field.Inverted))
|
||||||
|
Inverted = null;
|
||||||
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Sorting and Merging
|
#region Sorting and Merging
|
||||||
@@ -684,11 +745,11 @@ namespace SabreTools.Library.DatItems
|
|||||||
/// Replace fields from another item
|
/// Replace fields from another item
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="item">DatItem to pull new information from</param>
|
/// <param name="item">DatItem to pull new information from</param>
|
||||||
/// <param name="updateFields">List of Fields representing what should be updated</param>
|
/// <param name="fields">List of Fields representing what should be updated</param>
|
||||||
public override void ReplaceFields(DatItem item, List<Field> updateFields)
|
public override void ReplaceFields(DatItem item, List<Field> fields)
|
||||||
{
|
{
|
||||||
// Replace common fields first
|
// Replace common fields first
|
||||||
base.ReplaceFields(item, updateFields);
|
base.ReplaceFields(item, fields);
|
||||||
|
|
||||||
// If we don't have a Rom to replace from, ignore specific fields
|
// If we don't have a Rom to replace from, ignore specific fields
|
||||||
if (item.ItemType != ItemType.Rom)
|
if (item.ItemType != ItemType.Rom)
|
||||||
@@ -698,75 +759,75 @@ namespace SabreTools.Library.DatItems
|
|||||||
Rom newItem = item as Rom;
|
Rom newItem = item as Rom;
|
||||||
|
|
||||||
// Replace the fields
|
// Replace the fields
|
||||||
if (updateFields.Contains(Field.Bios))
|
if (fields.Contains(Field.Bios))
|
||||||
Bios = newItem.Bios;
|
Bios = newItem.Bios;
|
||||||
|
|
||||||
if (updateFields.Contains(Field.Size))
|
if (fields.Contains(Field.Size))
|
||||||
Size = newItem.Size;
|
Size = newItem.Size;
|
||||||
|
|
||||||
if (updateFields.Contains(Field.CRC))
|
if (fields.Contains(Field.CRC))
|
||||||
{
|
{
|
||||||
if (string.IsNullOrEmpty(CRC) && !string.IsNullOrEmpty(newItem.CRC))
|
if (string.IsNullOrEmpty(CRC) && !string.IsNullOrEmpty(newItem.CRC))
|
||||||
CRC = newItem.CRC;
|
CRC = newItem.CRC;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (updateFields.Contains(Field.MD5))
|
if (fields.Contains(Field.MD5))
|
||||||
{
|
{
|
||||||
if (string.IsNullOrEmpty(MD5) && !string.IsNullOrEmpty(newItem.MD5))
|
if (string.IsNullOrEmpty(MD5) && !string.IsNullOrEmpty(newItem.MD5))
|
||||||
MD5 = newItem.MD5;
|
MD5 = newItem.MD5;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if NET_FRAMEWORK
|
#if NET_FRAMEWORK
|
||||||
if (updateFields.Contains(Field.RIPEMD160))
|
if (fields.Contains(Field.RIPEMD160))
|
||||||
{
|
{
|
||||||
if (string.IsNullOrEmpty(RIPEMD160) && !string.IsNullOrEmpty(newItem.RIPEMD160))
|
if (string.IsNullOrEmpty(RIPEMD160) && !string.IsNullOrEmpty(newItem.RIPEMD160))
|
||||||
RIPEMD160 = newItem.RIPEMD160;
|
RIPEMD160 = newItem.RIPEMD160;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (updateFields.Contains(Field.SHA1))
|
if (fields.Contains(Field.SHA1))
|
||||||
{
|
{
|
||||||
if (string.IsNullOrEmpty(SHA1) && !string.IsNullOrEmpty(newItem.SHA1))
|
if (string.IsNullOrEmpty(SHA1) && !string.IsNullOrEmpty(newItem.SHA1))
|
||||||
SHA1 = newItem.SHA1;
|
SHA1 = newItem.SHA1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (updateFields.Contains(Field.SHA256))
|
if (fields.Contains(Field.SHA256))
|
||||||
{
|
{
|
||||||
if (string.IsNullOrEmpty(SHA256) && !string.IsNullOrEmpty(newItem.SHA256))
|
if (string.IsNullOrEmpty(SHA256) && !string.IsNullOrEmpty(newItem.SHA256))
|
||||||
SHA256 = newItem.SHA256;
|
SHA256 = newItem.SHA256;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (updateFields.Contains(Field.SHA384))
|
if (fields.Contains(Field.SHA384))
|
||||||
{
|
{
|
||||||
if (string.IsNullOrEmpty(SHA384) && !string.IsNullOrEmpty(newItem.SHA384))
|
if (string.IsNullOrEmpty(SHA384) && !string.IsNullOrEmpty(newItem.SHA384))
|
||||||
SHA384 = newItem.SHA384;
|
SHA384 = newItem.SHA384;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (updateFields.Contains(Field.SHA512))
|
if (fields.Contains(Field.SHA512))
|
||||||
{
|
{
|
||||||
if (string.IsNullOrEmpty(SHA512) && !string.IsNullOrEmpty(newItem.SHA512))
|
if (string.IsNullOrEmpty(SHA512) && !string.IsNullOrEmpty(newItem.SHA512))
|
||||||
SHA512 = newItem.SHA512;
|
SHA512 = newItem.SHA512;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (updateFields.Contains(Field.Merge))
|
if (fields.Contains(Field.Merge))
|
||||||
MergeTag = newItem.MergeTag;
|
MergeTag = newItem.MergeTag;
|
||||||
|
|
||||||
if (updateFields.Contains(Field.Region))
|
if (fields.Contains(Field.Region))
|
||||||
Region = newItem.Region;
|
Region = newItem.Region;
|
||||||
|
|
||||||
if (updateFields.Contains(Field.Offset))
|
if (fields.Contains(Field.Offset))
|
||||||
Offset = newItem.Offset;
|
Offset = newItem.Offset;
|
||||||
|
|
||||||
if (updateFields.Contains(Field.Date))
|
if (fields.Contains(Field.Date))
|
||||||
Date = newItem.Date;
|
Date = newItem.Date;
|
||||||
|
|
||||||
if (updateFields.Contains(Field.Status))
|
if (fields.Contains(Field.Status))
|
||||||
ItemStatus = newItem.ItemStatus;
|
ItemStatus = newItem.ItemStatus;
|
||||||
|
|
||||||
if (updateFields.Contains(Field.Optional))
|
if (fields.Contains(Field.Optional))
|
||||||
Optional = newItem.Optional;
|
Optional = newItem.Optional;
|
||||||
|
|
||||||
if (updateFields.Contains(Field.Inverted))
|
if (fields.Contains(Field.Inverted))
|
||||||
Inverted = newItem.Inverted;
|
Inverted = newItem.Inverted;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user