diff --git a/RombaSharp/Features/Dir2Dat.cs b/RombaSharp/Features/Dir2Dat.cs
index 0c291862..cf2745c3 100644
--- a/RombaSharp/Features/Dir2Dat.cs
+++ b/RombaSharp/Features/Dir2Dat.cs
@@ -56,7 +56,7 @@ namespace RombaSharp.Features
datfile.Header.Name = string.IsNullOrWhiteSpace(name) ? "untitled" : name;
datfile.Header.Description = description;
DatFromDir.PopulateFromDir(datfile, source, asFiles: TreatAsFile.NonArchive);
- Modification.ApplyCleaning(datfile, new Cleaner() { ExcludeFields = Hash.DeepHashes.AsFields() });
+ Modification.ApplyCleaning(datfile, new Cleaner() { ExcludeDatItemFields = Hash.DeepHashes.AsDatItemFields() });
Writer.Write(datfile, outdat);
}
}
diff --git a/SabreTools.Core/Tools/Converters.cs b/SabreTools.Core/Tools/Converters.cs
index b8796464..3575f093 100644
--- a/SabreTools.Core/Tools/Converters.cs
+++ b/SabreTools.Core/Tools/Converters.cs
@@ -7,35 +7,6 @@ namespace SabreTools.Core.Tools
{
#region Enum to Enum
- ///
- /// Get the Fields associated with each hash type
- ///
- public static List AsFields(this Hash hash)
- {
- List fields = new List();
-
- if (hash.HasFlag(Hash.CRC))
- fields.Add(Field.DatItem_CRC);
- if (hash.HasFlag(Hash.MD5))
- fields.Add(Field.DatItem_MD5);
-#if NET_FRAMEWORK
- if (hash.HasFlag(Hash.RIPEMD160))
- fields.Add(Field.DatItem_RIPEMD160);
-#endif
- if (hash.HasFlag(Hash.SHA1))
- fields.Add(Field.DatItem_SHA1);
- if (hash.HasFlag(Hash.SHA256))
- fields.Add(Field.DatItem_SHA256);
- if (hash.HasFlag(Hash.SHA384))
- fields.Add(Field.DatItem_SHA384);
- if (hash.HasFlag(Hash.SHA512))
- fields.Add(Field.DatItem_SHA512);
- if (hash.HasFlag(Hash.SpamSum))
- fields.Add(Field.DatItem_SpamSum);
-
- return fields;
- }
-
///
/// Get the DatItemFields associated with each hash type
///
diff --git a/SabreTools.DatFiles/DatFile.cs b/SabreTools.DatFiles/DatFile.cs
index c4d64c0a..39138b63 100644
--- a/SabreTools.DatFiles/DatFile.cs
+++ b/SabreTools.DatFiles/DatFile.cs
@@ -459,7 +459,7 @@ namespace SabreTools.DatFiles
if (!string.IsNullOrWhiteSpace(disk.SHA1))
{
name = Utilities.GetDepotPath(disk.SHA1, Header.OutputDepot.Depth).Replace('\\', '/');
- item.SetFields(new Dictionary { [Field.DatItem_Name] = $"{pre}{name}{post}" } );
+ item.SetFields(new Dictionary { [DatItemField.Name] = $"{pre}{name}{post}" }, null);
}
}
else if (item.ItemType == ItemType.Media)
@@ -470,7 +470,7 @@ namespace SabreTools.DatFiles
if (!string.IsNullOrWhiteSpace(media.SHA1))
{
name = Utilities.GetDepotPath(media.SHA1, Header.OutputDepot.Depth).Replace('\\', '/');
- item.SetFields(new Dictionary { [Field.DatItem_Name] = $"{pre}{name}{post}" });
+ item.SetFields(new Dictionary { [DatItemField.Name] = $"{pre}{name}{post}" }, null);
}
}
else if (item.ItemType == ItemType.Rom)
@@ -481,7 +481,7 @@ namespace SabreTools.DatFiles
if (!string.IsNullOrWhiteSpace(rom.SHA1))
{
name = Utilities.GetDepotPath(rom.SHA1, Header.OutputDepot.Depth).Replace('\\', '/');
- item.SetFields(new Dictionary { [Field.DatItem_Name] = $"{pre}{name}{post}" });
+ item.SetFields(new Dictionary { [DatItemField.Name] = $"{pre}{name}{post}" }, null);
}
}
@@ -505,7 +505,7 @@ namespace SabreTools.DatFiles
name = Path.Combine(item.Machine.Name, name);
// Now assign back the item name
- item.SetFields(new Dictionary { [Field.DatItem_Name] = pre + name + post });
+ item.SetFields(new Dictionary { [DatItemField.Name] = pre + name + post }, null);
// Restore all relevant values
if (forceRemoveQuotes)
diff --git a/SabreTools.DatFiles/DatHeader.cs b/SabreTools.DatFiles/DatHeader.cs
index afc085d2..fea7bdd9 100644
--- a/SabreTools.DatFiles/DatHeader.cs
+++ b/SabreTools.DatFiles/DatHeader.cs
@@ -406,121 +406,121 @@ namespace SabreTools.DatFiles
/// Set fields with given values
///
/// Mappings dictionary
- public void SetFields(Dictionary mappings)
+ public void SetFields(Dictionary mappings)
{
#region Common
- if (mappings.Keys.Contains(Field.DatHeader_FileName))
- FileName = mappings[Field.DatHeader_FileName];
+ if (mappings.Keys.Contains(DatHeaderField.FileName))
+ FileName = mappings[DatHeaderField.FileName];
- if (mappings.Keys.Contains(Field.DatHeader_Name))
- Name = mappings[Field.DatHeader_Name];
+ if (mappings.Keys.Contains(DatHeaderField.Name))
+ Name = mappings[DatHeaderField.Name];
- if (mappings.Keys.Contains(Field.DatHeader_Description))
- Description = mappings[Field.DatHeader_Description];
+ if (mappings.Keys.Contains(DatHeaderField.Description))
+ Description = mappings[DatHeaderField.Description];
- if (mappings.Keys.Contains(Field.DatHeader_RootDir))
- RootDir = mappings[Field.DatHeader_RootDir];
+ if (mappings.Keys.Contains(DatHeaderField.RootDir))
+ RootDir = mappings[DatHeaderField.RootDir];
- if (mappings.Keys.Contains(Field.DatHeader_Category))
- Category = mappings[Field.DatHeader_Category];
+ if (mappings.Keys.Contains(DatHeaderField.Category))
+ Category = mappings[DatHeaderField.Category];
- if (mappings.Keys.Contains(Field.DatHeader_Version))
- Version = mappings[Field.DatHeader_Version];
+ if (mappings.Keys.Contains(DatHeaderField.Version))
+ Version = mappings[DatHeaderField.Version];
- if (mappings.Keys.Contains(Field.DatHeader_Date))
- Date = mappings[Field.DatHeader_Date];
+ if (mappings.Keys.Contains(DatHeaderField.Date))
+ Date = mappings[DatHeaderField.Date];
- if (mappings.Keys.Contains(Field.DatHeader_Author))
- Author = mappings[Field.DatHeader_Author];
+ if (mappings.Keys.Contains(DatHeaderField.Author))
+ Author = mappings[DatHeaderField.Author];
- if (mappings.Keys.Contains(Field.DatHeader_Email))
- Email = mappings[Field.DatHeader_Email];
+ if (mappings.Keys.Contains(DatHeaderField.Email))
+ Email = mappings[DatHeaderField.Email];
- if (mappings.Keys.Contains(Field.DatHeader_Homepage))
- Homepage = mappings[Field.DatHeader_Homepage];
+ if (mappings.Keys.Contains(DatHeaderField.Homepage))
+ Homepage = mappings[DatHeaderField.Homepage];
- if (mappings.Keys.Contains(Field.DatHeader_Url))
- Url = mappings[Field.DatHeader_Url];
+ if (mappings.Keys.Contains(DatHeaderField.Url))
+ Url = mappings[DatHeaderField.Url];
- if (mappings.Keys.Contains(Field.DatHeader_Comment))
- Comment = mappings[Field.DatHeader_Comment];
+ if (mappings.Keys.Contains(DatHeaderField.Comment))
+ Comment = mappings[DatHeaderField.Comment];
- if (mappings.Keys.Contains(Field.DatHeader_HeaderSkipper))
- HeaderSkipper = mappings[Field.DatHeader_HeaderSkipper];
+ if (mappings.Keys.Contains(DatHeaderField.HeaderSkipper))
+ HeaderSkipper = mappings[DatHeaderField.HeaderSkipper];
- if (mappings.Keys.Contains(Field.DatHeader_Type))
- Type = mappings[Field.DatHeader_Type];
+ if (mappings.Keys.Contains(DatHeaderField.Type))
+ Type = mappings[DatHeaderField.Type];
- if (mappings.Keys.Contains(Field.DatHeader_ForceMerging))
- ForceMerging = mappings[Field.DatHeader_ForceMerging].AsMergingFlag();
+ if (mappings.Keys.Contains(DatHeaderField.ForceMerging))
+ ForceMerging = mappings[DatHeaderField.ForceMerging].AsMergingFlag();
- if (mappings.Keys.Contains(Field.DatHeader_ForceNodump))
- ForceNodump = mappings[Field.DatHeader_ForceNodump].AsNodumpFlag();
+ if (mappings.Keys.Contains(DatHeaderField.ForceNodump))
+ ForceNodump = mappings[DatHeaderField.ForceNodump].AsNodumpFlag();
- if (mappings.Keys.Contains(Field.DatHeader_ForcePacking))
- ForcePacking = mappings[Field.DatHeader_ForcePacking].AsPackingFlag();
+ if (mappings.Keys.Contains(DatHeaderField.ForcePacking))
+ ForcePacking = mappings[DatHeaderField.ForcePacking].AsPackingFlag();
#endregion
#region ListXML
- if (mappings.Keys.Contains(Field.DatHeader_Debug))
- Debug = mappings[Field.DatHeader_Debug].AsYesNo();
+ if (mappings.Keys.Contains(DatHeaderField.Debug))
+ Debug = mappings[DatHeaderField.Debug].AsYesNo();
- if (mappings.Keys.Contains(Field.DatHeader_MameConfig))
- MameConfig = mappings[Field.DatHeader_MameConfig];
+ if (mappings.Keys.Contains(DatHeaderField.MameConfig))
+ MameConfig = mappings[DatHeaderField.MameConfig];
#endregion
#region Logiqx
- if (mappings.Keys.Contains(Field.DatHeader_Build))
- Build = mappings[Field.DatHeader_Build];
+ if (mappings.Keys.Contains(DatHeaderField.Build))
+ Build = mappings[DatHeaderField.Build];
- if (mappings.Keys.Contains(Field.DatHeader_RomMode))
- RomMode = mappings[Field.DatHeader_RomMode].AsMergingFlag();
+ if (mappings.Keys.Contains(DatHeaderField.RomMode))
+ RomMode = mappings[DatHeaderField.RomMode].AsMergingFlag();
- if (mappings.Keys.Contains(Field.DatHeader_BiosMode))
- BiosMode = mappings[Field.DatHeader_BiosMode].AsMergingFlag();
+ if (mappings.Keys.Contains(DatHeaderField.BiosMode))
+ BiosMode = mappings[DatHeaderField.BiosMode].AsMergingFlag();
- if (mappings.Keys.Contains(Field.DatHeader_SampleMode))
- SampleMode = mappings[Field.DatHeader_SampleMode].AsMergingFlag();
+ if (mappings.Keys.Contains(DatHeaderField.SampleMode))
+ SampleMode = mappings[DatHeaderField.SampleMode].AsMergingFlag();
- if (mappings.Keys.Contains(Field.DatHeader_LockRomMode))
- LockRomMode = mappings[Field.DatHeader_LockRomMode].AsYesNo();
+ if (mappings.Keys.Contains(DatHeaderField.LockRomMode))
+ LockRomMode = mappings[DatHeaderField.LockRomMode].AsYesNo();
- if (mappings.Keys.Contains(Field.DatHeader_LockBiosMode))
- LockBiosMode = mappings[Field.DatHeader_LockBiosMode].AsYesNo();
+ if (mappings.Keys.Contains(DatHeaderField.LockBiosMode))
+ LockBiosMode = mappings[DatHeaderField.LockBiosMode].AsYesNo();
- if (mappings.Keys.Contains(Field.DatHeader_LockSampleMode))
- LockSampleMode = mappings[Field.DatHeader_LockSampleMode].AsYesNo();
+ if (mappings.Keys.Contains(DatHeaderField.LockSampleMode))
+ LockSampleMode = mappings[DatHeaderField.LockSampleMode].AsYesNo();
#endregion
#region OfflineList
- if (mappings.Keys.Contains(Field.DatHeader_System))
- System = mappings[Field.DatHeader_System];
+ if (mappings.Keys.Contains(DatHeaderField.System))
+ System = mappings[DatHeaderField.System];
- if (mappings.Keys.Contains(Field.DatHeader_ScreenshotsWidth))
- ScreenshotsWidth = mappings[Field.DatHeader_ScreenshotsWidth];
+ if (mappings.Keys.Contains(DatHeaderField.ScreenshotsWidth))
+ ScreenshotsWidth = mappings[DatHeaderField.ScreenshotsWidth];
- if (mappings.Keys.Contains(Field.DatHeader_ScreenshotsHeight))
- ScreenshotsHeight = mappings[Field.DatHeader_ScreenshotsHeight];
+ if (mappings.Keys.Contains(DatHeaderField.ScreenshotsHeight))
+ ScreenshotsHeight = mappings[DatHeaderField.ScreenshotsHeight];
// TODO: Add DatHeader_Info*
// TDOO: Add DatHeader_CanOpen*
- if (mappings.Keys.Contains(Field.DatHeader_RomTitle))
- RomTitle = mappings[Field.DatHeader_RomTitle];
+ if (mappings.Keys.Contains(DatHeaderField.RomTitle))
+ RomTitle = mappings[DatHeaderField.RomTitle];
#endregion
#region RomCenter
- if (mappings.Keys.Contains(Field.DatHeader_RomCenterVersion))
- RomCenterVersion = mappings[Field.DatHeader_RomCenterVersion];
+ if (mappings.Keys.Contains(DatHeaderField.RomCenterVersion))
+ RomCenterVersion = mappings[DatHeaderField.RomCenterVersion];
#endregion
}
diff --git a/SabreTools.DatFiles/Formats/ClrMamePro.cs b/SabreTools.DatFiles/Formats/ClrMamePro.cs
index 20d55d70..a96040da 100644
--- a/SabreTools.DatFiles/Formats/ClrMamePro.cs
+++ b/SabreTools.DatFiles/Formats/ClrMamePro.cs
@@ -308,7 +308,7 @@ namespace SabreTools.DatFiles.Formats
// Regular attributes
case "name":
- item.SetFields(new Dictionary { [Field.DatItem_Name] = attrVal } );
+ item.SetFields(new Dictionary { [DatItemField.Name] = attrVal }, null);
break;
case "size":
diff --git a/SabreTools.DatFiles/Formats/SeparatedValue.cs b/SabreTools.DatFiles/Formats/SeparatedValue.cs
index 51133982..fdbf6134 100644
--- a/SabreTools.DatFiles/Formats/SeparatedValue.cs
+++ b/SabreTools.DatFiles/Formats/SeparatedValue.cs
@@ -65,27 +65,47 @@ namespace SabreTools.DatFiles.Formats
// Get the current line, split and parse
svr.ReadNextLine();
- // Create mapping dictionary
- var mappings = new Dictionary();
+ // Create mapping dictionaries
+ var datHeaderMappings = new Dictionary();
+ var machineMappings = new Dictionary();
+ var datItemMappings = new Dictionary();
// Now we loop through and get values for everything
for (int i = 0; i < svr.HeaderValues.Count; i++)
{
- Field key = svr.HeaderValues[i].AsField();
string value = svr.Line[i];
- mappings[key] = value;
+ DatHeaderField dhf = svr.HeaderValues[i].AsDatHeaderField();
+ if (dhf != DatHeaderField.NULL)
+ {
+ datHeaderMappings[dhf] = value;
+ continue;
+ }
+
+ MachineField mf = svr.HeaderValues[i].AsMachineField();
+ if (mf != MachineField.NULL)
+ {
+ machineMappings[mf] = value;
+ continue;
+ }
+
+ DatItemField dif = svr.HeaderValues[i].AsDatItemField();
+ if (dif != DatItemField.NULL)
+ {
+ datItemMappings[dif] = value;
+ continue;
+ }
}
// Set DatHeader fields
DatHeader header = new DatHeader();
- header.SetFields(mappings);
+ header.SetFields(datHeaderMappings);
Header.ConditionalCopy(header);
// Set Machine and DatItem fields
- if (mappings.ContainsKey(Field.DatItem_Type))
+ if (datItemMappings.ContainsKey(DatItemField.Type))
{
- DatItem datItem = DatItem.Create(mappings[Field.DatItem_Type].AsItemType());
- datItem.SetFields(mappings);
+ DatItem datItem = DatItem.Create(datItemMappings[DatItemField.Type].AsItemType());
+ datItem.SetFields(datItemMappings, machineMappings);
datItem.Source = new Source(indexId, filename);
ParseAddHelper(datItem);
}
diff --git a/SabreTools.DatItems/Adjuster.cs b/SabreTools.DatItems/Adjuster.cs
index 5f1324cc..2ae87cfe 100644
--- a/SabreTools.DatItems/Adjuster.cs
+++ b/SabreTools.DatItems/Adjuster.cs
@@ -58,28 +58,27 @@ namespace SabreTools.DatItems
return Name;
}
- ///
- /// Set fields with given values
- ///
- /// Mappings dictionary
- public override void SetFields(Dictionary mappings)
+ ///
+ public override void SetFields(
+ Dictionary datItemMappings,
+ Dictionary machineMappings)
{
// Set base fields
- base.SetFields(mappings);
+ base.SetFields(datItemMappings, machineMappings);
// Handle Adjuster-specific fields
- if (mappings.Keys.Contains(Field.DatItem_Name))
- Name = mappings[Field.DatItem_Name];
+ if (datItemMappings.Keys.Contains(DatItemField.Name))
+ Name = datItemMappings[DatItemField.Name];
- if (mappings.Keys.Contains(Field.DatItem_Default))
- Default = mappings[Field.DatItem_Default].AsYesNo();
+ if (datItemMappings.Keys.Contains(DatItemField.Default))
+ Default = datItemMappings[DatItemField.Default].AsYesNo();
// Field.DatItem_Conditions does not apply here
if (ConditionsSpecified)
{
foreach (Condition condition in Conditions)
{
- condition.SetFields(mappings, true);
+ condition.SetFields(datItemMappings, machineMappings, true);
}
}
}
@@ -179,24 +178,19 @@ namespace SabreTools.DatItems
}
}
- ///
- /// Check to see if a DatItem passes the filter
- ///
- /// Filter to check against
- /// True if this is a subitem, false otherwise
- /// True if the item passed the filter, false otherwise
- public override bool PassesFilter(Filter filter, bool sub = false)
+ ///
+ public override bool PassesFilter(Cleaner cleaner, bool sub = false)
{
// Check common fields first
- if (!base.PassesFilter(filter, sub))
+ if (!base.PassesFilter(cleaner, sub))
return false;
// Filter on item name
- if (!filter.PassStringFilter(filter.DatItem_Name, Name))
+ if (!Filter.PassStringFilter(cleaner.DatItemFilter.Name, Name))
return false;
// Filter on default
- if (!filter.PassBoolFilter(filter.DatItem_Default, Default))
+ if (!Filter.PassBoolFilter(cleaner.DatItemFilter.Default, Default))
return false;
// Filter on individual conditions
@@ -204,7 +198,7 @@ namespace SabreTools.DatItems
{
foreach (Condition condition in Conditions)
{
- if (!condition.PassesFilter(filter, true))
+ if (!condition.PassesFilter(cleaner, true))
return false;
}
}
@@ -212,27 +206,26 @@ namespace SabreTools.DatItems
return true;
}
- ///
- /// Remove fields from the DatItem
- ///
- /// List of Fields to remove
- public override void RemoveFields(List fields)
+ ///
+ public override void RemoveFields(
+ List datItemFields,
+ List machineFields)
{
// Remove common fields first
- base.RemoveFields(fields);
+ base.RemoveFields(datItemFields, machineFields);
// Remove the fields
- if (fields.Contains(Field.DatItem_Name))
+ if (datItemFields.Contains(DatItemField.Name))
Name = null;
- if (fields.Contains(Field.DatItem_Default))
+ if (datItemFields.Contains(DatItemField.Default))
Default = null;
if (ConditionsSpecified)
{
foreach (Condition condition in Conditions)
{
- condition.RemoveFields(fields, true);
+ condition.RemoveFields(datItemFields, machineFields, true);
}
}
}
@@ -251,15 +244,14 @@ namespace SabreTools.DatItems
#region Sorting and Merging
- ///
- /// Replace fields from another item
- ///
- /// DatItem to pull new information from
- /// List of Fields representing what should be updated
- public override void ReplaceFields(DatItem item, List fields)
+ ///
+ public override void ReplaceFields(
+ DatItem item,
+ List datItemFields,
+ List machineFields)
{
// Replace common fields first
- base.ReplaceFields(item, fields);
+ base.ReplaceFields(item, datItemFields, machineFields);
// If we don't have a Adjuster to replace from, ignore specific fields
if (item.ItemType != ItemType.Adjuster)
@@ -269,10 +261,10 @@ namespace SabreTools.DatItems
Adjuster newItem = item as Adjuster;
// Replace the fields
- if (fields.Contains(Field.DatItem_Name))
+ if (datItemFields.Contains(DatItemField.Name))
Name = newItem.Name;
- if (fields.Contains(Field.DatItem_Default))
+ if (datItemFields.Contains(DatItemField.Default))
Default = newItem.Default;
// DatItem_Condition_* doesn't make sense here
diff --git a/SabreTools.DatItems/Analog.cs b/SabreTools.DatItems/Analog.cs
index 020cb564..9f8e9c36 100644
--- a/SabreTools.DatItems/Analog.cs
+++ b/SabreTools.DatItems/Analog.cs
@@ -27,18 +27,17 @@ namespace SabreTools.DatItems
#region Accessors
- ///
- /// Set fields with given values
- ///
- /// Mappings dictionary
- public override void SetFields(Dictionary mappings)
+ ///
+ public override void SetFields(
+ Dictionary datItemMappings,
+ Dictionary machineMappings)
{
// Set base fields
- base.SetFields(mappings);
+ base.SetFields(datItemMappings, machineMappings);
// Handle Analog-specific fields
- if (mappings.Keys.Contains(Field.DatItem_Analog_Mask))
- Mask = mappings[Field.DatItem_Analog_Mask];
+ if (datItemMappings.Keys.Contains(DatItemField.Analog_Mask))
+ Mask = datItemMappings[DatItemField.Analog_Mask];
}
#endregion
@@ -93,36 +92,30 @@ namespace SabreTools.DatItems
#region Filtering
- ///
- /// Check to see if a DatItem passes the filter
- ///
- /// Filter to check against
- /// True if this is a subitem, false otherwise
- /// True if the item passed the filter, false otherwise
- public override bool PassesFilter(Filter filter, bool sub = false)
+ ///
+ public override bool PassesFilter(Cleaner cleaner, bool sub = false)
{
// Check common fields first
- if (!base.PassesFilter(filter, sub))
+ if (!base.PassesFilter(cleaner, sub))
return false;
// Filter on mask
- if (!filter.PassStringFilter(filter.DatItem_Analog_Mask, Mask))
+ if (!Filter.PassStringFilter(cleaner.DatItemFilter.Analog_Mask, Mask))
return false;
return true;
}
- ///
- /// Remove fields from the DatItem
- ///
- /// List of Fields to remove
- public override void RemoveFields(List fields)
+ ///
+ public override void RemoveFields(
+ List datItemFields,
+ List machineFields)
{
// Remove common fields first
- base.RemoveFields(fields);
+ base.RemoveFields(datItemFields, machineFields);
// Remove the fields
- if (fields.Contains(Field.DatItem_Analog_Mask))
+ if (datItemFields.Contains(DatItemField.Analog_Mask))
Mask = null;
}
@@ -130,15 +123,14 @@ namespace SabreTools.DatItems
#region Sorting and Merging
- ///
- /// Replace fields from another item
- ///
- /// DatItem to pull new information from
- /// List of Fields representing what should be updated
- public override void ReplaceFields(DatItem item, List fields)
+ ///
+ public override void ReplaceFields(
+ DatItem item,
+ List datItemFields,
+ List machineFields)
{
// Replace common fields first
- base.ReplaceFields(item, fields);
+ base.ReplaceFields(item, datItemFields, machineFields);
// If we don't have a Analog to replace from, ignore specific fields
if (item.ItemType != ItemType.Analog)
@@ -148,7 +140,7 @@ namespace SabreTools.DatItems
Analog newItem = item as Analog;
// Replace the fields
- if (fields.Contains(Field.DatItem_Analog_Mask))
+ if (datItemFields.Contains(DatItemField.Analog_Mask))
Mask = newItem.Mask;
}
diff --git a/SabreTools.DatItems/Archive.cs b/SabreTools.DatItems/Archive.cs
index a7136fd0..0a853711 100644
--- a/SabreTools.DatItems/Archive.cs
+++ b/SabreTools.DatItems/Archive.cs
@@ -37,18 +37,17 @@ namespace SabreTools.DatItems
return Name;
}
- ///
- /// Set fields with given values
- ///
- /// Mappings dictionary
- public override void SetFields(Dictionary mappings)
+ ///
+ public override void SetFields(
+ Dictionary datItemMappings,
+ Dictionary machineMappings)
{
// Set base fields
- base.SetFields(mappings);
+ base.SetFields(datItemMappings, machineMappings);
// Handle Archive-specific fields
- if (mappings.Keys.Contains(Field.DatItem_Name))
- Name = mappings[Field.DatItem_Name];
+ if (datItemMappings.Keys.Contains(DatItemField.Name))
+ Name = datItemMappings[DatItemField.Name];
}
#endregion
@@ -131,36 +130,30 @@ namespace SabreTools.DatItems
}
}
- ///
- /// Check to see if a DatItem passes the filter
- ///
- /// Filter to check against
- /// True if this is a subitem, false otherwise
- /// True if the item passed the filter, false otherwise
- public override bool PassesFilter(Filter filter, bool sub = false)
+ ///
+ public override bool PassesFilter(Cleaner cleaner, bool sub = false)
{
// Check common fields first
- if (!base.PassesFilter(filter, sub))
+ if (!base.PassesFilter(cleaner, sub))
return false;
// Filter on item name
- if (!filter.PassStringFilter(filter.DatItem_Name, Name))
+ if (!Filter.PassStringFilter(cleaner.DatItemFilter.Name, Name))
return false;
return true;
}
- ///
- /// Remove fields from the DatItem
- ///
- /// List of Fields to remove
- public override void RemoveFields(List fields)
+ ///
+ public override void RemoveFields(
+ List datItemFields,
+ List machineFields)
{
// Remove common fields first
- base.RemoveFields(fields);
+ base.RemoveFields(datItemFields, machineFields);
// Remove the fields
- if (fields.Contains(Field.DatItem_Name))
+ if (datItemFields.Contains(DatItemField.Name))
Name = null;
}
@@ -178,15 +171,14 @@ namespace SabreTools.DatItems
#region Sorting and Merging
- ///
- /// Replace fields from another item
- ///
- /// DatItem to pull new information from
- /// List of Fields representing what should be updated
- public override void ReplaceFields(DatItem item, List fields)
+ ///
+ public override void ReplaceFields(
+ DatItem item,
+ List datItemFields,
+ List machineFields)
{
// Replace common fields first
- base.ReplaceFields(item, fields);
+ base.ReplaceFields(item, datItemFields, machineFields);
// If we don't have a Archive to replace from, ignore specific fields
if (item.ItemType != ItemType.Archive)
@@ -196,7 +188,7 @@ namespace SabreTools.DatItems
Archive newItem = item as Archive;
// Replace the fields
- if (fields.Contains(Field.DatItem_Name))
+ if (datItemFields.Contains(DatItemField.Name))
Name = newItem.Name;
}
diff --git a/SabreTools.DatItems/BiosSet.cs b/SabreTools.DatItems/BiosSet.cs
index 8166eb28..8b162dd7 100644
--- a/SabreTools.DatItems/BiosSet.cs
+++ b/SabreTools.DatItems/BiosSet.cs
@@ -55,24 +55,23 @@ namespace SabreTools.DatItems
return Name;
}
- ///
- /// Set fields with given values
- ///
- /// Mappings dictionary
- public override void SetFields(Dictionary mappings)
+ ///
+ public override void SetFields(
+ Dictionary datItemMappings,
+ Dictionary machineMappings)
{
// Set base fields
- base.SetFields(mappings);
+ base.SetFields(datItemMappings, machineMappings);
// Handle BiosSet-specific fields
- if (mappings.Keys.Contains(Field.DatItem_Name))
- Name = mappings[Field.DatItem_Name];
+ if (datItemMappings.Keys.Contains(DatItemField.Name))
+ Name = datItemMappings[DatItemField.Name];
- if (mappings.Keys.Contains(Field.DatItem_Description))
- Description = mappings[Field.DatItem_Description];
+ if (datItemMappings.Keys.Contains(DatItemField.Description))
+ Description = datItemMappings[DatItemField.Description];
- if (mappings.Keys.Contains(Field.DatItem_Default))
- Default = mappings[Field.DatItem_Default].AsYesNo();
+ if (datItemMappings.Keys.Contains(DatItemField.Default))
+ Default = datItemMappings[DatItemField.Default].AsYesNo();
}
#endregion
@@ -159,50 +158,44 @@ namespace SabreTools.DatItems
}
}
- ///
- /// Check to see if a DatItem passes the filter
- ///
- /// Filter to check against
- /// True if this is a subitem, false otherwise
- /// True if the item passed the filter, false otherwise
- public override bool PassesFilter(Filter filter, bool sub = false)
+ ///
+ public override bool PassesFilter(Cleaner cleaner, bool sub = false)
{
// Check common fields first
- if (!base.PassesFilter(filter, sub))
+ if (!base.PassesFilter(cleaner, sub))
return false;
// Filter on item name
- if (!filter.PassStringFilter(filter.DatItem_Name, Name))
+ if (!Filter.PassStringFilter(cleaner.DatItemFilter.Name, Name))
return false;
// Filter on description
- if (!filter.PassStringFilter(filter.DatItem_Description, Description))
+ if (!Filter.PassStringFilter(cleaner.DatItemFilter.Description, Description))
return false;
// Filter on default
- if (!filter.PassBoolFilter(filter.DatItem_Default, Default))
+ if (!Filter.PassBoolFilter(cleaner.DatItemFilter.Default, Default))
return false;
return true;
}
- ///
- /// Remove fields from the DatItem
- ///
- /// List of Fields to remove
- public override void RemoveFields(List fields)
+ ///
+ public override void RemoveFields(
+ List datItemFields,
+ List machineFields)
{
// Remove common fields first
- base.RemoveFields(fields);
+ base.RemoveFields(datItemFields, machineFields);
// Remove the fields
- if (fields.Contains(Field.DatItem_Name))
+ if (datItemFields.Contains(DatItemField.Name))
Name = null;
- if (fields.Contains(Field.DatItem_Description))
+ if (datItemFields.Contains(DatItemField.Description))
Description = null;
- if (fields.Contains(Field.DatItem_Default))
+ if (datItemFields.Contains(DatItemField.Default))
Default = null;
}
@@ -220,15 +213,14 @@ namespace SabreTools.DatItems
#region Sorting and Merging
- ///
- /// Replace fields from another item
- ///
- /// DatItem to pull new information from
- /// List of Fields representing what should be updated
- public override void ReplaceFields(DatItem item, List fields)
+ ///
+ public override void ReplaceFields(
+ DatItem item,
+ List datItemFields,
+ List machineFields)
{
// Replace common fields first
- base.ReplaceFields(item, fields);
+ base.ReplaceFields(item, datItemFields, machineFields);
// If we don't have a BiosSet to replace from, ignore specific fields
if (item.ItemType != ItemType.BiosSet)
@@ -238,13 +230,13 @@ namespace SabreTools.DatItems
BiosSet newItem = item as BiosSet;
// Replace the fields
- if (fields.Contains(Field.DatItem_Name))
+ if (datItemFields.Contains(DatItemField.Name))
Name = newItem.Name;
- if (fields.Contains(Field.DatItem_Description))
+ if (datItemFields.Contains(DatItemField.Description))
Description = newItem.Description;
- if (fields.Contains(Field.DatItem_Default))
+ if (datItemFields.Contains(DatItemField.Default))
Default = newItem.Default;
}
diff --git a/SabreTools.DatItems/Chip.cs b/SabreTools.DatItems/Chip.cs
index 016cbf7a..a681ece4 100644
--- a/SabreTools.DatItems/Chip.cs
+++ b/SabreTools.DatItems/Chip.cs
@@ -68,27 +68,26 @@ namespace SabreTools.DatItems
return Name;
}
- ///
- /// Set fields with given values
- ///
- /// Mappings dictionary
- public override void SetFields(Dictionary mappings)
+ ///
+ public override void SetFields(
+ Dictionary datItemMappings,
+ Dictionary machineMappings)
{
// Set base fields
- base.SetFields(mappings);
+ base.SetFields(datItemMappings, machineMappings);
// Handle Chip-specific fields
- if (mappings.Keys.Contains(Field.DatItem_Name))
- Name = mappings[Field.DatItem_Name];
+ if (datItemMappings.Keys.Contains(DatItemField.Name))
+ Name = datItemMappings[DatItemField.Name];
- if (mappings.Keys.Contains(Field.DatItem_Tag))
- Tag = mappings[Field.DatItem_Tag];
+ if (datItemMappings.Keys.Contains(DatItemField.Tag))
+ Tag = datItemMappings[DatItemField.Tag];
- if (mappings.Keys.Contains(Field.DatItem_ChipType))
- ChipType = mappings[Field.DatItem_ChipType].AsChipType();
+ if (datItemMappings.Keys.Contains(DatItemField.ChipType))
+ ChipType = datItemMappings[DatItemField.ChipType].AsChipType();
- if (mappings.Keys.Contains(Field.DatItem_Clock))
- Clock = Utilities.CleanLong(mappings[Field.DatItem_Clock]);
+ if (datItemMappings.Keys.Contains(DatItemField.Clock))
+ Clock = Utilities.CleanLong(datItemMappings[DatItemField.Clock]);
}
#endregion
@@ -177,59 +176,53 @@ namespace SabreTools.DatItems
}
}
- ///
- /// Check to see if a DatItem passes the filter
- ///
- /// Filter to check against
- /// True if this is a subitem, false otherwise
- /// True if the item passed the filter, false otherwise
- public override bool PassesFilter(Filter filter, bool sub = false)
+ ///
+ public override bool PassesFilter(Cleaner cleaner, bool sub = false)
{
// Check common fields first
- if (!base.PassesFilter(filter, sub))
+ if (!base.PassesFilter(cleaner, sub))
return false;
// Filter on item name
- if (!filter.PassStringFilter(filter.DatItem_Name, Name))
+ if (!Filter.PassStringFilter(cleaner.DatItemFilter.Name, Name))
return false;
// DatItem_Tag
- if (!filter.PassStringFilter(filter.DatItem_Tag, Tag))
+ if (!Filter.PassStringFilter(cleaner.DatItemFilter.Tag, Tag))
return false;
// DatItem_ChipType
- if (filter.DatItem_ChipType.MatchesPositive(ChipType.NULL, ChipType) == false)
+ if (cleaner.DatItemFilter.ChipType.MatchesPositive(ChipType.NULL, ChipType) == false)
return false;
- if (filter.DatItem_ChipType.MatchesNegative(ChipType.NULL, ChipType) == true)
+ if (cleaner.DatItemFilter.ChipType.MatchesNegative(ChipType.NULL, ChipType) == true)
return false;
// DatItem_Clock
- if (!filter.PassLongFilter(filter.DatItem_Clock, Clock))
+ if (!Filter.PassLongFilter(cleaner.DatItemFilter.Clock, Clock))
return false;
return true;
}
- ///
- /// Remove fields from the DatItem
- ///
- /// List of Fields to remove
- public override void RemoveFields(List fields)
+ ///
+ public override void RemoveFields(
+ List datItemFields,
+ List machineFields)
{
// Remove common fields first
- base.RemoveFields(fields);
+ base.RemoveFields(datItemFields, machineFields);
// Remove the fields
- if (fields.Contains(Field.DatItem_Name))
+ if (datItemFields.Contains(DatItemField.Name))
Name = null;
- if (fields.Contains(Field.DatItem_Tag))
+ if (datItemFields.Contains(DatItemField.Tag))
Tag = null;
- if (fields.Contains(Field.DatItem_ChipType))
+ if (datItemFields.Contains(DatItemField.ChipType))
ChipType = ChipType.NULL;
- if (fields.Contains(Field.DatItem_Clock))
+ if (datItemFields.Contains(DatItemField.Clock))
Clock = null;
}
@@ -247,15 +240,14 @@ namespace SabreTools.DatItems
#region Sorting and Merging
- ///
- /// Replace fields from another item
- ///
- /// DatItem to pull new information from
- /// List of Fields representing what should be updated
- public override void ReplaceFields(DatItem item, List fields)
+ ///
+ public override void ReplaceFields(
+ DatItem item,
+ List datItemFields,
+ List machineFields)
{
// Replace common fields first
- base.ReplaceFields(item, fields);
+ base.ReplaceFields(item, datItemFields, machineFields);
// If we don't have a Chip to replace from, ignore specific fields
if (item.ItemType != ItemType.Chip)
@@ -265,16 +257,16 @@ namespace SabreTools.DatItems
Chip newItem = item as Chip;
// Replace the fields
- if (fields.Contains(Field.DatItem_Name))
+ if (datItemFields.Contains(DatItemField.Name))
Name = newItem.Name;
- if (fields.Contains(Field.DatItem_Tag))
+ if (datItemFields.Contains(DatItemField.Tag))
Tag = newItem.Tag;
- if (fields.Contains(Field.DatItem_ChipType))
+ if (datItemFields.Contains(DatItemField.ChipType))
ChipType = newItem.ChipType;
- if (fields.Contains(Field.DatItem_Clock))
+ if (datItemFields.Contains(DatItemField.Clock))
Clock = newItem.Clock;
}
diff --git a/SabreTools.DatItems/Condition.cs b/SabreTools.DatItems/Condition.cs
index d39db0e8..c36c4a64 100644
--- a/SabreTools.DatItems/Condition.cs
+++ b/SabreTools.DatItems/Condition.cs
@@ -54,53 +54,56 @@ namespace SabreTools.DatItems
#region Accessors
- ///
- /// Set fields with given values
- ///
- /// Mappings dictionary
- public override void SetFields(Dictionary mappings)
+ ///
+ public override void SetFields(
+ Dictionary datItemMappings,
+ Dictionary machineMappings)
{
- SetFields(mappings, false);
+ SetFields(datItemMappings, machineMappings, false);
}
///
/// Set fields with given values
///
- /// Mappings dictionary
+ /// DatItem mappings dictionary
+ /// Machine mappings dictionary
/// True if this is a subitem, false otherwise
- public void SetFields(Dictionary mappings, bool sub)
+ public void SetFields(
+ Dictionary datItemMappings,
+ Dictionary machineMappings,
+ bool sub)
{
// Set base fields
- base.SetFields(mappings);
+ base.SetFields(datItemMappings, machineMappings);
// Handle Condition-specific fields
if (sub)
{
- if (mappings.Keys.Contains(Field.DatItem_Condition_Tag))
- Tag = mappings[Field.DatItem_Condition_Tag];
+ if (datItemMappings.Keys.Contains(DatItemField.Condition_Tag))
+ Tag = datItemMappings[DatItemField.Condition_Tag];
- if (mappings.Keys.Contains(Field.DatItem_Condition_Mask))
- Mask = mappings[Field.DatItem_Condition_Mask];
+ if (datItemMappings.Keys.Contains(DatItemField.Condition_Mask))
+ Mask = datItemMappings[DatItemField.Condition_Mask];
- if (mappings.Keys.Contains(Field.DatItem_Condition_Relation))
- Relation = mappings[Field.DatItem_Condition_Relation].AsRelation();
+ if (datItemMappings.Keys.Contains(DatItemField.Condition_Relation))
+ Relation = datItemMappings[DatItemField.Condition_Relation].AsRelation();
- if (mappings.Keys.Contains(Field.DatItem_Condition_Value))
- Value = mappings[Field.DatItem_Condition_Value];
+ if (datItemMappings.Keys.Contains(DatItemField.Condition_Value))
+ Value = datItemMappings[DatItemField.Condition_Value];
}
else
{
- if (mappings.Keys.Contains(Field.DatItem_Tag))
- Tag = mappings[Field.DatItem_Tag];
+ if (datItemMappings.Keys.Contains(DatItemField.Tag))
+ Tag = datItemMappings[DatItemField.Tag];
- if (mappings.Keys.Contains(Field.DatItem_Mask))
- Mask = mappings[Field.DatItem_Mask];
+ if (datItemMappings.Keys.Contains(DatItemField.Mask))
+ Mask = datItemMappings[DatItemField.Mask];
- if (mappings.Keys.Contains(Field.DatItem_Relation))
- Relation = mappings[Field.DatItem_Relation].AsRelation();
+ if (datItemMappings.Keys.Contains(DatItemField.Relation))
+ Relation = datItemMappings[DatItemField.Relation].AsRelation();
- if (mappings.Keys.Contains(Field.DatItem_Value))
- Value = mappings[Field.DatItem_Value];
+ if (datItemMappings.Keys.Contains(DatItemField.Value))
+ Value = datItemMappings[DatItemField.Value];
}
}
@@ -162,108 +165,106 @@ namespace SabreTools.DatItems
#region Filtering
- ///
- /// Check to see if a DatItem passes the filter
- ///
- /// Filter to check against
- /// True if this is a subitem, false otherwise
- /// True if the item passed the filter, false otherwise
- public override bool PassesFilter(Filter filter, bool sub = false)
+ ///
+ public override bool PassesFilter(Cleaner cleaner, bool sub = false)
{
// Check common fields first
- if (!base.PassesFilter(filter, sub))
+ if (!base.PassesFilter(cleaner, sub))
return false;
if (sub)
{
// Filter on tag
- if (!filter.PassStringFilter(filter.DatItem_Condition_Tag, Tag))
+ if (!Filter.PassStringFilter(cleaner.DatItemFilter.Condition_Tag, Tag))
return false;
// Filter on mask
- if (!filter.PassStringFilter(filter.DatItem_Condition_Mask, Mask))
+ if (!Filter.PassStringFilter(cleaner.DatItemFilter.Condition_Mask, Mask))
return false;
// Filter on relation
- if (filter.DatItem_Condition_Relation.MatchesPositive(Relation.NULL, Relation) == false)
+ if (cleaner.DatItemFilter.Condition_Relation.MatchesPositive(Relation.NULL, Relation) == false)
return false;
- if (filter.DatItem_Condition_Relation.MatchesNegative(Relation.NULL, Relation) == true)
+ if (cleaner.DatItemFilter.Condition_Relation.MatchesNegative(Relation.NULL, Relation) == true)
return false;
// Filter on value
- if (!filter.PassStringFilter(filter.DatItem_Condition_Value, Value))
+ if (!Filter.PassStringFilter(cleaner.DatItemFilter.Condition_Value, Value))
return false;
}
else
{
// Filter on tag
- if (!filter.PassStringFilter(filter.DatItem_Tag, Tag))
+ if (!Filter.PassStringFilter(cleaner.DatItemFilter.Tag, Tag))
return false;
// Filter on mask
- if (!filter.PassStringFilter(filter.DatItem_Mask, Mask))
+ if (!Filter.PassStringFilter(cleaner.DatItemFilter.Mask, Mask))
return false;
// Filter on relation
- if (filter.DatItem_Relation.MatchesPositive(Relation.NULL, Relation) == false)
+ if (cleaner.DatItemFilter.Relation.MatchesPositive(Relation.NULL, Relation) == false)
return false;
- if (filter.DatItem_Relation.MatchesNegative(Relation.NULL, Relation) == true)
+ if (cleaner.DatItemFilter.Relation.MatchesNegative(Relation.NULL, Relation) == true)
return false;
// Filter on value
- if (!filter.PassStringFilter(filter.DatItem_Value, Value))
+ if (!Filter.PassStringFilter(cleaner.DatItemFilter.Value, Value))
return false;
}
return true;
}
- ///
- /// Remove fields from the DatItem
- ///
- /// List of Fields to remove
- public override void RemoveFields(List fields)
+ ///
+ public override void RemoveFields(
+ List datItemFields,
+ List machineFields)
{
- RemoveFields(fields, false);
+ RemoveFields(datItemFields, machineFields, false);
}
///
/// Remove fields from the DatItem
///
- /// List of Fields to remove
+ /// DatItem fields to remove
+ /// Machine fields to remove
/// True if this is a subitem, false otherwise
- public void RemoveFields(List fields, bool sub)
+ public void RemoveFields(
+ List datItemFields,
+ List machineFields,
+ bool sub)
{
// Remove common fields first
- base.RemoveFields(fields);
+ base.RemoveFields(datItemFields, machineFields);
// Remove the fields
if (sub)
{
- if (fields.Contains(Field.DatItem_Condition_Tag))
+ if (datItemFields.Contains(DatItemField.Condition_Tag))
Tag = null;
- if (fields.Contains(Field.DatItem_Condition_Mask))
+ if (datItemFields.Contains(DatItemField.Condition_Mask))
Mask = null;
- if (fields.Contains(Field.DatItem_Condition_Relation))
+ if (datItemFields.Contains(DatItemField.Condition_Relation))
Relation = Relation.NULL;
- if (fields.Contains(Field.DatItem_Condition_Value))
+ if (datItemFields.Contains(DatItemField.Condition_Value))
Value = null;
}
else
{
- if (fields.Contains(Field.DatItem_Tag))
+ if (datItemFields.Contains(DatItemField.Tag))
Tag = null;
- if (fields.Contains(Field.DatItem_Mask))
+ if (datItemFields.Contains(DatItemField.Mask))
Mask = null;
- if (fields.Contains(Field.DatItem_Relation))
+ if (datItemFields.Contains(DatItemField.Relation))
Relation = Relation.NULL;
- if (fields.Contains(Field.DatItem_Value))
+ if (datItemFields.Contains(DatItemField.Value))
Value = null;
}
}
@@ -272,15 +273,14 @@ namespace SabreTools.DatItems
#region Sorting and Merging
- ///
- /// Replace fields from another item
- ///
- /// DatItem to pull new information from
- /// List of Fields representing what should be updated
- public override void ReplaceFields(DatItem item, List fields)
+ ///
+ public override void ReplaceFields(
+ DatItem item,
+ List datItemFields,
+ List machineFields)
{
// Replace common fields first
- base.ReplaceFields(item, fields);
+ base.ReplaceFields(item, datItemFields, machineFields);
// If we don't have a Condition to replace from, ignore specific fields
if (item.ItemType != ItemType.Condition)
@@ -290,24 +290,24 @@ namespace SabreTools.DatItems
Condition newItem = item as Condition;
// Replace the fields
- if (fields.Contains(Field.DatItem_Tag))
+ if (datItemFields.Contains(DatItemField.Tag))
Tag = newItem.Tag;
- else if (fields.Contains(Field.DatItem_Condition_Tag))
+ else if (datItemFields.Contains(DatItemField.Condition_Tag))
Tag = newItem.Tag;
- if (fields.Contains(Field.DatItem_Mask))
+ if (datItemFields.Contains(DatItemField.Mask))
Mask = newItem.Mask;
- else if (fields.Contains(Field.DatItem_Condition_Mask))
+ else if (datItemFields.Contains(DatItemField.Condition_Mask))
Mask = newItem.Mask;
- if (fields.Contains(Field.DatItem_Relation))
+ if (datItemFields.Contains(DatItemField.Relation))
Relation = newItem.Relation;
- else if (fields.Contains(Field.DatItem_Condition_Relation))
+ else if (datItemFields.Contains(DatItemField.Condition_Relation))
Relation = newItem.Relation;
- if (fields.Contains(Field.DatItem_Value))
+ if (datItemFields.Contains(DatItemField.Value))
Value = newItem.Value;
- else if (fields.Contains(Field.DatItem_Condition_Value))
+ else if (datItemFields.Contains(DatItemField.Condition_Value))
Value = newItem.Value;
}
diff --git a/SabreTools.DatItems/Configuration.cs b/SabreTools.DatItems/Configuration.cs
index 0927c927..3b084bcd 100644
--- a/SabreTools.DatItems/Configuration.cs
+++ b/SabreTools.DatItems/Configuration.cs
@@ -81,30 +81,29 @@ namespace SabreTools.DatItems
return Name;
}
- ///
- /// Set fields with given values
- ///
- /// Mappings dictionary
- public override void SetFields(Dictionary mappings)
+ ///
+ public override void SetFields(
+ Dictionary datItemMappings,
+ Dictionary machineMappings)
{
// Set base fields
- base.SetFields(mappings);
+ base.SetFields(datItemMappings, machineMappings);
// Handle Configuration-specific fields
- if (mappings.Keys.Contains(Field.DatItem_Name))
- Name = mappings[Field.DatItem_Name];
+ if (datItemMappings.Keys.Contains(DatItemField.Name))
+ Name = datItemMappings[DatItemField.Name];
- if (mappings.Keys.Contains(Field.DatItem_Tag))
- Tag = mappings[Field.DatItem_Tag];
+ if (datItemMappings.Keys.Contains(DatItemField.Tag))
+ Tag = datItemMappings[DatItemField.Tag];
- if (mappings.Keys.Contains(Field.DatItem_Mask))
- Mask = mappings[Field.DatItem_Mask];
+ if (datItemMappings.Keys.Contains(DatItemField.Mask))
+ Mask = datItemMappings[DatItemField.Mask];
if (ConditionsSpecified)
{
foreach (Condition condition in Conditions)
{
- condition.SetFields(mappings, true);
+ condition.SetFields(datItemMappings, machineMappings, true);
}
}
@@ -112,7 +111,7 @@ namespace SabreTools.DatItems
{
foreach (Location location in Locations)
{
- location.SetFields(mappings);
+ location.SetFields(datItemMappings, machineMappings);
}
}
@@ -120,7 +119,7 @@ namespace SabreTools.DatItems
{
foreach (Setting setting in Settings)
{
- setting.SetFields(mappings);
+ setting.SetFields(datItemMappings, machineMappings);
}
}
}
@@ -243,28 +242,23 @@ namespace SabreTools.DatItems
}
}
- ///
- /// Check to see if a DatItem passes the filter
- ///
- /// Filter to check against
- /// True if this is a subitem, false otherwise
- /// True if the item passed the filter, false otherwise
- public override bool PassesFilter(Filter filter, bool sub = false)
+ ///
+ public override bool PassesFilter(Cleaner cleaner, bool sub = false)
{
// Check common fields first
- if (!base.PassesFilter(filter, sub))
+ if (!base.PassesFilter(cleaner, sub))
return false;
// Filter on item name
- if (!filter.PassStringFilter(filter.DatItem_Name, Name))
+ if (!Filter.PassStringFilter(cleaner.DatItemFilter.Name, Name))
return false;
// Filter on tag
- if (!filter.PassStringFilter(filter.DatItem_Tag, Tag))
+ if (!Filter.PassStringFilter(cleaner.DatItemFilter.Tag, Tag))
return false;
// Filter on mask
- if (!filter.PassStringFilter(filter.DatItem_Mask, Mask))
+ if (!Filter.PassStringFilter(cleaner.DatItemFilter.Mask, Mask))
return false;
// Filter on individual conditions
@@ -272,7 +266,7 @@ namespace SabreTools.DatItems
{
foreach (Condition condition in Conditions)
{
- if (!condition.PassesFilter(filter, true))
+ if (!condition.PassesFilter(cleaner, true))
return false;
}
}
@@ -282,7 +276,7 @@ namespace SabreTools.DatItems
{
foreach (Location location in Locations)
{
- if (!location.PassesFilter(filter, true))
+ if (!location.PassesFilter(cleaner, true))
return false;
}
}
@@ -292,7 +286,7 @@ namespace SabreTools.DatItems
{
foreach (Setting setting in Settings)
{
- if (!setting.PassesFilter(filter, true))
+ if (!setting.PassesFilter(cleaner, true))
return false;
}
}
@@ -300,30 +294,29 @@ namespace SabreTools.DatItems
return true;
}
- ///
- /// Remove fields from the DatItem
- ///
- /// List of Fields to remove
- public override void RemoveFields(List fields)
+ ///
+ public override void RemoveFields(
+ List datItemFields,
+ List machineFields)
{
// Remove common fields first
- base.RemoveFields(fields);
+ base.RemoveFields(datItemFields, machineFields);
// Remove the fields
- if (fields.Contains(Field.DatItem_Name))
+ if (datItemFields.Contains(DatItemField.Name))
Name = null;
- if (fields.Contains(Field.DatItem_Tag))
+ if (datItemFields.Contains(DatItemField.Tag))
Tag = null;
- if (fields.Contains(Field.DatItem_Mask))
+ if (datItemFields.Contains(DatItemField.Mask))
Mask = null;
if (ConditionsSpecified)
{
foreach (Condition condition in Conditions)
{
- condition.RemoveFields(fields, true);
+ condition.RemoveFields(datItemFields, machineFields, true);
}
}
@@ -331,7 +324,7 @@ namespace SabreTools.DatItems
{
foreach (Location location in Locations)
{
- location.RemoveFields(fields);
+ location.RemoveFields(datItemFields, machineFields);
}
}
@@ -339,7 +332,7 @@ namespace SabreTools.DatItems
{
foreach (Setting setting in Settings)
{
- setting.RemoveFields(fields);
+ setting.RemoveFields(datItemFields, machineFields);
}
}
}
@@ -358,15 +351,14 @@ namespace SabreTools.DatItems
#region Sorting and Merging
- ///
- /// Replace fields from another item
- ///
- /// DatItem to pull new information from
- /// List of Fields representing what should be updated
- public override void ReplaceFields(DatItem item, List fields)
+ ///
+ public override void ReplaceFields(
+ DatItem item,
+ List datItemFields,
+ List machineFields)
{
// Replace common fields first
- base.ReplaceFields(item, fields);
+ base.ReplaceFields(item, datItemFields, machineFields);
// If we don't have a Configuration to replace from, ignore specific fields
if (item.ItemType != ItemType.Configuration)
@@ -376,13 +368,13 @@ namespace SabreTools.DatItems
Configuration newItem = item as Configuration;
// Replace the fields
- if (fields.Contains(Field.DatItem_Name))
+ if (datItemFields.Contains(DatItemField.Name))
Name = newItem.Name;
- if (fields.Contains(Field.DatItem_Tag))
+ if (datItemFields.Contains(DatItemField.Tag))
Tag = newItem.Tag;
- if (fields.Contains(Field.DatItem_Mask))
+ if (datItemFields.Contains(DatItemField.Mask))
Mask = newItem.Mask;
// DatItem_Condition_* doesn't make sense here
diff --git a/SabreTools.DatItems/Control.cs b/SabreTools.DatItems/Control.cs
index 5cf80b03..9578359d 100644
--- a/SabreTools.DatItems/Control.cs
+++ b/SabreTools.DatItems/Control.cs
@@ -135,51 +135,50 @@ namespace SabreTools.DatItems
#region Accessors
- ///
- /// Set fields with given values
- ///
- /// Mappings dictionary
- public override void SetFields(Dictionary mappings)
+ ///
+ public override void SetFields(
+ Dictionary datItemMappings,
+ Dictionary machineMappings)
{
// Set base fields
- base.SetFields(mappings);
+ base.SetFields(datItemMappings, machineMappings);
// Handle Control-specific fields
- if (mappings.Keys.Contains(Field.DatItem_Control_Type))
- ControlType = mappings[Field.DatItem_Control_Type].AsControlType();
+ if (datItemMappings.Keys.Contains(DatItemField.Control_Type))
+ ControlType = datItemMappings[DatItemField.Control_Type].AsControlType();
- if (mappings.Keys.Contains(Field.DatItem_Control_Player))
- Player = Utilities.CleanLong(mappings[Field.DatItem_Control_Player]);
+ if (datItemMappings.Keys.Contains(DatItemField.Control_Player))
+ Player = Utilities.CleanLong(datItemMappings[DatItemField.Control_Player]);
- if (mappings.Keys.Contains(Field.DatItem_Control_Buttons))
- Buttons = Utilities.CleanLong(mappings[Field.DatItem_Control_Buttons]);
+ if (datItemMappings.Keys.Contains(DatItemField.Control_Buttons))
+ Buttons = Utilities.CleanLong(datItemMappings[DatItemField.Control_Buttons]);
- if (mappings.Keys.Contains(Field.DatItem_Control_RequiredButtons))
- RequiredButtons = Utilities.CleanLong(mappings[Field.DatItem_Control_RequiredButtons]);
+ if (datItemMappings.Keys.Contains(DatItemField.Control_RequiredButtons))
+ RequiredButtons = Utilities.CleanLong(datItemMappings[DatItemField.Control_RequiredButtons]);
- if (mappings.Keys.Contains(Field.DatItem_Control_Minimum))
- Minimum = Utilities.CleanLong(mappings[Field.DatItem_Control_Minimum]);
+ if (datItemMappings.Keys.Contains(DatItemField.Control_Minimum))
+ Minimum = Utilities.CleanLong(datItemMappings[DatItemField.Control_Minimum]);
- if (mappings.Keys.Contains(Field.DatItem_Control_Maximum))
- Maximum = Utilities.CleanLong(mappings[Field.DatItem_Control_Maximum]);
+ if (datItemMappings.Keys.Contains(DatItemField.Control_Maximum))
+ Maximum = Utilities.CleanLong(datItemMappings[DatItemField.Control_Maximum]);
- if (mappings.Keys.Contains(Field.DatItem_Control_Sensitivity))
- Sensitivity = Utilities.CleanLong(mappings[Field.DatItem_Control_Sensitivity]);
+ if (datItemMappings.Keys.Contains(DatItemField.Control_Sensitivity))
+ Sensitivity = Utilities.CleanLong(datItemMappings[DatItemField.Control_Sensitivity]);
- if (mappings.Keys.Contains(Field.DatItem_Control_KeyDelta))
- KeyDelta = Utilities.CleanLong(mappings[Field.DatItem_Control_KeyDelta]);
+ if (datItemMappings.Keys.Contains(DatItemField.Control_KeyDelta))
+ KeyDelta = Utilities.CleanLong(datItemMappings[DatItemField.Control_KeyDelta]);
- if (mappings.Keys.Contains(Field.DatItem_Control_Reverse))
- Reverse = mappings[Field.DatItem_Control_Reverse].AsYesNo();
+ if (datItemMappings.Keys.Contains(DatItemField.Control_Reverse))
+ Reverse = datItemMappings[DatItemField.Control_Reverse].AsYesNo();
- if (mappings.Keys.Contains(Field.DatItem_Control_Ways))
- Ways = mappings[Field.DatItem_Control_Ways];
+ if (datItemMappings.Keys.Contains(DatItemField.Control_Ways))
+ Ways = datItemMappings[DatItemField.Control_Ways];
- if (mappings.Keys.Contains(Field.DatItem_Control_Ways2))
- Ways2 = mappings[Field.DatItem_Control_Ways2];
+ if (datItemMappings.Keys.Contains(DatItemField.Control_Ways2))
+ Ways2 = datItemMappings[DatItemField.Control_Ways2];
- if (mappings.Keys.Contains(Field.DatItem_Control_Ways3))
- Ways3 = mappings[Field.DatItem_Control_Ways3];
+ if (datItemMappings.Keys.Contains(DatItemField.Control_Ways3))
+ Ways3 = datItemMappings[DatItemField.Control_Ways3];
}
#endregion
@@ -256,115 +255,109 @@ namespace SabreTools.DatItems
#region Filtering
- ///
- /// Check to see if a DatItem passes the filter
- ///
- /// Filter to check against
- /// True if this is a subitem, false otherwise
- /// True if the item passed the filter, false otherwise
- public override bool PassesFilter(Filter filter, bool sub = false)
+ ///
+ public override bool PassesFilter(Cleaner cleaner, bool sub = false)
{
// Check common fields first
- if (!base.PassesFilter(filter, sub))
+ if (!base.PassesFilter(cleaner, sub))
return false;
// Filter on control type
- if (filter.DatItem_Control_Type.MatchesPositive(ControlType.NULL, ControlType) == false)
+ if (cleaner.DatItemFilter.Control_Type.MatchesPositive(ControlType.NULL, ControlType) == false)
return false;
- if (filter.DatItem_Control_Type.MatchesNegative(ControlType.NULL, ControlType) == true)
+ if (cleaner.DatItemFilter.Control_Type.MatchesNegative(ControlType.NULL, ControlType) == true)
return false;
// Filter on player
- if (!filter.PassLongFilter(filter.DatItem_Control_Player, Player))
+ if (!Filter.PassLongFilter(cleaner.DatItemFilter.Control_Player, Player))
return false;
// Filter on buttons
- if (!filter.PassLongFilter(filter.DatItem_Control_Buttons, Buttons))
+ if (!Filter.PassLongFilter(cleaner.DatItemFilter.Control_Buttons, Buttons))
return false;
// Filter on reqbuttons
- if (!filter.PassLongFilter(filter.DatItem_Control_ReqButtons, RequiredButtons))
+ if (!Filter.PassLongFilter(cleaner.DatItemFilter.Control_ReqButtons, RequiredButtons))
return false;
// Filter on minimum
- if (!filter.PassLongFilter(filter.DatItem_Control_Minimum, Minimum))
+ if (!Filter.PassLongFilter(cleaner.DatItemFilter.Control_Minimum, Minimum))
return false;
// Filter on maximum
- if (!filter.PassLongFilter(filter.DatItem_Control_Maximum, Maximum))
+ if (!Filter.PassLongFilter(cleaner.DatItemFilter.Control_Maximum, Maximum))
return false;
// Filter on sensitivity
- if (!filter.PassLongFilter(filter.DatItem_Control_Sensitivity, Sensitivity))
+ if (!Filter.PassLongFilter(cleaner.DatItemFilter.Control_Sensitivity, Sensitivity))
return false;
// Filter on keydelta
- if (!filter.PassLongFilter(filter.DatItem_Control_KeyDelta, KeyDelta))
+ if (!Filter.PassLongFilter(cleaner.DatItemFilter.Control_KeyDelta, KeyDelta))
return false;
// Filter on reverse
- if (!filter.PassBoolFilter(filter.DatItem_Control_Reverse, Reverse))
+ if (!Filter.PassBoolFilter(cleaner.DatItemFilter.Control_Reverse, Reverse))
return false;
// Filter on ways
- if (!filter.PassStringFilter(filter.DatItem_Control_Ways, Ways))
+ if (!Filter.PassStringFilter(cleaner.DatItemFilter.Control_Ways, Ways))
return false;
// Filter on ways2
- if (!filter.PassStringFilter(filter.DatItem_Control_Ways2, Ways2))
+ if (!Filter.PassStringFilter(cleaner.DatItemFilter.Control_Ways2, Ways2))
return false;
// Filter on ways3
- if (!filter.PassStringFilter(filter.DatItem_Control_Ways3, Ways3))
+ if (!Filter.PassStringFilter(cleaner.DatItemFilter.Control_Ways3, Ways3))
return false;
return true;
}
- ///
- /// Remove fields from the DatItem
- ///
- /// List of Fields to remove
- public override void RemoveFields(List fields)
+ ///
+ public override void RemoveFields(
+ List datItemFields,
+ List machineFields)
{
// Remove common fields first
- base.RemoveFields(fields);
+ base.RemoveFields(datItemFields, machineFields);
// Remove the fields
- if (fields.Contains(Field.DatItem_Control_Type))
+ if (datItemFields.Contains(DatItemField.Control_Type))
ControlType = ControlType.NULL;
- if (fields.Contains(Field.DatItem_Control_Player))
+ if (datItemFields.Contains(DatItemField.Control_Player))
Player = null;
- if (fields.Contains(Field.DatItem_Control_Buttons))
+ if (datItemFields.Contains(DatItemField.Control_Buttons))
Buttons = null;
- if (fields.Contains(Field.DatItem_Control_RequiredButtons))
+ if (datItemFields.Contains(DatItemField.Control_RequiredButtons))
RequiredButtons = null;
- if (fields.Contains(Field.DatItem_Control_Minimum))
+ if (datItemFields.Contains(DatItemField.Control_Minimum))
Minimum = null;
- if (fields.Contains(Field.DatItem_Control_Maximum))
+ if (datItemFields.Contains(DatItemField.Control_Maximum))
Maximum = null;
- if (fields.Contains(Field.DatItem_Control_Sensitivity))
+ if (datItemFields.Contains(DatItemField.Control_Sensitivity))
Sensitivity = null;
- if (fields.Contains(Field.DatItem_Control_KeyDelta))
+ if (datItemFields.Contains(DatItemField.Control_KeyDelta))
KeyDelta = null;
- if (fields.Contains(Field.DatItem_Control_Reverse))
+ if (datItemFields.Contains(DatItemField.Control_Reverse))
Reverse = null;
- if (fields.Contains(Field.DatItem_Control_Ways))
+ if (datItemFields.Contains(DatItemField.Control_Ways))
Ways = null;
- if (fields.Contains(Field.DatItem_Control_Ways2))
+ if (datItemFields.Contains(DatItemField.Control_Ways2))
Ways2 = null;
- if (fields.Contains(Field.DatItem_Control_Ways3))
+ if (datItemFields.Contains(DatItemField.Control_Ways3))
Ways3 = null;
}
@@ -372,15 +365,14 @@ namespace SabreTools.DatItems
#region Sorting and Merging
- ///
- /// Replace fields from another item
- ///
- /// DatItem to pull new information from
- /// List of Fields representing what should be updated
- public override void ReplaceFields(DatItem item, List fields)
+ ///
+ public override void ReplaceFields(
+ DatItem item,
+ List datItemFields,
+ List machineFields)
{
// Replace common fields first
- base.ReplaceFields(item, fields);
+ base.ReplaceFields(item, datItemFields, machineFields);
// If we don't have a Control to replace from, ignore specific fields
if (item.ItemType != ItemType.Control)
@@ -390,40 +382,40 @@ namespace SabreTools.DatItems
Control newItem = item as Control;
// Replace the fields
- if (fields.Contains(Field.DatItem_Control_Type))
+ if (datItemFields.Contains(DatItemField.Control_Type))
ControlType = newItem.ControlType;
- if (fields.Contains(Field.DatItem_Control_Player))
+ if (datItemFields.Contains(DatItemField.Control_Player))
Player = newItem.Player;
- if (fields.Contains(Field.DatItem_Control_Buttons))
+ if (datItemFields.Contains(DatItemField.Control_Buttons))
Buttons = newItem.Buttons;
- if (fields.Contains(Field.DatItem_Control_RequiredButtons))
+ if (datItemFields.Contains(DatItemField.Control_RequiredButtons))
RequiredButtons = newItem.RequiredButtons;
- if (fields.Contains(Field.DatItem_Control_Minimum))
+ if (datItemFields.Contains(DatItemField.Control_Minimum))
Minimum = newItem.Minimum;
- if (fields.Contains(Field.DatItem_Control_Maximum))
+ if (datItemFields.Contains(DatItemField.Control_Maximum))
Maximum = newItem.Maximum;
- if (fields.Contains(Field.DatItem_Control_Sensitivity))
+ if (datItemFields.Contains(DatItemField.Control_Sensitivity))
Sensitivity = newItem.Sensitivity;
- if (fields.Contains(Field.DatItem_Control_KeyDelta))
+ if (datItemFields.Contains(DatItemField.Control_KeyDelta))
KeyDelta = newItem.KeyDelta;
- if (fields.Contains(Field.DatItem_Control_Reverse))
+ if (datItemFields.Contains(DatItemField.Control_Reverse))
Reverse = newItem.Reverse;
- if (fields.Contains(Field.DatItem_Control_Ways))
+ if (datItemFields.Contains(DatItemField.Control_Ways))
Ways = newItem.Ways;
- if (fields.Contains(Field.DatItem_Control_Ways2))
+ if (datItemFields.Contains(DatItemField.Control_Ways2))
Ways2 = newItem.Ways2;
- if (fields.Contains(Field.DatItem_Control_Ways3))
+ if (datItemFields.Contains(DatItemField.Control_Ways3))
Ways3 = newItem.Ways3;
}
diff --git a/SabreTools.DatItems/DatItem.cs b/SabreTools.DatItems/DatItem.cs
index 71a48df8..d8b2d156 100644
--- a/SabreTools.DatItems/DatItem.cs
+++ b/SabreTools.DatItems/DatItem.cs
@@ -103,275 +103,7 @@ namespace SabreTools.DatItems
[JsonIgnore, XmlIgnore]
public bool Remove { get; set; }
- #endregion
-
- #region Static Values
-
- ///
- /// Fields unique to a DatItem
- ///
- public static readonly List DatItemFields = new List()
- {
- #region Common
-
- Field.DatItem_Type,
-
- #endregion
-
- #region Item-Specific
-
- #region Actionable
-
- // Rom
- Field.DatItem_Name,
- Field.DatItem_Bios,
- Field.DatItem_Size,
- Field.DatItem_CRC,
- Field.DatItem_MD5,
-#if NET_FRAMEWORK
- Field.DatItem_RIPEMD160,
-#endif
- Field.DatItem_SHA1,
- Field.DatItem_SHA256,
- Field.DatItem_SHA384,
- Field.DatItem_SHA512,
- Field.DatItem_SpamSum,
- Field.DatItem_Merge,
- Field.DatItem_Region,
- Field.DatItem_Offset,
- Field.DatItem_Date,
- Field.DatItem_Status,
- Field.DatItem_Optional,
- Field.DatItem_Inverted,
-
- // Rom (AttractMode)
- Field.DatItem_AltName,
- Field.DatItem_AltTitle,
-
- // Rom (OpenMSX)
- Field.DatItem_Original,
- Field.DatItem_OpenMSXSubType,
- Field.DatItem_OpenMSXType,
- Field.DatItem_Remark,
- Field.DatItem_Boot,
-
- // Rom (SoftwareList)
- Field.DatItem_LoadFlag,
- Field.DatItem_Value,
-
- // Disk
- Field.DatItem_Index,
- Field.DatItem_Writable,
-
- #endregion
-
- #region Auxiliary
-
- // Adjuster
- Field.DatItem_Default,
-
- // Analog
- Field.DatItem_Analog_Mask,
-
- // BiosSet
- Field.DatItem_Description,
-
- // Chip
- Field.DatItem_Tag,
- Field.DatItem_ChipType,
- Field.DatItem_Clock,
-
- // Condition
- Field.DatItem_Mask,
- Field.DatItem_Relation,
- Field.DatItem_Condition_Tag,
- Field.DatItem_Condition_Mask,
- Field.DatItem_Condition_Relation,
- Field.DatItem_Condition_Value,
-
- // Control
- Field.DatItem_Control_Type,
- Field.DatItem_Control_Player,
- Field.DatItem_Control_Buttons,
- Field.DatItem_Control_RequiredButtons,
- Field.DatItem_Control_Minimum,
- Field.DatItem_Control_Maximum,
- Field.DatItem_Control_Sensitivity,
- Field.DatItem_Control_KeyDelta,
- Field.DatItem_Control_Reverse,
- Field.DatItem_Control_Ways,
- Field.DatItem_Control_Ways2,
- Field.DatItem_Control_Ways3,
-
- // DataArea
- Field.DatItem_AreaName,
- Field.DatItem_AreaSize,
- Field.DatItem_AreaWidth,
- Field.DatItem_AreaEndianness,
-
- // Device
- Field.DatItem_DeviceType,
- Field.DatItem_FixedImage,
- Field.DatItem_Mandatory,
- Field.DatItem_Interface,
-
- // Display
- Field.DatItem_DisplayType,
- Field.DatItem_Rotate,
- Field.DatItem_FlipX,
- Field.DatItem_Width,
- Field.DatItem_Height,
- Field.DatItem_Refresh,
- Field.DatItem_PixClock,
- Field.DatItem_HTotal,
- Field.DatItem_HBEnd,
- Field.DatItem_HBStart,
- Field.DatItem_VTotal,
- Field.DatItem_VBEnd,
- Field.DatItem_VBStart,
-
- // Driver
- Field.DatItem_SupportStatus,
- Field.DatItem_EmulationStatus,
- Field.DatItem_CocktailStatus,
- Field.DatItem_SaveStateStatus,
-
- // Extension
- Field.DatItem_Extension_Name,
-
- // Feature
- Field.DatItem_FeatureType,
- Field.DatItem_FeatureStatus,
- Field.DatItem_FeatureOverall,
-
- // Input
- Field.DatItem_Service,
- Field.DatItem_Tilt,
- Field.DatItem_Players,
- Field.DatItem_Coins,
-
- // Instance
- Field.DatItem_Instance_Name,
- Field.DatItem_Instance_BriefName,
-
- // Location
- Field.DatItem_Location_Name,
- Field.DatItem_Location_Number,
- Field.DatItem_Location_Inverted,
-
- // Part
- Field.DatItem_Part_Name,
- Field.DatItem_Part_Interface,
-
- // PartFeature
- Field.DatItem_Part_Feature_Name,
- Field.DatItem_Part_Feature_Value,
-
- // RamOption
- Field.DatItem_Content,
-
- // Release
- Field.DatItem_Language,
-
- // Setting
- Field.DatItem_Setting_Name,
- Field.DatItem_Setting_Value,
- Field.DatItem_Setting_Default,
-
- // SlotOption
- Field.DatItem_SlotOption_Name,
- Field.DatItem_SlotOption_DeviceName,
- Field.DatItem_SlotOption_Default,
-
- // SoftwareList
- Field.DatItem_SoftwareListStatus,
- Field.DatItem_Filter,
-
- // Sound
- Field.DatItem_Channels,
-
- #endregion
-
- #endregion // Item-Specific
- };
-
- ///
- /// Fields unique to a Machine
- ///
- public static readonly List MachineFields = new List()
- {
- #region Common
-
- Field.Machine_Name,
- Field.Machine_Comment,
- Field.Machine_Description,
- Field.Machine_Year,
- Field.Machine_Manufacturer,
- Field.Machine_Publisher,
- Field.Machine_Category,
- Field.Machine_RomOf,
- Field.Machine_CloneOf,
- Field.Machine_SampleOf,
- Field.Machine_Type,
-
- #endregion
-
- #region AttractMode
-
- Field.Machine_Players,
- Field.Machine_Rotation,
- Field.Machine_Control,
- Field.Machine_Status,
- Field.Machine_DisplayCount,
- Field.Machine_DisplayType,
- Field.Machine_Buttons,
-
- #endregion
-
- #region ListXML
-
- Field.Machine_SourceFile,
- Field.Machine_Runnable,
-
- #endregion
-
- #region Logiqx
-
- Field.Machine_Board,
- Field.Machine_RebuildTo,
-
- #endregion
-
- #region Logiqx EmuArc
-
- Field.Machine_TitleID,
- Field.Machine_Developer,
- Field.Machine_Genre,
- Field.Machine_Subgenre,
- Field.Machine_Ratings,
- Field.Machine_Score,
- Field.Machine_Enabled,
- Field.Machine_CRC,
- Field.Machine_RelatedTo,
-
- #endregion
-
- #region OpenMSX
-
- Field.Machine_GenMSXID,
- Field.Machine_System,
- Field.Machine_Country,
-
- #endregion
-
- #region SoftwareList
-
- Field.Machine_Supported,
-
- #endregion
- };
-
- #endregion
+ #endregion // Metadata information
#endregion
@@ -407,14 +139,18 @@ namespace SabreTools.DatItems
///
/// Set fields with given values
///
- /// Mappings dictionary
- public virtual void SetFields(Dictionary mappings)
+ /// DatItem mappings dictionary
+ /// Machine mappings dictionary
+ /// TODO: Fix case where datItemMappings is null
+ public virtual void SetFields(
+ Dictionary datItemMappings,
+ Dictionary machineMappings)
{
// Set machine fields
if (Machine == null)
Machine = new Machine();
- Machine.SetFields(mappings);
+ Machine.SetFields(machineMappings);
}
#endregion
@@ -746,20 +482,20 @@ namespace SabreTools.DatItems
///
/// Check to see if a DatItem passes the filter
///
- /// Filter to check against
+ /// Cleaner containing filters to check against
/// True if this is a subitem, false otherwise
/// True if the item passed the filter, false otherwise
- public virtual bool PassesFilter(Filter filter, bool sub = false)
+ public virtual bool PassesFilter(Cleaner cleaner, bool sub = false)
{
// Filter on machine fields
- if (!Machine.PassesFilter(filter))
+ if (!Machine.PassesFilter(cleaner))
return false;
// Filters for if we're a top-level item
if (!sub)
{
// Filter on item type
- if (!filter.PassStringFilter(filter.DatItem_Type, ItemType.ToString()))
+ if (!Filter.PassStringFilter(cleaner.DatItemFilter.Type, ItemType.ToString()))
return false;
}
@@ -769,11 +505,15 @@ namespace SabreTools.DatItems
///
/// Remove fields from the DatItem
///
- /// List of Fields to remove
- public virtual void RemoveFields(List fields)
+ /// DatItem fields to remove
+ /// Machine fields to remove
+ /// TODO: Fix case where datItemFields is null
+ public virtual void RemoveFields(
+ List datItemFields,
+ List machineFields)
{
// Remove machine fields
- Machine.RemoveFields(fields);
+ Machine.RemoveFields(machineFields);
}
///
@@ -1135,9 +875,19 @@ namespace SabreTools.DatItems
/// Replace fields from another item
///
/// DatItem to pull new information from
- /// List of Fields representing what should be updated
- public virtual void ReplaceFields(DatItem item, List fields)
+ /// DatItem fields to remove
+ /// Machine fields to remove
+ /// TODO: Fix case where datItemFields is null
+ public virtual void ReplaceFields(
+ DatItem item,
+ List datItemFields,
+ List machineFields)
{
+ if (Machine == null)
+ Machine = new Machine();
+
+ // TODO: Figure out why this wasn't here
+ // Machine.ReplaceFields(item.Machine, machineFields)
}
#endregion
@@ -1248,14 +998,14 @@ namespace SabreTools.DatItems
{
saveditem.Source = file.Source.Clone() as Source;
saveditem.CopyMachineInformation(file);
- saveditem.SetFields(new Dictionary { [Field.DatItem_Name] = file.GetName() });
+ saveditem.SetFields(new Dictionary { [DatItemField.Name] = file.GetName() }, null);
}
// If the current machine is a child of the new machine, use the new machine instead
if (saveditem.Machine.CloneOf == file.Machine.Name || saveditem.Machine.RomOf == file.Machine.Name)
{
saveditem.CopyMachineInformation(file);
- saveditem.SetFields(new Dictionary { [Field.DatItem_Name] = file.GetName() });
+ saveditem.SetFields(new Dictionary { [DatItemField.Name] = file.GetName() }, null);
}
break;
@@ -1351,7 +1101,7 @@ namespace SabreTools.DatItems
}
// Set the item name back to the datItem
- datItem.SetFields(new Dictionary { [Field.DatItem_Name] = datItemName });
+ datItem.SetFields(new Dictionary { [DatItemField.Name] = datItemName }, null);
output.Add(datItem);
}
diff --git a/SabreTools.DatItems/DataArea.cs b/SabreTools.DatItems/DataArea.cs
index 0b45e52a..d72ff926 100644
--- a/SabreTools.DatItems/DataArea.cs
+++ b/SabreTools.DatItems/DataArea.cs
@@ -70,27 +70,26 @@ namespace SabreTools.DatItems
return Name;
}
- ///
- /// Set fields with given values
- ///
- /// Mappings dictionary
- public override void SetFields(Dictionary mappings)
+ ///
+ public override void SetFields(
+ Dictionary datItemMappings,
+ Dictionary machineMappings)
{
// Set base fields
- base.SetFields(mappings);
+ base.SetFields(datItemMappings, machineMappings);
// Handle DataArea-specific fields
- if (mappings.Keys.Contains(Field.DatItem_AreaName))
- Name = mappings[Field.DatItem_AreaName];
+ if (datItemMappings.Keys.Contains(DatItemField.AreaName))
+ Name = datItemMappings[DatItemField.AreaName];
- if (mappings.Keys.Contains(Field.DatItem_AreaSize))
- Size = Utilities.CleanLong(mappings[Field.DatItem_AreaSize]);
+ if (datItemMappings.Keys.Contains(DatItemField.AreaSize))
+ Size = Utilities.CleanLong(datItemMappings[DatItemField.AreaSize]);
- if (mappings.Keys.Contains(Field.DatItem_AreaWidth))
- Width = Utilities.CleanLong(mappings[Field.DatItem_AreaWidth]);
+ if (datItemMappings.Keys.Contains(DatItemField.AreaWidth))
+ Width = Utilities.CleanLong(datItemMappings[DatItemField.AreaWidth]);
- if (mappings.Keys.Contains(Field.DatItem_AreaEndianness))
- Endianness = mappings[Field.DatItem_AreaEndianness].AsEndianness();
+ if (datItemMappings.Keys.Contains(DatItemField.AreaEndianness))
+ Endianness = datItemMappings[DatItemField.AreaEndianness].AsEndianness();
}
#endregion
@@ -179,59 +178,53 @@ namespace SabreTools.DatItems
}
}
- ///
- /// Check to see if a DatItem passes the filter
- ///
- /// Filter to check against
- /// True if this is a subitem, false otherwise
- /// True if the item passed the filter, false otherwise
- public override bool PassesFilter(Filter filter, bool sub = false)
+ ///
+ public override bool PassesFilter(Cleaner cleaner, bool sub = false)
{
// Check common fields first
- if (!base.PassesFilter(filter, sub))
+ if (!base.PassesFilter(cleaner, sub))
return false;
// Filter on area name
- if (!filter.PassStringFilter(filter.DatItem_AreaName, Name))
+ if (!Filter.PassStringFilter(cleaner.DatItemFilter.AreaName, Name))
return false;
// Filter on area size
- if (!filter.PassLongFilter(filter.DatItem_AreaSize, Size))
+ if (!Filter.PassLongFilter(cleaner.DatItemFilter.AreaSize, Size))
return false;
// Filter on area width
- if (!filter.PassLongFilter(filter.DatItem_AreaWidth, Width))
+ if (!Filter.PassLongFilter(cleaner.DatItemFilter.AreaWidth, Width))
return false;
// Filter on area endianness
- if (filter.DatItem_AreaEndianness.MatchesPositive(Endianness.NULL, Endianness) == false)
+ if (cleaner.DatItemFilter.AreaEndianness.MatchesPositive(Endianness.NULL, Endianness) == false)
return false;
- if (filter.DatItem_AreaEndianness.MatchesNegative(Endianness.NULL, Endianness) == true)
+ if (cleaner.DatItemFilter.AreaEndianness.MatchesNegative(Endianness.NULL, Endianness) == true)
return false;
return true;
}
- ///
- /// Remove fields from the DatItem
- ///
- /// List of Fields to remove
- public override void RemoveFields(List fields)
+ ///
+ public override void RemoveFields(
+ List datItemFields,
+ List machineFields)
{
// Remove common fields first
- base.RemoveFields(fields);
+ base.RemoveFields(datItemFields, machineFields);
// Remove the fields
- if (fields.Contains(Field.DatItem_AreaName))
+ if (datItemFields.Contains(DatItemField.AreaName))
Name = null;
- if (fields.Contains(Field.DatItem_AreaSize))
+ if (datItemFields.Contains(DatItemField.AreaSize))
Size = null;
- if (fields.Contains(Field.DatItem_AreaWidth))
+ if (datItemFields.Contains(DatItemField.AreaWidth))
Width = null;
- if (fields.Contains(Field.DatItem_AreaEndianness))
+ if (datItemFields.Contains(DatItemField.AreaEndianness))
Endianness = Endianness.NULL;
}
@@ -249,15 +242,14 @@ namespace SabreTools.DatItems
#region Sorting and Merging
- ///
- /// Replace fields from another item
- ///
- /// DatItem to pull new information from
- /// List of Fields representing what should be updated
- public override void ReplaceFields(DatItem item, List fields)
+ ///
+ public override void ReplaceFields(
+ DatItem item,
+ List datItemFields,
+ List machineFields)
{
// Replace common fields first
- base.ReplaceFields(item, fields);
+ base.ReplaceFields(item, datItemFields, machineFields);
// If we don't have a DataArea to replace from, ignore specific fields
if (item.ItemType != ItemType.DataArea)
@@ -267,16 +259,16 @@ namespace SabreTools.DatItems
DataArea newItem = item as DataArea;
// Replace the fields
- if (fields.Contains(Field.DatItem_AreaName))
+ if (datItemFields.Contains(DatItemField.AreaName))
Name = newItem.Name;
- if (fields.Contains(Field.DatItem_AreaSize))
+ if (datItemFields.Contains(DatItemField.AreaSize))
Size = newItem.Size;
- if (fields.Contains(Field.DatItem_AreaWidth))
+ if (datItemFields.Contains(DatItemField.AreaWidth))
Width = newItem.Width;
- if (fields.Contains(Field.DatItem_AreaEndianness))
+ if (datItemFields.Contains(DatItemField.AreaEndianness))
Endianness = newItem.Endianness;
}
diff --git a/SabreTools.DatItems/Device.cs b/SabreTools.DatItems/Device.cs
index 4342eceb..571dfda9 100644
--- a/SabreTools.DatItems/Device.cs
+++ b/SabreTools.DatItems/Device.cs
@@ -85,36 +85,35 @@ namespace SabreTools.DatItems
#region Accessors
- ///
- /// Set fields with given values
- ///
- /// Mappings dictionary
- public override void SetFields(Dictionary mappings)
+ ///
+ public override void SetFields(
+ Dictionary datItemMappings,
+ Dictionary machineMappings)
{
// Set base fields
- base.SetFields(mappings);
+ base.SetFields(datItemMappings, machineMappings);
// Handle Device-specific fields
- if (mappings.Keys.Contains(Field.DatItem_DeviceType))
- DeviceType = mappings[Field.DatItem_DeviceType].AsDeviceType();
+ if (datItemMappings.Keys.Contains(DatItemField.DeviceType))
+ DeviceType = datItemMappings[DatItemField.DeviceType].AsDeviceType();
- if (mappings.Keys.Contains(Field.DatItem_Tag))
- Tag = mappings[Field.DatItem_Tag];
+ if (datItemMappings.Keys.Contains(DatItemField.Tag))
+ Tag = datItemMappings[DatItemField.Tag];
- if (mappings.Keys.Contains(Field.DatItem_FixedImage))
- FixedImage = mappings[Field.DatItem_FixedImage];
+ if (datItemMappings.Keys.Contains(DatItemField.FixedImage))
+ FixedImage = datItemMappings[DatItemField.FixedImage];
- if (mappings.Keys.Contains(Field.DatItem_Mandatory))
- Mandatory = Utilities.CleanLong(mappings[Field.DatItem_Mandatory]);
+ if (datItemMappings.Keys.Contains(DatItemField.Mandatory))
+ Mandatory = Utilities.CleanLong(datItemMappings[DatItemField.Mandatory]);
- if (mappings.Keys.Contains(Field.DatItem_Interface))
- Interface = mappings[Field.DatItem_Interface];
+ if (datItemMappings.Keys.Contains(DatItemField.Interface))
+ Interface = datItemMappings[DatItemField.Interface];
if (InstancesSpecified)
{
foreach (Instance instance in Instances)
{
- instance.SetFields(mappings);
+ instance.SetFields(datItemMappings, machineMappings);
}
}
@@ -122,7 +121,7 @@ namespace SabreTools.DatItems
{
foreach (Extension extension in Extensions)
{
- extension.SetFields(mappings);
+ extension.SetFields(datItemMappings, machineMappings);
}
}
}
@@ -211,38 +210,33 @@ namespace SabreTools.DatItems
#region Filtering
- ///
- /// Check to see if a DatItem passes the filter
- ///
- /// Filter to check against
- /// True if this is a subitem, false otherwise
- /// True if the item passed the filter, false otherwise
- public override bool PassesFilter(Filter filter, bool sub = false)
+ ///
+ public override bool PassesFilter(Cleaner cleaner, bool sub = false)
{
// Check common fields first
- if (!base.PassesFilter(filter, sub))
+ if (!base.PassesFilter(cleaner, sub))
return false;
// Filter on device type
- if (filter.DatItem_DeviceType.MatchesPositive(DeviceType.NULL, DeviceType) == false)
+ if (cleaner.DatItemFilter.DeviceType.MatchesPositive(DeviceType.NULL, DeviceType) == false)
return false;
- if (filter.DatItem_DeviceType.MatchesNegative(DeviceType.NULL, DeviceType) == true)
+ if (cleaner.DatItemFilter.DeviceType.MatchesNegative(DeviceType.NULL, DeviceType) == true)
return false;
// Filter on tag
- if (!filter.PassStringFilter(filter.DatItem_Tag, Tag))
+ if (!Filter.PassStringFilter(cleaner.DatItemFilter.Tag, Tag))
return false;
// Filter on fixed image
- if (!filter.PassStringFilter(filter.DatItem_FixedImage, FixedImage))
+ if (!Filter.PassStringFilter(cleaner.DatItemFilter.FixedImage, FixedImage))
return false;
// Filter on mandatory
- if (!filter.PassLongFilter(filter.DatItem_Mandatory, Mandatory))
+ if (!Filter.PassLongFilter(cleaner.DatItemFilter.Mandatory, Mandatory))
return false;
// Filter on interface
- if (!filter.PassStringFilter(filter.DatItem_Interface, Interface))
+ if (!Filter.PassStringFilter(cleaner.DatItemFilter.Interface, Interface))
return false;
// Filter on individual instances
@@ -250,7 +244,7 @@ namespace SabreTools.DatItems
{
foreach (Instance instance in Instances)
{
- if (!instance.PassesFilter(filter, true))
+ if (!instance.PassesFilter(cleaner, true))
return false;
}
}
@@ -260,7 +254,7 @@ namespace SabreTools.DatItems
{
foreach (Extension extension in Extensions)
{
- if (!extension.PassesFilter(filter, true))
+ if (!extension.PassesFilter(cleaner, true))
return false;
}
}
@@ -268,36 +262,35 @@ namespace SabreTools.DatItems
return true;
}
- ///
- /// Remove fields from the DatItem
- ///
- /// List of Fields to remove
- public override void RemoveFields(List fields)
+ ///
+ public override void RemoveFields(
+ List datItemFields,
+ List machineFields)
{
// Remove common fields first
- base.RemoveFields(fields);
+ base.RemoveFields(datItemFields, machineFields);
// Remove the fields
- if (fields.Contains(Field.DatItem_DeviceType))
+ if (datItemFields.Contains(DatItemField.DeviceType))
DeviceType = DeviceType.NULL;
- if (fields.Contains(Field.DatItem_Tag))
+ if (datItemFields.Contains(DatItemField.Tag))
Tag = null;
- if (fields.Contains(Field.DatItem_FixedImage))
+ if (datItemFields.Contains(DatItemField.FixedImage))
FixedImage = null;
- if (fields.Contains(Field.DatItem_Mandatory))
+ if (datItemFields.Contains(DatItemField.Mandatory))
Mandatory = null;
- if (fields.Contains(Field.DatItem_Interface))
+ if (datItemFields.Contains(DatItemField.Interface))
Interface = null;
if (InstancesSpecified)
{
foreach (Instance instance in Instances)
{
- instance.RemoveFields(fields);
+ instance.RemoveFields(datItemFields, machineFields);
}
}
@@ -305,7 +298,7 @@ namespace SabreTools.DatItems
{
foreach (Extension extension in Extensions)
{
- extension.RemoveFields(fields);
+ extension.RemoveFields(datItemFields, machineFields);
}
}
}
@@ -314,15 +307,14 @@ namespace SabreTools.DatItems
#region Sorting and Merging
- ///
- /// Replace fields from another item
- ///
- /// DatItem to pull new information from
- /// List of Fields representing what should be updated
- public override void ReplaceFields(DatItem item, List fields)
+ ///
+ public override void ReplaceFields(
+ DatItem item,
+ List datItemFields,
+ List machineFields)
{
// Replace common fields first
- base.ReplaceFields(item, fields);
+ base.ReplaceFields(item, datItemFields, machineFields);
// If we don't have a Device to replace from, ignore specific fields
if (item.ItemType != ItemType.Device)
@@ -332,19 +324,19 @@ namespace SabreTools.DatItems
Device newItem = item as Device;
// Replace the fields
- if (fields.Contains(Field.DatItem_DeviceType))
+ if (datItemFields.Contains(DatItemField.DeviceType))
DeviceType = newItem.DeviceType;
- if (fields.Contains(Field.DatItem_Tag))
+ if (datItemFields.Contains(DatItemField.Tag))
Tag = newItem.Tag;
- if (fields.Contains(Field.DatItem_FixedImage))
+ if (datItemFields.Contains(DatItemField.FixedImage))
FixedImage = newItem.FixedImage;
- if (fields.Contains(Field.DatItem_Mandatory))
+ if (datItemFields.Contains(DatItemField.Mandatory))
Mandatory = newItem.Mandatory;
- if (fields.Contains(Field.DatItem_Interface))
+ if (datItemFields.Contains(DatItemField.Interface))
Interface = newItem.Interface;
// DatItem_Instance_* doesn't make sense here
diff --git a/SabreTools.DatItems/DeviceReference.cs b/SabreTools.DatItems/DeviceReference.cs
index 4eb352e1..878035fc 100644
--- a/SabreTools.DatItems/DeviceReference.cs
+++ b/SabreTools.DatItems/DeviceReference.cs
@@ -37,18 +37,17 @@ namespace SabreTools.DatItems
return Name;
}
- ///
- /// Set fields with given values
- ///
- /// Mappings dictionary
- public override void SetFields(Dictionary mappings)
+ ///
+ public override void SetFields(
+ Dictionary datItemMappings,
+ Dictionary machineMappings)
{
// Set base fields
- base.SetFields(mappings);
+ base.SetFields(datItemMappings, machineMappings);
// Handle DeviceReference-specific fields
- if (mappings.Keys.Contains(Field.DatItem_Name))
- Name = mappings[Field.DatItem_Name];
+ if (datItemMappings.Keys.Contains(DatItemField.Name))
+ Name = datItemMappings[DatItemField.Name];
}
#endregion
@@ -131,36 +130,30 @@ namespace SabreTools.DatItems
}
}
- ///
- /// Check to see if a DatItem passes the filter
- ///
- /// Filter to check against
- /// True if this is a subitem, false otherwise
- /// True if the item passed the filter, false otherwise
- public override bool PassesFilter(Filter filter, bool sub = false)
+ ///
+ public override bool PassesFilter(Cleaner cleaner, bool sub = false)
{
// Check common fields first
- if (!base.PassesFilter(filter, sub))
+ if (!base.PassesFilter(cleaner, sub))
return false;
// Filter on item name
- if (!filter.PassStringFilter(filter.DatItem_Name, Name))
+ if (!Filter.PassStringFilter(cleaner.DatItemFilter.Name, Name))
return false;
return true;
}
- ///
- /// Remove fields from the DatItem
- ///
- /// List of Fields to remove
- public override void RemoveFields(List fields)
+ ///
+ public override void RemoveFields(
+ List datItemFields,
+ List machineFields)
{
// Remove common fields first
- base.RemoveFields(fields);
+ base.RemoveFields(datItemFields, machineFields);
// Remove the fields
- if (fields.Contains(Field.DatItem_Name))
+ if (datItemFields.Contains(DatItemField.Name))
Name = null;
}
@@ -178,15 +171,14 @@ namespace SabreTools.DatItems
#region Sorting and Merging
- ///
- /// Replace fields from another item
- ///
- /// DatItem to pull new information from
- /// List of Fields representing what should be updated
- public override void ReplaceFields(DatItem item, List fields)
+ ///
+ public override void ReplaceFields(
+ DatItem item,
+ List datItemFields,
+ List machineFields)
{
// Replace common fields first
- base.ReplaceFields(item, fields);
+ base.ReplaceFields(item, datItemFields, machineFields);
// If we don't have a DeviceReference to replace from, ignore specific fields
if (item.ItemType != ItemType.DeviceReference)
@@ -196,7 +188,7 @@ namespace SabreTools.DatItems
DeviceReference newItem = item as DeviceReference;
// Replace the fields
- if (fields.Contains(Field.DatItem_Name))
+ if (datItemFields.Contains(DatItemField.Name))
Name = newItem.Name;
}
diff --git a/SabreTools.DatItems/DipSwitch.cs b/SabreTools.DatItems/DipSwitch.cs
index d46f268a..573f0bbd 100644
--- a/SabreTools.DatItems/DipSwitch.cs
+++ b/SabreTools.DatItems/DipSwitch.cs
@@ -107,33 +107,32 @@ namespace SabreTools.DatItems
return Name;
}
- ///
- /// Set fields with given values
- ///
- /// Mappings dictionary
- public override void SetFields(Dictionary mappings)
+ ///
+ public override void SetFields(
+ Dictionary datItemMappings,
+ Dictionary machineMappings)
{
// Set base fields
- base.SetFields(mappings);
+ base.SetFields(datItemMappings, machineMappings);
// Handle DipSwitch-specific fields
#region Common
- if (mappings.Keys.Contains(Field.DatItem_Name))
- Name = mappings[Field.DatItem_Name];
+ if (datItemMappings.Keys.Contains(DatItemField.Name))
+ Name = datItemMappings[DatItemField.Name];
- if (mappings.Keys.Contains(Field.DatItem_Tag))
- Tag = mappings[Field.DatItem_Tag];
+ if (datItemMappings.Keys.Contains(DatItemField.Tag))
+ Tag = datItemMappings[DatItemField.Tag];
- if (mappings.Keys.Contains(Field.DatItem_Mask))
- Mask = mappings[Field.DatItem_Mask];
+ if (datItemMappings.Keys.Contains(DatItemField.Mask))
+ Mask = datItemMappings[DatItemField.Mask];
if (ConditionsSpecified)
{
foreach (Condition condition in Conditions)
{
- condition.SetFields(mappings, true);
+ condition.SetFields(datItemMappings, machineMappings, true);
}
}
@@ -141,7 +140,7 @@ namespace SabreTools.DatItems
{
foreach (Location location in Locations)
{
- location.SetFields(mappings);
+ location.SetFields(datItemMappings, machineMappings);
}
}
@@ -149,7 +148,7 @@ namespace SabreTools.DatItems
{
foreach (Setting value in Values)
{
- value.SetFields(mappings);
+ value.SetFields(datItemMappings, machineMappings);
}
}
@@ -161,7 +160,7 @@ namespace SabreTools.DatItems
if (Part == null)
Part = new Part();
- Part.SetFields(mappings);
+ Part.SetFields(datItemMappings, machineMappings);
#endregion
}
@@ -290,30 +289,25 @@ namespace SabreTools.DatItems
}
}
- ///
- /// Check to see if a DatItem passes the filter
- ///
- /// Filter to check against
- /// True if this is a subitem, false otherwise
- /// True if the item passed the filter, false otherwise
- public override bool PassesFilter(Filter filter, bool sub = false)
+ ///
+ public override bool PassesFilter(Cleaner cleaner, bool sub = false)
{
// Check common fields first
- if (!base.PassesFilter(filter, sub))
+ if (!base.PassesFilter(cleaner, sub))
return false;
#region Common
// Filter on item name
- if (!filter.PassStringFilter(filter.DatItem_Name, Name))
+ if (!Filter.PassStringFilter(cleaner.DatItemFilter.Name, Name))
return false;
// Filter on tag
- if (!filter.PassStringFilter(filter.DatItem_Tag, Tag))
+ if (!Filter.PassStringFilter(cleaner.DatItemFilter.Tag, Tag))
return false;
// Filter on mask
- if (!filter.PassStringFilter(filter.DatItem_Mask, Mask))
+ if (!Filter.PassStringFilter(cleaner.DatItemFilter.Mask, Mask))
return false;
// Filter on individual conditions
@@ -321,7 +315,7 @@ namespace SabreTools.DatItems
{
foreach (Condition condition in Conditions)
{
- if (!condition.PassesFilter(filter, true))
+ if (!condition.PassesFilter(cleaner, true))
return false;
}
}
@@ -331,7 +325,7 @@ namespace SabreTools.DatItems
{
foreach (Location location in Locations)
{
- if (!location.PassesFilter(filter, true))
+ if (!location.PassesFilter(cleaner, true))
return false;
}
}
@@ -341,7 +335,7 @@ namespace SabreTools.DatItems
{
foreach (Setting value in Values)
{
- if (!value.PassesFilter(filter, true))
+ if (!value.PassesFilter(cleaner, true))
return false;
}
}
@@ -353,7 +347,7 @@ namespace SabreTools.DatItems
// Filter on Part
if (PartSpecified)
{
- if (!Part.PassesFilter(filter, true))
+ if (!Part.PassesFilter(cleaner, true))
return false;
}
@@ -362,33 +356,32 @@ namespace SabreTools.DatItems
return true;
}
- ///
- /// Remove fields from the DatItem
- ///
- /// List of Fields to remove
- public override void RemoveFields(List fields)
+ ///
+ public override void RemoveFields(
+ List datItemFields,
+ List machineFields)
{
// Remove common fields first
- base.RemoveFields(fields);
+ base.RemoveFields(datItemFields, machineFields);
// Remove the fields
#region Common
- if (fields.Contains(Field.DatItem_Name))
+ if (datItemFields.Contains(DatItemField.Name))
Name = null;
- if (fields.Contains(Field.DatItem_Tag))
+ if (datItemFields.Contains(DatItemField.Tag))
Tag = null;
- if (fields.Contains(Field.DatItem_Mask))
+ if (datItemFields.Contains(DatItemField.Mask))
Mask = null;
if (ConditionsSpecified)
{
foreach (Condition condition in Conditions)
{
- condition.RemoveFields(fields, true);
+ condition.RemoveFields(datItemFields, machineFields, true);
}
}
@@ -396,7 +389,7 @@ namespace SabreTools.DatItems
{
foreach (Location location in Locations)
{
- location.RemoveFields(fields);
+ location.RemoveFields(datItemFields, machineFields);
}
}
@@ -404,7 +397,7 @@ namespace SabreTools.DatItems
{
foreach (Setting value in Values)
{
- value.RemoveFields(fields);
+ value.RemoveFields(datItemFields, machineFields);
}
}
@@ -413,7 +406,7 @@ namespace SabreTools.DatItems
#region SoftwareList
if (PartSpecified)
- Part.RemoveFields(fields);
+ Part.RemoveFields(datItemFields, machineFields);
#endregion
}
@@ -432,15 +425,14 @@ namespace SabreTools.DatItems
#region Sorting and Merging
- ///
- /// Replace fields from another item
- ///
- /// DatItem to pull new information from
- /// List of Fields representing what should be updated
- public override void ReplaceFields(DatItem item, List fields)
+ ///
+ public override void ReplaceFields(
+ DatItem item,
+ List datItemFields,
+ List machineFields)
{
// Replace common fields first
- base.ReplaceFields(item, fields);
+ base.ReplaceFields(item, datItemFields, machineFields);
// If we don't have a DipSwitch to replace from, ignore specific fields
if (item.ItemType != ItemType.DipSwitch)
@@ -453,13 +445,13 @@ namespace SabreTools.DatItems
#region Common
- if (fields.Contains(Field.DatItem_Name))
+ if (datItemFields.Contains(DatItemField.Name))
Name = newItem.Name;
- if (fields.Contains(Field.DatItem_Tag))
+ if (datItemFields.Contains(DatItemField.Tag))
Tag = newItem.Tag;
- if (fields.Contains(Field.DatItem_Mask))
+ if (datItemFields.Contains(DatItemField.Mask))
Mask = newItem.Mask;
// DatItem_Condition_* doesn't make sense here
@@ -479,7 +471,7 @@ namespace SabreTools.DatItems
#region SoftwareList
if (PartSpecified && newItem.PartSpecified)
- Part.ReplaceFields(newItem.Part, fields);
+ Part.ReplaceFields(newItem.Part, datItemFields, machineFields);
#endregion
}
diff --git a/SabreTools.DatItems/Disk.cs b/SabreTools.DatItems/Disk.cs
index 7041733e..ef5c3291 100644
--- a/SabreTools.DatItems/Disk.cs
+++ b/SabreTools.DatItems/Disk.cs
@@ -164,54 +164,53 @@ namespace SabreTools.DatItems
return Name;
}
- ///
- /// Set fields with given values
- ///
- /// Mappings dictionary
- public override void SetFields(Dictionary mappings)
+ ///
+ public override void SetFields(
+ Dictionary datItemMappings,
+ Dictionary machineMappings)
{
// Set base fields
- base.SetFields(mappings);
+ base.SetFields(datItemMappings, machineMappings);
// Handle Disk-specific fields
- if (mappings.Keys.Contains(Field.DatItem_Name))
- Name = mappings[Field.DatItem_Name];
+ if (datItemMappings.Keys.Contains(DatItemField.Name))
+ Name = datItemMappings[DatItemField.Name];
- if (mappings.Keys.Contains(Field.DatItem_MD5))
- MD5 = mappings[Field.DatItem_MD5];
+ if (datItemMappings.Keys.Contains(DatItemField.MD5))
+ MD5 = datItemMappings[DatItemField.MD5];
- if (mappings.Keys.Contains(Field.DatItem_SHA1))
- SHA1 = mappings[Field.DatItem_SHA1];
+ if (datItemMappings.Keys.Contains(DatItemField.SHA1))
+ SHA1 = datItemMappings[DatItemField.SHA1];
- if (mappings.Keys.Contains(Field.DatItem_Merge))
- MergeTag = mappings[Field.DatItem_Merge];
+ if (datItemMappings.Keys.Contains(DatItemField.Merge))
+ MergeTag = datItemMappings[DatItemField.Merge];
- if (mappings.Keys.Contains(Field.DatItem_Region))
- Region = mappings[Field.DatItem_Region];
+ if (datItemMappings.Keys.Contains(DatItemField.Region))
+ Region = datItemMappings[DatItemField.Region];
- if (mappings.Keys.Contains(Field.DatItem_Index))
- Index = mappings[Field.DatItem_Index];
+ if (datItemMappings.Keys.Contains(DatItemField.Index))
+ Index = datItemMappings[DatItemField.Index];
- if (mappings.Keys.Contains(Field.DatItem_Writable))
- Writable = mappings[Field.DatItem_Writable].AsYesNo();
+ if (datItemMappings.Keys.Contains(DatItemField.Writable))
+ Writable = datItemMappings[DatItemField.Writable].AsYesNo();
- if (mappings.Keys.Contains(Field.DatItem_Status))
- ItemStatus = mappings[Field.DatItem_Status].AsItemStatus();
+ if (datItemMappings.Keys.Contains(DatItemField.Status))
+ ItemStatus = datItemMappings[DatItemField.Status].AsItemStatus();
- if (mappings.Keys.Contains(Field.DatItem_Optional))
- Optional = mappings[Field.DatItem_Optional].AsYesNo();
+ if (datItemMappings.Keys.Contains(DatItemField.Optional))
+ Optional = datItemMappings[DatItemField.Optional].AsYesNo();
// Handle DiskArea-specific fields
if (DiskArea == null)
DiskArea = new DiskArea();
- DiskArea.SetFields(mappings);
+ DiskArea.SetFields(datItemMappings, machineMappings);
// Handle Part-specific fields
if (Part == null)
Part = new Part();
- Part.SetFields(mappings);
+ Part.SetFields(datItemMappings, machineMappings);
}
#endregion
@@ -450,56 +449,51 @@ namespace SabreTools.DatItems
}
}
- ///
- /// Check to see if a DatItem passes the filter
- ///
- /// Filter to check against
- /// True if this is a subitem, false otherwise
- /// True if the item passed the filter, false otherwise
- public override bool PassesFilter(Filter filter, bool sub = false)
+ ///
+ public override bool PassesFilter(Cleaner cleaner, bool sub = false)
{
// Check common fields first
- if (!base.PassesFilter(filter, sub))
+ if (!base.PassesFilter(cleaner, sub))
return false;
#region Common
// Filter on item name
- if (!filter.PassStringFilter(filter.DatItem_Name, Name))
+ if (!Filter.PassStringFilter(cleaner.DatItemFilter.Name, Name))
return false;
// Filter on MD5
- if (!filter.PassStringFilter(filter.DatItem_MD5, MD5))
+ if (!Filter.PassStringFilter(cleaner.DatItemFilter.MD5, MD5))
return false;
// Filter on SHA-1
- if (!filter.PassStringFilter(filter.DatItem_SHA1, SHA1))
+ if (!Filter.PassStringFilter(cleaner.DatItemFilter.SHA1, SHA1))
return false;
// Filter on merge tag
- if (!filter.PassStringFilter(filter.DatItem_Merge, MergeTag))
+ if (!Filter.PassStringFilter(cleaner.DatItemFilter.Merge, MergeTag))
return false;
// Filter on region
- if (!filter.PassStringFilter(filter.DatItem_Region, Region))
+ if (!Filter.PassStringFilter(cleaner.DatItemFilter.Region, Region))
return false;
// Filter on index
- if (!filter.PassStringFilter(filter.DatItem_Index, Index))
+ if (!Filter.PassStringFilter(cleaner.DatItemFilter.Index, Index))
return false;
// Filter on writable
- if (!filter.PassBoolFilter(filter.DatItem_Writable, Writable))
+ if (!Filter.PassBoolFilter(cleaner.DatItemFilter.Writable, Writable))
return false;
// Filter on status
- if (filter.DatItem_Status.MatchesPositive(ItemStatus.NULL, ItemStatus) == false)
+ if (cleaner.DatItemFilter.Status.MatchesPositive(ItemStatus.NULL, ItemStatus) == false)
return false;
- if (filter.DatItem_Status.MatchesNegative(ItemStatus.NULL, ItemStatus) == true)
+ if (cleaner.DatItemFilter.Status.MatchesNegative(ItemStatus.NULL, ItemStatus) == true)
return false;
// Filter on optional
- if (!filter.PassBoolFilter(filter.DatItem_Optional, Optional))
+ if (!Filter.PassBoolFilter(cleaner.DatItemFilter.Optional, Optional))
return false;
#endregion
@@ -509,14 +503,14 @@ namespace SabreTools.DatItems
// Filter on DiskArea
if (DiskAreaSpecified)
{
- if (!DiskArea.PassesFilter(filter, true))
+ if (!DiskArea.PassesFilter(cleaner, true))
return false;
}
// Filter on Part
if (PartSpecified)
{
- if (!Part.PassesFilter(filter, true))
+ if (!Part.PassesFilter(cleaner, true))
return false;
}
@@ -525,44 +519,43 @@ namespace SabreTools.DatItems
return true;
}
- ///
- /// Remove fields from the DatItem
- ///
- /// List of Fields to remove
- public override void RemoveFields(List fields)
+ ///
+ public override void RemoveFields(
+ List datItemFields,
+ List machineFields)
{
// Remove common fields first
- base.RemoveFields(fields);
+ base.RemoveFields(datItemFields, machineFields);
// Remove the fields
#region Common
- if (fields.Contains(Field.DatItem_Name))
+ if (datItemFields.Contains(DatItemField.Name))
Name = null;
- if (fields.Contains(Field.DatItem_MD5))
+ if (datItemFields.Contains(DatItemField.MD5))
MD5 = null;
- if (fields.Contains(Field.DatItem_SHA1))
+ if (datItemFields.Contains(DatItemField.SHA1))
SHA1 = null;
- if (fields.Contains(Field.DatItem_Merge))
+ if (datItemFields.Contains(DatItemField.Merge))
MergeTag = null;
- if (fields.Contains(Field.DatItem_Region))
+ if (datItemFields.Contains(DatItemField.Region))
Region = null;
- if (fields.Contains(Field.DatItem_Index))
+ if (datItemFields.Contains(DatItemField.Index))
Index = null;
- if (fields.Contains(Field.DatItem_Writable))
+ if (datItemFields.Contains(DatItemField.Writable))
Writable = null;
- if (fields.Contains(Field.DatItem_Status))
+ if (datItemFields.Contains(DatItemField.Status))
ItemStatus = ItemStatus.NULL;
- if (fields.Contains(Field.DatItem_Optional))
+ if (datItemFields.Contains(DatItemField.Optional))
Optional = null;
#endregion
@@ -570,10 +563,10 @@ namespace SabreTools.DatItems
#region SoftwareList
if (DiskAreaSpecified)
- DiskArea.RemoveFields(fields);
+ DiskArea.RemoveFields(datItemFields, machineFields);
if (PartSpecified)
- Part.RemoveFields(fields);
+ Part.RemoveFields(datItemFields, machineFields);
#endregion
}
@@ -627,15 +620,14 @@ namespace SabreTools.DatItems
return key;
}
- ///
- /// Replace fields from another item
- ///
- /// DatItem to pull new information from
- /// List of Fields representing what should be updated
- public override void ReplaceFields(DatItem item, List fields)
+ ///
+ public override void ReplaceFields(
+ DatItem item,
+ List datItemFields,
+ List machineFields)
{
// Replace common fields first
- base.ReplaceFields(item, fields);
+ base.ReplaceFields(item, datItemFields, machineFields);
// If we don't have a Disk to replace from, ignore specific fields
if (item.ItemType != ItemType.Disk)
@@ -648,37 +640,37 @@ namespace SabreTools.DatItems
#region Common
- if (fields.Contains(Field.DatItem_Name))
+ if (datItemFields.Contains(DatItemField.Name))
Name = newItem.Name;
- if (fields.Contains(Field.DatItem_MD5))
+ if (datItemFields.Contains(DatItemField.MD5))
{
if (string.IsNullOrEmpty(MD5) && !string.IsNullOrEmpty(newItem.MD5))
MD5 = newItem.MD5;
}
- if (fields.Contains(Field.DatItem_SHA1))
+ if (datItemFields.Contains(DatItemField.SHA1))
{
if (string.IsNullOrEmpty(SHA1) && !string.IsNullOrEmpty(newItem.SHA1))
SHA1 = newItem.SHA1;
}
- if (fields.Contains(Field.DatItem_Merge))
+ if (datItemFields.Contains(DatItemField.Merge))
MergeTag = newItem.MergeTag;
- if (fields.Contains(Field.DatItem_Region))
+ if (datItemFields.Contains(DatItemField.Region))
Region = newItem.Region;
- if (fields.Contains(Field.DatItem_Index))
+ if (datItemFields.Contains(DatItemField.Index))
Index = newItem.Index;
- if (fields.Contains(Field.DatItem_Writable))
+ if (datItemFields.Contains(DatItemField.Writable))
Writable = newItem.Writable;
- if (fields.Contains(Field.DatItem_Status))
+ if (datItemFields.Contains(DatItemField.Status))
ItemStatus = newItem.ItemStatus;
- if (fields.Contains(Field.DatItem_Optional))
+ if (datItemFields.Contains(DatItemField.Optional))
Optional = newItem.Optional;
#endregion
@@ -686,10 +678,10 @@ namespace SabreTools.DatItems
#region SoftwareList
if (DiskAreaSpecified && newItem.DiskAreaSpecified)
- DiskArea.ReplaceFields(newItem.DiskArea, fields);
+ DiskArea.ReplaceFields(newItem.DiskArea, datItemFields, machineFields);
if (PartSpecified && newItem.PartSpecified)
- Part.ReplaceFields(newItem.Part, fields);
+ Part.ReplaceFields(newItem.Part, datItemFields, machineFields);
#endregion
}
diff --git a/SabreTools.DatItems/DiskArea.cs b/SabreTools.DatItems/DiskArea.cs
index b5376cdb..22d4136d 100644
--- a/SabreTools.DatItems/DiskArea.cs
+++ b/SabreTools.DatItems/DiskArea.cs
@@ -39,18 +39,17 @@ namespace SabreTools.DatItems
return Name;
}
- ///
- /// Set fields with given values
- ///
- /// Mappings dictionary
- public override void SetFields(Dictionary mappings)
+ ///
+ public override void SetFields(
+ Dictionary datItemMappings,
+ Dictionary machineMappings)
{
// Set base fields
- base.SetFields(mappings);
+ base.SetFields(datItemMappings, machineMappings);
// Handle DiskArea-specific fields
- if (mappings.Keys.Contains(Field.DatItem_AreaName))
- Name = mappings[Field.DatItem_AreaName];
+ if (datItemMappings.Keys.Contains(DatItemField.AreaName))
+ Name = datItemMappings[DatItemField.AreaName];
}
#endregion
@@ -133,36 +132,30 @@ namespace SabreTools.DatItems
}
}
- ///
- /// Check to see if a DatItem passes the filter
- ///
- /// Filter to check against
- /// True if this is a subitem, false otherwise
- /// True if the item passed the filter, false otherwise
- public override bool PassesFilter(Filter filter, bool sub = false)
+ ///
+ public override bool PassesFilter(Cleaner cleaner, bool sub = false)
{
// Check common fields first
- if (!base.PassesFilter(filter, sub))
+ if (!base.PassesFilter(cleaner, sub))
return false;
// Filter on area name
- if (!filter.PassStringFilter(filter.DatItem_AreaName, Name))
+ if (!Filter.PassStringFilter(cleaner.DatItemFilter.AreaName, Name))
return false;
return true;
}
- ///
- /// Remove fields from the DatItem
- ///
- /// List of Fields to remove
- public override void RemoveFields(List fields)
+ ///
+ public override void RemoveFields(
+ List datItemFields,
+ List machineFields)
{
// Remove common fields first
- base.RemoveFields(fields);
+ base.RemoveFields(datItemFields, machineFields);
// Remove the fields
- if (fields.Contains(Field.DatItem_AreaName))
+ if (datItemFields.Contains(DatItemField.AreaName))
Name = null;
}
@@ -180,15 +173,14 @@ namespace SabreTools.DatItems
#region Sorting and Merging
- ///
- /// Replace fields from another item
- ///
- /// DatItem to pull new information from
- /// List of Fields representing what should be updated
- public override void ReplaceFields(DatItem item, List fields)
+ ///
+ public override void ReplaceFields(
+ DatItem item,
+ List datItemFields,
+ List machineFields)
{
// Replace common fields first
- base.ReplaceFields(item, fields);
+ base.ReplaceFields(item, datItemFields, machineFields);
// If we don't have a DiskArea to replace from, ignore specific fields
if (item.ItemType != ItemType.DiskArea)
@@ -198,7 +190,7 @@ namespace SabreTools.DatItems
DiskArea newItem = item as DiskArea;
// Replace the fields
- if (fields.Contains(Field.DatItem_AreaName))
+ if (datItemFields.Contains(DatItemField.AreaName))
Name = newItem.Name;
}
diff --git a/SabreTools.DatItems/Display.cs b/SabreTools.DatItems/Display.cs
index 82120621..e53c5c68 100644
--- a/SabreTools.DatItems/Display.cs
+++ b/SabreTools.DatItems/Display.cs
@@ -161,60 +161,59 @@ namespace SabreTools.DatItems
#region Accessors
- ///
- /// Set fields with given values
- ///
- /// Mappings dictionary
- public override void SetFields(Dictionary mappings)
+ ///
+ public override void SetFields(
+ Dictionary datItemMappings,
+ Dictionary machineMappings)
{
// Set base fields
- base.SetFields(mappings);
+ base.SetFields(datItemMappings, machineMappings);
// Handle Display-specific fields
- if (mappings.Keys.Contains(Field.DatItem_Tag))
- Tag = mappings[Field.DatItem_Tag];
+ if (datItemMappings.Keys.Contains(DatItemField.Tag))
+ Tag = datItemMappings[DatItemField.Tag];
- if (mappings.Keys.Contains(Field.DatItem_DisplayType))
- DisplayType = mappings[Field.DatItem_DisplayType].AsDisplayType();
+ if (datItemMappings.Keys.Contains(DatItemField.DisplayType))
+ DisplayType = datItemMappings[DatItemField.DisplayType].AsDisplayType();
- if (mappings.Keys.Contains(Field.DatItem_Rotate))
- Rotate = Utilities.CleanLong(mappings[Field.DatItem_Rotate]);
+ if (datItemMappings.Keys.Contains(DatItemField.Rotate))
+ Rotate = Utilities.CleanLong(datItemMappings[DatItemField.Rotate]);
- if (mappings.Keys.Contains(Field.DatItem_FlipX))
- FlipX = mappings[Field.DatItem_FlipX].AsYesNo();
+ if (datItemMappings.Keys.Contains(DatItemField.FlipX))
+ FlipX = datItemMappings[DatItemField.FlipX].AsYesNo();
- if (mappings.Keys.Contains(Field.DatItem_Width))
- Width = Utilities.CleanLong(mappings[Field.DatItem_Width]);
+ if (datItemMappings.Keys.Contains(DatItemField.Width))
+ Width = Utilities.CleanLong(datItemMappings[DatItemField.Width]);
- if (mappings.Keys.Contains(Field.DatItem_Height))
- Height = Utilities.CleanLong(mappings[Field.DatItem_Height]);
+ if (datItemMappings.Keys.Contains(DatItemField.Height))
+ Height = Utilities.CleanLong(datItemMappings[DatItemField.Height]);
- if (mappings.Keys.Contains(Field.DatItem_Refresh))
+ if (datItemMappings.Keys.Contains(DatItemField.Refresh))
{
- if (Double.TryParse(mappings[Field.DatItem_Refresh], out double refresh))
+ if (Double.TryParse(datItemMappings[DatItemField.Refresh], out double refresh))
Refresh = refresh;
}
- if (mappings.Keys.Contains(Field.DatItem_PixClock))
- PixClock = Utilities.CleanLong(mappings[Field.DatItem_PixClock]);
+ if (datItemMappings.Keys.Contains(DatItemField.PixClock))
+ PixClock = Utilities.CleanLong(datItemMappings[DatItemField.PixClock]);
- if (mappings.Keys.Contains(Field.DatItem_HTotal))
- HTotal = Utilities.CleanLong(mappings[Field.DatItem_HTotal]);
+ if (datItemMappings.Keys.Contains(DatItemField.HTotal))
+ HTotal = Utilities.CleanLong(datItemMappings[DatItemField.HTotal]);
- if (mappings.Keys.Contains(Field.DatItem_HBEnd))
- HBEnd = Utilities.CleanLong(mappings[Field.DatItem_HBEnd]);
+ if (datItemMappings.Keys.Contains(DatItemField.HBEnd))
+ HBEnd = Utilities.CleanLong(datItemMappings[DatItemField.HBEnd]);
- if (mappings.Keys.Contains(Field.DatItem_HBStart))
- HBStart = Utilities.CleanLong(mappings[Field.DatItem_HBStart]);
+ if (datItemMappings.Keys.Contains(DatItemField.HBStart))
+ HBStart = Utilities.CleanLong(datItemMappings[DatItemField.HBStart]);
- if (mappings.Keys.Contains(Field.DatItem_VTotal))
- VTotal = Utilities.CleanLong(mappings[Field.DatItem_VTotal]);
+ if (datItemMappings.Keys.Contains(DatItemField.VTotal))
+ VTotal = Utilities.CleanLong(datItemMappings[DatItemField.VTotal]);
- if (mappings.Keys.Contains(Field.DatItem_VBEnd))
- VBEnd = Utilities.CleanLong(mappings[Field.DatItem_VBEnd]);
+ if (datItemMappings.Keys.Contains(DatItemField.VBEnd))
+ VBEnd = Utilities.CleanLong(datItemMappings[DatItemField.VBEnd]);
- if (mappings.Keys.Contains(Field.DatItem_VBStart))
- VBStart = Utilities.CleanLong(mappings[Field.DatItem_VBStart]);
+ if (datItemMappings.Keys.Contains(DatItemField.VBStart))
+ VBStart = Utilities.CleanLong(datItemMappings[DatItemField.VBStart]);
}
#endregion
@@ -295,129 +294,123 @@ namespace SabreTools.DatItems
#region Filtering
- ///
- /// Check to see if a DatItem passes the filter
- ///
- /// Filter to check against
- /// True if this is a subitem, false otherwise
- /// True if the item passed the filter, false otherwise
- public override bool PassesFilter(Filter filter, bool sub = false)
+ ///
+ public override bool PassesFilter(Cleaner cleaner, bool sub = false)
{
// Check common fields first
- if (!base.PassesFilter(filter, sub))
+ if (!base.PassesFilter(cleaner, sub))
return false;
// Filter on tag
- if (!filter.PassStringFilter(filter.DatItem_Tag, Tag))
+ if (!Filter.PassStringFilter(cleaner.DatItemFilter.Tag, Tag))
return false;
// Filter on display type
- if (filter.DatItem_DisplayType.MatchesPositive(DisplayType.NULL, DisplayType) == false)
+ if (cleaner.DatItemFilter.DisplayType.MatchesPositive(DisplayType.NULL, DisplayType) == false)
return false;
- if (filter.DatItem_DisplayType.MatchesNegative(DisplayType.NULL, DisplayType) == true)
+ if (cleaner.DatItemFilter.DisplayType.MatchesNegative(DisplayType.NULL, DisplayType) == true)
return false;
// Filter on rotation
- if (!filter.PassLongFilter(filter.DatItem_Rotate, Rotate))
+ if (!Filter.PassLongFilter(cleaner.DatItemFilter.Rotate, Rotate))
return false;
// Filter on flipx
- if (!filter.PassBoolFilter(filter.DatItem_FlipX, FlipX))
+ if (!Filter.PassBoolFilter(cleaner.DatItemFilter.FlipX, FlipX))
return false;
// Filter on width
- if (!filter.PassLongFilter(filter.DatItem_Width, Width))
+ if (!Filter.PassLongFilter(cleaner.DatItemFilter.Width, Width))
return false;
// Filter on height
- if (!filter.PassLongFilter(filter.DatItem_Height, Height))
+ if (!Filter.PassLongFilter(cleaner.DatItemFilter.Height, Height))
return false;
// Filter on refresh
- if (!filter.PassDoubleFilter(filter.DatItem_Refresh, Refresh))
+ if (!Filter.PassDoubleFilter(cleaner.DatItemFilter.Refresh, Refresh))
return false;
// Filter on pixclock
- if (!filter.PassLongFilter(filter.DatItem_PixClock, PixClock))
+ if (!Filter.PassLongFilter(cleaner.DatItemFilter.PixClock, PixClock))
return false;
// Filter on htotal
- if (!filter.PassLongFilter(filter.DatItem_HTotal, HTotal))
+ if (!Filter.PassLongFilter(cleaner.DatItemFilter.HTotal, HTotal))
return false;
// Filter on hbend
- if (!filter.PassLongFilter(filter.DatItem_HBEnd, HBEnd))
+ if (!Filter.PassLongFilter(cleaner.DatItemFilter.HBEnd, HBEnd))
return false;
// Filter on hbstart
- if (!filter.PassLongFilter(filter.DatItem_HBStart, HBStart))
+ if (!Filter.PassLongFilter(cleaner.DatItemFilter.HBStart, HBStart))
return false;
// Filter on vtotal
- if (!filter.PassLongFilter(filter.DatItem_VTotal, VTotal))
+ if (!Filter.PassLongFilter(cleaner.DatItemFilter.VTotal, VTotal))
return false;
// Filter on vbend
- if (!filter.PassLongFilter(filter.DatItem_VBEnd, VBEnd))
+ if (!Filter.PassLongFilter(cleaner.DatItemFilter.VBEnd, VBEnd))
return false;
// Filter on vbstart
- if (!filter.PassLongFilter(filter.DatItem_VBStart, VBStart))
+ if (!Filter.PassLongFilter(cleaner.DatItemFilter.VBStart, VBStart))
return false;
return true;
}
- ///
- /// Remove fields from the DatItem
- ///
- /// List of Fields to remove
- public override void RemoveFields(List fields)
+ ///
+ public override void RemoveFields(
+ List datItemFields,
+ List machineFields)
{
// Remove common fields first
- base.RemoveFields(fields);
+ base.RemoveFields(datItemFields, machineFields);
// Remove the fields
- if (fields.Contains(Field.DatItem_Tag))
+ if (datItemFields.Contains(DatItemField.Tag))
Tag = null;
- if (fields.Contains(Field.DatItem_DisplayType))
+ if (datItemFields.Contains(DatItemField.DisplayType))
DisplayType = DisplayType.NULL;
- if (fields.Contains(Field.DatItem_Rotate))
+ if (datItemFields.Contains(DatItemField.Rotate))
Rotate = null;
- if (fields.Contains(Field.DatItem_FlipX))
+ if (datItemFields.Contains(DatItemField.FlipX))
FlipX = null;
- if (fields.Contains(Field.DatItem_Width))
+ if (datItemFields.Contains(DatItemField.Width))
Width = null;
- if (fields.Contains(Field.DatItem_Height))
+ if (datItemFields.Contains(DatItemField.Height))
Height = null;
- if (fields.Contains(Field.DatItem_Refresh))
+ if (datItemFields.Contains(DatItemField.Refresh))
Refresh = null;
- if (fields.Contains(Field.DatItem_PixClock))
+ if (datItemFields.Contains(DatItemField.PixClock))
PixClock = null;
- if (fields.Contains(Field.DatItem_HTotal))
+ if (datItemFields.Contains(DatItemField.HTotal))
HTotal = null;
- if (fields.Contains(Field.DatItem_HBEnd))
+ if (datItemFields.Contains(DatItemField.HBEnd))
HBEnd = null;
- if (fields.Contains(Field.DatItem_HBStart))
+ if (datItemFields.Contains(DatItemField.HBStart))
HBStart = null;
- if (fields.Contains(Field.DatItem_VTotal))
+ if (datItemFields.Contains(DatItemField.VTotal))
VTotal = null;
- if (fields.Contains(Field.DatItem_VBEnd))
+ if (datItemFields.Contains(DatItemField.VBEnd))
VBEnd = null;
- if (fields.Contains(Field.DatItem_VBStart))
+ if (datItemFields.Contains(DatItemField.VBStart))
VBStart = null;
}
@@ -425,15 +418,14 @@ namespace SabreTools.DatItems
#region Sorting and Merging
- ///
- /// Replace fields from another item
- ///
- /// DatItem to pull new information from
- /// List of Fields representing what should be updated
- public override void ReplaceFields(DatItem item, List fields)
+ ///
+ public override void ReplaceFields(
+ DatItem item,
+ List datItemFields,
+ List machineFields)
{
// Replace common fields first
- base.ReplaceFields(item, fields);
+ base.ReplaceFields(item, datItemFields, machineFields);
// If we don't have a Display to replace from, ignore specific fields
if (item.ItemType != ItemType.Display)
@@ -443,46 +435,46 @@ namespace SabreTools.DatItems
Display newItem = item as Display;
// Replace the fields
- if (fields.Contains(Field.DatItem_Tag))
+ if (datItemFields.Contains(DatItemField.Tag))
Tag = newItem.Tag;
- if (fields.Contains(Field.DatItem_DisplayType))
+ if (datItemFields.Contains(DatItemField.DisplayType))
DisplayType = newItem.DisplayType;
- if (fields.Contains(Field.DatItem_Rotate))
+ if (datItemFields.Contains(DatItemField.Rotate))
Rotate = newItem.Rotate;
- if (fields.Contains(Field.DatItem_FlipX))
+ if (datItemFields.Contains(DatItemField.FlipX))
FlipX = newItem.FlipX;
- if (fields.Contains(Field.DatItem_Width))
+ if (datItemFields.Contains(DatItemField.Width))
Width = newItem.Width;
- if (fields.Contains(Field.DatItem_Height))
+ if (datItemFields.Contains(DatItemField.Height))
Height = newItem.Height;
- if (fields.Contains(Field.DatItem_Refresh))
+ if (datItemFields.Contains(DatItemField.Refresh))
Refresh = newItem.Refresh;
- if (fields.Contains(Field.DatItem_PixClock))
+ if (datItemFields.Contains(DatItemField.PixClock))
PixClock = newItem.PixClock;
- if (fields.Contains(Field.DatItem_HTotal))
+ if (datItemFields.Contains(DatItemField.HTotal))
HTotal = newItem.HTotal;
- if (fields.Contains(Field.DatItem_HBEnd))
+ if (datItemFields.Contains(DatItemField.HBEnd))
HBEnd = newItem.HBEnd;
- if (fields.Contains(Field.DatItem_HBStart))
+ if (datItemFields.Contains(DatItemField.HBStart))
HBStart = newItem.HBStart;
- if (fields.Contains(Field.DatItem_VTotal))
+ if (datItemFields.Contains(DatItemField.VTotal))
VTotal = newItem.VTotal;
- if (fields.Contains(Field.DatItem_VBEnd))
+ if (datItemFields.Contains(DatItemField.VBEnd))
VBEnd = newItem.VBEnd;
- if (fields.Contains(Field.DatItem_VBStart))
+ if (datItemFields.Contains(DatItemField.VBStart))
VBStart = newItem.VBStart;
}
diff --git a/SabreTools.DatItems/Driver.cs b/SabreTools.DatItems/Driver.cs
index 061407f3..fa17db12 100644
--- a/SabreTools.DatItems/Driver.cs
+++ b/SabreTools.DatItems/Driver.cs
@@ -66,27 +66,26 @@ namespace SabreTools.DatItems
#region Accessors
- ///
- /// Set fields with given values
- ///
- /// Mappings dictionary
- public override void SetFields(Dictionary mappings)
+ ///
+ public override void SetFields(
+ Dictionary datItemMappings,
+ Dictionary machineMappings)
{
// Set base fields
- base.SetFields(mappings);
+ base.SetFields(datItemMappings, machineMappings);
// Handle Feature-specific fields
- if (mappings.Keys.Contains(Field.DatItem_SupportStatus))
- Status = mappings[Field.DatItem_SupportStatus].AsSupportStatus();
+ if (datItemMappings.Keys.Contains(DatItemField.SupportStatus))
+ Status = datItemMappings[DatItemField.SupportStatus].AsSupportStatus();
- if (mappings.Keys.Contains(Field.DatItem_EmulationStatus))
- Emulation = mappings[Field.DatItem_EmulationStatus].AsSupportStatus();
+ if (datItemMappings.Keys.Contains(DatItemField.EmulationStatus))
+ Emulation = datItemMappings[DatItemField.EmulationStatus].AsSupportStatus();
- if (mappings.Keys.Contains(Field.DatItem_CocktailStatus))
- Cocktail = mappings[Field.DatItem_CocktailStatus].AsSupportStatus();
+ if (datItemMappings.Keys.Contains(DatItemField.CocktailStatus))
+ Cocktail = datItemMappings[DatItemField.CocktailStatus].AsSupportStatus();
- if (mappings.Keys.Contains(Field.DatItem_SaveStateStatus))
- SaveState = mappings[Field.DatItem_SaveStateStatus].AsSupported();
+ if (datItemMappings.Keys.Contains(DatItemField.SaveStateStatus))
+ SaveState = datItemMappings[DatItemField.SaveStateStatus].AsSupported();
}
#endregion
@@ -147,65 +146,59 @@ namespace SabreTools.DatItems
#region Filtering
- ///
- /// Check to see if a DatItem passes the filter
- ///
- /// Filter to check against
- /// True if this is a subitem, false otherwise
- /// True if the item passed the filter, false otherwise
- public override bool PassesFilter(Filter filter, bool sub = false)
+ ///
+ public override bool PassesFilter(Cleaner cleaner, bool sub = false)
{
// Check common fields first
- if (!base.PassesFilter(filter, sub))
+ if (!base.PassesFilter(cleaner, sub))
return false;
// Filter on status
- if (filter.DatItem_SupportStatus.MatchesPositive(SupportStatus.NULL, Status) == false)
+ if (cleaner.DatItemFilter.SupportStatus.MatchesPositive(SupportStatus.NULL, Status) == false)
return false;
- if (filter.DatItem_SupportStatus.MatchesNegative(SupportStatus.NULL, Status) == true)
+ if (cleaner.DatItemFilter.SupportStatus.MatchesNegative(SupportStatus.NULL, Status) == true)
return false;
// Filter on emulation
- if (filter.DatItem_EmulationStatus.MatchesPositive(SupportStatus.NULL, Emulation) == false)
+ if (cleaner.DatItemFilter.EmulationStatus.MatchesPositive(SupportStatus.NULL, Emulation) == false)
return false;
- if (filter.DatItem_EmulationStatus.MatchesNegative(SupportStatus.NULL, Emulation) == true)
+ if (cleaner.DatItemFilter.EmulationStatus.MatchesNegative(SupportStatus.NULL, Emulation) == true)
return false;
// Filter on cocktail
- if (filter.DatItem_CocktailStatus.MatchesPositive(SupportStatus.NULL, Cocktail) == false)
+ if (cleaner.DatItemFilter.CocktailStatus.MatchesPositive(SupportStatus.NULL, Cocktail) == false)
return false;
- if (filter.DatItem_CocktailStatus.MatchesNegative(SupportStatus.NULL, Cocktail) == true)
+ if (cleaner.DatItemFilter.CocktailStatus.MatchesNegative(SupportStatus.NULL, Cocktail) == true)
return false;
// Filter on savestate
- if (filter.DatItem_SaveStateStatus.MatchesPositive(Supported.NULL, SaveState) == false)
+ if (cleaner.DatItemFilter.SaveStateStatus.MatchesPositive(Supported.NULL, SaveState) == false)
return false;
- if (filter.DatItem_SaveStateStatus.MatchesNegative(Supported.NULL, SaveState) == true)
+ if (cleaner.DatItemFilter.SaveStateStatus.MatchesNegative(Supported.NULL, SaveState) == true)
return false;
return true;
}
- ///
- /// Remove fields from the DatItem
- ///
- /// List of Fields to remove
- public override void RemoveFields(List fields)
+ ///
+ public override void RemoveFields(
+ List datItemFields,
+ List machineFields)
{
// Remove common fields first
- base.RemoveFields(fields);
+ base.RemoveFields(datItemFields, machineFields);
// Remove the fields
- if (fields.Contains(Field.DatItem_SupportStatus))
+ if (datItemFields.Contains(DatItemField.SupportStatus))
Status = SupportStatus.NULL;
- if (fields.Contains(Field.DatItem_EmulationStatus))
+ if (datItemFields.Contains(DatItemField.EmulationStatus))
Emulation = SupportStatus.NULL;
- if (fields.Contains(Field.DatItem_CocktailStatus))
+ if (datItemFields.Contains(DatItemField.CocktailStatus))
Cocktail = SupportStatus.NULL;
- if (fields.Contains(Field.DatItem_SaveStateStatus))
+ if (datItemFields.Contains(DatItemField.SaveStateStatus))
SaveState = Supported.NULL;
}
@@ -213,15 +206,14 @@ namespace SabreTools.DatItems
#region Sorting and Merging
- ///
- /// Replace fields from another item
- ///
- /// DatItem to pull new information from
- /// List of Fields representing what should be updated
- public override void ReplaceFields(DatItem item, List fields)
+ ///
+ public override void ReplaceFields(
+ DatItem item,
+ List datItemFields,
+ List machineFields)
{
// Replace common fields first
- base.ReplaceFields(item, fields);
+ base.ReplaceFields(item, datItemFields, machineFields);
// If we don't have a Driver to replace from, ignore specific fields
if (item.ItemType != ItemType.Driver)
@@ -231,16 +223,16 @@ namespace SabreTools.DatItems
Driver newItem = item as Driver;
// Replace the fields
- if (fields.Contains(Field.DatItem_SupportStatus))
+ if (datItemFields.Contains(DatItemField.SupportStatus))
Status = newItem.Status;
- if (fields.Contains(Field.DatItem_EmulationStatus))
+ if (datItemFields.Contains(DatItemField.EmulationStatus))
Emulation = newItem.Emulation;
- if (fields.Contains(Field.DatItem_CocktailStatus))
+ if (datItemFields.Contains(DatItemField.CocktailStatus))
Cocktail = newItem.Cocktail;
- if (fields.Contains(Field.DatItem_SaveStateStatus))
+ if (datItemFields.Contains(DatItemField.SaveStateStatus))
SaveState = newItem.SaveState;
}
diff --git a/SabreTools.DatItems/Extension.cs b/SabreTools.DatItems/Extension.cs
index 703b8df4..4086ebff 100644
--- a/SabreTools.DatItems/Extension.cs
+++ b/SabreTools.DatItems/Extension.cs
@@ -37,18 +37,17 @@ namespace SabreTools.DatItems
return Name;
}
- ///
- /// Set fields with given values
- ///
- /// Mappings dictionary
- public override void SetFields(Dictionary mappings)
+ ///
+ public override void SetFields(
+ Dictionary datItemMappings,
+ Dictionary machineMappings)
{
// Set base fields
- base.SetFields(mappings);
+ base.SetFields(datItemMappings, machineMappings);
// Handle Sample-specific fields
- if (mappings.Keys.Contains(Field.DatItem_Extension_Name))
- Name = mappings[Field.DatItem_Extension_Name];
+ if (datItemMappings.Keys.Contains(DatItemField.Extension_Name))
+ Name = datItemMappings[DatItemField.Extension_Name];
}
#endregion
@@ -131,36 +130,30 @@ namespace SabreTools.DatItems
}
}
- ///
- /// Check to see if a DatItem passes the filter
- ///
- /// Filter to check against
- /// True if this is a subitem, false otherwise
- /// True if the item passed the filter, false otherwise
- public override bool PassesFilter(Filter filter, bool sub = false)
+ ///
+ public override bool PassesFilter(Cleaner cleaner, bool sub = false)
{
// Check common fields first
- if (!base.PassesFilter(filter, sub))
+ if (!base.PassesFilter(cleaner, sub))
return false;
// Filter on item name
- if (!filter.PassStringFilter(filter.DatItem_Extension_Name, Name))
+ if (!Filter.PassStringFilter(cleaner.DatItemFilter.Extension_Name, Name))
return false;
return true;
}
- ///
- /// Remove fields from the DatItem
- ///
- /// List of Fields to remove
- public override void RemoveFields(List fields)
+ ///
+ public override void RemoveFields(
+ List datItemFields,
+ List machineFields)
{
// Remove common fields first
- base.RemoveFields(fields);
+ base.RemoveFields(datItemFields, machineFields);
// Remove the fields
- if (fields.Contains(Field.DatItem_Extension_Name))
+ if (datItemFields.Contains(DatItemField.Extension_Name))
Name = null;
}
@@ -178,15 +171,14 @@ namespace SabreTools.DatItems
#region Sorting and Merging
- ///
- /// Replace fields from another item
- ///
- /// DatItem to pull new information from
- /// List of Fields representing what should be updated
- public override void ReplaceFields(DatItem item, List fields)
+ ///
+ public override void ReplaceFields(
+ DatItem item,
+ List datItemFields,
+ List machineFields)
{
// Replace common fields first
- base.ReplaceFields(item, fields);
+ base.ReplaceFields(item, datItemFields, machineFields);
// If we don't have a Extension to replace from, ignore specific fields
if (item.ItemType != ItemType.Extension)
@@ -196,7 +188,7 @@ namespace SabreTools.DatItems
Extension newItem = item as Extension;
// Replace the fields
- if (fields.Contains(Field.DatItem_Extension_Name))
+ if (datItemFields.Contains(DatItemField.Extension_Name))
Name = newItem.Name;
}
diff --git a/SabreTools.DatItems/Feature.cs b/SabreTools.DatItems/Feature.cs
index 92a74e27..791f83e1 100644
--- a/SabreTools.DatItems/Feature.cs
+++ b/SabreTools.DatItems/Feature.cs
@@ -55,24 +55,23 @@ namespace SabreTools.DatItems
#region Accessors
- ///
- /// Set fields with given values
- ///
- /// Mappings dictionary
- public override void SetFields(Dictionary mappings)
+ ///
+ public override void SetFields(
+ Dictionary datItemMappings,
+ Dictionary machineMappings)
{
// Set base fields
- base.SetFields(mappings);
+ base.SetFields(datItemMappings, machineMappings);
// Handle Feature-specific fields
- if (mappings.Keys.Contains(Field.DatItem_FeatureType))
- Type = mappings[Field.DatItem_FeatureType].AsFeatureType();
+ if (datItemMappings.Keys.Contains(DatItemField.FeatureType))
+ Type = datItemMappings[DatItemField.FeatureType].AsFeatureType();
- if (mappings.Keys.Contains(Field.DatItem_FeatureStatus))
- Status = mappings[Field.DatItem_FeatureStatus].AsFeatureStatus();
+ if (datItemMappings.Keys.Contains(DatItemField.FeatureStatus))
+ Status = datItemMappings[DatItemField.FeatureStatus].AsFeatureStatus();
- if (mappings.Keys.Contains(Field.DatItem_FeatureOverall))
- Overall = mappings[Field.DatItem_FeatureOverall].AsFeatureStatus();
+ if (datItemMappings.Keys.Contains(DatItemField.FeatureOverall))
+ Overall = datItemMappings[DatItemField.FeatureOverall].AsFeatureStatus();
}
#endregion
@@ -129,56 +128,50 @@ namespace SabreTools.DatItems
#region Filtering
- ///
- /// Check to see if a DatItem passes the filter
- ///
- /// Filter to check against
- /// True if this is a subitem, false otherwise
- /// True if the item passed the filter, false otherwise
- public override bool PassesFilter(Filter filter, bool sub = false)
+ ///
+ public override bool PassesFilter(Cleaner cleaner, bool sub = false)
{
// Check common fields first
- if (!base.PassesFilter(filter, sub))
+ if (!base.PassesFilter(cleaner, sub))
return false;
// Filter on type
- if (filter.DatItem_FeatureType.MatchesPositive(FeatureType.NULL, Type) == false)
+ if (cleaner.DatItemFilter.FeatureType.MatchesPositive(FeatureType.NULL, Type) == false)
return false;
- if (filter.DatItem_FeatureType.MatchesNegative(FeatureType.NULL, Type) == true)
+ if (cleaner.DatItemFilter.FeatureType.MatchesNegative(FeatureType.NULL, Type) == true)
return false;
// Filter on status
- if (filter.DatItem_FeatureStatus.MatchesPositive(FeatureStatus.NULL, Status) == false)
+ if (cleaner.DatItemFilter.FeatureStatus.MatchesPositive(FeatureStatus.NULL, Status) == false)
return false;
- if (filter.DatItem_FeatureStatus.MatchesNegative(FeatureStatus.NULL, Status) == true)
+ if (cleaner.DatItemFilter.FeatureStatus.MatchesNegative(FeatureStatus.NULL, Status) == true)
return false;
// Filter on overall
- if (filter.DatItem_FeatureOverall.MatchesPositive(FeatureStatus.NULL, Overall) == false)
+ if (cleaner.DatItemFilter.FeatureOverall.MatchesPositive(FeatureStatus.NULL, Overall) == false)
return false;
- if (filter.DatItem_FeatureOverall.MatchesNegative(FeatureStatus.NULL, Overall) == true)
+ if (cleaner.DatItemFilter.FeatureOverall.MatchesNegative(FeatureStatus.NULL, Overall) == true)
return false;
return true;
}
- ///
- /// Remove fields from the DatItem
- ///
- /// List of Fields to remove
- public override void RemoveFields(List fields)
+ ///
+ public override void RemoveFields(
+ List datItemFields,
+ List machineFields)
{
// Remove common fields first
- base.RemoveFields(fields);
+ base.RemoveFields(datItemFields, machineFields);
// Remove the fields
- if (fields.Contains(Field.DatItem_FeatureType))
+ if (datItemFields.Contains(DatItemField.FeatureType))
Type = FeatureType.NULL;
- if (fields.Contains(Field.DatItem_FeatureStatus))
+ if (datItemFields.Contains(DatItemField.FeatureStatus))
Status = FeatureStatus.NULL;
- if (fields.Contains(Field.DatItem_FeatureOverall))
+ if (datItemFields.Contains(DatItemField.FeatureOverall))
Overall = FeatureStatus.NULL;
}
@@ -186,15 +179,14 @@ namespace SabreTools.DatItems
#region Sorting and Merging
- ///
- /// Replace fields from another item
- ///
- /// DatItem to pull new information from
- /// List of Fields representing what should be updated
- public override void ReplaceFields(DatItem item, List fields)
+ ///
+ public override void ReplaceFields(
+ DatItem item,
+ List datItemFields,
+ List machineFields)
{
// Replace common fields first
- base.ReplaceFields(item, fields);
+ base.ReplaceFields(item, datItemFields, machineFields);
// If we don't have a Feature to replace from, ignore specific fields
if (item.ItemType != ItemType.Feature)
@@ -204,13 +196,13 @@ namespace SabreTools.DatItems
Feature newItem = item as Feature;
// Replace the fields
- if (fields.Contains(Field.DatItem_FeatureType))
+ if (datItemFields.Contains(DatItemField.FeatureType))
Type = newItem.Type;
- if (fields.Contains(Field.DatItem_FeatureStatus))
+ if (datItemFields.Contains(DatItemField.FeatureStatus))
Status = newItem.Status;
- if (fields.Contains(Field.DatItem_FeatureOverall))
+ if (datItemFields.Contains(DatItemField.FeatureOverall))
Overall = newItem.Overall;
}
diff --git a/SabreTools.DatItems/Info.cs b/SabreTools.DatItems/Info.cs
index 2c29b944..99d0f5f8 100644
--- a/SabreTools.DatItems/Info.cs
+++ b/SabreTools.DatItems/Info.cs
@@ -44,21 +44,20 @@ namespace SabreTools.DatItems
return Name;
}
- ///
- /// Set fields with given values
- ///
- /// Mappings dictionary
- public override void SetFields(Dictionary mappings)
+ ///
+ public override void SetFields(
+ Dictionary datItemMappings,
+ Dictionary machineMappings)
{
// Set base fields
- base.SetFields(mappings);
+ base.SetFields(datItemMappings, machineMappings);
// Handle Info-specific fields
- if (mappings.Keys.Contains(Field.DatItem_Name))
- Name = mappings[Field.DatItem_Name];
+ if (datItemMappings.Keys.Contains(DatItemField.Name))
+ Name = datItemMappings[DatItemField.Name];
- if (mappings.Keys.Contains(Field.DatItem_Value))
- Value = mappings[Field.DatItem_Value];
+ if (datItemMappings.Keys.Contains(DatItemField.Value))
+ Value = datItemMappings[DatItemField.Value];
}
#endregion
@@ -142,43 +141,37 @@ namespace SabreTools.DatItems
}
}
- ///
- /// Check to see if a DatItem passes the filter
- ///
- /// Filter to check against
- /// True if this is a subitem, false otherwise
- /// True if the item passed the filter, false otherwise
- public override bool PassesFilter(Filter filter, bool sub = false)
+ ///
+ public override bool PassesFilter(Cleaner cleaner, bool sub = false)
{
// Check common fields first
- if (!base.PassesFilter(filter, sub))
+ if (!base.PassesFilter(cleaner, sub))
return false;
// Filter on item name
- if (!filter.PassStringFilter(filter.DatItem_Name, Name))
+ if (!Filter.PassStringFilter(cleaner.DatItemFilter.Name, Name))
return false;
// Filter on info value
- if (!filter.PassStringFilter(filter.DatItem_Value, Value))
+ if (!Filter.PassStringFilter(cleaner.DatItemFilter.Value, Value))
return false;
return true;
}
- ///
- /// Remove fields from the DatItem
- ///
- /// List of Fields to remove
- public override void RemoveFields(List fields)
+ ///
+ public override void RemoveFields(
+ List datItemFields,
+ List machineFields)
{
// Remove common fields first
- base.RemoveFields(fields);
+ base.RemoveFields(datItemFields, machineFields);
// Remove the fields
- if (fields.Contains(Field.DatItem_Name))
+ if (datItemFields.Contains(DatItemField.Name))
Name = null;
- if (fields.Contains(Field.DatItem_Value))
+ if (datItemFields.Contains(DatItemField.Value))
Value = null;
}
@@ -196,15 +189,14 @@ namespace SabreTools.DatItems
#region Sorting and Merging
- ///
- /// Replace fields from another item
- ///
- /// DatItem to pull new information from
- /// List of Fields representing what should be updated
- public override void ReplaceFields(DatItem item, List fields)
+ ///
+ public override void ReplaceFields(
+ DatItem item,
+ List datItemFields,
+ List machineFields)
{
// Replace common fields first
- base.ReplaceFields(item, fields);
+ base.ReplaceFields(item, datItemFields, machineFields);
// If we don't have a Info to replace from, ignore specific fields
if (item.ItemType != ItemType.Info)
@@ -214,10 +206,10 @@ namespace SabreTools.DatItems
Info newItem = item as Info;
// Replace the fields
- if (fields.Contains(Field.DatItem_Name))
+ if (datItemFields.Contains(DatItemField.Name))
Name = newItem.Name;
- if (fields.Contains(Field.DatItem_Value))
+ if (datItemFields.Contains(DatItemField.Value))
Value = newItem.Value;
}
diff --git a/SabreTools.DatItems/Input.cs b/SabreTools.DatItems/Input.cs
index 27fd96dc..3650bfec 100644
--- a/SabreTools.DatItems/Input.cs
+++ b/SabreTools.DatItems/Input.cs
@@ -72,33 +72,32 @@ namespace SabreTools.DatItems
#region Accessors
- ///
- /// Set fields with given values
- ///
- /// Mappings dictionary
- public override void SetFields(Dictionary mappings)
+ ///
+ public override void SetFields(
+ Dictionary datItemMappings,
+ Dictionary machineMappings)
{
// Set base fields
- base.SetFields(mappings);
+ base.SetFields(datItemMappings, machineMappings);
// Handle Input-specific fields
- if (mappings.Keys.Contains(Field.DatItem_Service))
- Service = mappings[Field.DatItem_Service].AsYesNo();
+ if (datItemMappings.Keys.Contains(DatItemField.Service))
+ Service = datItemMappings[DatItemField.Service].AsYesNo();
- if (mappings.Keys.Contains(Field.DatItem_Tilt))
- Tilt = mappings[Field.DatItem_Tilt].AsYesNo();
+ if (datItemMappings.Keys.Contains(DatItemField.Tilt))
+ Tilt = datItemMappings[DatItemField.Tilt].AsYesNo();
- if (mappings.Keys.Contains(Field.DatItem_Players))
- Players = Utilities.CleanLong(mappings[Field.DatItem_Players]);
+ if (datItemMappings.Keys.Contains(DatItemField.Players))
+ Players = Utilities.CleanLong(datItemMappings[DatItemField.Players]);
- if (mappings.Keys.Contains(Field.DatItem_Coins))
- Coins = Utilities.CleanLong(mappings[Field.DatItem_Coins]);
+ if (datItemMappings.Keys.Contains(DatItemField.Coins))
+ Coins = Utilities.CleanLong(datItemMappings[DatItemField.Coins]);
if (ControlsSpecified)
{
foreach (Control control in Controls)
{
- control.SetFields(mappings);
+ control.SetFields(datItemMappings, machineMappings);
}
}
}
@@ -175,32 +174,27 @@ namespace SabreTools.DatItems
#region Filtering
- ///
- /// Check to see if a DatItem passes the filter
- ///
- /// Filter to check against
- /// True if this is a subitem, false otherwise
- /// True if the item passed the filter, false otherwise
- public override bool PassesFilter(Filter filter, bool sub = false)
+ ///
+ public override bool PassesFilter(Cleaner cleaner, bool sub = false)
{
// Check common fields first
- if (!base.PassesFilter(filter, sub))
+ if (!base.PassesFilter(cleaner, sub))
return false;
// Filter on service
- if (!filter.PassBoolFilter(filter.DatItem_Service, Service))
+ if (!Filter.PassBoolFilter(cleaner.DatItemFilter.Service, Service))
return false;
// Filter on tilt
- if (!filter.PassBoolFilter(filter.DatItem_Tilt, Tilt))
+ if (!Filter.PassBoolFilter(cleaner.DatItemFilter.Tilt, Tilt))
return false;
// Filter on players
- if (!filter.PassLongFilter(filter.DatItem_Players, Players))
+ if (!Filter.PassLongFilter(cleaner.DatItemFilter.Players, Players))
return false;
// Filter on coins
- if (!filter.PassLongFilter(filter.DatItem_Coins, Coins))
+ if (!Filter.PassLongFilter(cleaner.DatItemFilter.Coins, Coins))
return false;
// Filter on individual controls
@@ -208,7 +202,7 @@ namespace SabreTools.DatItems
{
foreach (Control control in Controls)
{
- if (!control.PassesFilter(filter, true))
+ if (!control.PassesFilter(cleaner, true))
return false;
}
}
@@ -216,33 +210,32 @@ namespace SabreTools.DatItems
return true;
}
- ///
- /// Remove fields from the DatItem
- ///
- /// List of Fields to remove
- public override void RemoveFields(List fields)
+ ///
+ public override void RemoveFields(
+ List datItemFields,
+ List machineFields)
{
// Remove common fields first
- base.RemoveFields(fields);
+ base.RemoveFields(datItemFields, machineFields);
// Remove the fields
- if (fields.Contains(Field.DatItem_Service))
+ if (datItemFields.Contains(DatItemField.Service))
Service = null;
- if (fields.Contains(Field.DatItem_Tilt))
+ if (datItemFields.Contains(DatItemField.Tilt))
Tilt = null;
- if (fields.Contains(Field.DatItem_Players))
+ if (datItemFields.Contains(DatItemField.Players))
Players = 0;
- if (fields.Contains(Field.DatItem_Coins))
+ if (datItemFields.Contains(DatItemField.Coins))
Coins = null;
if (ControlsSpecified)
{
foreach (Control control in Controls)
{
- control.RemoveFields(fields);
+ control.RemoveFields(datItemFields, machineFields);
}
}
}
@@ -251,15 +244,14 @@ namespace SabreTools.DatItems
#region Sorting and Merging
- ///
- /// Replace fields from another item
- ///
- /// DatItem to pull new information from
- /// List of Fields representing what should be updated
- public override void ReplaceFields(DatItem item, List fields)
+ ///
+ public override void ReplaceFields(
+ DatItem item,
+ List datItemFields,
+ List machineFields)
{
// Replace common fields first
- base.ReplaceFields(item, fields);
+ base.ReplaceFields(item, datItemFields, machineFields);
// If we don't have a Input to replace from, ignore specific fields
if (item.ItemType != ItemType.Input)
@@ -269,16 +261,16 @@ namespace SabreTools.DatItems
Input newItem = item as Input;
// Replace the fields
- if (fields.Contains(Field.DatItem_Service))
+ if (datItemFields.Contains(DatItemField.Service))
Service = newItem.Service;
- if (fields.Contains(Field.DatItem_Tilt))
+ if (datItemFields.Contains(DatItemField.Tilt))
Tilt = newItem.Tilt;
- if (fields.Contains(Field.DatItem_Players))
+ if (datItemFields.Contains(DatItemField.Players))
Players = newItem.Players;
- if (fields.Contains(Field.DatItem_Coins))
+ if (datItemFields.Contains(DatItemField.Coins))
Coins = newItem.Coins;
// DatItem_Control_* doesn't make sense here
diff --git a/SabreTools.DatItems/Instance.cs b/SabreTools.DatItems/Instance.cs
index b968fb56..e2d5d5c7 100644
--- a/SabreTools.DatItems/Instance.cs
+++ b/SabreTools.DatItems/Instance.cs
@@ -44,21 +44,20 @@ namespace SabreTools.DatItems
return Name;
}
- ///
- /// Set fields with given values
- ///
- /// Mappings dictionary
- public override void SetFields(Dictionary mappings)
+ ///
+ public override void SetFields(
+ Dictionary datItemMappings,
+ Dictionary machineMappings)
{
// Set base fields
- base.SetFields(mappings);
+ base.SetFields(datItemMappings, machineMappings);
// Handle Instance-specific fields
- if (mappings.Keys.Contains(Field.DatItem_Instance_Name))
- Name = mappings[Field.DatItem_Instance_Name];
+ if (datItemMappings.Keys.Contains(DatItemField.Instance_Name))
+ Name = datItemMappings[DatItemField.Instance_Name];
- if (mappings.Keys.Contains(Field.DatItem_Instance_BriefName))
- BriefName = mappings[Field.DatItem_Instance_BriefName];
+ if (datItemMappings.Keys.Contains(DatItemField.Instance_BriefName))
+ BriefName = datItemMappings[DatItemField.Instance_BriefName];
}
#endregion
@@ -142,43 +141,37 @@ namespace SabreTools.DatItems
}
}
- ///
- /// Check to see if a DatItem passes the filter
- ///
- /// Filter to check against
- /// True if this is a subitem, false otherwise
- /// True if the item passed the filter, false otherwise
- public override bool PassesFilter(Filter filter, bool sub = false)
+ ///
+ public override bool PassesFilter(Cleaner cleaner, bool sub = false)
{
// Check common fields first
- if (!base.PassesFilter(filter, sub))
+ if (!base.PassesFilter(cleaner, sub))
return false;
// Filter on item name
- if (!filter.PassStringFilter(filter.DatItem_Instance_Name, Name))
+ if (!Filter.PassStringFilter(cleaner.DatItemFilter.Instance_Name, Name))
return false;
// Filter on brief name
- if (!filter.PassStringFilter(filter.DatItem_Instance_BriefName, BriefName))
+ if (!Filter.PassStringFilter(cleaner.DatItemFilter.Instance_BriefName, BriefName))
return false;
return true;
}
- ///
- /// Remove fields from the DatItem
- ///
- /// List of Fields to remove
- public override void RemoveFields(List fields)
+ ///
+ public override void RemoveFields(
+ List datItemFields,
+ List machineFields)
{
// Remove common fields first
- base.RemoveFields(fields);
+ base.RemoveFields(datItemFields, machineFields);
// Remove the fields
- if (fields.Contains(Field.DatItem_Instance_Name))
+ if (datItemFields.Contains(DatItemField.Instance_Name))
Name = null;
- if (fields.Contains(Field.DatItem_Instance_BriefName))
+ if (datItemFields.Contains(DatItemField.Instance_BriefName))
BriefName = null;
}
@@ -196,15 +189,14 @@ namespace SabreTools.DatItems
#region Sorting and Merging
- ///
- /// Replace fields from another item
- ///
- /// DatItem to pull new information from
- /// List of Fields representing what should be updated
- public override void ReplaceFields(DatItem item, List fields)
+ ///
+ public override void ReplaceFields(
+ DatItem item,
+ List datItemFields,
+ List machineFields)
{
// Replace common fields first
- base.ReplaceFields(item, fields);
+ base.ReplaceFields(item, datItemFields, machineFields);
// If we don't have a Instance to replace from, ignore specific fields
if (item.ItemType != ItemType.Instance)
@@ -214,10 +206,10 @@ namespace SabreTools.DatItems
Instance newItem = item as Instance;
// Replace the fields
- if (fields.Contains(Field.DatItem_Instance_Name))
+ if (datItemFields.Contains(DatItemField.Instance_Name))
Name = newItem.Name;
- if (fields.Contains(Field.DatItem_Instance_BriefName))
+ if (datItemFields.Contains(DatItemField.Instance_BriefName))
BriefName = newItem.BriefName;
}
diff --git a/SabreTools.DatItems/Location.cs b/SabreTools.DatItems/Location.cs
index 23e6a456..5fa34df3 100644
--- a/SabreTools.DatItems/Location.cs
+++ b/SabreTools.DatItems/Location.cs
@@ -58,24 +58,23 @@ namespace SabreTools.DatItems
return Name;
}
- ///
- /// Set fields with given values
- ///
- /// Mappings dictionary
- public override void SetFields(Dictionary mappings)
+ ///
+ public override void SetFields(
+ Dictionary datItemMappings,
+ Dictionary machineMappings)
{
// Set base fields
- base.SetFields(mappings);
+ base.SetFields(datItemMappings, machineMappings);
// Handle Location-specific fields
- if (mappings.Keys.Contains(Field.DatItem_Location_Name))
- Name = mappings[Field.DatItem_Location_Name];
+ if (datItemMappings.Keys.Contains(DatItemField.Location_Name))
+ Name = datItemMappings[DatItemField.Location_Name];
- if (mappings.Keys.Contains(Field.DatItem_Location_Number))
- Number = Utilities.CleanLong(mappings[Field.DatItem_Location_Number]);
+ if (datItemMappings.Keys.Contains(DatItemField.Location_Number))
+ Number = Utilities.CleanLong(datItemMappings[DatItemField.Location_Number]);
- if (mappings.Keys.Contains(Field.DatItem_Location_Inverted))
- Inverted = mappings[Field.DatItem_Location_Inverted].AsYesNo();
+ if (datItemMappings.Keys.Contains(DatItemField.Location_Inverted))
+ Inverted = datItemMappings[DatItemField.Location_Inverted].AsYesNo();
}
#endregion
@@ -162,50 +161,44 @@ namespace SabreTools.DatItems
}
}
- ///
- /// Check to see if a DatItem passes the filter
- ///
- /// Filter to check against
- /// True if this is a subitem, false otherwise
- /// True if the item passed the filter, false otherwise
- public override bool PassesFilter(Filter filter, bool sub = false)
+ ///
+ public override bool PassesFilter(Cleaner cleaner, bool sub = false)
{
// Check common fields first
- if (!base.PassesFilter(filter, sub))
+ if (!base.PassesFilter(cleaner, sub))
return false;
// Filter on item name
- if (!filter.PassStringFilter(filter.DatItem_Location_Name, Name))
+ if (!Filter.PassStringFilter(cleaner.DatItemFilter.Location_Name, Name))
return false;
// Filter on number
- if (!filter.PassLongFilter(filter.DatItem_Location_Number, Number))
+ if (!Filter.PassLongFilter(cleaner.DatItemFilter.Location_Number, Number))
return false;
// Filter on inverted
- if (!filter.PassBoolFilter(filter.DatItem_Location_Inverted, Inverted))
+ if (!Filter.PassBoolFilter(cleaner.DatItemFilter.Location_Inverted, Inverted))
return false;
return true;
}
- ///
- /// Remove fields from the DatItem
- ///
- /// List of Fields to remove
- public override void RemoveFields(List fields)
+ ///
+ public override void RemoveFields(
+ List datItemFields,
+ List machineFields)
{
// Remove common fields first
- base.RemoveFields(fields);
+ base.RemoveFields(datItemFields, machineFields);
// Remove the fields
- if (fields.Contains(Field.DatItem_Location_Name))
+ if (datItemFields.Contains(DatItemField.Location_Name))
Name = null;
- if (fields.Contains(Field.DatItem_Location_Number))
+ if (datItemFields.Contains(DatItemField.Location_Number))
Number = null;
- if (fields.Contains(Field.DatItem_Location_Inverted))
+ if (datItemFields.Contains(DatItemField.Location_Inverted))
Inverted = null;
}
@@ -223,15 +216,14 @@ namespace SabreTools.DatItems
#region Sorting and Merging
- ///
- /// Replace fields from another item
- ///
- /// DatItem to pull new information from
- /// List of Fields representing what should be updated
- public override void ReplaceFields(DatItem item, List fields)
+ ///
+ public override void ReplaceFields(
+ DatItem item,
+ List datItemFields,
+ List machineFields)
{
// Replace common fields first
- base.ReplaceFields(item, fields);
+ base.ReplaceFields(item, datItemFields, machineFields);
// If we don't have a Location to replace from, ignore specific fields
if (item.ItemType != ItemType.Location)
@@ -241,13 +233,13 @@ namespace SabreTools.DatItems
Location newItem = item as Location;
// Replace the fields
- if (fields.Contains(Field.DatItem_Location_Name))
+ if (datItemFields.Contains(DatItemField.Location_Name))
Name = newItem.Name;
- if (fields.Contains(Field.DatItem_Location_Number))
+ if (datItemFields.Contains(DatItemField.Location_Number))
Number = newItem.Number;
- if (fields.Contains(Field.DatItem_Location_Inverted))
+ if (datItemFields.Contains(DatItemField.Location_Inverted))
Inverted = newItem.Inverted;
}
diff --git a/SabreTools.DatItems/Machine.cs b/SabreTools.DatItems/Machine.cs
index be194b03..0dc4a009 100644
--- a/SabreTools.DatItems/Machine.cs
+++ b/SabreTools.DatItems/Machine.cs
@@ -318,138 +318,141 @@ namespace SabreTools.DatItems
/// Set fields with given values
///
/// Mappings dictionary
- public void SetFields(Dictionary mappings)
+ public void SetFields(Dictionary mappings)
{
+ if (mappings == null)
+ return;
+
#region Common
- if (mappings.Keys.Contains(Field.Machine_Name))
- Name = mappings[Field.Machine_Name];
+ if (mappings.Keys.Contains(MachineField.Name))
+ Name = mappings[MachineField.Name];
- if (mappings.Keys.Contains(Field.Machine_Comment))
- Comment = mappings[Field.Machine_Comment];
+ if (mappings.Keys.Contains(MachineField.Comment))
+ Comment = mappings[MachineField.Comment];
- if (mappings.Keys.Contains(Field.Machine_Description))
- Description = mappings[Field.Machine_Description];
+ if (mappings.Keys.Contains(MachineField.Description))
+ Description = mappings[MachineField.Description];
- if (mappings.Keys.Contains(Field.Machine_Year))
- Year = mappings[Field.Machine_Year];
+ if (mappings.Keys.Contains(MachineField.Year))
+ Year = mappings[MachineField.Year];
- if (mappings.Keys.Contains(Field.Machine_Manufacturer))
- Manufacturer = mappings[Field.Machine_Manufacturer];
+ if (mappings.Keys.Contains(MachineField.Manufacturer))
+ Manufacturer = mappings[MachineField.Manufacturer];
- if (mappings.Keys.Contains(Field.Machine_Publisher))
- Publisher = mappings[Field.Machine_Publisher];
+ if (mappings.Keys.Contains(MachineField.Publisher))
+ Publisher = mappings[MachineField.Publisher];
- if (mappings.Keys.Contains(Field.Machine_Category))
- Category = mappings[Field.Machine_Category];
+ if (mappings.Keys.Contains(MachineField.Category))
+ Category = mappings[MachineField.Category];
- if (mappings.Keys.Contains(Field.Machine_RomOf))
- RomOf = mappings[Field.Machine_RomOf];
+ if (mappings.Keys.Contains(MachineField.RomOf))
+ RomOf = mappings[MachineField.RomOf];
- if (mappings.Keys.Contains(Field.Machine_CloneOf))
- CloneOf = mappings[Field.Machine_CloneOf];
+ if (mappings.Keys.Contains(MachineField.CloneOf))
+ CloneOf = mappings[MachineField.CloneOf];
- if (mappings.Keys.Contains(Field.Machine_SampleOf))
- SampleOf = mappings[Field.Machine_SampleOf];
+ if (mappings.Keys.Contains(MachineField.SampleOf))
+ SampleOf = mappings[MachineField.SampleOf];
- if (mappings.Keys.Contains(Field.Machine_Type))
- MachineType = mappings[Field.Machine_Type].AsMachineType();
+ if (mappings.Keys.Contains(MachineField.Type))
+ MachineType = mappings[MachineField.Type].AsMachineType();
#endregion
#region AttractMode
- if (mappings.Keys.Contains(Field.Machine_Players))
- Players = mappings[Field.Machine_Players];
+ if (mappings.Keys.Contains(MachineField.Players))
+ Players = mappings[MachineField.Players];
- if (mappings.Keys.Contains(Field.Machine_Rotation))
- Rotation = mappings[Field.Machine_Rotation];
+ if (mappings.Keys.Contains(MachineField.Rotation))
+ Rotation = mappings[MachineField.Rotation];
- if (mappings.Keys.Contains(Field.Machine_Control))
- Control = mappings[Field.Machine_Control];
+ if (mappings.Keys.Contains(MachineField.Control))
+ Control = mappings[MachineField.Control];
- if (mappings.Keys.Contains(Field.Machine_Status))
- Status = mappings[Field.Machine_Status];
+ if (mappings.Keys.Contains(MachineField.Status))
+ Status = mappings[MachineField.Status];
- if (mappings.Keys.Contains(Field.Machine_DisplayCount))
- DisplayCount = mappings[Field.Machine_DisplayCount];
+ if (mappings.Keys.Contains(MachineField.DisplayCount))
+ DisplayCount = mappings[MachineField.DisplayCount];
- if (mappings.Keys.Contains(Field.Machine_DisplayType))
- DisplayType = mappings[Field.Machine_DisplayType];
+ if (mappings.Keys.Contains(MachineField.DisplayType))
+ DisplayType = mappings[MachineField.DisplayType];
- if (mappings.Keys.Contains(Field.Machine_Buttons))
- Buttons = mappings[Field.Machine_Buttons];
+ if (mappings.Keys.Contains(MachineField.Buttons))
+ Buttons = mappings[MachineField.Buttons];
#endregion
#region ListXML
- if (mappings.Keys.Contains(Field.Machine_SourceFile))
- SourceFile = mappings[Field.Machine_SourceFile];
+ if (mappings.Keys.Contains(MachineField.SourceFile))
+ SourceFile = mappings[MachineField.SourceFile];
- if (mappings.Keys.Contains(Field.Machine_Runnable))
- Runnable = mappings[Field.Machine_Runnable].AsRunnable();
+ if (mappings.Keys.Contains(MachineField.Runnable))
+ Runnable = mappings[MachineField.Runnable].AsRunnable();
#endregion
#region Logiqx
- if (mappings.Keys.Contains(Field.Machine_Board))
- Board = mappings[Field.Machine_Board];
+ if (mappings.Keys.Contains(MachineField.Board))
+ Board = mappings[MachineField.Board];
- if (mappings.Keys.Contains(Field.Machine_RebuildTo))
- RebuildTo = mappings[Field.Machine_RebuildTo];
+ if (mappings.Keys.Contains(MachineField.RebuildTo))
+ RebuildTo = mappings[MachineField.RebuildTo];
#endregion
#region Logiqx EmuArc
- if (mappings.Keys.Contains(Field.Machine_TitleID))
- TitleID = mappings[Field.Machine_TitleID];
+ if (mappings.Keys.Contains(MachineField.TitleID))
+ TitleID = mappings[MachineField.TitleID];
- if (mappings.Keys.Contains(Field.Machine_Developer))
- Developer = mappings[Field.Machine_Developer];
+ if (mappings.Keys.Contains(MachineField.Developer))
+ Developer = mappings[MachineField.Developer];
- if (mappings.Keys.Contains(Field.Machine_Genre))
- Genre = mappings[Field.Machine_Genre];
+ if (mappings.Keys.Contains(MachineField.Genre))
+ Genre = mappings[MachineField.Genre];
- if (mappings.Keys.Contains(Field.Machine_Subgenre))
- Subgenre = mappings[Field.Machine_Subgenre];
+ if (mappings.Keys.Contains(MachineField.Subgenre))
+ Subgenre = mappings[MachineField.Subgenre];
- if (mappings.Keys.Contains(Field.Machine_Ratings))
- Ratings = mappings[Field.Machine_Ratings];
+ if (mappings.Keys.Contains(MachineField.Ratings))
+ Ratings = mappings[MachineField.Ratings];
- if (mappings.Keys.Contains(Field.Machine_Score))
- Score = mappings[Field.Machine_Score];
+ if (mappings.Keys.Contains(MachineField.Score))
+ Score = mappings[MachineField.Score];
- if (mappings.Keys.Contains(Field.Machine_Enabled))
- Enabled = mappings[Field.Machine_Enabled];
+ if (mappings.Keys.Contains(MachineField.Enabled))
+ Enabled = mappings[MachineField.Enabled];
- if (mappings.Keys.Contains(Field.Machine_CRC))
- Crc = mappings[Field.Machine_CRC].AsYesNo();
+ if (mappings.Keys.Contains(MachineField.CRC))
+ Crc = mappings[MachineField.CRC].AsYesNo();
- if (mappings.Keys.Contains(Field.Machine_RelatedTo))
- RelatedTo = mappings[Field.Machine_RelatedTo];
+ if (mappings.Keys.Contains(MachineField.RelatedTo))
+ RelatedTo = mappings[MachineField.RelatedTo];
#endregion
#region OpenMSX
- if (mappings.Keys.Contains(Field.Machine_GenMSXID))
- GenMSXID = mappings[Field.Machine_GenMSXID];
+ if (mappings.Keys.Contains(MachineField.GenMSXID))
+ GenMSXID = mappings[MachineField.GenMSXID];
- if (mappings.Keys.Contains(Field.Machine_System))
- System = mappings[Field.Machine_System];
+ if (mappings.Keys.Contains(MachineField.System))
+ System = mappings[MachineField.System];
- if (mappings.Keys.Contains(Field.Machine_Country))
- Country = mappings[Field.Machine_Country];
+ if (mappings.Keys.Contains(MachineField.Country))
+ Country = mappings[MachineField.Country];
#endregion
#region SoftwareList
- if (mappings.Keys.Contains(Field.Machine_Supported))
- Supported = mappings[Field.Machine_Supported].AsSupported();
+ if (mappings.Keys.Contains(MachineField.Supported))
+ Supported = mappings[MachineField.Supported].AsSupported();
#endregion
}
@@ -567,62 +570,62 @@ namespace SabreTools.DatItems
///
/// Check to see if a Machine passes the filter
///
- /// Filter to check against
+ /// Cleaner containing filters to check against
/// True if the item passed the filter, false otherwise
- public bool PassesFilter(Filter filter)
+ public bool PassesFilter(Cleaner cleaner)
{
#region Common
// Machine_Name
- bool passes = filter.PassStringFilter(filter.Machine_Name, Name);
- if (filter.IncludeOfInGame)
+ bool passes = Filter.PassStringFilter(cleaner.MachineFilter.Name, Name);
+ if (cleaner.MachineFilter.IncludeOfInGame)
{
- passes |= filter.PassStringFilter(filter.Machine_Name, CloneOf);
- passes |= filter.PassStringFilter(filter.Machine_Name, RomOf);
+ passes |= Filter.PassStringFilter(cleaner.MachineFilter.Name, CloneOf);
+ passes |= Filter.PassStringFilter(cleaner.MachineFilter.Name, RomOf);
}
if (!passes)
return false;
// Machine_Comment
- if (!filter.PassStringFilter(filter.Machine_Comment, Comment))
+ if (!Filter.PassStringFilter(cleaner.MachineFilter.Comment, Comment))
return false;
// Machine_Description
- if (!filter.PassStringFilter(filter.Machine_Description, Description))
+ if (!Filter.PassStringFilter(cleaner.MachineFilter.Description, Description))
return false;
// Machine_Year
- if (!filter.PassStringFilter(filter.Machine_Year, Year))
+ if (!Filter.PassStringFilter(cleaner.MachineFilter.Year, Year))
return false;
// Machine_Manufacturer
- if (!filter.PassStringFilter(filter.Machine_Manufacturer, Manufacturer))
+ if (!Filter.PassStringFilter(cleaner.MachineFilter.Manufacturer, Manufacturer))
return false;
// Machine_Publisher
- if (!filter.PassStringFilter(filter.Machine_Publisher, Publisher))
+ if (!Filter.PassStringFilter(cleaner.MachineFilter.Publisher, Publisher))
return false;
// Machine_Category
- if (!filter.PassStringFilter(filter.Machine_Category, Category))
+ if (!Filter.PassStringFilter(cleaner.MachineFilter.Category, Category))
return false;
// Machine_RomOf
- if (!filter.PassStringFilter(filter.Machine_RomOf, RomOf))
+ if (!Filter.PassStringFilter(cleaner.MachineFilter.RomOf, RomOf))
return false;
// Machine_CloneOf
- if (!filter.PassStringFilter(filter.Machine_CloneOf, CloneOf))
+ if (!Filter.PassStringFilter(cleaner.MachineFilter.CloneOf, CloneOf))
return false;
// Machine_SampleOf
- if (!filter.PassStringFilter(filter.Machine_SampleOf, SampleOf))
+ if (!Filter.PassStringFilter(cleaner.MachineFilter.SampleOf, SampleOf))
return false;
// Machine_Type
- if (filter.Machine_Type.MatchesPositive(0x0, MachineType) == false)
+ if (cleaner.MachineFilter.Type.MatchesPositive(0x0, MachineType) == false)
return false;
- if (filter.Machine_Type.MatchesNegative(0x0, MachineType) == true)
+ if (cleaner.MachineFilter.Type.MatchesNegative(0x0, MachineType) == true)
return false;
#endregion
@@ -630,31 +633,31 @@ namespace SabreTools.DatItems
#region AttractMode
// Machine_Players
- if (!filter.PassStringFilter(filter.Machine_Players, Players))
+ if (!Filter.PassStringFilter(cleaner.MachineFilter.Players, Players))
return false;
// Machine_Rotation
- if (!filter.PassStringFilter(filter.Machine_Rotation, Rotation))
+ if (!Filter.PassStringFilter(cleaner.MachineFilter.Rotation, Rotation))
return false;
// Machine_Control
- if (!filter.PassStringFilter(filter.Machine_Control, Control))
+ if (!Filter.PassStringFilter(cleaner.MachineFilter.Control, Control))
return false;
// Machine_Status
- if (!filter.PassStringFilter(filter.Machine_Status, Status))
+ if (!Filter.PassStringFilter(cleaner.MachineFilter.Status, Status))
return false;
// Machine_DisplayCount
- if (!filter.PassStringFilter(filter.Machine_DisplayCount, DisplayCount))
+ if (!Filter.PassStringFilter(cleaner.MachineFilter.DisplayCount, DisplayCount))
return false;
// Machine_DisplayType
- if (!filter.PassStringFilter(filter.Machine_DisplayType, DisplayType))
+ if (!Filter.PassStringFilter(cleaner.MachineFilter.DisplayType, DisplayType))
return false;
// Machine_Buttons
- if (!filter.PassStringFilter(filter.Machine_Buttons, Buttons))
+ if (!Filter.PassStringFilter(cleaner.MachineFilter.Buttons, Buttons))
return false;
#endregion
@@ -662,13 +665,13 @@ namespace SabreTools.DatItems
#region ListXML
// Machine_SourceFile
- if (!filter.PassStringFilter(filter.Machine_SourceFile, SourceFile))
+ if (!Filter.PassStringFilter(cleaner.MachineFilter.SourceFile, SourceFile))
return false;
// Machine_Runnable
- if (filter.Machine_Runnable.MatchesPositive(Runnable.NULL, Runnable) == false)
+ if (cleaner.MachineFilter.Runnable.MatchesPositive(Runnable.NULL, Runnable) == false)
return false;
- if (filter.Machine_Runnable.MatchesNegative(Runnable.NULL, Runnable) == true)
+ if (cleaner.MachineFilter.Runnable.MatchesNegative(Runnable.NULL, Runnable) == true)
return false;
#endregion
@@ -676,11 +679,11 @@ namespace SabreTools.DatItems
#region Logiqx
// Machine_Board
- if (!filter.PassStringFilter(filter.Machine_Board, Board))
+ if (!Filter.PassStringFilter(cleaner.MachineFilter.Board, Board))
return false;
// Machine_RebuildTo
- if (!filter.PassStringFilter(filter.Machine_RebuildTo, RebuildTo))
+ if (!Filter.PassStringFilter(cleaner.MachineFilter.RebuildTo, RebuildTo))
return false;
#endregion
@@ -688,39 +691,39 @@ namespace SabreTools.DatItems
#region Logiqx EmuArc
// Machine_TitleID
- if (!filter.PassStringFilter(filter.Machine_TitleID, TitleID))
+ if (!Filter.PassStringFilter(cleaner.MachineFilter.TitleID, TitleID))
return false;
// Machine_Developer
- if (!filter.PassStringFilter(filter.Machine_Developer, Developer))
+ if (!Filter.PassStringFilter(cleaner.MachineFilter.Developer, Developer))
return false;
// Machine_Genre
- if (!filter.PassStringFilter(filter.Machine_Genre, Genre))
+ if (!Filter.PassStringFilter(cleaner.MachineFilter.Genre, Genre))
return false;
// Machine_Subgenre
- if (!filter.PassStringFilter(filter.Machine_Subgenre, Subgenre))
+ if (!Filter.PassStringFilter(cleaner.MachineFilter.Subgenre, Subgenre))
return false;
// Machine_Ratings
- if (!filter.PassStringFilter(filter.Machine_Ratings, Ratings))
+ if (!Filter.PassStringFilter(cleaner.MachineFilter.Ratings, Ratings))
return false;
// Machine_Score
- if (!filter.PassStringFilter(filter.Machine_Score, Score))
+ if (!Filter.PassStringFilter(cleaner.MachineFilter.Score, Score))
return false;
// Machine_Enabled
- if (!filter.PassStringFilter(filter.Machine_Enabled, Enabled))
+ if (!Filter.PassStringFilter(cleaner.MachineFilter.Enabled, Enabled))
return false;
// Machine_CRC
- if (!filter.PassBoolFilter(filter.Machine_CRC, Crc))
+ if (!Filter.PassBoolFilter(cleaner.MachineFilter.CRC, Crc))
return false;
// Machine_RelatedTo
- if (!filter.PassStringFilter(filter.Machine_RelatedTo, RelatedTo))
+ if (!Filter.PassStringFilter(cleaner.MachineFilter.RelatedTo, RelatedTo))
return false;
#endregion
@@ -728,15 +731,15 @@ namespace SabreTools.DatItems
#region OpenMSX
// Machine_GenMSXID
- if (!filter.PassStringFilter(filter.Machine_GenMSXID, GenMSXID))
+ if (!Filter.PassStringFilter(cleaner.MachineFilter.GenMSXID, GenMSXID))
return false;
// Machine_System
- if (!filter.PassStringFilter(filter.Machine_System, System))
+ if (!Filter.PassStringFilter(cleaner.MachineFilter.System, System))
return false;
// Machine_Country
- if (!filter.PassStringFilter(filter.Machine_Country, Country))
+ if (!Filter.PassStringFilter(cleaner.MachineFilter.Country, Country))
return false;
#endregion
@@ -744,9 +747,9 @@ namespace SabreTools.DatItems
#region SoftwareList
// Machine_Supported
- if (filter.Machine_Supported.MatchesPositive(Supported.NULL, Supported) == false)
+ if (cleaner.MachineFilter.Supported.MatchesPositive(Supported.NULL, Supported) == false)
return false;
- if (filter.Machine_Supported.MatchesNegative(Supported.NULL, Supported) == true)
+ if (cleaner.MachineFilter.Supported.MatchesNegative(Supported.NULL, Supported) == true)
return false;
#endregion // SoftwareList
@@ -758,137 +761,137 @@ namespace SabreTools.DatItems
/// Remove fields from the Machine
///
/// List of Fields to remove
- public void RemoveFields(List fields)
+ public void RemoveFields(List fields)
{
#region Common
- if (fields.Contains(Field.Machine_Name))
+ if (fields.Contains(MachineField.Name))
Name = null;
- if (fields.Contains(Field.Machine_Comment))
+ if (fields.Contains(MachineField.Comment))
Comment = null;
- if (fields.Contains(Field.Machine_Description))
+ if (fields.Contains(MachineField.Description))
Description = null;
- if (fields.Contains(Field.Machine_Year))
+ if (fields.Contains(MachineField.Year))
Year = null;
- if (fields.Contains(Field.Machine_Manufacturer))
+ if (fields.Contains(MachineField.Manufacturer))
Manufacturer = null;
- if (fields.Contains(Field.Machine_Publisher))
+ if (fields.Contains(MachineField.Publisher))
Publisher = null;
- if (fields.Contains(Field.Machine_Category))
+ if (fields.Contains(MachineField.Category))
Category = null;
- if (fields.Contains(Field.Machine_RomOf))
+ if (fields.Contains(MachineField.RomOf))
RomOf = null;
- if (fields.Contains(Field.Machine_CloneOf))
+ if (fields.Contains(MachineField.CloneOf))
CloneOf = null;
- if (fields.Contains(Field.Machine_SampleOf))
+ if (fields.Contains(MachineField.SampleOf))
SampleOf = null;
- if (fields.Contains(Field.Machine_Type))
+ if (fields.Contains(MachineField.Type))
MachineType = 0x0;
#endregion
#region AttractMode
- if (fields.Contains(Field.Machine_Players))
+ if (fields.Contains(MachineField.Players))
Players = null;
- if (fields.Contains(Field.Machine_Rotation))
+ if (fields.Contains(MachineField.Rotation))
Rotation = null;
- if (fields.Contains(Field.Machine_Control))
+ if (fields.Contains(MachineField.Control))
Control = null;
- if (fields.Contains(Field.Machine_Status))
+ if (fields.Contains(MachineField.Status))
Status = null;
- if (fields.Contains(Field.Machine_DisplayCount))
+ if (fields.Contains(MachineField.DisplayCount))
DisplayCount = null;
- if (fields.Contains(Field.Machine_DisplayType))
+ if (fields.Contains(MachineField.DisplayType))
DisplayType = null;
- if (fields.Contains(Field.Machine_Buttons))
+ if (fields.Contains(MachineField.Buttons))
Buttons = null;
#endregion
#region ListXML
- if (fields.Contains(Field.Machine_SourceFile))
+ if (fields.Contains(MachineField.SourceFile))
SourceFile = null;
- if (fields.Contains(Field.Machine_Runnable))
+ if (fields.Contains(MachineField.Runnable))
Runnable = Runnable.NULL;
#endregion
#region Logiqx
- if (fields.Contains(Field.Machine_Board))
+ if (fields.Contains(MachineField.Board))
Board = null;
- if (fields.Contains(Field.Machine_RebuildTo))
+ if (fields.Contains(MachineField.RebuildTo))
RebuildTo = null;
#endregion
#region Logiqx EmuArc
- if (fields.Contains(Field.Machine_TitleID))
+ if (fields.Contains(MachineField.TitleID))
TitleID = null;
- if (fields.Contains(Field.Machine_Developer))
+ if (fields.Contains(MachineField.Developer))
Developer = null;
- if (fields.Contains(Field.Machine_Genre))
+ if (fields.Contains(MachineField.Genre))
Genre = null;
- if (fields.Contains(Field.Machine_Subgenre))
+ if (fields.Contains(MachineField.Subgenre))
Subgenre = null;
- if (fields.Contains(Field.Machine_Ratings))
+ if (fields.Contains(MachineField.Ratings))
Ratings = null;
- if (fields.Contains(Field.Machine_Score))
+ if (fields.Contains(MachineField.Score))
Score = null;
- if (fields.Contains(Field.Machine_Enabled))
+ if (fields.Contains(MachineField.Enabled))
Enabled = null;
- if (fields.Contains(Field.Machine_CRC))
+ if (fields.Contains(MachineField.CRC))
Crc = null;
- if (fields.Contains(Field.Machine_RelatedTo))
+ if (fields.Contains(MachineField.RelatedTo))
RelatedTo = null;
#endregion
#region OpenMSX
- if (fields.Contains(Field.Machine_GenMSXID))
+ if (fields.Contains(MachineField.GenMSXID))
GenMSXID = null;
- if (fields.Contains(Field.Machine_System))
+ if (fields.Contains(MachineField.System))
System = null;
- if (fields.Contains(Field.Machine_Country))
+ if (fields.Contains(MachineField.Country))
Country = null;
#endregion
#region SoftwareList
- if (fields.Contains(Field.Machine_Supported))
+ if (fields.Contains(MachineField.Supported))
Supported = Supported.NULL;
#endregion
@@ -904,140 +907,140 @@ namespace SabreTools.DatItems
/// DatItem to pull new information from
/// List of Fields representing what should be updated
/// True if descriptions should only be replaced if the game name is the same, false otherwise
- public void ReplaceFields(Machine machine, List fields, bool onlySame)
+ public void ReplaceFields(Machine machine, List fields, bool onlySame)
{
#region Common
- if (fields.Contains(Field.Machine_Name))
+ if (fields.Contains(MachineField.Name))
Name = machine.Name;
- if (fields.Contains(Field.Machine_Comment))
+ if (fields.Contains(MachineField.Comment))
Comment = machine.Comment;
- if (fields.Contains(Field.Machine_Description))
+ if (fields.Contains(MachineField.Description))
{
if (!onlySame || (onlySame && Name == Description))
Description = machine.Description;
}
- if (fields.Contains(Field.Machine_Year))
+ if (fields.Contains(MachineField.Year))
Year = machine.Year;
- if (fields.Contains(Field.Machine_Manufacturer))
+ if (fields.Contains(MachineField.Manufacturer))
Manufacturer = machine.Manufacturer;
- if (fields.Contains(Field.Machine_Publisher))
+ if (fields.Contains(MachineField.Publisher))
Publisher = machine.Publisher;
- if (fields.Contains(Field.Machine_Category))
+ if (fields.Contains(MachineField.Category))
Category = machine.Category;
- if (fields.Contains(Field.Machine_RomOf))
+ if (fields.Contains(MachineField.RomOf))
RomOf = machine.RomOf;
- if (fields.Contains(Field.Machine_CloneOf))
+ if (fields.Contains(MachineField.CloneOf))
CloneOf = machine.CloneOf;
- if (fields.Contains(Field.Machine_SampleOf))
+ if (fields.Contains(MachineField.SampleOf))
SampleOf = machine.SampleOf;
- if (fields.Contains(Field.Machine_Type))
+ if (fields.Contains(MachineField.Type))
MachineType = machine.MachineType;
#endregion
#region AttractMode
- if (fields.Contains(Field.Machine_Players))
+ if (fields.Contains(MachineField.Players))
Players = machine.Players;
- if (fields.Contains(Field.Machine_Rotation))
+ if (fields.Contains(MachineField.Rotation))
Rotation = machine.Rotation;
- if (fields.Contains(Field.Machine_Control))
+ if (fields.Contains(MachineField.Control))
Control = machine.Control;
- if (fields.Contains(Field.Machine_Status))
+ if (fields.Contains(MachineField.Status))
Status = machine.Status;
- if (fields.Contains(Field.Machine_DisplayCount))
+ if (fields.Contains(MachineField.DisplayCount))
DisplayCount = machine.DisplayCount;
- if (fields.Contains(Field.Machine_DisplayType))
+ if (fields.Contains(MachineField.DisplayType))
DisplayType = machine.DisplayType;
- if (fields.Contains(Field.Machine_Buttons))
+ if (fields.Contains(MachineField.Buttons))
Buttons = machine.Buttons;
#endregion
#region ListXML
- if (fields.Contains(Field.Machine_SourceFile))
+ if (fields.Contains(MachineField.SourceFile))
SourceFile = machine.SourceFile;
- if (fields.Contains(Field.Machine_Runnable))
+ if (fields.Contains(MachineField.Runnable))
Runnable = machine.Runnable;
#endregion
#region Logiqx
- if (fields.Contains(Field.Machine_Board))
+ if (fields.Contains(MachineField.Board))
Board = machine.Board;
- if (fields.Contains(Field.Machine_RebuildTo))
+ if (fields.Contains(MachineField.RebuildTo))
RebuildTo = machine.RebuildTo;
#endregion
#region Logiqx EmuArc
- if (fields.Contains(Field.Machine_TitleID))
+ if (fields.Contains(MachineField.TitleID))
TitleID = machine.TitleID;
- if (fields.Contains(Field.Machine_Developer))
+ if (fields.Contains(MachineField.Developer))
Developer = machine.Developer;
- if (fields.Contains(Field.Machine_Genre))
+ if (fields.Contains(MachineField.Genre))
Genre = machine.Genre;
- if (fields.Contains(Field.Machine_Subgenre))
+ if (fields.Contains(MachineField.Subgenre))
Subgenre = machine.Subgenre;
- if (fields.Contains(Field.Machine_Ratings))
+ if (fields.Contains(MachineField.Ratings))
Ratings = machine.Ratings;
- if (fields.Contains(Field.Machine_Score))
+ if (fields.Contains(MachineField.Score))
Score = machine.Score;
- if (fields.Contains(Field.Machine_Enabled))
+ if (fields.Contains(MachineField.Enabled))
Enabled = machine.Enabled;
- if (fields.Contains(Field.Machine_CRC))
+ if (fields.Contains(MachineField.CRC))
Crc = machine.Crc;
- if (fields.Contains(Field.Machine_RelatedTo))
+ if (fields.Contains(MachineField.RelatedTo))
RelatedTo = machine.RelatedTo;
#endregion
#region OpenMSX
- if (fields.Contains(Field.Machine_GenMSXID))
+ if (fields.Contains(MachineField.GenMSXID))
GenMSXID = machine.GenMSXID;
- if (fields.Contains(Field.Machine_System))
+ if (fields.Contains(MachineField.System))
System = machine.System;
- if (fields.Contains(Field.Machine_Country))
+ if (fields.Contains(MachineField.Country))
Country = machine.Country;
#endregion
#region SoftwareList
- if (fields.Contains(Field.Machine_Supported))
+ if (fields.Contains(MachineField.Supported))
Supported = machine.Supported;
#endregion
diff --git a/SabreTools.DatItems/Media.cs b/SabreTools.DatItems/Media.cs
index 19061cdb..7cb28bb0 100644
--- a/SabreTools.DatItems/Media.cs
+++ b/SabreTools.DatItems/Media.cs
@@ -93,30 +93,29 @@ namespace SabreTools.DatItems
return Name;
}
- ///
- /// Set fields with given values
- ///
- /// Mappings dictionary
- public override void SetFields(Dictionary mappings)
+ ///
+ public override void SetFields(
+ Dictionary datItemMappings,
+ Dictionary machineMappings)
{
// Set base fields
- base.SetFields(mappings);
+ base.SetFields(datItemMappings, machineMappings);
// Handle Media-specific fields
- if (mappings.Keys.Contains(Field.DatItem_Name))
- Name = mappings[Field.DatItem_Name];
+ if (datItemMappings.Keys.Contains(DatItemField.Name))
+ Name = datItemMappings[DatItemField.Name];
- if (mappings.Keys.Contains(Field.DatItem_MD5))
- MD5 = mappings[Field.DatItem_MD5];
+ if (datItemMappings.Keys.Contains(DatItemField.MD5))
+ MD5 = datItemMappings[DatItemField.MD5];
- if (mappings.Keys.Contains(Field.DatItem_SHA1))
- SHA1 = mappings[Field.DatItem_SHA1];
+ if (datItemMappings.Keys.Contains(DatItemField.SHA1))
+ SHA1 = datItemMappings[DatItemField.SHA1];
- if (mappings.Keys.Contains(Field.DatItem_SHA256))
- SHA256 = mappings[Field.DatItem_SHA256];
+ if (datItemMappings.Keys.Contains(DatItemField.SHA256))
+ SHA256 = datItemMappings[DatItemField.SHA256];
- if (mappings.Keys.Contains(Field.DatItem_SpamSum))
- SpamSum = mappings[Field.DatItem_SpamSum];
+ if (datItemMappings.Keys.Contains(DatItemField.SpamSum))
+ SpamSum = datItemMappings[DatItemField.SpamSum];
}
#endregion
@@ -349,64 +348,58 @@ namespace SabreTools.DatItems
}
}
- ///
- /// Check to see if a DatItem passes the filter
- ///
- /// Filter to check against
- /// True if this is a subitem, false otherwise
- /// True if the item passed the filter, false otherwise
- public override bool PassesFilter(Filter filter, bool sub = false)
+ ///
+ public override bool PassesFilter(Cleaner cleaner, bool sub = false)
{
// Check common fields first
- if (!base.PassesFilter(filter, sub))
+ if (!base.PassesFilter(cleaner, sub))
return false;
// Filter on item name
- if (!filter.PassStringFilter(filter.DatItem_Name, Name))
+ if (!Filter.PassStringFilter(cleaner.DatItemFilter.Name, Name))
return false;
// Filter on MD5
- if (!filter.PassStringFilter(filter.DatItem_MD5, MD5))
+ if (!Filter.PassStringFilter(cleaner.DatItemFilter.MD5, MD5))
return false;
// Filter on SHA-1
- if (!filter.PassStringFilter(filter.DatItem_SHA1, SHA1))
+ if (!Filter.PassStringFilter(cleaner.DatItemFilter.SHA1, SHA1))
return false;
// Filter on SHA-256
- if (!filter.PassStringFilter(filter.DatItem_SHA256, SHA256))
+ if (!Filter.PassStringFilter(cleaner.DatItemFilter.SHA256, SHA256))
return false;
// Filter on SpamSum
- if (!filter.PassStringFilter(filter.DatItem_SpamSum, SpamSum))
+ if (!Filter.PassStringFilter(cleaner.DatItemFilter.SpamSum, SpamSum))
return false;
return true;
}
- ///
- /// Remove fields from the DatItem
- ///
- /// List of Fields to remove
- public override void RemoveFields(List fields)
+ ///
+ public override void RemoveFields(
+ List datItemFields,
+ List machineFields)
{
// Remove common fields first
- base.RemoveFields(fields);
+ base.RemoveFields(datItemFields, machineFields);
// Remove the fields
- if (fields.Contains(Field.DatItem_Name))
+ if (datItemFields.Contains(DatItemField.Name))
Name = null;
- if (fields.Contains(Field.DatItem_MD5))
+ if (datItemFields.Contains(DatItemField.MD5))
MD5 = null;
- if (fields.Contains(Field.DatItem_SHA1))
+ if (datItemFields.Contains(DatItemField.SHA1))
SHA1 = null;
- if (fields.Contains(Field.DatItem_SHA256))
+ if (datItemFields.Contains(DatItemField.SHA256))
SHA256 = null;
- if (fields.Contains(Field.DatItem_SpamSum))
+ if (datItemFields.Contains(DatItemField.SpamSum))
SpamSum = null;
}
@@ -467,15 +460,14 @@ namespace SabreTools.DatItems
return key;
}
- ///