mirror of
https://github.com/claunia/SabreTools.git
synced 2025-12-16 19:14:27 +00:00
Machines don't know about field stuff
This commit is contained in:
@@ -1,10 +1,7 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
using SabreTools.Core;
|
||||
using SabreTools.Core.Tools;
|
||||
using Newtonsoft.Json;
|
||||
using Newtonsoft.Json.Converters;
|
||||
|
||||
@@ -311,153 +308,6 @@ namespace SabreTools.DatItems
|
||||
|
||||
#endregion // Fields
|
||||
|
||||
#region Accessors
|
||||
|
||||
/// <summary>
|
||||
/// Set fields with given values
|
||||
/// </summary>
|
||||
/// <param name="mappings">Mappings dictionary</param>
|
||||
public void SetFields(Dictionary<MachineField, string> mappings)
|
||||
{
|
||||
if (mappings == null)
|
||||
return;
|
||||
|
||||
#region Common
|
||||
|
||||
if (mappings.Keys.Contains(MachineField.Name))
|
||||
Name = mappings[MachineField.Name];
|
||||
|
||||
if (mappings.Keys.Contains(MachineField.Comment))
|
||||
Comment = mappings[MachineField.Comment];
|
||||
|
||||
if (mappings.Keys.Contains(MachineField.Description))
|
||||
Description = mappings[MachineField.Description];
|
||||
|
||||
if (mappings.Keys.Contains(MachineField.Year))
|
||||
Year = mappings[MachineField.Year];
|
||||
|
||||
if (mappings.Keys.Contains(MachineField.Manufacturer))
|
||||
Manufacturer = mappings[MachineField.Manufacturer];
|
||||
|
||||
if (mappings.Keys.Contains(MachineField.Publisher))
|
||||
Publisher = mappings[MachineField.Publisher];
|
||||
|
||||
if (mappings.Keys.Contains(MachineField.Category))
|
||||
Category = mappings[MachineField.Category];
|
||||
|
||||
if (mappings.Keys.Contains(MachineField.RomOf))
|
||||
RomOf = mappings[MachineField.RomOf];
|
||||
|
||||
if (mappings.Keys.Contains(MachineField.CloneOf))
|
||||
CloneOf = mappings[MachineField.CloneOf];
|
||||
|
||||
if (mappings.Keys.Contains(MachineField.SampleOf))
|
||||
SampleOf = mappings[MachineField.SampleOf];
|
||||
|
||||
if (mappings.Keys.Contains(MachineField.Type))
|
||||
MachineType = mappings[MachineField.Type].AsMachineType();
|
||||
|
||||
#endregion
|
||||
|
||||
#region AttractMode
|
||||
|
||||
if (mappings.Keys.Contains(MachineField.Players))
|
||||
Players = mappings[MachineField.Players];
|
||||
|
||||
if (mappings.Keys.Contains(MachineField.Rotation))
|
||||
Rotation = mappings[MachineField.Rotation];
|
||||
|
||||
if (mappings.Keys.Contains(MachineField.Control))
|
||||
Control = mappings[MachineField.Control];
|
||||
|
||||
if (mappings.Keys.Contains(MachineField.Status))
|
||||
Status = mappings[MachineField.Status];
|
||||
|
||||
if (mappings.Keys.Contains(MachineField.DisplayCount))
|
||||
DisplayCount = mappings[MachineField.DisplayCount];
|
||||
|
||||
if (mappings.Keys.Contains(MachineField.DisplayType))
|
||||
DisplayType = mappings[MachineField.DisplayType];
|
||||
|
||||
if (mappings.Keys.Contains(MachineField.Buttons))
|
||||
Buttons = mappings[MachineField.Buttons];
|
||||
|
||||
#endregion
|
||||
|
||||
#region ListXML
|
||||
|
||||
if (mappings.Keys.Contains(MachineField.SourceFile))
|
||||
SourceFile = mappings[MachineField.SourceFile];
|
||||
|
||||
if (mappings.Keys.Contains(MachineField.Runnable))
|
||||
Runnable = mappings[MachineField.Runnable].AsRunnable();
|
||||
|
||||
#endregion
|
||||
|
||||
#region Logiqx
|
||||
|
||||
if (mappings.Keys.Contains(MachineField.Board))
|
||||
Board = mappings[MachineField.Board];
|
||||
|
||||
if (mappings.Keys.Contains(MachineField.RebuildTo))
|
||||
RebuildTo = mappings[MachineField.RebuildTo];
|
||||
|
||||
#endregion
|
||||
|
||||
#region Logiqx EmuArc
|
||||
|
||||
if (mappings.Keys.Contains(MachineField.TitleID))
|
||||
TitleID = mappings[MachineField.TitleID];
|
||||
|
||||
if (mappings.Keys.Contains(MachineField.Developer))
|
||||
Developer = mappings[MachineField.Developer];
|
||||
|
||||
if (mappings.Keys.Contains(MachineField.Genre))
|
||||
Genre = mappings[MachineField.Genre];
|
||||
|
||||
if (mappings.Keys.Contains(MachineField.Subgenre))
|
||||
Subgenre = mappings[MachineField.Subgenre];
|
||||
|
||||
if (mappings.Keys.Contains(MachineField.Ratings))
|
||||
Ratings = mappings[MachineField.Ratings];
|
||||
|
||||
if (mappings.Keys.Contains(MachineField.Score))
|
||||
Score = mappings[MachineField.Score];
|
||||
|
||||
if (mappings.Keys.Contains(MachineField.Enabled))
|
||||
Enabled = mappings[MachineField.Enabled];
|
||||
|
||||
if (mappings.Keys.Contains(MachineField.CRC))
|
||||
Crc = mappings[MachineField.CRC].AsYesNo();
|
||||
|
||||
if (mappings.Keys.Contains(MachineField.RelatedTo))
|
||||
RelatedTo = mappings[MachineField.RelatedTo];
|
||||
|
||||
#endregion
|
||||
|
||||
#region OpenMSX
|
||||
|
||||
if (mappings.Keys.Contains(MachineField.GenMSXID))
|
||||
GenMSXID = mappings[MachineField.GenMSXID];
|
||||
|
||||
if (mappings.Keys.Contains(MachineField.System))
|
||||
System = mappings[MachineField.System];
|
||||
|
||||
if (mappings.Keys.Contains(MachineField.Country))
|
||||
Country = mappings[MachineField.Country];
|
||||
|
||||
#endregion
|
||||
|
||||
#region SoftwareList
|
||||
|
||||
if (mappings.Keys.Contains(MachineField.Supported))
|
||||
Supported = mappings[MachineField.Supported].AsSupported();
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Constructors
|
||||
|
||||
/// <summary>
|
||||
@@ -563,298 +413,5 @@ namespace SabreTools.DatItems
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Filtering
|
||||
|
||||
/// <summary>
|
||||
/// Remove fields from the Machine
|
||||
/// </summary>
|
||||
/// <param name="fields">List of Fields to remove</param>
|
||||
public void RemoveFields(List<MachineField> fields)
|
||||
{
|
||||
#region Common
|
||||
|
||||
if (fields.Contains(MachineField.Name))
|
||||
Name = null;
|
||||
|
||||
if (fields.Contains(MachineField.Comment))
|
||||
Comment = null;
|
||||
|
||||
if (fields.Contains(MachineField.Description))
|
||||
Description = null;
|
||||
|
||||
if (fields.Contains(MachineField.Year))
|
||||
Year = null;
|
||||
|
||||
if (fields.Contains(MachineField.Manufacturer))
|
||||
Manufacturer = null;
|
||||
|
||||
if (fields.Contains(MachineField.Publisher))
|
||||
Publisher = null;
|
||||
|
||||
if (fields.Contains(MachineField.Category))
|
||||
Category = null;
|
||||
|
||||
if (fields.Contains(MachineField.RomOf))
|
||||
RomOf = null;
|
||||
|
||||
if (fields.Contains(MachineField.CloneOf))
|
||||
CloneOf = null;
|
||||
|
||||
if (fields.Contains(MachineField.SampleOf))
|
||||
SampleOf = null;
|
||||
|
||||
if (fields.Contains(MachineField.Type))
|
||||
MachineType = 0x0;
|
||||
|
||||
#endregion
|
||||
|
||||
#region AttractMode
|
||||
|
||||
if (fields.Contains(MachineField.Players))
|
||||
Players = null;
|
||||
|
||||
if (fields.Contains(MachineField.Rotation))
|
||||
Rotation = null;
|
||||
|
||||
if (fields.Contains(MachineField.Control))
|
||||
Control = null;
|
||||
|
||||
if (fields.Contains(MachineField.Status))
|
||||
Status = null;
|
||||
|
||||
if (fields.Contains(MachineField.DisplayCount))
|
||||
DisplayCount = null;
|
||||
|
||||
if (fields.Contains(MachineField.DisplayType))
|
||||
DisplayType = null;
|
||||
|
||||
if (fields.Contains(MachineField.Buttons))
|
||||
Buttons = null;
|
||||
|
||||
#endregion
|
||||
|
||||
#region ListXML
|
||||
|
||||
if (fields.Contains(MachineField.SourceFile))
|
||||
SourceFile = null;
|
||||
|
||||
if (fields.Contains(MachineField.Runnable))
|
||||
Runnable = Runnable.NULL;
|
||||
|
||||
#endregion
|
||||
|
||||
#region Logiqx
|
||||
|
||||
if (fields.Contains(MachineField.Board))
|
||||
Board = null;
|
||||
|
||||
if (fields.Contains(MachineField.RebuildTo))
|
||||
RebuildTo = null;
|
||||
|
||||
#endregion
|
||||
|
||||
#region Logiqx EmuArc
|
||||
|
||||
if (fields.Contains(MachineField.TitleID))
|
||||
TitleID = null;
|
||||
|
||||
if (fields.Contains(MachineField.Developer))
|
||||
Developer = null;
|
||||
|
||||
if (fields.Contains(MachineField.Genre))
|
||||
Genre = null;
|
||||
|
||||
if (fields.Contains(MachineField.Subgenre))
|
||||
Subgenre = null;
|
||||
|
||||
if (fields.Contains(MachineField.Ratings))
|
||||
Ratings = null;
|
||||
|
||||
if (fields.Contains(MachineField.Score))
|
||||
Score = null;
|
||||
|
||||
if (fields.Contains(MachineField.Enabled))
|
||||
Enabled = null;
|
||||
|
||||
if (fields.Contains(MachineField.CRC))
|
||||
Crc = null;
|
||||
|
||||
if (fields.Contains(MachineField.RelatedTo))
|
||||
RelatedTo = null;
|
||||
|
||||
#endregion
|
||||
|
||||
#region OpenMSX
|
||||
|
||||
if (fields.Contains(MachineField.GenMSXID))
|
||||
GenMSXID = null;
|
||||
|
||||
if (fields.Contains(MachineField.System))
|
||||
System = null;
|
||||
|
||||
if (fields.Contains(MachineField.Country))
|
||||
Country = null;
|
||||
|
||||
#endregion
|
||||
|
||||
#region SoftwareList
|
||||
|
||||
if (fields.Contains(MachineField.Supported))
|
||||
Supported = Supported.NULL;
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Sorting and Merging
|
||||
|
||||
/// <summary>
|
||||
/// Replace machine fields from another item
|
||||
/// </summary>
|
||||
/// <param name="item">DatItem to pull new information from</param>
|
||||
/// <param name="fields">List of Fields representing what should be updated</param>
|
||||
/// <param name="onlySame">True if descriptions should only be replaced if the game name is the same, false otherwise</param>
|
||||
public void ReplaceFields(Machine machine, List<MachineField> fields, bool onlySame)
|
||||
{
|
||||
#region Common
|
||||
|
||||
if (fields.Contains(MachineField.Name))
|
||||
Name = machine.Name;
|
||||
|
||||
if (fields.Contains(MachineField.Comment))
|
||||
Comment = machine.Comment;
|
||||
|
||||
if (fields.Contains(MachineField.Description))
|
||||
{
|
||||
if (!onlySame || (onlySame && Name == Description))
|
||||
Description = machine.Description;
|
||||
}
|
||||
|
||||
if (fields.Contains(MachineField.Year))
|
||||
Year = machine.Year;
|
||||
|
||||
if (fields.Contains(MachineField.Manufacturer))
|
||||
Manufacturer = machine.Manufacturer;
|
||||
|
||||
if (fields.Contains(MachineField.Publisher))
|
||||
Publisher = machine.Publisher;
|
||||
|
||||
if (fields.Contains(MachineField.Category))
|
||||
Category = machine.Category;
|
||||
|
||||
if (fields.Contains(MachineField.RomOf))
|
||||
RomOf = machine.RomOf;
|
||||
|
||||
if (fields.Contains(MachineField.CloneOf))
|
||||
CloneOf = machine.CloneOf;
|
||||
|
||||
if (fields.Contains(MachineField.SampleOf))
|
||||
SampleOf = machine.SampleOf;
|
||||
|
||||
if (fields.Contains(MachineField.Type))
|
||||
MachineType = machine.MachineType;
|
||||
|
||||
#endregion
|
||||
|
||||
#region AttractMode
|
||||
|
||||
if (fields.Contains(MachineField.Players))
|
||||
Players = machine.Players;
|
||||
|
||||
if (fields.Contains(MachineField.Rotation))
|
||||
Rotation = machine.Rotation;
|
||||
|
||||
if (fields.Contains(MachineField.Control))
|
||||
Control = machine.Control;
|
||||
|
||||
if (fields.Contains(MachineField.Status))
|
||||
Status = machine.Status;
|
||||
|
||||
if (fields.Contains(MachineField.DisplayCount))
|
||||
DisplayCount = machine.DisplayCount;
|
||||
|
||||
if (fields.Contains(MachineField.DisplayType))
|
||||
DisplayType = machine.DisplayType;
|
||||
|
||||
if (fields.Contains(MachineField.Buttons))
|
||||
Buttons = machine.Buttons;
|
||||
|
||||
#endregion
|
||||
|
||||
#region ListXML
|
||||
|
||||
if (fields.Contains(MachineField.SourceFile))
|
||||
SourceFile = machine.SourceFile;
|
||||
|
||||
if (fields.Contains(MachineField.Runnable))
|
||||
Runnable = machine.Runnable;
|
||||
|
||||
#endregion
|
||||
|
||||
#region Logiqx
|
||||
|
||||
if (fields.Contains(MachineField.Board))
|
||||
Board = machine.Board;
|
||||
|
||||
if (fields.Contains(MachineField.RebuildTo))
|
||||
RebuildTo = machine.RebuildTo;
|
||||
|
||||
#endregion
|
||||
|
||||
#region Logiqx EmuArc
|
||||
|
||||
if (fields.Contains(MachineField.TitleID))
|
||||
TitleID = machine.TitleID;
|
||||
|
||||
if (fields.Contains(MachineField.Developer))
|
||||
Developer = machine.Developer;
|
||||
|
||||
if (fields.Contains(MachineField.Genre))
|
||||
Genre = machine.Genre;
|
||||
|
||||
if (fields.Contains(MachineField.Subgenre))
|
||||
Subgenre = machine.Subgenre;
|
||||
|
||||
if (fields.Contains(MachineField.Ratings))
|
||||
Ratings = machine.Ratings;
|
||||
|
||||
if (fields.Contains(MachineField.Score))
|
||||
Score = machine.Score;
|
||||
|
||||
if (fields.Contains(MachineField.Enabled))
|
||||
Enabled = machine.Enabled;
|
||||
|
||||
if (fields.Contains(MachineField.CRC))
|
||||
Crc = machine.Crc;
|
||||
|
||||
if (fields.Contains(MachineField.RelatedTo))
|
||||
RelatedTo = machine.RelatedTo;
|
||||
|
||||
#endregion
|
||||
|
||||
#region OpenMSX
|
||||
|
||||
if (fields.Contains(MachineField.GenMSXID))
|
||||
GenMSXID = machine.GenMSXID;
|
||||
|
||||
if (fields.Contains(MachineField.System))
|
||||
System = machine.System;
|
||||
|
||||
if (fields.Contains(MachineField.Country))
|
||||
Country = machine.Country;
|
||||
|
||||
#endregion
|
||||
|
||||
#region SoftwareList
|
||||
|
||||
if (fields.Contains(MachineField.Supported))
|
||||
Supported = machine.Supported;
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user