Field enum cleanup, part 1

This commit is contained in:
Matt Nadareski
2020-09-03 14:22:15 -07:00
parent 5d01d4ab51
commit 57b3521582
14 changed files with 723 additions and 984 deletions

View File

@@ -189,10 +189,6 @@ namespace SabreTools.Library.DatItems
if (filter.DatItem_Default.MatchesNeutral(null, Default) == false) if (filter.DatItem_Default.MatchesNeutral(null, Default) == false)
return false; return false;
// Filter on conditions
if (filter.DatItem_Conditions.MatchesNeutral(null, Conditions != null ? (bool?)(Conditions.Count > 0) : null) == false)
return false;
// Filter on individual conditions // Filter on individual conditions
if (Conditions != null) if (Conditions != null)
{ {
@@ -222,9 +218,6 @@ namespace SabreTools.Library.DatItems
if (fields.Contains(Field.DatItem_Default)) if (fields.Contains(Field.DatItem_Default))
Default = null; Default = null;
if (fields.Contains(Field.DatItem_Conditions))
Conditions = null;
if (Conditions != null) if (Conditions != null)
{ {
foreach (Condition condition in Conditions) foreach (Condition condition in Conditions)
@@ -272,9 +265,6 @@ namespace SabreTools.Library.DatItems
if (fields.Contains(Field.DatItem_Default)) if (fields.Contains(Field.DatItem_Default))
Default = newItem.Default; Default = newItem.Default;
if (fields.Contains(Field.DatItem_Conditions))
Conditions = newItem.Conditions;
// Field replacement doesn't make sense for DatItem_Condition* // Field replacement doesn't make sense for DatItem_Condition*
} }

View File

@@ -257,10 +257,6 @@ namespace SabreTools.Library.DatItems
if (filter.DatItem_Mask.MatchesNegativeSet(Mask) == true) if (filter.DatItem_Mask.MatchesNegativeSet(Mask) == true)
return false; return false;
// Filter on conditions
if (filter.DatItem_Conditions.MatchesNeutral(null, Conditions != null ? (bool?)(Conditions.Count > 0) : null) == false)
return false;
// Filter on individual conditions // Filter on individual conditions
if (Conditions != null) if (Conditions != null)
{ {
@@ -271,10 +267,6 @@ namespace SabreTools.Library.DatItems
} }
} }
// Filter on locations
if (filter.DatItem_Locations.MatchesNeutral(null, Locations != null ? (bool?)(Locations.Count > 0) : null) == false)
return false;
// Filter on individual locations // Filter on individual locations
if (Locations != null) if (Locations != null)
{ {
@@ -285,10 +277,6 @@ namespace SabreTools.Library.DatItems
} }
} }
// Filter on settings
if (filter.DatItem_Settings.MatchesNeutral(null, Settings != null ? (bool?)(Settings.Count > 0) : null) == false)
return false;
// Filter on individual conditions // Filter on individual conditions
if (Settings != null) if (Settings != null)
{ {
@@ -321,9 +309,6 @@ namespace SabreTools.Library.DatItems
if (fields.Contains(Field.DatItem_Mask)) if (fields.Contains(Field.DatItem_Mask))
Mask = null; Mask = null;
if (fields.Contains(Field.DatItem_Conditions))
Conditions = null;
if (Conditions != null) if (Conditions != null)
{ {
foreach (Condition condition in Conditions) foreach (Condition condition in Conditions)
@@ -332,9 +317,6 @@ namespace SabreTools.Library.DatItems
} }
} }
if (fields.Contains(Field.DatItem_Locations))
Locations = null;
if (Locations != null) if (Locations != null)
{ {
foreach (Location location in Locations) foreach (Location location in Locations)
@@ -343,9 +325,6 @@ namespace SabreTools.Library.DatItems
} }
} }
if (fields.Contains(Field.DatItem_Settings))
Settings = null;
if (Settings != null) if (Settings != null)
{ {
foreach (Setting setting in Settings) foreach (Setting setting in Settings)
@@ -396,19 +375,8 @@ namespace SabreTools.Library.DatItems
if (fields.Contains(Field.DatItem_Mask)) if (fields.Contains(Field.DatItem_Mask))
Mask = newItem.Mask; Mask = newItem.Mask;
if (fields.Contains(Field.DatItem_Conditions))
Conditions = newItem.Conditions;
// Field replacement doesn't make sense for DatItem_Condition* // Field replacement doesn't make sense for DatItem_Condition*
if (fields.Contains(Field.DatItem_Locations))
Locations = newItem.Locations;
// Field replacement doesn't make sense for DatItem_Location* // Field replacement doesn't make sense for DatItem_Location*
if (fields.Contains(Field.DatItem_Settings))
Settings = newItem.Settings;
// Field replacement doesn't make sense for DatItem_Setting* // Field replacement doesn't make sense for DatItem_Setting*
} }

View File

