mirror of
https://github.com/claunia/SabreTools.git
synced 2025-12-16 19:14:27 +00:00
Remove unnecessary Field exclusion
This commit is contained in:
@@ -1,8 +1,11 @@
|
||||
namespace SabreTools.Library.DatItems
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace SabreTools.Library.DatItems
|
||||
{
|
||||
/// <summary>
|
||||
/// Represents generic archive files to be included in a set
|
||||
/// </summary>
|
||||
[JsonObject("archive")]
|
||||
public class Archive : DatItem
|
||||
{
|
||||
#region Constructors
|
||||
|
||||
@@ -1,15 +1,16 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
||||
using SabreTools.Library.Filtering;
|
||||
using Newtonsoft.Json;
|
||||
using System.Linq;
|
||||
using SabreTools.Library.Tools;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace SabreTools.Library.DatItems
|
||||
{
|
||||
/// <summary>
|
||||
/// Represents which BIOS(es) is associated with a set
|
||||
/// </summary>
|
||||
[JsonObject("biosset")]
|
||||
public class BiosSet : DatItem
|
||||
{
|
||||
#region Fields
|
||||
@@ -30,38 +31,6 @@ namespace SabreTools.Library.DatItems
|
||||
|
||||
#region Accessors
|
||||
|
||||
/// <summary>
|
||||
/// Get the value of that field as a string, if possible
|
||||
/// </summary>
|
||||
public override string GetField(Field field, List<Field> excludeFields)
|
||||
{
|
||||
// If the field is to be excluded, return empty string
|
||||
if (excludeFields.Contains(field))
|
||||
return string.Empty;
|
||||
|
||||
// Handle BiosSet-specific fields
|
||||
string fieldValue;
|
||||
switch (field)
|
||||
{
|
||||
case Field.Default:
|
||||
fieldValue = Default?.ToString();
|
||||
break;
|
||||
case Field.BiosDescription:
|
||||
fieldValue = Description;
|
||||
break;
|
||||
|
||||
// For everything else, use the base method
|
||||
default:
|
||||
return base.GetField(field, excludeFields);
|
||||
}
|
||||
|
||||
// Make sure we don't return null
|
||||
if (string.IsNullOrEmpty(fieldValue))
|
||||
fieldValue = string.Empty;
|
||||
|
||||
return fieldValue;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Set fields with given values
|
||||
/// </summary>
|
||||
|
||||
@@ -1,8 +1,11 @@
|
||||
namespace SabreTools.Library.DatItems
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace SabreTools.Library.DatItems
|
||||
{
|
||||
/// <summary>
|
||||
/// Represents a blank set from an input DAT
|
||||
/// </summary>
|
||||
[JsonObject("blank")]
|
||||
public class Blank : DatItem
|
||||
{
|
||||
#region Constructors
|
||||
|
||||
@@ -5,18 +5,19 @@ using System.Linq;
|
||||
using System.Net;
|
||||
|
||||
using SabreTools.Library.Data;
|
||||
using SabreTools.Library.DatFiles;
|
||||
using SabreTools.Library.FileTypes;
|
||||
using SabreTools.Library.Filtering;
|
||||
using SabreTools.Library.Tools;
|
||||
using NaturalSort;
|
||||
using Newtonsoft.Json;
|
||||
using Newtonsoft.Json.Converters;
|
||||
|
||||
namespace SabreTools.Library.DatItems
|
||||
{
|
||||
/// <summary>
|
||||
/// Base class for all items included in a set
|
||||
/// </summary>
|
||||
[JsonObject("datitem")]
|
||||
public abstract class DatItem : IEquatable<DatItem>, IComparable<DatItem>, ICloneable
|
||||
{
|
||||
// TODO: Should any of these be specific to certain types?
|
||||
@@ -34,7 +35,8 @@ namespace SabreTools.Library.DatItems
|
||||
/// <summary>
|
||||
/// Item type for outputting
|
||||
/// </summary>
|
||||
[JsonIgnore]
|
||||
[JsonProperty("type")]
|
||||
[JsonConverter(typeof(StringEnumConverter))]
|
||||
public ItemType ItemType { get; set; }
|
||||
|
||||
/// <summary>
|
||||
@@ -83,6 +85,7 @@ namespace SabreTools.Library.DatItems
|
||||
/// OpenMSX sub item type
|
||||
/// </summary>
|
||||
[JsonProperty("openmsx_subtype")]
|
||||
[JsonConverter(typeof(StringEnumConverter))]
|
||||
public OpenMSXSubType OpenMSXSubType { get; set; }
|
||||
|
||||
/// <summary>
|
||||
@@ -314,105 +317,6 @@ namespace SabreTools.Library.DatItems
|
||||
|
||||
#region Accessors
|
||||
|
||||
/// <summary>
|
||||
/// Get the value of that field as a string, if possible
|
||||
/// </summary>
|
||||
public virtual string GetField(Field field, List<Field> excludeFields)
|
||||
{
|
||||
// If the field is to be excluded, return empty string
|
||||
if (excludeFields.Contains(field))
|
||||
return string.Empty;
|
||||
|
||||
// Try to get the machine field first
|
||||
string fieldValue = Machine.GetField(field, excludeFields);
|
||||
if (fieldValue != null)
|
||||
return fieldValue;
|
||||
|
||||
switch (field)
|
||||
{
|
||||
#region Common
|
||||
|
||||
case Field.Name:
|
||||
fieldValue = Name;
|
||||
break;
|
||||
|
||||
#endregion
|
||||
|
||||
#region AttractMode
|
||||
|
||||
case Field.AltName:
|
||||
fieldValue = AltName;
|
||||
break;
|
||||
case Field.AltTitle:
|
||||
fieldValue = AltTitle;
|
||||
break;
|
||||
|
||||
#endregion
|
||||
|
||||
#region OpenMSX
|
||||
|
||||
case Field.Original:
|
||||
fieldValue = Original.Content;
|
||||
break;
|
||||
case Field.OpenMSXSubType:
|
||||
fieldValue = OpenMSXSubType.ToString();
|
||||
break;
|
||||
case Field.OpenMSXType:
|
||||
fieldValue = OpenMSXType;
|
||||
break;
|
||||
case Field.Remark:
|
||||
fieldValue = Remark;
|
||||
break;
|
||||
case Field.Boot:
|
||||
fieldValue = Boot;
|
||||
break;
|
||||
|
||||
#endregion
|
||||
|
||||
#region SoftwareList
|
||||
|
||||
case Field.PartName:
|
||||
fieldValue = PartName;
|
||||
break;
|
||||
case Field.PartInterface:
|
||||
fieldValue = PartInterface;
|
||||
break;
|
||||
case Field.Features:
|
||||
fieldValue = string.Join(";", (Features ?? new List<SoftwareListFeature>()).Select(f => $"{f.Name}={f.Value}"));
|
||||
break;
|
||||
case Field.AreaName:
|
||||
fieldValue = AreaName;
|
||||
break;
|
||||
case Field.AreaSize:
|
||||
fieldValue = AreaSize?.ToString();
|
||||
break;
|
||||
case Field.AreaWidth:
|
||||
fieldValue = AreaWidth;
|
||||
break;
|
||||
case Field.AreaEndianness:
|
||||
fieldValue = AreaEndianness;
|
||||
break;
|
||||
case Field.Value:
|
||||
fieldValue = Value;
|
||||
break;
|
||||
case Field.LoadFlag:
|
||||
fieldValue = LoadFlag;
|
||||
break;
|
||||
|
||||
#endregion
|
||||
|
||||
case Field.NULL:
|
||||
default:
|
||||
return string.Empty;
|
||||
}
|
||||
|
||||
// Make sure we don't return null
|
||||
if (string.IsNullOrEmpty(fieldValue))
|
||||
fieldValue = string.Empty;
|
||||
|
||||
return fieldValue;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Set fields with given values
|
||||
/// </summary>
|
||||
|
||||
@@ -1,17 +1,18 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
||||
using SabreTools.Library.DatFiles;
|
||||
using SabreTools.Library.FileTypes;
|
||||
using SabreTools.Library.Filtering;
|
||||
using SabreTools.Library.Tools;
|
||||
using Newtonsoft.Json;
|
||||
using Newtonsoft.Json.Converters;
|
||||
|
||||
namespace SabreTools.Library.DatItems
|
||||
{
|
||||
/// <summary>
|
||||
/// Represents Compressed Hunks of Data (CHD) formatted disks which use internal hashes
|
||||
/// </summary>
|
||||
[JsonObject("disk")]
|
||||
public class Disk : DatItem
|
||||
{
|
||||
#region Private instance variables
|
||||
@@ -119,6 +120,7 @@ namespace SabreTools.Library.DatItems
|
||||
/// Disk dump status
|
||||
/// </summary>
|
||||
[JsonProperty("status")]
|
||||
[JsonConverter(typeof(StringEnumConverter))]
|
||||
public ItemStatus ItemStatus { get; set; }
|
||||
|
||||
/// <summary>
|
||||
@@ -131,70 +133,6 @@ namespace SabreTools.Library.DatItems
|
||||
|
||||
#region Accessors
|
||||
|
||||
/// <summary>
|
||||
/// Get the value of that field as a string, if possible
|
||||
/// </summary>
|
||||
public override string GetField(Field field, List<Field> excludeFields)
|
||||
{
|
||||
// If the field is to be excluded, return empty string
|
||||
if (excludeFields.Contains(field))
|
||||
return string.Empty;
|
||||
|
||||
// Handle Disk-specific fields
|
||||
string fieldValue;
|
||||
switch (field)
|
||||
{
|
||||
case Field.MD5:
|
||||
fieldValue = MD5;
|
||||
break;
|
||||
#if NET_FRAMEWORK
|
||||
case Field.RIPEMD160:
|
||||
fieldValue = RIPEMD160;
|
||||
break;
|
||||
#endif
|
||||
case Field.SHA1:
|
||||
fieldValue = SHA1;
|
||||
break;
|
||||
case Field.SHA256:
|
||||
fieldValue = SHA256;
|
||||
break;
|
||||
case Field.SHA384:
|
||||
fieldValue = SHA384;
|
||||
break;
|
||||
case Field.SHA512:
|
||||
fieldValue = SHA512;
|
||||
break;
|
||||
case Field.Merge:
|
||||
fieldValue = MergeTag;
|
||||
break;
|
||||
case Field.Region:
|
||||
fieldValue = Region;
|
||||
break;
|
||||
case Field.Index:
|
||||
fieldValue = Index;
|
||||
break;
|
||||
case Field.Writable:
|
||||
fieldValue = Writable?.ToString();
|
||||
break;
|
||||
case Field.Optional:
|
||||
fieldValue = Optional?.ToString();
|
||||
break;
|
||||
case Field.Status:
|
||||
fieldValue = ItemStatus.ToString();
|
||||
break;
|
||||
|
||||
// For everything else, use the base method
|
||||
default:
|
||||
return base.GetField(field, excludeFields);
|
||||
}
|
||||
|
||||
// Make sure we don't return null
|
||||
if (string.IsNullOrEmpty(fieldValue))
|
||||
fieldValue = string.Empty;
|
||||
|
||||
return fieldValue;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Set fields with given values
|
||||
/// </summary>
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
using System;
|
||||
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace SabreTools.Library.DatItems
|
||||
{
|
||||
/// <summary>
|
||||
|
||||
@@ -11,6 +11,7 @@ namespace SabreTools.Library.DatItems
|
||||
/// <summary>
|
||||
/// Represents the information specific to a set/game/machine
|
||||
/// </summary>
|
||||
[JsonObject("machine")]
|
||||
public class Machine : ICloneable
|
||||
{
|
||||
#region Fields
|
||||
@@ -330,185 +331,6 @@ namespace SabreTools.Library.DatItems
|
||||
|
||||
#region Accessors
|
||||
|
||||
/// <summary>
|
||||
/// Get the value of that field as a string, if possible
|
||||
/// </summary>
|
||||
public string GetField(Field field, List<Field> excludeFields)
|
||||
{
|
||||
// If the field is to be excluded, return empty string
|
||||
if (excludeFields.Contains(field))
|
||||
return string.Empty;
|
||||
|
||||
string fieldValue = null;
|
||||
switch (field)
|
||||
{
|
||||
#region Common
|
||||
|
||||
case Field.MachineName:
|
||||
fieldValue = Name;
|
||||
break;
|
||||
case Field.Comment:
|
||||
fieldValue = Comment;
|
||||
break;
|
||||
case Field.Description:
|
||||
fieldValue = Description;
|
||||
break;
|
||||
case Field.Year:
|
||||
fieldValue = Year;
|
||||
break;
|
||||
case Field.Manufacturer:
|
||||
fieldValue = Manufacturer;
|
||||
break;
|
||||
case Field.Publisher:
|
||||
fieldValue = Publisher;
|
||||
break;
|
||||
case Field.Category:
|
||||
fieldValue = Category;
|
||||
break;
|
||||
case Field.RomOf:
|
||||
fieldValue = RomOf;
|
||||
break;
|
||||
case Field.CloneOf:
|
||||
fieldValue = CloneOf;
|
||||
break;
|
||||
case Field.SampleOf:
|
||||
fieldValue = SampleOf;
|
||||
break;
|
||||
case Field.MachineType:
|
||||
fieldValue = MachineType.ToString();
|
||||
break;
|
||||
|
||||
#endregion
|
||||
|
||||
#region AttractMode
|
||||
|
||||
case Field.Players:
|
||||
fieldValue = Players;
|
||||
break;
|
||||
case Field.Rotation:
|
||||
fieldValue = Rotation;
|
||||
break;
|
||||
case Field.Control:
|
||||
fieldValue = Control;
|
||||
break;
|
||||
case Field.SupportStatus:
|
||||
fieldValue = Status;
|
||||
break;
|
||||
case Field.DisplayCount:
|
||||
fieldValue = DisplayCount;
|
||||
break;
|
||||
case Field.DisplayType:
|
||||
fieldValue = DisplayType;
|
||||
break;
|
||||
case Field.Buttons:
|
||||
fieldValue = Buttons;
|
||||
break;
|
||||
|
||||
#endregion
|
||||
|
||||
#region ListXML
|
||||
|
||||
case Field.SourceFile:
|
||||
fieldValue = SourceFile;
|
||||
break;
|
||||
case Field.Runnable:
|
||||
fieldValue = Runnable.ToString();
|
||||
break;
|
||||
case Field.DeviceReferences:
|
||||
fieldValue = string.Join(";", DeviceReferences ?? new List<ListXmlDeviceReference>());
|
||||
break;
|
||||
case Field.Slots:
|
||||
fieldValue = string.Join(";", Slots ?? new List<ListXmlSlot>());
|
||||
break;
|
||||
case Field.Infos:
|
||||
fieldValue = string.Join(";", (Infos ?? new List<ListXmlInfo>()).Select(i => $"{i.Name}={i.Value}"));
|
||||
break;
|
||||
|
||||
#endregion
|
||||
|
||||
#region Logiqx
|
||||
|
||||
case Field.Board:
|
||||
fieldValue = Board;
|
||||
break;
|
||||
case Field.RebuildTo:
|
||||
fieldValue = RebuildTo;
|
||||
break;
|
||||
|
||||
#endregion
|
||||
|
||||
#region Logiqx EmuArc
|
||||
|
||||
case Field.TitleID:
|
||||
fieldValue = TitleID;
|
||||
break;
|
||||
case Field.Developer:
|
||||
fieldValue = Developer;
|
||||
break;
|
||||
case Field.Genre:
|
||||
fieldValue = Genre;
|
||||
break;
|
||||
case Field.Subgenre:
|
||||
fieldValue = Subgenre;
|
||||
break;
|
||||
case Field.Ratings:
|
||||
fieldValue = Ratings;
|
||||
break;
|
||||
case Field.Score:
|
||||
fieldValue = Score;
|
||||
break;
|
||||
case Field.Enabled:
|
||||
fieldValue = Enabled;
|
||||
break;
|
||||
case Field.HasCrc:
|
||||
fieldValue = HasCrc.ToString();
|
||||
break;
|
||||
case Field.RelatedTo:
|
||||
fieldValue = RelatedTo;
|
||||
break;
|
||||
|
||||
#endregion
|
||||
|
||||
#region OpenMSX
|
||||
|
||||
case Field.GenMSXID:
|
||||
fieldValue = GenMSXID;
|
||||
break;
|
||||
case Field.System:
|
||||
fieldValue = System;
|
||||
break;
|
||||
case Field.Country:
|
||||
fieldValue = Country;
|
||||
break;
|
||||
|
||||
#endregion
|
||||
|
||||
#region SoftwareList
|
||||
|
||||
case Field.Supported:
|
||||
fieldValue = Supported.ToString();
|
||||
break;
|
||||
case Field.SharedFeatures:
|
||||
fieldValue = string.Join(";", (SharedFeatures ?? new List<SoftwareListSharedFeature>()).Select(i => $"{i.Name}={i.Value}"));
|
||||
break;
|
||||
case Field.DipSwitches:
|
||||
// TODO: There is no possible way this will work... use placeholder for now
|
||||
fieldValue = "dipswitches";
|
||||
break;
|
||||
|
||||
#endregion
|
||||
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
|
||||
// Make sure we don't return null
|
||||
if (string.IsNullOrEmpty(fieldValue))
|
||||
fieldValue = string.Empty;
|
||||
|
||||
return fieldValue;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Set fields with given values
|
||||
/// </summary>
|
||||
|
||||
@@ -10,6 +10,7 @@ namespace SabreTools.Library.DatItems
|
||||
/// <summary>
|
||||
/// Represents release information about a set
|
||||
/// </summary>
|
||||
[JsonObject("release")]
|
||||
public class Release : DatItem
|
||||
{
|
||||
#region Fields
|
||||
@@ -42,44 +43,6 @@ namespace SabreTools.Library.DatItems
|
||||
|
||||
#region Accessors
|
||||
|
||||
/// <summary>
|
||||
/// Get the value of that field as a string, if possible
|
||||
/// </summary>
|
||||
public override string GetField(Field field, List<Field> excludeFields)
|
||||
{
|
||||
// If the field is to be excluded, return empty string
|
||||
if (excludeFields.Contains(field))
|
||||
return string.Empty;
|
||||
|
||||
// Handle Release-specific fields
|
||||
string fieldValue;
|
||||
switch (field)
|
||||
{
|
||||
case Field.Region:
|
||||
fieldValue = Region;
|
||||
break;
|
||||
case Field.Language:
|
||||
fieldValue = Language;
|
||||
break;
|
||||
case Field.Date:
|
||||
fieldValue = Date;
|
||||
break;
|
||||
case Field.Default:
|
||||
fieldValue = Default?.ToString();
|
||||
break;
|
||||
|
||||
// For everything else, use the base method
|
||||
default:
|
||||
return base.GetField(field, excludeFields);
|
||||
}
|
||||
|
||||
// Make sure we don't return null
|
||||
if (string.IsNullOrEmpty(fieldValue))
|
||||
fieldValue = string.Empty;
|
||||
|
||||
return fieldValue;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Set fields with given values
|
||||
/// </summary>
|
||||
|
||||
@@ -3,17 +3,18 @@ using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
||||
using SabreTools.Library.Data;
|
||||
using SabreTools.Library.DatFiles;
|
||||
using SabreTools.Library.FileTypes;
|
||||
using SabreTools.Library.Filtering;
|
||||
using SabreTools.Library.Tools;
|
||||
using Newtonsoft.Json;
|
||||
using Newtonsoft.Json.Converters;
|
||||
|
||||
namespace SabreTools.Library.DatItems
|
||||
{
|
||||
/// <summary>
|
||||
/// Represents a generic file within a set
|
||||
/// </summary>
|
||||
[JsonObject("rom")]
|
||||
public class Rom : DatItem
|
||||
{
|
||||
#region Private instance variables
|
||||
@@ -144,6 +145,7 @@ namespace SabreTools.Library.DatItems
|
||||
/// Rom dump status
|
||||
/// </summary>
|
||||
[JsonProperty("status")]
|
||||
[JsonConverter(typeof(StringEnumConverter))]
|
||||
public ItemStatus ItemStatus { get; set; }
|
||||
|
||||
/// <summary>
|
||||
@@ -162,82 +164,6 @@ namespace SabreTools.Library.DatItems
|
||||
|
||||
#region Accessors
|
||||
|
||||
/// <summary>
|
||||
/// Get the value of that field as a string, if possible
|
||||
/// </summary>
|
||||
public override string GetField(Field field, List<Field> excludeFields)
|
||||
{
|
||||
// If the field is to be excluded, return empty string
|
||||
if (excludeFields.Contains(field))
|
||||
return string.Empty;
|
||||
|
||||
// Handle Rom-specific fields
|
||||
string fieldValue;
|
||||
switch (field)
|
||||
{
|
||||
case Field.Bios:
|
||||
fieldValue = Bios;
|
||||
break;
|
||||
case Field.Size:
|
||||
fieldValue = Size.ToString();
|
||||
break;
|
||||
case Field.CRC:
|
||||
fieldValue = CRC;
|
||||
break;
|
||||
case Field.MD5:
|
||||
fieldValue = MD5;
|
||||
break;
|
||||
#if NET_FRAMEWORK
|
||||
case Field.RIPEMD160:
|
||||
fieldValue = RIPEMD160;
|
||||
break;
|
||||
#endif
|
||||
case Field.SHA1:
|
||||
fieldValue = SHA1;
|
||||
break;
|
||||
case Field.SHA256:
|
||||
fieldValue = SHA256;
|
||||
break;
|
||||
case Field.SHA384:
|
||||
fieldValue = SHA384;
|
||||
break;
|
||||
case Field.SHA512:
|
||||
fieldValue = SHA512;
|
||||
break;
|
||||
case Field.Merge:
|
||||
fieldValue = MergeTag;
|
||||
break;
|
||||
case Field.Region:
|
||||
fieldValue = Region;
|
||||
break;
|
||||
case Field.Offset:
|
||||
fieldValue = Offset;
|
||||
break;
|
||||
case Field.Date:
|
||||
fieldValue = Date;
|
||||
break;
|
||||
case Field.Status:
|
||||
fieldValue = ItemStatus.ToString();
|
||||
break;
|
||||
case Field.Optional:
|
||||
fieldValue = Optional?.ToString();
|
||||
break;
|
||||
case Field.Inverted:
|
||||
fieldValue = Inverted?.ToString();
|
||||
break;
|
||||
|
||||
// For everything else, use the base method
|
||||
default:
|
||||
return base.GetField(field, excludeFields);
|
||||
}
|
||||
|
||||
// Make sure we don't return null
|
||||
if (string.IsNullOrEmpty(fieldValue))
|
||||
fieldValue = string.Empty;
|
||||
|
||||
return fieldValue;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Set fields with given values
|
||||
/// </summary>
|
||||
|
||||
@@ -1,8 +1,11 @@
|
||||
namespace SabreTools.Library.DatItems
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace SabreTools.Library.DatItems
|
||||
{
|
||||
/// <summary>
|
||||
/// Represents a (usually WAV-formatted) sample to be included for use in the set
|
||||
/// </summary>
|
||||
[JsonObject("sample")]
|
||||
public class Sample : DatItem
|
||||
{
|
||||
#region Constructors
|
||||
|
||||
Reference in New Issue
Block a user