Reorganize and add comments to MachineField

This commit is contained in:
Matt Nadareski
2023-04-20 16:30:00 -04:00
parent b285ecf66d
commit 7c6945fe09
6 changed files with 393 additions and 467 deletions

View File

@@ -914,6 +914,9 @@ namespace SabreTools.Core
/// </summary> /// </summary>
public enum DatItemField public enum DatItemField
{ {
/// <summary>
/// This is a fake flag that is used for filter only
/// </summary>
NULL = 0, NULL = 0,
/// <remarks>Used in Rom</remarks> /// <remarks>Used in Rom</remarks>
@@ -1423,148 +1426,157 @@ namespace SabreTools.Core
/// </summary> /// </summary>
NULL = 0, NULL = 0,
#region Common /// <remarks>Used in Logiqx</remarks>
[Mapping("name")]
Name,
/// <remarks>"extra" is used with AttractMode</remarks>
[Mapping("comment", "extra")]
Comment,
[Mapping("desc", "description")]
Description,
[Mapping("year")]
Year,
[Mapping("manufacturer")]
Manufacturer,
[Mapping("publisher")]
Publisher,
[Mapping("category")]
Category,
[Mapping("romof", "rom_of")]
RomOf,
[Mapping("cloneof", "clone_of")]
CloneOf,
[Mapping("sampleof", "sample_of")]
SampleOf,
[Mapping("type")]
Type,
#endregion
#region AttractMode
[Mapping("players")]
Players,
[Mapping("rotation")]
Rotation,
[Mapping("control")]
Control,
[Mapping("amstatus", "am_status", "gamestatus", "supportstatus", "support_status")]
Status,
[Mapping("displaycount", "display_count")]
DisplayCount,
[Mapping("displaytype", "display_type")]
DisplayType,
[Mapping("buttons")]
Buttons,
#endregion
#region ListXML
[Mapping("history")]
History,
[Mapping("sourcefile", "source_file")]
SourceFile,
[Mapping("runnable")]
Runnable,
#endregion
#region Logiqx
[Mapping("board")] [Mapping("board")]
Board, Board,
[Mapping("rebuildto", "rebuild_to")] /// <remarks>Used in AttractMode</remarks>
RebuildTo, [Mapping("buttons")]
Buttons,
[Mapping("id", "nointroid", "nointro_id", "no_intro_id")] /// <remarks>Used in AttractMode, ClrMamePro, and Logiqx</remarks>
NoIntroId, [Mapping("category")]
Category,
/// <remarks>Used in AttractMode, ClrMamePro, ListXML, Logiqx, OfflineList, RomCenter, and Software List</remarks>
[Mapping("cloneof", "clone_of")]
CloneOf,
/// <remarks>Used in Logiqx</remarks>
[Mapping("cloneofid", "nointrocloneofid", "nointro_cloneofid", "no_intro_cloneofid", "no_intro_clone_of_id")] [Mapping("cloneofid", "nointrocloneofid", "nointro_cloneofid", "no_intro_cloneofid", "no_intro_clone_of_id")]
NoIntroCloneOfId, CloneOfID,
#endregion /// <remarks>Used in AttractMode, Logiqx, and OfflineList; "extra" is used with AttractMode</remarks>
[Mapping("comment", "extra")]
Comment,
#region Logiqx EmuArc /// <remarks>Used in AttractMode</remarks>
[Mapping("control")]
[Mapping("titleid", "title_id")] Control,
TitleID,
[Mapping("developer")]
Developer,
[Mapping("genre")]
Genre,
[Mapping("subgenre", "sub_genre")]
Subgenre,
[Mapping("ratings")]
Ratings,
[Mapping("score")]
Score,
[Mapping("enabled")]
Enabled,
[Mapping("crc", "hascrc", "has_crc")]
CRC,
[Mapping("relatedto", "related_to")]
RelatedTo,
#endregion
#region OpenMSX
[Mapping("genmsxid", "genmsx_id", "gen_msxid", "gen_msx_id")]
GenMSXID,
[Mapping("system", "msxsystem", "msx_system")]
System,
/// <remarks>Used in OpenMSX</remarks>
[Mapping("country")] [Mapping("country")]
Country, Country,
#endregion /// <remarks>Used in Logiqx (EmuArc Extension)</remarks>
[Mapping("crc", "hascrc", "has_crc")]
CRC,
#region SoftwareList /// <remarks>Used in ArchiveDotOrg, AttractMode, ClrMamePro, DOSCenter, Everdrive SMDB, ListXML, Logiqx, RomCenter, Separated Value, and Software List</remarks>
[Mapping("desc", "description")]
Description,
/// <remarks>Used in Logiqx (EmuArc Extension)</remarks>
[Mapping("developer")]
Developer,
/// <remarks>Used in AttractMode</remarks>
[Mapping("displaycount", "display_count")]
DisplayCount,
/// <remarks>Used in AttractMode</remarks>
[Mapping("displaytype", "display_type")]
DisplayType,
/// <remarks>Used in Logiqx (EmuArc Extension)</remarks>
[Mapping("enabled")]
Enabled,
/// <remarks>Used in OpenMSX</remarks>
[Mapping("genmsxid", "genmsx_id", "gen_msxid", "gen_msx_id")]
GenMSXID,
/// <remarks>Used in Logiqx (EmuArc Extension)</remarks>
[Mapping("genre")]
Genre,
/// <remarks>Used in ListXML</remarks>
[Mapping("history")]
History,
/// <remarks>Used in Logiqx</remarks>
[Mapping("id", "nointroid", "nointro_id", "no_intro_id")]
ID,
/// <remarks>Used in AttractMode, ClrMamePro, ListXML, Logiqx, and OpenMSX</remarks>
[Mapping("manufacturer")]
Manufacturer,
/// <remarks>Used in ArchiveDotOrg, AttractMode, ClrMamePro, DOSCenter, Everdrive SMDB, Hashfile, ListROM, ListXML, Logiqx, Missfile, OfflineList, OpenMSX, RomCenter, Separated Value, and Software List</remarks>
[Mapping("name")]
Name,
/// <remarks>Used in AttractMode and Logiqx</remarks>
[Mapping("players")]
Players,
/// <remarks>Used in Logiqx, OfflineList, and Software List</remarks>
[Mapping("publisher")]
Publisher,
/// <remarks>Used in Logiqx (EmuArc Extension)</remarks>
[Mapping("ratings")]
Ratings,
/// <remarks>Used in Logiqx</remarks>
[Mapping("rebuildto", "rebuild_to")]
RebuildTo,
/// <remarks>Used in Logiqx (EmuArc Extension)</remarks>
[Mapping("relatedto", "related_to")]
RelatedTo,
/// <remarks>Used in ClrMamePro, ListXML, Logiqx, and RomCenter</remarks>
[Mapping("romof", "rom_of")]
RomOf,
/// <remarks>Used in AttractMode</remarks>
[Mapping("rotation")]
Rotation,
/// <remarks>Used in ListXML and Logiqx</remarks>
[Mapping("runnable")]
Runnable,
/// <remarks>Used in ClrMamePro, ListXML, and Logiqx</remarks>
[Mapping("sampleof", "sample_of")]
SampleOf,
/// <remarks>Used in Logiqx (EmuArc Extension)</remarks>
[Mapping("score")]
Score,
/// <remarks>Used in ListXML and Logiqx</remarks>
[Mapping("sourcefile", "source_file")]
SourceFile,
/// <remarks>Used in AttractMode</remarks>
[Mapping("amstatus", "am_status", "gamestatus", "supportstatus", "support_status")]
Status,
/// <remarks>Used in Logiqx (EmuArc Extension)</remarks>
[Mapping("subgenre", "sub_genre")]
Subgenre,
/// <remarks>Used in Software List</remarks>
[Mapping("supported")] [Mapping("supported")]
Supported, Supported,
#endregion /// <remarks>Used in OpenMSX</remarks>
[Mapping("system", "msxsystem", "msx_system")]
System,
/// <remarks>Used in Logiqx (EmuArc Extension)</remarks>
[Mapping("titleid", "title_id")]
TitleID,
/// <remarks>Used in ClrMamePro, DOSCenter, ListXML, and Logiqx</remarks>
[Mapping("type")]
Type,
/// <remarks>Used in AttractMode, ClrMamePro, ListXML, Logiqx, OpenMSX, and Software List</remarks>
[Mapping("year")]
Year,
} }
#endregion #endregion