@@ -69,54 +69,20 @@ namespace SabreTools.Library.DatItems
/// <summary> /// <summary>
/// Fields unique to a DatItem /// Fields unique to a DatItem
/// </summary> /// </summary>
/// TODO: Update this once reshuffling is done
public static readonly List<Field> DatItemFields = new List<Field>() public static readonly List<Field> DatItemFields = new List<Field>()
{ {
#region Common #region Common
Field.DatItem_Name,
Field.DatItem_Type, Field.DatItem_Type,
#endregion #endregion
#region AttractMode
Field.DatItem_AltName,
Field.DatItem_AltTitle,
#endregion
#region OpenMSX
Field.DatItem_Original,
Field.DatItem_OpenMSXSubType,
Field.DatItem_OpenMSXType,
Field.DatItem_Remark,
Field.DatItem_Boot,
#endregion
#region SoftwareList
// Part
Field.DatItem_Part,
Field.DatItem_Part_Name,
Field.DatItem_Part_Interface,
// Feature
Field.DatItem_Features,
Field.DatItem_Feature_Name,
Field.DatItem_Feature_Value,
Field.DatItem_LoadFlag,
#endregion
#region Item-Specific #region Item-Specific
#region Actionable #region Actionable
// Rom // Rom
Field.DatItem_Name,
Field.DatItem_Bios, Field.DatItem_Bios,
Field.DatItem_Size, Field.DatItem_Size,
Field.DatItem_CRC, Field.DatItem_CRC,
@@ -136,11 +102,27 @@ namespace SabreTools.Library.DatItems
Field.DatItem_Optional, Field.DatItem_Optional,
Field.DatItem_Inverted, Field.DatItem_Inverted,
// Rom (AttractMode)
Field.DatItem_AltName,
Field.DatItem_AltTitle,
// Rom (OpenMSX)
Field.DatItem_Original,
Field.DatItem_OpenMSXSubType,
Field.DatItem_OpenMSXType,
Field.DatItem_Remark,
Field.DatItem_Boot,
// Rom (SoftwareList) // Rom (SoftwareList)
Field.DatItem_AreaName, Field.DatItem_AreaName,
Field.DatItem_AreaSize, Field.DatItem_AreaSize,
Field.DatItem_AreaWidth, Field.DatItem_AreaWidth,
Field.DatItem_AreaEndianness, Field.DatItem_AreaEndianness,
Field.DatItem_LoadFlag,
Field.DatItem_Part_Name,
Field.DatItem_Part_Interface,
Field.DatItem_Part_Feature_Name,
Field.DatItem_Part_Feature_Value,
Field.DatItem_Value, Field.DatItem_Value,
// Disk // Disk
@@ -153,11 +135,9 @@ namespace SabreTools.Library.DatItems
// Adjuster // Adjuster
Field.DatItem_Default, Field.DatItem_Default,
Field.DatItem_Conditions,
Field.DatItem_Condition_Tag, // Analog
Field.DatItem_Condition_Mask, Field.DatItem_Analog_Mask,
Field.DatItem_Condition_Relation,
Field.DatItem_Condition_Value,
// BiosSet // BiosSet
Field.DatItem_Description, Field.DatItem_Description,
@@ -167,23 +147,100 @@ namespace SabreTools.Library.DatItems
Field.DatItem_ChipType, Field.DatItem_ChipType,
Field.DatItem_Clock, Field.DatItem_Clock,
// DIP Switch.Values // Condition
Field.DatItem_Values, Field.DatItem_Mask,
Field.DatItem_Value_Name, Field.DatItem_Relation,
Field.DatItem_Value_Value, Field.DatItem_Condition_Tag,
Field.DatItem_Value_Default, Field.DatItem_Condition_Mask,
Field.DatItem_Condition_Relation,
Field.DatItem_Condition_Value,
// Control
Field.DatItem_Control_Type,
Field.DatItem_Control_Player,
Field.DatItem_Control_Buttons,
Field.DatItem_Control_RegButtons,
Field.DatItem_Control_Minimum,
Field.DatItem_Control_Maximum,
Field.DatItem_Control_Sensitivity,
Field.DatItem_Control_KeyDelta,
Field.DatItem_Control_Reverse,
Field.DatItem_Control_Ways,
Field.DatItem_Control_Ways2,
Field.DatItem_Control_Ways3,
// Device
Field.DatItem_DeviceType,
Field.DatItem_FixedImage,
Field.DatItem_Mandatory,
Field.DatItem_Interface,
// Display
Field.DatItem_DisplayType,
Field.DatItem_Rotate,
Field.DatItem_FlipX,
Field.DatItem_Width,
Field.DatItem_Height,
Field.DatItem_Refresh,
Field.DatItem_PixClock,
Field.DatItem_HTotal,
Field.DatItem_HBEnd,
Field.DatItem_HBStart,
Field.DatItem_VTotal,
Field.DatItem_VBEnd,
Field.DatItem_VBStart,
// Driver
Field.DatItem_SupportStatus,
Field.DatItem_EmulationStatus,
Field.DatItem_CocktailStatus,
Field.DatItem_SaveStateStatus,
// Extension
Field.DatItem_Extension_Name,
// Feature
Field.DatItem_FeatureType,
Field.DatItem_FeatureStatus,
Field.DatItem_FeatureOverall,
// Input
Field.DatItem_Service,
Field.DatItem_Tilt,
Field.DatItem_Players,
Field.DatItem_Coins,
// Instance
Field.DatItem_Instance_Name,
Field.DatItem_Instance_BriefName,
// Location
Field.DatItem_Location_Name,
Field.DatItem_Location_Number,
Field.DatItem_Location_Inverted,
// RamOption // RamOption
Field.DatItem_Content, Field.DatItem_Content,
// Slot.SlotOptions // Release
Field.DatItem_SlotOptions, Field.DatItem_Language,
// Setting
Field.DatItem_Setting_Name,
Field.DatItem_Setting_Value,
Field.DatItem_Setting_Default,
// SlotOption
Field.DatItem_SlotOption_Name, Field.DatItem_SlotOption_Name,
Field.DatItem_SlotOption_DeviceName, Field.DatItem_SlotOption_DeviceName,
Field.DatItem_SlotOption_Default, Field.DatItem_SlotOption_Default,
// Release // SoftwareList
Field.DatItem_Language, Field.DatItem_SoftwareListStatus,
Field.DatItem_Filter,
// Sound
Field.DatItem_Channels,
#endregion #endregion
@@ -193,22 +250,26 @@ namespace SabreTools.Library.DatItems
/// <summary> /// <summary>
/// Fields unique to a Machine /// Fields unique to a Machine
/// </summary> /// </summary>
/// TODO: Update this once reshuffling is done
public static readonly List<Field> MachineFields = new List<Field>() public static readonly List<Field> MachineFields = new List<Field>()
{ {
// Common #region Common
Field.Machine_Name, Field.Machine_Name,
Field.Machine_Comment, Field.Machine_Comment,
Field.Machine_Description, Field.Machine_Description,
Field.Machine_Year, Field.Machine_Year,
Field.Machine_Manufacturer, Field.Machine_Manufacturer,
Field.Machine_Publisher, Field.Machine_Publisher,
Field.Machine_Category,
Field.Machine_RomOf, Field.Machine_RomOf,
Field.Machine_CloneOf, Field.Machine_CloneOf,
Field.Machine_SampleOf, Field.Machine_SampleOf,
Field.Machine_Type, Field.Machine_Type,
// AttractMode #endregion
#region AttractMode
Field.Machine_Players, Field.Machine_Players,
Field.Machine_Rotation, Field.Machine_Rotation,
Field.Machine_Control, Field.Machine_Control,
@@ -217,15 +278,24 @@ namespace SabreTools.Library.DatItems
Field.Machine_DisplayType, Field.Machine_DisplayType,
Field.Machine_Buttons, Field.Machine_Buttons,
// ListXML #endregion
#region ListXML
Field.Machine_SourceFile, Field.Machine_SourceFile,
Field.Machine_Runnable, Field.Machine_Runnable,
// Logiqx #endregion
#region Logiqx
Field.Machine_Board, Field.Machine_Board,
Field.Machine_RebuildTo, Field.Machine_RebuildTo,
// Logiqx EmuArc #endregion
#region Logiqx EmuArc
Field.Machine_TitleID, Field.Machine_TitleID,
Field.Machine_Developer, Field.Machine_Developer,
Field.Machine_Genre, Field.Machine_Genre,
@@ -236,13 +306,21 @@ namespace SabreTools.Library.DatItems
Field.Machine_CRC, Field.Machine_CRC,
Field.Machine_RelatedTo, Field.Machine_RelatedTo,
// OpenMSX #endregion
#region OpenMSX
Field.Machine_GenMSXID, Field.Machine_GenMSXID,
Field.Machine_System, Field.Machine_System,
Field.Machine_Country, Field.Machine_Country,
// SoftwareList #endregion
#region SoftwareList
Field.Machine_Supported, Field.Machine_Supported,
#endregion
}; };
#endregion #endregion

View File

@@ -301,15 +301,6 @@ namespace SabreTools.Library.DatItems
if (fields.Contains(Field.DatItem_Mask)) if (fields.Contains(Field.DatItem_Mask))
Mask = null; Mask = null;
if (fields.Contains(Field.DatItem_Conditions))
Conditions = null;
if (fields.Contains(Field.DatItem_Locations))
Locations = null;
if (fields.Contains(Field.DatItem_Values))
Values = null;
// TODO: Handle DatItem_Condition* // TODO: Handle DatItem_Condition*
// TODO: Handle DatItem_Location* // TODO: Handle DatItem_Location*
// TODO: Handle DatItem_Value* // TODO: Handle DatItem_Value*
@@ -324,9 +315,6 @@ namespace SabreTools.Library.DatItems
if (fields.Contains(Field.DatItem_Part_Interface) && Part != null) if (fields.Contains(Field.DatItem_Part_Interface) && Part != null)
Part.Interface = null; Part.Interface = null;
if (fields.Contains(Field.DatItem_Features) && Part != null)
Part.Features = null;
// TODO: Handle DatItem_Feature* // TODO: Handle DatItem_Feature*
#endregion #endregion
@@ -376,15 +364,6 @@ namespace SabreTools.Library.DatItems
if (fields.Contains(Field.DatItem_Mask)) if (fields.Contains(Field.DatItem_Mask))
Mask = newItem.Mask; Mask = newItem.Mask;
if (fields.Contains(Field.DatItem_Conditions))
Conditions = newItem.Conditions;
if (fields.Contains(Field.DatItem_Locations))
Locations = newItem.Locations;
if (fields.Contains(Field.DatItem_Values))
Values = newItem.Values;
// TODO: Handle DatItem_Condition* // TODO: Handle DatItem_Condition*
// TODO: Handle DatItem_Location* // TODO: Handle DatItem_Location*
// TODO: Handle DatItem_Value* // TODO: Handle DatItem_Value*
@@ -409,13 +388,7 @@ namespace SabreTools.Library.DatItems
Part.Interface = newItem.Part?.Interface; Part.Interface = newItem.Part?.Interface;
} }
if (fields.Contains(Field.DatItem_Features)) // TODO: Handle DatItem_Part_Feature*
{
if (Part == null)
Part = new Part();
Part.Features = newItem.Part?.Features;
}
#endregion #endregion
} }

