Reorganize and add comments to DatItemField

This commit is contained in:
Matt Nadareski
2023-04-20 15:57:39 -04:00
parent b16afd6d59
commit b285ecf66d
5 changed files with 1095 additions and 1232 deletions

View File

@@ -916,517 +916,501 @@ namespace SabreTools.Core
{ {
NULL = 0, NULL = 0,
#region Common /// <remarks>Used in Rom</remarks>
[Mapping("type")]
Type,
#endregion
#region Item-Specific
#region Actionable
#region Rom
[Mapping("name")]
Name,
[Mapping("bios")]
Bios,
[Mapping("size")]
Size,
[Mapping("crc", "crc32")]
CRC,
[Mapping("md5", "md5hash", "md5_hash")]
MD5,
[Mapping("sha1", "sha_1", "sha1hash", "sha1_hash", "sha_1hash", "sha_1_hash")]
SHA1,
[Mapping("sha256", "sha_256", "sha256hash", "sha256_hash", "sha_256hash", "sha_256_hash")]
SHA256,
[Mapping("sha384", "sha_384", "sha384hash", "sha384_hash", "sha_384hash", "sha_384_hash")]
SHA384,
[Mapping("sha512", "sha_512", "sha512hash", "sha512_hash", "sha_512hash", "sha_512_hash")]
SHA512,
[Mapping("spamsum", "spam_sum")]
SpamSum,
[Mapping("merge", "mergetag", "merge_tag")]
Merge,
[Mapping("region")]
Region,
[Mapping("offset")]
Offset,
[Mapping("date")]
Date,
[Mapping("status")]
Status,
[Mapping("optional")]
Optional,
[Mapping("inverted")]
Inverted,
#endregion
#region Rom (Archive.org)
[Mapping("ado_source")]
ArchiveDotOrgSource,
[Mapping("ado_format")]
ArchiveDotOrgFormat,
[Mapping("original_filename")]
OriginalFilename,
[Mapping("rotation")]
Rotation,
[Mapping("summation")]
Summation,
#endregion
#region Rom (AttractMode)
[Mapping("altname", "alt_name", "altromname", "alt_romname", "alt_rom_name")] [Mapping("altname", "alt_name", "altromname", "alt_romname", "alt_rom_name")]
AltName, AltName,
/// <remarks>Used in Rom</remarks>
[Mapping("alttitle", "alt_title", "altromtitle", "alt_romtitle", "alt_rom_title")] [Mapping("alttitle", "alt_title", "altromtitle", "alt_romtitle", "alt_rom_title")]
AltTitle, AltTitle,
#endregion /// <remarks>Used in Analog</remarks>
#region Rom (Logiqx)
[Mapping("mia")]
MIA,
#endregion
#region Rom (OpenMSX)
[Mapping("original")]
Original,
[Mapping("subtype", "sub_type", "openmsxsubtype", "openmsx_subtype", "openmsx_sub_type")]
OpenMSXSubType,
[Mapping("openmsxtype", "openmsx_type")]
OpenMSXType,
[Mapping("remark")]
Remark,
[Mapping("boot")]
Boot,
#endregion
#region Rom (SoftwareList)
[Mapping("loadflag", "load_flag")]
LoadFlag,
[Mapping("value")]
Value,
#endregion
#region Disk
[Mapping("index")]
Index,
[Mapping("writable")]
Writable,
#endregion
#endregion
#region Auxiliary
#region Adjuster
[Mapping("default")]
Default,
#endregion
#region Analog
[Mapping("analog_mask")] [Mapping("analog_mask")]
Analog_Mask, Analog_Mask,
#endregion /// <remarks>Used in Rom</remarks>
[Mapping("ado_format")]
ArchiveDotOrgFormat,
#region Archive /// <remarks>Used in Rom</remarks>
[Mapping("ado_source")]
[Mapping("number")] ArchiveDotOrgSource,
Number,
[Mapping("clone")]
Clone,
[Mapping("regparent", "reg_parent")]
RegParent,
[Mapping("languages")]
Languages,
[Mapping("devstatus", "dev_status")]
DevStatus,
[Mapping("physical")]
Physical,
[Mapping("complete")]
Complete,
[Mapping("categories")]
Categories,
#endregion
#region BiosSet
[Mapping("description", "biosdescription", "bios_description")]
Description,
#endregion
#region Chip
[Mapping("tag")]
Tag,
[Mapping("chiptype", "chip_type")]
ChipType,
[Mapping("clock")]
Clock,
#endregion
#region Condition
[Mapping("mask")]
Mask,
[Mapping("relation")]
Relation,
[Mapping("condition_tag")]
Condition_Tag,
[Mapping("condition_mask")]
Condition_Mask,
[Mapping("condition_relation")]
Condition_Relation,
[Mapping("condition_value")]
Condition_Value,
#endregion
#region Control
[Mapping("control_type")]
Control_Type,
[Mapping("control_player")]
Control_Player,
[Mapping("control_buttons")]
Control_Buttons,
[Mapping("control_reqbuttons", "control_req_buttons")]
Control_RequiredButtons,
[Mapping("control_minimum")]
Control_Minimum,
[Mapping("control_maximum")]
Control_Maximum,
[Mapping("control_sensitivity")]
Control_Sensitivity,
[Mapping("control_keydelta", "control_key_delta")]
Control_KeyDelta,
[Mapping("control_reverse")]
Control_Reverse,
[Mapping("control_ways")]
Control_Ways,
[Mapping("control_ways2")]
Control_Ways2,
[Mapping("control_ways3")]
Control_Ways3,
#endregion
#region DataArea
[Mapping("areaname", "area_name")]
AreaName,
[Mapping("areasize", "area_size")]
AreaSize,
[Mapping("areawidth", "area_width")]
AreaWidth,
/// <remarks>Used in DataArea</remarks>
[Mapping("areaendinanness", "area_endianness")] [Mapping("areaendinanness", "area_endianness")]
AreaEndianness, AreaEndianness,
#endregion /// <remarks>Used in DataArea and DiskArea</remarks>
[Mapping("areaname", "area_name")]
AreaName,
#region Device /// <remarks>Used in DataArea</remarks>
[Mapping("areasize", "area_size")]
AreaSize,
[Mapping("devicetype", "device_type")] /// <remarks>Used in DataArea</remarks>
DeviceType, [Mapping("areawidth", "area_width")]
AreaWidth,
[Mapping("fixedimage", "fixed_image")] /// <remarks>Used in Rom</remarks>
FixedImage, [Mapping("bios")]
Bios,
[Mapping("mandatory")] /// <remarks>Used in Rom</remarks>
Mandatory, [Mapping("boot")]
Boot,
[Mapping("interface")] /// <remarks>Used in Archive</remarks>
Interface, [Mapping("categories")]
Categories,
#endregion
#region Display
[Mapping("displaytype", "display_type")]
DisplayType,
[Mapping("rotate")]
Rotate,
[Mapping("flipx")]
FlipX,
[Mapping("width")]
Width,
[Mapping("height")]
Height,
[Mapping("refresh")]
Refresh,
[Mapping("pixclock", "pix_clock")]
PixClock,
[Mapping("htotal")]
HTotal,
[Mapping("hbend")]
HBEnd,
[Mapping("hbstart")]
HBStart,
[Mapping("vtotal")]
VTotal,
[Mapping("vbend")]
VBEnd,
[Mapping("vbstart")]
VBStart,
#endregion
#region Driver
[Mapping("supportstatus", "support_status")]
SupportStatus,
[Mapping("emulationstatus", "emulation_status")]
EmulationStatus,
[Mapping("cocktailstatus", "cocktail_status")]
CocktailStatus,
[Mapping("savestatestatus", "savestate_status", "save_state_status")]
SaveStateStatus,
[Mapping("requiresartwork", "requires_artwork")]
RequiresArtwork,
[Mapping("unofficial")]
Unofficial,
[Mapping("nosoundhardware", "no_sound_hardware")]
NoSoundHardware,
[Mapping("incomplete")]
Incomplete,
#endregion
#region Extension
[Mapping("extension_name")]
Extension_Name,
#endregion
#region Feature
[Mapping("featuretype", "feature_type")]
FeatureType,
[Mapping("featurestatus", "feature_status")]
FeatureStatus,
[Mapping("featureoverall", "feature_overall")]
FeatureOverall,
#endregion
#region Input
[Mapping("service")]
Service,
[Mapping("tilt")]
Tilt,
[Mapping("players")]
Players,
[Mapping("coins")]
Coins,
#endregion
#region Instance
[Mapping("instance_name")]
Instance_Name,
[Mapping("instance_briefname", "instance_brief_name")]
Instance_BriefName,
#endregion
#region Location
[Mapping("location_name")]
Location_Name,
[Mapping("location_number")]
Location_Number,
[Mapping("location_inverted")]
Location_Inverted,
#endregion
#region Part
[Mapping("partname", "part_name")]
Part_Name,
[Mapping("partinterface", "part_interface")]
Part_Interface,
#endregion
#region PartFeature
[Mapping("part_feature_name")]
Part_Feature_Name,
[Mapping("part_feature_value")]
Part_Feature_Value,
#endregion
#region RamOption
[Mapping("content")]
Content,
#endregion
#region Release
[Mapping("language")]
Language,
#endregion
#region Setting
[Mapping("setting_name", "value_name")]
Setting_Name,
[Mapping("setting_value", "value_value")]
Setting_Value,
[Mapping("setting_default", "value_default")]
Setting_Default,
#endregion
#region SlotOption
[Mapping("slotoption_name")]
SlotOption_Name,
[Mapping("slotoption_devicename", "slotoption_device_name")]
SlotOption_DeviceName,
[Mapping("slotoption_default")]
SlotOption_Default,
#endregion
#region SoftwareList
[Mapping("softwareliststatus", "softwarelist_status")]
SoftwareListStatus,
[Mapping("filter")]
Filter,
#endregion
#region Sound
/// <remarks>Used in Sound</remarks>
[Mapping("channels")] [Mapping("channels")]
Channels, Channels,
#endregion /// <remarks>Used in Chip</remarks>
[Mapping("chiptype", "chip_type")]
ChipType,
#endregion /// <remarks>Used in Chip</remarks>
[Mapping("clock")]
Clock,
#endregion // Item-Specific /// <remarks>Used in Archive</remarks>
[Mapping("clone")]
Clone,
/// <remarks>Used in Driver</remarks>
[Mapping("cocktailstatus", "cocktail_status")]
CocktailStatus,
/// <remarks>Used in Input</remarks>
[Mapping("coins")]
Coins,
/// <remarks>Used in Archive</remarks>
[Mapping("complete")]
Complete,
/// <remarks>Used in Condition</remarks>
[Mapping("condition_mask")]
Condition_Mask,
/// <remarks>Used in Condition</remarks>
[Mapping("condition_relation")]
Condition_Relation,
/// <remarks>Used in Condition</remarks>
[Mapping("condition_tag")]
Condition_Tag,
/// <remarks>Used in Condition</remarks>
[Mapping("condition_value")]
Condition_Value,
/// <remarks>Used in RamOption</remarks>
[Mapping("content")]
Content,
/// <remarks>Used in Control</remarks>
[Mapping("control_buttons")]
Control_Buttons,
/// <remarks>Used in Control</remarks>
[Mapping("control_keydelta", "control_key_delta")]
Control_KeyDelta,
/// <remarks>Used in Control</remarks>
[Mapping("control_maximum")]
Control_Maximum,
/// <remarks>Used in Control</remarks>
[Mapping("control_minimum")]
Control_Minimum,
/// <remarks>Used in Control</remarks>
[Mapping("control_player")]
Control_Player,
/// <remarks>Used in Control</remarks>
[Mapping("control_reqbuttons", "control_req_buttons")]
Control_RequiredButtons,
/// <remarks>Used in Control</remarks>
[Mapping("control_reverse")]
Control_Reverse,
/// <remarks>Used in Control</remarks>
[Mapping("control_sensitivity")]
Control_Sensitivity,
/// <remarks>Used in Control</remarks>
[Mapping("control_type")]
Control_Type,
/// <remarks>Used in Control</remarks>
[Mapping("control_ways")]
Control_Ways,
/// <remarks>Used in Control</remarks>
[Mapping("control_ways2")]
Control_Ways2,
/// <remarks>Used in Control</remarks>
[Mapping("control_ways3")]
Control_Ways3,
/// <remarks>Used in Rom</remarks>
[Mapping("crc", "crc32")]
CRC,
/// <remarks>Used in Release and Rom</remarks>
[Mapping("date")]
Date,
/// <remarks>Used in Adjuster, BiosSet, RamOption, and Release</remarks>
[Mapping("default")]
Default,
/// <remarks>Used in BiosSet</remarks>
[Mapping("description", "biosdescription", "bios_description")]
Description,
/// <remarks>Used in Device</remarks>
[Mapping("devicetype", "device_type")]
DeviceType,
/// <remarks>Used in Archive</remarks>
[Mapping("devstatus", "dev_status")]
DevStatus,
/// <remarks>Used in Display</remarks>
[Mapping("displaytype", "display_type")]
DisplayType,
/// <remarks>Used in Driver</remarks>
[Mapping("emulationstatus", "emulation_status")]
EmulationStatus,
/// <remarks>Used in Extension</remarks>
[Mapping("extension_name")]
Extension_Name,
/// <remarks>Used in Feature</remarks>
[Mapping("featureoverall", "feature_overall")]
FeatureOverall,
/// <remarks>Used in Feature</remarks>
[Mapping("featurestatus", "feature_status")]
FeatureStatus,
/// <remarks>Used in Feature</remarks>
[Mapping("featuretype", "feature_type")]
FeatureType,
/// <remarks>Used in SoftwareList</remarks>
[Mapping("filter")]
Filter,
/// <remarks>Used in Device</remarks>
[Mapping("fixedimage", "fixed_image")]
FixedImage,
/// <remarks>Used in Display</remarks>
[Mapping("flipx")]
FlipX,
/// <remarks>Used in Display</remarks>
[Mapping("hbend")]
HBEnd,
/// <remarks>Used in Display</remarks>
[Mapping("hbstart")]
HBStart,
/// <remarks>Used in Display</remarks>
[Mapping("height")]
Height,
/// <remarks>Used in Display</remarks>
[Mapping("htotal")]
HTotal,
/// <remarks>Used in Driver</remarks>
[Mapping("incomplete")]
Incomplete,
/// <remarks>Used in Disk</remarks>
[Mapping("index")]
Index,
/// <remarks>Used in Instance</remarks>
[Mapping("instance_briefname", "instance_brief_name")]
Instance_BriefName,
/// <remarks>Used in Instance</remarks>
[Mapping("instance_name")]
Instance_Name,
/// <remarks>Used in Device</remarks>
[Mapping("interface")]
Interface,
/// <remarks>Used in Rom</remarks>
[Mapping("inverted")]
Inverted,
/// <remarks>Used in Release</remarks>
[Mapping("language")]
Language,
/// <remarks>Used in Archive</remarks>
[Mapping("languages")]
Languages,
/// <remarks>Used in Rom</remarks>
[Mapping("loadflag", "load_flag")]
LoadFlag,
/// <remarks>Used in Location</remarks>
[Mapping("location_inverted")]
Location_Inverted,
/// <remarks>Used in Location</remarks>
[Mapping("location_name")]
Location_Name,
/// <remarks>Used in Location</remarks>
[Mapping("location_number")]
Location_Number,
/// <remarks>Used in Device</remarks>
[Mapping("mandatory")]
Mandatory,
/// <remarks>Used in Condition, Configuration, and DipSwitch</remarks>
[Mapping("mask")]
Mask,
/// <remarks>Used in Disk, Media, and Rom</remarks>
[Mapping("md5", "md5hash", "md5_hash")]
MD5,
/// <remarks>Used in Disk and Rom</remarks>
[Mapping("merge", "mergetag", "merge_tag")]
Merge,
/// <remarks>Used in Rom</remarks>
[Mapping("mia")]
MIA,
/// <remarks>Used in Adjuster, Archive, BiosSet, Chip, Configuration, DataArea, DeviceReference, DipSwitch, Disk, DiskArea, Extension, Info, Instance, Location, Media, Part, PartFeature, RamOption, Release, Rom, Sample, Setting, SharedFeature, Slot, SlotOption, and SoftwareList</remarks>
[Mapping("name")]
Name,
/// <remarks>Used in Driver</remarks>
[Mapping("nosoundhardware", "no_sound_hardware")]
NoSoundHardware,
/// <remarks>Used in Archive</remarks>
[Mapping("number")]
Number,
/// <remarks>Used in Rom</remarks>
[Mapping("offset")]
Offset,
/// <remarks>Used in Rom</remarks>
[Mapping("subtype", "sub_type", "openmsxsubtype", "openmsx_subtype", "openmsx_sub_type")]
OpenMSXSubType,
/// <remarks>Used in Rom</remarks>
[Mapping("openmsxtype", "openmsx_type")]
OpenMSXType,
/// <remarks>Used in Disk and Rom</remarks>
[Mapping("optional")]
Optional,
/// <remarks>Used in Rom</remarks>
[Mapping("original")]
Original,
/// <remarks>Used in Rom</remarks>
[Mapping("original_filename")]
OriginalFilename,
/// <remarks>Used in PartFeature</remarks>
[Mapping("part_feature_name")]
Part_Feature_Name,
/// <remarks>Used in PartFeature</remarks>
[Mapping("part_feature_value")]
Part_Feature_Value,
/// <remarks>Used in Part</remarks>
[Mapping("partinterface", "part_interface")]
Part_Interface,
/// <remarks>Used in Part</remarks>
[Mapping("partname", "part_name")]
Part_Name,
/// <remarks>Used in Archive</remarks>
[Mapping("physical")]
Physical,
/// <remarks>Used in Display</remarks>
[Mapping("pixclock", "pix_clock")]
PixClock,
/// <remarks>Used in Input</remarks>
[Mapping("players")]
Players,
/// <remarks>Used in Display</remarks>
[Mapping("refresh")]
Refresh,
/// <remarks>Used in Archive, Disk, Release, and Rom</remarks>
[Mapping("region")]
Region,
/// <remarks>Used in Archive</remarks>
[Mapping("regparent", "reg_parent")]
RegParent,
/// <remarks>Used in Condition</remarks>
[Mapping("relation")]
Relation,
/// <remarks>Used in Rom</remarks>
[Mapping("remark")]
Remark,
/// <remarks>Used in Driver</remarks>
[Mapping("requiresartwork", "requires_artwork")]
RequiresArtwork,
/// <remarks>Used in Display</remarks>
[Mapping("rotate")]
Rotate,
/// <remarks>Used in Rom</remarks>
[Mapping("rotation")]
Rotation,
/// <remarks>Used in Driver</remarks>
[Mapping("savestatestatus", "savestate_status", "save_state_status")]
SaveStateStatus,
/// <remarks>Used in Input</remarks>
[Mapping("service")]
Service,
/// <remarks>Used in Setting</remarks>
[Mapping("setting_default", "value_default")]
Setting_Default,
/// <remarks>Used in Setting</remarks>
[Mapping("setting_name", "value_name")]
Setting_Name,
/// <remarks>Used in Setting</remarks>
[Mapping("setting_value", "value_value")]
Setting_Value,
/// <remarks>Used in Disk, Media, and Rom</remarks>
[Mapping("sha1", "sha_1", "sha1hash", "sha1_hash", "sha_1hash", "sha_1_hash")]
SHA1,
/// <remarks>Used in Media and Rom</remarks>
[Mapping("sha256", "sha_256", "sha256hash", "sha256_hash", "sha_256hash", "sha_256_hash")]
SHA256,
/// <remarks>Used in Rom</remarks>
[Mapping("sha384", "sha_384", "sha384hash", "sha384_hash", "sha_384hash", "sha_384_hash")]
SHA384,
/// <remarks>Used in Rom</remarks>
[Mapping("sha512", "sha_512", "sha512hash", "sha512_hash", "sha_512hash", "sha_512_hash")]
SHA512,
/// <remarks>Used in Rom</remarks>
[Mapping("size")]
Size,
/// <remarks>Used in SlotOption</remarks>
[Mapping("slotoption_default")]
SlotOption_Default,
/// <remarks>Used in SlotOption</remarks>
[Mapping("slotoption_devicename", "slotoption_device_name")]
SlotOption_DeviceName,
/// <remarks>Used in SlotOption</remarks>
[Mapping("slotoption_name")]
SlotOption_Name,
/// <remarks>Used in SoftwareList</remarks>
[Mapping("softwareliststatus", "softwarelist_status")]
SoftwareListStatus,
/// <remarks>Used in Media and Rom</remarks>
[Mapping("spamsum", "spam_sum")]
SpamSum,
/// <remarks>Used in Disk and Rom</remarks>
[Mapping("status")]
Status,
/// <remarks>Used in Rom</remarks>
[Mapping("summation")]
Summation,
/// <remarks>Used in Driver</remarks>
[Mapping("supportstatus", "support_status")]
SupportStatus,
/// <remarks>Used in Chip, Condition, Configuration, Device, DipSwitch, Display, Port, and SoftwareList</remarks>
[Mapping("tag")]
Tag,
/// <remarks>Used in Input</remarks>
[Mapping("tilt")]
Tilt,
/// <remarks>Internal value, common to all DatItems</remarks>
[Mapping("type")]
Type,
/// <remarks>Used in Driver</remarks>
[Mapping("unofficial")]
Unofficial,
/// <remarks>Used in Condition, Info, Rom, and SharedFeature</remarks>
[Mapping("value")]
Value,
/// <remarks>Used in Display</remarks>
[Mapping("vbend")]
VBEnd,
/// <remarks>Used in Display</remarks>
[Mapping("vbstart")]
VBStart,
/// <remarks>Used in Display</remarks>
[Mapping("vtotal")]
VTotal,
/// <remarks>Used in Display</remarks>
[Mapping("width")]
Width,
/// <remarks>Used in Disk</remarks>
[Mapping("writable")]
Writable,
} }
/// <summary> /// <summary>