View File

@@ -269,56 +269,38 @@ namespace SabreTools.DatFiles
if (machine == null || MachineMappings == null) if (machine == null || MachineMappings == null)
return; return;
#region Common if (MachineMappings.ContainsKey(MachineField.Board))
machine.Board = MachineMappings[MachineField.Board];
if (MachineMappings.ContainsKey(MachineField.Name)) if (MachineMappings.ContainsKey(MachineField.Buttons))
machine.Name = MachineMappings[MachineField.Name]; machine.Buttons = MachineMappings[MachineField.Buttons];
if (MachineMappings.ContainsKey(MachineField.Comment))
machine.Comment = MachineMappings[MachineField.Comment];
if (MachineMappings.ContainsKey(MachineField.Description))
machine.Description = MachineMappings[MachineField.Description];
if (MachineMappings.ContainsKey(MachineField.Year))
machine.Year = MachineMappings[MachineField.Year];
if (MachineMappings.ContainsKey(MachineField.Manufacturer))
machine.Manufacturer = MachineMappings[MachineField.Manufacturer];
if (MachineMappings.ContainsKey(MachineField.Publisher))
machine.Publisher = MachineMappings[MachineField.Publisher];
if (MachineMappings.ContainsKey(MachineField.Category)) if (MachineMappings.ContainsKey(MachineField.Category))
machine.Category = MachineMappings[MachineField.Category]; machine.Category = MachineMappings[MachineField.Category];
if (MachineMappings.ContainsKey(MachineField.RomOf))
machine.RomOf = MachineMappings[MachineField.RomOf];
if (MachineMappings.ContainsKey(MachineField.CloneOf)) if (MachineMappings.ContainsKey(MachineField.CloneOf))
machine.CloneOf = MachineMappings[MachineField.CloneOf]; machine.CloneOf = MachineMappings[MachineField.CloneOf];
if (MachineMappings.ContainsKey(MachineField.SampleOf)) if (MachineMappings.ContainsKey(MachineField.CloneOfID))
machine.SampleOf = MachineMappings[MachineField.SampleOf]; machine.NoIntroCloneOfId = MachineMappings[MachineField.CloneOfID];
if (MachineMappings.ContainsKey(MachineField.Type)) if (MachineMappings.ContainsKey(MachineField.Comment))
machine.MachineType = MachineMappings[MachineField.Type].AsMachineType(); machine.Comment = MachineMappings[MachineField.Comment];
#endregion
#region AttractMode
if (MachineMappings.ContainsKey(MachineField.Players))
machine.Players = MachineMappings[MachineField.Players];
if (MachineMappings.ContainsKey(MachineField.Rotation))
machine.Rotation = MachineMappings[MachineField.Rotation];
if (MachineMappings.ContainsKey(MachineField.Control)) if (MachineMappings.ContainsKey(MachineField.Control))
machine.Control = MachineMappings[MachineField.Control]; machine.Control = MachineMappings[MachineField.Control];
if (MachineMappings.ContainsKey(MachineField.Status)) if (MachineMappings.ContainsKey(MachineField.Country))
machine.Status = MachineMappings[MachineField.Status]; machine.Country = MachineMappings[MachineField.Country];
if (MachineMappings.ContainsKey(MachineField.CRC))
machine.Crc = MachineMappings[MachineField.CRC].AsYesNo();
if (MachineMappings.ContainsKey(MachineField.Description))
machine.Description = MachineMappings[MachineField.Description];
if (MachineMappings.ContainsKey(MachineField.Developer))
machine.Developer = MachineMappings[MachineField.Developer];
if (MachineMappings.ContainsKey(MachineField.DisplayCount)) if (MachineMappings.ContainsKey(MachineField.DisplayCount))
machine.DisplayCount = MachineMappings[MachineField.DisplayCount]; machine.DisplayCount = MachineMappings[MachineField.DisplayCount];
@@ -326,90 +308,80 @@ namespace SabreTools.DatFiles
if (MachineMappings.ContainsKey(MachineField.DisplayType)) if (MachineMappings.ContainsKey(MachineField.DisplayType))
machine.DisplayType = MachineMappings[MachineField.DisplayType]; machine.DisplayType = MachineMappings[MachineField.DisplayType];
if (MachineMappings.ContainsKey(MachineField.Buttons))
machine.Buttons = MachineMappings[MachineField.Buttons];
#endregion
#region ListXML
if (MachineMappings.ContainsKey(MachineField.History))
machine.History = MachineMappings[MachineField.History];
if (MachineMappings.ContainsKey(MachineField.SourceFile))
machine.SourceFile = MachineMappings[MachineField.SourceFile];
if (MachineMappings.ContainsKey(MachineField.Runnable))
machine.Runnable = MachineMappings[MachineField.Runnable].AsRunnable();
#endregion
#region Logiqx
if (MachineMappings.ContainsKey(MachineField.Board))
machine.Board = MachineMappings[MachineField.Board];
if (MachineMappings.ContainsKey(MachineField.RebuildTo))
machine.RebuildTo = MachineMappings[MachineField.RebuildTo];
if (MachineMappings.ContainsKey(MachineField.NoIntroId))
machine.NoIntroId = MachineMappings[MachineField.NoIntroId];
if (MachineMappings.ContainsKey(MachineField.NoIntroCloneOfId))
machine.NoIntroCloneOfId = MachineMappings[MachineField.NoIntroCloneOfId];
#endregion
#region Logiqx EmuArc
if (MachineMappings.ContainsKey(MachineField.TitleID))
machine.TitleID = MachineMappings[MachineField.TitleID];
if (MachineMappings.ContainsKey(MachineField.Developer))
machine.Developer = MachineMappings[MachineField.Developer];
if (MachineMappings.ContainsKey(MachineField.Genre))
machine.Genre = MachineMappings[MachineField.Genre];
if (MachineMappings.ContainsKey(MachineField.Subgenre))
machine.Subgenre = MachineMappings[MachineField.Subgenre];
if (MachineMappings.ContainsKey(MachineField.Ratings))
machine.Ratings = MachineMappings[MachineField.Ratings];
if (MachineMappings.ContainsKey(MachineField.Score))
machine.Score = MachineMappings[MachineField.Score];
if (MachineMappings.ContainsKey(MachineField.Enabled)) if (MachineMappings.ContainsKey(MachineField.Enabled))
machine.Enabled = MachineMappings[MachineField.Enabled]; machine.Enabled = MachineMappings[MachineField.Enabled];
if (MachineMappings.ContainsKey(MachineField.CRC))
machine.Crc = MachineMappings[MachineField.CRC].AsYesNo();
if (MachineMappings.ContainsKey(MachineField.RelatedTo))
machine.RelatedTo = MachineMappings[MachineField.RelatedTo];
#endregion
#region OpenMSX
if (MachineMappings.ContainsKey(MachineField.GenMSXID)) if (MachineMappings.ContainsKey(MachineField.GenMSXID))
machine.GenMSXID = MachineMappings[MachineField.GenMSXID]; machine.GenMSXID = MachineMappings[MachineField.GenMSXID];
if (MachineMappings.ContainsKey(MachineField.System)) if (MachineMappings.ContainsKey(MachineField.Genre))
machine.System = MachineMappings[MachineField.System]; machine.Genre = MachineMappings[MachineField.Genre];
if (MachineMappings.ContainsKey(MachineField.Country)) if (MachineMappings.ContainsKey(MachineField.History))
machine.Country = MachineMappings[MachineField.Country]; machine.History = MachineMappings[MachineField.History];
#endregion if (MachineMappings.ContainsKey(MachineField.ID))
machine.NoIntroId = MachineMappings[MachineField.ID];
#region SoftwareList if (MachineMappings.ContainsKey(MachineField.Manufacturer))
machine.Manufacturer = MachineMappings[MachineField.Manufacturer];
if (MachineMappings.ContainsKey(MachineField.Name))
machine.Name = MachineMappings[MachineField.Name];
if (MachineMappings.ContainsKey(MachineField.Players))
machine.Players = MachineMappings[MachineField.Players];
if (MachineMappings.ContainsKey(MachineField.Publisher))
machine.Publisher = MachineMappings[MachineField.Publisher];
if (MachineMappings.ContainsKey(MachineField.Ratings))
machine.Ratings = MachineMappings[MachineField.Ratings];
if (MachineMappings.ContainsKey(MachineField.RebuildTo))
machine.RebuildTo = MachineMappings[MachineField.RebuildTo];
if (MachineMappings.ContainsKey(MachineField.RelatedTo))
machine.RelatedTo = MachineMappings[MachineField.RelatedTo];
if (MachineMappings.ContainsKey(MachineField.RomOf))
machine.RomOf = MachineMappings[MachineField.RomOf];
if (MachineMappings.ContainsKey(MachineField.Rotation))
machine.Rotation = MachineMappings[MachineField.Rotation];
if (MachineMappings.ContainsKey(MachineField.Runnable))
machine.Runnable = MachineMappings[MachineField.Runnable].AsRunnable();
if (MachineMappings.ContainsKey(MachineField.SampleOf))
machine.SampleOf = MachineMappings[MachineField.SampleOf];
if (MachineMappings.ContainsKey(MachineField.Score))
machine.Score = MachineMappings[MachineField.Score];
if (MachineMappings.ContainsKey(MachineField.SourceFile))
machine.SourceFile = MachineMappings[MachineField.SourceFile];
if (MachineMappings.ContainsKey(MachineField.Status))
machine.Status = MachineMappings[MachineField.Status];
if (MachineMappings.ContainsKey(MachineField.Subgenre))
machine.Subgenre = MachineMappings[MachineField.Subgenre];
if (MachineMappings.ContainsKey(MachineField.Supported)) if (MachineMappings.ContainsKey(MachineField.Supported))
machine.Supported = MachineMappings[MachineField.Supported].AsSupported(); machine.Supported = MachineMappings[MachineField.Supported].AsSupported();
#endregion if (MachineMappings.ContainsKey(MachineField.System))
machine.System = MachineMappings[MachineField.System];
if (MachineMappings.ContainsKey(MachineField.TitleID))
machine.TitleID = MachineMappings[MachineField.TitleID];
if (MachineMappings.ContainsKey(MachineField.Type))
machine.MachineType = MachineMappings[MachineField.Type].AsMachineType();
if (MachineMappings.ContainsKey(MachineField.Year))
machine.Year = MachineMappings[MachineField.Year];
} }
/// <summary> /// <summary>