View File

@@ -555,9 +555,6 @@ namespace SabreTools.Library.DatItems
if (fields.Contains(Field.DatItem_Part_Interface) && Part != null) if (fields.Contains(Field.DatItem_Part_Interface) && Part != null)
Part.Interface = null; Part.Interface = null;
if (fields.Contains(Field.DatItem_Features) && Part != null)
Part.Features = null;
// TODO: Handle DatItem_Feature* // TODO: Handle DatItem_Feature*
#endregion #endregion
@@ -694,13 +691,7 @@ namespace SabreTools.Library.DatItems
Part.Interface = newItem.Part?.Interface; Part.Interface = newItem.Part?.Interface;
} }
if (fields.Contains(Field.DatItem_Features)) // TODO: Handle DatItem_Part_Feature*
{
if (Part == null)
Part = new Part();
Part.Features = newItem.Part?.Features;
}
#endregion #endregion
} }

View File

@@ -229,39 +229,16 @@ namespace SabreTools.Library.DatItems
#region Common #region Common
DatItem_Name,
DatItem_Type, DatItem_Type,
#endregion #endregion
#region AttractMode
DatItem_AltName,
DatItem_AltTitle,
#endregion
#region SoftwareList
// Part
DatItem_Part,
DatItem_Part_Name,
DatItem_Part_Interface,
// Feature
DatItem_Features,
DatItem_Feature_Name,
DatItem_Feature_Value,
DatItem_LoadFlag,
#endregion
#region Item-Specific #region Item-Specific
#region Actionable #region Actionable
// Rom // Rom
DatItem_Name,
DatItem_Bios, DatItem_Bios,
DatItem_Size, DatItem_Size,
DatItem_CRC, DatItem_CRC,
@@ -281,6 +258,10 @@ namespace SabreTools.Library.DatItems
DatItem_Optional, DatItem_Optional,
DatItem_Inverted, DatItem_Inverted,
// Rom (AttractMode)
DatItem_AltName,
DatItem_AltTitle,
// Rom (OpenMSX) // Rom (OpenMSX)
DatItem_Original, DatItem_Original,
DatItem_OpenMSXSubType, DatItem_OpenMSXSubType,
@@ -289,10 +270,15 @@ namespace SabreTools.Library.DatItems
DatItem_Boot, DatItem_Boot,
// Rom (SoftwareList) // Rom (SoftwareList)
DatItem_AreaName, DatItem_AreaName, // TODO: DataArea/DiskArea?
DatItem_AreaSize, DatItem_AreaSize, // TODO: DataArea?
DatItem_AreaWidth, DatItem_AreaWidth, // TODO: DataArea?
DatItem_AreaEndianness, DatItem_AreaEndianness, // TODO: DataArea?
DatItem_LoadFlag,
DatItem_Part_Name, // TODO: Part?
DatItem_Part_Interface, // TODO: Part?
DatItem_Part_Feature_Name, // TODO: PartFeature?
DatItem_Part_Feature_Value, // TODO: PartFeature?
DatItem_Value, DatItem_Value,
// Disk // Disk
@@ -305,14 +291,9 @@ namespace SabreTools.Library.DatItems
// Adjuster // Adjuster
DatItem_Default, DatItem_Default,
DatItem_Conditions,
DatItem_Condition_Tag,
DatItem_Condition_Mask,
DatItem_Condition_Relation,
DatItem_Condition_Value,
// Analog // Analog
DatItem_Mask, DatItem_Analog_Mask,
// BiosSet // BiosSet
DatItem_Description, DatItem_Description,
@@ -323,19 +304,26 @@ namespace SabreTools.Library.DatItems
DatItem_Clock, DatItem_Clock,
// Condition // Condition
DatItem_Mask,
DatItem_Relation, DatItem_Relation,
DatItem_Condition_Tag,
DatItem_Condition_Mask,
DatItem_Condition_Relation,
DatItem_Condition_Value,
// Configuration.Locations // Control
DatItem_Locations, DatItem_Control_Type,
DatItem_Location_Name, DatItem_Control_Player,
DatItem_Location_Number, DatItem_Control_Buttons,
DatItem_Location_Inverted, DatItem_Control_RegButtons,
DatItem_Control_Minimum,
// Configuration.Settings DatItem_Control_Maximum,
DatItem_Settings, DatItem_Control_Sensitivity,
DatItem_Setting_Name, DatItem_Control_KeyDelta,
DatItem_Setting_Value, DatItem_Control_Reverse,
DatItem_Setting_Default, DatItem_Control_Ways,
DatItem_Control_Ways2,
DatItem_Control_Ways3,
// Device // Device
DatItem_DeviceType, DatItem_DeviceType,
@@ -343,21 +331,6 @@ namespace SabreTools.Library.DatItems
DatItem_Mandatory, DatItem_Mandatory,
DatItem_Interface, DatItem_Interface,
// Device.Instances
DatItem_Instances,
DatItem_Instance_Name,
DatItem_Instance_BriefName,
// Device.Extensions
DatItem_Extensions,
DatItem_Extension_Name,
// DipSwitch.Values
DatItem_Values,
DatItem_Value_Name,
DatItem_Value_Value,
DatItem_Value_Default,
// Display // Display
DatItem_DisplayType, DatItem_DisplayType,
DatItem_Rotate, DatItem_Rotate,
@@ -379,35 +352,28 @@ namespace SabreTools.Library.DatItems
DatItem_CocktailStatus, DatItem_CocktailStatus,
DatItem_SaveStateStatus, DatItem_SaveStateStatus,
// Extension
DatItem_Extension_Name,
// Feature // Feature
DatItem_FeatureType, DatItem_FeatureType,
DatItem_FeatureStatus, DatItem_FeatureStatus,
DatItem_FeatureOverall, DatItem_FeatureOverall,
// Inputs // Input
DatItem_Service, DatItem_Service,
DatItem_Tilt, DatItem_Tilt,
DatItem_Players, DatItem_Players,
DatItem_Coins, DatItem_Coins,
// Inputs.Controls // Instance
DatItem_Controls, DatItem_Instance_Name,
DatItem_Control_Type, DatItem_Instance_BriefName,
DatItem_Control_Player,
DatItem_Control_Buttons,
DatItem_Control_RegButtons,
DatItem_Control_Minimum,
DatItem_Control_Maximum,
DatItem_Control_Sensitivity,
DatItem_Control_KeyDelta,
DatItem_Control_Reverse,
DatItem_Control_Ways,
DatItem_Control_Ways2,
DatItem_Control_Ways3,
// Port.Analogs // Location
DatItem_Analogs, DatItem_Location_Name,
DatItem_Analog_Mask, DatItem_Location_Number,
DatItem_Location_Inverted,
// RamOption // RamOption
DatItem_Content, DatItem_Content,
@@ -415,8 +381,12 @@ namespace SabreTools.Library.DatItems
// Release // Release
DatItem_Language, DatItem_Language,
// Slot.SlotOptions // Setting
DatItem_SlotOptions, DatItem_Setting_Name,
DatItem_Setting_Value,
DatItem_Setting_Default,
// SlotOption
DatItem_SlotOption_Name, DatItem_SlotOption_Name,
DatItem_SlotOption_DeviceName, DatItem_SlotOption_DeviceName,
DatItem_SlotOption_Default, DatItem_SlotOption_Default,
@@ -425,7 +395,7 @@ namespace SabreTools.Library.DatItems
DatItem_SoftwareListStatus, DatItem_SoftwareListStatus,
DatItem_Filter, DatItem_Filter,
// Sounds // Sound
DatItem_Channels, DatItem_Channels,
#endregion #endregion