View File

@@ -1,7 +1,4 @@
using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq;
using SabreTools.Core; using SabreTools.Core;
using SabreTools.Core.Tools; using SabreTools.Core.Tools;
using SabreTools.DatItems; using SabreTools.DatItems;
@@ -450,32 +447,32 @@ namespace SabreTools.DatFiles
/// <param name="archive">Archive to remove replace fields in</param> /// <param name="archive">Archive to remove replace fields in</param>
private void SetFields(Archive archive) private void SetFields(Archive archive)
{ {
if (DatItemMappings.ContainsKey(DatItemField.Number)) if (DatItemMappings.ContainsKey(DatItemField.Categories))
archive.Number = DatItemMappings[DatItemField.Number]; archive.Categories = DatItemMappings[DatItemField.Categories];
if (DatItemMappings.ContainsKey(DatItemField.Clone)) if (DatItemMappings.ContainsKey(DatItemField.Clone))
archive.CloneValue = DatItemMappings[DatItemField.Clone]; archive.CloneValue = DatItemMappings[DatItemField.Clone];
if (DatItemMappings.ContainsKey(DatItemField.RegParent)) if (DatItemMappings.ContainsKey(DatItemField.Complete))
archive.RegParent = DatItemMappings[DatItemField.RegParent]; archive.Complete = DatItemMappings[DatItemField.Complete];
if (DatItemMappings.ContainsKey(DatItemField.Region))
archive.Region = DatItemMappings[DatItemField.Region];
if (DatItemMappings.ContainsKey(DatItemField.Languages))
archive.Languages = DatItemMappings[DatItemField.Languages];
if (DatItemMappings.ContainsKey(DatItemField.DevStatus)) if (DatItemMappings.ContainsKey(DatItemField.DevStatus))
archive.DevStatus = DatItemMappings[DatItemField.DevStatus]; archive.DevStatus = DatItemMappings[DatItemField.DevStatus];
if (DatItemMappings.ContainsKey(DatItemField.Languages))
archive.Languages = DatItemMappings[DatItemField.Languages];
if (DatItemMappings.ContainsKey(DatItemField.Number))
archive.Number = DatItemMappings[DatItemField.Number];
if (DatItemMappings.ContainsKey(DatItemField.Physical)) if (DatItemMappings.ContainsKey(DatItemField.Physical))
archive.Physical = DatItemMappings[DatItemField.Physical]; archive.Physical = DatItemMappings[DatItemField.Physical];
if (DatItemMappings.ContainsKey(DatItemField.Complete)) if (DatItemMappings.ContainsKey(DatItemField.Region))
archive.Complete = DatItemMappings[DatItemField.Complete]; archive.Region = DatItemMappings[DatItemField.Region];
if (DatItemMappings.ContainsKey(DatItemField.Categories)) if (DatItemMappings.ContainsKey(DatItemField.RegParent))
archive.Categories = DatItemMappings[DatItemField.Categories]; archive.RegParent = DatItemMappings[DatItemField.RegParent];
} }
/// <summary> /// <summary>
@@ -484,11 +481,11 @@ namespace SabreTools.DatFiles
/// <param name="biosSet">BiosSet to remove replace fields in</param> /// <param name="biosSet">BiosSet to remove replace fields in</param>
private void SetFields(BiosSet biosSet) private void SetFields(BiosSet biosSet)
{ {
if (DatItemMappings.ContainsKey(DatItemField.Description))
biosSet.Description = DatItemMappings[DatItemField.Description];
if (DatItemMappings.ContainsKey(DatItemField.Default)) if (DatItemMappings.ContainsKey(DatItemField.Default))
biosSet.Default = DatItemMappings[DatItemField.Default].AsYesNo(); biosSet.Default = DatItemMappings[DatItemField.Default].AsYesNo();
if (DatItemMappings.ContainsKey(DatItemField.Description))
biosSet.Description = DatItemMappings[DatItemField.Description];
} }
/// <summary> /// <summary>
@@ -497,14 +494,14 @@ namespace SabreTools.DatFiles
/// <param name="chip">Chip to remove replace fields in</param> /// <param name="chip">Chip to remove replace fields in</param>
private void SetFields(Chip chip) private void SetFields(Chip chip)
{ {
if (DatItemMappings.ContainsKey(DatItemField.Tag))
chip.Tag = DatItemMappings[DatItemField.Tag];
if (DatItemMappings.ContainsKey(DatItemField.ChipType)) if (DatItemMappings.ContainsKey(DatItemField.ChipType))
chip.ChipType = DatItemMappings[DatItemField.ChipType].AsChipType(); chip.ChipType = DatItemMappings[DatItemField.ChipType].AsChipType();
if (DatItemMappings.ContainsKey(DatItemField.Clock)) if (DatItemMappings.ContainsKey(DatItemField.Clock))
chip.Clock = Utilities.CleanLong(DatItemMappings[DatItemField.Clock]); chip.Clock = Utilities.CleanLong(DatItemMappings[DatItemField.Clock]);
if (DatItemMappings.ContainsKey(DatItemField.Tag))
chip.Tag = DatItemMappings[DatItemField.Tag];
} }
/// <summary> /// <summary>
@@ -516,29 +513,29 @@ namespace SabreTools.DatFiles
{ {
if (sub) if (sub)
{ {
if (DatItemMappings.ContainsKey(DatItemField.Condition_Tag))
condition.Tag = DatItemMappings[DatItemField.Condition_Tag];
if (DatItemMappings.ContainsKey(DatItemField.Condition_Mask)) if (DatItemMappings.ContainsKey(DatItemField.Condition_Mask))
condition.Mask = DatItemMappings[DatItemField.Condition_Mask]; condition.Mask = DatItemMappings[DatItemField.Condition_Mask];
if (DatItemMappings.ContainsKey(DatItemField.Condition_Relation)) if (DatItemMappings.ContainsKey(DatItemField.Condition_Relation))
condition.Relation = DatItemMappings[DatItemField.Condition_Relation].AsRelation(); condition.Relation = DatItemMappings[DatItemField.Condition_Relation].AsRelation();
if (DatItemMappings.ContainsKey(DatItemField.Condition_Tag))
condition.Tag = DatItemMappings[DatItemField.Condition_Tag];
if (DatItemMappings.ContainsKey(DatItemField.Condition_Value)) if (DatItemMappings.ContainsKey(DatItemField.Condition_Value))
condition.Value = DatItemMappings[DatItemField.Condition_Value]; condition.Value = DatItemMappings[DatItemField.Condition_Value];
} }
else else
{ {
if (DatItemMappings.ContainsKey(DatItemField.Tag))
condition.Tag = DatItemMappings[DatItemField.Tag];
if (DatItemMappings.ContainsKey(DatItemField.Mask)) if (DatItemMappings.ContainsKey(DatItemField.Mask))
condition.Mask = DatItemMappings[DatItemField.Mask]; condition.Mask = DatItemMappings[DatItemField.Mask];
if (DatItemMappings.ContainsKey(DatItemField.Relation)) if (DatItemMappings.ContainsKey(DatItemField.Relation))
condition.Relation = DatItemMappings[DatItemField.Relation].AsRelation(); condition.Relation = DatItemMappings[DatItemField.Relation].AsRelation();
if (DatItemMappings.ContainsKey(DatItemField.Tag))
condition.Tag = DatItemMappings[DatItemField.Tag];
if (DatItemMappings.ContainsKey(DatItemField.Value)) if (DatItemMappings.ContainsKey(DatItemField.Value))
condition.Value = DatItemMappings[DatItemField.Value]; condition.Value = DatItemMappings[DatItemField.Value];
} }
@@ -550,12 +547,12 @@ namespace SabreTools.DatFiles
/// <param name="configuration">Configuration to remove replace fields in</param> /// <param name="configuration">Configuration to remove replace fields in</param>
private void SetFields(Configuration configuration) private void SetFields(Configuration configuration)
{ {
if (DatItemMappings.ContainsKey(DatItemField.Tag))
configuration.Tag = DatItemMappings[DatItemField.Tag];
if (DatItemMappings.ContainsKey(DatItemField.Mask)) if (DatItemMappings.ContainsKey(DatItemField.Mask))
configuration.Mask = DatItemMappings[DatItemField.Mask]; configuration.Mask = DatItemMappings[DatItemField.Mask];
if (DatItemMappings.ContainsKey(DatItemField.Tag))
configuration.Tag = DatItemMappings[DatItemField.Tag];
if (configuration.ConditionsSpecified) if (configuration.ConditionsSpecified)
{ {
foreach (Condition subCondition in configuration.Conditions) foreach (Condition subCondition in configuration.Conditions)
@@ -587,33 +584,33 @@ namespace SabreTools.DatFiles
/// <param name="control">Control to remove replace fields in</param> /// <param name="control">Control to remove replace fields in</param>
private void SetFields(Control control) private void SetFields(Control control)
{ {
if (DatItemMappings.ContainsKey(DatItemField.Control_Type))
control.ControlType = DatItemMappings[DatItemField.Control_Type].AsControlType();
if (DatItemMappings.ContainsKey(DatItemField.Control_Player))
control.Player = Utilities.CleanLong(DatItemMappings[DatItemField.Control_Player]);
if (DatItemMappings.ContainsKey(DatItemField.Control_Buttons)) if (DatItemMappings.ContainsKey(DatItemField.Control_Buttons))
control.Buttons = Utilities.CleanLong(DatItemMappings[DatItemField.Control_Buttons]); control.Buttons = Utilities.CleanLong(DatItemMappings[DatItemField.Control_Buttons]);
if (DatItemMappings.ContainsKey(DatItemField.Control_RequiredButtons)) if (DatItemMappings.ContainsKey(DatItemField.Control_Type))
control.RequiredButtons = Utilities.CleanLong(DatItemMappings[DatItemField.Control_RequiredButtons]); control.ControlType = DatItemMappings[DatItemField.Control_Type].AsControlType();
if (DatItemMappings.ContainsKey(DatItemField.Control_Minimum))
control.Minimum = Utilities.CleanLong(DatItemMappings[DatItemField.Control_Minimum]);
if (DatItemMappings.ContainsKey(DatItemField.Control_Maximum))
control.Maximum = Utilities.CleanLong(DatItemMappings[DatItemField.Control_Maximum]);
if (DatItemMappings.ContainsKey(DatItemField.Control_Sensitivity))
control.Sensitivity = Utilities.CleanLong(DatItemMappings[DatItemField.Control_Sensitivity]);
if (DatItemMappings.ContainsKey(DatItemField.Control_KeyDelta)) if (DatItemMappings.ContainsKey(DatItemField.Control_KeyDelta))
control.KeyDelta = Utilities.CleanLong(DatItemMappings[DatItemField.Control_KeyDelta]); control.KeyDelta = Utilities.CleanLong(DatItemMappings[DatItemField.Control_KeyDelta]);
if (DatItemMappings.ContainsKey(DatItemField.Control_Maximum))
control.Maximum = Utilities.CleanLong(DatItemMappings[DatItemField.Control_Maximum]);
if (DatItemMappings.ContainsKey(DatItemField.Control_Minimum))
control.Minimum = Utilities.CleanLong(DatItemMappings[DatItemField.Control_Minimum]);
if (DatItemMappings.ContainsKey(DatItemField.Control_Player))
control.Player = Utilities.CleanLong(DatItemMappings[DatItemField.Control_Player]);
if (DatItemMappings.ContainsKey(DatItemField.Control_RequiredButtons))
control.RequiredButtons = Utilities.CleanLong(DatItemMappings[DatItemField.Control_RequiredButtons]);
if (DatItemMappings.ContainsKey(DatItemField.Control_Reverse)) if (DatItemMappings.ContainsKey(DatItemField.Control_Reverse))
control.Reverse = DatItemMappings[DatItemField.Control_Reverse].AsYesNo(); control.Reverse = DatItemMappings[DatItemField.Control_Reverse].AsYesNo();
if (DatItemMappings.ContainsKey(DatItemField.Control_Sensitivity))
control.Sensitivity = Utilities.CleanLong(DatItemMappings[DatItemField.Control_Sensitivity]);
if (DatItemMappings.ContainsKey(DatItemField.Control_Ways)) if (DatItemMappings.ContainsKey(DatItemField.Control_Ways))
control.Ways = DatItemMappings[DatItemField.Control_Ways]; control.Ways = DatItemMappings[DatItemField.Control_Ways];
@@ -630,14 +627,17 @@ namespace SabreTools.DatFiles
/// <param name="dataArea">DataArea to remove replace fields in</param> /// <param name="dataArea">DataArea to remove replace fields in</param>
private void SetFields(DataArea dataArea) private void SetFields(DataArea dataArea)
{ {
if (DatItemMappings.ContainsKey(DatItemField.AreaEndianness))
dataArea.Endianness = DatItemMappings[DatItemField.AreaEndianness].AsEndianness();
if (DatItemMappings.ContainsKey(DatItemField.AreaName))
dataArea.Name = DatItemMappings[DatItemField.AreaName];
if (DatItemMappings.ContainsKey(DatItemField.AreaSize)) if (DatItemMappings.ContainsKey(DatItemField.AreaSize))
dataArea.Size = Utilities.CleanLong(DatItemMappings[DatItemField.AreaSize]); dataArea.Size = Utilities.CleanLong(DatItemMappings[DatItemField.AreaSize]);
if (DatItemMappings.ContainsKey(DatItemField.AreaWidth)) if (DatItemMappings.ContainsKey(DatItemField.AreaWidth))
dataArea.Width = Utilities.CleanLong(DatItemMappings[DatItemField.AreaWidth]); dataArea.Width = Utilities.CleanLong(DatItemMappings[DatItemField.AreaWidth]);
if (DatItemMappings.ContainsKey(DatItemField.AreaEndianness))
dataArea.Endianness = DatItemMappings[DatItemField.AreaEndianness].AsEndianness();
} }
/// <summary> /// <summary>
@@ -649,25 +649,17 @@ namespace SabreTools.DatFiles
if (DatItemMappings.ContainsKey(DatItemField.DeviceType)) if (DatItemMappings.ContainsKey(DatItemField.DeviceType))
device.DeviceType = DatItemMappings[DatItemField.DeviceType].AsDeviceType(); device.DeviceType = DatItemMappings[DatItemField.DeviceType].AsDeviceType();
if (DatItemMappings.ContainsKey(DatItemField.Tag))
device.Tag = DatItemMappings[DatItemField.Tag];
if (DatItemMappings.ContainsKey(DatItemField.FixedImage)) if (DatItemMappings.ContainsKey(DatItemField.FixedImage))
device.FixedImage = DatItemMappings[DatItemField.FixedImage]; device.FixedImage = DatItemMappings[DatItemField.FixedImage];
if (DatItemMappings.ContainsKey(DatItemField.Mandatory))
device.Mandatory = Utilities.CleanLong(DatItemMappings[DatItemField.Mandatory]);
if (DatItemMappings.ContainsKey(DatItemField.Interface)) if (DatItemMappings.ContainsKey(DatItemField.Interface))
device.Interface = DatItemMappings[DatItemField.Interface]; device.Interface = DatItemMappings[DatItemField.Interface];
if (device.InstancesSpecified) if (DatItemMappings.ContainsKey(DatItemField.Mandatory))
{ device.Mandatory = Utilities.CleanLong(DatItemMappings[DatItemField.Mandatory]);
foreach (Instance subInstance in device.Instances)
{ if (DatItemMappings.ContainsKey(DatItemField.Tag))
SetFields(subInstance); device.Tag = DatItemMappings[DatItemField.Tag];
}
}
if (device.ExtensionsSpecified) if (device.ExtensionsSpecified)
{ {
@@ -676,6 +668,14 @@ namespace SabreTools.DatFiles
SetFields(subExtension); SetFields(subExtension);
} }
} }
if (device.InstancesSpecified)
{
foreach (Instance subInstance in device.Instances)
{
SetFields(subInstance);
}
}
} }
/// <summary> /// <summary>
@@ -684,14 +684,12 @@ namespace SabreTools.DatFiles
/// <param name="dipSwitch">DipSwitch to remove replace fields in</param> /// <param name="dipSwitch">DipSwitch to remove replace fields in</param>
private void SetFields(DipSwitch dipSwitch) private void SetFields(DipSwitch dipSwitch)
{ {
#region Common if (DatItemMappings.ContainsKey(DatItemField.Mask))
dipSwitch.Mask = DatItemMappings[DatItemField.Mask];
if (DatItemMappings.ContainsKey(DatItemField.Tag)) if (DatItemMappings.ContainsKey(DatItemField.Tag))
dipSwitch.Tag = DatItemMappings[DatItemField.Tag]; dipSwitch.Tag = DatItemMappings[DatItemField.Tag];
if (DatItemMappings.ContainsKey(DatItemField.Mask))
dipSwitch.Mask = DatItemMappings[DatItemField.Mask];
if (dipSwitch.ConditionsSpecified) if (dipSwitch.ConditionsSpecified)
{ {
foreach (Condition subCondition in dipSwitch.Conditions) foreach (Condition subCondition in dipSwitch.Conditions)
@@ -716,16 +714,8 @@ namespace SabreTools.DatFiles
} }
} }
#endregion
#region SoftwareList
// Handle Part-specific fields
dipSwitch.Part ??= new Part(); dipSwitch.Part ??= new Part();
SetFields(dipSwitch.Part); SetFields(dipSwitch.Part);
#endregion
} }
/// <summary> /// <summary>
@@ -734,45 +724,35 @@ namespace SabreTools.DatFiles
/// <param name="disk">Disk to remove replace fields in</param> /// <param name="disk">Disk to remove replace fields in</param>
private void SetFields(Disk disk) private void SetFields(Disk disk)
{ {
#region Common if (DatItemMappings.ContainsKey(DatItemField.Index))
disk.Index = DatItemMappings[DatItemField.Index];
if (DatItemMappings.ContainsKey(DatItemField.MD5)) if (DatItemMappings.ContainsKey(DatItemField.MD5))
disk.MD5 = DatItemMappings[DatItemField.MD5]; disk.MD5 = DatItemMappings[DatItemField.MD5];
if (DatItemMappings.ContainsKey(DatItemField.SHA1))
disk.SHA1 = DatItemMappings[DatItemField.SHA1];
if (DatItemMappings.ContainsKey(DatItemField.Merge)) if (DatItemMappings.ContainsKey(DatItemField.Merge))
disk.MergeTag = DatItemMappings[DatItemField.Merge]; disk.MergeTag = DatItemMappings[DatItemField.Merge];
if (DatItemMappings.ContainsKey(DatItemField.Region))
disk.Region = DatItemMappings[DatItemField.Region];
if (DatItemMappings.ContainsKey(DatItemField.Index))
disk.Index = DatItemMappings[DatItemField.Index];
if (DatItemMappings.ContainsKey(DatItemField.Writable))
disk.Writable = DatItemMappings[DatItemField.Writable].AsYesNo();
if (DatItemMappings.ContainsKey(DatItemField.Status))
disk.ItemStatus = DatItemMappings[DatItemField.Status].AsItemStatus();
if (DatItemMappings.ContainsKey(DatItemField.Optional)) if (DatItemMappings.ContainsKey(DatItemField.Optional))
disk.Optional = DatItemMappings[DatItemField.Optional].AsYesNo(); disk.Optional = DatItemMappings[DatItemField.Optional].AsYesNo();
#endregion if (DatItemMappings.ContainsKey(DatItemField.Region))
disk.Region = DatItemMappings[DatItemField.Region];
#region SoftwareList if (DatItemMappings.ContainsKey(DatItemField.SHA1))
disk.SHA1 = DatItemMappings[DatItemField.SHA1];
if (DatItemMappings.ContainsKey(DatItemField.Status))
disk.ItemStatus = DatItemMappings[DatItemField.Status].AsItemStatus();
if (DatItemMappings.ContainsKey(DatItemField.Writable))
disk.Writable = DatItemMappings[DatItemField.Writable].AsYesNo();
disk.DiskArea ??= new DiskArea(); disk.DiskArea ??= new DiskArea();
SetFields(disk.DiskArea); SetFields(disk.DiskArea);
disk.Part ??= new Part(); disk.Part ??= new Part();
SetFields(disk.Part); SetFields(disk.Part);
#endregion
} }
/// <summary> /// <summary>
@@ -791,47 +771,47 @@ namespace SabreTools.DatFiles
/// <param name="display">Display to remove replace fields in</param> /// <param name="display">Display to remove replace fields in</param>
private void SetFields(Display display) private void SetFields(Display display)
{ {
if (DatItemMappings.ContainsKey(DatItemField.Tag))
display.Tag = DatItemMappings[DatItemField.Tag];
if (DatItemMappings.ContainsKey(DatItemField.DisplayType)) if (DatItemMappings.ContainsKey(DatItemField.DisplayType))
display.DisplayType = DatItemMappings[DatItemField.DisplayType].AsDisplayType(); display.DisplayType = DatItemMappings[DatItemField.DisplayType].AsDisplayType();
if (DatItemMappings.ContainsKey(DatItemField.Rotate))
display.Rotate = Utilities.CleanLong(DatItemMappings[DatItemField.Rotate]);
if (DatItemMappings.ContainsKey(DatItemField.FlipX)) if (DatItemMappings.ContainsKey(DatItemField.FlipX))
display.FlipX = DatItemMappings[DatItemField.FlipX].AsYesNo(); display.FlipX = DatItemMappings[DatItemField.FlipX].AsYesNo();
if (DatItemMappings.ContainsKey(DatItemField.Width))
display.Width = Utilities.CleanLong(DatItemMappings[DatItemField.Width]);
if (DatItemMappings.ContainsKey(DatItemField.Height)) if (DatItemMappings.ContainsKey(DatItemField.Height))
display.Height = Utilities.CleanLong(DatItemMappings[DatItemField.Height]); display.Height = Utilities.CleanLong(DatItemMappings[DatItemField.Height]);
if (DatItemMappings.ContainsKey(DatItemField.Refresh))
display.Refresh = Utilities.CleanDouble(DatItemMappings[DatItemField.Refresh]);
if (DatItemMappings.ContainsKey(DatItemField.PixClock))
display.PixClock = Utilities.CleanLong(DatItemMappings[DatItemField.PixClock]);
if (DatItemMappings.ContainsKey(DatItemField.HTotal))
display.HTotal = Utilities.CleanLong(DatItemMappings[DatItemField.HTotal]);
if (DatItemMappings.ContainsKey(DatItemField.HBEnd)) if (DatItemMappings.ContainsKey(DatItemField.HBEnd))
display.HBEnd = Utilities.CleanLong(DatItemMappings[DatItemField.HBEnd]); display.HBEnd = Utilities.CleanLong(DatItemMappings[DatItemField.HBEnd]);
if (DatItemMappings.ContainsKey(DatItemField.HBStart)) if (DatItemMappings.ContainsKey(DatItemField.HBStart))
display.HBStart = Utilities.CleanLong(DatItemMappings[DatItemField.HBStart]); display.HBStart = Utilities.CleanLong(DatItemMappings[DatItemField.HBStart]);
if (DatItemMappings.ContainsKey(DatItemField.VTotal)) if (DatItemMappings.ContainsKey(DatItemField.HTotal))
display.VTotal = Utilities.CleanLong(DatItemMappings[DatItemField.VTotal]); display.HTotal = Utilities.CleanLong(DatItemMappings[DatItemField.HTotal]);
if (DatItemMappings.ContainsKey(DatItemField.PixClock))
display.PixClock = Utilities.CleanLong(DatItemMappings[DatItemField.PixClock]);
if (DatItemMappings.ContainsKey(DatItemField.Refresh))
display.Refresh = Utilities.CleanDouble(DatItemMappings[DatItemField.Refresh]);
if (DatItemMappings.ContainsKey(DatItemField.Rotate))
display.Rotate = Utilities.CleanLong(DatItemMappings[DatItemField.Rotate]);
if (DatItemMappings.ContainsKey(DatItemField.Tag))
display.Tag = DatItemMappings[DatItemField.Tag];
if (DatItemMappings.ContainsKey(DatItemField.VBEnd)) if (DatItemMappings.ContainsKey(DatItemField.VBEnd))
display.VBEnd = Utilities.CleanLong(DatItemMappings[DatItemField.VBEnd]); display.VBEnd = Utilities.CleanLong(DatItemMappings[DatItemField.VBEnd]);
if (DatItemMappings.ContainsKey(DatItemField.VBStart)) if (DatItemMappings.ContainsKey(DatItemField.VBStart))
display.VBStart = Utilities.CleanLong(DatItemMappings[DatItemField.VBStart]); display.VBStart = Utilities.CleanLong(DatItemMappings[DatItemField.VBStart]);
if (DatItemMappings.ContainsKey(DatItemField.VTotal))
display.VTotal = Utilities.CleanLong(DatItemMappings[DatItemField.VTotal]);
if (DatItemMappings.ContainsKey(DatItemField.Width))
display.Width = Utilities.CleanLong(DatItemMappings[DatItemField.Width]);
} }
/// <summary> /// <summary>
@@ -840,29 +820,29 @@ namespace SabreTools.DatFiles
/// <param name="driver">Driver to remove replace fields in</param> /// <param name="driver">Driver to remove replace fields in</param>
private void SetFields(Driver driver) private void SetFields(Driver driver)
{ {
if (DatItemMappings.ContainsKey(DatItemField.SupportStatus)) if (DatItemMappings.ContainsKey(DatItemField.CocktailStatus))
driver.Status = DatItemMappings[DatItemField.SupportStatus].AsSupportStatus(); driver.Cocktail = DatItemMappings[DatItemField.CocktailStatus].AsSupportStatus();
if (DatItemMappings.ContainsKey(DatItemField.Incomplete))
driver.Incomplete = DatItemMappings[DatItemField.Incomplete].AsYesNo();
if (DatItemMappings.ContainsKey(DatItemField.EmulationStatus)) if (DatItemMappings.ContainsKey(DatItemField.EmulationStatus))
driver.Emulation = DatItemMappings[DatItemField.EmulationStatus].AsSupportStatus(); driver.Emulation = DatItemMappings[DatItemField.EmulationStatus].AsSupportStatus();
if (DatItemMappings.ContainsKey(DatItemField.CocktailStatus)) if (DatItemMappings.ContainsKey(DatItemField.NoSoundHardware))
driver.Cocktail = DatItemMappings[DatItemField.CocktailStatus].AsSupportStatus(); driver.NoSoundHardware = DatItemMappings[DatItemField.NoSoundHardware].AsYesNo();
if (DatItemMappings.ContainsKey(DatItemField.SaveStateStatus))
driver.SaveState = DatItemMappings[DatItemField.SaveStateStatus].AsSupported();
if (DatItemMappings.ContainsKey(DatItemField.RequiresArtwork)) if (DatItemMappings.ContainsKey(DatItemField.RequiresArtwork))
driver.RequiresArtwork = DatItemMappings[DatItemField.RequiresArtwork].AsYesNo(); driver.RequiresArtwork = DatItemMappings[DatItemField.RequiresArtwork].AsYesNo();
if (DatItemMappings.ContainsKey(DatItemField.SaveStateStatus))
driver.SaveState = DatItemMappings[DatItemField.SaveStateStatus].AsSupported();
if (DatItemMappings.ContainsKey(DatItemField.SupportStatus))
driver.Status = DatItemMappings[DatItemField.SupportStatus].AsSupportStatus();
if (DatItemMappings.ContainsKey(DatItemField.Unofficial)) if (DatItemMappings.ContainsKey(DatItemField.Unofficial))
driver.Unofficial = DatItemMappings[DatItemField.Unofficial].AsYesNo(); driver.Unofficial = DatItemMappings[DatItemField.Unofficial].AsYesNo();
if (DatItemMappings.ContainsKey(DatItemField.NoSoundHardware))
driver.NoSoundHardware = DatItemMappings[DatItemField.NoSoundHardware].AsYesNo();
if (DatItemMappings.ContainsKey(DatItemField.Incomplete))
driver.Incomplete = DatItemMappings[DatItemField.Incomplete].AsYesNo();
} }
/// <summary> /// <summary>
@@ -881,14 +861,14 @@ namespace SabreTools.DatFiles
/// <param name="feature">Feature to remove replace fields in</param> /// <param name="feature">Feature to remove replace fields in</param>
private void SetFields(Feature feature) private void SetFields(Feature feature)
{ {
if (DatItemMappings.ContainsKey(DatItemField.FeatureType)) if (DatItemMappings.ContainsKey(DatItemField.FeatureOverall))
feature.Type = DatItemMappings[DatItemField.FeatureType].AsFeatureType(); feature.Overall = DatItemMappings[DatItemField.FeatureOverall].AsFeatureStatus();
if (DatItemMappings.ContainsKey(DatItemField.FeatureStatus)) if (DatItemMappings.ContainsKey(DatItemField.FeatureStatus))
feature.Status = DatItemMappings[DatItemField.FeatureStatus].AsFeatureStatus(); feature.Status = DatItemMappings[DatItemField.FeatureStatus].AsFeatureStatus();
if (DatItemMappings.ContainsKey(DatItemField.FeatureOverall)) if (DatItemMappings.ContainsKey(DatItemField.FeatureType))
feature.Overall = DatItemMappings[DatItemField.FeatureOverall].AsFeatureStatus(); feature.Type = DatItemMappings[DatItemField.FeatureType].AsFeatureType();
} }
/// <summary> /// <summary>
@@ -907,18 +887,18 @@ namespace SabreTools.DatFiles
/// <param name="input">Input to remove replace fields in</param> /// <param name="input">Input to remove replace fields in</param>
private void SetFields(Input input) private void SetFields(Input input)
{ {
if (DatItemMappings.ContainsKey(DatItemField.Coins))
input.Coins = Utilities.CleanLong(DatItemMappings[DatItemField.Coins]);
if (DatItemMappings.ContainsKey(DatItemField.Players))
input.Players = Utilities.CleanLong(DatItemMappings[DatItemField.Players]);
if (DatItemMappings.ContainsKey(DatItemField.Service)) if (DatItemMappings.ContainsKey(DatItemField.Service))
input.Service = DatItemMappings[DatItemField.Service].AsYesNo(); input.Service = DatItemMappings[DatItemField.Service].AsYesNo();
if (DatItemMappings.ContainsKey(DatItemField.Tilt)) if (DatItemMappings.ContainsKey(DatItemField.Tilt))
input.Tilt = DatItemMappings[DatItemField.Tilt].AsYesNo(); input.Tilt = DatItemMappings[DatItemField.Tilt].AsYesNo();
if (DatItemMappings.ContainsKey(DatItemField.Players))
input.Players = Utilities.CleanLong(DatItemMappings[DatItemField.Players]);
if (DatItemMappings.ContainsKey(DatItemField.Coins))
input.Coins = Utilities.CleanLong(DatItemMappings[DatItemField.Coins]);
if (input.ControlsSpecified) if (input.ControlsSpecified)
{ {
foreach (Control subControl in input.Controls) foreach (Control subControl in input.Controls)
@@ -934,11 +914,11 @@ namespace SabreTools.DatFiles
/// <param name="instance">Instance to remove replace fields in</param> /// <param name="instance">Instance to remove replace fields in</param>
private void SetFields(Instance instance) private void SetFields(Instance instance)
{ {
if (DatItemMappings.ContainsKey(DatItemField.Instance_Name))
instance.BriefName = DatItemMappings[DatItemField.Instance_Name];
if (DatItemMappings.ContainsKey(DatItemField.Instance_BriefName)) if (DatItemMappings.ContainsKey(DatItemField.Instance_BriefName))
instance.BriefName = DatItemMappings[DatItemField.Instance_BriefName]; instance.BriefName = DatItemMappings[DatItemField.Instance_BriefName];
if (DatItemMappings.ContainsKey(DatItemField.Instance_Name))
instance.BriefName = DatItemMappings[DatItemField.Instance_Name];
} }
/// <summary> /// <summary>
@@ -947,14 +927,14 @@ namespace SabreTools.DatFiles
/// <param name="location">Location to remove replace fields in</param> /// <param name="location">Location to remove replace fields in</param>
private void SetFields(Location location) private void SetFields(Location location)
{ {
if (DatItemMappings.ContainsKey(DatItemField.Location_Inverted))
location.Inverted = DatItemMappings[DatItemField.Location_Inverted].AsYesNo();
if (DatItemMappings.ContainsKey(DatItemField.Location_Name)) if (DatItemMappings.ContainsKey(DatItemField.Location_Name))
location.Name = DatItemMappings[DatItemField.Location_Name]; location.Name = DatItemMappings[DatItemField.Location_Name];
if (DatItemMappings.ContainsKey(DatItemField.Location_Number)) if (DatItemMappings.ContainsKey(DatItemField.Location_Number))
location.Number = Utilities.CleanLong(DatItemMappings[DatItemField.Location_Number]); location.Number = Utilities.CleanLong(DatItemMappings[DatItemField.Location_Number]);
if (DatItemMappings.ContainsKey(DatItemField.Location_Inverted))
location.Inverted = DatItemMappings[DatItemField.Location_Inverted].AsYesNo();
} }
/// <summary> /// <summary>
@@ -982,12 +962,12 @@ namespace SabreTools.DatFiles
/// <param name="part">Part to remove replace fields in</param> /// <param name="part">Part to remove replace fields in</param>
private void SetFields(Part part) private void SetFields(Part part)
{ {
if (DatItemMappings.ContainsKey(DatItemField.Part_Name))
part.Name = DatItemMappings[DatItemField.Part_Name];
if (DatItemMappings.ContainsKey(DatItemField.Part_Interface)) if (DatItemMappings.ContainsKey(DatItemField.Part_Interface))
part.Interface = DatItemMappings[DatItemField.Part_Interface]; part.Interface = DatItemMappings[DatItemField.Part_Interface];
if (DatItemMappings.ContainsKey(DatItemField.Part_Name))
part.Name = DatItemMappings[DatItemField.Part_Name];
if (part.FeaturesSpecified) if (part.FeaturesSpecified)
{ {
foreach (PartFeature subPartFeature in part.Features) foreach (PartFeature subPartFeature in part.Features)
@@ -1034,11 +1014,11 @@ namespace SabreTools.DatFiles
/// <param name="ramOption">RamOption to remove replace fields in</param> /// <param name="ramOption">RamOption to remove replace fields in</param>
private void SetFields(RamOption ramOption) private void SetFields(RamOption ramOption)
{ {
if (DatItemMappings.ContainsKey(DatItemField.Default))
ramOption.Default = DatItemMappings[DatItemField.Default].AsYesNo();
if (DatItemMappings.ContainsKey(DatItemField.Content)) if (DatItemMappings.ContainsKey(DatItemField.Content))
ramOption.Content = DatItemMappings[DatItemField.Content]; ramOption.Content = DatItemMappings[DatItemField.Content];
if (DatItemMappings.ContainsKey(DatItemField.Default))
ramOption.Default = DatItemMappings[DatItemField.Default].AsYesNo();
} }
/// <summary> /// <summary>
@@ -1047,17 +1027,17 @@ namespace SabreTools.DatFiles
/// <param name="release">Release to remove replace fields in</param> /// <param name="release">Release to remove replace fields in</param>
private void SetFields(Release release) private void SetFields(Release release)
{ {
if (DatItemMappings.ContainsKey(DatItemField.Region))
release.Region = DatItemMappings[DatItemField.Region];
if (DatItemMappings.ContainsKey(DatItemField.Language))
release.Language = DatItemMappings[DatItemField.Language];
if (DatItemMappings.ContainsKey(DatItemField.Date)) if (DatItemMappings.ContainsKey(DatItemField.Date))
release.Date = DatItemMappings[DatItemField.Date]; release.Date = DatItemMappings[DatItemField.Date];
if (DatItemMappings.ContainsKey(DatItemField.Default)) if (DatItemMappings.ContainsKey(DatItemField.Default))
release.Default = DatItemMappings[DatItemField.Default].AsYesNo(); release.Default = DatItemMappings[DatItemField.Default].AsYesNo();
if (DatItemMappings.ContainsKey(DatItemField.Language))
release.Language = DatItemMappings[DatItemField.Language];
if (DatItemMappings.ContainsKey(DatItemField.Region))
release.Region = DatItemMappings[DatItemField.Region];
} }
/// <summary> /// <summary>
@@ -1066,20 +1046,72 @@ namespace SabreTools.DatFiles
/// <param name="rom">Rom to remove replace fields in</param> /// <param name="rom">Rom to remove replace fields in</param>
private void SetFields(Rom rom) private void SetFields(Rom rom)
{ {
#region Common if (DatItemMappings.ContainsKey(DatItemField.AltName))
rom.AltName = DatItemMappings[DatItemField.AltName];
if (DatItemMappings.ContainsKey(DatItemField.AltTitle))
rom.AltTitle = DatItemMappings[DatItemField.AltTitle];
if (DatItemMappings.ContainsKey(DatItemField.ArchiveDotOrgFormat))
rom.ArchiveDotOrgFormat = DatItemMappings[DatItemField.ArchiveDotOrgFormat];
if (DatItemMappings.ContainsKey(DatItemField.ArchiveDotOrgSource))
rom.ArchiveDotOrgSource = DatItemMappings[DatItemField.ArchiveDotOrgSource];
if (DatItemMappings.ContainsKey(DatItemField.Bios)) if (DatItemMappings.ContainsKey(DatItemField.Bios))
rom.Bios = DatItemMappings[DatItemField.Bios]; rom.Bios = DatItemMappings[DatItemField.Bios];
if (DatItemMappings.ContainsKey(DatItemField.Size)) if (DatItemMappings.ContainsKey(DatItemField.Boot))
rom.Size = Utilities.CleanLong(DatItemMappings[DatItemField.Size]); rom.Boot = DatItemMappings[DatItemField.Boot];
if (DatItemMappings.ContainsKey(DatItemField.CRC)) if (DatItemMappings.ContainsKey(DatItemField.CRC))
rom.CRC = DatItemMappings[DatItemField.CRC]; rom.CRC = DatItemMappings[DatItemField.CRC];
if (DatItemMappings.ContainsKey(DatItemField.Date))
rom.Date = DatItemMappings[DatItemField.Date];
if (DatItemMappings.ContainsKey(DatItemField.Inverted))
rom.Inverted = DatItemMappings[DatItemField.Inverted].AsYesNo();
if (DatItemMappings.ContainsKey(DatItemField.LoadFlag))
rom.LoadFlag = DatItemMappings[DatItemField.LoadFlag].AsLoadFlag();
if (DatItemMappings.ContainsKey(DatItemField.MD5)) if (DatItemMappings.ContainsKey(DatItemField.MD5))
rom.MD5 = DatItemMappings[DatItemField.MD5]; rom.MD5 = DatItemMappings[DatItemField.MD5];
if (DatItemMappings.ContainsKey(DatItemField.Merge))
rom.MergeTag = DatItemMappings[DatItemField.Merge];
if (DatItemMappings.ContainsKey(DatItemField.MIA))
rom.MIA = DatItemMappings[DatItemField.MIA].AsYesNo();
if (DatItemMappings.ContainsKey(DatItemField.Offset))
rom.Offset = DatItemMappings[DatItemField.Offset];
if (DatItemMappings.ContainsKey(DatItemField.OpenMSXSubType))
rom.OpenMSXSubType = DatItemMappings[DatItemField.OpenMSXSubType].AsOpenMSXSubType();
if (DatItemMappings.ContainsKey(DatItemField.OpenMSXType))
rom.OpenMSXType = DatItemMappings[DatItemField.OpenMSXType];
if (DatItemMappings.ContainsKey(DatItemField.Optional))
rom.Optional = DatItemMappings[DatItemField.Optional].AsYesNo();
if (DatItemMappings.ContainsKey(DatItemField.Original))
rom.Original = new Original() { Content = DatItemMappings[DatItemField.Original] };
if (DatItemMappings.ContainsKey(DatItemField.OriginalFilename))
rom.OriginalFilename = DatItemMappings[DatItemField.OriginalFilename];
if (DatItemMappings.ContainsKey(DatItemField.Region))
rom.Region = DatItemMappings[DatItemField.Region];
if (DatItemMappings.ContainsKey(DatItemField.Remark))
rom.Remark = DatItemMappings[DatItemField.Remark];
if (DatItemMappings.ContainsKey(DatItemField.Rotation))
rom.Rotation = DatItemMappings[DatItemField.Rotation];
if (DatItemMappings.ContainsKey(DatItemField.SHA1)) if (DatItemMappings.ContainsKey(DatItemField.SHA1))
rom.SHA1 = DatItemMappings[DatItemField.SHA1]; rom.SHA1 = DatItemMappings[DatItemField.SHA1];
@@ -1092,100 +1124,26 @@ namespace SabreTools.DatFiles
if (DatItemMappings.ContainsKey(DatItemField.SHA512)) if (DatItemMappings.ContainsKey(DatItemField.SHA512))
rom.SHA512 = DatItemMappings[DatItemField.SHA512]; rom.SHA512 = DatItemMappings[DatItemField.SHA512];
if (DatItemMappings.ContainsKey(DatItemField.Size))
rom.Size = Utilities.CleanLong(DatItemMappings[DatItemField.Size]);
if (DatItemMappings.ContainsKey(DatItemField.SpamSum)) if (DatItemMappings.ContainsKey(DatItemField.SpamSum))
rom.SpamSum = DatItemMappings[DatItemField.SpamSum]; rom.SpamSum = DatItemMappings[DatItemField.SpamSum];
if (DatItemMappings.ContainsKey(DatItemField.Merge))
rom.MergeTag = DatItemMappings[DatItemField.Merge];
if (DatItemMappings.ContainsKey(DatItemField.Region))
rom.Region = DatItemMappings[DatItemField.Region];
if (DatItemMappings.ContainsKey(DatItemField.Offset))
rom.Offset = DatItemMappings[DatItemField.Offset];
if (DatItemMappings.ContainsKey(DatItemField.Date))
rom.Date = DatItemMappings[DatItemField.Date];
if (DatItemMappings.ContainsKey(DatItemField.Status)) if (DatItemMappings.ContainsKey(DatItemField.Status))
rom.ItemStatus = DatItemMappings[DatItemField.Status].AsItemStatus(); rom.ItemStatus = DatItemMappings[DatItemField.Status].AsItemStatus();
if (DatItemMappings.ContainsKey(DatItemField.Optional))
rom.Optional = DatItemMappings[DatItemField.Optional].AsYesNo();
if (DatItemMappings.ContainsKey(DatItemField.Inverted))
rom.Inverted = DatItemMappings[DatItemField.Optional].AsYesNo();
#endregion
#region Archive.org
if (DatItemMappings.ContainsKey(DatItemField.ArchiveDotOrgSource))
rom.ArchiveDotOrgSource = DatItemMappings[DatItemField.ArchiveDotOrgSource];
if (DatItemMappings.ContainsKey(DatItemField.ArchiveDotOrgFormat))
rom.ArchiveDotOrgFormat = DatItemMappings[DatItemField.ArchiveDotOrgFormat];
if (DatItemMappings.ContainsKey(DatItemField.OriginalFilename))
rom.OriginalFilename = DatItemMappings[DatItemField.OriginalFilename];
if (DatItemMappings.ContainsKey(DatItemField.Rotation))
rom.Rotation = DatItemMappings[DatItemField.Rotation];
if (DatItemMappings.ContainsKey(DatItemField.Summation)) if (DatItemMappings.ContainsKey(DatItemField.Summation))
rom.Summation = DatItemMappings[DatItemField.Summation]; rom.Summation = DatItemMappings[DatItemField.Summation];
#endregion
#region AttractMode
if (DatItemMappings.ContainsKey(DatItemField.AltName))
rom.AltName = DatItemMappings[DatItemField.AltName];
if (DatItemMappings.ContainsKey(DatItemField.AltTitle))
rom.AltTitle = DatItemMappings[DatItemField.AltTitle];
if (DatItemMappings.ContainsKey(DatItemField.MIA))
rom.MIA = DatItemMappings[DatItemField.MIA].AsYesNo();
#endregion
#region OpenMSX
if (DatItemMappings.ContainsKey(DatItemField.Original))
rom.Original = new Original() { Content = DatItemMappings[DatItemField.Original] };
if (DatItemMappings.ContainsKey(DatItemField.OpenMSXSubType))
rom.OpenMSXSubType = DatItemMappings[DatItemField.OpenMSXSubType].AsOpenMSXSubType();
if (DatItemMappings.ContainsKey(DatItemField.OpenMSXType))
rom.OpenMSXType = DatItemMappings[DatItemField.OpenMSXType];
if (DatItemMappings.ContainsKey(DatItemField.Remark))
rom.Remark = DatItemMappings[DatItemField.Remark];
if (DatItemMappings.ContainsKey(DatItemField.Boot))
rom.Boot = DatItemMappings[DatItemField.Boot];
#endregion
#region SoftwareList
if (DatItemMappings.ContainsKey(DatItemField.LoadFlag))
rom.LoadFlag = DatItemMappings[DatItemField.LoadFlag].AsLoadFlag();
if (DatItemMappings.ContainsKey(DatItemField.Value)) if (DatItemMappings.ContainsKey(DatItemField.Value))
rom.Value = DatItemMappings[DatItemField.Value]; rom.Value = DatItemMappings[DatItemField.Value];
rom.DataArea ??= new DataArea(); rom.DataArea ??= new DataArea();
SetFields(rom.DataArea); SetFields(rom.DataArea);
rom.Part ??= new Part(); rom.Part ??= new Part();
SetFields(rom.Part); SetFields(rom.Part);
#endregion
} }
/// <summary> /// <summary>
@@ -1194,15 +1152,15 @@ namespace SabreTools.DatFiles
/// <param name="setting">Setting to remove replace fields in</param> /// <param name="setting">Setting to remove replace fields in</param>
private void SetFields(Setting setting) private void SetFields(Setting setting)
{ {
if (DatItemMappings.ContainsKey(DatItemField.Setting_Default))
setting.Default = DatItemMappings[DatItemField.Setting_Default].AsYesNo();
if (DatItemMappings.ContainsKey(DatItemField.Setting_Name)) if (DatItemMappings.ContainsKey(DatItemField.Setting_Name))
setting.Name = DatItemMappings[DatItemField.Setting_Name]; setting.Name = DatItemMappings[DatItemField.Setting_Name];
if (DatItemMappings.ContainsKey(DatItemField.Setting_Value)) if (DatItemMappings.ContainsKey(DatItemField.Setting_Value))
setting.Value = DatItemMappings[DatItemField.Setting_Value]; setting.Value = DatItemMappings[DatItemField.Setting_Value];
if (DatItemMappings.ContainsKey(DatItemField.Setting_Default))
setting.Default = DatItemMappings[DatItemField.Setting_Default].AsYesNo();
if (setting.ConditionsSpecified) if (setting.ConditionsSpecified)
{ {
foreach (Condition subCondition in setting.Conditions) foreach (Condition subCondition in setting.Conditions)
@@ -1243,14 +1201,14 @@ namespace SabreTools.DatFiles
/// <param name="slotOption">SlotOption to remove replace fields in</param> /// <param name="slotOption">SlotOption to remove replace fields in</param>
private void SetFields(SlotOption slotOption) private void SetFields(SlotOption slotOption)
{ {
if (DatItemMappings.ContainsKey(DatItemField.SlotOption_Name)) if (DatItemMappings.ContainsKey(DatItemField.SlotOption_Default))
slotOption.Name = DatItemMappings[DatItemField.SlotOption_Name]; slotOption.Default = DatItemMappings[DatItemField.SlotOption_Default].AsYesNo();
if (DatItemMappings.ContainsKey(DatItemField.SlotOption_DeviceName)) if (DatItemMappings.ContainsKey(DatItemField.SlotOption_DeviceName))
slotOption.DeviceName = DatItemMappings[DatItemField.SlotOption_DeviceName]; slotOption.DeviceName = DatItemMappings[DatItemField.SlotOption_DeviceName];
if (DatItemMappings.ContainsKey(DatItemField.SlotOption_Default)) if (DatItemMappings.ContainsKey(DatItemField.SlotOption_Name))
slotOption.Default = DatItemMappings[DatItemField.SlotOption_Default].AsYesNo(); slotOption.Name = DatItemMappings[DatItemField.SlotOption_Name];
} }
/// <summary> /// <summary>
@@ -1259,14 +1217,14 @@ namespace SabreTools.DatFiles
/// <param name="softwareList">SoftwareList to remove replace fields in</param> /// <param name="softwareList">SoftwareList to remove replace fields in</param>
private void SetFields(SoftwareList softwareList) private void SetFields(SoftwareList softwareList)
{ {
if (DatItemMappings.ContainsKey(DatItemField.Tag)) if (DatItemMappings.ContainsKey(DatItemField.Filter))
softwareList.Tag = DatItemMappings[DatItemField.Tag]; softwareList.Filter = DatItemMappings[DatItemField.Filter];
if (DatItemMappings.ContainsKey(DatItemField.SoftwareListStatus)) if (DatItemMappings.ContainsKey(DatItemField.SoftwareListStatus))
softwareList.Status = DatItemMappings[DatItemField.SoftwareListStatus].AsSoftwareListStatus(); softwareList.Status = DatItemMappings[DatItemField.SoftwareListStatus].AsSoftwareListStatus();
if (DatItemMappings.ContainsKey(DatItemField.Filter)) if (DatItemMappings.ContainsKey(DatItemField.Tag))
softwareList.Filter = DatItemMappings[DatItemField.Filter]; softwareList.Tag = DatItemMappings[DatItemField.Tag];
} }
/// <summary> /// <summary>

View File

@@ -92,6 +92,7 @@ namespace SabreTools.DatItems.Formats
/// <inheritdoc/> /// <inheritdoc/>
public override void SetName(string name) => Name = name; public override void SetName(string name) => Name = name;
#endregion #endregion
#region Constructors #region Constructors

View File

@@ -307,32 +307,32 @@ namespace SabreTools.Filtering
/// <param name="archive">Archive to remove fields from</param> /// <param name="archive">Archive to remove fields from</param>
private void RemoveFields(Archive archive) private void RemoveFields(Archive archive)
{ {
if (DatItemFields.Contains(DatItemField.Number)) if (DatItemFields.Contains(DatItemField.Categories))
archive.Number = null; archive.Categories = null;
if (DatItemFields.Contains(DatItemField.Clone)) if (DatItemFields.Contains(DatItemField.Clone))
archive.CloneValue = null; archive.CloneValue = null;
if (DatItemFields.Contains(DatItemField.RegParent)) if (DatItemFields.Contains(DatItemField.Complete))
archive.RegParent = null; archive.Complete = null;
if (DatItemFields.Contains(DatItemField.Region))
archive.Region = null;
if (DatItemFields.Contains(DatItemField.Languages))
archive.Languages = null;
if (DatItemFields.Contains(DatItemField.DevStatus)) if (DatItemFields.Contains(DatItemField.DevStatus))
archive.DevStatus = null; archive.DevStatus = null;
if (DatItemFields.Contains(DatItemField.Languages))
archive.Languages = null;
if (DatItemFields.Contains(DatItemField.Number))
archive.Number = null;
if (DatItemFields.Contains(DatItemField.Physical)) if (DatItemFields.Contains(DatItemField.Physical))
archive.Physical = null; archive.Physical = null;
if (DatItemFields.Contains(DatItemField.Complete)) if (DatItemFields.Contains(DatItemField.Region))
archive.Complete = null; archive.Region = null;
if (DatItemFields.Contains(DatItemField.Categories)) if (DatItemFields.Contains(DatItemField.RegParent))
archive.Categories = null; archive.RegParent = null;
} }
/// <summary> /// <summary>
@@ -341,11 +341,11 @@ namespace SabreTools.Filtering
/// <param name="biosSet">BiosSet to remove fields from</param> /// <param name="biosSet">BiosSet to remove fields from</param>
private void RemoveFields(BiosSet biosSet) private void RemoveFields(BiosSet biosSet)
{ {
if (DatItemFields.Contains(DatItemField.Description))
biosSet.Description = null;
if (DatItemFields.Contains(DatItemField.Default)) if (DatItemFields.Contains(DatItemField.Default))
biosSet.Default = null; biosSet.Default = null;
if (DatItemFields.Contains(DatItemField.Description))
biosSet.Description = null;
} }
/// <summary> /// <summary>
@@ -354,14 +354,14 @@ namespace SabreTools.Filtering
/// <param name="chip">Chip to remove fields from</param> /// <param name="chip">Chip to remove fields from</param>
private void RemoveFields(Chip chip) private void RemoveFields(Chip chip)
{ {
if (DatItemFields.Contains(DatItemField.Tag))
chip.Tag = null;
if (DatItemFields.Contains(DatItemField.ChipType)) if (DatItemFields.Contains(DatItemField.ChipType))
chip.ChipType = ChipType.NULL; chip.ChipType = ChipType.NULL;
if (DatItemFields.Contains(DatItemField.Clock)) if (DatItemFields.Contains(DatItemField.Clock))
chip.Clock = null; chip.Clock = null;
if (DatItemFields.Contains(DatItemField.Tag))
chip.Tag = null;
} }
/// <summary> /// <summary>
@@ -373,29 +373,29 @@ namespace SabreTools.Filtering
{ {
if (sub) if (sub)
{ {
if (DatItemFields.Contains(DatItemField.Condition_Tag))
condition.Tag = null;
if (DatItemFields.Contains(DatItemField.Condition_Mask)) if (DatItemFields.Contains(DatItemField.Condition_Mask))
condition.Mask = null; condition.Mask = null;
if (DatItemFields.Contains(DatItemField.Condition_Relation)) if (DatItemFields.Contains(DatItemField.Condition_Relation))
condition.Relation = Relation.NULL; condition.Relation = Relation.NULL;
if (DatItemFields.Contains(DatItemField.Condition_Tag))
condition.Tag = null;
if (DatItemFields.Contains(DatItemField.Condition_Value)) if (DatItemFields.Contains(DatItemField.Condition_Value))
condition.Value = null; condition.Value = null;
} }
else else
{ {
if (DatItemFields.Contains(DatItemField.Tag))
condition.Tag = null;
if (DatItemFields.Contains(DatItemField.Mask)) if (DatItemFields.Contains(DatItemField.Mask))
condition.Mask = null; condition.Mask = null;
if (DatItemFields.Contains(DatItemField.Relation)) if (DatItemFields.Contains(DatItemField.Relation))
condition.Relation = Relation.NULL; condition.Relation = Relation.NULL;
if (DatItemFields.Contains(DatItemField.Tag))
condition.Tag = null;
if (DatItemFields.Contains(DatItemField.Value)) if (DatItemFields.Contains(DatItemField.Value))
condition.Value = null; condition.Value = null;
} }
@@ -407,12 +407,12 @@ namespace SabreTools.Filtering
/// <param name="configuration">Configuration to remove fields from</param> /// <param name="configuration">Configuration to remove fields from</param>
private void RemoveFields(Configuration configuration) private void RemoveFields(Configuration configuration)
{ {
if (DatItemFields.Contains(DatItemField.Tag))
configuration.Tag = null;
if (DatItemFields.Contains(DatItemField.Mask)) if (DatItemFields.Contains(DatItemField.Mask))
configuration.Mask = null; configuration.Mask = null;
if (DatItemFields.Contains(DatItemField.Tag))
configuration.Tag = null;
if (configuration.ConditionsSpecified) if (configuration.ConditionsSpecified)
{ {
foreach (Condition subCondition in configuration.Conditions) foreach (Condition subCondition in configuration.Conditions)
@@ -444,33 +444,33 @@ namespace SabreTools.Filtering
/// <param name="control">Control to remove fields from</param> /// <param name="control">Control to remove fields from</param>
private void RemoveFields(Control control) private void RemoveFields(Control control)
{ {
if (DatItemFields.Contains(DatItemField.Control_Type))
control.ControlType = ControlType.NULL;
if (DatItemFields.Contains(DatItemField.Control_Player))
control.Player = null;
if (DatItemFields.Contains(DatItemField.Control_Buttons)) if (DatItemFields.Contains(DatItemField.Control_Buttons))
control.Buttons = null; control.Buttons = null;
if (DatItemFields.Contains(DatItemField.Control_RequiredButtons))
control.RequiredButtons = null;
if (DatItemFields.Contains(DatItemField.Control_Minimum))
control.Minimum = null;
if (DatItemFields.Contains(DatItemField.Control_Maximum))
control.Maximum = null;
if (DatItemFields.Contains(DatItemField.Control_Sensitivity))
control.Sensitivity = null;
if (DatItemFields.Contains(DatItemField.Control_KeyDelta)) if (DatItemFields.Contains(DatItemField.Control_KeyDelta))
control.KeyDelta = null; control.KeyDelta = null;
if (DatItemFields.Contains(DatItemField.Control_Maximum))
control.Maximum = null;
if (DatItemFields.Contains(DatItemField.Control_Minimum))
control.Minimum = null;
if (DatItemFields.Contains(DatItemField.Control_Player))
control.Player = null;
if (DatItemFields.Contains(DatItemField.Control_RequiredButtons))
control.RequiredButtons = null;
if (DatItemFields.Contains(DatItemField.Control_Reverse)) if (DatItemFields.Contains(DatItemField.Control_Reverse))
control.Reverse = null; control.Reverse = null;
if (DatItemFields.Contains(DatItemField.Control_Sensitivity))
control.Sensitivity = null;
if (DatItemFields.Contains(DatItemField.Control_Type))
control.ControlType = ControlType.NULL;
if (DatItemFields.Contains(DatItemField.Control_Ways)) if (DatItemFields.Contains(DatItemField.Control_Ways))
control.Ways = null; control.Ways = null;
@@ -487,6 +487,9 @@ namespace SabreTools.Filtering
/// <param name="dataArea">DataArea to remove fields from</param> /// <param name="dataArea">DataArea to remove fields from</param>
private void RemoveFields(DataArea dataArea) private void RemoveFields(DataArea dataArea)
{ {
if (DatItemFields.Contains(DatItemField.AreaEndianness))
dataArea.Endianness = Endianness.NULL;
if (DatItemFields.Contains(DatItemField.AreaName)) if (DatItemFields.Contains(DatItemField.AreaName))
dataArea.Name = null; dataArea.Name = null;
@@ -495,9 +498,6 @@ namespace SabreTools.Filtering
if (DatItemFields.Contains(DatItemField.AreaWidth)) if (DatItemFields.Contains(DatItemField.AreaWidth))
dataArea.Width = null; dataArea.Width = null;
if (DatItemFields.Contains(DatItemField.AreaEndianness))
dataArea.Endianness = Endianness.NULL;
} }
/// <summary> /// <summary>
@@ -509,25 +509,17 @@ namespace SabreTools.Filtering
if (DatItemFields.Contains(DatItemField.DeviceType)) if (DatItemFields.Contains(DatItemField.DeviceType))
device.DeviceType = DeviceType.NULL; device.DeviceType = DeviceType.NULL;
if (DatItemFields.Contains(DatItemField.Tag))
device.Tag = null;
if (DatItemFields.Contains(DatItemField.FixedImage)) if (DatItemFields.Contains(DatItemField.FixedImage))
device.FixedImage = null; device.FixedImage = null;
if (DatItemFields.Contains(DatItemField.Mandatory))
device.Mandatory = null;
if (DatItemFields.Contains(DatItemField.Interface)) if (DatItemFields.Contains(DatItemField.Interface))
device.Interface = null; device.Interface = null;
if (device.InstancesSpecified) if (DatItemFields.Contains(DatItemField.Tag))
{ device.Tag = null;
foreach (Instance subInstance in device.Instances)
{ if (DatItemFields.Contains(DatItemField.Mandatory))
RemoveFields(subInstance); device.Mandatory = null;
}
}
if (device.ExtensionsSpecified) if (device.ExtensionsSpecified)
{ {
@@ -536,6 +528,14 @@ namespace SabreTools.Filtering
RemoveFields(subExtension); RemoveFields(subExtension);
} }
} }
if (device.InstancesSpecified)
{
foreach (Instance subInstance in device.Instances)
{
RemoveFields(subInstance);
}
}
} }
/// <summary> /// <summary>
@@ -544,14 +544,12 @@ namespace SabreTools.Filtering
/// <param name="dipSwitch">DipSwitch to remove fields from</param> /// <param name="dipSwitch">DipSwitch to remove fields from</param>
private void RemoveFields(DipSwitch dipSwitch) private void RemoveFields(DipSwitch dipSwitch)
{ {
#region Common if (DatItemFields.Contains(DatItemField.Mask))
dipSwitch.Mask = null;
if (DatItemFields.Contains(DatItemField.Tag)) if (DatItemFields.Contains(DatItemField.Tag))
dipSwitch.Tag = null; dipSwitch.Tag = null;
if (DatItemFields.Contains(DatItemField.Mask))
dipSwitch.Mask = null;
if (dipSwitch.ConditionsSpecified) if (dipSwitch.ConditionsSpecified)
{ {
foreach (Condition subCondition in dipSwitch.Conditions) foreach (Condition subCondition in dipSwitch.Conditions)
@@ -576,14 +574,8 @@ namespace SabreTools.Filtering
} }
} }
#endregion
#region SoftwareList
if (dipSwitch.PartSpecified) if (dipSwitch.PartSpecified)
RemoveFields(dipSwitch.Part); RemoveFields(dipSwitch.Part);
#endregion
} }
/// <summary> /// <summary>
@@ -592,43 +584,35 @@ namespace SabreTools.Filtering
/// <param name="disk">Disk to remove fields from</param> /// <param name="disk">Disk to remove fields from</param>
private void RemoveFields(Disk disk) private void RemoveFields(Disk disk)
{ {
#region Common
if (DatItemFields.Contains(DatItemField.MD5))
disk.MD5 = null;
if (DatItemFields.Contains(DatItemField.SHA1))
disk.SHA1 = null;
if (DatItemFields.Contains(DatItemField.Merge))
disk.MergeTag = null;
if (DatItemFields.Contains(DatItemField.Region))
disk.Region = null;
if (DatItemFields.Contains(DatItemField.Index)) if (DatItemFields.Contains(DatItemField.Index))
disk.Index = null; disk.Index = null;
if (DatItemFields.Contains(DatItemField.Writable))
disk.Writable = null;
if (DatItemFields.Contains(DatItemField.Status)) if (DatItemFields.Contains(DatItemField.Status))
disk.ItemStatus = ItemStatus.NULL; disk.ItemStatus = ItemStatus.NULL;
if (DatItemFields.Contains(DatItemField.MD5))
disk.MD5 = null;
if (DatItemFields.Contains(DatItemField.Merge))
disk.MergeTag = null;
if (DatItemFields.Contains(DatItemField.Optional)) if (DatItemFields.Contains(DatItemField.Optional))
disk.Optional = null; disk.Optional = null;
#endregion if (DatItemFields.Contains(DatItemField.Region))
disk.Region = null;
#region SoftwareList if (DatItemFields.Contains(DatItemField.SHA1))
disk.SHA1 = null;
if (DatItemFields.Contains(DatItemField.Writable))
disk.Writable = null;
if (disk.DiskAreaSpecified) if (disk.DiskAreaSpecified)
RemoveFields(disk.DiskArea); RemoveFields(disk.DiskArea);
if (disk.PartSpecified) if (disk.PartSpecified)
RemoveFields(disk.Part); RemoveFields(disk.Part);
#endregion
} }
/// <summary> /// <summary>
@@ -647,47 +631,47 @@ namespace SabreTools.Filtering
/// <param name="display">Display to remove fields from</param> /// <param name="display">Display to remove fields from</param>
private void RemoveFields(Display display) private void RemoveFields(Display display)
{ {
if (DatItemFields.Contains(DatItemField.Tag))
display.Tag = null;
if (DatItemFields.Contains(DatItemField.DisplayType)) if (DatItemFields.Contains(DatItemField.DisplayType))
display.DisplayType = DisplayType.NULL; display.DisplayType = DisplayType.NULL;
if (DatItemFields.Contains(DatItemField.Rotate))
display.Rotate = null;
if (DatItemFields.Contains(DatItemField.FlipX)) if (DatItemFields.Contains(DatItemField.FlipX))
display.FlipX = null; display.FlipX = null;
if (DatItemFields.Contains(DatItemField.Width))
display.Width = null;
if (DatItemFields.Contains(DatItemField.Height))
display.Height = null;
if (DatItemFields.Contains(DatItemField.Refresh))
display.Refresh = null;
if (DatItemFields.Contains(DatItemField.PixClock))
display.PixClock = null;
if (DatItemFields.Contains(DatItemField.HTotal))
display.HTotal = null;
if (DatItemFields.Contains(DatItemField.HBEnd)) if (DatItemFields.Contains(DatItemField.HBEnd))
display.HBEnd = null; display.HBEnd = null;
if (DatItemFields.Contains(DatItemField.HBStart)) if (DatItemFields.Contains(DatItemField.HBStart))
display.HBStart = null; display.HBStart = null;
if (DatItemFields.Contains(DatItemField.VTotal)) if (DatItemFields.Contains(DatItemField.Height))
display.VTotal = null; display.Height = null;
if (DatItemFields.Contains(DatItemField.HTotal))
display.HTotal = null;
if (DatItemFields.Contains(DatItemField.PixClock))
display.PixClock = null;
if (DatItemFields.Contains(DatItemField.Refresh))
display.Refresh = null;
if (DatItemFields.Contains(DatItemField.Rotate))
display.Rotate = null;
if (DatItemFields.Contains(DatItemField.Tag))
display.Tag = null;
if (DatItemFields.Contains(DatItemField.VBEnd)) if (DatItemFields.Contains(DatItemField.VBEnd))
display.VBEnd = null; display.VBEnd = null;
if (DatItemFields.Contains(DatItemField.VBStart)) if (DatItemFields.Contains(DatItemField.VBStart))
display.VBStart = null; display.VBStart = null;
if (DatItemFields.Contains(DatItemField.VTotal))
display.VTotal = null;
if (DatItemFields.Contains(DatItemField.Width))
display.Width = null;
} }
/// <summary> /// <summary>
@@ -696,29 +680,29 @@ namespace SabreTools.Filtering
/// <param name="driver">Driver to remove fields from</param> /// <param name="driver">Driver to remove fields from</param>
private void RemoveFields(Driver driver) private void RemoveFields(Driver driver)
{ {
if (DatItemFields.Contains(DatItemField.SupportStatus)) if (DatItemFields.Contains(DatItemField.CocktailStatus))
driver.Status = SupportStatus.NULL; driver.Cocktail = SupportStatus.NULL;
if (DatItemFields.Contains(DatItemField.EmulationStatus)) if (DatItemFields.Contains(DatItemField.EmulationStatus))
driver.Emulation = SupportStatus.NULL; driver.Emulation = SupportStatus.NULL;
if (DatItemFields.Contains(DatItemField.CocktailStatus)) if (DatItemFields.Contains(DatItemField.Incomplete))
driver.Cocktail = SupportStatus.NULL; driver.Incomplete = null;
if (DatItemFields.Contains(DatItemField.SaveStateStatus))
driver.SaveState = Supported.NULL;
if (DatItemFields.Contains(DatItemField.RequiresArtwork))
driver.RequiresArtwork = null;
if (DatItemFields.Contains(DatItemField.Unofficial))
driver.Unofficial = null;
if (DatItemFields.Contains(DatItemField.NoSoundHardware)) if (DatItemFields.Contains(DatItemField.NoSoundHardware))
driver.NoSoundHardware = null; driver.NoSoundHardware = null;
if (DatItemFields.Contains(DatItemField.Incomplete)) if (DatItemFields.Contains(DatItemField.RequiresArtwork))
driver.Incomplete = null; driver.RequiresArtwork = null;
if (DatItemFields.Contains(DatItemField.SaveStateStatus))
driver.SaveState = Supported.NULL;
if (DatItemFields.Contains(DatItemField.SupportStatus))
driver.Status = SupportStatus.NULL;
if (DatItemFields.Contains(DatItemField.Unofficial))
driver.Unofficial = null;
} }
/// <summary> /// <summary>
@@ -737,14 +721,14 @@ namespace SabreTools.Filtering
/// <param name="feature">Feature to remove fields from</param> /// <param name="feature">Feature to remove fields from</param>
private void RemoveFields(Feature feature) private void RemoveFields(Feature feature)
{ {
if (DatItemFields.Contains(DatItemField.FeatureType)) if (DatItemFields.Contains(DatItemField.FeatureOverall))
feature.Type = FeatureType.NULL; feature.Overall = FeatureStatus.NULL;
if (DatItemFields.Contains(DatItemField.FeatureStatus)) if (DatItemFields.Contains(DatItemField.FeatureStatus))
feature.Status = FeatureStatus.NULL; feature.Status = FeatureStatus.NULL;
if (DatItemFields.Contains(DatItemField.FeatureOverall)) if (DatItemFields.Contains(DatItemField.FeatureType))
feature.Overall = FeatureStatus.NULL; feature.Type = FeatureType.NULL;
} }
/// <summary> /// <summary>
@@ -763,18 +747,18 @@ namespace SabreTools.Filtering
/// <param name="input">Input to remove fields from</param> /// <param name="input">Input to remove fields from</param>
private void RemoveFields(Input input) private void RemoveFields(Input input)
{ {
if (DatItemFields.Contains(DatItemField.Coins))
input.Coins = null;
if (DatItemFields.Contains(DatItemField.Players))
input.Players = 0;
if (DatItemFields.Contains(DatItemField.Service)) if (DatItemFields.Contains(DatItemField.Service))
input.Service = null; input.Service = null;
if (DatItemFields.Contains(DatItemField.Tilt)) if (DatItemFields.Contains(DatItemField.Tilt))
input.Tilt = null; input.Tilt = null;
if (DatItemFields.Contains(DatItemField.Players))
input.Players = 0;
if (DatItemFields.Contains(DatItemField.Coins))
input.Coins = null;
if (input.ControlsSpecified) if (input.ControlsSpecified)
{ {
foreach (Control subControl in input.Controls) foreach (Control subControl in input.Controls)
@@ -790,11 +774,11 @@ namespace SabreTools.Filtering
/// <param name="instance">Instance to remove fields from</param> /// <param name="instance">Instance to remove fields from</param>
private void RemoveFields(Instance instance) private void RemoveFields(Instance instance)
{ {
if (DatItemFields.Contains(DatItemField.Instance_Name))
instance.Name = null;
if (DatItemFields.Contains(DatItemField.Instance_BriefName)) if (DatItemFields.Contains(DatItemField.Instance_BriefName))
instance.BriefName = null; instance.BriefName = null;
if (DatItemFields.Contains(DatItemField.Instance_Name))
instance.Name = null;
} }
/// <summary> /// <summary>
@@ -803,14 +787,14 @@ namespace SabreTools.Filtering
/// <param name="location">Location to remove fields from</param> /// <param name="location">Location to remove fields from</param>
private void RemoveFields(Location location) private void RemoveFields(Location location)
{ {
if (DatItemFields.Contains(DatItemField.Location_Inverted))
location.Inverted = null;
if (DatItemFields.Contains(DatItemField.Location_Name)) if (DatItemFields.Contains(DatItemField.Location_Name))
location.Name = null; location.Name = null;
if (DatItemFields.Contains(DatItemField.Location_Number)) if (DatItemFields.Contains(DatItemField.Location_Number))
location.Number = null; location.Number = null;
if (DatItemFields.Contains(DatItemField.Location_Inverted))
location.Inverted = null;
} }
/// <summary> /// <summary>
@@ -838,12 +822,12 @@ namespace SabreTools.Filtering
/// <param name="part">Part to remove fields from</param> /// <param name="part">Part to remove fields from</param>
private void RemoveFields(Part part) private void RemoveFields(Part part)
{ {
if (DatItemFields.Contains(DatItemField.Part_Name))
part.Name = null;
if (DatItemFields.Contains(DatItemField.Part_Interface)) if (DatItemFields.Contains(DatItemField.Part_Interface))
part.Interface = null; part.Interface = null;
if (DatItemFields.Contains(DatItemField.Part_Name))
part.Name = null;
if (part.FeaturesSpecified) if (part.FeaturesSpecified)
{ {
foreach (PartFeature subPartFeature in part.Features) foreach (PartFeature subPartFeature in part.Features)
@@ -890,11 +874,11 @@ namespace SabreTools.Filtering
/// <param name="ramOption">RamOption to remove fields from</param> /// <param name="ramOption">RamOption to remove fields from</param>
private void RemoveFields(RamOption ramOption) private void RemoveFields(RamOption ramOption)
{ {
if (DatItemFields.Contains(DatItemField.Default))
ramOption.Default = null;
if (DatItemFields.Contains(DatItemField.Content)) if (DatItemFields.Contains(DatItemField.Content))
ramOption.Content = null; ramOption.Content = null;
if (DatItemFields.Contains(DatItemField.Default))
ramOption.Default = null;
} }
/// <summary> /// <summary>
@@ -903,17 +887,17 @@ namespace SabreTools.Filtering
/// <param name="release">Release to remove fields from</param> /// <param name="release">Release to remove fields from</param>
private void RemoveFields(Release release) private void RemoveFields(Release release)
{ {
if (DatItemFields.Contains(DatItemField.Region))
release.Region = null;
if (DatItemFields.Contains(DatItemField.Language))
release.Language = null;
if (DatItemFields.Contains(DatItemField.Date)) if (DatItemFields.Contains(DatItemField.Date))
release.Date = null; release.Date = null;
if (DatItemFields.Contains(DatItemField.Default)) if (DatItemFields.Contains(DatItemField.Default))
release.Default = null; release.Default = null;
if (DatItemFields.Contains(DatItemField.Language))
release.Language = null;
if (DatItemFields.Contains(DatItemField.Region))
release.Region = null;
} }
/// <summary> /// <summary>
@@ -922,20 +906,72 @@ namespace SabreTools.Filtering
/// <param name="rom">Rom to remove fields from</param> /// <param name="rom">Rom to remove fields from</param>
private void RemoveFields(Rom rom) private void RemoveFields(Rom rom)
{ {
#region Common if (DatItemFields.Contains(DatItemField.AltName))
rom.AltName = null;
if (DatItemFields.Contains(DatItemField.AltTitle))
rom.AltTitle = null;
if (DatItemFields.Contains(DatItemField.ArchiveDotOrgFormat))
rom.ArchiveDotOrgFormat = null;
if (DatItemFields.Contains(DatItemField.ArchiveDotOrgSource))
rom.ArchiveDotOrgSource = null;
if (DatItemFields.Contains(DatItemField.Bios)) if (DatItemFields.Contains(DatItemField.Bios))
rom.Bios = null; rom.Bios = null;
if (DatItemFields.Contains(DatItemField.Size)) if (DatItemFields.Contains(DatItemField.Boot))
rom.Size = 0; rom.Boot = null;
if (DatItemFields.Contains(DatItemField.CRC)) if (DatItemFields.Contains(DatItemField.CRC))
rom.CRC = null; rom.CRC = null;
if (DatItemFields.Contains(DatItemField.Date))
rom.Date = null;
if (DatItemFields.Contains(DatItemField.Inverted))
rom.Inverted = null;
if (DatItemFields.Contains(DatItemField.LoadFlag))
rom.LoadFlag = LoadFlag.NULL;
if (DatItemFields.Contains(DatItemField.MD5)) if (DatItemFields.Contains(DatItemField.MD5))
rom.MD5 = null; rom.MD5 = null;
if (DatItemFields.Contains(DatItemField.Merge))
rom.MergeTag = null;
if (DatItemFields.Contains(DatItemField.MIA))
rom.MIA = null;
if (DatItemFields.Contains(DatItemField.Offset))
rom.Offset = null;
if (DatItemFields.Contains(DatItemField.OpenMSXSubType))
rom.OpenMSXSubType = OpenMSXSubType.NULL;
if (DatItemFields.Contains(DatItemField.OpenMSXType))
rom.OpenMSXType = null;
if (DatItemFields.Contains(DatItemField.Optional))
rom.Optional = null;
if (DatItemFields.Contains(DatItemField.Original))
rom.Original = null;
if (DatItemFields.Contains(DatItemField.OriginalFilename))
rom.OriginalFilename = null;
if (DatItemFields.Contains(DatItemField.Region))
rom.Region = null;
if (DatItemFields.Contains(DatItemField.Remark))
rom.Remark = null;
if (DatItemFields.Contains(DatItemField.Rotation))
rom.Rotation = null;
if (DatItemFields.Contains(DatItemField.SHA1)) if (DatItemFields.Contains(DatItemField.SHA1))
rom.SHA1 = null; rom.SHA1 = null;
@@ -948,92 +984,18 @@ namespace SabreTools.Filtering
if (DatItemFields.Contains(DatItemField.SHA512)) if (DatItemFields.Contains(DatItemField.SHA512))
rom.SHA512 = null; rom.SHA512 = null;
if (DatItemFields.Contains(DatItemField.Size))
rom.Size = 0;
if (DatItemFields.Contains(DatItemField.SpamSum)) if (DatItemFields.Contains(DatItemField.SpamSum))
rom.SpamSum = null; rom.SpamSum = null;
if (DatItemFields.Contains(DatItemField.Merge))
rom.MergeTag = null;
if (DatItemFields.Contains(DatItemField.Region))
rom.Region = null;
if (DatItemFields.Contains(DatItemField.Offset))
rom.Offset = null;
if (DatItemFields.Contains(DatItemField.Date))
rom.Date = null;
if (DatItemFields.Contains(DatItemField.Status)) if (DatItemFields.Contains(DatItemField.Status))
rom.ItemStatus = ItemStatus.NULL; rom.ItemStatus = ItemStatus.NULL;
if (DatItemFields.Contains(DatItemField.Optional))
rom.Optional = null;
if (DatItemFields.Contains(DatItemField.Inverted))
rom.Inverted = null;
#endregion
#region Archive.org
if (DatItemFields.Contains(DatItemField.ArchiveDotOrgSource))
rom.ArchiveDotOrgSource = null;
if (DatItemFields.Contains(DatItemField.ArchiveDotOrgFormat))
rom.ArchiveDotOrgFormat = null;
if (DatItemFields.Contains(DatItemField.OriginalFilename))
rom.OriginalFilename = null;
if (DatItemFields.Contains(DatItemField.Rotation))
rom.Rotation = null;
if (DatItemFields.Contains(DatItemField.Summation)) if (DatItemFields.Contains(DatItemField.Summation))
rom.Summation = null; rom.Summation = null;
#endregion
#region AttractMode
if (DatItemFields.Contains(DatItemField.AltName))
rom.AltName = null;
if (DatItemFields.Contains(DatItemField.AltTitle))
rom.AltTitle = null;
#endregion
#region Logiqx
if (DatItemFields.Contains(DatItemField.MIA))
rom.MIA = null;
#endregion
#region OpenMSX
if (DatItemFields.Contains(DatItemField.Original))
rom.Original = null;
if (DatItemFields.Contains(DatItemField.OpenMSXSubType))
rom.OpenMSXSubType = OpenMSXSubType.NULL;
if (DatItemFields.Contains(DatItemField.OpenMSXType))
rom.OpenMSXType = null;
if (DatItemFields.Contains(DatItemField.Remark))
rom.Remark = null;
if (DatItemFields.Contains(DatItemField.Boot))
rom.Boot = null;
#endregion
#region SoftwareList
if (DatItemFields.Contains(DatItemField.LoadFlag))
rom.LoadFlag = LoadFlag.NULL;
if (DatItemFields.Contains(DatItemField.Value)) if (DatItemFields.Contains(DatItemField.Value))
rom.Value = null; rom.Value = null;
@@ -1042,8 +1004,6 @@ namespace SabreTools.Filtering
if (rom.PartSpecified) if (rom.PartSpecified)
RemoveFields(rom.Part); RemoveFields(rom.Part);
#endregion
} }
/// <summary> /// <summary>
@@ -1052,15 +1012,15 @@ namespace SabreTools.Filtering
/// <param name="setting">Setting to remove fields from</param> /// <param name="setting">Setting to remove fields from</param>
private void RemoveFields(Setting setting) private void RemoveFields(Setting setting)
{ {
if (DatItemFields.Contains(DatItemField.Setting_Default))
setting.Default = null;
if (DatItemFields.Contains(DatItemField.Setting_Name)) if (DatItemFields.Contains(DatItemField.Setting_Name))
setting.Name = null; setting.Name = null;
if (DatItemFields.Contains(DatItemField.Setting_Value)) if (DatItemFields.Contains(DatItemField.Setting_Value))
setting.Value = null; setting.Value = null;
if (DatItemFields.Contains(DatItemField.Setting_Default))
setting.Default = null;
if (setting.ConditionsSpecified) if (setting.ConditionsSpecified)
{ {
foreach (Condition subCondition in setting.Conditions) foreach (Condition subCondition in setting.Conditions)
@@ -1101,14 +1061,14 @@ namespace SabreTools.Filtering
/// <param name="slotOption">SlotOption to remove fields from</param> /// <param name="slotOption">SlotOption to remove fields from</param>
private void RemoveFields(SlotOption slotOption) private void RemoveFields(SlotOption slotOption)
{ {
if (DatItemFields.Contains(DatItemField.SlotOption_Name)) if (DatItemFields.Contains(DatItemField.SlotOption_Default))
slotOption.Name = null; slotOption.Default = null;
if (DatItemFields.Contains(DatItemField.SlotOption_DeviceName)) if (DatItemFields.Contains(DatItemField.SlotOption_DeviceName))
slotOption.DeviceName = null; slotOption.DeviceName = null;
if (DatItemFields.Contains(DatItemField.SlotOption_Default)) if (DatItemFields.Contains(DatItemField.SlotOption_Name))
slotOption.Default = null; slotOption.Name = null;
} }
/// <summary> /// <summary>
@@ -1117,14 +1077,14 @@ namespace SabreTools.Filtering
/// <param name="softwareList">SoftwareList to remove fields from</param> /// <param name="softwareList">SoftwareList to remove fields from</param>
private void RemoveFields(SoftwareList softwareList) private void RemoveFields(SoftwareList softwareList)
{ {
if (DatItemFields.Contains(DatItemField.Tag)) if (DatItemFields.Contains(DatItemField.Filter))
softwareList.Tag = null; softwareList.Filter = null;
if (DatItemFields.Contains(DatItemField.SoftwareListStatus)) if (DatItemFields.Contains(DatItemField.SoftwareListStatus))
softwareList.Status = SoftwareListStatus.None; softwareList.Status = SoftwareListStatus.None;
if (DatItemFields.Contains(DatItemField.Filter)) if (DatItemFields.Contains(DatItemField.Tag))
softwareList.Filter = null; softwareList.Tag = null;
} }
/// <summary> /// <summary>

View File

@@ -263,32 +263,32 @@ namespace SabreTools.Filtering
/// <param name="datItemFields">List of fields representing what should be updated</param> /// <param name="datItemFields">List of fields representing what should be updated</param>
private static void ReplaceFields(Archive archive, Archive newItem, List<DatItemField> datItemFields) private static void ReplaceFields(Archive archive, Archive newItem, List<DatItemField> datItemFields)
{ {
if (datItemFields.Contains(DatItemField.Number)) if (datItemFields.Contains(DatItemField.Categories))
archive.Number = newItem.Number; archive.Categories = newItem.Categories;
if (datItemFields.Contains(DatItemField.Clone)) if (datItemFields.Contains(DatItemField.Clone))
archive.CloneValue = newItem.CloneValue; archive.CloneValue = newItem.CloneValue;
if (datItemFields.Contains(DatItemField.RegParent)) if (datItemFields.Contains(DatItemField.Complete))
archive.RegParent = newItem.RegParent; archive.Complete = newItem.Complete;
if (datItemFields.Contains(DatItemField.Region))
archive.Region = newItem.Region;
if (datItemFields.Contains(DatItemField.Languages))
archive.Languages = newItem.Languages;
if (datItemFields.Contains(DatItemField.DevStatus)) if (datItemFields.Contains(DatItemField.DevStatus))
archive.DevStatus = newItem.DevStatus; archive.DevStatus = newItem.DevStatus;
if (datItemFields.Contains(DatItemField.Languages))
archive.Languages = newItem.Languages;
if (datItemFields.Contains(DatItemField.Number))
archive.Number = newItem.Number;
if (datItemFields.Contains(DatItemField.Physical)) if (datItemFields.Contains(DatItemField.Physical))
archive.Physical = newItem.Physical; archive.Physical = newItem.Physical;
if (datItemFields.Contains(DatItemField.Complete)) if (datItemFields.Contains(DatItemField.Region))
archive.Complete = newItem.Complete; archive.Region = newItem.Region;
if (datItemFields.Contains(DatItemField.Categories)) if (datItemFields.Contains(DatItemField.RegParent))
archive.Categories = newItem.Categories; archive.RegParent = newItem.RegParent;
} }
/// <summary> /// <summary>
@@ -299,11 +299,11 @@ namespace SabreTools.Filtering
/// <param name="datItemFields">List of fields representing what should be updated</param> /// <param name="datItemFields">List of fields representing what should be updated</param>
private static void ReplaceFields(BiosSet biosSet, BiosSet newItem, List<DatItemField> datItemFields) private static void ReplaceFields(BiosSet biosSet, BiosSet newItem, List<DatItemField> datItemFields)
{ {
if (datItemFields.Contains(DatItemField.Description))
biosSet.Description = newItem.Description;
if (datItemFields.Contains(DatItemField.Default)) if (datItemFields.Contains(DatItemField.Default))
biosSet.Default = newItem.Default; biosSet.Default = newItem.Default;
if (datItemFields.Contains(DatItemField.Description))
biosSet.Description = newItem.Description;
} }
/// <summary> /// <summary>
@@ -314,14 +314,14 @@ namespace SabreTools.Filtering
/// <param name="datItemFields">List of fields representing what should be updated</param> /// <param name="datItemFields">List of fields representing what should be updated</param>
private static void ReplaceFields(Chip chip, Chip newItem, List<DatItemField> datItemFields) private static void ReplaceFields(Chip chip, Chip newItem, List<DatItemField> datItemFields)
{ {
if (datItemFields.Contains(DatItemField.Tag))
chip.Tag = newItem.Tag;
if (datItemFields.Contains(DatItemField.ChipType)) if (datItemFields.Contains(DatItemField.ChipType))
chip.ChipType = newItem.ChipType; chip.ChipType = newItem.ChipType;
if (datItemFields.Contains(DatItemField.Clock)) if (datItemFields.Contains(DatItemField.Clock))
chip.Clock = newItem.Clock; chip.Clock = newItem.Clock;
if (datItemFields.Contains(DatItemField.Tag))
chip.Tag = newItem.Tag;
} }
/// <summary> /// <summary>
@@ -332,11 +332,6 @@ namespace SabreTools.Filtering
/// <param name="datItemFields">List of fields representing what should be updated</param> /// <param name="datItemFields">List of fields representing what should be updated</param>
private static void ReplaceFields(Condition condition, Condition newItem, List<DatItemField> datItemFields) private static void ReplaceFields(Condition condition, Condition newItem, List<DatItemField> datItemFields)
{ {
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)) if (datItemFields.Contains(DatItemField.Mask))
condition.Mask = newItem.Mask; condition.Mask = newItem.Mask;
else if (datItemFields.Contains(DatItemField.Condition_Mask)) else if (datItemFields.Contains(DatItemField.Condition_Mask))
@@ -347,6 +342,11 @@ namespace SabreTools.Filtering
else if (datItemFields.Contains(DatItemField.Condition_Relation)) else if (datItemFields.Contains(DatItemField.Condition_Relation))
condition.Relation = newItem.Relation; condition.Relation = newItem.Relation;
if (datItemFields.Contains(DatItemField.Tag))
condition.Tag = newItem.Tag;
else if (datItemFields.Contains(DatItemField.Condition_Tag))
condition.Tag = newItem.Tag;
if (datItemFields.Contains(DatItemField.Value)) if (datItemFields.Contains(DatItemField.Value))
condition.Value = newItem.Value; condition.Value = newItem.Value;
else if (datItemFields.Contains(DatItemField.Condition_Value)) else if (datItemFields.Contains(DatItemField.Condition_Value))
@@ -361,12 +361,12 @@ namespace SabreTools.Filtering
/// <param name="datItemFields">List of fields representing what should be updated</param> /// <param name="datItemFields">List of fields representing what should be updated</param>
private static void ReplaceFields(Configuration configuration, Configuration newItem, List<DatItemField> datItemFields) private static void ReplaceFields(Configuration configuration, Configuration newItem, List<DatItemField> datItemFields)
{ {
if (datItemFields.Contains(DatItemField.Tag))
configuration.Tag = newItem.Tag;
if (datItemFields.Contains(DatItemField.Mask)) if (datItemFields.Contains(DatItemField.Mask))
configuration.Mask = newItem.Mask; configuration.Mask = newItem.Mask;
if (datItemFields.Contains(DatItemField.Tag))
configuration.Tag = newItem.Tag;
// Condition_* doesn't make sense here // Condition_* doesn't make sense here
// since not every condition under the other item // since not every condition under the other item
// can replace every condition under this item // can replace every condition under this item
@@ -388,33 +388,33 @@ namespace SabreTools.Filtering
/// <param name="datItemFields">List of fields representing what should be updated</param> /// <param name="datItemFields">List of fields representing what should be updated</param>
private static void ReplaceFields(Control control, Control newItem, List<DatItemField> datItemFields) private static void ReplaceFields(Control control, Control newItem, List<DatItemField> datItemFields)
{ {
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)) if (datItemFields.Contains(DatItemField.Control_Buttons))
control.Buttons = newItem.Buttons; control.Buttons = newItem.Buttons;
if (datItemFields.Contains(DatItemField.Control_RequiredButtons)) if (datItemFields.Contains(DatItemField.Control_Type))
control.RequiredButtons = newItem.RequiredButtons; control.ControlType = newItem.ControlType;
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)) if (datItemFields.Contains(DatItemField.Control_KeyDelta))
control.KeyDelta = newItem.KeyDelta; control.KeyDelta = newItem.KeyDelta;
if (datItemFields.Contains(DatItemField.Control_Maximum))
control.Maximum = newItem.Maximum;
if (datItemFields.Contains(DatItemField.Control_Minimum))
control.Minimum = newItem.Minimum;
if (datItemFields.Contains(DatItemField.Control_Player))
control.Player = newItem.Player;
if (datItemFields.Contains(DatItemField.Control_RequiredButtons))
control.RequiredButtons = newItem.RequiredButtons;
if (datItemFields.Contains(DatItemField.Control_Reverse)) if (datItemFields.Contains(DatItemField.Control_Reverse))
control.Reverse = newItem.Reverse; control.Reverse = newItem.Reverse;
if (datItemFields.Contains(DatItemField.Control_Sensitivity))
control.Sensitivity = newItem.Sensitivity;
if (datItemFields.Contains(DatItemField.Control_Ways)) if (datItemFields.Contains(DatItemField.Control_Ways))
control.Ways = newItem.Ways; control.Ways = newItem.Ways;
@@ -433,6 +433,9 @@ namespace SabreTools.Filtering
/// <param name="datItemFields">List of fields representing what should be updated</param> /// <param name="datItemFields">List of fields representing what should be updated</param>
private static void ReplaceFields(DataArea dataArea, DataArea newItem, List<DatItemField> datItemFields) private static void ReplaceFields(DataArea dataArea, DataArea newItem, List<DatItemField> datItemFields)
{ {
if (datItemFields.Contains(DatItemField.AreaEndianness))
dataArea.Endianness = newItem.Endianness;
if (datItemFields.Contains(DatItemField.AreaName)) if (datItemFields.Contains(DatItemField.AreaName))
dataArea.Name = newItem.Name; dataArea.Name = newItem.Name;
@@ -441,9 +444,6 @@ namespace SabreTools.Filtering
if (datItemFields.Contains(DatItemField.AreaWidth)) if (datItemFields.Contains(DatItemField.AreaWidth))
dataArea.Width = newItem.Width; dataArea.Width = newItem.Width;
if (datItemFields.Contains(DatItemField.AreaEndianness))
dataArea.Endianness = newItem.Endianness;
} }
/// <summary> /// <summary>
@@ -457,17 +457,17 @@ namespace SabreTools.Filtering
if (datItemFields.Contains(DatItemField.DeviceType)) if (datItemFields.Contains(DatItemField.DeviceType))
device.DeviceType = newItem.DeviceType; device.DeviceType = newItem.DeviceType;
if (datItemFields.Contains(DatItemField.Tag))
device.Tag = newItem.Tag;
if (datItemFields.Contains(DatItemField.FixedImage)) if (datItemFields.Contains(DatItemField.FixedImage))
device.FixedImage = newItem.FixedImage; device.FixedImage = newItem.FixedImage;
if (datItemFields.Contains(DatItemField.Interface))
device.Interface = newItem.Interface;
if (datItemFields.Contains(DatItemField.Mandatory)) if (datItemFields.Contains(DatItemField.Mandatory))
device.Mandatory = newItem.Mandatory; device.Mandatory = newItem.Mandatory;
if (datItemFields.Contains(DatItemField.Interface)) if (datItemFields.Contains(DatItemField.Tag))
device.Interface = newItem.Interface; device.Tag = newItem.Tag;
// Instance_* doesn't make sense here // Instance_* doesn't make sense here
// since not every instance under the other item // since not every instance under the other item
@@ -486,14 +486,12 @@ namespace SabreTools.Filtering
/// <param name="datItemFields">List of fields representing what should be updated</param> /// <param name="datItemFields">List of fields representing what should be updated</param>
private static void ReplaceFields(DipSwitch dipSwitch, DipSwitch newItem, List<DatItemField> datItemFields) private static void ReplaceFields(DipSwitch dipSwitch, DipSwitch newItem, List<DatItemField> datItemFields)
{ {
#region Common if (datItemFields.Contains(DatItemField.Mask))
dipSwitch.Mask = newItem.Mask;
if (datItemFields.Contains(DatItemField.Tag)) if (datItemFields.Contains(DatItemField.Tag))
dipSwitch.Tag = newItem.Tag; dipSwitch.Tag = newItem.Tag;
if (datItemFields.Contains(DatItemField.Mask))
dipSwitch.Mask = newItem.Mask;
// Condition_* doesn't make sense here // Condition_* doesn't make sense here
// since not every condition under the other item // since not every condition under the other item
// can replace every condition under this item // can replace every condition under this item
@@ -506,14 +504,8 @@ namespace SabreTools.Filtering
// since not every value under the other item // since not every value under the other item
// can replace every value under this item // can replace every value under this item
#endregion
#region SoftwareList
if (dipSwitch.PartSpecified && newItem.PartSpecified) if (dipSwitch.PartSpecified && newItem.PartSpecified)
ReplaceFields(dipSwitch.Part, newItem.Part, datItemFields); ReplaceFields(dipSwitch.Part, newItem.Part, datItemFields);
#endregion
} }
/// <summary> /// <summary>
@@ -524,7 +516,11 @@ namespace SabreTools.Filtering
/// <param name="datItemFields">List of fields representing what should be updated</param> /// <param name="datItemFields">List of fields representing what should be updated</param>
private static void ReplaceFields(Disk disk, Disk newItem, List<DatItemField> datItemFields) private static void ReplaceFields(Disk disk, Disk newItem, List<DatItemField> datItemFields)
{ {
#region Common if (datItemFields.Contains(DatItemField.Index))
disk.Index = newItem.Index;
if (datItemFields.Contains(DatItemField.Status))
disk.ItemStatus = newItem.ItemStatus;
if (datItemFields.Contains(DatItemField.MD5)) if (datItemFields.Contains(DatItemField.MD5))
{ {
@@ -532,41 +528,29 @@ namespace SabreTools.Filtering
disk.MD5 = newItem.MD5; disk.MD5 = newItem.MD5;
} }
if (datItemFields.Contains(DatItemField.Merge))
disk.MergeTag = newItem.MergeTag;
if (datItemFields.Contains(DatItemField.Optional))
disk.Optional = newItem.Optional;
if (datItemFields.Contains(DatItemField.SHA1)) if (datItemFields.Contains(DatItemField.SHA1))
{ {
if (string.IsNullOrEmpty(disk.SHA1) && !string.IsNullOrEmpty(newItem.SHA1)) if (string.IsNullOrEmpty(disk.SHA1) && !string.IsNullOrEmpty(newItem.SHA1))
disk.SHA1 = newItem.SHA1; disk.SHA1 = newItem.SHA1;
} }
if (datItemFields.Contains(DatItemField.Merge))
disk.MergeTag = newItem.MergeTag;
if (datItemFields.Contains(DatItemField.Region)) if (datItemFields.Contains(DatItemField.Region))
disk.Region = newItem.Region; disk.Region = newItem.Region;
if (datItemFields.Contains(DatItemField.Index))
disk.Index = newItem.Index;
if (datItemFields.Contains(DatItemField.Writable)) if (datItemFields.Contains(DatItemField.Writable))
disk.Writable = newItem.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) if (disk.DiskAreaSpecified && newItem.DiskAreaSpecified)
ReplaceFields(disk.DiskArea, newItem.DiskArea, datItemFields); ReplaceFields(disk.DiskArea, newItem.DiskArea, datItemFields);
if (disk.PartSpecified && newItem.PartSpecified) if (disk.PartSpecified && newItem.PartSpecified)
ReplaceFields(disk.Part, newItem.Part, datItemFields); ReplaceFields(disk.Part, newItem.Part, datItemFields);
#endregion
} }
/// <summary> /// <summary>
@@ -589,47 +573,47 @@ namespace SabreTools.Filtering
/// <param name="datItemFields">List of fields representing what should be updated</param> /// <param name="datItemFields">List of fields representing what should be updated</param>
private static void ReplaceFields(Display display, Display newItem, List<DatItemField> datItemFields) private static void ReplaceFields(Display display, Display newItem, List<DatItemField> datItemFields)
{ {
if (datItemFields.Contains(DatItemField.Tag))
display.Tag = newItem.Tag;
if (datItemFields.Contains(DatItemField.DisplayType)) if (datItemFields.Contains(DatItemField.DisplayType))
display.DisplayType = newItem.DisplayType; display.DisplayType = newItem.DisplayType;
if (datItemFields.Contains(DatItemField.Rotate))
display.Rotate = newItem.Rotate;
if (datItemFields.Contains(DatItemField.FlipX)) if (datItemFields.Contains(DatItemField.FlipX))
display.FlipX = newItem.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)) if (datItemFields.Contains(DatItemField.HBEnd))
display.HBEnd = newItem.HBEnd; display.HBEnd = newItem.HBEnd;
if (datItemFields.Contains(DatItemField.HBStart)) if (datItemFields.Contains(DatItemField.HBStart))
display.HBStart = newItem.HBStart; display.HBStart = newItem.HBStart;
if (datItemFields.Contains(DatItemField.VTotal)) if (datItemFields.Contains(DatItemField.Height))
display.VTotal = newItem.VTotal; display.Height = newItem.Height;
if (datItemFields.Contains(DatItemField.HTotal))
display.HTotal = newItem.HTotal;
if (datItemFields.Contains(DatItemField.PixClock))
display.PixClock = newItem.PixClock;
if (datItemFields.Contains(DatItemField.Refresh))
display.Refresh = newItem.Refresh;
if (datItemFields.Contains(DatItemField.Rotate))
display.Rotate = newItem.Rotate;
if (datItemFields.Contains(DatItemField.Tag))
display.Tag = newItem.Tag;
if (datItemFields.Contains(DatItemField.VBEnd)) if (datItemFields.Contains(DatItemField.VBEnd))
display.VBEnd = newItem.VBEnd; display.VBEnd = newItem.VBEnd;
if (datItemFields.Contains(DatItemField.VBStart)) if (datItemFields.Contains(DatItemField.VBStart))
display.VBStart = newItem.VBStart; display.VBStart = newItem.VBStart;
if (datItemFields.Contains(DatItemField.VTotal))
display.VTotal = newItem.VTotal;
if (datItemFields.Contains(DatItemField.Width))
display.Width = newItem.Width;
} }
/// <summary> /// <summary>
@@ -640,29 +624,29 @@ namespace SabreTools.Filtering
/// <param name="datItemFields">List of fields representing what should be updated</param> /// <param name="datItemFields">List of fields representing what should be updated</param>
private static void ReplaceFields(Driver driver, Driver newItem, List<DatItemField> datItemFields) private static void ReplaceFields(Driver driver, Driver newItem, List<DatItemField> datItemFields)
{ {
if (datItemFields.Contains(DatItemField.SupportStatus)) if (datItemFields.Contains(DatItemField.CocktailStatus))
driver.Status = newItem.Status; driver.Cocktail = newItem.Cocktail;
if (datItemFields.Contains(DatItemField.EmulationStatus)) if (datItemFields.Contains(DatItemField.EmulationStatus))
driver.Emulation = newItem.Emulation; driver.Emulation = newItem.Emulation;
if (datItemFields.Contains(DatItemField.CocktailStatus)) if (datItemFields.Contains(DatItemField.Incomplete))
driver.Cocktail = newItem.Cocktail; driver.Incomplete = newItem.Incomplete;
if (datItemFields.Contains(DatItemField.SaveStateStatus))
driver.SaveState = newItem.SaveState;
if (datItemFields.Contains(DatItemField.RequiresArtwork))
driver.RequiresArtwork = newItem.RequiresArtwork;
if (datItemFields.Contains(DatItemField.Unofficial))
driver.Unofficial = newItem.Unofficial;
if (datItemFields.Contains(DatItemField.NoSoundHardware)) if (datItemFields.Contains(DatItemField.NoSoundHardware))
driver.NoSoundHardware = newItem.NoSoundHardware; driver.NoSoundHardware = newItem.NoSoundHardware;
if (datItemFields.Contains(DatItemField.Incomplete)) if (datItemFields.Contains(DatItemField.RequiresArtwork))
driver.Incomplete = newItem.Incomplete; driver.RequiresArtwork = newItem.RequiresArtwork;
if (datItemFields.Contains(DatItemField.SaveStateStatus))
driver.SaveState = newItem.SaveState;
if (datItemFields.Contains(DatItemField.SupportStatus))
driver.Status = newItem.Status;
if (datItemFields.Contains(DatItemField.Unofficial))
driver.Unofficial = newItem.Unofficial;
} }
/// <summary> /// <summary>
@@ -685,14 +669,14 @@ namespace SabreTools.Filtering
/// <param name="datItemFields">List of fields representing what should be updated</param> /// <param name="datItemFields">List of fields representing what should be updated</param>
private static void ReplaceFields(Feature feature, Feature newItem, List<DatItemField> datItemFields) private static void ReplaceFields(Feature feature, Feature newItem, List<DatItemField> datItemFields)
{ {
if (datItemFields.Contains(DatItemField.FeatureType)) if (datItemFields.Contains(DatItemField.FeatureOverall))
feature.Type = newItem.Type; feature.Overall = newItem.Overall;
if (datItemFields.Contains(DatItemField.FeatureStatus)) if (datItemFields.Contains(DatItemField.FeatureStatus))
feature.Status = newItem.Status; feature.Status = newItem.Status;
if (datItemFields.Contains(DatItemField.FeatureOverall)) if (datItemFields.Contains(DatItemField.FeatureType))
feature.Overall = newItem.Overall; feature.Type = newItem.Type;
} }
/// <summary> /// <summary>
@@ -715,18 +699,18 @@ namespace SabreTools.Filtering
/// <param name="datItemFields">List of fields representing what should be updated</param> /// <param name="datItemFields">List of fields representing what should be updated</param>
private static void ReplaceFields(Input input, Input newItem, List<DatItemField> datItemFields) private static void ReplaceFields(Input input, Input newItem, List<DatItemField> datItemFields)
{ {
if (datItemFields.Contains(DatItemField.Coins))
input.Coins = newItem.Coins;
if (datItemFields.Contains(DatItemField.Players))
input.Players = newItem.Players;
if (datItemFields.Contains(DatItemField.Service)) if (datItemFields.Contains(DatItemField.Service))
input.Service = newItem.Service; input.Service = newItem.Service;
if (datItemFields.Contains(DatItemField.Tilt)) if (datItemFields.Contains(DatItemField.Tilt))
input.Tilt = newItem.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 // Control_* doesn't make sense here
// since not every control under the other item // since not every control under the other item
// can replace every control under this item // can replace every control under this item
@@ -740,11 +724,11 @@ namespace SabreTools.Filtering
/// <param name="datItemFields">List of fields representing what should be updated</param> /// <param name="datItemFields">List of fields representing what should be updated</param>
private static void ReplaceFields(Instance instance, Instance newItem, List<DatItemField> datItemFields) private static void ReplaceFields(Instance instance, Instance newItem, List<DatItemField> datItemFields)
{ {
if (datItemFields.Contains(DatItemField.Instance_Name))
instance.Name = newItem.Name;
if (datItemFields.Contains(DatItemField.Instance_BriefName)) if (datItemFields.Contains(DatItemField.Instance_BriefName))
instance.BriefName = newItem.BriefName; instance.BriefName = newItem.BriefName;
if (datItemFields.Contains(DatItemField.Instance_Name))
instance.Name = newItem.Name;
} }
/// <summary> /// <summary>
@@ -755,14 +739,14 @@ namespace SabreTools.Filtering
/// <param name="datItemFields">List of fields representing what should be updated</param> /// <param name="datItemFields">List of fields representing what should be updated</param>
private static void ReplaceFields(Location location, Location newItem, List<DatItemField> datItemFields) private static void ReplaceFields(Location location, Location newItem, List<DatItemField> datItemFields)
{ {
if (datItemFields.Contains(DatItemField.Location_Inverted))
location.Inverted = newItem.Inverted;
if (datItemFields.Contains(DatItemField.Location_Name)) if (datItemFields.Contains(DatItemField.Location_Name))
location.Name = newItem.Name; location.Name = newItem.Name;
if (datItemFields.Contains(DatItemField.Location_Number)) if (datItemFields.Contains(DatItemField.Location_Number))
location.Number = newItem.Number; location.Number = newItem.Number;
if (datItemFields.Contains(DatItemField.Location_Inverted))
location.Inverted = newItem.Inverted;
} }
/// <summary> /// <summary>
@@ -806,12 +790,12 @@ namespace SabreTools.Filtering
/// <param name="datItemFields">List of fields representing what should be updated</param> /// <param name="datItemFields">List of fields representing what should be updated</param>
private static void ReplaceFields(Part part, Part newItem, List<DatItemField> datItemFields) private static void ReplaceFields(Part part, Part newItem, List<DatItemField> datItemFields)
{ {
if (datItemFields.Contains(DatItemField.Part_Name))
part.Name = newItem.Name;
if (datItemFields.Contains(DatItemField.Part_Interface)) if (datItemFields.Contains(DatItemField.Part_Interface))
part.Interface = newItem.Interface; part.Interface = newItem.Interface;
if (datItemFields.Contains(DatItemField.Part_Name))
part.Name = newItem.Name;
// Part_Feature_* doesn't make sense here // Part_Feature_* doesn't make sense here
// since not every part feature under the other item // since not every part feature under the other item
// can replace every part feature under this item // can replace every part feature under this item
@@ -856,11 +840,11 @@ namespace SabreTools.Filtering
/// <param name="datItemFields">List of fields representing what should be updated</param> /// <param name="datItemFields">List of fields representing what should be updated</param>
private static void ReplaceFields(RamOption ramOption, RamOption newItem, List<DatItemField> datItemFields) private static void ReplaceFields(RamOption ramOption, RamOption newItem, List<DatItemField> datItemFields)
{ {
if (datItemFields.Contains(DatItemField.Default))
ramOption.Default = newItem.Default;
if (datItemFields.Contains(DatItemField.Content)) if (datItemFields.Contains(DatItemField.Content))
ramOption.Content = newItem.Content; ramOption.Content = newItem.Content;
if (datItemFields.Contains(DatItemField.Default))
ramOption.Default = newItem.Default;
} }
/// <summary> /// <summary>
@@ -871,17 +855,17 @@ namespace SabreTools.Filtering
/// <param name="datItemFields">List of fields representing what should be updated</param> /// <param name="datItemFields">List of fields representing what should be updated</param>
private static void ReplaceFields(Release release, Release newItem, List<DatItemField> datItemFields) private static void ReplaceFields(Release release, Release newItem, List<DatItemField> datItemFields)
{ {
if (datItemFields.Contains(DatItemField.Region))
release.Region = newItem.Region;
if (datItemFields.Contains(DatItemField.Language))
release.Language = newItem.Language;
if (datItemFields.Contains(DatItemField.Date)) if (datItemFields.Contains(DatItemField.Date))
release.Date = newItem.Date; release.Date = newItem.Date;
if (datItemFields.Contains(DatItemField.Default)) if (datItemFields.Contains(DatItemField.Default))
release.Default = newItem.Default; release.Default = newItem.Default;
if (datItemFields.Contains(DatItemField.Language))
release.Language = newItem.Language;
if (datItemFields.Contains(DatItemField.Region))
release.Region = newItem.Region;
} }
/// <summary> /// <summary>
@@ -892,13 +876,23 @@ namespace SabreTools.Filtering
/// <param name="datItemFields">List of fields representing what should be updated</param> /// <param name="datItemFields">List of fields representing what should be updated</param>
private static void ReplaceFields(Rom rom, Rom newItem, List<DatItemField> datItemFields) private static void ReplaceFields(Rom rom, Rom newItem, List<DatItemField> datItemFields)
{ {
#region Common if (datItemFields.Contains(DatItemField.ArchiveDotOrgFormat))
rom.ArchiveDotOrgFormat = newItem.ArchiveDotOrgFormat;
if (datItemFields.Contains(DatItemField.ArchiveDotOrgSource))
rom.ArchiveDotOrgSource = newItem.ArchiveDotOrgSource;
if (datItemFields.Contains(DatItemField.AltName))
rom.AltName = newItem.AltName;
if (datItemFields.Contains(DatItemField.AltTitle))
rom.AltTitle = newItem.AltTitle;
if (datItemFields.Contains(DatItemField.Bios)) if (datItemFields.Contains(DatItemField.Bios))
rom.Bios = newItem.Bios; rom.Bios = newItem.Bios;
if (datItemFields.Contains(DatItemField.Size)) if (datItemFields.Contains(DatItemField.Boot))
rom.Size = newItem.Size; rom.Boot = newItem.Boot;
if (datItemFields.Contains(DatItemField.CRC)) if (datItemFields.Contains(DatItemField.CRC))
{ {
@@ -906,12 +900,54 @@ namespace SabreTools.Filtering
rom.CRC = newItem.CRC; rom.CRC = newItem.CRC;
} }
if (datItemFields.Contains(DatItemField.Date))
rom.Date = newItem.Date;
if (datItemFields.Contains(DatItemField.Inverted))
rom.Inverted = newItem.Inverted;
if (datItemFields.Contains(DatItemField.LoadFlag))
rom.LoadFlag = newItem.LoadFlag;
if (datItemFields.Contains(DatItemField.MD5)) if (datItemFields.Contains(DatItemField.MD5))
{ {
if (string.IsNullOrEmpty(rom.MD5) && !string.IsNullOrEmpty(newItem.MD5)) if (string.IsNullOrEmpty(rom.MD5) && !string.IsNullOrEmpty(newItem.MD5))
rom.MD5 = newItem.MD5; rom.MD5 = newItem.MD5;
} }
if (datItemFields.Contains(DatItemField.Merge))
rom.MergeTag = newItem.MergeTag;
if (datItemFields.Contains(DatItemField.MIA))
rom.MIA = newItem.MIA;
if (datItemFields.Contains(DatItemField.Offset))
rom.Offset = newItem.Offset;
if (datItemFields.Contains(DatItemField.OpenMSXSubType))
rom.OpenMSXSubType = newItem.OpenMSXSubType;
if (datItemFields.Contains(DatItemField.OpenMSXType))
rom.OpenMSXType = newItem.OpenMSXType;
if (datItemFields.Contains(DatItemField.Optional))
rom.Optional = newItem.Optional;
if (datItemFields.Contains(DatItemField.Original))
rom.Original = newItem.Original;
if (datItemFields.Contains(DatItemField.OriginalFilename))
rom.OriginalFilename = newItem.OriginalFilename;
if (datItemFields.Contains(DatItemField.Region))
rom.Region = newItem.Region;
if (datItemFields.Contains(DatItemField.Remark))
rom.Remark = newItem.Remark;
if (datItemFields.Contains(DatItemField.Rotation))
rom.Rotation = newItem.Rotation;
if (datItemFields.Contains(DatItemField.SHA1)) if (datItemFields.Contains(DatItemField.SHA1))
{ {
if (string.IsNullOrEmpty(rom.SHA1) && !string.IsNullOrEmpty(newItem.SHA1)) if (string.IsNullOrEmpty(rom.SHA1) && !string.IsNullOrEmpty(newItem.SHA1))
@@ -936,95 +972,21 @@ namespace SabreTools.Filtering
rom.SHA512 = newItem.SHA512; rom.SHA512 = newItem.SHA512;
} }
if (datItemFields.Contains(DatItemField.Size))
rom.Size = newItem.Size;
if (datItemFields.Contains(DatItemField.SpamSum)) if (datItemFields.Contains(DatItemField.SpamSum))
{ {
if (string.IsNullOrEmpty(rom.SpamSum) && !string.IsNullOrEmpty(newItem.SpamSum)) if (string.IsNullOrEmpty(rom.SpamSum) && !string.IsNullOrEmpty(newItem.SpamSum))
rom.SpamSum = 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)) if (datItemFields.Contains(DatItemField.Status))
rom.ItemStatus = newItem.ItemStatus; rom.ItemStatus = newItem.ItemStatus;
if (datItemFields.Contains(DatItemField.Optional))
rom.Optional = newItem.Optional;
if (datItemFields.Contains(DatItemField.Inverted))
rom.Inverted = newItem.Inverted;
#endregion
#region Archive.org
if (datItemFields.Contains(DatItemField.ArchiveDotOrgSource))
rom.ArchiveDotOrgSource = newItem.ArchiveDotOrgSource;
if (datItemFields.Contains(DatItemField.ArchiveDotOrgFormat))
rom.ArchiveDotOrgFormat = newItem.ArchiveDotOrgFormat;
if (datItemFields.Contains(DatItemField.OriginalFilename))
rom.OriginalFilename = newItem.OriginalFilename;
if (datItemFields.Contains(DatItemField.Rotation))
rom.Rotation = newItem.Rotation;
if (datItemFields.Contains(DatItemField.Summation)) if (datItemFields.Contains(DatItemField.Summation))
rom.Summation = newItem.Summation; rom.Summation = newItem.Summation;
#endregion
#region AttractMode
if (datItemFields.Contains(DatItemField.AltName))
rom.AltName = newItem.AltName;
if (datItemFields.Contains(DatItemField.AltTitle))
rom.AltTitle = newItem.AltTitle;
#endregion
#region Logiqx
if (datItemFields.Contains(DatItemField.MIA))
rom.MIA = newItem.MIA;
#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)) if (datItemFields.Contains(DatItemField.Value))
rom.Value = newItem.Value; rom.Value = newItem.Value;
@@ -1033,8 +995,6 @@ namespace SabreTools.Filtering
if (rom.PartSpecified && newItem.PartSpecified) if (rom.PartSpecified && newItem.PartSpecified)
ReplaceFields(rom.Part, newItem.Part, datItemFields); ReplaceFields(rom.Part, newItem.Part, datItemFields);
#endregion
} }
/// <summary> /// <summary>
@@ -1045,15 +1005,15 @@ namespace SabreTools.Filtering
/// <param name="datItemFields">List of fields representing what should be updated</param> /// <param name="datItemFields">List of fields representing what should be updated</param>
private static void ReplaceFields(Setting setting, Setting newItem, List<DatItemField> datItemFields) private static void ReplaceFields(Setting setting, Setting newItem, List<DatItemField> datItemFields)
{ {
if (datItemFields.Contains(DatItemField.Setting_Default))
setting.Default = newItem.Default;
if (datItemFields.Contains(DatItemField.Setting_Name)) if (datItemFields.Contains(DatItemField.Setting_Name))
setting.Name = newItem.Name; setting.Name = newItem.Name;
if (datItemFields.Contains(DatItemField.Setting_Value)) if (datItemFields.Contains(DatItemField.Setting_Value))
setting.Value = newItem.Value; setting.Value = newItem.Value;
if (datItemFields.Contains(DatItemField.Setting_Default))
setting.Default = newItem.Default;
// Condition_* doesn't make sense here // Condition_* doesn't make sense here
// since not every condition under the other item // since not every condition under the other item
// can replace every condition under this item // can replace every condition under this item
@@ -1092,14 +1052,14 @@ namespace SabreTools.Filtering
/// <param name="datItemFields">List of fields representing what should be updated</param> /// <param name="datItemFields">List of fields representing what should be updated</param>
private static void ReplaceFields(SlotOption slotOption, SlotOption newItem, List<DatItemField> datItemFields) private static void ReplaceFields(SlotOption slotOption, SlotOption newItem, List<DatItemField> datItemFields)
{ {
if (datItemFields.Contains(DatItemField.SlotOption_Name)) if (datItemFields.Contains(DatItemField.SlotOption_Default))
slotOption.Name = newItem.Name; slotOption.Default = newItem.Default;
if (datItemFields.Contains(DatItemField.SlotOption_DeviceName)) if (datItemFields.Contains(DatItemField.SlotOption_DeviceName))
slotOption.DeviceName = newItem.DeviceName; slotOption.DeviceName = newItem.DeviceName;
if (datItemFields.Contains(DatItemField.SlotOption_Default)) if (datItemFields.Contains(DatItemField.SlotOption_Name))
slotOption.Default = newItem.Default; slotOption.Name = newItem.Name;
} }
/// <summary> /// <summary>
@@ -1110,14 +1070,14 @@ namespace SabreTools.Filtering
/// <param name="datItemFields">List of fields representing what should be updated</param> /// <param name="datItemFields">List of fields representing what should be updated</param>
private static void ReplaceFields(SoftwareList softwareList, SoftwareList newItem, List<DatItemField> datItemFields) private static void ReplaceFields(SoftwareList softwareList, SoftwareList newItem, List<DatItemField> datItemFields)
{ {
if (datItemFields.Contains(DatItemField.Tag)) if (datItemFields.Contains(DatItemField.Filter))
softwareList.Tag = newItem.Tag; softwareList.Filter = newItem.Filter;
if (datItemFields.Contains(DatItemField.SoftwareListStatus)) if (datItemFields.Contains(DatItemField.SoftwareListStatus))
softwareList.Status = newItem.Status; softwareList.Status = newItem.Status;
if (datItemFields.Contains(DatItemField.Filter)) if (datItemFields.Contains(DatItemField.Tag))
softwareList.Filter = newItem.Filter; softwareList.Tag = newItem.Tag;
} }
/// <summary> /// <summary>