View File

@@ -1,6 +1,5 @@
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using SabreTools.Core; using SabreTools.Core;
using SabreTools.Core.Tools; using SabreTools.Core.Tools;
using SabreTools.DatItems; using SabreTools.DatItems;
@@ -130,56 +129,38 @@ namespace SabreTools.Filtering
/// <param name="machine">Machine to remove fields from</param> /// <param name="machine">Machine to remove fields from</param>
private void RemoveFields(Machine machine) private void RemoveFields(Machine machine)
{ {
#region Common if (MachineFields.Contains(MachineField.Board))
machine.Board = null;
if (MachineFields.Contains(MachineField.Name)) if (MachineFields.Contains(MachineField.Buttons))
machine.Name = null; machine.Buttons = null;
if (MachineFields.Contains(MachineField.Comment))
machine.Comment = null;
if (MachineFields.Contains(MachineField.Description))
machine.Description = null;
if (MachineFields.Contains(MachineField.Year))
machine.Year = null;
if (MachineFields.Contains(MachineField.Manufacturer))
machine.Manufacturer = null;
if (MachineFields.Contains(MachineField.Publisher))
machine.Publisher = null;
if (MachineFields.Contains(MachineField.Category)) if (MachineFields.Contains(MachineField.Category))
machine.Category = null; machine.Category = null;
if (MachineFields.Contains(MachineField.RomOf))
machine.RomOf = null;
if (MachineFields.Contains(MachineField.CloneOf)) if (MachineFields.Contains(MachineField.CloneOf))
machine.CloneOf = null; machine.CloneOf = null;
if (MachineFields.Contains(MachineField.SampleOf)) if (MachineFields.Contains(MachineField.CloneOfID))
machine.SampleOf = null; machine.NoIntroCloneOfId = null;
if (MachineFields.Contains(MachineField.Type)) if (MachineFields.Contains(MachineField.Comment))
machine.MachineType = 0x0; machine.Comment = null;
#endregion
#region AttractMode
if (MachineFields.Contains(MachineField.Players))
machine.Players = null;
if (MachineFields.Contains(MachineField.Rotation))
machine.Rotation = null;
if (MachineFields.Contains(MachineField.Control)) if (MachineFields.Contains(MachineField.Control))
machine.Control = null; machine.Control = null;
if (MachineFields.Contains(MachineField.Status)) if (MachineFields.Contains(MachineField.Country))
machine.Status = null; machine.Country = null;
if (MachineFields.Contains(MachineField.CRC))
machine.Crc = null;
if (MachineFields.Contains(MachineField.Description))
machine.Description = null;
if (MachineFields.Contains(MachineField.Developer))
machine.Developer = null;
if (MachineFields.Contains(MachineField.DisplayCount)) if (MachineFields.Contains(MachineField.DisplayCount))
machine.DisplayCount = null; machine.DisplayCount = null;
@@ -187,90 +168,80 @@ namespace SabreTools.Filtering
if (MachineFields.Contains(MachineField.DisplayType)) if (MachineFields.Contains(MachineField.DisplayType))
machine.DisplayType = null; machine.DisplayType = null;
if (MachineFields.Contains(MachineField.Buttons))
machine.Buttons = null;
#endregion
#region ListXML
if (MachineFields.Contains(MachineField.History))
machine.History = null;
if (MachineFields.Contains(MachineField.SourceFile))
machine.SourceFile = null;
if (MachineFields.Contains(MachineField.Runnable))
machine.Runnable = Runnable.NULL;
#endregion
#region Logiqx
if (MachineFields.Contains(MachineField.Board))
machine.Board = null;
if (MachineFields.Contains(MachineField.RebuildTo))
machine.RebuildTo = null;
if (MachineFields.Contains(MachineField.NoIntroId))
machine.NoIntroId = null;
if (MachineFields.Contains(MachineField.NoIntroCloneOfId))
machine.NoIntroCloneOfId = null;
#endregion
#region Logiqx EmuArc
if (MachineFields.Contains(MachineField.TitleID))
machine.TitleID = null;
if (MachineFields.Contains(MachineField.Developer))
machine.Developer = null;
if (MachineFields.Contains(MachineField.Genre))
machine.Genre = null;
if (MachineFields.Contains(MachineField.Subgenre))
machine.Subgenre = null;
if (MachineFields.Contains(MachineField.Ratings))
machine.Ratings = null;
if (MachineFields.Contains(MachineField.Score))
machine.Score = null;
if (MachineFields.Contains(MachineField.Enabled)) if (MachineFields.Contains(MachineField.Enabled))
machine.Enabled = null; machine.Enabled = null;
if (MachineFields.Contains(MachineField.CRC))
machine.Crc = null;
if (MachineFields.Contains(MachineField.RelatedTo))
machine.RelatedTo = null;
#endregion
#region OpenMSX
if (MachineFields.Contains(MachineField.GenMSXID)) if (MachineFields.Contains(MachineField.GenMSXID))
machine.GenMSXID = null; machine.GenMSXID = null;
if (MachineFields.Contains(MachineField.System)) if (MachineFields.Contains(MachineField.Genre))
machine.System = null; machine.Genre = null;
if (MachineFields.Contains(MachineField.Country)) if (MachineFields.Contains(MachineField.History))
machine.Country = null; machine.History = null;
#endregion if (MachineFields.Contains(MachineField.ID))
machine.NoIntroId = null;
#region SoftwareList if (MachineFields.Contains(MachineField.Manufacturer))
machine.Manufacturer = null;
if (MachineFields.Contains(MachineField.Name))
machine.Name = null;
if (MachineFields.Contains(MachineField.Players))
machine.Players = null;
if (MachineFields.Contains(MachineField.Publisher))
machine.Publisher = null;
if (MachineFields.Contains(MachineField.Ratings))
machine.Ratings = null;
if (MachineFields.Contains(MachineField.RebuildTo))
machine.RebuildTo = null;
if (MachineFields.Contains(MachineField.RelatedTo))
machine.RelatedTo = null;
if (MachineFields.Contains(MachineField.RomOf))
machine.RomOf = null;
if (MachineFields.Contains(MachineField.Rotation))
machine.Rotation = null;
if (MachineFields.Contains(MachineField.Runnable))
machine.Runnable = Runnable.NULL;
if (MachineFields.Contains(MachineField.SampleOf))
machine.SampleOf = null;
if (MachineFields.Contains(MachineField.Score))
machine.Score = null;
if (MachineFields.Contains(MachineField.SourceFile))
machine.SourceFile = null;
if (MachineFields.Contains(MachineField.Status))
machine.Status = null;
if (MachineFields.Contains(MachineField.Subgenre))
machine.Subgenre = null;
if (MachineFields.Contains(MachineField.Supported)) if (MachineFields.Contains(MachineField.Supported))
machine.Supported = Supported.NULL; machine.Supported = Supported.NULL;
#endregion if (MachineFields.Contains(MachineField.System))
machine.System = null;
if (MachineFields.Contains(MachineField.TitleID))
machine.TitleID = null;
if (MachineFields.Contains(MachineField.Type))
machine.MachineType = 0x0;
if (MachineFields.Contains(MachineField.Year))
machine.Year = null;
} }
/// <summary> /// <summary>

