Wire up remaining AttractMode fields

This commit is contained in:
Matt Nadareski
2020-08-20 21:15:37 -07:00
parent 419ea5ce31
commit d90e9ee8a1
14 changed files with 351 additions and 54 deletions

View File

@@ -21,7 +21,7 @@ namespace SabreTools.Library.DatItems
{
#region Fields
#region Standard item information
#region Common Fields
/// <summary>
/// Name of the item
@@ -43,7 +43,7 @@ namespace SabreTools.Library.DatItems
#endregion
#region Machine information
#region Machine Fields
/// <summary>
/// Machine values
@@ -53,6 +53,22 @@ namespace SabreTools.Library.DatItems
#endregion
#region AttractMode Fields
/// <summary>
/// Alternate name for the item
/// </summary>
[JsonProperty("alt_romname")]
public string AltName { get; set; }
/// <summary>
/// Alternate title for the item
/// </summary>
[JsonProperty("alt_title")]
public string AltTitle { get; set; }
#endregion
#region SoftwareList Fields
/// <summary>
@@ -110,28 +126,25 @@ namespace SabreTools.Library.DatItems
/// </summary>
public static readonly List<Field> DatItemFields = new List<Field>()
{
// Common
Field.Name,
// AttractMode
Field.AltName,
Field.AltTitle,
//SoftwareList
Field.PartName,
Field.PartInterface,
Field.Features,
Field.AreaName,
Field.AreaSize,
// BiosSet
Field.BiosDescription,
Field.Default,
Field.Language,
Field.Date,
Field.Bios,
Field.Size,
Field.Offset,
Field.Merge,
Field.Region,
Field.Index,
Field.Writable,
Field.Optional,
Field.Status,
Field.Inverted,
Field.CRC,
// Disk
Field.MD5,
#if NET_FRAMEWORK
Field.RIPEMD160,
@@ -140,6 +153,23 @@ namespace SabreTools.Library.DatItems
Field.SHA256,
Field.SHA384,
Field.SHA512,
Field.Merge,
Field.Region,
Field.Index,
Field.Writable,
Field.Optional,
Field.Status,
// Release
Field.Language,
Field.Date,
// Rom
Field.Bios,
Field.Size,
Field.CRC,
Field.Offset,
Field.Inverted,
};
/// <summary>
@@ -210,6 +240,12 @@ namespace SabreTools.Library.DatItems
case Field.Name:
fieldValue = Name;
break;
case Field.AltName:
fieldValue = AltName;
break;
case Field.AltTitle:
fieldValue = AltTitle;
break;
case Field.PartName:
fieldValue = PartName;
break;
@@ -425,11 +461,7 @@ namespace SabreTools.Library.DatItems
if (!Machine.PassesFilter(filter))
return false;
// Filter on item type
if (filter.ItemTypes.MatchesPositiveSet(ItemType.ToString()) == false)
return false;
if (filter.ItemTypes.MatchesNegativeSet(ItemType.ToString()) == true)
return false;
#region Common
// Filter on item name
if (filter.ItemName.MatchesPositiveSet(Name) == false)
@@ -437,6 +469,32 @@ namespace SabreTools.Library.DatItems
if (filter.ItemName.MatchesNegativeSet(Name) == true)
return false;
// Filter on item type
if (filter.ItemTypes.MatchesPositiveSet(ItemType.ToString()) == false)
return false;
if (filter.ItemTypes.MatchesNegativeSet(ItemType.ToString()) == true)
return false;
#endregion
#region AttractMode
// Filter on alt name
if (filter.AltName.MatchesPositiveSet(AltName) == false)
return false;
if (filter.AltName.MatchesNegativeSet(AltName) == true)
return false;
// Filter on alt title
if (filter.AltTitle.MatchesPositiveSet(AltTitle) == false)
return false;
if (filter.AltTitle.MatchesNegativeSet(AltTitle) == true)
return false;
#endregion
#region SoftwareList
// Filter on part name
if (filter.PartName.MatchesPositiveSet(PartName) == false)
return false;
@@ -463,6 +521,8 @@ namespace SabreTools.Library.DatItems
else if (filter.AreaSize.MatchesNegative(null, AreaSize) == false)
return false;
#endregion
return true;
}
@@ -475,9 +535,25 @@ namespace SabreTools.Library.DatItems
// Remove machine fields
Machine.RemoveFields(fields);
#region Common
if (fields.Contains(Field.Name))
Name = null;
#endregion
#region AttractMode
if (fields.Contains(Field.AltName))
AltName = null;
if (fields.Contains(Field.AltTitle))
AltTitle = null;
#endregion
#region SoftwareList
if (fields.Contains(Field.PartName))
PartName = null;
@@ -492,6 +568,8 @@ namespace SabreTools.Library.DatItems
if (fields.Contains(Field.AreaSize))
AreaSize = null;
#endregion
}
#endregion
@@ -574,9 +652,25 @@ namespace SabreTools.Library.DatItems
/// <param name="fields">List of Fields representing what should be updated</param>
public virtual void ReplaceFields(DatItem item, List<Field> fields)
{
#region Common
if (fields.Contains(Field.Name))
Name = item.Name;
#endregion
#region AttractMode
if (fields.Contains(Field.AltName))
AltName = item.AltName;
if (fields.Contains(Field.AltTitle))
AltTitle = item.AltTitle;
#endregion
#region SoftwareList
if (fields.Contains(Field.PartName))
PartName = item.PartName;
@@ -591,6 +685,8 @@ namespace SabreTools.Library.DatItems
if (fields.Contains(Field.AreaSize))
AreaSize = item.AreaSize;
#endregion
}
#endregion