2021-02-01 14:07:50 -08:00
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using SabreTools.Core;
|
|
|
|
|
using SabreTools.Core.Tools;
|
|
|
|
|
using SabreTools.DatItems;
|
2021-02-02 10:23:43 -08:00
|
|
|
using SabreTools.DatItems.Formats;
|
2021-02-01 14:07:50 -08:00
|
|
|
using SabreTools.Logging;
|
|
|
|
|
|
|
|
|
|
namespace SabreTools.DatFiles
|
|
|
|
|
{
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Set fields on DatItems
|
|
|
|
|
/// </summary>
|
2021-02-01 14:17:25 -08:00
|
|
|
/// TODO: Figure out how to get this into the Filtering namespace
|
2021-02-01 14:07:50 -08:00
|
|
|
public class Setter
|
|
|
|
|
{
|
|
|
|
|
#region Fields
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Mappings to set DatHeader fields
|
|
|
|
|
/// </summary>
|
2023-08-10 23:22:14 -04:00
|
|
|
public Dictionary<DatHeaderField, string>? DatHeaderMappings { get; set; }
|
2021-02-01 14:07:50 -08:00
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Mappings to set Machine fields
|
|
|
|
|
/// </summary>
|
2023-08-10 23:22:14 -04:00
|
|
|
public Dictionary<MachineField, string>? MachineMappings { get; set; }
|
2021-02-01 14:07:50 -08:00
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Mappings to set DatItem fields
|
|
|
|
|
/// </summary>
|
2023-08-10 23:22:14 -04:00
|
|
|
public Dictionary<DatItemField, string>? DatItemMappings { get; set; }
|
2021-02-01 14:07:50 -08:00
|
|
|
|
|
|
|
|
#endregion
|
2023-03-26 21:47:17 -04:00
|
|
|
|
2021-02-01 14:07:50 -08:00
|
|
|
#region Logging
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Logging object
|
|
|
|
|
/// </summary>
|
2023-04-19 16:39:58 -04:00
|
|
|
private readonly Logger logger = new();
|
2021-02-01 14:07:50 -08:00
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
#region Population
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Populate the setters using a set of field names
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="headers">List of header names</param>
|
|
|
|
|
/// <param name="fields">List of field names</param>
|
|
|
|
|
public void PopulateSettersFromList(List<string> headers, List<string> fields)
|
|
|
|
|
{
|
|
|
|
|
// Instantiate the setters, if necessary
|
|
|
|
|
DatHeaderMappings ??= new Dictionary<DatHeaderField, string>();
|
|
|
|
|
MachineMappings ??= new Dictionary<MachineField, string>();
|
|
|
|
|
DatItemMappings ??= new Dictionary<DatItemField, string>();
|
|
|
|
|
|
|
|
|
|
// If the list is null or empty, just return
|
|
|
|
|
if (fields == null || fields.Count == 0)
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
// Now we loop through and get values for everything
|
|
|
|
|
for (int i = 0; i < headers.Count; i++)
|
|
|
|
|
{
|
|
|
|
|
string field = fields[i];
|
|
|
|
|
DatHeaderField dhf = headers[i].AsDatHeaderField();
|
|
|
|
|
if (dhf != DatHeaderField.NULL)
|
|
|
|
|
{
|
|
|
|
|
DatHeaderMappings[dhf] = field;
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
MachineField mf = headers[i].AsMachineField();
|
|
|
|
|
if (mf != MachineField.NULL)
|
|
|
|
|
{
|
|
|
|
|
MachineMappings[mf] = field;
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
DatItemField dif = headers[i].AsDatItemField();
|
|
|
|
|
if (dif != DatItemField.NULL)
|
|
|
|
|
{
|
|
|
|
|
DatItemMappings[dif] = field;
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// If we didn't match anything, log an error
|
|
|
|
|
logger.Warning($"The value {field} did not match any known field names. Please check the wiki for more details on supported field names.");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Set fields with given values
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="datHeader">DatHeader to set fields on</param>
|
|
|
|
|
public void SetFields(DatHeader datHeader)
|
|
|
|
|
{
|
2023-08-10 23:22:14 -04:00
|
|
|
if (datHeader == null || DatHeaderMappings == null)
|
2021-02-01 14:07:50 -08:00
|
|
|
return;
|
|
|
|
|
|
2023-04-20 14:28:30 -04:00
|
|
|
if (DatHeaderMappings.ContainsKey(DatHeaderField.Author))
|
|
|
|
|
datHeader.Author = DatHeaderMappings[DatHeaderField.Author];
|
2021-02-01 14:07:50 -08:00
|
|
|
|
2023-04-20 14:28:30 -04:00
|
|
|
if (DatHeaderMappings.ContainsKey(DatHeaderField.BiosMode))
|
|
|
|
|
datHeader.BiosMode = DatHeaderMappings[DatHeaderField.BiosMode].AsMergingFlag();
|
2021-02-01 14:07:50 -08:00
|
|
|
|
2023-04-20 14:28:30 -04:00
|
|
|
if (DatHeaderMappings.ContainsKey(DatHeaderField.Build))
|
|
|
|
|
datHeader.Build = DatHeaderMappings[DatHeaderField.Build];
|
2021-02-01 14:07:50 -08:00
|
|
|
|
2023-04-20 14:28:30 -04:00
|
|
|
// TODO: Support CanOpen
|
2021-02-01 14:07:50 -08:00
|
|
|
|
2023-04-19 16:39:58 -04:00
|
|
|
if (DatHeaderMappings.ContainsKey(DatHeaderField.Category))
|
2021-02-01 14:07:50 -08:00
|
|
|
datHeader.Category = DatHeaderMappings[DatHeaderField.Category];
|
|
|
|
|
|
2023-04-20 14:28:30 -04:00
|
|
|
if (DatHeaderMappings.ContainsKey(DatHeaderField.Comment))
|
|
|
|
|
datHeader.Comment = DatHeaderMappings[DatHeaderField.Comment];
|
2021-02-01 14:07:50 -08:00
|
|
|
|
2023-04-19 16:39:58 -04:00
|
|
|
if (DatHeaderMappings.ContainsKey(DatHeaderField.Date))
|
2021-02-01 14:07:50 -08:00
|
|
|
datHeader.Date = DatHeaderMappings[DatHeaderField.Date];
|
|
|
|
|
|
2023-04-20 14:28:30 -04:00
|
|
|
if (DatHeaderMappings.ContainsKey(DatHeaderField.Debug))
|
|
|
|
|
datHeader.Debug = DatHeaderMappings[DatHeaderField.Debug].AsYesNo();
|
|
|
|
|
|
|
|
|
|
if (DatHeaderMappings.ContainsKey(DatHeaderField.Description))
|
|
|
|
|
datHeader.Description = DatHeaderMappings[DatHeaderField.Description];
|
2021-02-01 14:07:50 -08:00
|
|
|
|
2023-04-19 16:39:58 -04:00
|
|
|
if (DatHeaderMappings.ContainsKey(DatHeaderField.Email))
|
2021-02-01 14:07:50 -08:00
|
|
|
datHeader.Email = DatHeaderMappings[DatHeaderField.Email];
|
|
|
|
|
|
2023-04-20 14:28:30 -04:00
|
|
|
if (DatHeaderMappings.ContainsKey(DatHeaderField.FileName))
|
|
|
|
|
datHeader.FileName = DatHeaderMappings[DatHeaderField.FileName];
|
2021-02-01 14:07:50 -08:00
|
|
|
|
2023-04-19 16:39:58 -04:00
|
|
|
if (DatHeaderMappings.ContainsKey(DatHeaderField.ForceMerging))
|
2021-02-01 14:07:50 -08:00
|
|
|
datHeader.ForceMerging = DatHeaderMappings[DatHeaderField.ForceMerging].AsMergingFlag();
|
|
|
|
|
|
2023-04-19 16:39:58 -04:00
|
|
|
if (DatHeaderMappings.ContainsKey(DatHeaderField.ForceNodump))
|
2021-02-01 14:07:50 -08:00
|
|
|
datHeader.ForceNodump = DatHeaderMappings[DatHeaderField.ForceNodump].AsNodumpFlag();
|
|
|
|
|
|
2023-04-19 16:39:58 -04:00
|
|
|
if (DatHeaderMappings.ContainsKey(DatHeaderField.ForcePacking))
|
2021-02-01 14:07:50 -08:00
|
|
|
datHeader.ForcePacking = DatHeaderMappings[DatHeaderField.ForcePacking].AsPackingFlag();
|
|
|
|
|
|
2023-04-20 14:28:30 -04:00
|
|
|
if (DatHeaderMappings.ContainsKey(DatHeaderField.HeaderSkipper))
|
|
|
|
|
datHeader.HeaderSkipper = DatHeaderMappings[DatHeaderField.HeaderSkipper];
|
2023-04-03 12:24:42 -04:00
|
|
|
|
2023-04-20 14:28:30 -04:00
|
|
|
if (DatHeaderMappings.ContainsKey(DatHeaderField.Homepage))
|
|
|
|
|
datHeader.Homepage = DatHeaderMappings[DatHeaderField.Homepage];
|
2021-02-01 14:07:50 -08:00
|
|
|
|
2023-04-20 14:28:30 -04:00
|
|
|
if (DatHeaderMappings.ContainsKey(DatHeaderField.ID))
|
|
|
|
|
datHeader.NoIntroID = DatHeaderMappings[DatHeaderField.ID];
|
2021-02-01 14:07:50 -08:00
|
|
|
|
2023-04-20 14:28:30 -04:00
|
|
|
// TODO: Support Info_Default
|
|
|
|
|
// TODO: Support Info_IsNamingOption
|
|
|
|
|
// TODO: Support Info_Name
|
|
|
|
|
// TODO: Support Info_Visible
|
2021-02-01 14:07:50 -08:00
|
|
|
|
2023-04-20 14:28:30 -04:00
|
|
|
if (DatHeaderMappings.ContainsKey(DatHeaderField.LockBiosMode))
|
|
|
|
|
datHeader.LockBiosMode = DatHeaderMappings[DatHeaderField.LockBiosMode].AsYesNo();
|
2021-02-01 14:07:50 -08:00
|
|
|
|
2023-04-19 16:39:58 -04:00
|
|
|
if (DatHeaderMappings.ContainsKey(DatHeaderField.LockRomMode))
|
2021-02-01 14:07:50 -08:00
|
|
|
datHeader.LockRomMode = DatHeaderMappings[DatHeaderField.LockRomMode].AsYesNo();
|
|
|
|
|
|
2023-04-19 16:39:58 -04:00
|
|
|
if (DatHeaderMappings.ContainsKey(DatHeaderField.LockSampleMode))
|
2021-02-01 14:07:50 -08:00
|
|
|
datHeader.LockSampleMode = DatHeaderMappings[DatHeaderField.LockSampleMode].AsYesNo();
|
|
|
|
|
|
2023-04-20 14:28:30 -04:00
|
|
|
if (DatHeaderMappings.ContainsKey(DatHeaderField.MameConfig))
|
|
|
|
|
datHeader.MameConfig = DatHeaderMappings[DatHeaderField.MameConfig];
|
2021-02-01 14:07:50 -08:00
|
|
|
|
2023-04-20 14:28:30 -04:00
|
|
|
if (DatHeaderMappings.ContainsKey(DatHeaderField.Name))
|
|
|
|
|
datHeader.Name = DatHeaderMappings[DatHeaderField.Name];
|
2021-02-01 14:07:50 -08:00
|
|
|
|
2023-04-20 14:28:30 -04:00
|
|
|
if (DatHeaderMappings.ContainsKey(DatHeaderField.RomCenterVersion))
|
|
|
|
|
datHeader.RomCenterVersion = DatHeaderMappings[DatHeaderField.RomCenterVersion];
|
2021-02-01 14:07:50 -08:00
|
|
|
|
2023-04-20 14:28:30 -04:00
|
|
|
if (DatHeaderMappings.ContainsKey(DatHeaderField.RomMode))
|
|
|
|
|
datHeader.RomMode = DatHeaderMappings[DatHeaderField.RomMode].AsMergingFlag();
|
|
|
|
|
|
|
|
|
|
if (DatHeaderMappings.ContainsKey(DatHeaderField.RomTitle))
|
|
|
|
|
datHeader.RomTitle = DatHeaderMappings[DatHeaderField.RomTitle];
|
|
|
|
|
|
|
|
|
|
if (DatHeaderMappings.ContainsKey(DatHeaderField.RootDir))
|
|
|
|
|
datHeader.RootDir = DatHeaderMappings[DatHeaderField.RootDir];
|
|
|
|
|
|
|
|
|
|
if (DatHeaderMappings.ContainsKey(DatHeaderField.SampleMode))
|
|
|
|
|
datHeader.SampleMode = DatHeaderMappings[DatHeaderField.SampleMode].AsMergingFlag();
|
2021-02-01 14:07:50 -08:00
|
|
|
|
2023-04-19 16:39:58 -04:00
|
|
|
if (DatHeaderMappings.ContainsKey(DatHeaderField.ScreenshotsHeight))
|
2021-02-01 14:07:50 -08:00
|
|
|
datHeader.ScreenshotsHeight = DatHeaderMappings[DatHeaderField.ScreenshotsHeight];
|
|
|
|
|
|
2023-04-20 14:28:30 -04:00
|
|
|
if (DatHeaderMappings.ContainsKey(DatHeaderField.ScreenshotsWidth))
|
|
|
|
|
datHeader.ScreenshotsWidth = DatHeaderMappings[DatHeaderField.ScreenshotsWidth];
|
2021-02-01 14:07:50 -08:00
|
|
|
|
2023-04-20 14:28:30 -04:00
|
|
|
if (DatHeaderMappings.ContainsKey(DatHeaderField.System))
|
|
|
|
|
datHeader.System = DatHeaderMappings[DatHeaderField.System];
|
2021-02-01 14:07:50 -08:00
|
|
|
|
2023-04-20 14:28:30 -04:00
|
|
|
if (DatHeaderMappings.ContainsKey(DatHeaderField.Type))
|
|
|
|
|
datHeader.Type = DatHeaderMappings[DatHeaderField.Type];
|
2021-02-01 14:07:50 -08:00
|
|
|
|
2023-04-20 14:28:30 -04:00
|
|
|
if (DatHeaderMappings.ContainsKey(DatHeaderField.Url))
|
|
|
|
|
datHeader.Url = DatHeaderMappings[DatHeaderField.Url];
|
2021-02-01 14:07:50 -08:00
|
|
|
|
2023-04-20 14:28:30 -04:00
|
|
|
if (DatHeaderMappings.ContainsKey(DatHeaderField.Version))
|
|
|
|
|
datHeader.Version = DatHeaderMappings[DatHeaderField.Version];
|
2021-02-01 14:07:50 -08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Set fields with given values
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="datItem">DatItem to set fields on</param>
|
|
|
|
|
public void SetFields(DatItem datItem)
|
|
|
|
|
{
|
|
|
|
|
if (datItem == null || DatItemMappings == null)
|
|
|
|
|
return;
|
|
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
#region Common
|
2021-02-01 14:07:50 -08:00
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.Name))
|
2021-02-01 14:07:50 -08:00
|
|
|
datItem.SetName(DatItemMappings[DatItemField.Name]);
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
#region Item-Specific
|
2023-08-10 23:22:14 -04:00
|
|
|
|
|
|
|
|
switch (datItem)
|
|
|
|
|
{
|
|
|
|
|
case Adjuster adjuster: SetFields(adjuster); break;
|
|
|
|
|
case Analog analog: SetFields(analog); break;
|
|
|
|
|
case Archive archive: SetFields(archive); break;
|
|
|
|
|
case BiosSet biosSet: SetFields(biosSet); break;
|
|
|
|
|
case Chip chip: SetFields(chip); break;
|
|
|
|
|
case Condition condition: SetFields(condition); break;
|
|
|
|
|
case Configuration condition: SetFields(condition); break;
|
2023-08-14 13:17:51 -04:00
|
|
|
case ConfLocation confLocation: SetFields(confLocation); break;
|
|
|
|
|
case ConfSetting confSetting: SetFields(confSetting); break;
|
2023-08-10 23:22:14 -04:00
|
|
|
case Control control: SetFields(control); break;
|
|
|
|
|
case DataArea dataArea: SetFields(dataArea); break;
|
|
|
|
|
case Device device: SetFields(device); break;
|
2023-08-14 13:17:51 -04:00
|
|
|
case DipLocation dipLocation: SetFields(dipLocation); break;
|
2023-08-10 23:22:14 -04:00
|
|
|
case DipSwitch dipSwitch: SetFields(dipSwitch); break;
|
2023-08-14 13:17:51 -04:00
|
|
|
case DipValue dipValue: SetFields(dipValue); break;
|
2023-08-10 23:22:14 -04:00
|
|
|
case Disk disk: SetFields(disk); break;
|
|
|
|
|
case DiskArea diskArea: SetFields(diskArea); break;
|
|
|
|
|
case Display display: SetFields(display); break;
|
|
|
|
|
case Driver driver: SetFields(driver); break;
|
|
|
|
|
case Extension extension: SetFields(extension); break;
|
|
|
|
|
case Feature feature: SetFields(feature); break;
|
|
|
|
|
case Input input: SetFields(input); break;
|
|
|
|
|
case Instance instance: SetFields(instance); break;
|
|
|
|
|
case Media media: SetFields(media); break;
|
|
|
|
|
case Part part: SetFields(part); break;
|
|
|
|
|
case PartFeature partFeature: SetFields(partFeature); break;
|
|
|
|
|
case Port port: SetFields(port); break;
|
|
|
|
|
case RamOption ramOption: SetFields(ramOption); break;
|
|
|
|
|
case Release release: SetFields(release); break;
|
|
|
|
|
case Rom rom: SetFields(rom); break;
|
|
|
|
|
case SharedFeature sharedFeat: SetFields(sharedFeat); break;
|
|
|
|
|
case Slot slot: SetFields(slot); break;
|
|
|
|
|
case SlotOption slotOption: SetFields(slotOption); break;
|
|
|
|
|
case SoftwareList softwareList: SetFields(softwareList); break;
|
|
|
|
|
case Sound sound: SetFields(sound); break;
|
|
|
|
|
}
|
2021-02-01 14:07:50 -08:00
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Set fields with given values
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="machine">Machine to set fields on</param>
|
|
|
|
|
public void SetFields(Machine machine)
|
|
|
|
|
{
|
|
|
|
|
if (machine == null || MachineMappings == null)
|
|
|
|
|
return;
|
|
|
|
|
|
2023-04-20 16:30:00 -04:00
|
|
|
if (MachineMappings.ContainsKey(MachineField.Board))
|
|
|
|
|
machine.Board = MachineMappings[MachineField.Board];
|
2021-02-01 14:07:50 -08:00
|
|
|
|
2023-04-20 16:30:00 -04:00
|
|
|
if (MachineMappings.ContainsKey(MachineField.Buttons))
|
|
|
|
|
machine.Buttons = MachineMappings[MachineField.Buttons];
|
2021-02-01 14:07:50 -08:00
|
|
|
|
2023-04-19 16:39:58 -04:00
|
|
|
if (MachineMappings.ContainsKey(MachineField.Category))
|
2021-02-01 14:07:50 -08:00
|
|
|
machine.Category = MachineMappings[MachineField.Category];
|
|
|
|
|
|
2023-04-19 16:39:58 -04:00
|
|
|
if (MachineMappings.ContainsKey(MachineField.CloneOf))
|
2021-02-01 14:07:50 -08:00
|
|
|
machine.CloneOf = MachineMappings[MachineField.CloneOf];
|
|
|
|
|
|
2023-04-20 16:30:00 -04:00
|
|
|
if (MachineMappings.ContainsKey(MachineField.CloneOfID))
|
|
|
|
|
machine.NoIntroCloneOfId = MachineMappings[MachineField.CloneOfID];
|
2021-02-01 14:07:50 -08:00
|
|
|
|
2023-04-20 16:30:00 -04:00
|
|
|
if (MachineMappings.ContainsKey(MachineField.Comment))
|
|
|
|
|
machine.Comment = MachineMappings[MachineField.Comment];
|
2021-02-01 14:07:50 -08:00
|
|
|
|
2023-04-20 16:30:00 -04:00
|
|
|
if (MachineMappings.ContainsKey(MachineField.Control))
|
|
|
|
|
machine.Control = MachineMappings[MachineField.Control];
|
2021-02-01 14:07:50 -08:00
|
|
|
|
2023-04-20 16:30:00 -04:00
|
|
|
if (MachineMappings.ContainsKey(MachineField.Country))
|
|
|
|
|
machine.Country = MachineMappings[MachineField.Country];
|
2021-02-01 14:07:50 -08:00
|
|
|
|
2023-04-20 16:30:00 -04:00
|
|
|
if (MachineMappings.ContainsKey(MachineField.CRC))
|
|
|
|
|
machine.Crc = MachineMappings[MachineField.CRC].AsYesNo();
|
2021-02-01 14:07:50 -08:00
|
|
|
|
2023-04-20 16:30:00 -04:00
|
|
|
if (MachineMappings.ContainsKey(MachineField.Description))
|
|
|
|
|
machine.Description = MachineMappings[MachineField.Description];
|
2021-02-01 14:07:50 -08:00
|
|
|
|
2023-04-20 16:30:00 -04:00
|
|
|
if (MachineMappings.ContainsKey(MachineField.Developer))
|
|
|
|
|
machine.Developer = MachineMappings[MachineField.Developer];
|
2021-02-01 14:07:50 -08:00
|
|
|
|
2023-04-19 16:39:58 -04:00
|
|
|
if (MachineMappings.ContainsKey(MachineField.DisplayCount))
|
2021-02-01 14:07:50 -08:00
|
|
|
machine.DisplayCount = MachineMappings[MachineField.DisplayCount];
|
|
|
|
|
|
2023-04-19 16:39:58 -04:00
|
|
|
if (MachineMappings.ContainsKey(MachineField.DisplayType))
|
2021-02-01 14:07:50 -08:00
|
|
|
machine.DisplayType = MachineMappings[MachineField.DisplayType];
|
|
|
|
|
|
2023-04-20 16:30:00 -04:00
|
|
|
if (MachineMappings.ContainsKey(MachineField.Enabled))
|
|
|
|
|
machine.Enabled = MachineMappings[MachineField.Enabled];
|
2021-02-01 14:07:50 -08:00
|
|
|
|
2023-04-20 16:30:00 -04:00
|
|
|
if (MachineMappings.ContainsKey(MachineField.GenMSXID))
|
|
|
|
|
machine.GenMSXID = MachineMappings[MachineField.GenMSXID];
|
2021-02-01 14:07:50 -08:00
|
|
|
|
2023-04-20 16:30:00 -04:00
|
|
|
if (MachineMappings.ContainsKey(MachineField.Genre))
|
|
|
|
|
machine.Genre = MachineMappings[MachineField.Genre];
|
2021-02-01 14:07:50 -08:00
|
|
|
|
2023-04-19 16:39:58 -04:00
|
|
|
if (MachineMappings.ContainsKey(MachineField.History))
|
2021-02-01 14:07:50 -08:00
|
|
|
machine.History = MachineMappings[MachineField.History];
|
|
|
|
|
|
2023-04-20 16:30:00 -04:00
|
|
|
if (MachineMappings.ContainsKey(MachineField.ID))
|
|
|
|
|
machine.NoIntroId = MachineMappings[MachineField.ID];
|
2021-02-01 14:07:50 -08:00
|
|
|
|
2023-04-20 16:30:00 -04:00
|
|
|
if (MachineMappings.ContainsKey(MachineField.Manufacturer))
|
|
|
|
|
machine.Manufacturer = MachineMappings[MachineField.Manufacturer];
|
2021-02-01 14:07:50 -08:00
|
|
|
|
2023-04-20 16:30:00 -04:00
|
|
|
if (MachineMappings.ContainsKey(MachineField.Name))
|
|
|
|
|
machine.Name = MachineMappings[MachineField.Name];
|
2021-02-01 14:07:50 -08:00
|
|
|
|
2023-04-20 16:30:00 -04:00
|
|
|
if (MachineMappings.ContainsKey(MachineField.Players))
|
|
|
|
|
machine.Players = MachineMappings[MachineField.Players];
|
2021-02-01 14:07:50 -08:00
|
|
|
|
2023-04-20 16:30:00 -04:00
|
|
|
if (MachineMappings.ContainsKey(MachineField.Publisher))
|
|
|
|
|
machine.Publisher = MachineMappings[MachineField.Publisher];
|
|
|
|
|
|
|
|
|
|
if (MachineMappings.ContainsKey(MachineField.Ratings))
|
|
|
|
|
machine.Ratings = MachineMappings[MachineField.Ratings];
|
2021-02-01 14:07:50 -08:00
|
|
|
|
2023-04-19 16:39:58 -04:00
|
|
|
if (MachineMappings.ContainsKey(MachineField.RebuildTo))
|
2021-02-01 14:07:50 -08:00
|
|
|
machine.RebuildTo = MachineMappings[MachineField.RebuildTo];
|
|
|
|
|
|
2023-04-20 16:30:00 -04:00
|
|
|
if (MachineMappings.ContainsKey(MachineField.RelatedTo))
|
|
|
|
|
machine.RelatedTo = MachineMappings[MachineField.RelatedTo];
|
2021-02-01 14:07:50 -08:00
|
|
|
|
2023-04-20 16:30:00 -04:00
|
|
|
if (MachineMappings.ContainsKey(MachineField.RomOf))
|
|
|
|
|
machine.RomOf = MachineMappings[MachineField.RomOf];
|
2021-02-01 14:07:50 -08:00
|
|
|
|
2023-04-20 16:30:00 -04:00
|
|
|
if (MachineMappings.ContainsKey(MachineField.Rotation))
|
|
|
|
|
machine.Rotation = MachineMappings[MachineField.Rotation];
|
2021-02-01 14:07:50 -08:00
|
|
|
|
2023-04-20 16:30:00 -04:00
|
|
|
if (MachineMappings.ContainsKey(MachineField.Runnable))
|
|
|
|
|
machine.Runnable = MachineMappings[MachineField.Runnable].AsRunnable();
|
2021-02-01 14:07:50 -08:00
|
|
|
|
2023-04-20 16:30:00 -04:00
|
|
|
if (MachineMappings.ContainsKey(MachineField.SampleOf))
|
|
|
|
|
machine.SampleOf = MachineMappings[MachineField.SampleOf];
|
2021-02-01 14:07:50 -08:00
|
|
|
|
2023-04-19 16:39:58 -04:00
|
|
|
if (MachineMappings.ContainsKey(MachineField.Score))
|
2021-02-01 14:07:50 -08:00
|
|
|
machine.Score = MachineMappings[MachineField.Score];
|
|
|
|
|
|
2023-04-20 16:30:00 -04:00
|
|
|
if (MachineMappings.ContainsKey(MachineField.SourceFile))
|
|
|
|
|
machine.SourceFile = MachineMappings[MachineField.SourceFile];
|
2021-02-01 14:07:50 -08:00
|
|
|
|
2023-04-20 16:30:00 -04:00
|
|
|
if (MachineMappings.ContainsKey(MachineField.Status))
|
|
|
|
|
machine.Status = MachineMappings[MachineField.Status];
|
2021-02-01 14:07:50 -08:00
|
|
|
|
2023-04-20 16:30:00 -04:00
|
|
|
if (MachineMappings.ContainsKey(MachineField.Subgenre))
|
|
|
|
|
machine.Subgenre = MachineMappings[MachineField.Subgenre];
|
2021-02-01 14:07:50 -08:00
|
|
|
|
2023-04-20 16:30:00 -04:00
|
|
|
if (MachineMappings.ContainsKey(MachineField.Supported))
|
|
|
|
|
machine.Supported = MachineMappings[MachineField.Supported].AsSupported();
|
2021-02-01 14:07:50 -08:00
|
|
|
|
2023-04-19 16:39:58 -04:00
|
|
|
if (MachineMappings.ContainsKey(MachineField.System))
|
2021-02-01 14:07:50 -08:00
|
|
|
machine.System = MachineMappings[MachineField.System];
|
|
|
|
|
|
2023-04-20 16:30:00 -04:00
|
|
|
if (MachineMappings.ContainsKey(MachineField.TitleID))
|
|
|
|
|
machine.TitleID = MachineMappings[MachineField.TitleID];
|
2021-02-01 14:07:50 -08:00
|
|
|
|
2023-04-20 16:30:00 -04:00
|
|
|
if (MachineMappings.ContainsKey(MachineField.Type))
|
|
|
|
|
machine.MachineType = MachineMappings[MachineField.Type].AsMachineType();
|
2021-02-01 14:07:50 -08:00
|
|
|
|
2023-04-20 16:30:00 -04:00
|
|
|
if (MachineMappings.ContainsKey(MachineField.Year))
|
|
|
|
|
machine.Year = MachineMappings[MachineField.Year];
|
2021-02-01 14:07:50 -08:00
|
|
|
}
|
2023-03-26 21:47:17 -04:00
|
|
|
|
2021-02-01 14:07:50 -08:00
|
|
|
/// <summary>
|
|
|
|
|
/// Set fields with given values
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="adjuster">Adjuster to remove replace fields in</param>
|
|
|
|
|
private void SetFields(Adjuster adjuster)
|
|
|
|
|
{
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.Default))
|
2021-02-01 14:07:50 -08:00
|
|
|
adjuster.Default = DatItemMappings[DatItemField.Default].AsYesNo();
|
|
|
|
|
|
|
|
|
|
// Field.DatItem_Conditions does not apply here
|
|
|
|
|
if (adjuster.ConditionsSpecified)
|
|
|
|
|
{
|
2023-08-14 13:17:51 -04:00
|
|
|
foreach (Condition subCondition in adjuster.Conditions!)
|
2021-02-01 14:07:50 -08:00
|
|
|
{
|
|
|
|
|
SetFields(subCondition, true);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Set fields with given values
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="analog">Analog to remove replace fields in</param>
|
|
|
|
|
private void SetFields(Analog analog)
|
|
|
|
|
{
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.Analog_Mask))
|
2021-02-01 14:07:50 -08:00
|
|
|
analog.Mask = DatItemMappings[DatItemField.Analog_Mask];
|
|
|
|
|
}
|
|
|
|
|
|
2023-04-07 14:49:30 -04:00
|
|
|
/// <summary>
|
|
|
|
|
/// Set fields with given values
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="archive">Archive to remove replace fields in</param>
|
|
|
|
|
private void SetFields(Archive archive)
|
|
|
|
|
{
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.Categories))
|
2023-04-20 15:57:39 -04:00
|
|
|
archive.Categories = DatItemMappings[DatItemField.Categories];
|
2023-04-07 14:49:30 -04:00
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.Clone))
|
2023-04-07 15:13:19 -04:00
|
|
|
archive.CloneValue = DatItemMappings[DatItemField.Clone];
|
2023-04-07 14:49:30 -04:00
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.Complete))
|
2023-04-20 15:57:39 -04:00
|
|
|
archive.Complete = DatItemMappings[DatItemField.Complete];
|
2023-04-07 14:49:30 -04:00
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.DevStatus))
|
2023-04-20 15:57:39 -04:00
|
|
|
archive.DevStatus = DatItemMappings[DatItemField.DevStatus];
|
2023-04-07 14:49:30 -04:00
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.Languages))
|
2023-04-07 15:13:19 -04:00
|
|
|
archive.Languages = DatItemMappings[DatItemField.Languages];
|
2023-04-07 15:47:24 -04:00
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.Number))
|
2023-04-20 15:57:39 -04:00
|
|
|
archive.Number = DatItemMappings[DatItemField.Number];
|
2023-04-07 15:47:24 -04:00
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.Physical))
|
2023-04-07 15:47:24 -04:00
|
|
|
archive.Physical = DatItemMappings[DatItemField.Physical];
|
|
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.Region))
|
2023-04-20 15:57:39 -04:00
|
|
|
archive.Region = DatItemMappings[DatItemField.Region];
|
2023-04-07 15:47:24 -04:00
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.RegParent))
|
2023-04-20 15:57:39 -04:00
|
|
|
archive.RegParent = DatItemMappings[DatItemField.RegParent];
|
2023-04-07 14:49:30 -04:00
|
|
|
}
|
|
|
|
|
|
2021-02-01 14:07:50 -08:00
|
|
|
/// <summary>
|
|
|
|
|
/// Set fields with given values
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="biosSet">BiosSet to remove replace fields in</param>
|
|
|
|
|
private void SetFields(BiosSet biosSet)
|
|
|
|
|
{
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.Default))
|
2021-02-01 14:07:50 -08:00
|
|
|
biosSet.Default = DatItemMappings[DatItemField.Default].AsYesNo();
|
2023-04-20 15:57:39 -04:00
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.Description))
|
2023-04-20 15:57:39 -04:00
|
|
|
biosSet.Description = DatItemMappings[DatItemField.Description];
|
2021-02-01 14:07:50 -08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Set fields with given values
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="chip">Chip to remove replace fields in</param>
|
|
|
|
|
private void SetFields(Chip chip)
|
|
|
|
|
{
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.ChipType))
|
2021-02-01 14:07:50 -08:00
|
|
|
chip.ChipType = DatItemMappings[DatItemField.ChipType].AsChipType();
|
|
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.Clock))
|
2023-08-11 14:30:31 -04:00
|
|
|
chip.Clock = NumberHelper.ConvertToInt64(DatItemMappings[DatItemField.Clock]);
|
2023-04-20 15:57:39 -04:00
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.Tag))
|
2023-04-20 15:57:39 -04:00
|
|
|
chip.Tag = DatItemMappings[DatItemField.Tag];
|
2021-02-01 14:07:50 -08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Set fields with given values
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="condition">Condition to remove replace fields in</param>
|
|
|
|
|
/// <param name="sub">True if this is a subitem, false otherwise</param>
|
|
|
|
|
private void SetFields(Condition condition, bool sub = false)
|
|
|
|
|
{
|
|
|
|
|
if (sub)
|
|
|
|
|
{
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.Condition_Mask))
|
2021-02-01 14:07:50 -08:00
|
|
|
condition.Mask = DatItemMappings[DatItemField.Condition_Mask];
|
|
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.Condition_Relation))
|
2021-02-01 14:07:50 -08:00
|
|
|
condition.Relation = DatItemMappings[DatItemField.Condition_Relation].AsRelation();
|
|
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.Condition_Tag))
|
2023-04-20 15:57:39 -04:00
|
|
|
condition.Tag = DatItemMappings[DatItemField.Condition_Tag];
|
|
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.Condition_Value))
|
2021-02-01 14:07:50 -08:00
|
|
|
condition.Value = DatItemMappings[DatItemField.Condition_Value];
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.Mask))
|
2021-02-01 14:07:50 -08:00
|
|
|
condition.Mask = DatItemMappings[DatItemField.Mask];
|
|
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.Relation))
|
2021-02-01 14:07:50 -08:00
|
|
|
condition.Relation = DatItemMappings[DatItemField.Relation].AsRelation();
|
|
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.Tag))
|
2023-04-20 15:57:39 -04:00
|
|
|
condition.Tag = DatItemMappings[DatItemField.Tag];
|
|
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.Value))
|
2021-02-01 14:07:50 -08:00
|
|
|
condition.Value = DatItemMappings[DatItemField.Value];
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Set fields with given values
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="configuration">Configuration to remove replace fields in</param>
|
|
|
|
|
private void SetFields(Configuration configuration)
|
|
|
|
|
{
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.Mask))
|
2021-02-01 14:07:50 -08:00
|
|
|
configuration.Mask = DatItemMappings[DatItemField.Mask];
|
|
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.Tag))
|
2023-04-20 15:57:39 -04:00
|
|
|
configuration.Tag = DatItemMappings[DatItemField.Tag];
|
|
|
|
|
|
2021-02-01 14:07:50 -08:00
|
|
|
if (configuration.ConditionsSpecified)
|
|
|
|
|
{
|
2023-08-14 13:17:51 -04:00
|
|
|
foreach (Condition subCondition in configuration.Conditions!)
|
2021-02-01 14:07:50 -08:00
|
|
|
{
|
|
|
|
|
SetFields(subCondition, true);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (configuration.LocationsSpecified)
|
|
|
|
|
{
|
2023-08-14 13:17:51 -04:00
|
|
|
foreach (ConfLocation subLocation in configuration.Locations!)
|
2021-02-01 14:07:50 -08:00
|
|
|
{
|
|
|
|
|
SetFields(subLocation);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (configuration.SettingsSpecified)
|
|
|
|
|
{
|
2023-08-14 13:17:51 -04:00
|
|
|
foreach (ConfSetting subSetting in configuration.Settings!)
|
2021-02-01 14:07:50 -08:00
|
|
|
{
|
|
|
|
|
SetFields(subSetting);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2023-08-14 13:17:51 -04:00
|
|
|
/// <summary>
|
|
|
|
|
/// Set fields with given values
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="confLocation">ConfLocation to remove replace fields in</param>
|
|
|
|
|
private void SetFields(ConfLocation confLocation)
|
|
|
|
|
{
|
|
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.Location_Inverted))
|
|
|
|
|
confLocation.Inverted = DatItemMappings[DatItemField.Location_Inverted].AsYesNo();
|
|
|
|
|
|
|
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.Location_Name))
|
|
|
|
|
confLocation.Name = DatItemMappings[DatItemField.Location_Name];
|
|
|
|
|
|
|
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.Location_Number))
|
|
|
|
|
confLocation.Number = NumberHelper.ConvertToInt64(DatItemMappings[DatItemField.Location_Number]);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Set fields with given values
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="confSetting">ConfSetting to remove replace fields in</param>
|
|
|
|
|
private void SetFields(ConfSetting confSetting)
|
|
|
|
|
{
|
|
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.Setting_Default))
|
|
|
|
|
confSetting.Default = DatItemMappings[DatItemField.Setting_Default].AsYesNo();
|
|
|
|
|
|
|
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.Setting_Name))
|
|
|
|
|
confSetting.Name = DatItemMappings[DatItemField.Setting_Name];
|
|
|
|
|
|
|
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.Setting_Value))
|
|
|
|
|
confSetting.Value = DatItemMappings[DatItemField.Setting_Value];
|
|
|
|
|
|
|
|
|
|
if (confSetting.ConditionsSpecified)
|
|
|
|
|
{
|
|
|
|
|
foreach (Condition subCondition in confSetting.Conditions!)
|
|
|
|
|
{
|
|
|
|
|
SetFields(subCondition, true);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2021-02-01 14:07:50 -08:00
|
|
|
/// <summary>
|
|
|
|
|
/// Set fields with given values
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="control">Control to remove replace fields in</param>
|
|
|
|
|
private void SetFields(Control control)
|
|
|
|
|
{
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.Control_Buttons))
|
2023-08-11 14:30:31 -04:00
|
|
|
control.Buttons = NumberHelper.ConvertToInt64(DatItemMappings[DatItemField.Control_Buttons]);
|
2021-02-01 14:07:50 -08:00
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.Control_Type))
|
2023-04-20 15:57:39 -04:00
|
|
|
control.ControlType = DatItemMappings[DatItemField.Control_Type].AsControlType();
|
2021-02-01 14:07:50 -08:00
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.Control_KeyDelta))
|
2023-08-11 14:30:31 -04:00
|
|
|
control.KeyDelta = NumberHelper.ConvertToInt64(DatItemMappings[DatItemField.Control_KeyDelta]);
|
2021-02-01 14:07:50 -08:00
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.Control_Maximum))
|
2023-08-11 14:30:31 -04:00
|
|
|
control.Maximum = NumberHelper.ConvertToInt64(DatItemMappings[DatItemField.Control_Maximum]);
|
2021-02-01 14:07:50 -08:00
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.Control_Minimum))
|
2023-08-11 14:30:31 -04:00
|
|
|
control.Minimum = NumberHelper.ConvertToInt64(DatItemMappings[DatItemField.Control_Minimum]);
|
2021-02-01 14:07:50 -08:00
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.Control_Player))
|
2023-08-11 14:30:31 -04:00
|
|
|
control.Player = NumberHelper.ConvertToInt64(DatItemMappings[DatItemField.Control_Player]);
|
2023-04-20 15:57:39 -04:00
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.Control_RequiredButtons))
|
2023-08-11 14:30:31 -04:00
|
|
|
control.RequiredButtons = NumberHelper.ConvertToInt64(DatItemMappings[DatItemField.Control_RequiredButtons]);
|
2021-02-01 14:07:50 -08:00
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.Control_Reverse))
|
2021-02-01 14:07:50 -08:00
|
|
|
control.Reverse = DatItemMappings[DatItemField.Control_Reverse].AsYesNo();
|
|
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.Control_Sensitivity))
|
2023-08-11 14:30:31 -04:00
|
|
|
control.Sensitivity = NumberHelper.ConvertToInt64(DatItemMappings[DatItemField.Control_Sensitivity]);
|
2023-04-20 15:57:39 -04:00
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.Control_Ways))
|
2021-02-01 14:07:50 -08:00
|
|
|
control.Ways = DatItemMappings[DatItemField.Control_Ways];
|
|
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.Control_Ways2))
|
2021-02-01 14:07:50 -08:00
|
|
|
control.Ways2 = DatItemMappings[DatItemField.Control_Ways2];
|
|
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.Control_Ways3))
|
2021-02-01 14:07:50 -08:00
|
|
|
control.Ways3 = DatItemMappings[DatItemField.Control_Ways3];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Set fields with given values
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="dataArea">DataArea to remove replace fields in</param>
|
|
|
|
|
private void SetFields(DataArea dataArea)
|
|
|
|
|
{
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.AreaEndianness))
|
2023-04-20 15:57:39 -04:00
|
|
|
dataArea.Endianness = DatItemMappings[DatItemField.AreaEndianness].AsEndianness();
|
|
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.AreaName))
|
2023-04-20 15:57:39 -04:00
|
|
|
dataArea.Name = DatItemMappings[DatItemField.AreaName];
|
|
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.AreaSize))
|
2023-08-11 14:30:31 -04:00
|
|
|
dataArea.Size = NumberHelper.ConvertToInt64(DatItemMappings[DatItemField.AreaSize]);
|
2021-02-01 14:07:50 -08:00
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.AreaWidth))
|
2023-08-11 14:30:31 -04:00
|
|
|
dataArea.Width = NumberHelper.ConvertToInt64(DatItemMappings[DatItemField.AreaWidth]);
|
2021-02-01 14:07:50 -08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Set fields with given values
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="device">Device to remove replace fields in</param>
|
|
|
|
|
private void SetFields(Device device)
|
|
|
|
|
{
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.DeviceType))
|
2021-02-01 14:07:50 -08:00
|
|
|
device.DeviceType = DatItemMappings[DatItemField.DeviceType].AsDeviceType();
|
|
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.FixedImage))
|
2021-02-01 14:07:50 -08:00
|
|
|
device.FixedImage = DatItemMappings[DatItemField.FixedImage];
|
|
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.Interface))
|
2023-04-20 15:57:39 -04:00
|
|
|
device.Interface = DatItemMappings[DatItemField.Interface];
|
|
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.Mandatory))
|
2023-08-11 14:30:31 -04:00
|
|
|
device.Mandatory = NumberHelper.ConvertToInt64(DatItemMappings[DatItemField.Mandatory]);
|
2021-02-01 14:07:50 -08:00
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.Tag))
|
2023-04-20 15:57:39 -04:00
|
|
|
device.Tag = DatItemMappings[DatItemField.Tag];
|
2021-02-01 14:07:50 -08:00
|
|
|
|
2023-04-20 15:57:39 -04:00
|
|
|
if (device.ExtensionsSpecified)
|
2021-02-01 14:07:50 -08:00
|
|
|
{
|
2023-08-14 13:17:51 -04:00
|
|
|
foreach (Extension subExtension in device.Extensions!)
|
2021-02-01 14:07:50 -08:00
|
|
|
{
|
2023-04-20 15:57:39 -04:00
|
|
|
SetFields(subExtension);
|
2021-02-01 14:07:50 -08:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2023-04-20 15:57:39 -04:00
|
|
|
if (device.InstancesSpecified)
|
2021-02-01 14:07:50 -08:00
|
|
|
{
|
2023-08-14 13:17:51 -04:00
|
|
|
foreach (Instance subInstance in device.Instances!)
|
2021-02-01 14:07:50 -08:00
|
|
|
{
|
2023-04-20 15:57:39 -04:00
|
|
|
SetFields(subInstance);
|
2021-02-01 14:07:50 -08:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2023-08-14 13:17:51 -04:00
|
|
|
/// <summary>
|
|
|
|
|
/// Set fields with given values
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="dipLocation">DipLocation to remove replace fields in</param>
|
|
|
|
|
private void SetFields(DipLocation dipLocation)
|
|
|
|
|
{
|
|
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.Location_Inverted))
|
|
|
|
|
dipLocation.Inverted = DatItemMappings[DatItemField.Location_Inverted].AsYesNo();
|
|
|
|
|
|
|
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.Location_Name))
|
|
|
|
|
dipLocation.Name = DatItemMappings[DatItemField.Location_Name];
|
|
|
|
|
|
|
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.Location_Number))
|
|
|
|
|
dipLocation.Number = NumberHelper.ConvertToInt64(DatItemMappings[DatItemField.Location_Number]);
|
|
|
|
|
}
|
|
|
|
|
|
2021-02-01 14:07:50 -08:00
|
|
|
/// <summary>
|
|
|
|
|
/// Set fields with given values
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="dipSwitch">DipSwitch to remove replace fields in</param>
|
|
|
|
|
private void SetFields(DipSwitch dipSwitch)
|
|
|
|
|
{
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.Mask))
|
2023-04-20 15:57:39 -04:00
|
|
|
dipSwitch.Mask = DatItemMappings[DatItemField.Mask];
|
2021-02-01 14:07:50 -08:00
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.Tag))
|
2021-02-01 14:07:50 -08:00
|
|
|
dipSwitch.Tag = DatItemMappings[DatItemField.Tag];
|
|
|
|
|
|
|
|
|
|
if (dipSwitch.ConditionsSpecified)
|
|
|
|
|
{
|
2023-08-14 13:17:51 -04:00
|
|
|
foreach (Condition subCondition in dipSwitch.Conditions!)
|
2021-02-01 14:07:50 -08:00
|
|
|
{
|
|
|
|
|
SetFields(subCondition, true);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (dipSwitch.LocationsSpecified)
|
|
|
|
|
{
|
2023-08-14 13:17:51 -04:00
|
|
|
foreach (DipLocation subLocation in dipSwitch.Locations!)
|
2021-02-01 14:07:50 -08:00
|
|
|
{
|
|
|
|
|
SetFields(subLocation);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (dipSwitch.ValuesSpecified)
|
|
|
|
|
{
|
2023-08-14 13:17:51 -04:00
|
|
|
foreach (DipValue subValue in dipSwitch.Values!)
|
2021-02-01 14:07:50 -08:00
|
|
|
{
|
|
|
|
|
SetFields(subValue);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2023-04-19 16:39:58 -04:00
|
|
|
dipSwitch.Part ??= new Part();
|
2021-02-01 14:07:50 -08:00
|
|
|
SetFields(dipSwitch.Part);
|
|
|
|
|
}
|
|
|
|
|
|
2023-08-14 13:17:51 -04:00
|
|
|
/// <summary>
|
|
|
|
|
/// Set fields with given values
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="dipValue">DipValue to remove replace fields in</param>
|
|
|
|
|
private void SetFields(DipValue dipValue)
|
|
|
|
|
{
|
|
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.Setting_Default))
|
|
|
|
|
dipValue.Default = DatItemMappings[DatItemField.Setting_Default].AsYesNo();
|
|
|
|
|
|
|
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.Setting_Name))
|
|
|
|
|
dipValue.Name = DatItemMappings[DatItemField.Setting_Name];
|
|
|
|
|
|
|
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.Setting_Value))
|
|
|
|
|
dipValue.Value = DatItemMappings[DatItemField.Setting_Value];
|
|
|
|
|
|
|
|
|
|
if (dipValue.ConditionsSpecified)
|
|
|
|
|
{
|
|
|
|
|
foreach (Condition subCondition in dipValue.Conditions!)
|
|
|
|
|
{
|
|
|
|
|
SetFields(subCondition, true);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2021-02-01 14:07:50 -08:00
|
|
|
/// <summary>
|
|
|
|
|
/// Set fields with given values
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="disk">Disk to remove replace fields in</param>
|
|
|
|
|
private void SetFields(Disk disk)
|
|
|
|
|
{
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.Index))
|
2023-04-20 15:57:39 -04:00
|
|
|
disk.Index = DatItemMappings[DatItemField.Index];
|
2023-03-26 21:47:17 -04:00
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.MD5))
|
2021-02-01 14:07:50 -08:00
|
|
|
disk.MD5 = DatItemMappings[DatItemField.MD5];
|
|
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.Merge))
|
2021-02-01 14:07:50 -08:00
|
|
|
disk.MergeTag = DatItemMappings[DatItemField.Merge];
|
|
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.Optional))
|
2023-04-20 15:57:39 -04:00
|
|
|
disk.Optional = DatItemMappings[DatItemField.Optional].AsYesNo();
|
|
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.Region))
|
2021-02-01 14:07:50 -08:00
|
|
|
disk.Region = DatItemMappings[DatItemField.Region];
|
|
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.SHA1))
|
2023-04-20 15:57:39 -04:00
|
|
|
disk.SHA1 = DatItemMappings[DatItemField.SHA1];
|
2021-02-01 14:07:50 -08:00
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.Status))
|
2021-02-01 14:07:50 -08:00
|
|
|
disk.ItemStatus = DatItemMappings[DatItemField.Status].AsItemStatus();
|
|
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.Writable))
|
2023-04-20 15:57:39 -04:00
|
|
|
disk.Writable = DatItemMappings[DatItemField.Writable].AsYesNo();
|
2021-02-01 14:07:50 -08:00
|
|
|
|
2023-04-19 16:39:58 -04:00
|
|
|
disk.DiskArea ??= new DiskArea();
|
2021-02-01 14:07:50 -08:00
|
|
|
SetFields(disk.DiskArea);
|
|
|
|
|
|
2023-04-19 16:39:58 -04:00
|
|
|
disk.Part ??= new Part();
|
2021-02-01 14:07:50 -08:00
|
|
|
SetFields(disk.Part);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Set fields with given values
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="diskArea">DiskArea to remove replace fields in</param>
|
|
|
|
|
private void SetFields(DiskArea diskArea)
|
|
|
|
|
{
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.AreaName))
|
2021-02-01 14:07:50 -08:00
|
|
|
diskArea.Name = DatItemMappings[DatItemField.AreaName];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Set fields with given values
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="display">Display to remove replace fields in</param>
|
|
|
|
|
private void SetFields(Display display)
|
|
|
|
|
{
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.DisplayType))
|
2021-02-01 14:07:50 -08:00
|
|
|
display.DisplayType = DatItemMappings[DatItemField.DisplayType].AsDisplayType();
|
|
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.FlipX))
|
2021-02-01 14:07:50 -08:00
|
|
|
display.FlipX = DatItemMappings[DatItemField.FlipX].AsYesNo();
|
|
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.Height))
|
2023-08-11 14:30:31 -04:00
|
|
|
display.Height = NumberHelper.ConvertToInt64(DatItemMappings[DatItemField.Height]);
|
2021-02-01 14:07:50 -08:00
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.HBEnd))
|
2023-08-11 14:30:31 -04:00
|
|
|
display.HBEnd = NumberHelper.ConvertToInt64(DatItemMappings[DatItemField.HBEnd]);
|
2021-02-01 14:07:50 -08:00
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.HBStart))
|
2023-08-11 14:30:31 -04:00
|
|
|
display.HBStart = NumberHelper.ConvertToInt64(DatItemMappings[DatItemField.HBStart]);
|
2021-02-01 14:07:50 -08:00
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.HTotal))
|
2023-08-11 14:30:31 -04:00
|
|
|
display.HTotal = NumberHelper.ConvertToInt64(DatItemMappings[DatItemField.HTotal]);
|
2021-02-01 14:07:50 -08:00
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.PixClock))
|
2023-08-11 14:30:31 -04:00
|
|
|
display.PixClock = NumberHelper.ConvertToInt64(DatItemMappings[DatItemField.PixClock]);
|
2021-02-01 14:07:50 -08:00
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.Refresh))
|
2023-08-11 14:30:31 -04:00
|
|
|
display.Refresh = NumberHelper.ConvertToDouble(DatItemMappings[DatItemField.Refresh]);
|
2021-02-01 14:07:50 -08:00
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.Rotate))
|
2023-08-11 14:30:31 -04:00
|
|
|
display.Rotate = NumberHelper.ConvertToInt64(DatItemMappings[DatItemField.Rotate]);
|
2023-04-20 15:57:39 -04:00
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.Tag))
|
2023-04-20 15:57:39 -04:00
|
|
|
display.Tag = DatItemMappings[DatItemField.Tag];
|
2021-02-01 14:07:50 -08:00
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.VBEnd))
|
2023-08-11 14:30:31 -04:00
|
|
|
display.VBEnd = NumberHelper.ConvertToInt64(DatItemMappings[DatItemField.VBEnd]);
|
2021-02-01 14:07:50 -08:00
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.VBStart))
|
2023-08-11 14:30:31 -04:00
|
|
|
display.VBStart = NumberHelper.ConvertToInt64(DatItemMappings[DatItemField.VBStart]);
|
2023-04-20 15:57:39 -04:00
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.VTotal))
|
2023-08-11 14:30:31 -04:00
|
|
|
display.VTotal = NumberHelper.ConvertToInt64(DatItemMappings[DatItemField.VTotal]);
|
2023-04-20 15:57:39 -04:00
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.Width))
|
2023-08-11 14:30:31 -04:00
|
|
|
display.Width = NumberHelper.ConvertToInt64(DatItemMappings[DatItemField.Width]);
|
2021-02-01 14:07:50 -08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Set fields with given values
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="driver">Driver to remove replace fields in</param>
|
|
|
|
|
private void SetFields(Driver driver)
|
|
|
|
|
{
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.CocktailStatus))
|
2023-04-20 15:57:39 -04:00
|
|
|
driver.Cocktail = DatItemMappings[DatItemField.CocktailStatus].AsSupportStatus();
|
|
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.Incomplete))
|
2023-04-20 15:57:39 -04:00
|
|
|
driver.Incomplete = DatItemMappings[DatItemField.Incomplete].AsYesNo();
|
2021-02-01 14:07:50 -08:00
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.EmulationStatus))
|
2021-02-01 14:07:50 -08:00
|
|
|
driver.Emulation = DatItemMappings[DatItemField.EmulationStatus].AsSupportStatus();
|
|
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.NoSoundHardware))
|
2023-04-20 15:57:39 -04:00
|
|
|
driver.NoSoundHardware = DatItemMappings[DatItemField.NoSoundHardware].AsYesNo();
|
|
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.RequiresArtwork))
|
2023-04-20 15:57:39 -04:00
|
|
|
driver.RequiresArtwork = DatItemMappings[DatItemField.RequiresArtwork].AsYesNo();
|
2021-02-01 14:07:50 -08:00
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.SaveStateStatus))
|
2021-02-01 14:07:50 -08:00
|
|
|
driver.SaveState = DatItemMappings[DatItemField.SaveStateStatus].AsSupported();
|
2022-11-03 11:37:55 -07:00
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.SupportStatus))
|
2023-04-20 15:57:39 -04:00
|
|
|
driver.Status = DatItemMappings[DatItemField.SupportStatus].AsSupportStatus();
|
2022-11-03 11:37:55 -07:00
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.Unofficial))
|
2022-11-03 11:37:55 -07:00
|
|
|
driver.Unofficial = DatItemMappings[DatItemField.Unofficial].AsYesNo();
|
2021-02-01 14:07:50 -08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Set fields with given values
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="extension">Extension to remove replace fields in</param>
|
|
|
|
|
private void SetFields(Extension extension)
|
|
|
|
|
{
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.Extension_Name))
|
2021-02-01 14:07:50 -08:00
|
|
|
extension.Name = DatItemMappings[DatItemField.Extension_Name];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Set fields with given values
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="feature">Feature to remove replace fields in</param>
|
|
|
|
|
private void SetFields(Feature feature)
|
|
|
|
|
{
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.FeatureOverall))
|
2023-04-20 15:57:39 -04:00
|
|
|
feature.Overall = DatItemMappings[DatItemField.FeatureOverall].AsFeatureStatus();
|
2021-02-01 14:07:50 -08:00
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.FeatureStatus))
|
2021-02-01 14:07:50 -08:00
|
|
|
feature.Status = DatItemMappings[DatItemField.FeatureStatus].AsFeatureStatus();
|
|
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.FeatureType))
|
2023-04-20 15:57:39 -04:00
|
|
|
feature.Type = DatItemMappings[DatItemField.FeatureType].AsFeatureType();
|
2021-02-01 14:07:50 -08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Set fields with given values
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="info">Info to remove replace fields in</param>
|
|
|
|
|
private void SetFields(Info info)
|
|
|
|
|
{
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.Value))
|
2021-02-01 14:07:50 -08:00
|
|
|
info.Value = DatItemMappings[DatItemField.Value];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Set fields with given values
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="input">Input to remove replace fields in</param>
|
|
|
|
|
private void SetFields(Input input)
|
|
|
|
|
{
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.Coins))
|
2023-08-11 14:30:31 -04:00
|
|
|
input.Coins = NumberHelper.ConvertToInt64(DatItemMappings[DatItemField.Coins]);
|
2023-04-20 15:57:39 -04:00
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.Players))
|
2023-08-11 14:30:31 -04:00
|
|
|
input.Players = NumberHelper.ConvertToInt64(DatItemMappings[DatItemField.Players]);
|
2023-04-20 15:57:39 -04:00
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.Service))
|
2021-02-01 14:07:50 -08:00
|
|
|
input.Service = DatItemMappings[DatItemField.Service].AsYesNo();
|
|
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.Tilt))
|
2021-02-01 14:07:50 -08:00
|
|
|
input.Tilt = DatItemMappings[DatItemField.Tilt].AsYesNo();
|
|
|
|
|
|
|
|
|
|
if (input.ControlsSpecified)
|
|
|
|
|
{
|
2023-08-14 13:17:51 -04:00
|
|
|
foreach (Control subControl in input.Controls!)
|
2021-02-01 14:07:50 -08:00
|
|
|
{
|
|
|
|
|
SetFields(subControl);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Set fields with given values
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="instance">Instance to remove replace fields in</param>
|
|
|
|
|
private void SetFields(Instance instance)
|
|
|
|
|
{
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.Instance_BriefName))
|
2021-02-01 14:07:50 -08:00
|
|
|
instance.BriefName = DatItemMappings[DatItemField.Instance_BriefName];
|
2023-04-20 15:57:39 -04:00
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.Instance_Name))
|
2023-04-20 15:57:39 -04:00
|
|
|
instance.BriefName = DatItemMappings[DatItemField.Instance_Name];
|
2021-02-01 14:07:50 -08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Set fields with given values
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="media">Media to remove replace fields in</param>
|
|
|
|
|
private void SetFields(Media media)
|
|
|
|
|
{
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.MD5))
|
2021-02-01 14:07:50 -08:00
|
|
|
media.MD5 = DatItemMappings[DatItemField.MD5];
|
|
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.SHA1))
|
2021-02-01 14:07:50 -08:00
|
|
|
media.SHA1 = DatItemMappings[DatItemField.SHA1];
|
|
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.SHA256))
|
2021-02-01 14:07:50 -08:00
|
|
|
media.SHA256 = DatItemMappings[DatItemField.SHA256];
|
|
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.SpamSum))
|
2021-02-01 14:07:50 -08:00
|
|
|
media.SpamSum = DatItemMappings[DatItemField.SpamSum];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Set fields with given values
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="part">Part to remove replace fields in</param>
|
|
|
|
|
private void SetFields(Part part)
|
|
|
|
|
{
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.Part_Interface))
|
2021-02-01 14:07:50 -08:00
|
|
|
part.Interface = DatItemMappings[DatItemField.Part_Interface];
|
|
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.Part_Name))
|
2023-04-20 15:57:39 -04:00
|
|
|
part.Name = DatItemMappings[DatItemField.Part_Name];
|
|
|
|
|
|
2021-02-01 14:07:50 -08:00
|
|
|
if (part.FeaturesSpecified)
|
|
|
|
|
{
|
2023-08-14 13:17:51 -04:00
|
|
|
foreach (PartFeature subPartFeature in part.Features!)
|
2021-02-01 14:07:50 -08:00
|
|
|
{
|
|
|
|
|
SetFields(subPartFeature);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Set fields with given values
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="partFeature">PartFeature to remove replace fields in</param>
|
|
|
|
|
private void SetFields(PartFeature partFeature)
|
|
|
|
|
{
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.Part_Feature_Name))
|
2021-02-01 14:07:50 -08:00
|
|
|
partFeature.Name = DatItemMappings[DatItemField.Part_Feature_Name];
|
|
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.Part_Feature_Value))
|
2021-02-01 14:07:50 -08:00
|
|
|
partFeature.Value = DatItemMappings[DatItemField.Part_Feature_Value];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Set fields with given values
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="port">Port to remove replace fields in</param>
|
|
|
|
|
private void SetFields(Port port)
|
|
|
|
|
{
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.Tag))
|
2021-02-01 14:07:50 -08:00
|
|
|
port.Tag = DatItemMappings[DatItemField.Tag];
|
|
|
|
|
|
|
|
|
|
if (port.AnalogsSpecified)
|
|
|
|
|
{
|
2023-08-14 13:17:51 -04:00
|
|
|
foreach (Analog subAnalog in port.Analogs!)
|
2021-02-01 14:07:50 -08:00
|
|
|
{
|
|
|
|
|
SetFields(subAnalog);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Set fields with given values
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="ramOption">RamOption to remove replace fields in</param>
|
|
|
|
|
private void SetFields(RamOption ramOption)
|
|
|
|
|
{
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.Content))
|
2021-02-01 14:07:50 -08:00
|
|
|
ramOption.Content = DatItemMappings[DatItemField.Content];
|
2023-04-20 15:57:39 -04:00
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.Default))
|
2023-04-20 15:57:39 -04:00
|
|
|
ramOption.Default = DatItemMappings[DatItemField.Default].AsYesNo();
|
2021-02-01 14:07:50 -08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Set fields with given values
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="release">Release to remove replace fields in</param>
|
|
|
|
|
private void SetFields(Release release)
|
|
|
|
|
{
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.Date))
|
2021-02-01 14:07:50 -08:00
|
|
|
release.Date = DatItemMappings[DatItemField.Date];
|
|
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.Default))
|
2021-02-01 14:07:50 -08:00
|
|
|
release.Default = DatItemMappings[DatItemField.Default].AsYesNo();
|
2023-04-20 15:57:39 -04:00
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.Language))
|
2023-04-20 15:57:39 -04:00
|
|
|
release.Language = DatItemMappings[DatItemField.Language];
|
|
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.Region))
|
2023-04-20 15:57:39 -04:00
|
|
|
release.Region = DatItemMappings[DatItemField.Region];
|
2021-02-01 14:07:50 -08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Set fields with given values
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="rom">Rom to remove replace fields in</param>
|
|
|
|
|
private void SetFields(Rom rom)
|
|
|
|
|
{
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.AltName))
|
2023-04-20 15:57:39 -04:00
|
|
|
rom.AltName = DatItemMappings[DatItemField.AltName];
|
|
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.AltTitle))
|
2023-04-20 15:57:39 -04:00
|
|
|
rom.AltTitle = DatItemMappings[DatItemField.AltTitle];
|
|
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.ArchiveDotOrgFormat))
|
2023-04-20 15:57:39 -04:00
|
|
|
rom.ArchiveDotOrgFormat = DatItemMappings[DatItemField.ArchiveDotOrgFormat];
|
|
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.ArchiveDotOrgSource))
|
2023-04-20 15:57:39 -04:00
|
|
|
rom.ArchiveDotOrgSource = DatItemMappings[DatItemField.ArchiveDotOrgSource];
|
2021-02-01 14:07:50 -08:00
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.Bios))
|
2021-02-01 14:07:50 -08:00
|
|
|
rom.Bios = DatItemMappings[DatItemField.Bios];
|
|
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.Boot))
|
2023-04-20 15:57:39 -04:00
|
|
|
rom.Boot = DatItemMappings[DatItemField.Boot];
|
2021-02-01 14:07:50 -08:00
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.CRC))
|
2021-02-01 14:07:50 -08:00
|
|
|
rom.CRC = DatItemMappings[DatItemField.CRC];
|
|
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.Date))
|
2023-04-20 15:57:39 -04:00
|
|
|
rom.Date = DatItemMappings[DatItemField.Date];
|
2021-02-01 14:07:50 -08:00
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.Inverted))
|
2023-04-20 15:57:39 -04:00
|
|
|
rom.Inverted = DatItemMappings[DatItemField.Inverted].AsYesNo();
|
2021-02-01 14:07:50 -08:00
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.LoadFlag))
|
2023-04-20 15:57:39 -04:00
|
|
|
rom.LoadFlag = DatItemMappings[DatItemField.LoadFlag].AsLoadFlag();
|
2021-02-01 14:07:50 -08:00
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.MD5))
|
2023-04-20 15:57:39 -04:00
|
|
|
rom.MD5 = DatItemMappings[DatItemField.MD5];
|
2021-02-01 14:07:50 -08:00
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.Merge))
|
2021-02-01 14:07:50 -08:00
|
|
|
rom.MergeTag = DatItemMappings[DatItemField.Merge];
|
|
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.MIA))
|
2023-04-20 15:57:39 -04:00
|
|
|
rom.MIA = DatItemMappings[DatItemField.MIA].AsYesNo();
|
2021-02-01 14:07:50 -08:00
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.Offset))
|
2021-02-01 14:07:50 -08:00
|
|
|
rom.Offset = DatItemMappings[DatItemField.Offset];
|
|
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.OpenMSXSubType))
|
2023-04-20 15:57:39 -04:00
|
|
|
rom.OpenMSXSubType = DatItemMappings[DatItemField.OpenMSXSubType].AsOpenMSXSubType();
|
2021-02-01 14:07:50 -08:00
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.OpenMSXType))
|
2023-04-20 15:57:39 -04:00
|
|
|
rom.OpenMSXType = DatItemMappings[DatItemField.OpenMSXType];
|
2021-02-01 14:07:50 -08:00
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.Optional))
|
2021-02-01 14:07:50 -08:00
|
|
|
rom.Optional = DatItemMappings[DatItemField.Optional].AsYesNo();
|
|
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.Original))
|
2023-04-20 15:57:39 -04:00
|
|
|
rom.Original = new Original() { Content = DatItemMappings[DatItemField.Original] };
|
2021-07-19 11:17:29 -07:00
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.OriginalFilename))
|
2021-07-19 11:17:29 -07:00
|
|
|
rom.OriginalFilename = DatItemMappings[DatItemField.OriginalFilename];
|
|
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.Region))
|
2023-04-20 15:57:39 -04:00
|
|
|
rom.Region = DatItemMappings[DatItemField.Region];
|
2023-03-26 22:03:29 -04:00
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.Remark))
|
2023-04-20 15:57:39 -04:00
|
|
|
rom.Remark = DatItemMappings[DatItemField.Remark];
|
2021-02-01 14:07:50 -08:00
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.Rotation))
|
2023-04-20 15:57:39 -04:00
|
|
|
rom.Rotation = DatItemMappings[DatItemField.Rotation];
|
2021-02-01 14:07:50 -08:00
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.SHA1))
|
2023-04-20 15:57:39 -04:00
|
|
|
rom.SHA1 = DatItemMappings[DatItemField.SHA1];
|
2021-02-01 14:07:50 -08:00
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.SHA256))
|
2023-04-20 15:57:39 -04:00
|
|
|
rom.SHA256 = DatItemMappings[DatItemField.SHA256];
|
2021-02-01 14:07:50 -08:00
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.SHA384))
|
2023-04-20 15:57:39 -04:00
|
|
|
rom.SHA384 = DatItemMappings[DatItemField.SHA384];
|
2021-02-01 14:07:50 -08:00
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.SHA512))
|
2023-04-20 15:57:39 -04:00
|
|
|
rom.SHA512 = DatItemMappings[DatItemField.SHA512];
|
2021-02-01 14:07:50 -08:00
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.Size))
|
2023-08-11 14:30:31 -04:00
|
|
|
rom.Size = NumberHelper.ConvertToInt64(DatItemMappings[DatItemField.Size]);
|
2021-02-01 14:07:50 -08:00
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.SpamSum))
|
2023-04-20 15:57:39 -04:00
|
|
|
rom.SpamSum = DatItemMappings[DatItemField.SpamSum];
|
2021-02-01 14:07:50 -08:00
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.Status))
|
2023-04-20 15:57:39 -04:00
|
|
|
rom.ItemStatus = DatItemMappings[DatItemField.Status].AsItemStatus();
|
2021-02-01 14:07:50 -08:00
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.Summation))
|
2023-04-20 15:57:39 -04:00
|
|
|
rom.Summation = DatItemMappings[DatItemField.Summation];
|
2021-02-01 14:07:50 -08:00
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.Value))
|
2021-02-01 14:07:50 -08:00
|
|
|
rom.Value = DatItemMappings[DatItemField.Value];
|
|
|
|
|
|
2023-04-19 16:39:58 -04:00
|
|
|
rom.DataArea ??= new DataArea();
|
2021-02-01 14:07:50 -08:00
|
|
|
SetFields(rom.DataArea);
|
|
|
|
|
|
2023-04-19 16:39:58 -04:00
|
|
|
rom.Part ??= new Part();
|
2021-02-01 14:07:50 -08:00
|
|
|
SetFields(rom.Part);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Set fields with given values
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="sharedFeature">SharedFeature to remove replace fields in</param>
|
|
|
|
|
private void SetFields(SharedFeature sharedFeature)
|
|
|
|
|
{
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.Value))
|
2021-02-01 14:07:50 -08:00
|
|
|
sharedFeature.Value = DatItemMappings[DatItemField.Value];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Set fields with given values
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="slot">Slot to remove replace fields in</param>
|
|
|
|
|
private void SetFields(Slot slot)
|
|
|
|
|
{
|
|
|
|
|
if (slot.SlotOptionsSpecified)
|
|
|
|
|
{
|
2023-08-14 13:17:51 -04:00
|
|
|
foreach (SlotOption subSlotOption in slot.SlotOptions!)
|
2021-02-01 14:07:50 -08:00
|
|
|
{
|
|
|
|
|
SetFields(subSlotOption);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Set fields with given values
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="slotOption">SlotOption to remove replace fields in</param>
|
|
|
|
|
private void SetFields(SlotOption slotOption)
|
|
|
|
|
{
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.SlotOption_Default))
|
2023-04-20 15:57:39 -04:00
|
|
|
slotOption.Default = DatItemMappings[DatItemField.SlotOption_Default].AsYesNo();
|
2021-02-01 14:07:50 -08:00
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.SlotOption_DeviceName))
|
2021-02-01 14:07:50 -08:00
|
|
|
slotOption.DeviceName = DatItemMappings[DatItemField.SlotOption_DeviceName];
|
|
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.SlotOption_Name))
|
2023-04-20 15:57:39 -04:00
|
|
|
slotOption.Name = DatItemMappings[DatItemField.SlotOption_Name];
|
2021-02-01 14:07:50 -08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Set fields with given values
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="softwareList">SoftwareList to remove replace fields in</param>
|
|
|
|
|
private void SetFields(SoftwareList softwareList)
|
|
|
|
|
{
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.Filter))
|
2023-04-20 15:57:39 -04:00
|
|
|
softwareList.Filter = DatItemMappings[DatItemField.Filter];
|
2022-11-03 11:44:29 -07:00
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.SoftwareListStatus))
|
2021-02-01 14:07:50 -08:00
|
|
|
softwareList.Status = DatItemMappings[DatItemField.SoftwareListStatus].AsSoftwareListStatus();
|
|
|
|
|
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.Tag))
|
2023-04-20 15:57:39 -04:00
|
|
|
softwareList.Tag = DatItemMappings[DatItemField.Tag];
|
2021-02-01 14:07:50 -08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Set fields with given values
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="sound">Sound to remove replace fields in</param>
|
|
|
|
|
private void SetFields(Sound sound)
|
|
|
|
|
{
|
2023-08-10 23:22:14 -04:00
|
|
|
if (DatItemMappings!.ContainsKey(DatItemField.Channels))
|
2023-08-11 14:30:31 -04:00
|
|
|
sound.Channels = NumberHelper.ConvertToInt64(DatItemMappings[DatItemField.Channels]);
|
2021-02-01 14:07:50 -08:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|