View File

@@ -257,11 +257,11 @@ namespace SabreTools.Filtering
SetStringFilter(RebuildTo, value, negate); SetStringFilter(RebuildTo, value, negate);
break; break;
case MachineField.NoIntroId: case MachineField.ID:
SetStringFilter(NoIntroId, value, negate); SetStringFilter(NoIntroId, value, negate);
break; break;
case MachineField.NoIntroCloneOfId: case MachineField.CloneOfID:
SetStringFilter(NoIntroCloneOfId, value, negate); SetStringFilter(NoIntroCloneOfId, value, negate);
break; break;

View File

@@ -1,5 +1,4 @@
using System.Collections.Generic; using System.Collections.Generic;
using SabreTools.Core; using SabreTools.Core;
using SabreTools.DatItems; using SabreTools.DatItems;
using SabreTools.DatItems.Formats; using SabreTools.DatItems.Formats;
@@ -81,59 +80,41 @@ namespace SabreTools.Filtering
/// <param name="onlySame">True if descriptions should only be replaced if the game name is the same, false otherwise</param> /// <param name="onlySame">True if descriptions should only be replaced if the game name is the same, false otherwise</param>
public static void ReplaceFields(Machine machine, Machine repMachine, List<MachineField> machineFields, bool onlySame) public static void ReplaceFields(Machine machine, Machine repMachine, List<MachineField> machineFields, bool onlySame)
{ {
#region Common if (machineFields.Contains(MachineField.Board))
machine.Board = repMachine.Board;
if (machineFields.Contains(MachineField.Name)) if (machineFields.Contains(MachineField.Buttons))
machine.Name = repMachine.Name; machine.Buttons = repMachine.Buttons;
if (machineFields.Contains(MachineField.Category))
machine.Category = repMachine.Category;
if (machineFields.Contains(MachineField.CloneOf))
machine.CloneOf = repMachine.CloneOf;
if (machineFields.Contains(MachineField.CloneOfID))
machine.NoIntroCloneOfId = repMachine.NoIntroCloneOfId;
if (machineFields.Contains(MachineField.Comment)) if (machineFields.Contains(MachineField.Comment))
machine.Comment = repMachine.Comment; machine.Comment = repMachine.Comment;
if (machineFields.Contains(MachineField.Control))
machine.Control = repMachine.Control;
if (machineFields.Contains(MachineField.Country))
machine.Country = repMachine.Country;
if (machineFields.Contains(MachineField.CRC))
machine.Crc = repMachine.Crc;
if (machineFields.Contains(MachineField.Description)) if (machineFields.Contains(MachineField.Description))
{ {
if (!onlySame || (onlySame && machine.Name == machine.Description)) if (!onlySame || (onlySame && machine.Name == machine.Description))
machine.Description = repMachine.Description; machine.Description = repMachine.Description;
} }
if (machineFields.Contains(MachineField.Year)) if (machineFields.Contains(MachineField.Developer))
machine.Year = repMachine.Year; machine.Developer = repMachine.Developer;
if (machineFields.Contains(MachineField.Manufacturer))
machine.Manufacturer = repMachine.Manufacturer;
if (machineFields.Contains(MachineField.Publisher))
machine.Publisher = repMachine.Publisher;
if (machineFields.Contains(MachineField.Category))
machine.Category = repMachine.Category;
if (machineFields.Contains(MachineField.RomOf))
machine.RomOf = repMachine.RomOf;
if (machineFields.Contains(MachineField.CloneOf))
machine.CloneOf = repMachine.CloneOf;
if (machineFields.Contains(MachineField.SampleOf))
machine.SampleOf = repMachine.SampleOf;
if (machineFields.Contains(MachineField.Type))
machine.MachineType = repMachine.MachineType;
#endregion
#region AttractMode
if (machineFields.Contains(MachineField.Players))
machine.Players = repMachine.Players;
if (machineFields.Contains(MachineField.Rotation))
machine.Rotation = repMachine.Rotation;
if (machineFields.Contains(MachineField.Control))
machine.Control = repMachine.Control;
if (machineFields.Contains(MachineField.Status))
machine.Status = repMachine.Status;
if (machineFields.Contains(MachineField.DisplayCount)) if (machineFields.Contains(MachineField.DisplayCount))
machine.DisplayCount = repMachine.DisplayCount; machine.DisplayCount = repMachine.DisplayCount;
@@ -141,90 +122,80 @@ namespace SabreTools.Filtering
if (machineFields.Contains(MachineField.DisplayType)) if (machineFields.Contains(MachineField.DisplayType))
machine.DisplayType = repMachine.DisplayType; machine.DisplayType = repMachine.DisplayType;
if (machineFields.Contains(MachineField.Buttons))
machine.Buttons = repMachine.Buttons;
#endregion
#region ListXML
if (machineFields.Contains(MachineField.History))
machine.History = repMachine.History;
if (machineFields.Contains(MachineField.SourceFile))
machine.SourceFile = repMachine.SourceFile;
if (machineFields.Contains(MachineField.Runnable))
machine.Runnable = repMachine.Runnable;
#endregion
#region Logiqx
if (machineFields.Contains(MachineField.Board))
machine.Board = repMachine.Board;
if (machineFields.Contains(MachineField.RebuildTo))
machine.RebuildTo = repMachine.RebuildTo;
if (machineFields.Contains(MachineField.NoIntroId))
machine.NoIntroId = repMachine.NoIntroId;
if (machineFields.Contains(MachineField.NoIntroCloneOfId))
machine.NoIntroCloneOfId = repMachine.NoIntroCloneOfId;
#endregion
#region Logiqx EmuArc
if (machineFields.Contains(MachineField.TitleID))
machine.TitleID = repMachine.TitleID;
if (machineFields.Contains(MachineField.Developer))
machine.Developer = repMachine.Developer;
if (machineFields.Contains(MachineField.Genre))
machine.Genre = repMachine.Genre;
if (machineFields.Contains(MachineField.Subgenre))
machine.Subgenre = repMachine.Subgenre;
if (machineFields.Contains(MachineField.Ratings))
machine.Ratings = repMachine.Ratings;
if (machineFields.Contains(MachineField.Score))
machine.Score = repMachine.Score;
if (machineFields.Contains(MachineField.Enabled)) if (machineFields.Contains(MachineField.Enabled))
machine.Enabled = repMachine.Enabled; machine.Enabled = repMachine.Enabled;
if (machineFields.Contains(MachineField.CRC))
machine.Crc = repMachine.Crc;
if (machineFields.Contains(MachineField.RelatedTo))
machine.RelatedTo = repMachine.RelatedTo;
#endregion
#region OpenMSX
if (machineFields.Contains(MachineField.GenMSXID)) if (machineFields.Contains(MachineField.GenMSXID))
machine.GenMSXID = repMachine.GenMSXID; machine.GenMSXID = repMachine.GenMSXID;
if (machineFields.Contains(MachineField.System)) if (machineFields.Contains(MachineField.Genre))
machine.System = repMachine.System; machine.Genre = repMachine.Genre;
if (machineFields.Contains(MachineField.Country)) if (machineFields.Contains(MachineField.History))
machine.Country = repMachine.Country; machine.History = repMachine.History;
#endregion if (machineFields.Contains(MachineField.ID))
machine.NoIntroId = repMachine.NoIntroId;
#region SoftwareList if (machineFields.Contains(MachineField.Manufacturer))
machine.Manufacturer = repMachine.Manufacturer;
if (machineFields.Contains(MachineField.Name))
machine.Name = repMachine.Name;
if (machineFields.Contains(MachineField.Players))
machine.Players = repMachine.Players;
if (machineFields.Contains(MachineField.Publisher))
machine.Publisher = repMachine.Publisher;
if (machineFields.Contains(MachineField.Ratings))
machine.Ratings = repMachine.Ratings;
if (machineFields.Contains(MachineField.RebuildTo))
machine.RebuildTo = repMachine.RebuildTo;
if (machineFields.Contains(MachineField.RelatedTo))
machine.RelatedTo = repMachine.RelatedTo;
if (machineFields.Contains(MachineField.RomOf))
machine.RomOf = repMachine.RomOf;
if (machineFields.Contains(MachineField.Rotation))
machine.Rotation = repMachine.Rotation;
if (machineFields.Contains(MachineField.Runnable))
machine.Runnable = repMachine.Runnable;
if (machineFields.Contains(MachineField.SampleOf))
machine.SampleOf = repMachine.SampleOf;
if (machineFields.Contains(MachineField.Score))
machine.Score = repMachine.Score;
if (machineFields.Contains(MachineField.SourceFile))
machine.SourceFile = repMachine.SourceFile;
if (machineFields.Contains(MachineField.Status))
machine.Status = repMachine.Status;
if (machineFields.Contains(MachineField.Subgenre))
machine.Subgenre = repMachine.Subgenre;
if (machineFields.Contains(MachineField.Supported)) if (machineFields.Contains(MachineField.Supported))
machine.Supported = repMachine.Supported; machine.Supported = repMachine.Supported;
#endregion if (machineFields.Contains(MachineField.System))
machine.System = repMachine.System;
if (machineFields.Contains(MachineField.TitleID))
machine.TitleID = repMachine.TitleID;
if (machineFields.Contains(MachineField.Type))
machine.MachineType = repMachine.MachineType;
if (machineFields.Contains(MachineField.Year))
machine.Year = repMachine.Year;
} }
/// <summary> /// <summary>