View File

@@ -193,9 +193,6 @@ namespace SabreTools.Library.DatItems
if (fields.Contains(Field.DatItem_Coins)) if (fields.Contains(Field.DatItem_Coins))
Coins = null; Coins = null;
if (fields.Contains(Field.DatItem_Controls))
Controls = null;
// TODO: Handle DatItem_Control* // TODO: Handle DatItem_Control*
} }
@@ -233,9 +230,6 @@ namespace SabreTools.Library.DatItems
if (fields.Contains(Field.DatItem_Coins)) if (fields.Contains(Field.DatItem_Coins))
Coins = newItem.Coins; Coins = newItem.Coins;
if (fields.Contains(Field.DatItem_Controls))
Controls = newItem.Controls;
// TODO: Handle DatItem_Control* // TODO: Handle DatItem_Control*
} }

View File

@@ -134,9 +134,6 @@ namespace SabreTools.Library.DatItems
if (fields.Contains(Field.DatItem_Tag)) if (fields.Contains(Field.DatItem_Tag))
Tag = null; Tag = null;
if (fields.Contains(Field.DatItem_Analogs))
Analogs = null;
// TODO: Handle DatItem_Analog* // TODO: Handle DatItem_Analog*
} }
@@ -165,9 +162,6 @@ namespace SabreTools.Library.DatItems
if (fields.Contains(Field.DatItem_Name)) if (fields.Contains(Field.DatItem_Name))
Tag = newItem.Tag; Tag = newItem.Tag;
if (fields.Contains(Field.DatItem_Analogs))
Analogs = newItem.Analogs;
// TODO: Handle DatItem_Analog* // TODO: Handle DatItem_Analog*
} }

