All AttractMode fields are Rom-only

This commit is contained in:
Matt Nadareski
2020-09-03 13:01:33 -07:00
parent 40384a0dd6
commit 10de9f3430
34 changed files with 98 additions and 197 deletions

View File

@@ -94,17 +94,14 @@ namespace SabreTools.Library.DatItems
{
return new Adjuster()
{
Name = this.Name,
ItemType = this.ItemType,
DupeType = this.DupeType,
AltName = this.AltName,
AltTitle = this.AltTitle,
Machine = this.Machine.Clone() as Machine,
Source = this.Source.Clone() as Source,
Remove = this.Remove,
Name = this.Name,
Default = this.Default,
Conditions = this.Conditions,
};

View File

@@ -61,9 +61,6 @@ namespace SabreTools.Library.DatItems
ItemType = this.ItemType,
DupeType = this.DupeType,
AltName = this.AltName,
AltTitle = this.AltTitle,
Machine = this.Machine.Clone() as Machine,
Source = this.Source.Clone() as Source,
Remove = this.Remove,

View File

@@ -70,16 +70,14 @@ namespace SabreTools.Library.DatItems
{
return new Archive()
{
Name = this.Name,
ItemType = this.ItemType,
DupeType = this.DupeType,
AltName = this.AltName,
AltTitle = this.AltTitle,
Machine = this.Machine.Clone() as Machine,
Source = this.Source.Clone() as Source,
Remove = this.Remove,
Name = this.Name,
};
}

View File

@@ -88,17 +88,14 @@ namespace SabreTools.Library.DatItems
{
return new BiosSet()
{
Name = this.Name,
ItemType = this.ItemType,
DupeType = this.DupeType,
AltName = this.AltName,
AltTitle = this.AltTitle,
Machine = this.Machine.Clone() as Machine,
Source = this.Source.Clone() as Source,
Remove = this.Remove,
Name = this.Name,
Description = this.Description,
Default = this.Default,
};

View File

@@ -29,9 +29,6 @@ namespace SabreTools.Library.DatItems
ItemType = this.ItemType,
DupeType = this.DupeType,
AltName = this.AltName,
AltTitle = this.AltTitle,
Machine = this.Machine.Clone() as Machine,
Source = this.Source.Clone() as Source,
Remove = this.Remove,

View File

@@ -99,17 +99,14 @@ namespace SabreTools.Library.DatItems
{
return new Chip()
{
Name = this.Name,
ItemType = this.ItemType,
DupeType = this.DupeType,
AltName = this.AltName,
AltTitle = this.AltTitle,
Machine = this.Machine.Clone() as Machine,
Source = this.Source.Clone() as Source,
Remove = this.Remove,
Name = this.Name,
Tag = this.Tag,
ChipType = this.ChipType,
Clock = this.Clock,

View File

@@ -96,9 +96,6 @@ namespace SabreTools.Library.DatItems
ItemType = this.ItemType,
DupeType = this.DupeType,
AltName = this.AltName,
AltTitle = this.AltTitle,
Machine = this.Machine.Clone() as Machine,
Source = this.Source.Clone() as Source,
Remove = this.Remove,

View File

@@ -133,17 +133,14 @@ namespace SabreTools.Library.DatItems
{
return new Configuration()
{
Name = this.Name,
ItemType = this.ItemType,
DupeType = this.DupeType,
AltName = this.AltName,
AltTitle = this.AltTitle,
Machine = this.Machine.Clone() as Machine,
Source = this.Source.Clone() as Source,
Remove = this.Remove,
Name = this.Name,
Tag = this.Tag,
Mask = this.Mask,
Conditions = this.Conditions,

View File

@@ -161,9 +161,6 @@ namespace SabreTools.Library.DatItems
ItemType = this.ItemType,
DupeType = this.DupeType,
AltName = this.AltName,
AltTitle = this.AltTitle,
Machine = this.Machine.Clone() as Machine,
Source = this.Source.Clone() as Source,
Remove = this.Remove,

View File

@@ -19,8 +19,6 @@ namespace SabreTools.Library.DatItems
[JsonObject("datitem")]
public abstract class DatItem : IEquatable<DatItem>, IComparable<DatItem>, ICloneable
{
// TODO: Should any of these be specific to certain types?
// Most of the "weird" fields might only apply to Rom or Disk?
#region Fields
#region Common Fields
@@ -50,22 +48,6 @@ namespace SabreTools.Library.DatItems
#endregion
#region AttractMode Fields
/// <summary>
/// Alternate name for the item
/// </summary>
[JsonProperty("alt_romname", DefaultValueHandling = DefaultValueHandling.Ignore)]
public string AltName { get; set; }
/// <summary>
/// Alternate title for the item
/// </summary>
[JsonProperty("alt_title", DefaultValueHandling = DefaultValueHandling.Ignore)]
public string AltTitle { get; set; }
#endregion
#region Metadata information
/// <summary>
@@ -291,16 +273,6 @@ namespace SabreTools.Library.DatItems
Machine = new Machine();
Machine.SetFields(mappings);
#region AttractMode
if (mappings.Keys.Contains(Field.DatItem_AltName))
AltName = mappings[Field.DatItem_AltName];
if (mappings.Keys.Contains(Field.DatItem_AltTitle))
AltTitle = mappings[Field.DatItem_AltTitle];
#endregion
}
#endregion
@@ -629,22 +601,6 @@ namespace SabreTools.Library.DatItems
#endregion
#region AttractMode
// Filter on alt name
if (filter.DatItem_AltName.MatchesPositiveSet(AltName) == false)
return false;
if (filter.DatItem_AltName.MatchesNegativeSet(AltName) == true)
return false;
// Filter on alt title
if (filter.DatItem_AltTitle.MatchesPositiveSet(AltTitle) == false)
return false;
if (filter.DatItem_AltTitle.MatchesNegativeSet(AltTitle) == true)
return false;
#endregion
return true;
}
@@ -656,16 +612,6 @@ namespace SabreTools.Library.DatItems
{
// Remove machine fields
Machine.RemoveFields(fields);
#region AttractMode
if (fields.Contains(Field.DatItem_AltName))
AltName = null;
if (fields.Contains(Field.DatItem_AltTitle))
AltTitle = null;
#endregion
}
/// <summary>
@@ -755,15 +701,6 @@ 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 AttractMode
if (fields.Contains(Field.DatItem_AltName))
AltName = item.AltName;
if (fields.Contains(Field.DatItem_AltTitle))
AltTitle = item.AltTitle;
#endregion
}
#endregion

View File

@@ -112,9 +112,6 @@ namespace SabreTools.Library.DatItems
ItemType = this.ItemType,
DupeType = this.DupeType,
AltName = this.AltName,
AltTitle = this.AltTitle,
Machine = this.Machine.Clone() as Machine,
Source = this.Source.Clone() as Source,
Remove = this.Remove,

View File

@@ -70,16 +70,14 @@ namespace SabreTools.Library.DatItems
{
return new DeviceReference()
{
Name = this.Name,
ItemType = this.ItemType,
DupeType = this.DupeType,
AltName = this.AltName,
AltTitle = this.AltTitle,
Machine = this.Machine.Clone() as Machine,
Source = this.Source.Clone() as Source,
Remove = this.Remove,
Name = this.Name,
};
}

View File

@@ -155,9 +155,6 @@ namespace SabreTools.Library.DatItems
ItemType = this.ItemType,
DupeType = this.DupeType,
AltName = this.AltName,
AltTitle = this.AltTitle,
Machine = this.Machine.Clone() as Machine,
Source = this.Source.Clone() as Source,
Remove = this.Remove,

View File

@@ -227,9 +227,6 @@ namespace SabreTools.Library.DatItems
ItemType = this.ItemType,
DupeType = this.DupeType,
AltName = this.AltName,
AltTitle = this.AltTitle,
Machine = this.Machine.Clone() as Machine,
Source = this.Source.Clone() as Source,
Remove = this.Remove,
@@ -260,9 +257,6 @@ namespace SabreTools.Library.DatItems
ItemType = ItemType.Rom,
DupeType = this.DupeType,
AltName = this.AltName,
AltTitle = this.AltTitle,
Machine = this.Machine.Clone() as Machine,
Source = this.Source.Clone() as Source,
Remove = this.Remove,

View File

@@ -178,9 +178,6 @@ namespace SabreTools.Library.DatItems
ItemType = this.ItemType,
DupeType = this.DupeType,
AltName = this.AltName,
AltTitle = this.AltTitle,
Machine = this.Machine.Clone() as Machine,
Source = this.Source.Clone() as Source,
Remove = this.Remove,

View File

@@ -94,9 +94,6 @@ namespace SabreTools.Library.DatItems
ItemType = this.ItemType,
DupeType = this.DupeType,
AltName = this.AltName,
AltTitle = this.AltTitle,
Machine = this.Machine.Clone() as Machine,
Source = this.Source.Clone() as Source,
Remove = this.Remove,

View File

@@ -70,16 +70,14 @@ namespace SabreTools.Library.DatItems
{
return new Extension()
{
Name = this.Name,
ItemType = this.ItemType,
DupeType = this.DupeType,
AltName = this.AltName,
AltTitle = this.AltTitle,
Machine = this.Machine.Clone() as Machine,
Source = this.Source.Clone() as Source,
Remove = this.Remove,
Name = this.Name,
};
}

View File

@@ -84,9 +84,6 @@ namespace SabreTools.Library.DatItems
ItemType = this.ItemType,
DupeType = this.DupeType,
AltName = this.AltName,
AltTitle = this.AltTitle,
Machine = this.Machine.Clone() as Machine,
Source = this.Source.Clone() as Source,
Remove = this.Remove,

View File

@@ -78,17 +78,14 @@ namespace SabreTools.Library.DatItems
{
return new Info()
{
Name = this.Name,
ItemType = this.ItemType,
DupeType = this.DupeType,
AltName = this.AltName,
AltTitle = this.AltTitle,
Machine = this.Machine.Clone() as Machine,
Source = this.Source.Clone() as Source,
Remove = this.Remove,
Name = this.Name,
Value = this.Value,
};
}

View File

@@ -96,9 +96,6 @@ namespace SabreTools.Library.DatItems
ItemType = this.ItemType,
DupeType = this.DupeType,
AltName = this.AltName,
AltTitle = this.AltTitle,
Machine = this.Machine.Clone() as Machine,
Source = this.Source.Clone() as Source,
Remove = this.Remove,

View File

@@ -79,17 +79,14 @@ namespace SabreTools.Library.DatItems
{
return new Instance()
{
Name = this.Name,
ItemType = this.ItemType,
DupeType = this.DupeType,
AltName = this.AltName,
AltTitle = this.AltTitle,
Machine = this.Machine.Clone() as Machine,
Source = this.Source.Clone() as Source,
Remove = this.Remove,
Name = this.Name,
BriefName = this.BriefName,
};
}

View File

@@ -87,17 +87,14 @@ namespace SabreTools.Library.DatItems
{
return new Location()
{
Name = this.Name,
ItemType = this.ItemType,
DupeType = this.DupeType,
AltName = this.AltName,
AltTitle = this.AltTitle,
Machine = this.Machine.Clone() as Machine,
Source = this.Source.Clone() as Source,
Remove = this.Remove,
Name = this.Name,
Number = this.Number,
Inverted = this.Inverted,
};

View File

@@ -135,17 +135,14 @@ namespace SabreTools.Library.DatItems
{
return new Media()
{
Name = this.Name,
ItemType = this.ItemType,
DupeType = this.DupeType,
AltName = this.AltName,
AltTitle = this.AltTitle,
Machine = this.Machine.Clone() as Machine,
Source = this.Source.Clone() as Source,
Remove = this.Remove,
Name = this.Name,
_md5 = this._md5,
_sha1 = this._sha1,
_sha256 = this._sha256,
@@ -160,17 +157,14 @@ namespace SabreTools.Library.DatItems
{
var rom = new Rom()
{
Name = this.Name + ".aif",
ItemType = ItemType.Rom,
DupeType = this.DupeType,
AltName = this.AltName,
AltTitle = this.AltTitle,
Machine = this.Machine.Clone() as Machine,
Source = this.Source.Clone() as Source,
Remove = this.Remove,
Name = this.Name + ".aif",
MD5 = this.MD5,
SHA1 = this.SHA1,
SHA256 = this.SHA256,

View File

@@ -71,9 +71,6 @@ namespace SabreTools.Library.DatItems
ItemType = this.ItemType,
DupeType = this.DupeType,
AltName = this.AltName,
AltTitle = this.AltTitle,
Machine = this.Machine.Clone() as Machine,
Source = this.Source.Clone() as Source,
Remove = this.Remove,

View File

@@ -88,17 +88,14 @@ namespace SabreTools.Library.DatItems
{
return new RamOption()
{
Name = this.Name,
ItemType = this.ItemType,
DupeType = this.DupeType,
AltName = this.AltName,
AltTitle = this.AltTitle,
Machine = this.Machine.Clone() as Machine,
Source = this.Source.Clone() as Source,
Remove = this.Remove,
Name = this.Name,
Default = this.Default,
Content = this.Content,
};

View File

@@ -110,17 +110,14 @@ namespace SabreTools.Library.DatItems
{
return new Release()
{
Name = this.Name,
ItemType = this.ItemType,
DupeType = this.DupeType,
AltName = this.AltName,
AltTitle = this.AltTitle,
Machine = this.Machine.Clone() as Machine,
Source = this.Source.Clone() as Source,
Remove = this.Remove,
Name = this.Name,
Region = this.Region,
Language = this.Language,
Date = this.Date,

View File

@@ -171,6 +171,22 @@ namespace SabreTools.Library.DatItems
#endregion
#region AttractMode
/// <summary>
/// Alternate name for the item
/// </summary>
[JsonProperty("alt_romname", DefaultValueHandling = DefaultValueHandling.Ignore)]
public string AltName { get; set; }
/// <summary>
/// Alternate title for the item
/// </summary>
[JsonProperty("alt_title", DefaultValueHandling = DefaultValueHandling.Ignore)]
public string AltTitle { get; set; }
#endregion
#region OpenMSX
/// <summary>
@@ -320,6 +336,16 @@ namespace SabreTools.Library.DatItems
#endregion
#region AttractMode
if (mappings.Keys.Contains(Field.DatItem_AltName))
AltName = mappings[Field.DatItem_AltName];
if (mappings.Keys.Contains(Field.DatItem_AltTitle))
AltTitle = mappings[Field.DatItem_AltTitle];
#endregion
#region OpenMSX
if (mappings.Keys.Contains(Field.DatItem_Original))
@@ -472,17 +498,6 @@ namespace SabreTools.Library.DatItems
ItemType = this.ItemType,
DupeType = this.DupeType,
AltName = this.AltName,
AltTitle = this.AltTitle,
Original = this.Original,
OpenMSXSubType = this.OpenMSXSubType,
OpenMSXType = this.OpenMSXType,
Remark = this.Remark,
Boot = this.Boot,
LoadFlag = this.LoadFlag,
Machine = this.Machine.Clone() as Machine,
Source = this.Source.Clone() as Source,
Remove = this.Remove,
@@ -506,7 +521,17 @@ namespace SabreTools.Library.DatItems
Optional = this.Optional,
Inverted = this.Inverted,
AltName = this.AltName,
AltTitle = this.AltTitle,
Original = this.Original,
OpenMSXSubType = this.OpenMSXSubType,
OpenMSXType = this.OpenMSXType,
Remark = this.Remark,
Boot = this.Boot,
DataArea = this.DataArea,
LoadFlag = this.LoadFlag,
Part = this.Part,
Value = this.Value,
};
@@ -815,6 +840,22 @@ namespace SabreTools.Library.DatItems
#endregion
#region AttractMode
// Filter on alt name
if (filter.DatItem_AltName.MatchesPositiveSet(AltName) == false)
return false;
if (filter.DatItem_AltName.MatchesNegativeSet(AltName) == true)
return false;
// Filter on alt title
if (filter.DatItem_AltTitle.MatchesPositiveSet(AltTitle) == false)
return false;
if (filter.DatItem_AltTitle.MatchesNegativeSet(AltTitle) == true)
return false;
#endregion
#region OpenMSX
// Filter on original
@@ -976,6 +1017,16 @@ namespace SabreTools.Library.DatItems
#endregion
#region AttractMode
if (fields.Contains(Field.DatItem_AltName))
AltName = null;
if (fields.Contains(Field.DatItem_AltTitle))
AltTitle = null;
#endregion
#region OpenMSX
if (fields.Contains(Field.DatItem_Original))
@@ -1209,6 +1260,16 @@ namespace SabreTools.Library.DatItems
#endregion
#region AttractMode
if (fields.Contains(Field.DatItem_AltName))
AltName = newItem.AltName;
if (fields.Contains(Field.DatItem_AltTitle))
AltTitle = newItem.AltTitle;
#endregion
#region OpenMSX
if (fields.Contains(Field.DatItem_Original))

View File

@@ -70,16 +70,14 @@ namespace SabreTools.Library.DatItems
{
return new Sample()
{
Name = this.Name,
ItemType = this.ItemType,
DupeType = this.DupeType,
AltName = this.AltName,
AltTitle = this.AltTitle,
Machine = this.Machine.Clone() as Machine,
Source = this.Source.Clone() as Source,
Remove = this.Remove,
Name = this.Name,
};
}

View File

@@ -1,9 +1,10 @@
using System.Collections.Generic;
using System.IO;
using System.Linq;
using SabreTools.Library.Filtering;
using Newtonsoft.Json;
using SabreTools.Library.Tools;
using Newtonsoft.Json;
namespace SabreTools.Library.DatItems
{
@@ -102,17 +103,14 @@ namespace SabreTools.Library.DatItems
{
return new Setting()
{
Name = this.Name,
ItemType = this.ItemType,
DupeType = this.DupeType,
AltName = this.AltName,
AltTitle = this.AltTitle,
Machine = this.Machine.Clone() as Machine,
Source = this.Source.Clone() as Source,
Remove = this.Remove,
Name = this.Name,
Value = this.Value,
Default = this.Default,
Conditions = this.Conditions,

View File

@@ -78,17 +78,14 @@ namespace SabreTools.Library.DatItems
{
return new SharedFeature()
{
Name = this.Name,
ItemType = this.ItemType,
DupeType = this.DupeType,
AltName = this.AltName,
AltTitle = this.AltTitle,
Machine = this.Machine.Clone() as Machine,
Source = this.Source.Clone() as Source,
Remove = this.Remove,
Name = this.Name,
Value = this.Value,
};
}

View File

@@ -78,17 +78,14 @@ namespace SabreTools.Library.DatItems
{
return new Slot()
{
Name = this.Name,
ItemType = this.ItemType,
DupeType = this.DupeType,
AltName = this.AltName,
AltTitle = this.AltTitle,
Machine = this.Machine.Clone() as Machine,
Source = this.Source.Clone() as Source,
Remove = this.Remove,
Name = this.Name,
SlotOptions = this.SlotOptions,
};
}

View File

@@ -87,17 +87,14 @@ namespace SabreTools.Library.DatItems
{
return new SlotOption()
{
Name = this.Name,
ItemType = this.ItemType,
DupeType = this.DupeType,
AltName = this.AltName,
AltTitle = this.AltTitle,
Machine = this.Machine.Clone() as Machine,
Source = this.Source.Clone() as Source,
Remove = this.Remove,
Name = this.Name,
DeviceName = this.DeviceName,
Default = this.Default,
};

View File

@@ -90,17 +90,14 @@ namespace SabreTools.Library.DatItems
{
return new SoftwareList()
{
Name = this.Name,
ItemType = this.ItemType,
DupeType = this.DupeType,
AltName = this.AltName,
AltTitle = this.AltTitle,
Machine = this.Machine.Clone() as Machine,
Source = this.Source.Clone() as Source,
Remove = this.Remove,
Name = this.Name,
Status = this.Status,
Filter = this.Filter,
};

View File

@@ -61,9 +61,6 @@ namespace SabreTools.Library.DatItems
ItemType = this.ItemType,
DupeType = this.DupeType,
AltName = this.AltName,
AltTitle = this.AltTitle,
Machine = this.Machine.Clone() as Machine,
Source = this.Source.Clone() as Source,
Remove = this.Remove,