View File

@@ -303,6 +303,11 @@ namespace SabreTools.Test.Core
[InlineData("game.category", MachineField.Category)] [InlineData("game.category", MachineField.Category)]
[InlineData("game.cloneof", MachineField.CloneOf)] [InlineData("game.cloneof", MachineField.CloneOf)]
[InlineData("game.clone_of", MachineField.CloneOf)] [InlineData("game.clone_of", MachineField.CloneOf)]
[InlineData("game.cloneofid", MachineField.CloneOfID)]
[InlineData("game.nointrocloneofid", MachineField.CloneOfID)]
[InlineData("game.nointro_cloneofid", MachineField.CloneOfID)]
[InlineData("game.no_intro_cloneofid", MachineField.CloneOfID)]
[InlineData("game.no_intro_clone_of_id", MachineField.CloneOfID)]
[InlineData("game.comment", MachineField.Comment)] [InlineData("game.comment", MachineField.Comment)]
[InlineData("game.extra", MachineField.Comment)] [InlineData("game.extra", MachineField.Comment)]
[InlineData("game.control", MachineField.Control)] [InlineData("game.control", MachineField.Control)]
@@ -324,17 +329,12 @@ namespace SabreTools.Test.Core
[InlineData("game.gen_msx_id", MachineField.GenMSXID)] [InlineData("game.gen_msx_id", MachineField.GenMSXID)]
[InlineData("game.genre", MachineField.Genre)] [InlineData("game.genre", MachineField.Genre)]
[InlineData("game.history", MachineField.History)] [InlineData("game.history", MachineField.History)]
[InlineData("game.id", MachineField.ID)]
[InlineData("game.nointroid", MachineField.ID)]
[InlineData("game.nointro_id", MachineField.ID)]
[InlineData("game.no_intro_id", MachineField.ID)]
[InlineData("game.manufacturer", MachineField.Manufacturer)] [InlineData("game.manufacturer", MachineField.Manufacturer)]
[InlineData("game.name", MachineField.Name)] [InlineData("game.name", MachineField.Name)]
[InlineData("game.cloneofid", MachineField.NoIntroCloneOfId)]
[InlineData("game.nointrocloneofid", MachineField.NoIntroCloneOfId)]
[InlineData("game.nointro_cloneofid", MachineField.NoIntroCloneOfId)]
[InlineData("game.no_intro_cloneofid", MachineField.NoIntroCloneOfId)]
[InlineData("game.no_intro_clone_of_id", MachineField.NoIntroCloneOfId)]
[InlineData("game.id", MachineField.NoIntroId)]
[InlineData("game.nointroid", MachineField.NoIntroId)]
[InlineData("game.nointro_id", MachineField.NoIntroId)]
[InlineData("game.no_intro_id", MachineField.NoIntroId)]
[InlineData("game.players", MachineField.Players)] [InlineData("game.players", MachineField.Players)]
[InlineData("game.publisher", MachineField.Publisher)] [InlineData("game.publisher", MachineField.Publisher)]
[InlineData("game.ratings", MachineField.Ratings)] [InlineData("game.ratings", MachineField.Ratings)]