View File

@@ -1081,9 +1081,6 @@ namespace SabreTools.Library.DatItems
if (fields.Contains(Field.DatItem_Part_Interface) && Part != null) if (fields.Contains(Field.DatItem_Part_Interface) && Part != null)
Part.Interface = null; Part.Interface = null;
if (fields.Contains(Field.DatItem_Features) && Part != null)
Part.Features = null;
// TODO: Handle DatItem_Feature* // TODO: Handle DatItem_Feature*
if (fields.Contains(Field.DatItem_Value)) if (fields.Contains(Field.DatItem_Value))
@@ -1342,13 +1339,7 @@ namespace SabreTools.Library.DatItems
Part.Interface = newItem.Part?.Interface; Part.Interface = newItem.Part?.Interface;
} }
if (fields.Contains(Field.DatItem_Features)) // TODO: Handle DatItem_Part_Feature*
{
if (Part == null)
Part = new Part();
Part.Features = newItem.Part?.Features;
}
#endregion #endregion
} }

View File

@@ -207,10 +207,6 @@ namespace SabreTools.Library.DatItems
if (filter.DatItem_Setting_Default.MatchesNeutral(null, Default) == false) if (filter.DatItem_Setting_Default.MatchesNeutral(null, Default) == false)
return false; return false;
// Filter on conditions
if (filter.DatItem_Conditions.MatchesNeutral(null, Conditions != null ? (bool?)(Conditions.Count > 0) : null) == false)
return false;
// Filter on individual conditions // Filter on individual conditions
if (Conditions != null) if (Conditions != null)
{ {
@@ -243,9 +239,6 @@ namespace SabreTools.Library.DatItems
if (fields.Contains(Field.DatItem_Setting_Default)) if (fields.Contains(Field.DatItem_Setting_Default))
Default = null; Default = null;
if (fields.Contains(Field.DatItem_Conditions))
Conditions = null;
if (Conditions != null) if (Conditions != null)
{ {
foreach (Condition condition in Conditions) foreach (Condition condition in Conditions)

View File

@@ -173,9 +173,6 @@ namespace SabreTools.Library.DatItems
if (fields.Contains(Field.DatItem_Name)) if (fields.Contains(Field.DatItem_Name))
Name = null; Name = null;
if (fields.Contains(Field.DatItem_SlotOptions))
SlotOptions = null;
// TODO: Handle DatItem_SlotOption* // TODO: Handle DatItem_SlotOption*
} }
@@ -214,9 +211,6 @@ namespace SabreTools.Library.DatItems
if (fields.Contains(Field.DatItem_Name)) if (fields.Contains(Field.DatItem_Name))
Name = newItem.Name; Name = newItem.Name;
if (fields.Contains(Field.DatItem_SlotOptions))
SlotOptions = newItem.SlotOptions;
// TODO: Handle DatItem_SlotOption* // TODO: Handle DatItem_SlotOption*
} }

