mirror of
https://github.com/claunia/SabreTools.git
synced 2025-12-16 19:14:27 +00:00
Wire up remaining AttractMode fields
This commit is contained in:
@@ -99,6 +99,9 @@ namespace SabreTools.Library.DatFiles
|
|||||||
Buttons = gameinfo[16],
|
Buttons = gameinfo[16],
|
||||||
},
|
},
|
||||||
|
|
||||||
|
AltName = gameinfo[13],
|
||||||
|
AltTitle = gameinfo[14],
|
||||||
|
|
||||||
Source = new Source
|
Source = new Source
|
||||||
{
|
{
|
||||||
Index = indexId,
|
Index = indexId,
|
||||||
@@ -277,8 +280,8 @@ namespace SabreTools.Library.DatFiles
|
|||||||
datItem.GetField(Field.Status, Header.ExcludeFields),
|
datItem.GetField(Field.Status, Header.ExcludeFields),
|
||||||
datItem.GetField(Field.DisplayCount, Header.ExcludeFields),
|
datItem.GetField(Field.DisplayCount, Header.ExcludeFields),
|
||||||
datItem.GetField(Field.DisplayType, Header.ExcludeFields),
|
datItem.GetField(Field.DisplayType, Header.ExcludeFields),
|
||||||
string.Empty, // datItem.GetField(Field.AltRomname, Header.ExcludeFields),
|
datItem.GetField(Field.AltName, Header.ExcludeFields),
|
||||||
string.Empty, // datItem.GetField(Field.AltTitle, Header.ExcludeFields),
|
datItem.GetField(Field.AltTitle, Header.ExcludeFields),
|
||||||
datItem.GetField(Field.Comment, Header.ExcludeFields),
|
datItem.GetField(Field.Comment, Header.ExcludeFields),
|
||||||
datItem.GetField(Field.Buttons, Header.ExcludeFields),
|
datItem.GetField(Field.Buttons, Header.ExcludeFields),
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -665,6 +665,8 @@ namespace SabreTools.Library.DatFiles
|
|||||||
long size = -1;
|
long size = -1;
|
||||||
long? areaSize = null;
|
long? areaSize = null;
|
||||||
string name = null,
|
string name = null,
|
||||||
|
altName = null,
|
||||||
|
altTitle = null,
|
||||||
partName = null,
|
partName = null,
|
||||||
partInterface = null,
|
partInterface = null,
|
||||||
areaName = null,
|
areaName = null,
|
||||||
@@ -702,6 +704,8 @@ namespace SabreTools.Library.DatFiles
|
|||||||
datItem.Source = new Source { Index = indexId, Name = filename };
|
datItem.Source = new Source { Index = indexId, Name = filename };
|
||||||
|
|
||||||
datItem.Name = name;
|
datItem.Name = name;
|
||||||
|
datItem.AltName = altName;
|
||||||
|
datItem.AltTitle = altTitle;
|
||||||
datItem.PartName = partName;
|
datItem.PartName = partName;
|
||||||
datItem.PartInterface = partInterface;
|
datItem.PartInterface = partInterface;
|
||||||
datItem.Features = features;
|
datItem.Features = features;
|
||||||
@@ -781,6 +785,14 @@ namespace SabreTools.Library.DatFiles
|
|||||||
name = jtr.ReadAsString();
|
name = jtr.ReadAsString();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case "alt_romname":
|
||||||
|
altName = jtr.ReadAsString();
|
||||||
|
break;
|
||||||
|
|
||||||
|
case "alt_title":
|
||||||
|
altTitle = jtr.ReadAsString();
|
||||||
|
break;
|
||||||
|
|
||||||
case "partname":
|
case "partname":
|
||||||
partName = jtr.ReadAsString();
|
partName = jtr.ReadAsString();
|
||||||
break;
|
break;
|
||||||
@@ -1841,6 +1853,16 @@ namespace SabreTools.Library.DatFiles
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.AltName, Header.ExcludeFields)))
|
||||||
|
{
|
||||||
|
jtw.WritePropertyName("alt_romname");
|
||||||
|
jtw.WriteValue(datItem.AltName);
|
||||||
|
}
|
||||||
|
if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.AltTitle, Header.ExcludeFields)))
|
||||||
|
{
|
||||||
|
jtw.WritePropertyName("alt_title");
|
||||||
|
jtw.WriteValue(datItem.AltTitle);
|
||||||
|
}
|
||||||
if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.PartName, Header.ExcludeFields)))
|
if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.PartName, Header.ExcludeFields)))
|
||||||
{
|
{
|
||||||
jtw.WritePropertyName("partname");
|
jtw.WritePropertyName("partname");
|
||||||
|
|||||||
@@ -82,6 +82,8 @@ namespace SabreTools.Library.DatFiles
|
|||||||
optional = null,
|
optional = null,
|
||||||
inverted = null;
|
inverted = null;
|
||||||
string name = null,
|
string name = null,
|
||||||
|
altName = null,
|
||||||
|
altTitle = null,
|
||||||
partName = null,
|
partName = null,
|
||||||
partInterface = null,
|
partInterface = null,
|
||||||
areaName = null,
|
areaName = null,
|
||||||
@@ -425,14 +427,32 @@ namespace SabreTools.Library.DatFiles
|
|||||||
|
|
||||||
#region DatItem
|
#region DatItem
|
||||||
|
|
||||||
case "DatItem.Type":
|
#region Common
|
||||||
itemType = value.AsItemType() ?? ItemType.Rom;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case "DatItem.Name":
|
case "DatItem.Name":
|
||||||
name = value;
|
name = value;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case "DatItem.Type":
|
||||||
|
itemType = value.AsItemType() ?? ItemType.Rom;
|
||||||
|
break;
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region AttractMode
|
||||||
|
|
||||||
|
case "DatItem.AltName":
|
||||||
|
altName = value;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case "DatItem.AltTitle":
|
||||||
|
altTitle = value;
|
||||||
|
break;
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region SoftwareList
|
||||||
|
|
||||||
case "DatItem.PartName":
|
case "DatItem.PartName":
|
||||||
partName = value;
|
partName = value;
|
||||||
break;
|
break;
|
||||||
@@ -464,6 +484,8 @@ namespace SabreTools.Library.DatFiles
|
|||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
case "DatItem.Default":
|
case "DatItem.Default":
|
||||||
def = value.AsYesNo();
|
def = value.AsYesNo();
|
||||||
break;
|
break;
|
||||||
@@ -552,7 +574,7 @@ namespace SabreTools.Library.DatFiles
|
|||||||
inverted = value.AsYesNo();
|
inverted = value.AsYesNo();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
#endregion
|
#endregion // DatItem
|
||||||
|
|
||||||
case "INVALID":
|
case "INVALID":
|
||||||
default:
|
default:
|
||||||
@@ -568,6 +590,8 @@ namespace SabreTools.Library.DatFiles
|
|||||||
Archive archive = new Archive()
|
Archive archive = new Archive()
|
||||||
{
|
{
|
||||||
Name = name,
|
Name = name,
|
||||||
|
AltName = altName,
|
||||||
|
AltTitle = altTitle,
|
||||||
PartName = partName,
|
PartName = partName,
|
||||||
PartInterface = partInterface,
|
PartInterface = partInterface,
|
||||||
Features = features,
|
Features = features,
|
||||||
@@ -589,6 +613,8 @@ namespace SabreTools.Library.DatFiles
|
|||||||
BiosSet biosset = new BiosSet()
|
BiosSet biosset = new BiosSet()
|
||||||
{
|
{
|
||||||
Name = name,
|
Name = name,
|
||||||
|
AltName = altName,
|
||||||
|
AltTitle = altTitle,
|
||||||
PartName = partName,
|
PartName = partName,
|
||||||
PartInterface = partInterface,
|
PartInterface = partInterface,
|
||||||
Features = features,
|
Features = features,
|
||||||
@@ -613,6 +639,8 @@ namespace SabreTools.Library.DatFiles
|
|||||||
Disk disk = new Disk()
|
Disk disk = new Disk()
|
||||||
{
|
{
|
||||||
Name = name,
|
Name = name,
|
||||||
|
AltName = altName,
|
||||||
|
AltTitle = altTitle,
|
||||||
PartName = partName,
|
PartName = partName,
|
||||||
PartInterface = partInterface,
|
PartInterface = partInterface,
|
||||||
Features = features,
|
Features = features,
|
||||||
@@ -649,6 +677,8 @@ namespace SabreTools.Library.DatFiles
|
|||||||
Release release = new Release()
|
Release release = new Release()
|
||||||
{
|
{
|
||||||
Name = name,
|
Name = name,
|
||||||
|
AltName = altName,
|
||||||
|
AltTitle = altTitle,
|
||||||
PartName = partName,
|
PartName = partName,
|
||||||
PartInterface = partInterface,
|
PartInterface = partInterface,
|
||||||
Features = features,
|
Features = features,
|
||||||
@@ -675,6 +705,8 @@ namespace SabreTools.Library.DatFiles
|
|||||||
Rom rom = new Rom()
|
Rom rom = new Rom()
|
||||||
{
|
{
|
||||||
Name = name,
|
Name = name,
|
||||||
|
AltName = altName,
|
||||||
|
AltTitle = altTitle,
|
||||||
PartName = partName,
|
PartName = partName,
|
||||||
PartInterface = partInterface,
|
PartInterface = partInterface,
|
||||||
Features = features,
|
Features = features,
|
||||||
@@ -715,6 +747,8 @@ namespace SabreTools.Library.DatFiles
|
|||||||
Sample sample = new Sample()
|
Sample sample = new Sample()
|
||||||
{
|
{
|
||||||
Name = name,
|
Name = name,
|
||||||
|
AltName = altName,
|
||||||
|
AltTitle = altTitle,
|
||||||
PartName = partName,
|
PartName = partName,
|
||||||
PartInterface = partInterface,
|
PartInterface = partInterface,
|
||||||
Features = features,
|
Features = features,
|
||||||
@@ -1066,6 +1100,8 @@ namespace SabreTools.Library.DatFiles
|
|||||||
|
|
||||||
#region DatItem
|
#region DatItem
|
||||||
|
|
||||||
|
#region Common
|
||||||
|
|
||||||
case "itemtype":
|
case "itemtype":
|
||||||
case "item type":
|
case "item type":
|
||||||
case "type":
|
case "type":
|
||||||
@@ -1083,6 +1119,30 @@ namespace SabreTools.Library.DatFiles
|
|||||||
case "rom name":
|
case "rom name":
|
||||||
return "DatItem.Name";
|
return "DatItem.Name";
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region AttractMode
|
||||||
|
|
||||||
|
case "altname":
|
||||||
|
case "alt name":
|
||||||
|
case "alt-name":
|
||||||
|
case "altromname":
|
||||||
|
case "alt romname":
|
||||||
|
case "alt-romname":
|
||||||
|
return "DatItem.AltName";
|
||||||
|
|
||||||
|
case "alttitle":
|
||||||
|
case "alt title":
|
||||||
|
case "alt-title":
|
||||||
|
case "altromtitle":
|
||||||
|
case "alt romtitle":
|
||||||
|
case "alt-romtitle":
|
||||||
|
return "DatItem.AltTitle";
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region SoftwareList
|
||||||
|
|
||||||
case "partname":
|
case "partname":
|
||||||
case "part name":
|
case "part name":
|
||||||
return "DatItem.PartName";
|
return "DatItem.PartName";
|
||||||
@@ -1102,6 +1162,8 @@ namespace SabreTools.Library.DatFiles
|
|||||||
case "area size":
|
case "area size":
|
||||||
return "DatItem.AreaSize";
|
return "DatItem.AreaSize";
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
case "default":
|
case "default":
|
||||||
return "DatItem.Default";
|
return "DatItem.Default";
|
||||||
|
|
||||||
@@ -1190,7 +1252,7 @@ namespace SabreTools.Library.DatFiles
|
|||||||
case "inverted":
|
case "inverted":
|
||||||
return "DatItem.Inverted";
|
return "DatItem.Inverted";
|
||||||
|
|
||||||
#endregion
|
#endregion // DatItem
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return "INVALID";
|
return "INVALID";
|
||||||
|
|||||||
@@ -28,6 +28,9 @@
|
|||||||
ItemType = this.ItemType,
|
ItemType = this.ItemType,
|
||||||
DupeType = this.DupeType,
|
DupeType = this.DupeType,
|
||||||
|
|
||||||
|
AltName = this.AltName,
|
||||||
|
AltTitle = this.AltTitle,
|
||||||
|
|
||||||
PartName = this.PartName,
|
PartName = this.PartName,
|
||||||
PartInterface = this.PartInterface,
|
PartInterface = this.PartInterface,
|
||||||
Features = this.Features,
|
Features = this.Features,
|
||||||
|
|||||||
@@ -85,6 +85,9 @@ namespace SabreTools.Library.DatItems
|
|||||||
ItemType = this.ItemType,
|
ItemType = this.ItemType,
|
||||||
DupeType = this.DupeType,
|
DupeType = this.DupeType,
|
||||||
|
|
||||||
|
AltName = this.AltName,
|
||||||
|
AltTitle = this.AltTitle,
|
||||||
|
|
||||||
PartName = this.PartName,
|
PartName = this.PartName,
|
||||||
PartInterface = this.PartInterface,
|
PartInterface = this.PartInterface,
|
||||||
Features = this.Features,
|
Features = this.Features,
|
||||||
|
|||||||
@@ -28,6 +28,9 @@
|
|||||||
ItemType = this.ItemType,
|
ItemType = this.ItemType,
|
||||||
DupeType = this.DupeType,
|
DupeType = this.DupeType,
|
||||||
|
|
||||||
|
AltName = this.AltName,
|
||||||
|
AltTitle = this.AltTitle,
|
||||||
|
|
||||||
PartName = this.PartName,
|
PartName = this.PartName,
|
||||||
PartInterface = this.PartInterface,
|
PartInterface = this.PartInterface,
|
||||||
Features = this.Features,
|
Features = this.Features,
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ namespace SabreTools.Library.DatItems
|
|||||||
{
|
{
|
||||||
#region Fields
|
#region Fields
|
||||||
|
|
||||||
#region Standard item information
|
#region Common Fields
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Name of the item
|
/// Name of the item
|
||||||
@@ -43,7 +43,7 @@ namespace SabreTools.Library.DatItems
|
|||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Machine information
|
#region Machine Fields
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Machine values
|
/// Machine values
|
||||||
@@ -53,6 +53,22 @@ namespace SabreTools.Library.DatItems
|
|||||||
|
|
||||||
#endregion
|
#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
|
#region SoftwareList Fields
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -110,28 +126,25 @@ namespace SabreTools.Library.DatItems
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public static readonly List<Field> DatItemFields = new List<Field>()
|
public static readonly List<Field> DatItemFields = new List<Field>()
|
||||||
{
|
{
|
||||||
|
// Common
|
||||||
Field.Name,
|
Field.Name,
|
||||||
|
|
||||||
|
// AttractMode
|
||||||
|
Field.AltName,
|
||||||
|
Field.AltTitle,
|
||||||
|
|
||||||
|
//SoftwareList
|
||||||
Field.PartName,
|
Field.PartName,
|
||||||
Field.PartInterface,
|
Field.PartInterface,
|
||||||
Field.Features,
|
Field.Features,
|
||||||
Field.AreaName,
|
Field.AreaName,
|
||||||
Field.AreaSize,
|
Field.AreaSize,
|
||||||
|
|
||||||
|
// BiosSet
|
||||||
Field.BiosDescription,
|
Field.BiosDescription,
|
||||||
Field.Default,
|
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,
|
Field.MD5,
|
||||||
#if NET_FRAMEWORK
|
#if NET_FRAMEWORK
|
||||||
Field.RIPEMD160,
|
Field.RIPEMD160,
|
||||||
@@ -140,6 +153,23 @@ namespace SabreTools.Library.DatItems
|
|||||||
Field.SHA256,
|
Field.SHA256,
|
||||||
Field.SHA384,
|
Field.SHA384,
|
||||||
Field.SHA512,
|
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>
|
/// <summary>
|
||||||
@@ -210,6 +240,12 @@ namespace SabreTools.Library.DatItems
|
|||||||
case Field.Name:
|
case Field.Name:
|
||||||
fieldValue = Name;
|
fieldValue = Name;
|
||||||
break;
|
break;
|
||||||
|
case Field.AltName:
|
||||||
|
fieldValue = AltName;
|
||||||
|
break;
|
||||||
|
case Field.AltTitle:
|
||||||
|
fieldValue = AltTitle;
|
||||||
|
break;
|
||||||
case Field.PartName:
|
case Field.PartName:
|
||||||
fieldValue = PartName;
|
fieldValue = PartName;
|
||||||
break;
|
break;
|
||||||
@@ -425,11 +461,7 @@ namespace SabreTools.Library.DatItems
|
|||||||
if (!Machine.PassesFilter(filter))
|
if (!Machine.PassesFilter(filter))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
// Filter on item type
|
#region Common
|
||||||
if (filter.ItemTypes.MatchesPositiveSet(ItemType.ToString()) == false)
|
|
||||||
return false;
|
|
||||||
if (filter.ItemTypes.MatchesNegativeSet(ItemType.ToString()) == true)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
// Filter on item name
|
// Filter on item name
|
||||||
if (filter.ItemName.MatchesPositiveSet(Name) == false)
|
if (filter.ItemName.MatchesPositiveSet(Name) == false)
|
||||||
@@ -437,6 +469,32 @@ namespace SabreTools.Library.DatItems
|
|||||||
if (filter.ItemName.MatchesNegativeSet(Name) == true)
|
if (filter.ItemName.MatchesNegativeSet(Name) == true)
|
||||||
return false;
|
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
|
// Filter on part name
|
||||||
if (filter.PartName.MatchesPositiveSet(PartName) == false)
|
if (filter.PartName.MatchesPositiveSet(PartName) == false)
|
||||||
return false;
|
return false;
|
||||||
@@ -463,6 +521,8 @@ namespace SabreTools.Library.DatItems
|
|||||||
else if (filter.AreaSize.MatchesNegative(null, AreaSize) == false)
|
else if (filter.AreaSize.MatchesNegative(null, AreaSize) == false)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -475,9 +535,25 @@ namespace SabreTools.Library.DatItems
|
|||||||
// Remove machine fields
|
// Remove machine fields
|
||||||
Machine.RemoveFields(fields);
|
Machine.RemoveFields(fields);
|
||||||
|
|
||||||
|
#region Common
|
||||||
|
|
||||||
if (fields.Contains(Field.Name))
|
if (fields.Contains(Field.Name))
|
||||||
Name = null;
|
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))
|
if (fields.Contains(Field.PartName))
|
||||||
PartName = null;
|
PartName = null;
|
||||||
|
|
||||||
@@ -492,6 +568,8 @@ namespace SabreTools.Library.DatItems
|
|||||||
|
|
||||||
if (fields.Contains(Field.AreaSize))
|
if (fields.Contains(Field.AreaSize))
|
||||||
AreaSize = null;
|
AreaSize = null;
|
||||||
|
|
||||||
|
#endregion
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
@@ -574,9 +652,25 @@ namespace SabreTools.Library.DatItems
|
|||||||
/// <param name="fields">List of Fields representing what should be updated</param>
|
/// <param name="fields">List of Fields representing what should be updated</param>
|
||||||
public virtual void ReplaceFields(DatItem item, List<Field> fields)
|
public virtual void ReplaceFields(DatItem item, List<Field> fields)
|
||||||
{
|
{
|
||||||
|
#region Common
|
||||||
|
|
||||||
if (fields.Contains(Field.Name))
|
if (fields.Contains(Field.Name))
|
||||||
Name = item.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))
|
if (fields.Contains(Field.PartName))
|
||||||
PartName = item.PartName;
|
PartName = item.PartName;
|
||||||
|
|
||||||
@@ -591,6 +685,8 @@ namespace SabreTools.Library.DatItems
|
|||||||
|
|
||||||
if (fields.Contains(Field.AreaSize))
|
if (fields.Contains(Field.AreaSize))
|
||||||
AreaSize = item.AreaSize;
|
AreaSize = item.AreaSize;
|
||||||
|
|
||||||
|
#endregion
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|||||||
@@ -242,6 +242,9 @@ namespace SabreTools.Library.DatItems
|
|||||||
ItemType = this.ItemType,
|
ItemType = this.ItemType,
|
||||||
DupeType = this.DupeType,
|
DupeType = this.DupeType,
|
||||||
|
|
||||||
|
AltName = this.AltName,
|
||||||
|
AltTitle = this.AltTitle,
|
||||||
|
|
||||||
PartName = this.PartName,
|
PartName = this.PartName,
|
||||||
PartInterface = this.PartInterface,
|
PartInterface = this.PartInterface,
|
||||||
Features = this.Features,
|
Features = this.Features,
|
||||||
@@ -281,6 +284,9 @@ namespace SabreTools.Library.DatItems
|
|||||||
ItemType = ItemType.Rom,
|
ItemType = ItemType.Rom,
|
||||||
DupeType = this.DupeType,
|
DupeType = this.DupeType,
|
||||||
|
|
||||||
|
AltName = this.AltName,
|
||||||
|
AltTitle = this.AltTitle,
|
||||||
|
|
||||||
PartName = this.PartName,
|
PartName = this.PartName,
|
||||||
PartInterface = this.PartInterface,
|
PartInterface = this.PartInterface,
|
||||||
Features = this.Features,
|
Features = this.Features,
|
||||||
|
|||||||
@@ -20,6 +20,8 @@ namespace SabreTools.Library.DatItems
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// List of valid field types within a DatItem/Machine
|
/// List of valid field types within a DatItem/Machine
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
/// TODO: Should this be split into MachineField and DatItemField?
|
||||||
|
/// TODO: Should there also be a DatFileField?
|
||||||
public enum Field : int
|
public enum Field : int
|
||||||
{
|
{
|
||||||
NULL = 0,
|
NULL = 0,
|
||||||
@@ -67,8 +69,14 @@ namespace SabreTools.Library.DatItems
|
|||||||
#region DatItem
|
#region DatItem
|
||||||
|
|
||||||
// Common DatItem
|
// Common DatItem
|
||||||
ItemType,
|
|
||||||
Name,
|
Name,
|
||||||
|
ItemType,
|
||||||
|
|
||||||
|
// AttractMode DatItem
|
||||||
|
AltName,
|
||||||
|
AltTitle,
|
||||||
|
|
||||||
|
// SoftwareList DatItem
|
||||||
PartName,
|
PartName,
|
||||||
PartInterface,
|
PartInterface,
|
||||||
Features,
|
Features,
|
||||||
|
|||||||
@@ -107,6 +107,9 @@ namespace SabreTools.Library.DatItems
|
|||||||
ItemType = this.ItemType,
|
ItemType = this.ItemType,
|
||||||
DupeType = this.DupeType,
|
DupeType = this.DupeType,
|
||||||
|
|
||||||
|
AltName = this.AltName,
|
||||||
|
AltTitle = this.AltTitle,
|
||||||
|
|
||||||
PartName = this.PartName,
|
PartName = this.PartName,
|
||||||
PartInterface = this.PartInterface,
|
PartInterface = this.PartInterface,
|
||||||
Features = this.Features,
|
Features = this.Features,
|
||||||
|
|||||||
@@ -308,6 +308,9 @@ namespace SabreTools.Library.DatItems
|
|||||||
ItemType = this.ItemType,
|
ItemType = this.ItemType,
|
||||||
DupeType = this.DupeType,
|
DupeType = this.DupeType,
|
||||||
|
|
||||||
|
AltName = this.AltName,
|
||||||
|
AltTitle = this.AltTitle,
|
||||||
|
|
||||||
PartName = this.PartName,
|
PartName = this.PartName,
|
||||||
PartInterface = this.PartInterface,
|
PartInterface = this.PartInterface,
|
||||||
Features = this.Features,
|
Features = this.Features,
|
||||||
|
|||||||
@@ -28,6 +28,9 @@
|
|||||||
ItemType = this.ItemType,
|
ItemType = this.ItemType,
|
||||||
DupeType = this.DupeType,
|
DupeType = this.DupeType,
|
||||||
|
|
||||||
|
AltName = this.AltName,
|
||||||
|
AltTitle = this.AltTitle,
|
||||||
|
|
||||||
PartName = this.PartName,
|
PartName = this.PartName,
|
||||||
PartInterface = this.PartInterface,
|
PartInterface = this.PartInterface,
|
||||||
Features = this.Features,
|
Features = this.Features,
|
||||||
|
|||||||
@@ -169,17 +169,35 @@ namespace SabreTools.Library.Filtering
|
|||||||
|
|
||||||
#region DatItem Filters
|
#region DatItem Filters
|
||||||
|
|
||||||
/// <summary>
|
#region Common
|
||||||
/// Include or exclude item types
|
|
||||||
/// </summary>
|
|
||||||
public FilterItem<string> ItemTypes { get; private set; } = new FilterItem<string>();
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Include or exclude item names
|
/// Include or exclude item names
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public FilterItem<string> ItemName { get; private set; } = new FilterItem<string>();
|
public FilterItem<string> ItemName { get; private set; } = new FilterItem<string>();
|
||||||
|
|
||||||
// TODO: DatItem.Features - List<KeyValuePair<string, string>>
|
/// <summary>
|
||||||
|
/// Include or exclude item types
|
||||||
|
/// </summary>
|
||||||
|
public FilterItem<string> ItemTypes { get; private set; } = new FilterItem<string>();
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region AttractMode
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Include or exclude alt names
|
||||||
|
/// </summary>
|
||||||
|
public FilterItem<string> AltName { get; private set; } = new FilterItem<string>();
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Include or exclude alt titles
|
||||||
|
/// </summary>
|
||||||
|
public FilterItem<string> AltTitle { get; private set; } = new FilterItem<string>();
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region SoftwareList
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Include or exclude part names
|
/// Include or exclude part names
|
||||||
@@ -191,6 +209,8 @@ namespace SabreTools.Library.Filtering
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public FilterItem<string> PartInterface { get; private set; } = new FilterItem<string>();
|
public FilterItem<string> PartInterface { get; private set; } = new FilterItem<string>();
|
||||||
|
|
||||||
|
// TODO: DatItem.Features - List<KeyValuePair<string, string>>
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Include or exclude area names
|
/// Include or exclude area names
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -202,6 +222,8 @@ namespace SabreTools.Library.Filtering
|
|||||||
/// <remarks>Positive means "Greater than or equal", Negative means "Less than or equal", Neutral means "Equal"</remarks>
|
/// <remarks>Positive means "Greater than or equal", Negative means "Less than or equal", Neutral means "Equal"</remarks>
|
||||||
public FilterItem<long?> AreaSize { get; private set; } = new FilterItem<long?>() { Positive = null, Negative = null, Neutral = null };
|
public FilterItem<long?> AreaSize { get; private set; } = new FilterItem<long?>() { Positive = null, Negative = null, Neutral = null };
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Include or exclude items with the "Default" tag
|
/// Include or exclude items with the "Default" tag
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -310,7 +332,7 @@ namespace SabreTools.Library.Filtering
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public FilterItem<bool?> Inverted { get; private set; } = new FilterItem<bool?>();
|
public FilterItem<bool?> Inverted { get; private set; } = new FilterItem<bool?>();
|
||||||
|
|
||||||
#endregion
|
#endregion // DatItem Filters
|
||||||
|
|
||||||
#region Manipulation Flags
|
#region Manipulation Flags
|
||||||
|
|
||||||
@@ -617,6 +639,15 @@ namespace SabreTools.Library.Filtering
|
|||||||
|
|
||||||
#region DatItem Filters
|
#region DatItem Filters
|
||||||
|
|
||||||
|
#region Common
|
||||||
|
|
||||||
|
case Field.Name:
|
||||||
|
if (negate)
|
||||||
|
ItemName.NegativeSet.Add(value);
|
||||||
|
else
|
||||||
|
ItemName.PositiveSet.Add(value);
|
||||||
|
break;
|
||||||
|
|
||||||
case Field.ItemType:
|
case Field.ItemType:
|
||||||
if (value.AsItemType() == null)
|
if (value.AsItemType() == null)
|
||||||
return;
|
return;
|
||||||
@@ -627,13 +658,28 @@ namespace SabreTools.Library.Filtering
|
|||||||
ItemTypes.PositiveSet.Add(value);
|
ItemTypes.PositiveSet.Add(value);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case Field.Name:
|
#endregion
|
||||||
|
|
||||||
|
#region AttractMode
|
||||||
|
|
||||||
|
case Field.AltName:
|
||||||
if (negate)
|
if (negate)
|
||||||
ItemName.NegativeSet.Add(value);
|
AltName.NegativeSet.Add(value);
|
||||||
else
|
else
|
||||||
ItemName.PositiveSet.Add(value);
|
AltName.PositiveSet.Add(value);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case Field.AltTitle:
|
||||||
|
if (negate)
|
||||||
|
AltTitle.NegativeSet.Add(value);
|
||||||
|
else
|
||||||
|
AltTitle.PositiveSet.Add(value);
|
||||||
|
break;
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region SoftwareList
|
||||||
|
|
||||||
case Field.PartName:
|
case Field.PartName:
|
||||||
if (negate)
|
if (negate)
|
||||||
PartName.NegativeSet.Add(value);
|
PartName.NegativeSet.Add(value);
|
||||||
@@ -707,6 +753,8 @@ namespace SabreTools.Library.Filtering
|
|||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
case Field.Default:
|
case Field.Default:
|
||||||
if (negate || value.Equals("false", StringComparison.OrdinalIgnoreCase))
|
if (negate || value.Equals("false", StringComparison.OrdinalIgnoreCase))
|
||||||
Default.Neutral = false;
|
Default.Neutral = false;
|
||||||
@@ -901,7 +949,7 @@ namespace SabreTools.Library.Filtering
|
|||||||
Inverted.Neutral = true;
|
Inverted.Neutral = true;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
#endregion
|
#endregion // DatItem Filters
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -267,12 +267,62 @@ namespace SabreTools.Library.Tools
|
|||||||
|
|
||||||
#region DatItem
|
#region DatItem
|
||||||
|
|
||||||
|
#region Common
|
||||||
|
|
||||||
|
case "itemname":
|
||||||
|
case "item-name":
|
||||||
|
case "name":
|
||||||
|
return Field.Name;
|
||||||
|
case "itemtype":
|
||||||
|
case "item-type":
|
||||||
|
case "type":
|
||||||
|
return Field.ItemType;
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region AttractMode
|
||||||
|
|
||||||
|
case "altname":
|
||||||
|
case "alt name":
|
||||||
|
case "alt-name":
|
||||||
|
case "altromname":
|
||||||
|
case "alt romname":
|
||||||
|
case "alt-romname":
|
||||||
|
return Field.AltName;
|
||||||
|
|
||||||
|
case "alttitle":
|
||||||
|
case "alt title":
|
||||||
|
case "alt-title":
|
||||||
|
case "altromtitle":
|
||||||
|
case "alt romtitle":
|
||||||
|
case "alt-romtitle":
|
||||||
|
return Field.AltTitle;
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region SoftwareList
|
||||||
|
|
||||||
|
case "partname":
|
||||||
|
case "part name":
|
||||||
|
case "part-name":
|
||||||
|
return Field.PartName;
|
||||||
|
case "partinterface":
|
||||||
|
case "part interface":
|
||||||
|
case "part-interface":
|
||||||
|
return Field.PartInterface;
|
||||||
|
case "features":
|
||||||
|
return Field.Features;
|
||||||
case "areaname":
|
case "areaname":
|
||||||
|
case "area name":
|
||||||
case "area-name":
|
case "area-name":
|
||||||
return Field.AreaName;
|
return Field.AreaName;
|
||||||
case "areasize":
|
case "areasize":
|
||||||
|
case "area size":
|
||||||
case "area-size":
|
case "area-size":
|
||||||
return Field.AreaSize;
|
return Field.AreaSize;
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
case "bios":
|
case "bios":
|
||||||
return Field.Bios;
|
return Field.Bios;
|
||||||
case "biosdescription":
|
case "biosdescription":
|
||||||
@@ -293,24 +343,14 @@ namespace SabreTools.Library.Tools
|
|||||||
case "less":
|
case "less":
|
||||||
case "size":
|
case "size":
|
||||||
return Field.Size;
|
return Field.Size;
|
||||||
case "features":
|
|
||||||
return Field.Features;
|
|
||||||
case "index":
|
case "index":
|
||||||
return Field.Index;
|
return Field.Index;
|
||||||
case "inverted":
|
case "inverted":
|
||||||
return Field.Inverted;
|
return Field.Inverted;
|
||||||
case "itemname":
|
|
||||||
case "item-name":
|
|
||||||
case "name":
|
|
||||||
return Field.Name;
|
|
||||||
case "itemtatus":
|
case "itemtatus":
|
||||||
case "item-status":
|
case "item-status":
|
||||||
case "status":
|
case "status":
|
||||||
return Field.Status;
|
return Field.Status;
|
||||||
case "itemtype":
|
|
||||||
case "item-type":
|
|
||||||
case "type":
|
|
||||||
return Field.ItemType;
|
|
||||||
case "language":
|
case "language":
|
||||||
return Field.Language;
|
return Field.Language;
|
||||||
case "md5":
|
case "md5":
|
||||||
@@ -323,12 +363,6 @@ namespace SabreTools.Library.Tools
|
|||||||
return Field.Offset;
|
return Field.Offset;
|
||||||
case "optional":
|
case "optional":
|
||||||
return Field.Optional;
|
return Field.Optional;
|
||||||
case "partinterface":
|
|
||||||
case "part-interface":
|
|
||||||
return Field.PartInterface;
|
|
||||||
case "partname":
|
|
||||||
case "part-name":
|
|
||||||
return Field.PartName;
|
|
||||||
case "region":
|
case "region":
|
||||||
return Field.Region;
|
return Field.Region;
|
||||||
#if NET_FRAMEWORK
|
#if NET_FRAMEWORK
|
||||||
|
|||||||
Reference in New Issue
Block a user