diff --git a/SabreTools.Core/Enums.cs b/SabreTools.Core/Enums.cs index 76f31c4a..e90e7b02 100644 --- a/SabreTools.Core/Enums.cs +++ b/SabreTools.Core/Enums.cs @@ -916,517 +916,501 @@ namespace SabreTools.Core { NULL = 0, - #region Common - - [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) - + /// Used in Rom [Mapping("altname", "alt_name", "altromname", "alt_romname", "alt_rom_name")] AltName, + /// Used in Rom [Mapping("alttitle", "alt_title", "altromtitle", "alt_romtitle", "alt_rom_title")] AltTitle, - #endregion - - #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 - + /// Used in Analog [Mapping("analog_mask")] Analog_Mask, - #endregion + /// Used in Rom + [Mapping("ado_format")] + ArchiveDotOrgFormat, - #region Archive - - [Mapping("number")] - 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, + /// Used in Rom + [Mapping("ado_source")] + ArchiveDotOrgSource, + /// Used in DataArea [Mapping("areaendinanness", "area_endianness")] AreaEndianness, - #endregion + /// Used in DataArea and DiskArea + [Mapping("areaname", "area_name")] + AreaName, - #region Device + /// Used in DataArea + [Mapping("areasize", "area_size")] + AreaSize, - [Mapping("devicetype", "device_type")] - DeviceType, + /// Used in DataArea + [Mapping("areawidth", "area_width")] + AreaWidth, - [Mapping("fixedimage", "fixed_image")] - FixedImage, + /// Used in Rom + [Mapping("bios")] + Bios, - [Mapping("mandatory")] - Mandatory, + /// Used in Rom + [Mapping("boot")] + Boot, - [Mapping("interface")] - Interface, - - #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 + /// Used in Archive + [Mapping("categories")] + Categories, + /// Used in Sound [Mapping("channels")] Channels, - #endregion + /// Used in Chip + [Mapping("chiptype", "chip_type")] + ChipType, - #endregion + /// Used in Chip + [Mapping("clock")] + Clock, - #endregion // Item-Specific + /// Used in Archive + [Mapping("clone")] + Clone, + + /// Used in Driver + [Mapping("cocktailstatus", "cocktail_status")] + CocktailStatus, + + /// Used in Input + [Mapping("coins")] + Coins, + + /// Used in Archive + [Mapping("complete")] + Complete, + + /// Used in Condition + [Mapping("condition_mask")] + Condition_Mask, + + /// Used in Condition + [Mapping("condition_relation")] + Condition_Relation, + + /// Used in Condition + [Mapping("condition_tag")] + Condition_Tag, + + /// Used in Condition + [Mapping("condition_value")] + Condition_Value, + + /// Used in RamOption + [Mapping("content")] + Content, + + /// Used in Control + [Mapping("control_buttons")] + Control_Buttons, + + /// Used in Control + [Mapping("control_keydelta", "control_key_delta")] + Control_KeyDelta, + + /// Used in Control + [Mapping("control_maximum")] + Control_Maximum, + + /// Used in Control + [Mapping("control_minimum")] + Control_Minimum, + + /// Used in Control + [Mapping("control_player")] + Control_Player, + + /// Used in Control + [Mapping("control_reqbuttons", "control_req_buttons")] + Control_RequiredButtons, + + /// Used in Control + [Mapping("control_reverse")] + Control_Reverse, + + /// Used in Control + [Mapping("control_sensitivity")] + Control_Sensitivity, + + /// Used in Control + [Mapping("control_type")] + Control_Type, + + /// Used in Control + [Mapping("control_ways")] + Control_Ways, + + /// Used in Control + [Mapping("control_ways2")] + Control_Ways2, + + /// Used in Control + [Mapping("control_ways3")] + Control_Ways3, + + /// Used in Rom + [Mapping("crc", "crc32")] + CRC, + + /// Used in Release and Rom + [Mapping("date")] + Date, + + /// Used in Adjuster, BiosSet, RamOption, and Release + [Mapping("default")] + Default, + + /// Used in BiosSet + [Mapping("description", "biosdescription", "bios_description")] + Description, + + /// Used in Device + [Mapping("devicetype", "device_type")] + DeviceType, + + /// Used in Archive + [Mapping("devstatus", "dev_status")] + DevStatus, + + /// Used in Display + [Mapping("displaytype", "display_type")] + DisplayType, + + /// Used in Driver + [Mapping("emulationstatus", "emulation_status")] + EmulationStatus, + + /// Used in Extension + [Mapping("extension_name")] + Extension_Name, + + /// Used in Feature + [Mapping("featureoverall", "feature_overall")] + FeatureOverall, + + /// Used in Feature + [Mapping("featurestatus", "feature_status")] + FeatureStatus, + + /// Used in Feature + [Mapping("featuretype", "feature_type")] + FeatureType, + + /// Used in SoftwareList + [Mapping("filter")] + Filter, + + /// Used in Device + [Mapping("fixedimage", "fixed_image")] + FixedImage, + + /// Used in Display + [Mapping("flipx")] + FlipX, + + /// Used in Display + [Mapping("hbend")] + HBEnd, + + /// Used in Display + [Mapping("hbstart")] + HBStart, + + /// Used in Display + [Mapping("height")] + Height, + + /// Used in Display + [Mapping("htotal")] + HTotal, + + /// Used in Driver + [Mapping("incomplete")] + Incomplete, + + /// Used in Disk + [Mapping("index")] + Index, + + /// Used in Instance + [Mapping("instance_briefname", "instance_brief_name")] + Instance_BriefName, + + /// Used in Instance + [Mapping("instance_name")] + Instance_Name, + + /// Used in Device + [Mapping("interface")] + Interface, + + /// Used in Rom + [Mapping("inverted")] + Inverted, + + /// Used in Release + [Mapping("language")] + Language, + + /// Used in Archive + [Mapping("languages")] + Languages, + + /// Used in Rom + [Mapping("loadflag", "load_flag")] + LoadFlag, + + /// Used in Location + [Mapping("location_inverted")] + Location_Inverted, + + /// Used in Location + [Mapping("location_name")] + Location_Name, + + /// Used in Location + [Mapping("location_number")] + Location_Number, + + /// Used in Device + [Mapping("mandatory")] + Mandatory, + + /// Used in Condition, Configuration, and DipSwitch + [Mapping("mask")] + Mask, + + /// Used in Disk, Media, and Rom + [Mapping("md5", "md5hash", "md5_hash")] + MD5, + + /// Used in Disk and Rom + [Mapping("merge", "mergetag", "merge_tag")] + Merge, + + /// Used in Rom + [Mapping("mia")] + MIA, + + /// 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 + [Mapping("name")] + Name, + + /// Used in Driver + [Mapping("nosoundhardware", "no_sound_hardware")] + NoSoundHardware, + + /// Used in Archive + [Mapping("number")] + Number, + + /// Used in Rom + [Mapping("offset")] + Offset, + + /// Used in Rom + [Mapping("subtype", "sub_type", "openmsxsubtype", "openmsx_subtype", "openmsx_sub_type")] + OpenMSXSubType, + + /// Used in Rom + [Mapping("openmsxtype", "openmsx_type")] + OpenMSXType, + + /// Used in Disk and Rom + [Mapping("optional")] + Optional, + + /// Used in Rom + [Mapping("original")] + Original, + + /// Used in Rom + [Mapping("original_filename")] + OriginalFilename, + + /// Used in PartFeature + [Mapping("part_feature_name")] + Part_Feature_Name, + + /// Used in PartFeature + [Mapping("part_feature_value")] + Part_Feature_Value, + + /// Used in Part + [Mapping("partinterface", "part_interface")] + Part_Interface, + + /// Used in Part + [Mapping("partname", "part_name")] + Part_Name, + + /// Used in Archive + [Mapping("physical")] + Physical, + + /// Used in Display + [Mapping("pixclock", "pix_clock")] + PixClock, + + /// Used in Input + [Mapping("players")] + Players, + + /// Used in Display + [Mapping("refresh")] + Refresh, + + /// Used in Archive, Disk, Release, and Rom + [Mapping("region")] + Region, + + /// Used in Archive + [Mapping("regparent", "reg_parent")] + RegParent, + + /// Used in Condition + [Mapping("relation")] + Relation, + + /// Used in Rom + [Mapping("remark")] + Remark, + + /// Used in Driver + [Mapping("requiresartwork", "requires_artwork")] + RequiresArtwork, + + /// Used in Display + [Mapping("rotate")] + Rotate, + + /// Used in Rom + [Mapping("rotation")] + Rotation, + + /// Used in Driver + [Mapping("savestatestatus", "savestate_status", "save_state_status")] + SaveStateStatus, + + /// Used in Input + [Mapping("service")] + Service, + + /// Used in Setting + [Mapping("setting_default", "value_default")] + Setting_Default, + + /// Used in Setting + [Mapping("setting_name", "value_name")] + Setting_Name, + + /// Used in Setting + [Mapping("setting_value", "value_value")] + Setting_Value, + + /// Used in Disk, Media, and Rom + [Mapping("sha1", "sha_1", "sha1hash", "sha1_hash", "sha_1hash", "sha_1_hash")] + SHA1, + + /// Used in Media and Rom + [Mapping("sha256", "sha_256", "sha256hash", "sha256_hash", "sha_256hash", "sha_256_hash")] + SHA256, + + /// Used in Rom + [Mapping("sha384", "sha_384", "sha384hash", "sha384_hash", "sha_384hash", "sha_384_hash")] + SHA384, + + /// Used in Rom + [Mapping("sha512", "sha_512", "sha512hash", "sha512_hash", "sha_512hash", "sha_512_hash")] + SHA512, + + /// Used in Rom + [Mapping("size")] + Size, + + /// Used in SlotOption + [Mapping("slotoption_default")] + SlotOption_Default, + + /// Used in SlotOption + [Mapping("slotoption_devicename", "slotoption_device_name")] + SlotOption_DeviceName, + + /// Used in SlotOption + [Mapping("slotoption_name")] + SlotOption_Name, + + /// Used in SoftwareList + [Mapping("softwareliststatus", "softwarelist_status")] + SoftwareListStatus, + + /// Used in Media and Rom + [Mapping("spamsum", "spam_sum")] + SpamSum, + + /// Used in Disk and Rom + [Mapping("status")] + Status, + + /// Used in Rom + [Mapping("summation")] + Summation, + + /// Used in Driver + [Mapping("supportstatus", "support_status")] + SupportStatus, + + /// Used in Chip, Condition, Configuration, Device, DipSwitch, Display, Port, and SoftwareList + [Mapping("tag")] + Tag, + + /// Used in Input + [Mapping("tilt")] + Tilt, + + /// Internal value, common to all DatItems + [Mapping("type")] + Type, + + /// Used in Driver + [Mapping("unofficial")] + Unofficial, + + /// Used in Condition, Info, Rom, and SharedFeature + [Mapping("value")] + Value, + + /// Used in Display + [Mapping("vbend")] + VBEnd, + + /// Used in Display + [Mapping("vbstart")] + VBStart, + + /// Used in Display + [Mapping("vtotal")] + VTotal, + + /// Used in Display + [Mapping("width")] + Width, + + /// Used in Disk + [Mapping("writable")] + Writable, } /// diff --git a/SabreTools.DatFiles/Setter.cs b/SabreTools.DatFiles/Setter.cs index 10e1a0a1..bdc7da3f 100644 --- a/SabreTools.DatFiles/Setter.cs +++ b/SabreTools.DatFiles/Setter.cs @@ -1,7 +1,4 @@ -using System; using System.Collections.Generic; -using System.Linq; - using SabreTools.Core; using SabreTools.Core.Tools; using SabreTools.DatItems; @@ -450,32 +447,32 @@ namespace SabreTools.DatFiles /// Archive to remove replace fields in private void SetFields(Archive archive) { - if (DatItemMappings.ContainsKey(DatItemField.Number)) - archive.Number = DatItemMappings[DatItemField.Number]; + if (DatItemMappings.ContainsKey(DatItemField.Categories)) + archive.Categories = DatItemMappings[DatItemField.Categories]; if (DatItemMappings.ContainsKey(DatItemField.Clone)) archive.CloneValue = DatItemMappings[DatItemField.Clone]; - if (DatItemMappings.ContainsKey(DatItemField.RegParent)) - archive.RegParent = DatItemMappings[DatItemField.RegParent]; - - if (DatItemMappings.ContainsKey(DatItemField.Region)) - archive.Region = DatItemMappings[DatItemField.Region]; - - if (DatItemMappings.ContainsKey(DatItemField.Languages)) - archive.Languages = DatItemMappings[DatItemField.Languages]; + if (DatItemMappings.ContainsKey(DatItemField.Complete)) + archive.Complete = DatItemMappings[DatItemField.Complete]; if (DatItemMappings.ContainsKey(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)) archive.Physical = DatItemMappings[DatItemField.Physical]; - if (DatItemMappings.ContainsKey(DatItemField.Complete)) - archive.Complete = DatItemMappings[DatItemField.Complete]; + if (DatItemMappings.ContainsKey(DatItemField.Region)) + archive.Region = DatItemMappings[DatItemField.Region]; - if (DatItemMappings.ContainsKey(DatItemField.Categories)) - archive.Categories = DatItemMappings[DatItemField.Categories]; + if (DatItemMappings.ContainsKey(DatItemField.RegParent)) + archive.RegParent = DatItemMappings[DatItemField.RegParent]; } /// @@ -484,11 +481,11 @@ namespace SabreTools.DatFiles /// BiosSet to remove replace fields in private void SetFields(BiosSet biosSet) { - if (DatItemMappings.ContainsKey(DatItemField.Description)) - biosSet.Description = DatItemMappings[DatItemField.Description]; - if (DatItemMappings.ContainsKey(DatItemField.Default)) biosSet.Default = DatItemMappings[DatItemField.Default].AsYesNo(); + + if (DatItemMappings.ContainsKey(DatItemField.Description)) + biosSet.Description = DatItemMappings[DatItemField.Description]; } /// @@ -497,14 +494,14 @@ namespace SabreTools.DatFiles /// Chip to remove replace fields in private void SetFields(Chip chip) { - if (DatItemMappings.ContainsKey(DatItemField.Tag)) - chip.Tag = DatItemMappings[DatItemField.Tag]; - if (DatItemMappings.ContainsKey(DatItemField.ChipType)) chip.ChipType = DatItemMappings[DatItemField.ChipType].AsChipType(); if (DatItemMappings.ContainsKey(DatItemField.Clock)) chip.Clock = Utilities.CleanLong(DatItemMappings[DatItemField.Clock]); + + if (DatItemMappings.ContainsKey(DatItemField.Tag)) + chip.Tag = DatItemMappings[DatItemField.Tag]; } /// @@ -516,29 +513,29 @@ namespace SabreTools.DatFiles { if (sub) { - if (DatItemMappings.ContainsKey(DatItemField.Condition_Tag)) - condition.Tag = DatItemMappings[DatItemField.Condition_Tag]; - if (DatItemMappings.ContainsKey(DatItemField.Condition_Mask)) condition.Mask = DatItemMappings[DatItemField.Condition_Mask]; if (DatItemMappings.ContainsKey(DatItemField.Condition_Relation)) 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)) condition.Value = DatItemMappings[DatItemField.Condition_Value]; } else { - if (DatItemMappings.ContainsKey(DatItemField.Tag)) - condition.Tag = DatItemMappings[DatItemField.Tag]; - if (DatItemMappings.ContainsKey(DatItemField.Mask)) condition.Mask = DatItemMappings[DatItemField.Mask]; if (DatItemMappings.ContainsKey(DatItemField.Relation)) condition.Relation = DatItemMappings[DatItemField.Relation].AsRelation(); + if (DatItemMappings.ContainsKey(DatItemField.Tag)) + condition.Tag = DatItemMappings[DatItemField.Tag]; + if (DatItemMappings.ContainsKey(DatItemField.Value)) condition.Value = DatItemMappings[DatItemField.Value]; } @@ -550,12 +547,12 @@ namespace SabreTools.DatFiles /// Configuration to remove replace fields in private void SetFields(Configuration configuration) { - if (DatItemMappings.ContainsKey(DatItemField.Tag)) - configuration.Tag = DatItemMappings[DatItemField.Tag]; - if (DatItemMappings.ContainsKey(DatItemField.Mask)) configuration.Mask = DatItemMappings[DatItemField.Mask]; + if (DatItemMappings.ContainsKey(DatItemField.Tag)) + configuration.Tag = DatItemMappings[DatItemField.Tag]; + if (configuration.ConditionsSpecified) { foreach (Condition subCondition in configuration.Conditions) @@ -587,33 +584,33 @@ namespace SabreTools.DatFiles /// Control to remove replace fields in 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)) control.Buttons = Utilities.CleanLong(DatItemMappings[DatItemField.Control_Buttons]); - if (DatItemMappings.ContainsKey(DatItemField.Control_RequiredButtons)) - control.RequiredButtons = Utilities.CleanLong(DatItemMappings[DatItemField.Control_RequiredButtons]); - - 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_Type)) + control.ControlType = DatItemMappings[DatItemField.Control_Type].AsControlType(); if (DatItemMappings.ContainsKey(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)) 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)) control.Ways = DatItemMappings[DatItemField.Control_Ways]; @@ -630,14 +627,17 @@ namespace SabreTools.DatFiles /// DataArea to remove replace fields in 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)) dataArea.Size = Utilities.CleanLong(DatItemMappings[DatItemField.AreaSize]); if (DatItemMappings.ContainsKey(DatItemField.AreaWidth)) dataArea.Width = Utilities.CleanLong(DatItemMappings[DatItemField.AreaWidth]); - - if (DatItemMappings.ContainsKey(DatItemField.AreaEndianness)) - dataArea.Endianness = DatItemMappings[DatItemField.AreaEndianness].AsEndianness(); } /// @@ -649,25 +649,17 @@ namespace SabreTools.DatFiles if (DatItemMappings.ContainsKey(DatItemField.DeviceType)) device.DeviceType = DatItemMappings[DatItemField.DeviceType].AsDeviceType(); - if (DatItemMappings.ContainsKey(DatItemField.Tag)) - device.Tag = DatItemMappings[DatItemField.Tag]; - if (DatItemMappings.ContainsKey(DatItemField.FixedImage)) device.FixedImage = DatItemMappings[DatItemField.FixedImage]; - if (DatItemMappings.ContainsKey(DatItemField.Mandatory)) - device.Mandatory = Utilities.CleanLong(DatItemMappings[DatItemField.Mandatory]); - if (DatItemMappings.ContainsKey(DatItemField.Interface)) device.Interface = DatItemMappings[DatItemField.Interface]; - if (device.InstancesSpecified) - { - foreach (Instance subInstance in device.Instances) - { - SetFields(subInstance); - } - } + if (DatItemMappings.ContainsKey(DatItemField.Mandatory)) + device.Mandatory = Utilities.CleanLong(DatItemMappings[DatItemField.Mandatory]); + + if (DatItemMappings.ContainsKey(DatItemField.Tag)) + device.Tag = DatItemMappings[DatItemField.Tag]; if (device.ExtensionsSpecified) { @@ -676,6 +668,14 @@ namespace SabreTools.DatFiles SetFields(subExtension); } } + + if (device.InstancesSpecified) + { + foreach (Instance subInstance in device.Instances) + { + SetFields(subInstance); + } + } } /// @@ -684,14 +684,12 @@ namespace SabreTools.DatFiles /// DipSwitch to remove replace fields in private void SetFields(DipSwitch dipSwitch) { - #region Common + if (DatItemMappings.ContainsKey(DatItemField.Mask)) + dipSwitch.Mask = DatItemMappings[DatItemField.Mask]; if (DatItemMappings.ContainsKey(DatItemField.Tag)) dipSwitch.Tag = DatItemMappings[DatItemField.Tag]; - if (DatItemMappings.ContainsKey(DatItemField.Mask)) - dipSwitch.Mask = DatItemMappings[DatItemField.Mask]; - if (dipSwitch.ConditionsSpecified) { foreach (Condition subCondition in dipSwitch.Conditions) @@ -716,16 +714,8 @@ namespace SabreTools.DatFiles } } - #endregion - - #region SoftwareList - - // Handle Part-specific fields dipSwitch.Part ??= new Part(); - SetFields(dipSwitch.Part); - - #endregion } /// @@ -734,45 +724,35 @@ namespace SabreTools.DatFiles /// Disk to remove replace fields in private void SetFields(Disk disk) { - #region Common + if (DatItemMappings.ContainsKey(DatItemField.Index)) + disk.Index = DatItemMappings[DatItemField.Index]; if (DatItemMappings.ContainsKey(DatItemField.MD5)) disk.MD5 = DatItemMappings[DatItemField.MD5]; - if (DatItemMappings.ContainsKey(DatItemField.SHA1)) - disk.SHA1 = DatItemMappings[DatItemField.SHA1]; - if (DatItemMappings.ContainsKey(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)) 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(); - SetFields(disk.DiskArea); disk.Part ??= new Part(); - SetFields(disk.Part); - - #endregion } /// @@ -791,47 +771,47 @@ namespace SabreTools.DatFiles /// Display to remove replace fields in private void SetFields(Display display) { - if (DatItemMappings.ContainsKey(DatItemField.Tag)) - display.Tag = DatItemMappings[DatItemField.Tag]; - if (DatItemMappings.ContainsKey(DatItemField.DisplayType)) display.DisplayType = DatItemMappings[DatItemField.DisplayType].AsDisplayType(); - if (DatItemMappings.ContainsKey(DatItemField.Rotate)) - display.Rotate = Utilities.CleanLong(DatItemMappings[DatItemField.Rotate]); - if (DatItemMappings.ContainsKey(DatItemField.FlipX)) display.FlipX = DatItemMappings[DatItemField.FlipX].AsYesNo(); - if (DatItemMappings.ContainsKey(DatItemField.Width)) - display.Width = Utilities.CleanLong(DatItemMappings[DatItemField.Width]); - if (DatItemMappings.ContainsKey(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)) display.HBEnd = Utilities.CleanLong(DatItemMappings[DatItemField.HBEnd]); if (DatItemMappings.ContainsKey(DatItemField.HBStart)) display.HBStart = Utilities.CleanLong(DatItemMappings[DatItemField.HBStart]); - if (DatItemMappings.ContainsKey(DatItemField.VTotal)) - display.VTotal = Utilities.CleanLong(DatItemMappings[DatItemField.VTotal]); + if (DatItemMappings.ContainsKey(DatItemField.HTotal)) + 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)) display.VBEnd = Utilities.CleanLong(DatItemMappings[DatItemField.VBEnd]); if (DatItemMappings.ContainsKey(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]); } /// @@ -840,29 +820,29 @@ namespace SabreTools.DatFiles /// Driver to remove replace fields in private void SetFields(Driver driver) { - if (DatItemMappings.ContainsKey(DatItemField.SupportStatus)) - driver.Status = DatItemMappings[DatItemField.SupportStatus].AsSupportStatus(); + if (DatItemMappings.ContainsKey(DatItemField.CocktailStatus)) + driver.Cocktail = DatItemMappings[DatItemField.CocktailStatus].AsSupportStatus(); + + if (DatItemMappings.ContainsKey(DatItemField.Incomplete)) + driver.Incomplete = DatItemMappings[DatItemField.Incomplete].AsYesNo(); if (DatItemMappings.ContainsKey(DatItemField.EmulationStatus)) driver.Emulation = DatItemMappings[DatItemField.EmulationStatus].AsSupportStatus(); - if (DatItemMappings.ContainsKey(DatItemField.CocktailStatus)) - driver.Cocktail = DatItemMappings[DatItemField.CocktailStatus].AsSupportStatus(); - - if (DatItemMappings.ContainsKey(DatItemField.SaveStateStatus)) - driver.SaveState = DatItemMappings[DatItemField.SaveStateStatus].AsSupported(); + if (DatItemMappings.ContainsKey(DatItemField.NoSoundHardware)) + driver.NoSoundHardware = DatItemMappings[DatItemField.NoSoundHardware].AsYesNo(); if (DatItemMappings.ContainsKey(DatItemField.RequiresArtwork)) 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)) 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(); } /// @@ -881,14 +861,14 @@ namespace SabreTools.DatFiles /// Feature to remove replace fields in private void SetFields(Feature feature) { - if (DatItemMappings.ContainsKey(DatItemField.FeatureType)) - feature.Type = DatItemMappings[DatItemField.FeatureType].AsFeatureType(); + if (DatItemMappings.ContainsKey(DatItemField.FeatureOverall)) + feature.Overall = DatItemMappings[DatItemField.FeatureOverall].AsFeatureStatus(); if (DatItemMappings.ContainsKey(DatItemField.FeatureStatus)) feature.Status = DatItemMappings[DatItemField.FeatureStatus].AsFeatureStatus(); - if (DatItemMappings.ContainsKey(DatItemField.FeatureOverall)) - feature.Overall = DatItemMappings[DatItemField.FeatureOverall].AsFeatureStatus(); + if (DatItemMappings.ContainsKey(DatItemField.FeatureType)) + feature.Type = DatItemMappings[DatItemField.FeatureType].AsFeatureType(); } /// @@ -907,18 +887,18 @@ namespace SabreTools.DatFiles /// Input to remove replace fields in 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)) input.Service = DatItemMappings[DatItemField.Service].AsYesNo(); if (DatItemMappings.ContainsKey(DatItemField.Tilt)) 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) { foreach (Control subControl in input.Controls) @@ -934,11 +914,11 @@ namespace SabreTools.DatFiles /// Instance to remove replace fields in private void SetFields(Instance instance) { - if (DatItemMappings.ContainsKey(DatItemField.Instance_Name)) - instance.BriefName = DatItemMappings[DatItemField.Instance_Name]; - if (DatItemMappings.ContainsKey(DatItemField.Instance_BriefName)) instance.BriefName = DatItemMappings[DatItemField.Instance_BriefName]; + + if (DatItemMappings.ContainsKey(DatItemField.Instance_Name)) + instance.BriefName = DatItemMappings[DatItemField.Instance_Name]; } /// @@ -947,14 +927,14 @@ namespace SabreTools.DatFiles /// Location to remove replace fields in private void SetFields(Location location) { + if (DatItemMappings.ContainsKey(DatItemField.Location_Inverted)) + location.Inverted = DatItemMappings[DatItemField.Location_Inverted].AsYesNo(); + if (DatItemMappings.ContainsKey(DatItemField.Location_Name)) location.Name = DatItemMappings[DatItemField.Location_Name]; if (DatItemMappings.ContainsKey(DatItemField.Location_Number)) location.Number = Utilities.CleanLong(DatItemMappings[DatItemField.Location_Number]); - - if (DatItemMappings.ContainsKey(DatItemField.Location_Inverted)) - location.Inverted = DatItemMappings[DatItemField.Location_Inverted].AsYesNo(); } /// @@ -982,12 +962,12 @@ namespace SabreTools.DatFiles /// Part to remove replace fields in private void SetFields(Part part) { - if (DatItemMappings.ContainsKey(DatItemField.Part_Name)) - part.Name = DatItemMappings[DatItemField.Part_Name]; - if (DatItemMappings.ContainsKey(DatItemField.Part_Interface)) part.Interface = DatItemMappings[DatItemField.Part_Interface]; + if (DatItemMappings.ContainsKey(DatItemField.Part_Name)) + part.Name = DatItemMappings[DatItemField.Part_Name]; + if (part.FeaturesSpecified) { foreach (PartFeature subPartFeature in part.Features) @@ -1034,11 +1014,11 @@ namespace SabreTools.DatFiles /// RamOption to remove replace fields in private void SetFields(RamOption ramOption) { - if (DatItemMappings.ContainsKey(DatItemField.Default)) - ramOption.Default = DatItemMappings[DatItemField.Default].AsYesNo(); - if (DatItemMappings.ContainsKey(DatItemField.Content)) ramOption.Content = DatItemMappings[DatItemField.Content]; + + if (DatItemMappings.ContainsKey(DatItemField.Default)) + ramOption.Default = DatItemMappings[DatItemField.Default].AsYesNo(); } /// @@ -1047,17 +1027,17 @@ namespace SabreTools.DatFiles /// Release to remove replace fields in 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)) release.Date = DatItemMappings[DatItemField.Date]; if (DatItemMappings.ContainsKey(DatItemField.Default)) 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]; } /// @@ -1066,20 +1046,72 @@ namespace SabreTools.DatFiles /// Rom to remove replace fields in 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)) rom.Bios = DatItemMappings[DatItemField.Bios]; - if (DatItemMappings.ContainsKey(DatItemField.Size)) - rom.Size = Utilities.CleanLong(DatItemMappings[DatItemField.Size]); + if (DatItemMappings.ContainsKey(DatItemField.Boot)) + rom.Boot = DatItemMappings[DatItemField.Boot]; if (DatItemMappings.ContainsKey(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)) 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)) rom.SHA1 = DatItemMappings[DatItemField.SHA1]; @@ -1092,100 +1124,26 @@ namespace SabreTools.DatFiles if (DatItemMappings.ContainsKey(DatItemField.SHA512)) rom.SHA512 = DatItemMappings[DatItemField.SHA512]; + if (DatItemMappings.ContainsKey(DatItemField.Size)) + rom.Size = Utilities.CleanLong(DatItemMappings[DatItemField.Size]); + if (DatItemMappings.ContainsKey(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)) 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)) 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)) rom.Value = DatItemMappings[DatItemField.Value]; rom.DataArea ??= new DataArea(); - SetFields(rom.DataArea); rom.Part ??= new Part(); - SetFields(rom.Part); - - #endregion } /// @@ -1194,15 +1152,15 @@ namespace SabreTools.DatFiles /// Setting to remove replace fields in private void SetFields(Setting setting) { + if (DatItemMappings.ContainsKey(DatItemField.Setting_Default)) + setting.Default = DatItemMappings[DatItemField.Setting_Default].AsYesNo(); + if (DatItemMappings.ContainsKey(DatItemField.Setting_Name)) setting.Name = DatItemMappings[DatItemField.Setting_Name]; if (DatItemMappings.ContainsKey(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) { foreach (Condition subCondition in setting.Conditions) @@ -1243,14 +1201,14 @@ namespace SabreTools.DatFiles /// SlotOption to remove replace fields in private void SetFields(SlotOption slotOption) { - if (DatItemMappings.ContainsKey(DatItemField.SlotOption_Name)) - slotOption.Name = DatItemMappings[DatItemField.SlotOption_Name]; + if (DatItemMappings.ContainsKey(DatItemField.SlotOption_Default)) + slotOption.Default = DatItemMappings[DatItemField.SlotOption_Default].AsYesNo(); if (DatItemMappings.ContainsKey(DatItemField.SlotOption_DeviceName)) slotOption.DeviceName = DatItemMappings[DatItemField.SlotOption_DeviceName]; - if (DatItemMappings.ContainsKey(DatItemField.SlotOption_Default)) - slotOption.Default = DatItemMappings[DatItemField.SlotOption_Default].AsYesNo(); + if (DatItemMappings.ContainsKey(DatItemField.SlotOption_Name)) + slotOption.Name = DatItemMappings[DatItemField.SlotOption_Name]; } /// @@ -1259,14 +1217,14 @@ namespace SabreTools.DatFiles /// SoftwareList to remove replace fields in private void SetFields(SoftwareList softwareList) { - if (DatItemMappings.ContainsKey(DatItemField.Tag)) - softwareList.Tag = DatItemMappings[DatItemField.Tag]; + if (DatItemMappings.ContainsKey(DatItemField.Filter)) + softwareList.Filter = DatItemMappings[DatItemField.Filter]; if (DatItemMappings.ContainsKey(DatItemField.SoftwareListStatus)) softwareList.Status = DatItemMappings[DatItemField.SoftwareListStatus].AsSoftwareListStatus(); - if (DatItemMappings.ContainsKey(DatItemField.Filter)) - softwareList.Filter = DatItemMappings[DatItemField.Filter]; + if (DatItemMappings.ContainsKey(DatItemField.Tag)) + softwareList.Tag = DatItemMappings[DatItemField.Tag]; } /// diff --git a/SabreTools.DatItems/Formats/Archive.cs b/SabreTools.DatItems/Formats/Archive.cs index e48d64b5..8bdd0225 100644 --- a/SabreTools.DatItems/Formats/Archive.cs +++ b/SabreTools.DatItems/Formats/Archive.cs @@ -92,6 +92,7 @@ namespace SabreTools.DatItems.Formats /// public override void SetName(string name) => Name = name; + #endregion #region Constructors diff --git a/SabreTools.Filtering/DatItemRemover.cs b/SabreTools.Filtering/DatItemRemover.cs index 52af6009..16bb2786 100644 --- a/SabreTools.Filtering/DatItemRemover.cs +++ b/SabreTools.Filtering/DatItemRemover.cs @@ -307,32 +307,32 @@ namespace SabreTools.Filtering /// Archive to remove fields from private void RemoveFields(Archive archive) { - if (DatItemFields.Contains(DatItemField.Number)) - archive.Number = null; + if (DatItemFields.Contains(DatItemField.Categories)) + archive.Categories = null; if (DatItemFields.Contains(DatItemField.Clone)) archive.CloneValue = null; - if (DatItemFields.Contains(DatItemField.RegParent)) - archive.RegParent = null; - - if (DatItemFields.Contains(DatItemField.Region)) - archive.Region = null; - - if (DatItemFields.Contains(DatItemField.Languages)) - archive.Languages = null; + if (DatItemFields.Contains(DatItemField.Complete)) + archive.Complete = null; if (DatItemFields.Contains(DatItemField.DevStatus)) archive.DevStatus = null; + if (DatItemFields.Contains(DatItemField.Languages)) + archive.Languages = null; + + if (DatItemFields.Contains(DatItemField.Number)) + archive.Number = null; + if (DatItemFields.Contains(DatItemField.Physical)) archive.Physical = null; - if (DatItemFields.Contains(DatItemField.Complete)) - archive.Complete = null; + if (DatItemFields.Contains(DatItemField.Region)) + archive.Region = null; - if (DatItemFields.Contains(DatItemField.Categories)) - archive.Categories = null; + if (DatItemFields.Contains(DatItemField.RegParent)) + archive.RegParent = null; } /// @@ -341,11 +341,11 @@ namespace SabreTools.Filtering /// BiosSet to remove fields from private void RemoveFields(BiosSet biosSet) { - if (DatItemFields.Contains(DatItemField.Description)) - biosSet.Description = null; - if (DatItemFields.Contains(DatItemField.Default)) biosSet.Default = null; + + if (DatItemFields.Contains(DatItemField.Description)) + biosSet.Description = null; } /// @@ -354,14 +354,14 @@ namespace SabreTools.Filtering /// Chip to remove fields from private void RemoveFields(Chip chip) { - if (DatItemFields.Contains(DatItemField.Tag)) - chip.Tag = null; - if (DatItemFields.Contains(DatItemField.ChipType)) chip.ChipType = ChipType.NULL; if (DatItemFields.Contains(DatItemField.Clock)) chip.Clock = null; + + if (DatItemFields.Contains(DatItemField.Tag)) + chip.Tag = null; } /// @@ -373,29 +373,29 @@ namespace SabreTools.Filtering { if (sub) { - if (DatItemFields.Contains(DatItemField.Condition_Tag)) - condition.Tag = null; - if (DatItemFields.Contains(DatItemField.Condition_Mask)) condition.Mask = null; if (DatItemFields.Contains(DatItemField.Condition_Relation)) condition.Relation = Relation.NULL; + if (DatItemFields.Contains(DatItemField.Condition_Tag)) + condition.Tag = null; + if (DatItemFields.Contains(DatItemField.Condition_Value)) condition.Value = null; } else { - if (DatItemFields.Contains(DatItemField.Tag)) - condition.Tag = null; - if (DatItemFields.Contains(DatItemField.Mask)) condition.Mask = null; if (DatItemFields.Contains(DatItemField.Relation)) condition.Relation = Relation.NULL; + if (DatItemFields.Contains(DatItemField.Tag)) + condition.Tag = null; + if (DatItemFields.Contains(DatItemField.Value)) condition.Value = null; } @@ -407,12 +407,12 @@ namespace SabreTools.Filtering /// Configuration to remove fields from private void RemoveFields(Configuration configuration) { - if (DatItemFields.Contains(DatItemField.Tag)) - configuration.Tag = null; - if (DatItemFields.Contains(DatItemField.Mask)) configuration.Mask = null; + if (DatItemFields.Contains(DatItemField.Tag)) + configuration.Tag = null; + if (configuration.ConditionsSpecified) { foreach (Condition subCondition in configuration.Conditions) @@ -444,33 +444,33 @@ namespace SabreTools.Filtering /// Control to remove fields from 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)) 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)) 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)) 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)) control.Ways = null; @@ -487,6 +487,9 @@ namespace SabreTools.Filtering /// DataArea to remove fields from private void RemoveFields(DataArea dataArea) { + if (DatItemFields.Contains(DatItemField.AreaEndianness)) + dataArea.Endianness = Endianness.NULL; + if (DatItemFields.Contains(DatItemField.AreaName)) dataArea.Name = null; @@ -495,9 +498,6 @@ namespace SabreTools.Filtering if (DatItemFields.Contains(DatItemField.AreaWidth)) dataArea.Width = null; - - if (DatItemFields.Contains(DatItemField.AreaEndianness)) - dataArea.Endianness = Endianness.NULL; } /// @@ -509,25 +509,17 @@ namespace SabreTools.Filtering if (DatItemFields.Contains(DatItemField.DeviceType)) device.DeviceType = DeviceType.NULL; - if (DatItemFields.Contains(DatItemField.Tag)) - device.Tag = null; - if (DatItemFields.Contains(DatItemField.FixedImage)) device.FixedImage = null; - if (DatItemFields.Contains(DatItemField.Mandatory)) - device.Mandatory = null; - if (DatItemFields.Contains(DatItemField.Interface)) device.Interface = null; - if (device.InstancesSpecified) - { - foreach (Instance subInstance in device.Instances) - { - RemoveFields(subInstance); - } - } + if (DatItemFields.Contains(DatItemField.Tag)) + device.Tag = null; + + if (DatItemFields.Contains(DatItemField.Mandatory)) + device.Mandatory = null; if (device.ExtensionsSpecified) { @@ -536,6 +528,14 @@ namespace SabreTools.Filtering RemoveFields(subExtension); } } + + if (device.InstancesSpecified) + { + foreach (Instance subInstance in device.Instances) + { + RemoveFields(subInstance); + } + } } /// @@ -544,14 +544,12 @@ namespace SabreTools.Filtering /// DipSwitch to remove fields from private void RemoveFields(DipSwitch dipSwitch) { - #region Common + if (DatItemFields.Contains(DatItemField.Mask)) + dipSwitch.Mask = null; if (DatItemFields.Contains(DatItemField.Tag)) dipSwitch.Tag = null; - if (DatItemFields.Contains(DatItemField.Mask)) - dipSwitch.Mask = null; - if (dipSwitch.ConditionsSpecified) { foreach (Condition subCondition in dipSwitch.Conditions) @@ -576,14 +574,8 @@ namespace SabreTools.Filtering } } - #endregion - - #region SoftwareList - if (dipSwitch.PartSpecified) RemoveFields(dipSwitch.Part); - - #endregion } /// @@ -592,43 +584,35 @@ namespace SabreTools.Filtering /// Disk to remove fields from 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)) disk.Index = null; - if (DatItemFields.Contains(DatItemField.Writable)) - disk.Writable = null; - if (DatItemFields.Contains(DatItemField.Status)) 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)) 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) RemoveFields(disk.DiskArea); if (disk.PartSpecified) RemoveFields(disk.Part); - - #endregion } /// @@ -647,47 +631,47 @@ namespace SabreTools.Filtering /// Display to remove fields from private void RemoveFields(Display display) { - if (DatItemFields.Contains(DatItemField.Tag)) - display.Tag = null; - if (DatItemFields.Contains(DatItemField.DisplayType)) display.DisplayType = DisplayType.NULL; - if (DatItemFields.Contains(DatItemField.Rotate)) - display.Rotate = null; - if (DatItemFields.Contains(DatItemField.FlipX)) 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)) display.HBEnd = null; if (DatItemFields.Contains(DatItemField.HBStart)) display.HBStart = null; - if (DatItemFields.Contains(DatItemField.VTotal)) - display.VTotal = null; + if (DatItemFields.Contains(DatItemField.Height)) + 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)) display.VBEnd = null; if (DatItemFields.Contains(DatItemField.VBStart)) display.VBStart = null; + + if (DatItemFields.Contains(DatItemField.VTotal)) + display.VTotal = null; + + if (DatItemFields.Contains(DatItemField.Width)) + display.Width = null; } /// @@ -696,29 +680,29 @@ namespace SabreTools.Filtering /// Driver to remove fields from private void RemoveFields(Driver driver) { - if (DatItemFields.Contains(DatItemField.SupportStatus)) - driver.Status = SupportStatus.NULL; + if (DatItemFields.Contains(DatItemField.CocktailStatus)) + driver.Cocktail = SupportStatus.NULL; if (DatItemFields.Contains(DatItemField.EmulationStatus)) driver.Emulation = SupportStatus.NULL; - if (DatItemFields.Contains(DatItemField.CocktailStatus)) - driver.Cocktail = SupportStatus.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.Incomplete)) + driver.Incomplete = null; if (DatItemFields.Contains(DatItemField.NoSoundHardware)) driver.NoSoundHardware = null; - if (DatItemFields.Contains(DatItemField.Incomplete)) - driver.Incomplete = null; + if (DatItemFields.Contains(DatItemField.RequiresArtwork)) + 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; } /// @@ -737,14 +721,14 @@ namespace SabreTools.Filtering /// Feature to remove fields from private void RemoveFields(Feature feature) { - if (DatItemFields.Contains(DatItemField.FeatureType)) - feature.Type = FeatureType.NULL; + if (DatItemFields.Contains(DatItemField.FeatureOverall)) + feature.Overall = FeatureStatus.NULL; if (DatItemFields.Contains(DatItemField.FeatureStatus)) feature.Status = FeatureStatus.NULL; - if (DatItemFields.Contains(DatItemField.FeatureOverall)) - feature.Overall = FeatureStatus.NULL; + if (DatItemFields.Contains(DatItemField.FeatureType)) + feature.Type = FeatureType.NULL; } /// @@ -763,18 +747,18 @@ namespace SabreTools.Filtering /// Input to remove fields from 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)) input.Service = null; if (DatItemFields.Contains(DatItemField.Tilt)) input.Tilt = null; - if (DatItemFields.Contains(DatItemField.Players)) - input.Players = 0; - - if (DatItemFields.Contains(DatItemField.Coins)) - input.Coins = null; - if (input.ControlsSpecified) { foreach (Control subControl in input.Controls) @@ -790,11 +774,11 @@ namespace SabreTools.Filtering /// Instance to remove fields from private void RemoveFields(Instance instance) { - if (DatItemFields.Contains(DatItemField.Instance_Name)) - instance.Name = null; - if (DatItemFields.Contains(DatItemField.Instance_BriefName)) instance.BriefName = null; + + if (DatItemFields.Contains(DatItemField.Instance_Name)) + instance.Name = null; } /// @@ -803,14 +787,14 @@ namespace SabreTools.Filtering /// Location to remove fields from private void RemoveFields(Location location) { + if (DatItemFields.Contains(DatItemField.Location_Inverted)) + location.Inverted = null; + if (DatItemFields.Contains(DatItemField.Location_Name)) location.Name = null; if (DatItemFields.Contains(DatItemField.Location_Number)) location.Number = null; - - if (DatItemFields.Contains(DatItemField.Location_Inverted)) - location.Inverted = null; } /// @@ -838,12 +822,12 @@ namespace SabreTools.Filtering /// Part to remove fields from private void RemoveFields(Part part) { - if (DatItemFields.Contains(DatItemField.Part_Name)) - part.Name = null; - if (DatItemFields.Contains(DatItemField.Part_Interface)) part.Interface = null; + if (DatItemFields.Contains(DatItemField.Part_Name)) + part.Name = null; + if (part.FeaturesSpecified) { foreach (PartFeature subPartFeature in part.Features) @@ -890,11 +874,11 @@ namespace SabreTools.Filtering /// RamOption to remove fields from private void RemoveFields(RamOption ramOption) { - if (DatItemFields.Contains(DatItemField.Default)) - ramOption.Default = null; - if (DatItemFields.Contains(DatItemField.Content)) ramOption.Content = null; + + if (DatItemFields.Contains(DatItemField.Default)) + ramOption.Default = null; } /// @@ -903,17 +887,17 @@ namespace SabreTools.Filtering /// Release to remove fields from 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)) release.Date = null; if (DatItemFields.Contains(DatItemField.Default)) release.Default = null; + + if (DatItemFields.Contains(DatItemField.Language)) + release.Language = null; + + if (DatItemFields.Contains(DatItemField.Region)) + release.Region = null; } /// @@ -922,20 +906,72 @@ namespace SabreTools.Filtering /// Rom to remove fields from 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)) rom.Bios = null; - if (DatItemFields.Contains(DatItemField.Size)) - rom.Size = 0; + if (DatItemFields.Contains(DatItemField.Boot)) + rom.Boot = null; if (DatItemFields.Contains(DatItemField.CRC)) 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)) 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)) rom.SHA1 = null; @@ -948,92 +984,18 @@ namespace SabreTools.Filtering if (DatItemFields.Contains(DatItemField.SHA512)) rom.SHA512 = null; + if (DatItemFields.Contains(DatItemField.Size)) + rom.Size = 0; + if (DatItemFields.Contains(DatItemField.SpamSum)) 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)) 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)) 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)) rom.Value = null; @@ -1042,8 +1004,6 @@ namespace SabreTools.Filtering if (rom.PartSpecified) RemoveFields(rom.Part); - - #endregion } /// @@ -1052,15 +1012,15 @@ namespace SabreTools.Filtering /// Setting to remove fields from private void RemoveFields(Setting setting) { + if (DatItemFields.Contains(DatItemField.Setting_Default)) + setting.Default = null; + if (DatItemFields.Contains(DatItemField.Setting_Name)) setting.Name = null; if (DatItemFields.Contains(DatItemField.Setting_Value)) setting.Value = null; - if (DatItemFields.Contains(DatItemField.Setting_Default)) - setting.Default = null; - if (setting.ConditionsSpecified) { foreach (Condition subCondition in setting.Conditions) @@ -1101,14 +1061,14 @@ namespace SabreTools.Filtering /// SlotOption to remove fields from private void RemoveFields(SlotOption slotOption) { - if (DatItemFields.Contains(DatItemField.SlotOption_Name)) - slotOption.Name = null; + if (DatItemFields.Contains(DatItemField.SlotOption_Default)) + slotOption.Default = null; if (DatItemFields.Contains(DatItemField.SlotOption_DeviceName)) slotOption.DeviceName = null; - - if (DatItemFields.Contains(DatItemField.SlotOption_Default)) - slotOption.Default = null; + + if (DatItemFields.Contains(DatItemField.SlotOption_Name)) + slotOption.Name = null; } /// @@ -1117,14 +1077,14 @@ namespace SabreTools.Filtering /// SoftwareList to remove fields from private void RemoveFields(SoftwareList softwareList) { - if (DatItemFields.Contains(DatItemField.Tag)) - softwareList.Tag = null; + if (DatItemFields.Contains(DatItemField.Filter)) + softwareList.Filter = null; if (DatItemFields.Contains(DatItemField.SoftwareListStatus)) softwareList.Status = SoftwareListStatus.None; - if (DatItemFields.Contains(DatItemField.Filter)) - softwareList.Filter = null; + if (DatItemFields.Contains(DatItemField.Tag)) + softwareList.Tag = null; } /// diff --git a/SabreTools.Filtering/Replacer.cs b/SabreTools.Filtering/Replacer.cs index 104dc60b..1937a41d 100644 --- a/SabreTools.Filtering/Replacer.cs +++ b/SabreTools.Filtering/Replacer.cs @@ -263,32 +263,32 @@ namespace SabreTools.Filtering /// List of fields representing what should be updated private static void ReplaceFields(Archive archive, Archive newItem, List datItemFields) { - if (datItemFields.Contains(DatItemField.Number)) - archive.Number = newItem.Number; + if (datItemFields.Contains(DatItemField.Categories)) + archive.Categories = newItem.Categories; if (datItemFields.Contains(DatItemField.Clone)) archive.CloneValue = newItem.CloneValue; - if (datItemFields.Contains(DatItemField.RegParent)) - archive.RegParent = newItem.RegParent; - - if (datItemFields.Contains(DatItemField.Region)) - archive.Region = newItem.Region; - - if (datItemFields.Contains(DatItemField.Languages)) - archive.Languages = newItem.Languages; + if (datItemFields.Contains(DatItemField.Complete)) + archive.Complete = newItem.Complete; if (datItemFields.Contains(DatItemField.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)) archive.Physical = newItem.Physical; - if (datItemFields.Contains(DatItemField.Complete)) - archive.Complete = newItem.Complete; + if (datItemFields.Contains(DatItemField.Region)) + archive.Region = newItem.Region; - if (datItemFields.Contains(DatItemField.Categories)) - archive.Categories = newItem.Categories; + if (datItemFields.Contains(DatItemField.RegParent)) + archive.RegParent = newItem.RegParent; } /// @@ -299,11 +299,11 @@ namespace SabreTools.Filtering /// List of fields representing what should be updated private static void ReplaceFields(BiosSet biosSet, BiosSet newItem, List datItemFields) { - if (datItemFields.Contains(DatItemField.Description)) - biosSet.Description = newItem.Description; - if (datItemFields.Contains(DatItemField.Default)) biosSet.Default = newItem.Default; + + if (datItemFields.Contains(DatItemField.Description)) + biosSet.Description = newItem.Description; } /// @@ -314,14 +314,14 @@ namespace SabreTools.Filtering /// List of fields representing what should be updated private static void ReplaceFields(Chip chip, Chip newItem, List datItemFields) { - if (datItemFields.Contains(DatItemField.Tag)) - chip.Tag = newItem.Tag; - if (datItemFields.Contains(DatItemField.ChipType)) chip.ChipType = newItem.ChipType; if (datItemFields.Contains(DatItemField.Clock)) chip.Clock = newItem.Clock; + + if (datItemFields.Contains(DatItemField.Tag)) + chip.Tag = newItem.Tag; } /// @@ -332,11 +332,6 @@ namespace SabreTools.Filtering /// List of fields representing what should be updated private static void ReplaceFields(Condition condition, Condition newItem, List 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)) condition.Mask = newItem.Mask; else if (datItemFields.Contains(DatItemField.Condition_Mask)) @@ -347,6 +342,11 @@ namespace SabreTools.Filtering else if (datItemFields.Contains(DatItemField.Condition_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)) condition.Value = newItem.Value; else if (datItemFields.Contains(DatItemField.Condition_Value)) @@ -361,12 +361,12 @@ namespace SabreTools.Filtering /// List of fields representing what should be updated private static void ReplaceFields(Configuration configuration, Configuration newItem, List datItemFields) { - if (datItemFields.Contains(DatItemField.Tag)) - configuration.Tag = newItem.Tag; - if (datItemFields.Contains(DatItemField.Mask)) configuration.Mask = newItem.Mask; + if (datItemFields.Contains(DatItemField.Tag)) + configuration.Tag = newItem.Tag; + // Condition_* doesn't make sense here // since not every condition under the other item // can replace every condition under this item @@ -388,33 +388,33 @@ namespace SabreTools.Filtering /// List of fields representing what should be updated private static void ReplaceFields(Control control, Control newItem, List 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)) control.Buttons = newItem.Buttons; - if (datItemFields.Contains(DatItemField.Control_RequiredButtons)) - control.RequiredButtons = newItem.RequiredButtons; - - 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_Type)) + control.ControlType = newItem.ControlType; if (datItemFields.Contains(DatItemField.Control_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)) control.Reverse = newItem.Reverse; + if (datItemFields.Contains(DatItemField.Control_Sensitivity)) + control.Sensitivity = newItem.Sensitivity; + if (datItemFields.Contains(DatItemField.Control_Ways)) control.Ways = newItem.Ways; @@ -433,6 +433,9 @@ namespace SabreTools.Filtering /// List of fields representing what should be updated private static void ReplaceFields(DataArea dataArea, DataArea newItem, List datItemFields) { + if (datItemFields.Contains(DatItemField.AreaEndianness)) + dataArea.Endianness = newItem.Endianness; + if (datItemFields.Contains(DatItemField.AreaName)) dataArea.Name = newItem.Name; @@ -441,9 +444,6 @@ namespace SabreTools.Filtering if (datItemFields.Contains(DatItemField.AreaWidth)) dataArea.Width = newItem.Width; - - if (datItemFields.Contains(DatItemField.AreaEndianness)) - dataArea.Endianness = newItem.Endianness; } /// @@ -457,17 +457,17 @@ namespace SabreTools.Filtering if (datItemFields.Contains(DatItemField.DeviceType)) device.DeviceType = newItem.DeviceType; - if (datItemFields.Contains(DatItemField.Tag)) - device.Tag = newItem.Tag; - if (datItemFields.Contains(DatItemField.FixedImage)) device.FixedImage = newItem.FixedImage; + if (datItemFields.Contains(DatItemField.Interface)) + device.Interface = newItem.Interface; + if (datItemFields.Contains(DatItemField.Mandatory)) device.Mandatory = newItem.Mandatory; - if (datItemFields.Contains(DatItemField.Interface)) - device.Interface = newItem.Interface; + if (datItemFields.Contains(DatItemField.Tag)) + device.Tag = newItem.Tag; // Instance_* doesn't make sense here // since not every instance under the other item @@ -486,14 +486,12 @@ namespace SabreTools.Filtering /// List of fields representing what should be updated private static void ReplaceFields(DipSwitch dipSwitch, DipSwitch newItem, List datItemFields) { - #region Common + if (datItemFields.Contains(DatItemField.Mask)) + dipSwitch.Mask = newItem.Mask; if (datItemFields.Contains(DatItemField.Tag)) dipSwitch.Tag = newItem.Tag; - if (datItemFields.Contains(DatItemField.Mask)) - dipSwitch.Mask = newItem.Mask; - // Condition_* doesn't make sense here // since not every condition under the other item // can replace every condition under this item @@ -506,14 +504,8 @@ namespace SabreTools.Filtering // since not every value under the other item // can replace every value under this item - #endregion - - #region SoftwareList - if (dipSwitch.PartSpecified && newItem.PartSpecified) ReplaceFields(dipSwitch.Part, newItem.Part, datItemFields); - - #endregion } /// @@ -524,7 +516,11 @@ namespace SabreTools.Filtering /// List of fields representing what should be updated private static void ReplaceFields(Disk disk, Disk newItem, List 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)) { @@ -532,41 +528,29 @@ namespace SabreTools.Filtering 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 (string.IsNullOrEmpty(disk.SHA1) && !string.IsNullOrEmpty(newItem.SHA1)) disk.SHA1 = newItem.SHA1; } - if (datItemFields.Contains(DatItemField.Merge)) - disk.MergeTag = newItem.MergeTag; - if (datItemFields.Contains(DatItemField.Region)) disk.Region = newItem.Region; - if (datItemFields.Contains(DatItemField.Index)) - disk.Index = newItem.Index; - if (datItemFields.Contains(DatItemField.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) ReplaceFields(disk.DiskArea, newItem.DiskArea, datItemFields); if (disk.PartSpecified && newItem.PartSpecified) ReplaceFields(disk.Part, newItem.Part, datItemFields); - - #endregion } /// @@ -589,47 +573,47 @@ namespace SabreTools.Filtering /// List of fields representing what should be updated private static void ReplaceFields(Display display, Display newItem, List datItemFields) { - if (datItemFields.Contains(DatItemField.Tag)) - display.Tag = newItem.Tag; - if (datItemFields.Contains(DatItemField.DisplayType)) display.DisplayType = newItem.DisplayType; - if (datItemFields.Contains(DatItemField.Rotate)) - display.Rotate = newItem.Rotate; - if (datItemFields.Contains(DatItemField.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)) display.HBEnd = newItem.HBEnd; if (datItemFields.Contains(DatItemField.HBStart)) display.HBStart = newItem.HBStart; - if (datItemFields.Contains(DatItemField.VTotal)) - display.VTotal = newItem.VTotal; + if (datItemFields.Contains(DatItemField.Height)) + 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)) display.VBEnd = newItem.VBEnd; if (datItemFields.Contains(DatItemField.VBStart)) display.VBStart = newItem.VBStart; + + if (datItemFields.Contains(DatItemField.VTotal)) + display.VTotal = newItem.VTotal; + + if (datItemFields.Contains(DatItemField.Width)) + display.Width = newItem.Width; } /// @@ -640,29 +624,29 @@ namespace SabreTools.Filtering /// List of fields representing what should be updated private static void ReplaceFields(Driver driver, Driver newItem, List datItemFields) { - if (datItemFields.Contains(DatItemField.SupportStatus)) - driver.Status = newItem.Status; + if (datItemFields.Contains(DatItemField.CocktailStatus)) + driver.Cocktail = newItem.Cocktail; if (datItemFields.Contains(DatItemField.EmulationStatus)) driver.Emulation = newItem.Emulation; - if (datItemFields.Contains(DatItemField.CocktailStatus)) - driver.Cocktail = newItem.Cocktail; - - 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.Incomplete)) + driver.Incomplete = newItem.Incomplete; if (datItemFields.Contains(DatItemField.NoSoundHardware)) driver.NoSoundHardware = newItem.NoSoundHardware; - if (datItemFields.Contains(DatItemField.Incomplete)) - driver.Incomplete = newItem.Incomplete; + if (datItemFields.Contains(DatItemField.RequiresArtwork)) + 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; } /// @@ -685,14 +669,14 @@ namespace SabreTools.Filtering /// List of fields representing what should be updated private static void ReplaceFields(Feature feature, Feature newItem, List datItemFields) { - if (datItemFields.Contains(DatItemField.FeatureType)) - feature.Type = newItem.Type; + if (datItemFields.Contains(DatItemField.FeatureOverall)) + feature.Overall = newItem.Overall; if (datItemFields.Contains(DatItemField.FeatureStatus)) feature.Status = newItem.Status; - if (datItemFields.Contains(DatItemField.FeatureOverall)) - feature.Overall = newItem.Overall; + if (datItemFields.Contains(DatItemField.FeatureType)) + feature.Type = newItem.Type; } /// @@ -715,18 +699,18 @@ namespace SabreTools.Filtering /// List of fields representing what should be updated private static void ReplaceFields(Input input, Input newItem, List datItemFields) { + if (datItemFields.Contains(DatItemField.Coins)) + input.Coins = newItem.Coins; + + if (datItemFields.Contains(DatItemField.Players)) + input.Players = newItem.Players; + if (datItemFields.Contains(DatItemField.Service)) input.Service = newItem.Service; if (datItemFields.Contains(DatItemField.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 // since not every control under the other item // can replace every control under this item @@ -740,11 +724,11 @@ namespace SabreTools.Filtering /// List of fields representing what should be updated private static void ReplaceFields(Instance instance, Instance newItem, List datItemFields) { - if (datItemFields.Contains(DatItemField.Instance_Name)) - instance.Name = newItem.Name; - if (datItemFields.Contains(DatItemField.Instance_BriefName)) instance.BriefName = newItem.BriefName; + + if (datItemFields.Contains(DatItemField.Instance_Name)) + instance.Name = newItem.Name; } /// @@ -755,14 +739,14 @@ namespace SabreTools.Filtering /// List of fields representing what should be updated private static void ReplaceFields(Location location, Location newItem, List datItemFields) { + if (datItemFields.Contains(DatItemField.Location_Inverted)) + location.Inverted = newItem.Inverted; + if (datItemFields.Contains(DatItemField.Location_Name)) location.Name = newItem.Name; if (datItemFields.Contains(DatItemField.Location_Number)) location.Number = newItem.Number; - - if (datItemFields.Contains(DatItemField.Location_Inverted)) - location.Inverted = newItem.Inverted; } /// @@ -806,12 +790,12 @@ namespace SabreTools.Filtering /// List of fields representing what should be updated private static void ReplaceFields(Part part, Part newItem, List datItemFields) { - if (datItemFields.Contains(DatItemField.Part_Name)) - part.Name = newItem.Name; - if (datItemFields.Contains(DatItemField.Part_Interface)) part.Interface = newItem.Interface; + if (datItemFields.Contains(DatItemField.Part_Name)) + part.Name = newItem.Name; + // Part_Feature_* doesn't make sense here // since not every part feature under the other item // can replace every part feature under this item @@ -856,11 +840,11 @@ namespace SabreTools.Filtering /// List of fields representing what should be updated private static void ReplaceFields(RamOption ramOption, RamOption newItem, List datItemFields) { - if (datItemFields.Contains(DatItemField.Default)) - ramOption.Default = newItem.Default; - if (datItemFields.Contains(DatItemField.Content)) ramOption.Content = newItem.Content; + + if (datItemFields.Contains(DatItemField.Default)) + ramOption.Default = newItem.Default; } /// @@ -871,17 +855,17 @@ namespace SabreTools.Filtering /// List of fields representing what should be updated private static void ReplaceFields(Release release, Release newItem, List datItemFields) { - if (datItemFields.Contains(DatItemField.Region)) - release.Region = newItem.Region; - - if (datItemFields.Contains(DatItemField.Language)) - release.Language = newItem.Language; - if (datItemFields.Contains(DatItemField.Date)) release.Date = newItem.Date; if (datItemFields.Contains(DatItemField.Default)) release.Default = newItem.Default; + + if (datItemFields.Contains(DatItemField.Language)) + release.Language = newItem.Language; + + if (datItemFields.Contains(DatItemField.Region)) + release.Region = newItem.Region; } /// @@ -892,13 +876,23 @@ namespace SabreTools.Filtering /// List of fields representing what should be updated private static void ReplaceFields(Rom rom, Rom newItem, List 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)) rom.Bios = newItem.Bios; - if (datItemFields.Contains(DatItemField.Size)) - rom.Size = newItem.Size; + if (datItemFields.Contains(DatItemField.Boot)) + rom.Boot = newItem.Boot; if (datItemFields.Contains(DatItemField.CRC)) { @@ -906,12 +900,54 @@ namespace SabreTools.Filtering 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 (string.IsNullOrEmpty(rom.MD5) && !string.IsNullOrEmpty(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 (string.IsNullOrEmpty(rom.SHA1) && !string.IsNullOrEmpty(newItem.SHA1)) @@ -936,95 +972,21 @@ namespace SabreTools.Filtering rom.SHA512 = newItem.SHA512; } + if (datItemFields.Contains(DatItemField.Size)) + rom.Size = newItem.Size; + if (datItemFields.Contains(DatItemField.SpamSum)) { if (string.IsNullOrEmpty(rom.SpamSum) && !string.IsNullOrEmpty(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)) 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)) 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)) rom.Value = newItem.Value; @@ -1033,8 +995,6 @@ namespace SabreTools.Filtering if (rom.PartSpecified && newItem.PartSpecified) ReplaceFields(rom.Part, newItem.Part, datItemFields); - - #endregion } /// @@ -1045,15 +1005,15 @@ namespace SabreTools.Filtering /// List of fields representing what should be updated private static void ReplaceFields(Setting setting, Setting newItem, List datItemFields) { + if (datItemFields.Contains(DatItemField.Setting_Default)) + setting.Default = newItem.Default; + if (datItemFields.Contains(DatItemField.Setting_Name)) setting.Name = newItem.Name; if (datItemFields.Contains(DatItemField.Setting_Value)) setting.Value = newItem.Value; - if (datItemFields.Contains(DatItemField.Setting_Default)) - setting.Default = newItem.Default; - // Condition_* doesn't make sense here // since not every condition under the other item // can replace every condition under this item @@ -1092,14 +1052,14 @@ namespace SabreTools.Filtering /// List of fields representing what should be updated private static void ReplaceFields(SlotOption slotOption, SlotOption newItem, List datItemFields) { - if (datItemFields.Contains(DatItemField.SlotOption_Name)) - slotOption.Name = newItem.Name; + if (datItemFields.Contains(DatItemField.SlotOption_Default)) + slotOption.Default = newItem.Default; if (datItemFields.Contains(DatItemField.SlotOption_DeviceName)) slotOption.DeviceName = newItem.DeviceName; - if (datItemFields.Contains(DatItemField.SlotOption_Default)) - slotOption.Default = newItem.Default; + if (datItemFields.Contains(DatItemField.SlotOption_Name)) + slotOption.Name = newItem.Name; } /// @@ -1110,14 +1070,14 @@ namespace SabreTools.Filtering /// List of fields representing what should be updated private static void ReplaceFields(SoftwareList softwareList, SoftwareList newItem, List datItemFields) { - if (datItemFields.Contains(DatItemField.Tag)) - softwareList.Tag = newItem.Tag; + if (datItemFields.Contains(DatItemField.Filter)) + softwareList.Filter = newItem.Filter; if (datItemFields.Contains(DatItemField.SoftwareListStatus)) softwareList.Status = newItem.Status; - if (datItemFields.Contains(DatItemField.Filter)) - softwareList.Filter = newItem.Filter; + if (datItemFields.Contains(DatItemField.Tag)) + softwareList.Tag = newItem.Tag; } ///