View File

@@ -33,7 +33,7 @@ namespace SabreTools.Library.DatItems
// Set base fields // Set base fields
base.SetFields(mappings); base.SetFields(mappings);
// Handle Sample-specific fields // Handle Sound-specific fields
if (mappings.Keys.Contains(Field.DatItem_Channels)) if (mappings.Keys.Contains(Field.DatItem_Channels))
Channels = mappings[Field.DatItem_Channels]; Channels = mappings[Field.DatItem_Channels];
} }

File diff suppressed because it is too large Load Diff

View File

@@ -661,90 +661,19 @@ namespace SabreTools.Library.Tools
{ {
#region Common #region Common
case "name":
return Field.DatItem_Name;
case "type": case "type":
return Field.DatItem_Type; return Field.DatItem_Type;
#endregion #endregion
#region AttractMode
case "altname":
case "alt name":
case "alt-name":
case "altromname":
case "alt romname":
case "alt-romname":
return Field.DatItem_AltName;
case "alttitle":
case "alt title":
case "alt-title":
case "altromtitle":
case "alt romtitle":
case "alt-romtitle":
return Field.DatItem_AltTitle;
#endregion
#region OpenMSX
case "original":
return Field.DatItem_Original;
case "subtype":
case "sub_type":
case "openmsxsubtype":
case "openmsx_subtype":
return Field.DatItem_OpenMSXSubType;
case "openmsxtype":
case "openmsx_type":
return Field.DatItem_OpenMSXType;
case "remark":
return Field.DatItem_Remark;
case "boot":
return Field.DatItem_Boot;
#endregion
#region SoftwareList
case "part":
return Field.DatItem_Part;
case "partname":
case "part_name":
return Field.DatItem_Part_Name;
case "partinterface":
case "part_interface":
return Field.DatItem_Part_Interface;
case "features":
return Field.DatItem_Features;
case "feature_name":
return Field.DatItem_Feature_Name;
case "feature_value":
return Field.DatItem_Feature_Value;
case "loadflag":
case "load_flag":
return Field.DatItem_LoadFlag;
#endregion
#region Item-Specific #region Item-Specific
#region Actionable #region Actionable
// Rom // Rom
case "name":
return Field.DatItem_Name;
case "bios": case "bios":
return Field.DatItem_Bios; return Field.DatItem_Bios;
@@ -820,6 +749,43 @@ namespace SabreTools.Library.Tools
case "inverted": case "inverted":
return Field.DatItem_Inverted; return Field.DatItem_Inverted;
// Rom (AttractMode)
case "altname":
case "alt name":
case "alt-name":
case "altromname":
case "alt romname":
case "alt-romname":
return Field.DatItem_AltName;
case "alttitle":
case "alt title":
case "alt-title":
case "altromtitle":
case "alt romtitle":
case "alt-romtitle":
return Field.DatItem_AltTitle;
// Rom (OpenMSX)
case "original":
return Field.DatItem_Original;
case "subtype":
case "sub_type":
case "openmsxsubtype":
case "openmsx_subtype":
return Field.DatItem_OpenMSXSubType;
case "openmsxtype":
case "openmsx_type":
return Field.DatItem_OpenMSXType;
case "remark":
return Field.DatItem_Remark;
case "boot":
return Field.DatItem_Boot;
// Rom (SoftwareList) // Rom (SoftwareList)
case "areaname": case "areaname":
case "area_name": case "area_name":
@@ -837,6 +803,24 @@ namespace SabreTools.Library.Tools
case "area_endianness": case "area_endianness":
return Field.DatItem_AreaEndianness; return Field.DatItem_AreaEndianness;
case "loadflag":
case "load_flag":
return Field.DatItem_LoadFlag;
case "partname":
case "part_name":
return Field.DatItem_Part_Name;
case "partinterface":
case "part_interface":
return Field.DatItem_Part_Interface;
case "part_feature_name":
return Field.DatItem_Part_Feature_Name;
case "part_feature_value":
return Field.DatItem_Part_Feature_Value;
case "value": case "value":
return Field.DatItem_Value; return Field.DatItem_Value;
@@ -855,24 +839,9 @@ namespace SabreTools.Library.Tools
case "default": case "default":
return Field.DatItem_Default; return Field.DatItem_Default;
case "conditions":
return Field.DatItem_Conditions;
case "condition_tag":
return Field.DatItem_Condition_Tag;
case "condition_mask":
return Field.DatItem_Condition_Mask;
case "condition_relation":
return Field.DatItem_Condition_Relation;
case "condition_value":
return Field.DatItem_Condition_Value;
// Analog // Analog
case "mask": case "analog_mask":
return Field.DatItem_Mask; return Field.DatItem_Analog_Mask;
// BiosSet // BiosSet
case "description": case "description":
@@ -892,46 +861,60 @@ namespace SabreTools.Library.Tools
return Field.DatItem_Clock; return Field.DatItem_Clock;
// Condition // Condition
case "mask":
return Field.DatItem_Mask;
case "relation": case "relation":
return Field.DatItem_Relation; return Field.DatItem_Relation;
// Configuration case "condition_tag":
case "locations": return Field.DatItem_Condition_Tag;
return Field.DatItem_Locations;
case "location_name": case "condition_mask":
return Field.DatItem_Location_Name; return Field.DatItem_Condition_Mask;
case "location_number": case "condition_relation":
return Field.DatItem_Location_Number; return Field.DatItem_Condition_Relation;
case "location_inverted": case "condition_value":
return Field.DatItem_Location_Inverted; return Field.DatItem_Condition_Value;
case "settings": // Control
return Field.DatItem_Settings; case "control_type":
return Field.DatItem_Control_Type;
case "setting_name": case "control_player":
return Field.DatItem_Setting_Name; return Field.DatItem_Control_Player;
case "setting_value": case "control_buttons":
return Field.DatItem_Setting_Value; return Field.DatItem_Control_Buttons;
case "setting_default": case "control_regbuttons":
return Field.DatItem_Setting_Default; return Field.DatItem_Control_RegButtons;
// DIP Switch case "control_minimum":
case "values": return Field.DatItem_Control_Minimum;
return Field.DatItem_Values;
case "value_name": case "control_maximum":
return Field.DatItem_Value_Name; return Field.DatItem_Control_Maximum;
case "value_value": case "control_sensitivity":
return Field.DatItem_Value_Value; return Field.DatItem_Control_Sensitivity;
case "value_default": case "control_keydelta":
return Field.DatItem_Value_Default; return Field.DatItem_Control_KeyDelta;
case "control_reverse":
return Field.DatItem_Control_Reverse;
case "control_ways":
return Field.DatItem_Control_Ways;
case "control_ways2":
return Field.DatItem_Control_Ways2;
case "control_ways3":
return Field.DatItem_Control_Ways3;
// Device // Device
case "devicetype": case "devicetype":
@@ -946,21 +929,6 @@ namespace SabreTools.Library.Tools
case "interface": case "interface":
return Field.DatItem_Interface; return Field.DatItem_Interface;
case "instances":
return Field.DatItem_Instances;
case "instance_name":
return Field.DatItem_Instance_Name;
case "instance_briefname":
return Field.DatItem_Instance_BriefName;
case "extensions":
return Field.DatItem_Extensions;
case "extension_name":
return Field.DatItem_Extension_Name;
// Display // Display
case "displaytype": case "displaytype":
return Field.DatItem_DisplayType; return Field.DatItem_DisplayType;
@@ -1014,6 +982,10 @@ namespace SabreTools.Library.Tools
case "savestatestatus": case "savestatestatus":
return Field.DatItem_SaveStateStatus; return Field.DatItem_SaveStateStatus;
// Extension
case "extension_name":
return Field.DatItem_Extension_Name;
// Feature // Feature
case "featuretype": case "featuretype":
return Field.DatItem_FeatureType; return Field.DatItem_FeatureType;
@@ -1037,51 +1009,22 @@ namespace SabreTools.Library.Tools
case "coins": case "coins":
return Field.DatItem_Coins; return Field.DatItem_Coins;
case "controls": // Instance
return Field.DatItem_Controls; case "instance_name":
return Field.DatItem_Instance_Name;
case "control_type": case "instance_briefname":
return Field.DatItem_Control_Type; return Field.DatItem_Instance_BriefName;
case "control_player": // Location
return Field.DatItem_Control_Player; case "location_name":
return Field.DatItem_Location_Name;
case "control_buttons": case "location_number":
return Field.DatItem_Control_Buttons; return Field.DatItem_Location_Number;
case "control_regbuttons": case "location_inverted":
return Field.DatItem_Control_RegButtons; return Field.DatItem_Location_Inverted;
case "control_minimum":
return Field.DatItem_Control_Minimum;
case "control_maximum":
return Field.DatItem_Control_Maximum;
case "control_sensitivity":
return Field.DatItem_Control_Sensitivity;
case "control_keydelta":
return Field.DatItem_Control_KeyDelta;
case "control_reverse":
return Field.DatItem_Control_Reverse;
case "control_ways":
return Field.DatItem_Control_Ways;
case "control_ways2":
return Field.DatItem_Control_Ways2;
case "control_ways3":
return Field.DatItem_Control_Ways3;
// Port
case "analogs":
return Field.DatItem_Analogs;
case "analog_mask":
return Field.DatItem_Analog_Mask;
// RamOption // RamOption
case "content": case "content":
@@ -1091,10 +1034,20 @@ namespace SabreTools.Library.Tools
case "language": case "language":
return Field.DatItem_Language; return Field.DatItem_Language;
// Slot // Setting
case "slotoptions": case "setting_name":
return Field.DatItem_SlotOptions; case "value_name":
return Field.DatItem_Setting_Name;
case "setting_value":
case "value_value":
return Field.DatItem_Setting_Value;
case "setting_default":
case "value_default":
return Field.DatItem_Setting_Default;
// SlotOption
case "slotoption_name": case "slotoption_name":
return Field.DatItem_SlotOption_Name; return Field.DatItem_SlotOption_Name;
@@ -1377,8 +1330,6 @@ namespace SabreTools.Library.Tools
case "part interface": case "part interface":
case "part-interface": case "part-interface":
return Field.DatItem_Part_Interface; return Field.DatItem_Part_Interface;
case "features":
return Field.DatItem_Features;
case "areaname": case "areaname":
case "area name": case "area name":
case "area-name": case "area-name":
@@ -1504,9 +1455,6 @@ namespace SabreTools.Library.Tools
case "default": case "default":
return Field.DatItem_Default; return Field.DatItem_Default;
case "conditions":
return Field.DatItem_Conditions;
case "condition_tag": case "condition_tag":
return Field.DatItem_Condition_Tag; return Field.DatItem_Condition_Tag;