diff --git a/SabreTools.Core/Enums.cs b/SabreTools.Core/Enums.cs index ea849e9c..ecdb35c1 100644 --- a/SabreTools.Core/Enums.cs +++ b/SabreTools.Core/Enums.cs @@ -554,6 +554,13 @@ namespace SabreTools.Core Optional, Inverted, + // Rom (Archive.org) + ArchiveDotOrgSource, + ArchiveDotOrgFormat, + OriginalFilename, + Rotation, + Summation, + // Rom (AttractMode) AltName, AltTitle, diff --git a/SabreTools.Core/Tools/Converters.cs b/SabreTools.Core/Tools/Converters.cs index 056f2a34..1ac0d132 100644 --- a/SabreTools.Core/Tools/Converters.cs +++ b/SabreTools.Core/Tools/Converters.cs @@ -413,6 +413,25 @@ namespace SabreTools.Core.Tools case "inverted": return DatItemField.Inverted; + // Rom (Archive.org) + case "ado-source": + case "ado source": + return DatItemField.ArchiveDotOrgSource; + + case "ado-format": + case "ado format": + return DatItemField.ArchiveDotOrgFormat; + + case "original-filename": + case "original filename": + return DatItemField.OriginalFilename; + + case "rotation": + return DatItemField.Rotation; + + case "summation": + return DatItemField.Summation; + // Rom (AttractMode) case "altname": case "alt name": diff --git a/SabreTools.DatFiles/Setter.cs b/SabreTools.DatFiles/Setter.cs index 05972f16..d4b61d27 100644 --- a/SabreTools.DatFiles/Setter.cs +++ b/SabreTools.DatFiles/Setter.cs @@ -1081,6 +1081,25 @@ namespace SabreTools.DatFiles #endregion + #region Archive.org + + if (DatItemMappings.Keys.Contains(DatItemField.ArchiveDotOrgSource)) + rom.ArchiveDotOrgSource = DatItemMappings[DatItemField.ArchiveDotOrgSource]; + + if (DatItemMappings.Keys.Contains(DatItemField.ArchiveDotOrgFormat)) + rom.ArchiveDotOrgFormat = DatItemMappings[DatItemField.ArchiveDotOrgFormat]; + + if (DatItemMappings.Keys.Contains(DatItemField.OriginalFilename)) + rom.OriginalFilename = DatItemMappings[DatItemField.OriginalFilename]; + + if (DatItemMappings.Keys.Contains(DatItemField.Rotation)) + rom.Rotation = DatItemMappings[DatItemField.Rotation]; + + if (DatItemMappings.Keys.Contains(DatItemField.Summation)) + rom.Summation = DatItemMappings[DatItemField.Summation]; + + #endregion + #region AttractMode if (DatItemMappings.Keys.Contains(DatItemField.AltName)) diff --git a/SabreTools.DatItems/Formats/Rom.cs b/SabreTools.DatItems/Formats/Rom.cs index 39cf63be..ed9ece3d 100644 --- a/SabreTools.DatItems/Formats/Rom.cs +++ b/SabreTools.DatItems/Formats/Rom.cs @@ -229,7 +229,7 @@ namespace SabreTools.DatItems.Formats public string Rotation { get; set; } /// - /// Image rotation + /// Summation value? /// [JsonProperty("summation", DefaultValueHandling = DefaultValueHandling.Ignore)] [XmlElement("summation")] diff --git a/SabreTools.Filtering/DatItemFilter.cs b/SabreTools.Filtering/DatItemFilter.cs index f416779c..c25889c7 100644 --- a/SabreTools.Filtering/DatItemFilter.cs +++ b/SabreTools.Filtering/DatItemFilter.cs @@ -44,6 +44,14 @@ namespace SabreTools.Filtering public FilterItem Optional { get; private set; } = new FilterItem() { Neutral = null }; public FilterItem Inverted { get; private set; } = new FilterItem(); + // Rom (Archive.org) + public FilterItem ArchiveDotOrgSource { get; private set; } = new FilterItem(); + public FilterItem ArchiveDotOrgFormat { get; private set; } = new FilterItem(); + public FilterItem OriginalFilename { get; private set; } = new FilterItem(); + public FilterItem Rotation { get; private set; } = new FilterItem(); + public FilterItem Summation { get; private set; } = new FilterItem(); + + // Rom (AttractMode) public FilterItem AltName { get; private set; } = new FilterItem(); public FilterItem AltTitle { get; private set; } = new FilterItem(); @@ -326,6 +334,27 @@ namespace SabreTools.Filtering SetBooleanFilter(Inverted, value, negate); break; + // Rom (Archive.org) + case DatItemField.ArchiveDotOrgSource: + SetStringFilter(ArchiveDotOrgSource, value, negate); + break; + + case DatItemField.ArchiveDotOrgFormat: + SetStringFilter(ArchiveDotOrgFormat, value, negate); + break; + + case DatItemField.OriginalFilename: + SetStringFilter(OriginalFilename, value, negate); + break; + + case DatItemField.Rotation: + SetStringFilter(Rotation, value, negate); + break; + + case DatItemField.Summation: + SetStringFilter(Summation, value, negate); + break; + // Rom (AttractMode) case DatItemField.AltName: SetStringFilter(AltName, value, negate); @@ -1754,6 +1783,30 @@ namespace SabreTools.Filtering #endregion + #region Archive.org + + // Filter on file source + if (!PassStringFilter(ArchiveDotOrgSource, rom.ArchiveDotOrgSource)) + return false; + + // Filter on file format + if (!PassStringFilter(ArchiveDotOrgFormat, rom.ArchiveDotOrgFormat)) + return false; + + // Filter on original filename + if (!PassStringFilter(OriginalFilename, rom.OriginalFilename)) + return false; + + // Filter on rotation + if (!PassStringFilter(Rotation, rom.Rotation)) + return false; + + // Filter on summation + if (!PassStringFilter(Summation, rom.Summation)) + return false; + + #endregion + #region AttractMode // Filter on alt name diff --git a/SabreTools.Filtering/DatItemRemover.cs b/SabreTools.Filtering/DatItemRemover.cs index 68a12537..760d6b3c 100644 --- a/SabreTools.Filtering/DatItemRemover.cs +++ b/SabreTools.Filtering/DatItemRemover.cs @@ -921,6 +921,25 @@ namespace SabreTools.Filtering #endregion + #region Archive.org + + if (DatItemFields.Contains(DatItemField.ArchiveDotOrgSource)) + rom.ArchiveDotOrgSource = null; + + if (DatItemFields.Contains(DatItemField.ArchiveDotOrgFormat)) + rom.ArchiveDotOrgFormat = null; + + if (DatItemFields.Contains(DatItemField.OriginalFilename)) + rom.OriginalFilename = null; + + if (DatItemFields.Contains(DatItemField.Rotation)) + rom.Rotation = null; + + if (DatItemFields.Contains(DatItemField.Summation)) + rom.Summation = null; + + #endregion + #region AttractMode if (DatItemFields.Contains(DatItemField.AltName)) diff --git a/SabreTools.Filtering/Replacer.cs b/SabreTools.Filtering/Replacer.cs index 595f6f3f..8534cf63 100644 --- a/SabreTools.Filtering/Replacer.cs +++ b/SabreTools.Filtering/Replacer.cs @@ -910,6 +910,25 @@ namespace SabreTools.Filtering #endregion + #region Archive.org + + if (datItemFields.Contains(DatItemField.ArchiveDotOrgSource)) + rom.ArchiveDotOrgSource = newItem.ArchiveDotOrgSource; + + if (datItemFields.Contains(DatItemField.ArchiveDotOrgFormat)) + rom.ArchiveDotOrgFormat = newItem.ArchiveDotOrgFormat; + + if (datItemFields.Contains(DatItemField.OriginalFilename)) + rom.OriginalFilename = newItem.OriginalFilename; + + if (datItemFields.Contains(DatItemField.Rotation)) + rom.Rotation = newItem.Rotation; + + if (datItemFields.Contains(DatItemField.Summation)) + rom.Summation = newItem.Summation; + + #endregion + #region AttractMode if (datItemFields.Contains(DatItemField.AltName))