mirror of
https://github.com/claunia/SabreTools.git
synced 2025-12-16 19:14:27 +00:00
Create and use more passthrough methods
This commit is contained in:
@@ -43,29 +43,29 @@ namespace SabreTools.DatFiles.Formats
|
||||
case Release release:
|
||||
if (string.IsNullOrEmpty(release.GetName()))
|
||||
missingFields.Add(Models.Metadata.Release.NameKey);
|
||||
if (string.IsNullOrEmpty(release.GetFieldValue<string?>(Models.Metadata.Release.RegionKey)))
|
||||
if (string.IsNullOrEmpty(release.GetStringFieldValue(Models.Metadata.Release.RegionKey)))
|
||||
missingFields.Add(Models.Metadata.Release.RegionKey);
|
||||
break;
|
||||
|
||||
case BiosSet biosset:
|
||||
if (string.IsNullOrEmpty(biosset.GetName()))
|
||||
missingFields.Add(Models.Metadata.BiosSet.NameKey);
|
||||
if (string.IsNullOrEmpty(biosset.GetFieldValue<string?>(Models.Metadata.BiosSet.DescriptionKey)))
|
||||
if (string.IsNullOrEmpty(biosset.GetStringFieldValue(Models.Metadata.BiosSet.DescriptionKey)))
|
||||
missingFields.Add(Models.Metadata.BiosSet.DescriptionKey);
|
||||
break;
|
||||
|
||||
case Rom rom:
|
||||
if (string.IsNullOrEmpty(rom.GetName()))
|
||||
missingFields.Add(Models.Metadata.Rom.NameKey);
|
||||
if (rom.GetFieldValue<string?>(Models.Metadata.Rom.SizeKey) == null || NumberHelper.ConvertToInt64(rom.GetFieldValue<string?>(Models.Metadata.Rom.SizeKey)) < 0)
|
||||
if (rom.GetInt64FieldValue(Models.Metadata.Rom.SizeKey) == null || rom.GetInt64FieldValue(Models.Metadata.Rom.SizeKey) < 0)
|
||||
missingFields.Add(Models.Metadata.Rom.SizeKey);
|
||||
if (string.IsNullOrEmpty(rom.GetFieldValue<string?>(Models.Metadata.Rom.CRCKey))
|
||||
&& string.IsNullOrEmpty(rom.GetFieldValue<string?>(Models.Metadata.Rom.MD5Key))
|
||||
&& string.IsNullOrEmpty(rom.GetFieldValue<string?>(Models.Metadata.Rom.SHA1Key))
|
||||
&& string.IsNullOrEmpty(rom.GetFieldValue<string?>(Models.Metadata.Rom.SHA256Key))
|
||||
&& string.IsNullOrEmpty(rom.GetFieldValue<string?>(Models.Metadata.Rom.SHA384Key))
|
||||
&& string.IsNullOrEmpty(rom.GetFieldValue<string?>(Models.Metadata.Rom.SHA512Key))
|
||||
&& string.IsNullOrEmpty(rom.GetFieldValue<string?>(Models.Metadata.Rom.SpamSumKey)))
|
||||
if (string.IsNullOrEmpty(rom.GetStringFieldValue(Models.Metadata.Rom.CRCKey))
|
||||
&& string.IsNullOrEmpty(rom.GetStringFieldValue(Models.Metadata.Rom.MD5Key))
|
||||
&& string.IsNullOrEmpty(rom.GetStringFieldValue(Models.Metadata.Rom.SHA1Key))
|
||||
&& string.IsNullOrEmpty(rom.GetStringFieldValue(Models.Metadata.Rom.SHA256Key))
|
||||
&& string.IsNullOrEmpty(rom.GetStringFieldValue(Models.Metadata.Rom.SHA384Key))
|
||||
&& string.IsNullOrEmpty(rom.GetStringFieldValue(Models.Metadata.Rom.SHA512Key))
|
||||
&& string.IsNullOrEmpty(rom.GetStringFieldValue(Models.Metadata.Rom.SpamSumKey)))
|
||||
{
|
||||
missingFields.Add(Models.Metadata.Rom.SHA1Key);
|
||||
}
|
||||
@@ -74,8 +74,8 @@ namespace SabreTools.DatFiles.Formats
|
||||
case Disk disk:
|
||||
if (string.IsNullOrEmpty(disk.GetName()))
|
||||
missingFields.Add(Models.Metadata.Disk.NameKey);
|
||||
if (string.IsNullOrEmpty(disk.GetFieldValue<string?>(Models.Metadata.Disk.MD5Key))
|
||||
&& string.IsNullOrEmpty(disk.GetFieldValue<string?>(Models.Metadata.Disk.SHA1Key)))
|
||||
if (string.IsNullOrEmpty(disk.GetStringFieldValue(Models.Metadata.Disk.MD5Key))
|
||||
&& string.IsNullOrEmpty(disk.GetStringFieldValue(Models.Metadata.Disk.SHA1Key)))
|
||||
{
|
||||
missingFields.Add(Models.Metadata.Disk.SHA1Key);
|
||||
}
|
||||
@@ -101,17 +101,17 @@ namespace SabreTools.DatFiles.Formats
|
||||
case Display display:
|
||||
if (display.GetFieldValue<DisplayType>(Models.Metadata.Display.DisplayTypeKey) == DisplayType.NULL)
|
||||
missingFields.Add(Models.Metadata.Display.DisplayTypeKey);
|
||||
if (display.GetFieldValue<long?>(Models.Metadata.Display.RotateKey) == null)
|
||||
if (display.GetInt64FieldValue(Models.Metadata.Display.RotateKey) == null)
|
||||
missingFields.Add(Models.Metadata.Display.RotateKey);
|
||||
break;
|
||||
|
||||
case Sound sound:
|
||||
if (sound.GetFieldValue<long?>(Models.Metadata.Sound.ChannelsKey) == null)
|
||||
if (sound.GetInt64FieldValue(Models.Metadata.Sound.ChannelsKey) == null)
|
||||
missingFields.Add(Models.Metadata.Sound.ChannelsKey);
|
||||
break;
|
||||
|
||||
case Input input:
|
||||
if (input.GetFieldValue<long?>(Models.Metadata.Input.PlayersKey) == null)
|
||||
if (input.GetInt64FieldValue(Models.Metadata.Input.PlayersKey) == null)
|
||||
missingFields.Add(Models.Metadata.Input.PlayersKey);
|
||||
if (!input.ControlsSpecified)
|
||||
missingFields.Add(Models.Metadata.Input.ControlKey);
|
||||
@@ -188,18 +188,18 @@ namespace SabreTools.DatFiles.Formats
|
||||
|
||||
var clrMamePro = new Models.ClrMamePro.ClrMamePro
|
||||
{
|
||||
Name = Header.GetFieldValue<string?>(Models.Metadata.Header.NameKey),
|
||||
Description = Header.GetFieldValue<string?>(Models.Metadata.Header.DescriptionKey),
|
||||
RootDir = Header.GetFieldValue<string?>(Models.Metadata.Header.RootDirKey),
|
||||
Category = Header.GetFieldValue<string?>(Models.Metadata.Header.CategoryKey),
|
||||
Version = Header.GetFieldValue<string?>(Models.Metadata.Header.VersionKey),
|
||||
Date = Header.GetFieldValue<string?>(Models.Metadata.Header.DateKey),
|
||||
Author = Header.GetFieldValue<string?>(Models.Metadata.Header.AuthorKey),
|
||||
Homepage = Header.GetFieldValue<string?>(Models.Metadata.Header.HomepageKey),
|
||||
Url = Header.GetFieldValue<string?>(Models.Metadata.Header.UrlKey),
|
||||
Comment = Header.GetFieldValue<string?>(Models.Metadata.Header.CommentKey),
|
||||
Header = Header.GetFieldValue<string?>(Models.Metadata.Header.HeaderKey),
|
||||
Type = Header.GetFieldValue<string?>(Models.Metadata.Header.TypeKey),
|
||||
Name = Header.GetStringFieldValue(Models.Metadata.Header.NameKey),
|
||||
Description = Header.GetStringFieldValue(Models.Metadata.Header.DescriptionKey),
|
||||
RootDir = Header.GetStringFieldValue(Models.Metadata.Header.RootDirKey),
|
||||
Category = Header.GetStringFieldValue(Models.Metadata.Header.CategoryKey),
|
||||
Version = Header.GetStringFieldValue(Models.Metadata.Header.VersionKey),
|
||||
Date = Header.GetStringFieldValue(Models.Metadata.Header.DateKey),
|
||||
Author = Header.GetStringFieldValue(Models.Metadata.Header.AuthorKey),
|
||||
Homepage = Header.GetStringFieldValue(Models.Metadata.Header.HomepageKey),
|
||||
Url = Header.GetStringFieldValue(Models.Metadata.Header.UrlKey),
|
||||
Comment = Header.GetStringFieldValue(Models.Metadata.Header.CommentKey),
|
||||
Header = Header.GetStringFieldValue(Models.Metadata.Header.HeaderKey),
|
||||
Type = Header.GetStringFieldValue(Models.Metadata.Header.TypeKey),
|
||||
};
|
||||
|
||||
if (Header.GetFieldValue<MergingFlag>(Models.Metadata.Header.ForceMergingKey) != MergingFlag.None)
|
||||
@@ -236,14 +236,14 @@ namespace SabreTools.DatFiles.Formats
|
||||
// We normalize to all "game"
|
||||
var game = new Models.ClrMamePro.Game
|
||||
{
|
||||
Name = machine?.GetFieldValue<string?>(Models.Metadata.Machine.NameKey),
|
||||
Description = machine?.GetFieldValue<string?>(Models.Metadata.Machine.DescriptionKey),
|
||||
Year = machine?.GetFieldValue<string?>(Models.Metadata.Machine.YearKey),
|
||||
Manufacturer = machine?.GetFieldValue<string?>(Models.Metadata.Machine.ManufacturerKey),
|
||||
Category = machine?.GetFieldValue<string?>(Models.Metadata.Machine.CategoryKey),
|
||||
CloneOf = machine?.GetFieldValue<string?>(Models.Metadata.Machine.CloneOfKey),
|
||||
RomOf = machine?.GetFieldValue<string?>(Models.Metadata.Machine.RomOfKey),
|
||||
SampleOf = machine?.GetFieldValue<string?>(Models.Metadata.Machine.SampleOfKey),
|
||||
Name = machine?.GetStringFieldValue(Models.Metadata.Machine.NameKey),
|
||||
Description = machine?.GetStringFieldValue(Models.Metadata.Machine.DescriptionKey),
|
||||
Year = machine?.GetStringFieldValue(Models.Metadata.Machine.YearKey),
|
||||
Manufacturer = machine?.GetStringFieldValue(Models.Metadata.Machine.ManufacturerKey),
|
||||
Category = machine?.GetStringFieldValue(Models.Metadata.Machine.CategoryKey),
|
||||
CloneOf = machine?.GetStringFieldValue(Models.Metadata.Machine.CloneOfKey),
|
||||
RomOf = machine?.GetStringFieldValue(Models.Metadata.Machine.RomOfKey),
|
||||
SampleOf = machine?.GetStringFieldValue(Models.Metadata.Machine.SampleOfKey),
|
||||
};
|
||||
|
||||
// Create holders for all item types
|
||||
@@ -342,10 +342,10 @@ namespace SabreTools.DatFiles.Formats
|
||||
var release = new Models.ClrMamePro.Release
|
||||
{
|
||||
Name = item.GetName(),
|
||||
Region = item.GetFieldValue<string?>(Models.Metadata.Release.RegionKey),
|
||||
Language = item.GetFieldValue<string?>(Models.Metadata.Release.LanguageKey),
|
||||
Date = item.GetFieldValue<string?>(Models.Metadata.Release.DateKey),
|
||||
Default = item.GetFieldValue<bool?>(Models.Metadata.Release.DefaultKey).FromYesNo(),
|
||||
Region = item.GetStringFieldValue(Models.Metadata.Release.RegionKey),
|
||||
Language = item.GetStringFieldValue(Models.Metadata.Release.LanguageKey),
|
||||
Date = item.GetStringFieldValue(Models.Metadata.Release.DateKey),
|
||||
Default = item.GetBoolFieldValue(Models.Metadata.Release.DefaultKey).FromYesNo(),
|
||||
};
|
||||
|
||||
return release;
|
||||
@@ -359,8 +359,8 @@ namespace SabreTools.DatFiles.Formats
|
||||
var biosset = new Models.ClrMamePro.BiosSet
|
||||
{
|
||||
Name = item.GetName(),
|
||||
Default = item.GetFieldValue<bool?>(Models.Metadata.BiosSet.DefaultKey).FromYesNo(),
|
||||
Description = item.GetFieldValue<string?>(Models.Metadata.BiosSet.DescriptionKey),
|
||||
Default = item.GetBoolFieldValue(Models.Metadata.BiosSet.DefaultKey).FromYesNo(),
|
||||
Description = item.GetStringFieldValue(Models.Metadata.BiosSet.DescriptionKey),
|
||||
};
|
||||
|
||||
return biosset;
|
||||
@@ -374,25 +374,25 @@ namespace SabreTools.DatFiles.Formats
|
||||
var rom = new Models.ClrMamePro.Rom
|
||||
{
|
||||
Name = item.GetName(),
|
||||
Size = item.GetFieldValue<string?>(Models.Metadata.Rom.SizeKey),
|
||||
CRC = item.GetFieldValue<string?>(Models.Metadata.Rom.CRCKey),
|
||||
MD5 = item.GetFieldValue<string?>(Models.Metadata.Rom.MD5Key),
|
||||
SHA1 = item.GetFieldValue<string?>(Models.Metadata.Rom.SHA1Key),
|
||||
SHA256 = item.GetFieldValue<string?>(Models.Metadata.Rom.SHA256Key),
|
||||
SHA384 = item.GetFieldValue<string?>(Models.Metadata.Rom.SHA384Key),
|
||||
SHA512 = item.GetFieldValue<string?>(Models.Metadata.Rom.SHA512Key),
|
||||
SpamSum = item.GetFieldValue<string?>(Models.Metadata.Rom.SpamSumKey),
|
||||
xxHash364 = item.GetFieldValue<string?>(Models.Metadata.Rom.xxHash364Key),
|
||||
xxHash3128 = item.GetFieldValue<string?>(Models.Metadata.Rom.xxHash3128Key),
|
||||
Merge = item.GetFieldValue<string?>(Models.Metadata.Rom.MergeKey),
|
||||
Region = item.GetFieldValue<string?>(Models.Metadata.Rom.RegionKey),
|
||||
Flags = item.GetFieldValue<string?>(Models.Metadata.Rom.FlagsKey),
|
||||
Date = item.GetFieldValue<string?>(Models.Metadata.Rom.DateKey),
|
||||
Offs = item.GetFieldValue<string?>(Models.Metadata.Rom.OffsetKey),
|
||||
Serial = item.GetFieldValue<string?>(Models.Metadata.Rom.SerialKey),
|
||||
Header = item.GetFieldValue<string?>(Models.Metadata.Rom.HeaderKey),
|
||||
Inverted = item.GetFieldValue<bool?>(Models.Metadata.Rom.InvertedKey).FromYesNo(),
|
||||
MIA = item.GetFieldValue<bool?>(Models.Metadata.Rom.MIAKey).FromYesNo(),
|
||||
Size = item.GetStringFieldValue(Models.Metadata.Rom.SizeKey),
|
||||
CRC = item.GetStringFieldValue(Models.Metadata.Rom.CRCKey),
|
||||
MD5 = item.GetStringFieldValue(Models.Metadata.Rom.MD5Key),
|
||||
SHA1 = item.GetStringFieldValue(Models.Metadata.Rom.SHA1Key),
|
||||
SHA256 = item.GetStringFieldValue(Models.Metadata.Rom.SHA256Key),
|
||||
SHA384 = item.GetStringFieldValue(Models.Metadata.Rom.SHA384Key),
|
||||
SHA512 = item.GetStringFieldValue(Models.Metadata.Rom.SHA512Key),
|
||||
SpamSum = item.GetStringFieldValue(Models.Metadata.Rom.SpamSumKey),
|
||||
xxHash364 = item.GetStringFieldValue(Models.Metadata.Rom.xxHash364Key),
|
||||
xxHash3128 = item.GetStringFieldValue(Models.Metadata.Rom.xxHash3128Key),
|
||||
Merge = item.GetStringFieldValue(Models.Metadata.Rom.MergeKey),
|
||||
Region = item.GetStringFieldValue(Models.Metadata.Rom.RegionKey),
|
||||
Flags = item.GetStringFieldValue(Models.Metadata.Rom.FlagsKey),
|
||||
Date = item.GetStringFieldValue(Models.Metadata.Rom.DateKey),
|
||||
Offs = item.GetStringFieldValue(Models.Metadata.Rom.OffsetKey),
|
||||
Serial = item.GetStringFieldValue(Models.Metadata.Rom.SerialKey),
|
||||
Header = item.GetStringFieldValue(Models.Metadata.Rom.HeaderKey),
|
||||
Inverted = item.GetBoolFieldValue(Models.Metadata.Rom.InvertedKey).FromYesNo(),
|
||||
MIA = item.GetBoolFieldValue(Models.Metadata.Rom.MIAKey).FromYesNo(),
|
||||
};
|
||||
|
||||
if (item.ItemStatusSpecified)
|
||||
@@ -409,10 +409,10 @@ namespace SabreTools.DatFiles.Formats
|
||||
var disk = new Models.ClrMamePro.Disk
|
||||
{
|
||||
Name = item.GetName(),
|
||||
MD5 = item.GetFieldValue<string?>(Models.Metadata.Disk.MD5Key),
|
||||
SHA1 = item.GetFieldValue<string?>(Models.Metadata.Disk.SHA1Key),
|
||||
Merge = item.GetFieldValue<string?>(Models.Metadata.Disk.MergeKey),
|
||||
Flags = item.GetFieldValue<string?>(Models.Metadata.Disk.FlagsKey),
|
||||
MD5 = item.GetStringFieldValue(Models.Metadata.Disk.MD5Key),
|
||||
SHA1 = item.GetStringFieldValue(Models.Metadata.Disk.SHA1Key),
|
||||
Merge = item.GetStringFieldValue(Models.Metadata.Disk.MergeKey),
|
||||
Flags = item.GetStringFieldValue(Models.Metadata.Disk.FlagsKey),
|
||||
};
|
||||
|
||||
if (item.GetFieldValue<ItemStatus>(Models.Metadata.Disk.StatusKey) != ItemStatus.NULL)
|
||||
@@ -429,10 +429,10 @@ namespace SabreTools.DatFiles.Formats
|
||||
var media = new Models.ClrMamePro.Media
|
||||
{
|
||||
Name = item.GetName(),
|
||||
MD5 = item.GetFieldValue<string?>(Models.Metadata.Media.MD5Key),
|
||||
SHA1 = item.GetFieldValue<string?>(Models.Metadata.Media.SHA1Key),
|
||||
SHA256 = item.GetFieldValue<string?>(Models.Metadata.Media.SHA256Key),
|
||||
SpamSum = item.GetFieldValue<string?>(Models.Metadata.Media.SpamSumKey),
|
||||
MD5 = item.GetStringFieldValue(Models.Metadata.Media.MD5Key),
|
||||
SHA1 = item.GetStringFieldValue(Models.Metadata.Media.SHA1Key),
|
||||
SHA256 = item.GetStringFieldValue(Models.Metadata.Media.SHA256Key),
|
||||
SpamSum = item.GetStringFieldValue(Models.Metadata.Media.SpamSumKey),
|
||||
};
|
||||
return media;
|
||||
}
|
||||
@@ -470,8 +470,8 @@ namespace SabreTools.DatFiles.Formats
|
||||
{
|
||||
Type = item.GetFieldValue<ChipType>(Models.Metadata.Chip.ChipTypeKey).AsStringValue<ChipType>(),
|
||||
Name = item.GetName(),
|
||||
Flags = item.GetFieldValue<string?>(Models.Metadata.Chip.FlagsKey),
|
||||
Clock = item.GetFieldValue<long?>(Models.Metadata.Chip.ClockKey)?.ToString(),
|
||||
Flags = item.GetStringFieldValue(Models.Metadata.Chip.FlagsKey),
|
||||
Clock = item.GetInt64FieldValue(Models.Metadata.Chip.ClockKey)?.ToString(),
|
||||
};
|
||||
return chip;
|
||||
}
|
||||
@@ -484,14 +484,14 @@ namespace SabreTools.DatFiles.Formats
|
||||
var video = new Models.ClrMamePro.Video
|
||||
{
|
||||
Screen = item.GetFieldValue<DisplayType>(Models.Metadata.Display.DisplayTypeKey).AsStringValue<DisplayType>(),
|
||||
X = item.GetFieldValue<long?>(Models.Metadata.Display.WidthKey)?.ToString(),
|
||||
Y = item.GetFieldValue<long?>(Models.Metadata.Display.HeightKey)?.ToString(),
|
||||
AspectX = item.GetFieldValue<string?>("ASPECTX"),
|
||||
AspectY = item.GetFieldValue<string?>("ASPECTY"),
|
||||
Freq = item.GetFieldValue<double?>(Models.Metadata.Display.RefreshKey)?.ToString(),
|
||||
X = item.GetInt64FieldValue(Models.Metadata.Display.WidthKey)?.ToString(),
|
||||
Y = item.GetInt64FieldValue(Models.Metadata.Display.HeightKey)?.ToString(),
|
||||
AspectX = item.GetStringFieldValue("ASPECTX"),
|
||||
AspectY = item.GetStringFieldValue("ASPECTY"),
|
||||
Freq = item.GetDoubleFieldValue(Models.Metadata.Display.RefreshKey)?.ToString(),
|
||||
};
|
||||
|
||||
switch (item.GetFieldValue<long?>(Models.Metadata.Display.RotateKey))
|
||||
switch (item.GetInt64FieldValue(Models.Metadata.Display.RotateKey))
|
||||
{
|
||||
case 0:
|
||||
case 180:
|
||||
@@ -513,7 +513,7 @@ namespace SabreTools.DatFiles.Formats
|
||||
{
|
||||
var sound = new Models.ClrMamePro.Sound
|
||||
{
|
||||
Channels = item.GetFieldValue<long?>(Models.Metadata.Sound.ChannelsKey)?.ToString(),
|
||||
Channels = item.GetInt64FieldValue(Models.Metadata.Sound.ChannelsKey)?.ToString(),
|
||||
};
|
||||
return sound;
|
||||
}
|
||||
@@ -525,15 +525,15 @@ namespace SabreTools.DatFiles.Formats
|
||||
{
|
||||
var input = new Models.ClrMamePro.Input
|
||||
{
|
||||
Players = item.GetFieldValue<long?>(Models.Metadata.Input.PlayersKey)?.ToString(),
|
||||
//Control = item.GetFieldValue<string?>(Models.Metadata.Input.ControlKey),
|
||||
Coins = item.GetFieldValue<long?>(Models.Metadata.Input.CoinsKey)?.ToString(),
|
||||
Tilt = item.GetFieldValue<bool?>(Models.Metadata.Input.TiltKey).FromYesNo(),
|
||||
Service = item.GetFieldValue<bool?>(Models.Metadata.Input.ServiceKey).FromYesNo(),
|
||||
Players = item.GetInt64FieldValue(Models.Metadata.Input.PlayersKey)?.ToString(),
|
||||
//Control = item.GetStringFieldValue(Models.Metadata.Input.ControlKey),
|
||||
Coins = item.GetInt64FieldValue(Models.Metadata.Input.CoinsKey)?.ToString(),
|
||||
Tilt = item.GetBoolFieldValue(Models.Metadata.Input.TiltKey).FromYesNo(),
|
||||
Service = item.GetBoolFieldValue(Models.Metadata.Input.ServiceKey).FromYesNo(),
|
||||
};
|
||||
|
||||
if (item.ControlsSpecified)
|
||||
input.Buttons = item.GetFieldValue<Control[]?>(Models.Metadata.Input.ControlKey)![0].GetFieldValue<long?>(Models.Metadata.Control.ButtonsKey)?.ToString();
|
||||
input.Buttons = item.GetFieldValue<Control[]?>(Models.Metadata.Input.ControlKey)![0].GetInt64FieldValue(Models.Metadata.Control.ButtonsKey)?.ToString();
|
||||
|
||||
return input;
|
||||
}
|
||||
@@ -553,9 +553,9 @@ namespace SabreTools.DatFiles.Formats
|
||||
var entries = new List<string>();
|
||||
foreach (var setting in item.GetFieldValue<DipValue[]?>(Models.Metadata.DipSwitch.DipValueKey)!)
|
||||
{
|
||||
entries.Add(setting.GetFieldValue<string?>(Models.Metadata.DipValue.ValueKey)!);
|
||||
if (setting.GetFieldValue<bool?>(Models.Metadata.DipValue.DefaultKey) == true)
|
||||
dipswitch.Default = setting.GetFieldValue<string?>(Models.Metadata.DipValue.ValueKey);
|
||||
entries.Add(setting.GetStringFieldValue(Models.Metadata.DipValue.ValueKey)!);
|
||||
if (setting.GetBoolFieldValue(Models.Metadata.DipValue.DefaultKey) == true)
|
||||
dipswitch.Default = setting.GetStringFieldValue(Models.Metadata.DipValue.ValueKey);
|
||||
}
|
||||
|
||||
dipswitch.Entry = [.. entries];
|
||||
@@ -574,8 +574,8 @@ namespace SabreTools.DatFiles.Formats
|
||||
Status = item.GetFieldValue<SupportStatus>(Models.Metadata.Driver.StatusKey).AsStringValue<SupportStatus>(),
|
||||
Color = item.GetFieldValue<SupportStatus>(Models.Metadata.Driver.ColorKey).AsStringValue<SupportStatus>(),
|
||||
Sound = item.GetFieldValue<SupportStatus>(Models.Metadata.Driver.SoundKey).AsStringValue<SupportStatus>(),
|
||||
PaletteSize = item.GetFieldValue<long?>(Models.Metadata.Driver.PaletteSizeKey)?.ToString(),
|
||||
Blit = item.GetFieldValue<string?>(Models.Metadata.Driver.BlitKey),
|
||||
PaletteSize = item.GetInt64FieldValue(Models.Metadata.Driver.PaletteSizeKey)?.ToString(),
|
||||
Blit = item.GetStringFieldValue(Models.Metadata.Driver.BlitKey),
|
||||
};
|
||||
return driver;
|
||||
}
|
||||
|
||||
@@ -34,11 +34,11 @@ namespace SabreTools.DatFiles.Formats
|
||||
switch (datItem)
|
||||
{
|
||||
case Rom rom:
|
||||
if (rom.GetFieldValue<string?>(Models.Metadata.Rom.SizeKey) == null || NumberHelper.ConvertToInt64(rom.GetFieldValue<string?>(Models.Metadata.Rom.SizeKey)) < 0)
|
||||
if (rom.GetInt64FieldValue(Models.Metadata.Rom.SizeKey) == null || rom.GetInt64FieldValue(Models.Metadata.Rom.SizeKey) < 0)
|
||||
missingFields.Add(Models.Metadata.Rom.SizeKey);
|
||||
// if (string.IsNullOrEmpty(rom.Date))
|
||||
// missingFields.Add(Models.Metadata.Rom.DateKey);
|
||||
if (string.IsNullOrEmpty(rom.GetFieldValue<string?>(Models.Metadata.Rom.CRCKey)))
|
||||
if (string.IsNullOrEmpty(rom.GetStringFieldValue(Models.Metadata.Rom.CRCKey)))
|
||||
missingFields.Add(Models.Metadata.Rom.CRCKey);
|
||||
break;
|
||||
}
|
||||
@@ -97,13 +97,13 @@ namespace SabreTools.DatFiles.Formats
|
||||
|
||||
var clrMamePro = new Models.DosCenter.DosCenter
|
||||
{
|
||||
Name = Header.GetFieldValue<string?>(Models.Metadata.Header.NameKey),
|
||||
Description = Header.GetFieldValue<string?>(Models.Metadata.Header.DescriptionKey),
|
||||
Version = Header.GetFieldValue<string?>(Models.Metadata.Header.VersionKey),
|
||||
Date = Header.GetFieldValue<string?>(Models.Metadata.Header.DateKey),
|
||||
Author = Header.GetFieldValue<string?>(Models.Metadata.Header.AuthorKey),
|
||||
Homepage = Header.GetFieldValue<string?>(Models.Metadata.Header.HomepageKey),
|
||||
Comment = Header.GetFieldValue<string?>(Models.Metadata.Header.CommentKey),
|
||||
Name = Header.GetStringFieldValue(Models.Metadata.Header.NameKey),
|
||||
Description = Header.GetStringFieldValue(Models.Metadata.Header.DescriptionKey),
|
||||
Version = Header.GetStringFieldValue(Models.Metadata.Header.VersionKey),
|
||||
Date = Header.GetStringFieldValue(Models.Metadata.Header.DateKey),
|
||||
Author = Header.GetStringFieldValue(Models.Metadata.Header.AuthorKey),
|
||||
Homepage = Header.GetStringFieldValue(Models.Metadata.Header.HomepageKey),
|
||||
Comment = Header.GetStringFieldValue(Models.Metadata.Header.CommentKey),
|
||||
};
|
||||
|
||||
return clrMamePro;
|
||||
@@ -135,7 +135,7 @@ namespace SabreTools.DatFiles.Formats
|
||||
// We re-add the missing parts of the game name
|
||||
var game = new Models.DosCenter.Game
|
||||
{
|
||||
Name = $"\"{machine?.GetFieldValue<string?>(Models.Metadata.Machine.NameKey) ?? string.Empty}.zip\""
|
||||
Name = $"\"{machine?.GetStringFieldValue(Models.Metadata.Machine.NameKey) ?? string.Empty}.zip\""
|
||||
};
|
||||
|
||||
// Create holders for all item types
|
||||
@@ -180,9 +180,9 @@ namespace SabreTools.DatFiles.Formats
|
||||
var rom = new Models.DosCenter.File
|
||||
{
|
||||
Name = item.GetName(),
|
||||
Size = item.GetFieldValue<string?>(Models.Metadata.Rom.SizeKey),
|
||||
CRC = item.GetFieldValue<string?>(Models.Metadata.Rom.CRCKey),
|
||||
Date = item.GetFieldValue<string?>(Models.Metadata.Rom.DateKey),
|
||||
Size = item.GetStringFieldValue(Models.Metadata.Rom.SizeKey),
|
||||
CRC = item.GetStringFieldValue(Models.Metadata.Rom.CRCKey),
|
||||
Date = item.GetStringFieldValue(Models.Metadata.Rom.DateKey),
|
||||
};
|
||||
return rom;
|
||||
}
|
||||
|
||||
@@ -33,13 +33,13 @@ namespace SabreTools.DatFiles.Formats
|
||||
switch (datItem)
|
||||
{
|
||||
case Rom rom:
|
||||
if (string.IsNullOrEmpty(rom.GetFieldValue<string?>(Models.Metadata.Rom.SHA256Key)))
|
||||
if (string.IsNullOrEmpty(rom.GetStringFieldValue(Models.Metadata.Rom.SHA256Key)))
|
||||
missingFields.Add(Models.Metadata.Rom.SHA256Key);
|
||||
if (string.IsNullOrEmpty(rom.GetFieldValue<string?>(Models.Metadata.Rom.SHA1Key)))
|
||||
if (string.IsNullOrEmpty(rom.GetStringFieldValue(Models.Metadata.Rom.SHA1Key)))
|
||||
missingFields.Add(Models.Metadata.Rom.SHA1Key);
|
||||
if (string.IsNullOrEmpty(rom.GetFieldValue<string?>(Models.Metadata.Rom.MD5Key)))
|
||||
if (string.IsNullOrEmpty(rom.GetStringFieldValue(Models.Metadata.Rom.MD5Key)))
|
||||
missingFields.Add(Models.Metadata.Rom.MD5Key);
|
||||
if (string.IsNullOrEmpty(rom.GetFieldValue<string?>(Models.Metadata.Rom.CRCKey)))
|
||||
if (string.IsNullOrEmpty(rom.GetStringFieldValue(Models.Metadata.Rom.CRCKey)))
|
||||
missingFields.Add(Models.Metadata.Rom.CRCKey);
|
||||
break;
|
||||
}
|
||||
@@ -138,12 +138,12 @@ namespace SabreTools.DatFiles.Formats
|
||||
{
|
||||
var row = new Models.EverdriveSMDB.Row
|
||||
{
|
||||
SHA256 = rom.GetFieldValue<string?>(Models.Metadata.Rom.SHA256Key),
|
||||
Name = $"{rom.GetFieldValue<Machine>(DatItem.MachineKey)!.GetFieldValue<string?>(Models.Metadata.Machine.NameKey) ?? string.Empty}/{rom.GetName()}",
|
||||
SHA1 = rom.GetFieldValue<string?>(Models.Metadata.Rom.SHA1Key),
|
||||
MD5 = rom.GetFieldValue<string?>(Models.Metadata.Rom.MD5Key),
|
||||
CRC32 = rom.GetFieldValue<string?>(Models.Metadata.Rom.CRCKey),
|
||||
Size = rom.GetFieldValue<string?>(Models.Metadata.Rom.SizeKey),
|
||||
SHA256 = rom.GetStringFieldValue(Models.Metadata.Rom.SHA256Key),
|
||||
Name = $"{rom.GetFieldValue<Machine>(DatItem.MachineKey)!.GetStringFieldValue(Models.Metadata.Machine.NameKey) ?? string.Empty}/{rom.GetName()}",
|
||||
SHA1 = rom.GetStringFieldValue(Models.Metadata.Rom.SHA1Key),
|
||||
MD5 = rom.GetStringFieldValue(Models.Metadata.Rom.MD5Key),
|
||||
CRC32 = rom.GetStringFieldValue(Models.Metadata.Rom.CRCKey),
|
||||
Size = rom.GetInt64FieldValue(Models.Metadata.Rom.SizeKey).ToString(),
|
||||
};
|
||||
return row;
|
||||
}
|
||||
|
||||
@@ -40,7 +40,7 @@ namespace SabreTools.DatFiles.Formats
|
||||
switch (datItem)
|
||||
{
|
||||
case Rom rom:
|
||||
if (string.IsNullOrEmpty(rom.GetFieldValue<string?>(Models.Metadata.Rom.CRCKey)))
|
||||
if (string.IsNullOrEmpty(rom.GetStringFieldValue(Models.Metadata.Rom.CRCKey)))
|
||||
missingFields.Add(Models.Metadata.Rom.CRCKey);
|
||||
break;
|
||||
default:
|
||||
@@ -52,15 +52,15 @@ namespace SabreTools.DatFiles.Formats
|
||||
switch (datItem)
|
||||
{
|
||||
case Disk disk:
|
||||
if (string.IsNullOrEmpty(disk.GetFieldValue<string?>(Models.Metadata.Disk.MD5Key)))
|
||||
if (string.IsNullOrEmpty(disk.GetStringFieldValue(Models.Metadata.Disk.MD5Key)))
|
||||
missingFields.Add(Models.Metadata.Disk.MD5Key);
|
||||
break;
|
||||
case Media medium:
|
||||
if (string.IsNullOrEmpty(medium.GetFieldValue<string?>(Models.Metadata.Media.MD5Key)))
|
||||
if (string.IsNullOrEmpty(medium.GetStringFieldValue(Models.Metadata.Media.MD5Key)))
|
||||
missingFields.Add(Models.Metadata.Media.MD5Key);
|
||||
break;
|
||||
case Rom rom:
|
||||
if (string.IsNullOrEmpty(rom.GetFieldValue<string?>(Models.Metadata.Rom.MD5Key)))
|
||||
if (string.IsNullOrEmpty(rom.GetStringFieldValue(Models.Metadata.Rom.MD5Key)))
|
||||
missingFields.Add(Models.Metadata.Rom.MD5Key);
|
||||
break;
|
||||
default:
|
||||
@@ -72,15 +72,15 @@ namespace SabreTools.DatFiles.Formats
|
||||
switch (datItem)
|
||||
{
|
||||
case Disk disk:
|
||||
if (string.IsNullOrEmpty(disk.GetFieldValue<string?>(Models.Metadata.Disk.SHA1Key)))
|
||||
if (string.IsNullOrEmpty(disk.GetStringFieldValue(Models.Metadata.Disk.SHA1Key)))
|
||||
missingFields.Add(Models.Metadata.Disk.SHA1Key);
|
||||
break;
|
||||
case Media medium:
|
||||
if (string.IsNullOrEmpty(medium.GetFieldValue<string?>(Models.Metadata.Media.SHA1Key)))
|
||||
if (string.IsNullOrEmpty(medium.GetStringFieldValue(Models.Metadata.Media.SHA1Key)))
|
||||
missingFields.Add(Models.Metadata.Media.SHA1Key);
|
||||
break;
|
||||
case Rom rom:
|
||||
if (string.IsNullOrEmpty(rom.GetFieldValue<string?>(Models.Metadata.Rom.SHA1Key)))
|
||||
if (string.IsNullOrEmpty(rom.GetStringFieldValue(Models.Metadata.Rom.SHA1Key)))
|
||||
missingFields.Add(Models.Metadata.Rom.SHA1Key);
|
||||
break;
|
||||
default:
|
||||
@@ -92,11 +92,11 @@ namespace SabreTools.DatFiles.Formats
|
||||
switch (datItem)
|
||||
{
|
||||
case Media medium:
|
||||
if (string.IsNullOrEmpty(medium.GetFieldValue<string?>(Models.Metadata.Media.SHA256Key)))
|
||||
if (string.IsNullOrEmpty(medium.GetStringFieldValue(Models.Metadata.Media.SHA256Key)))
|
||||
missingFields.Add(Models.Metadata.Media.SHA256Key);
|
||||
break;
|
||||
case Rom rom:
|
||||
if (string.IsNullOrEmpty(rom.GetFieldValue<string?>(Models.Metadata.Rom.SHA256Key)))
|
||||
if (string.IsNullOrEmpty(rom.GetStringFieldValue(Models.Metadata.Rom.SHA256Key)))
|
||||
missingFields.Add(Models.Metadata.Rom.SHA256Key);
|
||||
break;
|
||||
default:
|
||||
@@ -108,7 +108,7 @@ namespace SabreTools.DatFiles.Formats
|
||||
switch (datItem)
|
||||
{
|
||||
case Rom rom:
|
||||
if (string.IsNullOrEmpty(rom.GetFieldValue<string?>(Models.Metadata.Rom.SHA384Key)))
|
||||
if (string.IsNullOrEmpty(rom.GetStringFieldValue(Models.Metadata.Rom.SHA384Key)))
|
||||
missingFields.Add(Models.Metadata.Rom.SHA384Key);
|
||||
break;
|
||||
default:
|
||||
@@ -120,7 +120,7 @@ namespace SabreTools.DatFiles.Formats
|
||||
switch (datItem)
|
||||
{
|
||||
case Rom rom:
|
||||
if (string.IsNullOrEmpty(rom.GetFieldValue<string?>(Models.Metadata.Rom.SHA512Key)))
|
||||
if (string.IsNullOrEmpty(rom.GetStringFieldValue(Models.Metadata.Rom.SHA512Key)))
|
||||
missingFields.Add(Models.Metadata.Rom.SHA512Key);
|
||||
break;
|
||||
default:
|
||||
@@ -132,11 +132,11 @@ namespace SabreTools.DatFiles.Formats
|
||||
switch (datItem)
|
||||
{
|
||||
case Media medium:
|
||||
if (string.IsNullOrEmpty(medium.GetFieldValue<string?>(Models.Metadata.Media.SpamSumKey)))
|
||||
if (string.IsNullOrEmpty(medium.GetStringFieldValue(Models.Metadata.Media.SpamSumKey)))
|
||||
missingFields.Add(Models.Metadata.Media.SpamSumKey);
|
||||
break;
|
||||
case Rom rom:
|
||||
if (string.IsNullOrEmpty(rom.GetFieldValue<string?>(Models.Metadata.Rom.SpamSumKey)))
|
||||
if (string.IsNullOrEmpty(rom.GetStringFieldValue(Models.Metadata.Rom.SpamSumKey)))
|
||||
missingFields.Add(Models.Metadata.Rom.SpamSumKey);
|
||||
break;
|
||||
default:
|
||||
@@ -243,8 +243,8 @@ namespace SabreTools.DatFiles.Formats
|
||||
continue;
|
||||
|
||||
string name = string.Empty;
|
||||
if (Header.GetFieldValue<bool>(DatHeader.GameNameKey) && item.GetFieldValue<Machine>(DatItem.MachineKey) != null)
|
||||
name = $"{item.GetFieldValue<Machine>(DatItem.MachineKey)!.GetFieldValue<string?>(Models.Metadata.Machine.NameKey)}{Path.DirectorySeparatorChar}";
|
||||
if (Header.GetBoolFieldValue(DatHeader.GameNameKey) == true && item.GetFieldValue<Machine>(DatItem.MachineKey) != null)
|
||||
name = $"{item.GetFieldValue<Machine>(DatItem.MachineKey)!.GetStringFieldValue(Models.Metadata.Machine.NameKey)}{Path.DirectorySeparatorChar}";
|
||||
|
||||
switch (item)
|
||||
{
|
||||
@@ -252,7 +252,7 @@ namespace SabreTools.DatFiles.Formats
|
||||
sfvs.Add(new Models.Hashfile.SFV
|
||||
{
|
||||
File = name + rom.GetName(),
|
||||
Hash = rom.GetFieldValue<string?>(Models.Metadata.Rom.CRCKey),
|
||||
Hash = rom.GetStringFieldValue(Models.Metadata.Rom.CRCKey),
|
||||
});
|
||||
break;
|
||||
}
|
||||
@@ -294,15 +294,15 @@ namespace SabreTools.DatFiles.Formats
|
||||
continue;
|
||||
|
||||
string name = string.Empty;
|
||||
if (Header.GetFieldValue<bool>(DatHeader.GameNameKey) && item.GetFieldValue<Machine>(DatItem.MachineKey) != null)
|
||||
name = $"{item.GetFieldValue<Machine>(DatItem.MachineKey)!.GetFieldValue<string?>(Models.Metadata.Machine.NameKey)}{Path.DirectorySeparatorChar}";
|
||||
if (Header.GetBoolFieldValue(DatHeader.GameNameKey) == true && item.GetFieldValue<Machine>(DatItem.MachineKey) != null)
|
||||
name = $"{item.GetFieldValue<Machine>(DatItem.MachineKey)!.GetStringFieldValue(Models.Metadata.Machine.NameKey)}{Path.DirectorySeparatorChar}";
|
||||
|
||||
switch (item)
|
||||
{
|
||||
case Disk disk:
|
||||
md5s.Add(new Models.Hashfile.MD5
|
||||
{
|
||||
Hash = disk.GetFieldValue<string?>(Models.Metadata.Disk.MD5Key),
|
||||
Hash = disk.GetStringFieldValue(Models.Metadata.Disk.MD5Key),
|
||||
File = name + disk.GetName(),
|
||||
});
|
||||
break;
|
||||
@@ -310,7 +310,7 @@ namespace SabreTools.DatFiles.Formats
|
||||
case Media media:
|
||||
md5s.Add(new Models.Hashfile.MD5
|
||||
{
|
||||
Hash = media.GetFieldValue<string?>(Models.Metadata.Media.MD5Key),
|
||||
Hash = media.GetStringFieldValue(Models.Metadata.Media.MD5Key),
|
||||
File = name + media.GetName(),
|
||||
});
|
||||
break;
|
||||
@@ -318,7 +318,7 @@ namespace SabreTools.DatFiles.Formats
|
||||
case Rom rom:
|
||||
md5s.Add(new Models.Hashfile.MD5
|
||||
{
|
||||
Hash = rom.GetFieldValue<string?>(Models.Metadata.Rom.MD5Key),
|
||||
Hash = rom.GetStringFieldValue(Models.Metadata.Rom.MD5Key),
|
||||
File = name + rom.GetName(),
|
||||
});
|
||||
break;
|
||||
@@ -361,15 +361,15 @@ namespace SabreTools.DatFiles.Formats
|
||||
continue;
|
||||
|
||||
string name = string.Empty;
|
||||
if (Header.GetFieldValue<bool>(DatHeader.GameNameKey) && item.GetFieldValue<Machine>(DatItem.MachineKey) != null)
|
||||
name = $"{item.GetFieldValue<Machine>(DatItem.MachineKey)!.GetFieldValue<string?>(Models.Metadata.Machine.NameKey)}{Path.DirectorySeparatorChar}";
|
||||
if (Header.GetBoolFieldValue(DatHeader.GameNameKey) == true && item.GetFieldValue<Machine>(DatItem.MachineKey) != null)
|
||||
name = $"{item.GetFieldValue<Machine>(DatItem.MachineKey)!.GetStringFieldValue(Models.Metadata.Machine.NameKey)}{Path.DirectorySeparatorChar}";
|
||||
|
||||
switch (item)
|
||||
{
|
||||
case Disk disk:
|
||||
sha1s.Add(new Models.Hashfile.SHA1
|
||||
{
|
||||
Hash = disk.GetFieldValue<string?>(Models.Metadata.Disk.SHA1Key),
|
||||
Hash = disk.GetStringFieldValue(Models.Metadata.Disk.SHA1Key),
|
||||
File = name + disk.GetName(),
|
||||
});
|
||||
break;
|
||||
@@ -377,7 +377,7 @@ namespace SabreTools.DatFiles.Formats
|
||||
case Media media:
|
||||
sha1s.Add(new Models.Hashfile.SHA1
|
||||
{
|
||||
Hash = media.GetFieldValue<string?>(Models.Metadata.Media.SHA1Key),
|
||||
Hash = media.GetStringFieldValue(Models.Metadata.Media.SHA1Key),
|
||||
File = name + media.GetName(),
|
||||
});
|
||||
break;
|
||||
@@ -385,7 +385,7 @@ namespace SabreTools.DatFiles.Formats
|
||||
case Rom rom:
|
||||
sha1s.Add(new Models.Hashfile.SHA1
|
||||
{
|
||||
Hash = rom.GetFieldValue<string?>(Models.Metadata.Rom.SHA1Key),
|
||||
Hash = rom.GetStringFieldValue(Models.Metadata.Rom.SHA1Key),
|
||||
File = name + rom.GetName(),
|
||||
});
|
||||
break;
|
||||
@@ -428,15 +428,15 @@ namespace SabreTools.DatFiles.Formats
|
||||
continue;
|
||||
|
||||
string name = string.Empty;
|
||||
if (Header.GetFieldValue<bool>(DatHeader.GameNameKey) && item.GetFieldValue<Machine>(DatItem.MachineKey) != null)
|
||||
name = $"{item.GetFieldValue<Machine>(DatItem.MachineKey)!.GetFieldValue<string?>(Models.Metadata.Machine.NameKey)}{Path.DirectorySeparatorChar}";
|
||||
if (Header.GetBoolFieldValue(DatHeader.GameNameKey) == true && item.GetFieldValue<Machine>(DatItem.MachineKey) != null)
|
||||
name = $"{item.GetFieldValue<Machine>(DatItem.MachineKey)!.GetStringFieldValue(Models.Metadata.Machine.NameKey)}{Path.DirectorySeparatorChar}";
|
||||
|
||||
switch (item)
|
||||
{
|
||||
case Media media:
|
||||
sha256s.Add(new Models.Hashfile.SHA256
|
||||
{
|
||||
Hash = media.GetFieldValue<string?>(Models.Metadata.Media.SHA256Key),
|
||||
Hash = media.GetStringFieldValue(Models.Metadata.Media.SHA256Key),
|
||||
File = name + media.GetName(),
|
||||
});
|
||||
break;
|
||||
@@ -444,7 +444,7 @@ namespace SabreTools.DatFiles.Formats
|
||||
case Rom rom:
|
||||
sha256s.Add(new Models.Hashfile.SHA256
|
||||
{
|
||||
Hash = rom.GetFieldValue<string?>(Models.Metadata.Rom.SHA256Key),
|
||||
Hash = rom.GetStringFieldValue(Models.Metadata.Rom.SHA256Key),
|
||||
File = name + rom.GetName(),
|
||||
});
|
||||
break;
|
||||
@@ -487,15 +487,15 @@ namespace SabreTools.DatFiles.Formats
|
||||
continue;
|
||||
|
||||
string name = string.Empty;
|
||||
if (Header.GetFieldValue<bool>(DatHeader.GameNameKey) && item.GetFieldValue<Machine>(DatItem.MachineKey) != null)
|
||||
name = $"{item.GetFieldValue<Machine>(DatItem.MachineKey)!.GetFieldValue<string?>(Models.Metadata.Machine.NameKey)}{Path.DirectorySeparatorChar}";
|
||||
if (Header.GetBoolFieldValue(DatHeader.GameNameKey) == true && item.GetFieldValue<Machine>(DatItem.MachineKey) != null)
|
||||
name = $"{item.GetFieldValue<Machine>(DatItem.MachineKey)!.GetStringFieldValue(Models.Metadata.Machine.NameKey)}{Path.DirectorySeparatorChar}";
|
||||
|
||||
switch (item)
|
||||
{
|
||||
case Rom rom:
|
||||
sha384s.Add(new Models.Hashfile.SHA384
|
||||
{
|
||||
Hash = rom.GetFieldValue<string?>(Models.Metadata.Rom.SHA384Key),
|
||||
Hash = rom.GetStringFieldValue(Models.Metadata.Rom.SHA384Key),
|
||||
File = name + rom.GetName(),
|
||||
});
|
||||
break;
|
||||
@@ -538,15 +538,15 @@ namespace SabreTools.DatFiles.Formats
|
||||
continue;
|
||||
|
||||
string name = string.Empty;
|
||||
if (Header.GetFieldValue<bool>(DatHeader.GameNameKey) && item.GetFieldValue<Machine>(DatItem.MachineKey) != null)
|
||||
name = $"{item.GetFieldValue<Machine>(DatItem.MachineKey)!.GetFieldValue<string?>(Models.Metadata.Machine.NameKey)}{Path.DirectorySeparatorChar}";
|
||||
if (Header.GetBoolFieldValue(DatHeader.GameNameKey) == true && item.GetFieldValue<Machine>(DatItem.MachineKey) != null)
|
||||
name = $"{item.GetFieldValue<Machine>(DatItem.MachineKey)!.GetStringFieldValue(Models.Metadata.Machine.NameKey)}{Path.DirectorySeparatorChar}";
|
||||
|
||||
switch (item)
|
||||
{
|
||||
case Rom rom:
|
||||
sha512s.Add(new Models.Hashfile.SHA512
|
||||
{
|
||||
Hash = rom.GetFieldValue<string?>(Models.Metadata.Rom.SHA512Key),
|
||||
Hash = rom.GetStringFieldValue(Models.Metadata.Rom.SHA512Key),
|
||||
File = name + rom.GetName(),
|
||||
});
|
||||
break;
|
||||
@@ -589,15 +589,15 @@ namespace SabreTools.DatFiles.Formats
|
||||
continue;
|
||||
|
||||
string name = string.Empty;
|
||||
if (Header.GetFieldValue<bool>(DatHeader.GameNameKey) && item.GetFieldValue<Machine>(DatItem.MachineKey) != null)
|
||||
name = $"{item.GetFieldValue<Machine>(DatItem.MachineKey)!.GetFieldValue<string?>(Models.Metadata.Machine.NameKey)}{Path.DirectorySeparatorChar}";
|
||||
if (Header.GetBoolFieldValue(DatHeader.GameNameKey) == true && item.GetFieldValue<Machine>(DatItem.MachineKey) != null)
|
||||
name = $"{item.GetFieldValue<Machine>(DatItem.MachineKey)!.GetStringFieldValue(Models.Metadata.Machine.NameKey)}{Path.DirectorySeparatorChar}";
|
||||
|
||||
switch (item)
|
||||
{
|
||||
case Media media:
|
||||
spamsums.Add(new Models.Hashfile.SpamSum
|
||||
{
|
||||
Hash = media.GetFieldValue<string?>(Models.Metadata.Media.SpamSumKey),
|
||||
Hash = media.GetStringFieldValue(Models.Metadata.Media.SpamSumKey),
|
||||
File = name + media.GetName(),
|
||||
});
|
||||
break;
|
||||
@@ -605,7 +605,7 @@ namespace SabreTools.DatFiles.Formats
|
||||
case Rom rom:
|
||||
spamsums.Add(new Models.Hashfile.SpamSum
|
||||
{
|
||||
Hash = rom.GetFieldValue<string?>(Models.Metadata.Rom.SpamSumKey),
|
||||
Hash = rom.GetStringFieldValue(Models.Metadata.Rom.SpamSumKey),
|
||||
File = name + rom.GetName(),
|
||||
});
|
||||
break;
|
||||
|
||||
@@ -35,19 +35,19 @@ namespace SabreTools.DatFiles.Formats
|
||||
switch (datItem)
|
||||
{
|
||||
case Disk disk:
|
||||
if (string.IsNullOrEmpty(disk.GetFieldValue<string?>(Models.Metadata.Disk.MD5Key))
|
||||
&& string.IsNullOrEmpty(disk.GetFieldValue<string?>(Models.Metadata.Disk.SHA1Key)))
|
||||
if (string.IsNullOrEmpty(disk.GetStringFieldValue(Models.Metadata.Disk.MD5Key))
|
||||
&& string.IsNullOrEmpty(disk.GetStringFieldValue(Models.Metadata.Disk.SHA1Key)))
|
||||
{
|
||||
missingFields.Add(Models.Metadata.Disk.SHA1Key);
|
||||
}
|
||||
break;
|
||||
|
||||
case Rom rom:
|
||||
if (rom.GetFieldValue<long?>(Models.Metadata.Rom.SizeKey) == null || NumberHelper.ConvertToInt64(rom.GetFieldValue<string?>(Models.Metadata.Rom.SizeKey)) < 0)
|
||||
if (rom.GetInt64FieldValue(Models.Metadata.Rom.SizeKey) == null || rom.GetInt64FieldValue(Models.Metadata.Rom.SizeKey) < 0)
|
||||
missingFields.Add(Models.Metadata.Rom.SizeKey);
|
||||
if (string.IsNullOrEmpty(rom.GetFieldValue<string?>(Models.Metadata.Rom.CRCKey)))
|
||||
if (string.IsNullOrEmpty(rom.GetStringFieldValue(Models.Metadata.Rom.CRCKey)))
|
||||
missingFields.Add(Models.Metadata.Rom.CRCKey);
|
||||
if (string.IsNullOrEmpty(rom.GetFieldValue<string?>(Models.Metadata.Rom.SHA1Key)))
|
||||
if (string.IsNullOrEmpty(rom.GetStringFieldValue(Models.Metadata.Rom.SHA1Key)))
|
||||
missingFields.Add(Models.Metadata.Rom.SHA1Key);
|
||||
break;
|
||||
}
|
||||
@@ -117,11 +117,11 @@ namespace SabreTools.DatFiles.Formats
|
||||
|
||||
var set = new Models.Listrom.Set
|
||||
{
|
||||
Driver = items[0]!.GetFieldValue<Machine>(DatItem.MachineKey)!.GetFieldValue<bool?>(Models.Metadata.Machine.IsDeviceKey) == true
|
||||
? items[0]!.GetFieldValue<Machine>(DatItem.MachineKey)!.GetFieldValue<string?>(Models.Metadata.Machine.NameKey)
|
||||
Driver = items[0]!.GetFieldValue<Machine>(DatItem.MachineKey)!.GetBoolFieldValue(Models.Metadata.Machine.IsDeviceKey) == true
|
||||
? items[0]!.GetFieldValue<Machine>(DatItem.MachineKey)!.GetStringFieldValue(Models.Metadata.Machine.NameKey)
|
||||
: null,
|
||||
Device = items[0]!.GetFieldValue<Machine>(DatItem.MachineKey)!.GetFieldValue<bool?>(Models.Metadata.Machine.IsDeviceKey) == true
|
||||
? items[0]!.GetFieldValue<Machine>(DatItem.MachineKey)!.GetFieldValue<string?>(Models.Metadata.Machine.NameKey)
|
||||
Device = items[0]!.GetFieldValue<Machine>(DatItem.MachineKey)!.GetBoolFieldValue(Models.Metadata.Machine.IsDeviceKey) == true
|
||||
? items[0]!.GetFieldValue<Machine>(DatItem.MachineKey)!.GetStringFieldValue(Models.Metadata.Machine.NameKey)
|
||||
: null,
|
||||
};
|
||||
|
||||
@@ -182,10 +182,10 @@ namespace SabreTools.DatFiles.Formats
|
||||
Bad = true,
|
||||
};
|
||||
|
||||
if (!string.IsNullOrEmpty(disk.GetFieldValue<string?>(Models.Metadata.Disk.MD5Key)))
|
||||
row.MD5 = disk.GetFieldValue<string?>(Models.Metadata.Disk.MD5Key);
|
||||
if (!string.IsNullOrEmpty(disk.GetStringFieldValue(Models.Metadata.Disk.MD5Key)))
|
||||
row.MD5 = disk.GetStringFieldValue(Models.Metadata.Disk.MD5Key);
|
||||
else
|
||||
row.SHA1 = disk.GetFieldValue<string?>(Models.Metadata.Disk.SHA1Key);
|
||||
row.SHA1 = disk.GetStringFieldValue(Models.Metadata.Disk.SHA1Key);
|
||||
|
||||
return row;
|
||||
}
|
||||
@@ -196,10 +196,10 @@ namespace SabreTools.DatFiles.Formats
|
||||
Name = disk.GetName(),
|
||||
};
|
||||
|
||||
if (!string.IsNullOrEmpty(disk.GetFieldValue<string?>(Models.Metadata.Disk.MD5Key)))
|
||||
row.MD5 = disk.GetFieldValue<string?>(Models.Metadata.Disk.MD5Key);
|
||||
if (!string.IsNullOrEmpty(disk.GetStringFieldValue(Models.Metadata.Disk.MD5Key)))
|
||||
row.MD5 = disk.GetStringFieldValue(Models.Metadata.Disk.MD5Key);
|
||||
else
|
||||
row.SHA1 = disk.GetFieldValue<string?>(Models.Metadata.Disk.SHA1Key);
|
||||
row.SHA1 = disk.GetStringFieldValue(Models.Metadata.Disk.SHA1Key);
|
||||
|
||||
return row;
|
||||
}
|
||||
@@ -215,7 +215,7 @@ namespace SabreTools.DatFiles.Formats
|
||||
return new Models.Listrom.Row
|
||||
{
|
||||
Name = rom.GetName(),
|
||||
Size = rom.GetFieldValue<string?>(Models.Metadata.Rom.SizeKey),
|
||||
Size = rom.GetInt64FieldValue(Models.Metadata.Rom.SizeKey).ToString(),
|
||||
NoGoodDumpKnown = true,
|
||||
};
|
||||
}
|
||||
@@ -224,10 +224,10 @@ namespace SabreTools.DatFiles.Formats
|
||||
return new Models.Listrom.Row
|
||||
{
|
||||
Name = rom.GetName(),
|
||||
Size = rom.GetFieldValue<string?>(Models.Metadata.Rom.SizeKey),
|
||||
Size = rom.GetInt64FieldValue(Models.Metadata.Rom.SizeKey).ToString(),
|
||||
Bad = true,
|
||||
CRC = rom.GetFieldValue<string?>(Models.Metadata.Rom.CRCKey),
|
||||
SHA1 = rom.GetFieldValue<string?>(Models.Metadata.Rom.SHA1Key),
|
||||
CRC = rom.GetStringFieldValue(Models.Metadata.Rom.CRCKey),
|
||||
SHA1 = rom.GetStringFieldValue(Models.Metadata.Rom.SHA1Key),
|
||||
};
|
||||
}
|
||||
else
|
||||
@@ -235,9 +235,9 @@ namespace SabreTools.DatFiles.Formats
|
||||
return new Models.Listrom.Row
|
||||
{
|
||||
Name = rom.GetName(),
|
||||
Size = rom.GetFieldValue<string?>(Models.Metadata.Rom.SizeKey),
|
||||
CRC = rom.GetFieldValue<string?>(Models.Metadata.Rom.CRCKey),
|
||||
SHA1 = rom.GetFieldValue<string?>(Models.Metadata.Rom.SHA1Key),
|
||||
Size = rom.GetInt64FieldValue(Models.Metadata.Rom.SizeKey).ToString(),
|
||||
CRC = rom.GetStringFieldValue(Models.Metadata.Rom.CRCKey),
|
||||
SHA1 = rom.GetStringFieldValue(Models.Metadata.Rom.SHA1Key),
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
@@ -50,17 +50,17 @@ namespace SabreTools.DatFiles.Formats
|
||||
case BiosSet biosset:
|
||||
if (string.IsNullOrEmpty(biosset.GetName()))
|
||||
missingFields.Add(Models.Metadata.BiosSet.NameKey);
|
||||
if (string.IsNullOrEmpty(biosset.GetFieldValue<string?>(Models.Metadata.BiosSet.DescriptionKey)))
|
||||
if (string.IsNullOrEmpty(biosset.GetStringFieldValue(Models.Metadata.BiosSet.DescriptionKey)))
|
||||
missingFields.Add(Models.Metadata.BiosSet.DescriptionKey);
|
||||
break;
|
||||
|
||||
case Rom rom:
|
||||
if (string.IsNullOrEmpty(rom.GetName()))
|
||||
missingFields.Add(Models.Metadata.Rom.NameKey);
|
||||
if (rom.GetFieldValue<long?>(Models.Metadata.Rom.SizeKey) == null || NumberHelper.ConvertToInt64(rom.GetFieldValue<string?>(Models.Metadata.Rom.SizeKey)) < 0)
|
||||
if (rom.GetInt64FieldValue(Models.Metadata.Rom.SizeKey) == null || rom.GetInt64FieldValue(Models.Metadata.Rom.SizeKey) < 0)
|
||||
missingFields.Add(Models.Metadata.Rom.SizeKey);
|
||||
if (string.IsNullOrEmpty(rom.GetFieldValue<string?>(Models.Metadata.Rom.CRCKey))
|
||||
&& string.IsNullOrEmpty(rom.GetFieldValue<string?>(Models.Metadata.Rom.SHA1Key)))
|
||||
if (string.IsNullOrEmpty(rom.GetStringFieldValue(Models.Metadata.Rom.CRCKey))
|
||||
&& string.IsNullOrEmpty(rom.GetStringFieldValue(Models.Metadata.Rom.SHA1Key)))
|
||||
{
|
||||
missingFields.Add(Models.Metadata.Rom.SHA1Key);
|
||||
}
|
||||
@@ -69,8 +69,8 @@ namespace SabreTools.DatFiles.Formats
|
||||
case Disk disk:
|
||||
if (string.IsNullOrEmpty(disk.GetName()))
|
||||
missingFields.Add(Models.Metadata.Disk.NameKey);
|
||||
if (string.IsNullOrEmpty(disk.GetFieldValue<string?>(Models.Metadata.Disk.MD5Key))
|
||||
&& string.IsNullOrEmpty(disk.GetFieldValue<string?>(Models.Metadata.Disk.SHA1Key)))
|
||||
if (string.IsNullOrEmpty(disk.GetStringFieldValue(Models.Metadata.Disk.MD5Key))
|
||||
&& string.IsNullOrEmpty(disk.GetStringFieldValue(Models.Metadata.Disk.SHA1Key)))
|
||||
{
|
||||
missingFields.Add(Models.Metadata.Disk.SHA1Key);
|
||||
}
|
||||
@@ -96,36 +96,36 @@ namespace SabreTools.DatFiles.Formats
|
||||
case Display display:
|
||||
if (display.GetFieldValue<DisplayType>(Models.Metadata.Display.DisplayTypeKey) == DisplayType.NULL)
|
||||
missingFields.Add(Models.Metadata.Display.DisplayTypeKey);
|
||||
if (display.GetFieldValue<double?>(Models.Metadata.Display.RefreshKey) == null)
|
||||
if (display.GetDoubleFieldValue(Models.Metadata.Display.RefreshKey) == null)
|
||||
missingFields.Add(Models.Metadata.Display.RefreshKey);
|
||||
break;
|
||||
|
||||
case Sound sound:
|
||||
if (sound.GetFieldValue<long?>(Models.Metadata.Sound.ChannelsKey) == null)
|
||||
if (sound.GetInt64FieldValue(Models.Metadata.Sound.ChannelsKey) == null)
|
||||
missingFields.Add(Models.Metadata.Sound.ChannelsKey);
|
||||
break;
|
||||
|
||||
case Input input:
|
||||
if (input.GetFieldValue<long?>(Models.Metadata.Input.PlayersKey) == null)
|
||||
if (input.GetInt64FieldValue(Models.Metadata.Input.PlayersKey) == null)
|
||||
missingFields.Add(Models.Metadata.Input.PlayersKey);
|
||||
break;
|
||||
|
||||
case DipSwitch dipswitch:
|
||||
if (string.IsNullOrEmpty(dipswitch.GetName()))
|
||||
missingFields.Add(Models.Metadata.DipSwitch.NameKey);
|
||||
if (string.IsNullOrEmpty(dipswitch.GetFieldValue<string?>(Models.Metadata.DipSwitch.TagKey)))
|
||||
if (string.IsNullOrEmpty(dipswitch.GetStringFieldValue(Models.Metadata.DipSwitch.TagKey)))
|
||||
missingFields.Add(Models.Metadata.DipSwitch.TagKey);
|
||||
break;
|
||||
|
||||
case Configuration configuration:
|
||||
if (string.IsNullOrEmpty(configuration.GetName()))
|
||||
missingFields.Add(Models.Metadata.Configuration.NameKey);
|
||||
if (string.IsNullOrEmpty(configuration.GetFieldValue<string>(Models.Metadata.Configuration.TagKey)))
|
||||
if (string.IsNullOrEmpty(configuration.GetStringFieldValue(Models.Metadata.Configuration.TagKey)))
|
||||
missingFields.Add(Models.Metadata.Configuration.TagKey);
|
||||
break;
|
||||
|
||||
case Port port:
|
||||
if (string.IsNullOrEmpty(port.GetFieldValue<string>(Models.Metadata.Port.TagKey)))
|
||||
if (string.IsNullOrEmpty(port.GetStringFieldValue(Models.Metadata.Port.TagKey)))
|
||||
missingFields.Add(Models.Metadata.Port.TagKey);
|
||||
break;
|
||||
|
||||
@@ -161,7 +161,7 @@ namespace SabreTools.DatFiles.Formats
|
||||
break;
|
||||
|
||||
case DatItems.Formats.SoftwareList softwarelist:
|
||||
if (string.IsNullOrEmpty(softwarelist.GetFieldValue<string?>(Models.Metadata.SoftwareList.TagKey)))
|
||||
if (string.IsNullOrEmpty(softwarelist.GetStringFieldValue(Models.Metadata.SoftwareList.TagKey)))
|
||||
missingFields.Add(Models.Metadata.SoftwareList.TagKey);
|
||||
if (string.IsNullOrEmpty(softwarelist.GetName()))
|
||||
missingFields.Add(Models.Metadata.SoftwareList.NameKey);
|
||||
@@ -212,11 +212,11 @@ namespace SabreTools.DatFiles.Formats
|
||||
{
|
||||
var datafile = new Models.Listxml.Mame
|
||||
{
|
||||
Build = Header.GetFieldValue<string?>(Models.Metadata.Header.NameKey)
|
||||
?? Header.GetFieldValue<string?>(Models.Metadata.Header.DescriptionKey)
|
||||
?? Header.GetFieldValue<string?>(Models.Metadata.Header.BuildKey),
|
||||
Debug = Header.GetFieldValue<bool?>(Models.Metadata.Header.DebugKey).FromYesNo(),
|
||||
MameConfig = Header.GetFieldValue<string?>(Models.Metadata.Header.MameConfigKey),
|
||||
Build = Header.GetStringFieldValue(Models.Metadata.Header.NameKey)
|
||||
?? Header.GetStringFieldValue(Models.Metadata.Header.DescriptionKey)
|
||||
?? Header.GetStringFieldValue(Models.Metadata.Header.BuildKey),
|
||||
Debug = Header.GetBoolFieldValue(Models.Metadata.Header.DebugKey).FromYesNo(),
|
||||
MameConfig = Header.GetStringFieldValue(Models.Metadata.Header.MameConfigKey),
|
||||
|
||||
Game = CreateGames(ignoreblanks)
|
||||
};
|
||||
@@ -374,23 +374,23 @@ namespace SabreTools.DatFiles.Formats
|
||||
{
|
||||
var game = new Models.Listxml.Machine
|
||||
{
|
||||
Name = machine.GetFieldValue<string?>(Models.Metadata.Machine.NameKey),
|
||||
SourceFile = machine.GetFieldValue<string?>(Models.Metadata.Machine.SourceFileKey),
|
||||
Name = machine.GetStringFieldValue(Models.Metadata.Machine.NameKey),
|
||||
SourceFile = machine.GetStringFieldValue(Models.Metadata.Machine.SourceFileKey),
|
||||
Runnable = machine.GetFieldValue<Runnable>(Models.Metadata.Machine.RunnableKey).AsStringValue<Runnable>(),
|
||||
CloneOf = machine.GetFieldValue<string?>(Models.Metadata.Machine.CloneOfKey),
|
||||
RomOf = machine.GetFieldValue<string?>(Models.Metadata.Machine.RomOfKey),
|
||||
SampleOf = machine.GetFieldValue<string?>(Models.Metadata.Machine.SampleOfKey),
|
||||
Description = machine.GetFieldValue<string?>(Models.Metadata.Machine.DescriptionKey),
|
||||
Year = machine.GetFieldValue<string?>(Models.Metadata.Machine.YearKey),
|
||||
Manufacturer = machine.GetFieldValue<string?>(Models.Metadata.Machine.ManufacturerKey),
|
||||
History = machine.GetFieldValue<string?>(Models.Metadata.Machine.HistoryKey),
|
||||
CloneOf = machine.GetStringFieldValue(Models.Metadata.Machine.CloneOfKey),
|
||||
RomOf = machine.GetStringFieldValue(Models.Metadata.Machine.RomOfKey),
|
||||
SampleOf = machine.GetStringFieldValue(Models.Metadata.Machine.SampleOfKey),
|
||||
Description = machine.GetStringFieldValue(Models.Metadata.Machine.DescriptionKey),
|
||||
Year = machine.GetStringFieldValue(Models.Metadata.Machine.YearKey),
|
||||
Manufacturer = machine.GetStringFieldValue(Models.Metadata.Machine.ManufacturerKey),
|
||||
History = machine.GetStringFieldValue(Models.Metadata.Machine.HistoryKey),
|
||||
};
|
||||
|
||||
if (machine.GetFieldValue<bool?>(Models.Metadata.Machine.IsBiosKey) == true)
|
||||
if (machine.GetBoolFieldValue(Models.Metadata.Machine.IsBiosKey) == true)
|
||||
game.IsBios = "yes";
|
||||
if (machine.GetFieldValue<bool?>(Models.Metadata.Machine.IsDeviceKey) == true)
|
||||
if (machine.GetBoolFieldValue(Models.Metadata.Machine.IsDeviceKey) == true)
|
||||
game.IsDevice = "yes";
|
||||
if (machine.GetFieldValue<bool?>(Models.Metadata.Machine.IsMechanicalKey) == true)
|
||||
if (machine.GetBoolFieldValue(Models.Metadata.Machine.IsMechanicalKey) == true)
|
||||
game.IsMechanical = "yes";
|
||||
|
||||
return game;
|
||||
@@ -404,8 +404,8 @@ namespace SabreTools.DatFiles.Formats
|
||||
var biosset = new Models.Listxml.BiosSet
|
||||
{
|
||||
Name = item.GetName(),
|
||||
Default = item.GetFieldValue<bool?>(Models.Metadata.BiosSet.DefaultKey).FromYesNo(),
|
||||
Description = item.GetFieldValue<string?>(Models.Metadata.BiosSet.DescriptionKey),
|
||||
Default = item.GetBoolFieldValue(Models.Metadata.BiosSet.DefaultKey).FromYesNo(),
|
||||
Description = item.GetStringFieldValue(Models.Metadata.BiosSet.DescriptionKey),
|
||||
};
|
||||
|
||||
return biosset;
|
||||
@@ -419,17 +419,17 @@ namespace SabreTools.DatFiles.Formats
|
||||
var rom = new Models.Listxml.Rom
|
||||
{
|
||||
Name = item.GetName(),
|
||||
Bios = item.GetFieldValue<string?>(Models.Metadata.Rom.BiosKey),
|
||||
Size = item.GetFieldValue<string?>(Models.Metadata.Rom.SizeKey),
|
||||
CRC = item.GetFieldValue<string?>(Models.Metadata.Rom.CRCKey),
|
||||
SHA1 = item.GetFieldValue<string?>(Models.Metadata.Rom.SHA1Key),
|
||||
Merge = item.GetFieldValue<string?>(Models.Metadata.Rom.MergeKey),
|
||||
Region = item.GetFieldValue<string?>(Models.Metadata.Rom.RegionKey),
|
||||
Offset = item.GetFieldValue<string?>(Models.Metadata.Rom.OffsetKey),
|
||||
Bios = item.GetStringFieldValue(Models.Metadata.Rom.BiosKey),
|
||||
Size = item.GetStringFieldValue(Models.Metadata.Rom.SizeKey),
|
||||
CRC = item.GetStringFieldValue(Models.Metadata.Rom.CRCKey),
|
||||
SHA1 = item.GetStringFieldValue(Models.Metadata.Rom.SHA1Key),
|
||||
Merge = item.GetStringFieldValue(Models.Metadata.Rom.MergeKey),
|
||||
Region = item.GetStringFieldValue(Models.Metadata.Rom.RegionKey),
|
||||
Offset = item.GetStringFieldValue(Models.Metadata.Rom.OffsetKey),
|
||||
Status = item.GetFieldValue<ItemStatus>(Models.Metadata.Rom.StatusKey).AsStringValue<ItemStatus>(useSecond: false),
|
||||
Optional = item.GetFieldValue<bool?>(Models.Metadata.Rom.OptionalKey).FromYesNo(),
|
||||
Dispose = item.GetFieldValue<bool?>(Models.Metadata.Rom.DisposeKey).FromYesNo(),
|
||||
SoundOnly = item.GetFieldValue<bool?>(Models.Metadata.Rom.SoundOnlyKey).FromYesNo(),
|
||||
Optional = item.GetBoolFieldValue(Models.Metadata.Rom.OptionalKey).FromYesNo(),
|
||||
Dispose = item.GetBoolFieldValue(Models.Metadata.Rom.DisposeKey).FromYesNo(),
|
||||
SoundOnly = item.GetBoolFieldValue(Models.Metadata.Rom.SoundOnlyKey).FromYesNo(),
|
||||
};
|
||||
|
||||
return rom;
|
||||
@@ -443,14 +443,14 @@ namespace SabreTools.DatFiles.Formats
|
||||
var disk = new Models.Listxml.Disk
|
||||
{
|
||||
Name = item.GetName(),
|
||||
MD5 = item.GetFieldValue<string?>(Models.Metadata.Disk.MD5Key),
|
||||
SHA1 = item.GetFieldValue<string?>(Models.Metadata.Disk.SHA1Key),
|
||||
Merge = item.GetFieldValue<string?>(Models.Metadata.Disk.MergeKey),
|
||||
Region = item.GetFieldValue<string?>(Models.Metadata.Disk.RegionKey),
|
||||
Index = item.GetFieldValue<string?>(Models.Metadata.Disk.IndexKey),
|
||||
Writable = item.GetFieldValue<bool?>(Models.Metadata.Disk.WritableKey).FromYesNo(),
|
||||
MD5 = item.GetStringFieldValue(Models.Metadata.Disk.MD5Key),
|
||||
SHA1 = item.GetStringFieldValue(Models.Metadata.Disk.SHA1Key),
|
||||
Merge = item.GetStringFieldValue(Models.Metadata.Disk.MergeKey),
|
||||
Region = item.GetStringFieldValue(Models.Metadata.Disk.RegionKey),
|
||||
Index = item.GetStringFieldValue(Models.Metadata.Disk.IndexKey),
|
||||
Writable = item.GetBoolFieldValue(Models.Metadata.Disk.WritableKey).FromYesNo(),
|
||||
Status = item.GetFieldValue<ItemStatus>(Models.Metadata.Disk.StatusKey).AsStringValue<ItemStatus>(useSecond: false),
|
||||
Optional = item.GetFieldValue<bool?>(Models.Metadata.Disk.OptionalKey).FromYesNo(),
|
||||
Optional = item.GetBoolFieldValue(Models.Metadata.Disk.OptionalKey).FromYesNo(),
|
||||
};
|
||||
|
||||
return disk;
|
||||
@@ -490,10 +490,10 @@ namespace SabreTools.DatFiles.Formats
|
||||
var chip = new Models.Listxml.Chip
|
||||
{
|
||||
Name = item.GetName(),
|
||||
Tag = item.GetFieldValue<string?>(Models.Metadata.Chip.TagKey),
|
||||
Tag = item.GetStringFieldValue(Models.Metadata.Chip.TagKey),
|
||||
Type = item.GetFieldValue<ChipType>(Models.Metadata.Chip.ChipTypeKey).AsStringValue<ChipType>(),
|
||||
SoundOnly = item.GetFieldValue<bool?>(Models.Metadata.Chip.SoundOnlyKey).FromYesNo(),
|
||||
Clock = item.GetFieldValue<long?>(Models.Metadata.Chip.TagKey)?.ToString(),
|
||||
SoundOnly = item.GetBoolFieldValue(Models.Metadata.Chip.SoundOnlyKey).FromYesNo(),
|
||||
Clock = item.GetInt64FieldValue(Models.Metadata.Chip.TagKey)?.ToString(),
|
||||
};
|
||||
|
||||
return chip;
|
||||
@@ -506,20 +506,20 @@ namespace SabreTools.DatFiles.Formats
|
||||
{
|
||||
var display = new Models.Listxml.Display
|
||||
{
|
||||
Tag = item.GetFieldValue<string?>(Models.Metadata.Display.TagKey),
|
||||
Tag = item.GetStringFieldValue(Models.Metadata.Display.TagKey),
|
||||
Type = item.GetFieldValue<DisplayType>(Models.Metadata.Display.DisplayTypeKey).AsStringValue<DisplayType>(),
|
||||
Rotate = item.GetFieldValue<long?>(Models.Metadata.Display.RotateKey)?.ToString(),
|
||||
FlipX = item.GetFieldValue<bool?>(Models.Metadata.Display.FlipXKey).FromYesNo(),
|
||||
Width = item.GetFieldValue<string?>(Models.Metadata.Display.WidthKey)?.ToString(),
|
||||
Height = item.GetFieldValue<string?>(Models.Metadata.Display.HeightKey)?.ToString(),
|
||||
Refresh = item.GetFieldValue<double?>(Models.Metadata.Display.RefreshKey)?.ToString(),
|
||||
PixClock = item.GetFieldValue<string?>(Models.Metadata.Display.PixClockKey)?.ToString(),
|
||||
HTotal = item.GetFieldValue<string?>(Models.Metadata.Display.HTotalKey)?.ToString(),
|
||||
HBEnd = item.GetFieldValue<string?>(Models.Metadata.Display.HBEndKey)?.ToString(),
|
||||
HBStart = item.GetFieldValue<string?>(Models.Metadata.Display.HBStartKey)?.ToString(),
|
||||
VTotal = item.GetFieldValue<string?>(Models.Metadata.Display.VTotalKey)?.ToString(),
|
||||
VBEnd = item.GetFieldValue<string?>(Models.Metadata.Display.VBEndKey)?.ToString(),
|
||||
VBStart = item.GetFieldValue<string?>(Models.Metadata.Display.VBStartKey)?.ToString(),
|
||||
Rotate = item.GetInt64FieldValue(Models.Metadata.Display.RotateKey)?.ToString(),
|
||||
FlipX = item.GetBoolFieldValue(Models.Metadata.Display.FlipXKey).FromYesNo(),
|
||||
Width = item.GetStringFieldValue(Models.Metadata.Display.WidthKey)?.ToString(),
|
||||
Height = item.GetStringFieldValue(Models.Metadata.Display.HeightKey)?.ToString(),
|
||||
Refresh = item.GetDoubleFieldValue(Models.Metadata.Display.RefreshKey)?.ToString(),
|
||||
PixClock = item.GetStringFieldValue(Models.Metadata.Display.PixClockKey)?.ToString(),
|
||||
HTotal = item.GetStringFieldValue(Models.Metadata.Display.HTotalKey)?.ToString(),
|
||||
HBEnd = item.GetStringFieldValue(Models.Metadata.Display.HBEndKey)?.ToString(),
|
||||
HBStart = item.GetStringFieldValue(Models.Metadata.Display.HBStartKey)?.ToString(),
|
||||
VTotal = item.GetStringFieldValue(Models.Metadata.Display.VTotalKey)?.ToString(),
|
||||
VBEnd = item.GetStringFieldValue(Models.Metadata.Display.VBEndKey)?.ToString(),
|
||||
VBStart = item.GetStringFieldValue(Models.Metadata.Display.VBStartKey)?.ToString(),
|
||||
};
|
||||
|
||||
return display;
|
||||
@@ -532,7 +532,7 @@ namespace SabreTools.DatFiles.Formats
|
||||
{
|
||||
var sound = new Models.Listxml.Sound
|
||||
{
|
||||
Channels = item.GetFieldValue<long?>(Models.Metadata.Sound.ChannelsKey)?.ToString(),
|
||||
Channels = item.GetInt64FieldValue(Models.Metadata.Sound.ChannelsKey)?.ToString(),
|
||||
};
|
||||
|
||||
return sound;
|
||||
@@ -545,12 +545,12 @@ namespace SabreTools.DatFiles.Formats
|
||||
{
|
||||
var input = new Models.Listxml.Input
|
||||
{
|
||||
Service = item.GetFieldValue<bool?>(Models.Metadata.Input.ServiceKey).FromYesNo(),
|
||||
Tilt = item.GetFieldValue<bool?>(Models.Metadata.Input.TiltKey).FromYesNo(),
|
||||
Players = item.GetFieldValue<long?>(Models.Metadata.Input.PlayersKey)?.ToString(),
|
||||
//ControlAttr = item.GetFieldValue<string?>(Models.Metadata.Input.ControlKey),
|
||||
Buttons = item.GetFieldValue<long?>(Models.Metadata.Input.ButtonsKey)?.ToString(),
|
||||
Coins = item.GetFieldValue<long?>(Models.Metadata.Input.CoinsKey)?.ToString(),
|
||||
Service = item.GetBoolFieldValue(Models.Metadata.Input.ServiceKey).FromYesNo(),
|
||||
Tilt = item.GetBoolFieldValue(Models.Metadata.Input.TiltKey).FromYesNo(),
|
||||
Players = item.GetInt64FieldValue(Models.Metadata.Input.PlayersKey)?.ToString(),
|
||||
//ControlAttr = item.GetStringFieldValue(Models.Metadata.Input.ControlKey),
|
||||
Buttons = item.GetInt64FieldValue(Models.Metadata.Input.ButtonsKey)?.ToString(),
|
||||
Coins = item.GetInt64FieldValue(Models.Metadata.Input.CoinsKey)?.ToString(),
|
||||
};
|
||||
|
||||
var controls = new List<Models.Listxml.Control>();
|
||||
@@ -574,17 +574,17 @@ namespace SabreTools.DatFiles.Formats
|
||||
var control = new Models.Listxml.Control
|
||||
{
|
||||
Type = item.GetFieldValue<ControlType>(Models.Metadata.Control.ControlTypeKey).AsStringValue<ControlType>(),
|
||||
Player = item.GetFieldValue<long?>(Models.Metadata.Control.PlayerKey)?.ToString(),
|
||||
Buttons = item.GetFieldValue<long?>(Models.Metadata.Control.ButtonsKey)?.ToString(),
|
||||
ReqButtons = item.GetFieldValue<long?>(Models.Metadata.Control.ReqButtonsKey)?.ToString(),
|
||||
Minimum = item.GetFieldValue<long?>(Models.Metadata.Control.MinimumKey)?.ToString(),
|
||||
Maximum = item.GetFieldValue<long?>(Models.Metadata.Control.MaximumKey)?.ToString(),
|
||||
Sensitivity = item.GetFieldValue<long?>(Models.Metadata.Control.SensitivityKey)?.ToString(),
|
||||
KeyDelta = item.GetFieldValue<long?>(Models.Metadata.Control.KeyDeltaKey)?.ToString(),
|
||||
Reverse = item.GetFieldValue<bool?>(Models.Metadata.Control.ReverseKey).FromYesNo(),
|
||||
Ways = item.GetFieldValue<string?>(Models.Metadata.Control.WaysKey),
|
||||
Ways2 = item.GetFieldValue<string?>(Models.Metadata.Control.Ways2Key),
|
||||
Ways3 = item.GetFieldValue<string?>(Models.Metadata.Control.Ways3Key),
|
||||
Player = item.GetInt64FieldValue(Models.Metadata.Control.PlayerKey)?.ToString(),
|
||||
Buttons = item.GetInt64FieldValue(Models.Metadata.Control.ButtonsKey)?.ToString(),
|
||||
ReqButtons = item.GetInt64FieldValue(Models.Metadata.Control.ReqButtonsKey)?.ToString(),
|
||||
Minimum = item.GetInt64FieldValue(Models.Metadata.Control.MinimumKey)?.ToString(),
|
||||
Maximum = item.GetInt64FieldValue(Models.Metadata.Control.MaximumKey)?.ToString(),
|
||||
Sensitivity = item.GetInt64FieldValue(Models.Metadata.Control.SensitivityKey)?.ToString(),
|
||||
KeyDelta = item.GetInt64FieldValue(Models.Metadata.Control.KeyDeltaKey)?.ToString(),
|
||||
Reverse = item.GetBoolFieldValue(Models.Metadata.Control.ReverseKey).FromYesNo(),
|
||||
Ways = item.GetStringFieldValue(Models.Metadata.Control.WaysKey),
|
||||
Ways2 = item.GetStringFieldValue(Models.Metadata.Control.Ways2Key),
|
||||
Ways3 = item.GetStringFieldValue(Models.Metadata.Control.Ways3Key),
|
||||
};
|
||||
|
||||
return control;
|
||||
@@ -598,8 +598,8 @@ namespace SabreTools.DatFiles.Formats
|
||||
var dipswitch = new Models.Listxml.DipSwitch
|
||||
{
|
||||
Name = item.GetName(),
|
||||
Tag = item.GetFieldValue<string?>(Models.Metadata.DipSwitch.TagKey),
|
||||
Mask = item.GetFieldValue<string?>(Models.Metadata.DipSwitch.MaskKey),
|
||||
Tag = item.GetStringFieldValue(Models.Metadata.DipSwitch.TagKey),
|
||||
Mask = item.GetStringFieldValue(Models.Metadata.DipSwitch.MaskKey),
|
||||
};
|
||||
|
||||
if (item.ConditionsSpecified)
|
||||
@@ -607,10 +607,10 @@ namespace SabreTools.DatFiles.Formats
|
||||
var conditionItem = item.GetFieldValue<Condition[]?>(Models.Metadata.DipSwitch.ConditionKey)?.FirstOrDefault();
|
||||
var condition = new Models.Listxml.Condition
|
||||
{
|
||||
Tag = conditionItem?.GetFieldValue<string?>(Models.Metadata.Condition.TagKey),
|
||||
Mask = conditionItem?.GetFieldValue<string?>(Models.Metadata.Condition.MaskKey),
|
||||
Tag = conditionItem?.GetStringFieldValue(Models.Metadata.Condition.TagKey),
|
||||
Mask = conditionItem?.GetStringFieldValue(Models.Metadata.Condition.MaskKey),
|
||||
Relation = conditionItem?.GetFieldValue<Relation>(Models.Metadata.Condition.RelationKey).AsStringValue<Relation>(),
|
||||
Value = conditionItem?.GetFieldValue<string?>(Models.Metadata.Condition.ValueKey),
|
||||
Value = conditionItem?.GetStringFieldValue(Models.Metadata.Condition.ValueKey),
|
||||
};
|
||||
dipswitch.Condition = condition;
|
||||
}
|
||||
@@ -646,8 +646,8 @@ namespace SabreTools.DatFiles.Formats
|
||||
var diplocation = new Models.Listxml.DipLocation
|
||||
{
|
||||
Name = item.GetName(),
|
||||
Number = item.GetFieldValue<long?>(Models.Metadata.DipLocation.NumberKey)?.ToString(),
|
||||
Inverted = item.GetFieldValue<bool?>(Models.Metadata.DipLocation.InvertedKey).FromYesNo(),
|
||||
Number = item.GetInt64FieldValue(Models.Metadata.DipLocation.NumberKey)?.ToString(),
|
||||
Inverted = item.GetBoolFieldValue(Models.Metadata.DipLocation.InvertedKey).FromYesNo(),
|
||||
};
|
||||
|
||||
return diplocation;
|
||||
@@ -661,8 +661,8 @@ namespace SabreTools.DatFiles.Formats
|
||||
var dipvalue = new Models.Listxml.DipValue
|
||||
{
|
||||
Name = item.GetName(),
|
||||
Value = item.GetFieldValue<string?>(Models.Metadata.DipValue.ValueKey),
|
||||
Default = item.GetFieldValue<bool?>(Models.Metadata.DipValue.DefaultKey).FromYesNo(),
|
||||
Value = item.GetStringFieldValue(Models.Metadata.DipValue.ValueKey),
|
||||
Default = item.GetBoolFieldValue(Models.Metadata.DipValue.DefaultKey).FromYesNo(),
|
||||
};
|
||||
|
||||
if (item.ConditionsSpecified)
|
||||
@@ -670,10 +670,10 @@ namespace SabreTools.DatFiles.Formats
|
||||
var conditionItem = item.GetFieldValue<Condition[]?>(Models.Metadata.DipValue.ConditionKey)?.FirstOrDefault();
|
||||
var condition = new Models.Listxml.Condition
|
||||
{
|
||||
Tag = conditionItem?.GetFieldValue<string?>(Models.Metadata.Condition.TagKey),
|
||||
Mask = conditionItem?.GetFieldValue<string?>(Models.Metadata.Condition.MaskKey),
|
||||
Tag = conditionItem?.GetStringFieldValue(Models.Metadata.Condition.TagKey),
|
||||
Mask = conditionItem?.GetStringFieldValue(Models.Metadata.Condition.MaskKey),
|
||||
Relation = conditionItem?.GetFieldValue<Relation>(Models.Metadata.Condition.RelationKey).AsStringValue<Relation>(),
|
||||
Value = conditionItem?.GetFieldValue<string?>(Models.Metadata.Condition.ValueKey),
|
||||
Value = conditionItem?.GetStringFieldValue(Models.Metadata.Condition.ValueKey),
|
||||
};
|
||||
dipvalue.Condition = condition;
|
||||
}
|
||||
@@ -689,8 +689,8 @@ namespace SabreTools.DatFiles.Formats
|
||||
var configuration = new Models.Listxml.Configuration
|
||||
{
|
||||
Name = item.GetName(),
|
||||
Tag = item.GetFieldValue<string>(Models.Metadata.Configuration.TagKey),
|
||||
Mask = item.GetFieldValue<string>(Models.Metadata.Configuration.MaskKey),
|
||||
Tag = item.GetStringFieldValue(Models.Metadata.Configuration.TagKey),
|
||||
Mask = item.GetStringFieldValue(Models.Metadata.Configuration.MaskKey),
|
||||
};
|
||||
|
||||
if (item.ConditionsSpecified)
|
||||
@@ -698,10 +698,10 @@ namespace SabreTools.DatFiles.Formats
|
||||
var conditionItem = item.GetFieldValue<Condition[]?>(Models.Metadata.Configuration.ConditionKey)?.FirstOrDefault();
|
||||
var condition = new Models.Listxml.Condition
|
||||
{
|
||||
Tag = conditionItem?.GetFieldValue<string?>(Models.Metadata.Condition.TagKey),
|
||||
Mask = conditionItem?.GetFieldValue<string?>(Models.Metadata.Condition.MaskKey),
|
||||
Tag = conditionItem?.GetStringFieldValue(Models.Metadata.Condition.TagKey),
|
||||
Mask = conditionItem?.GetStringFieldValue(Models.Metadata.Condition.MaskKey),
|
||||
Relation = conditionItem?.GetFieldValue<Relation>(Models.Metadata.Condition.RelationKey).AsStringValue<Relation>(),
|
||||
Value = conditionItem?.GetFieldValue<string?>(Models.Metadata.Condition.ValueKey),
|
||||
Value = conditionItem?.GetStringFieldValue(Models.Metadata.Condition.ValueKey),
|
||||
};
|
||||
configuration.Condition = condition;
|
||||
}
|
||||
@@ -737,8 +737,8 @@ namespace SabreTools.DatFiles.Formats
|
||||
var conflocation = new Models.Listxml.ConfLocation
|
||||
{
|
||||
Name = item.GetName(),
|
||||
Number = item.GetFieldValue<long?>(Models.Metadata.ConfLocation.NumberKey)?.ToString(),
|
||||
Inverted = item.GetFieldValue<bool?>(Models.Metadata.ConfLocation.InvertedKey).FromYesNo(),
|
||||
Number = item.GetInt64FieldValue(Models.Metadata.ConfLocation.NumberKey)?.ToString(),
|
||||
Inverted = item.GetBoolFieldValue(Models.Metadata.ConfLocation.InvertedKey).FromYesNo(),
|
||||
};
|
||||
|
||||
return conflocation;
|
||||
@@ -752,8 +752,8 @@ namespace SabreTools.DatFiles.Formats
|
||||
var confsetting = new Models.Listxml.ConfSetting
|
||||
{
|
||||
Name = item.GetName(),
|
||||
Value = item.GetFieldValue<string?>(Models.Metadata.ConfSetting.ValueKey),
|
||||
Default = item.GetFieldValue<bool?>(Models.Metadata.ConfSetting.DefaultKey).FromYesNo(),
|
||||
Value = item.GetStringFieldValue(Models.Metadata.ConfSetting.ValueKey),
|
||||
Default = item.GetBoolFieldValue(Models.Metadata.ConfSetting.DefaultKey).FromYesNo(),
|
||||
};
|
||||
|
||||
if (item.ConditionsSpecified)
|
||||
@@ -761,10 +761,10 @@ namespace SabreTools.DatFiles.Formats
|
||||
var conditionItem = item.GetFieldValue<Condition[]?>(Models.Metadata.ConfSetting.ConditionKey)?.FirstOrDefault();
|
||||
var condition = new Models.Listxml.Condition
|
||||
{
|
||||
Tag = conditionItem?.GetFieldValue<string?>(Models.Metadata.Condition.TagKey),
|
||||
Mask = conditionItem?.GetFieldValue<string?>(Models.Metadata.Condition.MaskKey),
|
||||
Tag = conditionItem?.GetStringFieldValue(Models.Metadata.Condition.TagKey),
|
||||
Mask = conditionItem?.GetStringFieldValue(Models.Metadata.Condition.MaskKey),
|
||||
Relation = conditionItem?.GetFieldValue<Relation>(Models.Metadata.Condition.RelationKey).AsStringValue<Relation>(),
|
||||
Value = conditionItem?.GetFieldValue<string?>(Models.Metadata.Condition.ValueKey),
|
||||
Value = conditionItem?.GetStringFieldValue(Models.Metadata.Condition.ValueKey),
|
||||
};
|
||||
confsetting.Condition = condition;
|
||||
}
|
||||
@@ -779,7 +779,7 @@ namespace SabreTools.DatFiles.Formats
|
||||
{
|
||||
var port = new Models.Listxml.Port
|
||||
{
|
||||
Tag = item.GetFieldValue<string>(Models.Metadata.Port.TagKey),
|
||||
Tag = item.GetStringFieldValue(Models.Metadata.Port.TagKey),
|
||||
};
|
||||
|
||||
return port;
|
||||
@@ -793,7 +793,7 @@ namespace SabreTools.DatFiles.Formats
|
||||
var adjuster = new Models.Listxml.Adjuster
|
||||
{
|
||||
Name = item.GetName(),
|
||||
Default = item.GetFieldValue<bool?>(Models.Metadata.Adjuster.DefaultKey).FromYesNo(),
|
||||
Default = item.GetBoolFieldValue(Models.Metadata.Adjuster.DefaultKey).FromYesNo(),
|
||||
};
|
||||
|
||||
if (item.ConditionsSpecified)
|
||||
@@ -801,10 +801,10 @@ namespace SabreTools.DatFiles.Formats
|
||||
var conditionItem = item.GetFieldValue<Condition[]?>(Models.Metadata.Adjuster.ConditionKey)?.FirstOrDefault();
|
||||
var condition = new Models.Listxml.Condition
|
||||
{
|
||||
Tag = conditionItem?.GetFieldValue<string?>(Models.Metadata.Condition.TagKey),
|
||||
Mask = conditionItem?.GetFieldValue<string?>(Models.Metadata.Condition.MaskKey),
|
||||
Tag = conditionItem?.GetStringFieldValue(Models.Metadata.Condition.TagKey),
|
||||
Mask = conditionItem?.GetStringFieldValue(Models.Metadata.Condition.MaskKey),
|
||||
Relation = conditionItem?.GetFieldValue<Relation>(Models.Metadata.Condition.RelationKey).AsStringValue<Relation>(),
|
||||
Value = conditionItem?.GetFieldValue<string?>(Models.Metadata.Condition.ValueKey),
|
||||
Value = conditionItem?.GetStringFieldValue(Models.Metadata.Condition.ValueKey),
|
||||
};
|
||||
adjuster.Condition = condition;
|
||||
}
|
||||
@@ -822,14 +822,14 @@ namespace SabreTools.DatFiles.Formats
|
||||
Status = item.GetFieldValue<SupportStatus>(Models.Metadata.Driver.StatusKey).AsStringValue<SupportStatus>(),
|
||||
Color = item.GetFieldValue<SupportStatus>(Models.Metadata.Driver.ColorKey).AsStringValue<SupportStatus>(),
|
||||
Sound = item.GetFieldValue<SupportStatus>(Models.Metadata.Driver.SoundKey).AsStringValue<SupportStatus>(),
|
||||
PaletteSize = item.GetFieldValue<long?>(Models.Metadata.Driver.PaletteSizeKey)?.ToString(),
|
||||
PaletteSize = item.GetInt64FieldValue(Models.Metadata.Driver.PaletteSizeKey)?.ToString(),
|
||||
Emulation = item.GetFieldValue<SupportStatus>(Models.Metadata.Driver.EmulationKey).AsStringValue<SupportStatus>(),
|
||||
Cocktail = item.GetFieldValue<SupportStatus>(Models.Metadata.Driver.CocktailKey).AsStringValue<SupportStatus>(),
|
||||
SaveState = item.GetFieldValue<Supported>(Models.Metadata.Driver.SaveStateKey).AsStringValue<Supported>(useSecond: true),
|
||||
RequiresArtwork = item.GetFieldValue<bool?>(Models.Metadata.Driver.RequiresArtworkKey).FromYesNo(),
|
||||
Unofficial = item.GetFieldValue<bool?>(Models.Metadata.Driver.UnofficialKey).FromYesNo(),
|
||||
NoSoundHardware = item.GetFieldValue<bool?>(Models.Metadata.Driver.NoSoundHardwareKey).FromYesNo(),
|
||||
Incomplete = item.GetFieldValue<bool?>(Models.Metadata.Driver.IncompleteKey).FromYesNo(),
|
||||
RequiresArtwork = item.GetBoolFieldValue(Models.Metadata.Driver.RequiresArtworkKey).FromYesNo(),
|
||||
Unofficial = item.GetBoolFieldValue(Models.Metadata.Driver.UnofficialKey).FromYesNo(),
|
||||
NoSoundHardware = item.GetBoolFieldValue(Models.Metadata.Driver.NoSoundHardwareKey).FromYesNo(),
|
||||
Incomplete = item.GetBoolFieldValue(Models.Metadata.Driver.IncompleteKey).FromYesNo(),
|
||||
};
|
||||
|
||||
return driver;
|
||||
@@ -858,10 +858,10 @@ namespace SabreTools.DatFiles.Formats
|
||||
var device = new Models.Listxml.Device
|
||||
{
|
||||
Type = item.GetFieldValue<DeviceType>(Models.Metadata.Device.DeviceTypeKey).AsStringValue<DeviceType>(),
|
||||
Tag = item.GetFieldValue<string?>(Models.Metadata.Device.TagKey),
|
||||
FixedImage = item.GetFieldValue<string?>(Models.Metadata.Device.FixedImageKey),
|
||||
Mandatory = item.GetFieldValue<long?>(Models.Metadata.Device.MandatoryKey)?.ToString(),
|
||||
Interface = item.GetFieldValue<string?>(Models.Metadata.Device.InterfaceKey),
|
||||
Tag = item.GetStringFieldValue(Models.Metadata.Device.TagKey),
|
||||
FixedImage = item.GetStringFieldValue(Models.Metadata.Device.FixedImageKey),
|
||||
Mandatory = item.GetInt64FieldValue(Models.Metadata.Device.MandatoryKey)?.ToString(),
|
||||
Interface = item.GetStringFieldValue(Models.Metadata.Device.InterfaceKey),
|
||||
};
|
||||
|
||||
if (item.InstancesSpecified)
|
||||
@@ -870,7 +870,7 @@ namespace SabreTools.DatFiles.Formats
|
||||
var instance = new Models.Listxml.Instance
|
||||
{
|
||||
Name = instanceItem?.GetName(),
|
||||
BriefName = instanceItem?.GetFieldValue<string?>(Models.Metadata.Instance.BriefNameKey),
|
||||
BriefName = instanceItem?.GetStringFieldValue(Models.Metadata.Instance.BriefNameKey),
|
||||
};
|
||||
device.Instance = instance;
|
||||
}
|
||||
@@ -907,8 +907,8 @@ namespace SabreTools.DatFiles.Formats
|
||||
var slotoption = new Models.Listxml.SlotOption
|
||||
{
|
||||
Name = slotoptionItem.GetName(),
|
||||
DevName = slotoptionItem.GetFieldValue<string?>(Models.Metadata.SlotOption.DevNameKey),
|
||||
Default = slotoptionItem.GetFieldValue<bool?>(Models.Metadata.SlotOption.DefaultKey).FromYesNo(),
|
||||
DevName = slotoptionItem.GetStringFieldValue(Models.Metadata.SlotOption.DevNameKey),
|
||||
Default = slotoptionItem.GetBoolFieldValue(Models.Metadata.SlotOption.DefaultKey).FromYesNo(),
|
||||
};
|
||||
slotoptions.Add(slotoption);
|
||||
}
|
||||
@@ -926,10 +926,10 @@ namespace SabreTools.DatFiles.Formats
|
||||
{
|
||||
var softwarelist = new Models.Listxml.SoftwareList
|
||||
{
|
||||
Tag = item.GetFieldValue<string?>(Models.Metadata.SoftwareList.TagKey),
|
||||
Tag = item.GetStringFieldValue(Models.Metadata.SoftwareList.TagKey),
|
||||
Name = item.GetName(),
|
||||
Status = item.GetFieldValue<SoftwareListStatus>(Models.Metadata.SoftwareList.StatusKey).AsStringValue<SoftwareListStatus>(),
|
||||
Filter = item.GetFieldValue<string?>(Models.Metadata.SoftwareList.FilterKey),
|
||||
Filter = item.GetStringFieldValue(Models.Metadata.SoftwareList.FilterKey),
|
||||
};
|
||||
|
||||
return softwarelist;
|
||||
@@ -943,8 +943,8 @@ namespace SabreTools.DatFiles.Formats
|
||||
var softwarelist = new Models.Listxml.RamOption
|
||||
{
|
||||
Name = item.GetName(),
|
||||
Default = item.GetFieldValue<bool?>(Models.Metadata.RamOption.DefaultKey).FromYesNo(),
|
||||
Content = item.GetFieldValue<string?>(Models.Metadata.RamOption.ContentKey),
|
||||
Default = item.GetBoolFieldValue(Models.Metadata.RamOption.DefaultKey).FromYesNo(),
|
||||
Content = item.GetStringFieldValue(Models.Metadata.RamOption.ContentKey),
|
||||
};
|
||||
|
||||
return softwarelist;
|
||||
|
||||
@@ -37,29 +37,29 @@ namespace SabreTools.DatFiles.Formats
|
||||
case Release release:
|
||||
if (string.IsNullOrEmpty(release.GetName()))
|
||||
missingFields.Add(Models.Metadata.Release.NameKey);
|
||||
if (string.IsNullOrEmpty(release.GetFieldValue<string?>(Models.Metadata.Release.RegionKey)))
|
||||
if (string.IsNullOrEmpty(release.GetStringFieldValue(Models.Metadata.Release.RegionKey)))
|
||||
missingFields.Add(Models.Metadata.Release.RegionKey);
|
||||
break;
|
||||
|
||||
case BiosSet biosset:
|
||||
if (string.IsNullOrEmpty(biosset.GetName()))
|
||||
missingFields.Add(Models.Metadata.BiosSet.NameKey);
|
||||
if (string.IsNullOrEmpty(biosset.GetFieldValue<string?>(Models.Metadata.BiosSet.DescriptionKey)))
|
||||
if (string.IsNullOrEmpty(biosset.GetStringFieldValue(Models.Metadata.BiosSet.DescriptionKey)))
|
||||
missingFields.Add(Models.Metadata.BiosSet.DescriptionKey);
|
||||
break;
|
||||
|
||||
case Rom rom:
|
||||
if (string.IsNullOrEmpty(rom.GetName()))
|
||||
missingFields.Add(Models.Metadata.Rom.NameKey);
|
||||
if (rom.GetFieldValue<long?>(Models.Metadata.Rom.SizeKey) == null || NumberHelper.ConvertToInt64(rom.GetFieldValue<string?>(Models.Metadata.Rom.SizeKey)) < 0)
|
||||
if (rom.GetInt64FieldValue(Models.Metadata.Rom.SizeKey) == null || rom.GetInt64FieldValue(Models.Metadata.Rom.SizeKey) < 0)
|
||||
missingFields.Add(Models.Metadata.Rom.SizeKey);
|
||||
if (string.IsNullOrEmpty(rom.GetFieldValue<string?>(Models.Metadata.Rom.CRCKey))
|
||||
&& string.IsNullOrEmpty(rom.GetFieldValue<string?>(Models.Metadata.Rom.MD5Key))
|
||||
&& string.IsNullOrEmpty(rom.GetFieldValue<string?>(Models.Metadata.Rom.SHA1Key))
|
||||
&& string.IsNullOrEmpty(rom.GetFieldValue<string?>(Models.Metadata.Rom.SHA256Key))
|
||||
&& string.IsNullOrEmpty(rom.GetFieldValue<string?>(Models.Metadata.Rom.SHA384Key))
|
||||
&& string.IsNullOrEmpty(rom.GetFieldValue<string?>(Models.Metadata.Rom.SHA512Key))
|
||||
&& string.IsNullOrEmpty(rom.GetFieldValue<string?>(Models.Metadata.Rom.SpamSumKey)))
|
||||
if (string.IsNullOrEmpty(rom.GetStringFieldValue(Models.Metadata.Rom.CRCKey))
|
||||
&& string.IsNullOrEmpty(rom.GetStringFieldValue(Models.Metadata.Rom.MD5Key))
|
||||
&& string.IsNullOrEmpty(rom.GetStringFieldValue(Models.Metadata.Rom.SHA1Key))
|
||||
&& string.IsNullOrEmpty(rom.GetStringFieldValue(Models.Metadata.Rom.SHA256Key))
|
||||
&& string.IsNullOrEmpty(rom.GetStringFieldValue(Models.Metadata.Rom.SHA384Key))
|
||||
&& string.IsNullOrEmpty(rom.GetStringFieldValue(Models.Metadata.Rom.SHA512Key))
|
||||
&& string.IsNullOrEmpty(rom.GetStringFieldValue(Models.Metadata.Rom.SpamSumKey)))
|
||||
{
|
||||
missingFields.Add(Models.Metadata.Rom.SHA1Key);
|
||||
}
|
||||
@@ -68,8 +68,8 @@ namespace SabreTools.DatFiles.Formats
|
||||
case Disk disk:
|
||||
if (string.IsNullOrEmpty(disk.GetName()))
|
||||
missingFields.Add(Models.Metadata.Disk.NameKey);
|
||||
if (string.IsNullOrEmpty(disk.GetFieldValue<string?>(Models.Metadata.Disk.MD5Key))
|
||||
&& string.IsNullOrEmpty(disk.GetFieldValue<string?>(Models.Metadata.Disk.SHA1Key)))
|
||||
if (string.IsNullOrEmpty(disk.GetStringFieldValue(Models.Metadata.Disk.MD5Key))
|
||||
&& string.IsNullOrEmpty(disk.GetStringFieldValue(Models.Metadata.Disk.SHA1Key)))
|
||||
{
|
||||
missingFields.Add(Models.Metadata.Disk.SHA1Key);
|
||||
}
|
||||
@@ -78,10 +78,10 @@ namespace SabreTools.DatFiles.Formats
|
||||
case Media media:
|
||||
if (string.IsNullOrEmpty(media.GetName()))
|
||||
missingFields.Add(Models.Metadata.Media.NameKey);
|
||||
if (string.IsNullOrEmpty(media.GetFieldValue<string?>(Models.Metadata.Media.MD5Key))
|
||||
&& string.IsNullOrEmpty(media.GetFieldValue<string?>(Models.Metadata.Media.SHA1Key))
|
||||
&& string.IsNullOrEmpty(media.GetFieldValue<string?>(Models.Metadata.Media.SHA256Key))
|
||||
&& string.IsNullOrEmpty(media.GetFieldValue<string?>(Models.Metadata.Media.SpamSumKey)))
|
||||
if (string.IsNullOrEmpty(media.GetStringFieldValue(Models.Metadata.Media.MD5Key))
|
||||
&& string.IsNullOrEmpty(media.GetStringFieldValue(Models.Metadata.Media.SHA1Key))
|
||||
&& string.IsNullOrEmpty(media.GetStringFieldValue(Models.Metadata.Media.SHA256Key))
|
||||
&& string.IsNullOrEmpty(media.GetStringFieldValue(Models.Metadata.Media.SpamSumKey)))
|
||||
{
|
||||
missingFields.Add(Models.Metadata.Media.SHA1Key);
|
||||
}
|
||||
@@ -114,7 +114,7 @@ namespace SabreTools.DatFiles.Formats
|
||||
break;
|
||||
|
||||
case DatItems.Formats.SoftwareList softwarelist:
|
||||
if (string.IsNullOrEmpty(softwarelist.GetFieldValue<string?>(Models.Metadata.SoftwareList.TagKey)))
|
||||
if (string.IsNullOrEmpty(softwarelist.GetStringFieldValue(Models.Metadata.SoftwareList.TagKey)))
|
||||
missingFields.Add(Models.Metadata.SoftwareList.TagKey);
|
||||
if (string.IsNullOrEmpty(softwarelist.GetName()))
|
||||
missingFields.Add(Models.Metadata.SoftwareList.NameKey);
|
||||
@@ -137,7 +137,7 @@ namespace SabreTools.DatFiles.Formats
|
||||
|
||||
// Only write the doctype if we don't have No-Intro data
|
||||
bool success;
|
||||
if (string.IsNullOrEmpty(Header.GetFieldValue<string?>(Models.Metadata.Header.IdKey)))
|
||||
if (string.IsNullOrEmpty(Header.GetStringFieldValue(Models.Metadata.Header.IdKey)))
|
||||
success = new Serialization.Files.Logiqx().SerializeToFileWithDocType(datafile, outfile);
|
||||
else
|
||||
success = new Serialization.Files.Logiqx().Serialize(datafile, outfile);
|
||||
@@ -168,14 +168,14 @@ namespace SabreTools.DatFiles.Formats
|
||||
{
|
||||
var datafile = new Models.Logiqx.Datafile
|
||||
{
|
||||
Build = Header.GetFieldValue<string?>(Models.Metadata.Header.BuildKey),
|
||||
Debug = Header.GetFieldValue<bool?>(Models.Metadata.Header.DebugKey).FromYesNo(),
|
||||
Build = Header.GetStringFieldValue(Models.Metadata.Header.BuildKey),
|
||||
Debug = Header.GetBoolFieldValue(Models.Metadata.Header.DebugKey).FromYesNo(),
|
||||
|
||||
Header = CreateHeader(),
|
||||
Game = CreateGames(ignoreblanks)
|
||||
};
|
||||
|
||||
if (!string.IsNullOrEmpty(Header.GetFieldValue<string?>(Models.Metadata.Header.IdKey)))
|
||||
if (!string.IsNullOrEmpty(Header.GetStringFieldValue(Models.Metadata.Header.IdKey)))
|
||||
datafile.SchemaLocation = "https://datomatic.no-intro.org/stuff https://datomatic.no-intro.org/stuff/schema_nointro_datfile_v3.xsd";
|
||||
|
||||
return datafile;
|
||||
@@ -192,19 +192,19 @@ namespace SabreTools.DatFiles.Formats
|
||||
|
||||
var header = new Models.Logiqx.Header
|
||||
{
|
||||
Id = Header.GetFieldValue<string?>(Models.Metadata.Header.IdKey),
|
||||
Name = Header.GetFieldValue<string?>(Models.Metadata.Header.NameKey),
|
||||
Description = Header.GetFieldValue<string?>(Models.Metadata.Header.DescriptionKey),
|
||||
RootDir = Header.GetFieldValue<string?>(Models.Metadata.Header.RootDirKey),
|
||||
Category = Header.GetFieldValue<string?>(Models.Metadata.Header.CategoryKey),
|
||||
Version = Header.GetFieldValue<string?>(Models.Metadata.Header.VersionKey),
|
||||
Date = Header.GetFieldValue<string?>(Models.Metadata.Header.DateKey),
|
||||
Author = Header.GetFieldValue<string?>(Models.Metadata.Header.AuthorKey),
|
||||
Email = Header.GetFieldValue<string?>(Models.Metadata.Header.EmailKey),
|
||||
Homepage = Header.GetFieldValue<string?>(Models.Metadata.Header.HomepageKey),
|
||||
Url = Header.GetFieldValue<string?>(Models.Metadata.Header.UrlKey),
|
||||
Comment = Header.GetFieldValue<string?>(Models.Metadata.Header.CommentKey),
|
||||
Type = Header.GetFieldValue<string?>(Models.Metadata.Header.TypeKey),
|
||||
Id = Header.GetStringFieldValue(Models.Metadata.Header.IdKey),
|
||||
Name = Header.GetStringFieldValue(Models.Metadata.Header.NameKey),
|
||||
Description = Header.GetStringFieldValue(Models.Metadata.Header.DescriptionKey),
|
||||
RootDir = Header.GetStringFieldValue(Models.Metadata.Header.RootDirKey),
|
||||
Category = Header.GetStringFieldValue(Models.Metadata.Header.CategoryKey),
|
||||
Version = Header.GetStringFieldValue(Models.Metadata.Header.VersionKey),
|
||||
Date = Header.GetStringFieldValue(Models.Metadata.Header.DateKey),
|
||||
Author = Header.GetStringFieldValue(Models.Metadata.Header.AuthorKey),
|
||||
Email = Header.GetStringFieldValue(Models.Metadata.Header.EmailKey),
|
||||
Homepage = Header.GetStringFieldValue(Models.Metadata.Header.HomepageKey),
|
||||
Url = Header.GetStringFieldValue(Models.Metadata.Header.UrlKey),
|
||||
Comment = Header.GetStringFieldValue(Models.Metadata.Header.CommentKey),
|
||||
Type = Header.GetStringFieldValue(Models.Metadata.Header.TypeKey),
|
||||
|
||||
ClrMamePro = CreateClrMamePro(),
|
||||
RomCenter = CreateRomCenter(),
|
||||
@@ -222,14 +222,14 @@ namespace SabreTools.DatFiles.Formats
|
||||
if (Header.GetFieldValue<MergingFlag>(Models.Metadata.Header.ForceMergingKey) == MergingFlag.None
|
||||
&& Header.GetFieldValue<NodumpFlag>(Models.Metadata.Header.ForceNodumpKey) == NodumpFlag.None
|
||||
&& Header.GetFieldValue<PackingFlag>(Models.Metadata.Header.ForcePackingKey) == PackingFlag.None
|
||||
&& string.IsNullOrEmpty(Header.GetFieldValue<string?>(Models.Metadata.Header.HeaderKey)))
|
||||
&& string.IsNullOrEmpty(Header.GetStringFieldValue(Models.Metadata.Header.HeaderKey)))
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
var subheader = new Models.Logiqx.ClrMamePro
|
||||
{
|
||||
Header = Header.GetFieldValue<string?>(Models.Metadata.Header.HeaderKey),
|
||||
Header = Header.GetStringFieldValue(Models.Metadata.Header.HeaderKey),
|
||||
};
|
||||
|
||||
if (Header.GetFieldValue<MergingFlag>(Models.Metadata.Header.ForceMergingKey) != MergingFlag.None)
|
||||
@@ -248,11 +248,11 @@ namespace SabreTools.DatFiles.Formats
|
||||
private Models.Logiqx.RomCenter? CreateRomCenter()
|
||||
{
|
||||
// If we don't have subheader values, we can't do anything
|
||||
if (string.IsNullOrEmpty(Header.GetFieldValue<string?>(Models.Metadata.Header.SystemKey))
|
||||
if (string.IsNullOrEmpty(Header.GetStringFieldValue(Models.Metadata.Header.SystemKey))
|
||||
&& Header.GetFieldValue<MergingFlag>(Models.Metadata.Header.BiosModeKey) == MergingFlag.None
|
||||
&& Header.GetFieldValue<bool?>(Models.Metadata.Header.LockBiosModeKey) == null
|
||||
&& Header.GetFieldValue<bool?>(Models.Metadata.Header.LockRomModeKey) == null
|
||||
&& Header.GetFieldValue<bool?>(Models.Metadata.Header.LockSampleModeKey) == null
|
||||
&& Header.GetBoolFieldValue(Models.Metadata.Header.LockBiosModeKey) == null
|
||||
&& Header.GetBoolFieldValue(Models.Metadata.Header.LockRomModeKey) == null
|
||||
&& Header.GetBoolFieldValue(Models.Metadata.Header.LockSampleModeKey) == null
|
||||
&& Header.GetFieldValue<MergingFlag>(Models.Metadata.Header.RomModeKey) == MergingFlag.None
|
||||
&& Header.GetFieldValue<MergingFlag>(Models.Metadata.Header.SampleModeKey) == MergingFlag.None)
|
||||
{
|
||||
@@ -261,7 +261,7 @@ namespace SabreTools.DatFiles.Formats
|
||||
|
||||
var subheader = new Models.Logiqx.RomCenter
|
||||
{
|
||||
Plugin = Header.GetFieldValue<string?>(Models.Metadata.Header.PluginKey),
|
||||
Plugin = Header.GetStringFieldValue(Models.Metadata.Header.PluginKey),
|
||||
};
|
||||
|
||||
if (Header.GetFieldValue<MergingFlag>(Models.Metadata.Header.RomModeKey) != MergingFlag.None)
|
||||
@@ -271,12 +271,12 @@ namespace SabreTools.DatFiles.Formats
|
||||
if (Header.GetFieldValue<MergingFlag>(Models.Metadata.Header.SampleModeKey) != MergingFlag.None)
|
||||
subheader.SampleMode = Header.GetFieldValue<MergingFlag>(Models.Metadata.Header.SampleModeKey).AsStringValue<MergingFlag>(useSecond: true);
|
||||
|
||||
if (Header.GetFieldValue<bool?>(Models.Metadata.Header.LockRomModeKey) != null)
|
||||
subheader.LockRomMode = Header.GetFieldValue<bool?>(Models.Metadata.Header.LockRomModeKey).FromYesNo();
|
||||
if (Header.GetFieldValue<bool?>(Models.Metadata.Header.LockBiosModeKey) != null)
|
||||
subheader.LockBiosMode = Header.GetFieldValue<bool?>(Models.Metadata.Header.LockBiosModeKey).FromYesNo();
|
||||
if (Header.GetFieldValue<bool?>(Models.Metadata.Header.LockSampleModeKey) != null)
|
||||
subheader.LockSampleMode = Header.GetFieldValue<bool?>(Models.Metadata.Header.LockSampleModeKey).FromYesNo();
|
||||
if (Header.GetBoolFieldValue(Models.Metadata.Header.LockRomModeKey) != null)
|
||||
subheader.LockRomMode = Header.GetBoolFieldValue(Models.Metadata.Header.LockRomModeKey).FromYesNo();
|
||||
if (Header.GetBoolFieldValue(Models.Metadata.Header.LockBiosModeKey) != null)
|
||||
subheader.LockBiosMode = Header.GetBoolFieldValue(Models.Metadata.Header.LockBiosModeKey).FromYesNo();
|
||||
if (Header.GetBoolFieldValue(Models.Metadata.Header.LockSampleModeKey) != null)
|
||||
subheader.LockSampleMode = Header.GetBoolFieldValue(Models.Metadata.Header.LockSampleModeKey).FromYesNo();
|
||||
|
||||
return subheader;
|
||||
}
|
||||
@@ -389,39 +389,39 @@ namespace SabreTools.DatFiles.Formats
|
||||
{
|
||||
Models.Logiqx.GameBase game = _deprecated ? new Models.Logiqx.Game() : new Models.Logiqx.Machine();
|
||||
|
||||
game.Name = machine.GetFieldValue<string?>(Models.Metadata.Machine.NameKey);
|
||||
game.SourceFile = machine.GetFieldValue<string?>(Models.Metadata.Machine.SourceFileKey);
|
||||
if (machine.GetFieldValue<bool?>(Models.Metadata.Machine.IsBiosKey) == true)
|
||||
game.Name = machine.GetStringFieldValue(Models.Metadata.Machine.NameKey);
|
||||
game.SourceFile = machine.GetStringFieldValue(Models.Metadata.Machine.SourceFileKey);
|
||||
if (machine.GetBoolFieldValue(Models.Metadata.Machine.IsBiosKey) == true)
|
||||
game.IsBios = "yes";
|
||||
if (machine.GetFieldValue<bool?>(Models.Metadata.Machine.IsDeviceKey) == true)
|
||||
if (machine.GetBoolFieldValue(Models.Metadata.Machine.IsDeviceKey) == true)
|
||||
game.IsDevice = "yes";
|
||||
if (machine.GetFieldValue<bool?>(Models.Metadata.Machine.IsMechanicalKey) == true)
|
||||
if (machine.GetBoolFieldValue(Models.Metadata.Machine.IsMechanicalKey) == true)
|
||||
game.IsMechanical = "yes";
|
||||
game.CloneOf = machine.GetFieldValue<string?>(Models.Metadata.Machine.CloneOfKey);
|
||||
game.RomOf = machine.GetFieldValue<string?>(Models.Metadata.Machine.RomOfKey);
|
||||
game.SampleOf = machine.GetFieldValue<string?>(Models.Metadata.Machine.SampleOfKey);
|
||||
game.Board = machine.GetFieldValue<string?>(Models.Metadata.Machine.BoardKey);
|
||||
game.RebuildTo = machine.GetFieldValue<string?>(Models.Metadata.Machine.RebuildToKey);
|
||||
game.Id = machine.GetFieldValue<string?>(Models.Metadata.Machine.IdKey);
|
||||
game.CloneOfId = machine.GetFieldValue<string?>(Models.Metadata.Machine.CloneOfIdKey);
|
||||
game.CloneOf = machine.GetStringFieldValue(Models.Metadata.Machine.CloneOfKey);
|
||||
game.RomOf = machine.GetStringFieldValue(Models.Metadata.Machine.RomOfKey);
|
||||
game.SampleOf = machine.GetStringFieldValue(Models.Metadata.Machine.SampleOfKey);
|
||||
game.Board = machine.GetStringFieldValue(Models.Metadata.Machine.BoardKey);
|
||||
game.RebuildTo = machine.GetStringFieldValue(Models.Metadata.Machine.RebuildToKey);
|
||||
game.Id = machine.GetStringFieldValue(Models.Metadata.Machine.IdKey);
|
||||
game.CloneOfId = machine.GetStringFieldValue(Models.Metadata.Machine.CloneOfIdKey);
|
||||
game.Runnable = machine.GetFieldValue<Runnable>(Models.Metadata.Machine.RunnableKey).AsStringValue<Runnable>();
|
||||
if (machine.GetFieldValue<string?>(Models.Metadata.Machine.CommentKey) != null)
|
||||
if (machine.GetStringFieldValue(Models.Metadata.Machine.CommentKey) != null)
|
||||
{
|
||||
if (machine.GetFieldValue<string?>(Models.Metadata.Machine.CommentKey)!.Contains(';'))
|
||||
game.Comment = machine.GetFieldValue<string?>(Models.Metadata.Machine.CommentKey)!.Split(';');
|
||||
if (machine.GetStringFieldValue(Models.Metadata.Machine.CommentKey)!.Contains(';'))
|
||||
game.Comment = machine.GetStringFieldValue(Models.Metadata.Machine.CommentKey)!.Split(';');
|
||||
else
|
||||
game.Comment = [machine.GetFieldValue<string?>(Models.Metadata.Machine.CommentKey)!];
|
||||
game.Comment = [machine.GetStringFieldValue(Models.Metadata.Machine.CommentKey)!];
|
||||
}
|
||||
game.Description = machine.GetFieldValue<string?>(Models.Metadata.Machine.DescriptionKey);
|
||||
game.Year = machine.GetFieldValue<string?>(Models.Metadata.Machine.YearKey);
|
||||
game.Manufacturer = machine.GetFieldValue<string?>(Models.Metadata.Machine.ManufacturerKey);
|
||||
game.Publisher = machine.GetFieldValue<string?>(Models.Metadata.Machine.PublisherKey);
|
||||
if (machine.GetFieldValue<string?>(Models.Metadata.Machine.CategoryKey) != null)
|
||||
game.Description = machine.GetStringFieldValue(Models.Metadata.Machine.DescriptionKey);
|
||||
game.Year = machine.GetStringFieldValue(Models.Metadata.Machine.YearKey);
|
||||
game.Manufacturer = machine.GetStringFieldValue(Models.Metadata.Machine.ManufacturerKey);
|
||||
game.Publisher = machine.GetStringFieldValue(Models.Metadata.Machine.PublisherKey);
|
||||
if (machine.GetStringFieldValue(Models.Metadata.Machine.CategoryKey) != null)
|
||||
{
|
||||
if (machine.GetFieldValue<string?>(Models.Metadata.Machine.CategoryKey)!.Contains(';'))
|
||||
game.Category = machine.GetFieldValue<string?>(Models.Metadata.Machine.CategoryKey)!.Split(';');
|
||||
if (machine.GetStringFieldValue(Models.Metadata.Machine.CategoryKey)!.Contains(';'))
|
||||
game.Category = machine.GetStringFieldValue(Models.Metadata.Machine.CategoryKey)!.Split(';');
|
||||
else
|
||||
game.Category = [machine.GetFieldValue<string?>(Models.Metadata.Machine.CategoryKey)!];
|
||||
game.Category = [machine.GetStringFieldValue(Models.Metadata.Machine.CategoryKey)!];
|
||||
}
|
||||
game.Trurip = CreateTrurip(machine);
|
||||
|
||||
@@ -450,18 +450,18 @@ namespace SabreTools.DatFiles.Formats
|
||||
var trurip = new Models.Logiqx.Trurip
|
||||
{
|
||||
TitleID = machine.TitleID,
|
||||
Publisher = machine.GetFieldValue<string?>(Models.Metadata.Machine.PublisherKey),
|
||||
Publisher = machine.GetStringFieldValue(Models.Metadata.Machine.PublisherKey),
|
||||
Developer = machine.Developer,
|
||||
Year = machine.GetFieldValue<string?>(Models.Metadata.Machine.YearKey),
|
||||
Year = machine.GetStringFieldValue(Models.Metadata.Machine.YearKey),
|
||||
Genre = machine.Genre,
|
||||
Subgenre = machine.Subgenre,
|
||||
Ratings = machine.Ratings,
|
||||
Score = machine.Score,
|
||||
Players = machine.GetFieldValue<string?>(Models.Metadata.Machine.PlayersKey),
|
||||
Players = machine.GetStringFieldValue(Models.Metadata.Machine.PlayersKey),
|
||||
Enabled = machine.Enabled,
|
||||
CRC = machine.Crc.FromYesNo(),
|
||||
Source = machine.GetFieldValue<string?>(Models.Metadata.Machine.SourceFileKey),
|
||||
CloneOf = machine.GetFieldValue<string?>(Models.Metadata.Machine.CloneOfKey),
|
||||
Source = machine.GetStringFieldValue(Models.Metadata.Machine.SourceFileKey),
|
||||
CloneOf = machine.GetStringFieldValue(Models.Metadata.Machine.CloneOfKey),
|
||||
RelatedTo = machine.RelatedTo,
|
||||
};
|
||||
|
||||
@@ -476,10 +476,10 @@ namespace SabreTools.DatFiles.Formats
|
||||
var release = new Models.Logiqx.Release
|
||||
{
|
||||
Name = item.GetName(),
|
||||
Region = item.GetFieldValue<string?>(Models.Metadata.Release.RegionKey),
|
||||
Language = item.GetFieldValue<string?>(Models.Metadata.Release.LanguageKey),
|
||||
Date = item.GetFieldValue<string?>(Models.Metadata.Release.DateKey),
|
||||
Default = item.GetFieldValue<bool?>(Models.Metadata.Release.DefaultKey).FromYesNo(),
|
||||
Region = item.GetStringFieldValue(Models.Metadata.Release.RegionKey),
|
||||
Language = item.GetStringFieldValue(Models.Metadata.Release.LanguageKey),
|
||||
Date = item.GetStringFieldValue(Models.Metadata.Release.DateKey),
|
||||
Default = item.GetBoolFieldValue(Models.Metadata.Release.DefaultKey).FromYesNo(),
|
||||
};
|
||||
|
||||
return release;
|
||||
@@ -493,8 +493,8 @@ namespace SabreTools.DatFiles.Formats
|
||||
var biosset = new Models.Logiqx.BiosSet
|
||||
{
|
||||
Name = item.GetName(),
|
||||
Default = item.GetFieldValue<bool?>(Models.Metadata.BiosSet.DefaultKey).FromYesNo(),
|
||||
Description = item.GetFieldValue<string?>(Models.Metadata.BiosSet.DescriptionKey),
|
||||
Default = item.GetBoolFieldValue(Models.Metadata.BiosSet.DefaultKey).FromYesNo(),
|
||||
Description = item.GetStringFieldValue(Models.Metadata.BiosSet.DescriptionKey),
|
||||
};
|
||||
|
||||
return biosset;
|
||||
@@ -508,22 +508,22 @@ namespace SabreTools.DatFiles.Formats
|
||||
var rom = new Models.Logiqx.Rom
|
||||
{
|
||||
Name = item.GetName(),
|
||||
Size = item.GetFieldValue<string?>(Models.Metadata.Rom.SizeKey),
|
||||
CRC = item.GetFieldValue<string?>(Models.Metadata.Rom.CRCKey),
|
||||
MD5 = item.GetFieldValue<string?>(Models.Metadata.Rom.MD5Key),
|
||||
SHA1 = item.GetFieldValue<string?>(Models.Metadata.Rom.SHA1Key),
|
||||
SHA256 = item.GetFieldValue<string?>(Models.Metadata.Rom.SHA256Key),
|
||||
SHA384 = item.GetFieldValue<string?>(Models.Metadata.Rom.SHA384Key),
|
||||
SHA512 = item.GetFieldValue<string?>(Models.Metadata.Rom.SHA512Key),
|
||||
SpamSum = item.GetFieldValue<string?>(Models.Metadata.Rom.SpamSumKey),
|
||||
xxHash364 = item.GetFieldValue<string?>(Models.Metadata.Rom.xxHash364Key),
|
||||
xxHash3128 = item.GetFieldValue<string?>(Models.Metadata.Rom.xxHash3128Key),
|
||||
Merge = item.GetFieldValue<string?>(Models.Metadata.Rom.MergeKey),
|
||||
Serial = item.GetFieldValue<string?>(Models.Metadata.Rom.SerialKey),
|
||||
Header = item.GetFieldValue<string?>(Models.Metadata.Rom.HeaderKey),
|
||||
Date = item.GetFieldValue<string?>(Models.Metadata.Rom.DateKey),
|
||||
Inverted = item.GetFieldValue<bool?>(Models.Metadata.Rom.InvertedKey).FromYesNo(),
|
||||
MIA = item.GetFieldValue<bool?>(Models.Metadata.Rom.MIAKey).FromYesNo(),
|
||||
Size = item.GetStringFieldValue(Models.Metadata.Rom.SizeKey),
|
||||
CRC = item.GetStringFieldValue(Models.Metadata.Rom.CRCKey),
|
||||
MD5 = item.GetStringFieldValue(Models.Metadata.Rom.MD5Key),
|
||||
SHA1 = item.GetStringFieldValue(Models.Metadata.Rom.SHA1Key),
|
||||
SHA256 = item.GetStringFieldValue(Models.Metadata.Rom.SHA256Key),
|
||||
SHA384 = item.GetStringFieldValue(Models.Metadata.Rom.SHA384Key),
|
||||
SHA512 = item.GetStringFieldValue(Models.Metadata.Rom.SHA512Key),
|
||||
SpamSum = item.GetStringFieldValue(Models.Metadata.Rom.SpamSumKey),
|
||||
xxHash364 = item.GetStringFieldValue(Models.Metadata.Rom.xxHash364Key),
|
||||
xxHash3128 = item.GetStringFieldValue(Models.Metadata.Rom.xxHash3128Key),
|
||||
Merge = item.GetStringFieldValue(Models.Metadata.Rom.MergeKey),
|
||||
Serial = item.GetStringFieldValue(Models.Metadata.Rom.SerialKey),
|
||||
Header = item.GetStringFieldValue(Models.Metadata.Rom.HeaderKey),
|
||||
Date = item.GetStringFieldValue(Models.Metadata.Rom.DateKey),
|
||||
Inverted = item.GetBoolFieldValue(Models.Metadata.Rom.InvertedKey).FromYesNo(),
|
||||
MIA = item.GetBoolFieldValue(Models.Metadata.Rom.MIAKey).FromYesNo(),
|
||||
};
|
||||
|
||||
if (item.ItemStatusSpecified)
|
||||
@@ -540,10 +540,10 @@ namespace SabreTools.DatFiles.Formats
|
||||
var disk = new Models.Logiqx.Disk
|
||||
{
|
||||
Name = item.GetName(),
|
||||
MD5 = item.GetFieldValue<string?>(Models.Metadata.Disk.MD5Key),
|
||||
SHA1 = item.GetFieldValue<string?>(Models.Metadata.Disk.SHA1Key),
|
||||
Merge = item.GetFieldValue<string?>(Models.Metadata.Disk.MergeKey),
|
||||
Region = item.GetFieldValue<string?>(Models.Metadata.Disk.RegionKey),
|
||||
MD5 = item.GetStringFieldValue(Models.Metadata.Disk.MD5Key),
|
||||
SHA1 = item.GetStringFieldValue(Models.Metadata.Disk.SHA1Key),
|
||||
Merge = item.GetStringFieldValue(Models.Metadata.Disk.MergeKey),
|
||||
Region = item.GetStringFieldValue(Models.Metadata.Disk.RegionKey),
|
||||
};
|
||||
|
||||
if (item.GetFieldValue<ItemStatus>(Models.Metadata.Disk.StatusKey) != ItemStatus.NULL)
|
||||
@@ -560,10 +560,10 @@ namespace SabreTools.DatFiles.Formats
|
||||
var media = new Models.Logiqx.Media
|
||||
{
|
||||
Name = item.GetName(),
|
||||
MD5 = item.GetFieldValue<string?>(Models.Metadata.Media.MD5Key),
|
||||
SHA1 = item.GetFieldValue<string?>(Models.Metadata.Media.SHA1Key),
|
||||
SHA256 = item.GetFieldValue<string?>(Models.Metadata.Media.SHA256Key),
|
||||
SpamSum = item.GetFieldValue<string?>(Models.Metadata.Media.SpamSumKey),
|
||||
MD5 = item.GetStringFieldValue(Models.Metadata.Media.MD5Key),
|
||||
SHA1 = item.GetStringFieldValue(Models.Metadata.Media.SHA1Key),
|
||||
SHA256 = item.GetStringFieldValue(Models.Metadata.Media.SHA256Key),
|
||||
SpamSum = item.GetStringFieldValue(Models.Metadata.Media.SpamSumKey),
|
||||
};
|
||||
return media;
|
||||
}
|
||||
@@ -615,10 +615,10 @@ namespace SabreTools.DatFiles.Formats
|
||||
Emulation = item.GetFieldValue<SupportStatus>(Models.Metadata.Driver.EmulationKey).AsStringValue<SupportStatus>(),
|
||||
Cocktail = item.GetFieldValue<SupportStatus>(Models.Metadata.Driver.CocktailKey).AsStringValue<SupportStatus>(),
|
||||
SaveState = item.GetFieldValue<Supported>(Models.Metadata.Driver.SaveStateKey).AsStringValue<Supported>(useSecond: true),
|
||||
RequiresArtwork = item.GetFieldValue<bool?>(Models.Metadata.Driver.RequiresArtworkKey).FromYesNo(),
|
||||
Unofficial = item.GetFieldValue<bool?>(Models.Metadata.Driver.UnofficialKey).FromYesNo(),
|
||||
NoSoundHardware = item.GetFieldValue<bool?>(Models.Metadata.Driver.NoSoundHardwareKey).FromYesNo(),
|
||||
Incomplete = item.GetFieldValue<bool?>(Models.Metadata.Driver.IncompleteKey).FromYesNo(),
|
||||
RequiresArtwork = item.GetBoolFieldValue(Models.Metadata.Driver.RequiresArtworkKey).FromYesNo(),
|
||||
Unofficial = item.GetBoolFieldValue(Models.Metadata.Driver.UnofficialKey).FromYesNo(),
|
||||
NoSoundHardware = item.GetBoolFieldValue(Models.Metadata.Driver.NoSoundHardwareKey).FromYesNo(),
|
||||
Incomplete = item.GetBoolFieldValue(Models.Metadata.Driver.IncompleteKey).FromYesNo(),
|
||||
};
|
||||
|
||||
return driver;
|
||||
@@ -631,9 +631,9 @@ namespace SabreTools.DatFiles.Formats
|
||||
{
|
||||
var softwarelist = new Models.Logiqx.SoftwareList
|
||||
{
|
||||
Tag = item.GetFieldValue<string?>(Models.Metadata.SoftwareList.TagKey),
|
||||
Tag = item.GetStringFieldValue(Models.Metadata.SoftwareList.TagKey),
|
||||
Name = item.GetName(),
|
||||
Filter = item.GetFieldValue<string?>(Models.Metadata.SoftwareList.FilterKey),
|
||||
Filter = item.GetStringFieldValue(Models.Metadata.SoftwareList.FilterKey),
|
||||
};
|
||||
|
||||
if (item.GetFieldValue<SoftwareListStatus?>(Models.Metadata.SoftwareList.StatusKey) != SoftwareListStatus.None)
|
||||
|
||||
@@ -59,11 +59,11 @@ namespace SabreTools.DatFiles.Formats
|
||||
datItem = ProcessNullifiedItem(datItem);
|
||||
|
||||
// Write out the item if we're using machine names or we're not ignoring
|
||||
if (!Header.GetFieldValue<bool>(DatHeader.UseRomNameKey) || !ShouldIgnore(datItem, ignoreblanks))
|
||||
if (!Header.GetBoolFieldValue(DatHeader.UseRomNameKey) == true || !ShouldIgnore(datItem, ignoreblanks))
|
||||
WriteDatItem(sw, datItem, lastgame);
|
||||
|
||||
// Set the new data to compare against
|
||||
lastgame = datItem.GetFieldValue<Machine>(DatItem.MachineKey)!.GetFieldValue<string?>(Models.Metadata.Machine.NameKey);
|
||||
lastgame = datItem.GetFieldValue<Machine>(DatItem.MachineKey)!.GetStringFieldValue(Models.Metadata.Machine.NameKey);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -92,10 +92,10 @@ namespace SabreTools.DatFiles.Formats
|
||||
ProcessItemName(datItem, false, forceRomName: false);
|
||||
|
||||
// Romba mode automatically uses item name
|
||||
if (Header.GetFieldValue<DepotInformation?>(DatHeader.OutputDepotKey)?.IsActive == true || Header.GetFieldValue<bool>(DatHeader.UseRomNameKey))
|
||||
if (Header.GetFieldValue<DepotInformation?>(DatHeader.OutputDepotKey)?.IsActive == true || Header.GetBoolFieldValue(DatHeader.UseRomNameKey) == true)
|
||||
sw.Write($"{datItem.GetName() ?? string.Empty}\n");
|
||||
else if (!Header.GetFieldValue<bool>(DatHeader.UseRomNameKey) && datItem.GetFieldValue<Machine>(DatItem.MachineKey)!.GetFieldValue<string?>(Models.Metadata.Machine.NameKey) != lastgame)
|
||||
sw.Write($"{datItem.GetFieldValue<Machine>(DatItem.MachineKey)!.GetFieldValue<string?>(Models.Metadata.Machine.NameKey) ?? string.Empty}\n");
|
||||
else if (!Header.GetBoolFieldValue(DatHeader.UseRomNameKey) == true && datItem.GetFieldValue<Machine>(DatItem.MachineKey)!.GetStringFieldValue(Models.Metadata.Machine.NameKey) != lastgame)
|
||||
sw.Write($"{datItem.GetFieldValue<Machine>(DatItem.MachineKey)!.GetStringFieldValue(Models.Metadata.Machine.NameKey) ?? string.Empty}\n");
|
||||
|
||||
sw.Flush();
|
||||
}
|
||||
|
||||
@@ -34,9 +34,9 @@ namespace SabreTools.DatFiles.Formats
|
||||
switch (datItem)
|
||||
{
|
||||
case Rom rom:
|
||||
if (rom.GetFieldValue<long?>(Models.Metadata.Rom.SizeKey) == null || NumberHelper.ConvertToInt64(rom.GetFieldValue<string?>(Models.Metadata.Rom.SizeKey)) < 0)
|
||||
if (rom.GetInt64FieldValue(Models.Metadata.Rom.SizeKey) == null || rom.GetInt64FieldValue(Models.Metadata.Rom.SizeKey) < 0)
|
||||
missingFields.Add(Models.Metadata.Rom.SizeKey);
|
||||
if (string.IsNullOrEmpty(rom.GetFieldValue<string?>(Models.Metadata.Rom.CRCKey)))
|
||||
if (string.IsNullOrEmpty(rom.GetStringFieldValue(Models.Metadata.Rom.CRCKey)))
|
||||
missingFields.Add(Models.Metadata.Rom.CRCKey);
|
||||
break;
|
||||
}
|
||||
@@ -98,17 +98,17 @@ namespace SabreTools.DatFiles.Formats
|
||||
|
||||
var configuration = new Models.OfflineList.Configuration
|
||||
{
|
||||
DatName = Header.GetFieldValue<string?>(Models.Metadata.Header.NameKey),
|
||||
ImFolder = Header.GetFieldValue<string?>(Models.Metadata.Header.ImFolderKey),
|
||||
DatVersion = Header.GetFieldValue<string?>(Models.Metadata.Header.DatVersionKey),
|
||||
System = Header.GetFieldValue<string?>(Models.Metadata.Header.SystemKey),
|
||||
ScreenshotsWidth = Header.GetFieldValue<string?>(Models.Metadata.Header.ScreenshotsWidthKey),
|
||||
ScreenshotsHeight = Header.GetFieldValue<string?>(Models.Metadata.Header.ScreenshotsHeightKey),
|
||||
DatName = Header.GetStringFieldValue(Models.Metadata.Header.NameKey),
|
||||
ImFolder = Header.GetStringFieldValue(Models.Metadata.Header.ImFolderKey),
|
||||
DatVersion = Header.GetStringFieldValue(Models.Metadata.Header.DatVersionKey),
|
||||
System = Header.GetStringFieldValue(Models.Metadata.Header.SystemKey),
|
||||
ScreenshotsWidth = Header.GetStringFieldValue(Models.Metadata.Header.ScreenshotsWidthKey),
|
||||
ScreenshotsHeight = Header.GetStringFieldValue(Models.Metadata.Header.ScreenshotsHeightKey),
|
||||
Infos = CreateInfos(),
|
||||
CanOpen = CreateCanOpen(),
|
||||
NewDat = CreateNewDat(),
|
||||
Search = CreateSearch(),
|
||||
RomTitle = Header.GetFieldValue<string?>(Models.Metadata.Header.RomTitleKey),
|
||||
RomTitle = Header.GetStringFieldValue(Models.Metadata.Header.RomTitleKey),
|
||||
};
|
||||
|
||||
return configuration;
|
||||
@@ -256,12 +256,12 @@ namespace SabreTools.DatFiles.Formats
|
||||
private Models.OfflineList.CanOpen? CreateCanOpen()
|
||||
{
|
||||
// If we don't have a canopen, we can't do anything
|
||||
if (!Header.CanOpenSpecified || Header.GetFieldValue<string[]?>(Models.Metadata.Header.CanOpenKey) == null)
|
||||
if (!Header.CanOpenSpecified || Header.GetStringArrayFieldValue(Models.Metadata.Header.CanOpenKey) == null)
|
||||
return null;
|
||||
|
||||
var canOpen = new Models.OfflineList.CanOpen
|
||||
{
|
||||
Extension = [.. Header.GetFieldValue<string[]?>(Models.Metadata.Header.CanOpenKey)],
|
||||
Extension = [.. Header.GetStringArrayFieldValue(Models.Metadata.Header.CanOpenKey)],
|
||||
};
|
||||
|
||||
return canOpen;
|
||||
@@ -278,9 +278,9 @@ namespace SabreTools.DatFiles.Formats
|
||||
|
||||
var newDat = new Models.OfflineList.NewDat
|
||||
{
|
||||
DatVersionUrl = Header.GetFieldValue<string?>("DATVERSIONURL"),
|
||||
DatVersionUrl = Header.GetStringFieldValue("DATVERSIONURL"),
|
||||
//DatUrl = Header.GetFieldValue<Models.OfflineList.DatUrl?>("DATURL"); // TODO: Add to internal model
|
||||
ImUrl = Header.GetFieldValue<string?>("IMURL"),
|
||||
ImUrl = Header.GetStringFieldValue("IMURL"),
|
||||
};
|
||||
|
||||
return newDat;
|
||||
@@ -364,18 +364,18 @@ namespace SabreTools.DatFiles.Formats
|
||||
{
|
||||
var game = new Models.OfflineList.Game
|
||||
{
|
||||
ImageNumber = machine.GetFieldValue<string?>(Models.Metadata.Machine.ImageNumberKey),
|
||||
ReleaseNumber = machine.GetFieldValue<string?>(Models.Metadata.Machine.ReleaseNumberKey),
|
||||
Title = machine.GetFieldValue<string?>(Models.Metadata.Machine.NameKey),
|
||||
SaveType = machine.GetFieldValue<string?>(Models.Metadata.Machine.SaveTypeKey),
|
||||
Publisher = machine.GetFieldValue<string?>(Models.Metadata.Machine.PublisherKey),
|
||||
Location = machine.GetFieldValue<string?>(Models.Metadata.Machine.LocationKey),
|
||||
SourceRom = machine.GetFieldValue<string?>(Models.Metadata.Machine.SourceRomKey),
|
||||
Language = machine.GetFieldValue<string?>(Models.Metadata.Machine.LanguageKey),
|
||||
Im1CRC = machine.GetFieldValue<string?>(Models.Metadata.Machine.Im1CRCKey),
|
||||
Im2CRC = machine.GetFieldValue<string?>(Models.Metadata.Machine.Im2CRCKey),
|
||||
Comment = machine.GetFieldValue<string?>(Models.Metadata.Machine.CommentKey),
|
||||
DuplicateID = machine.GetFieldValue<string?>(Models.Metadata.Machine.CloneOfKey),
|
||||
ImageNumber = machine.GetStringFieldValue(Models.Metadata.Machine.ImageNumberKey),
|
||||
ReleaseNumber = machine.GetStringFieldValue(Models.Metadata.Machine.ReleaseNumberKey),
|
||||
Title = machine.GetStringFieldValue(Models.Metadata.Machine.NameKey),
|
||||
SaveType = machine.GetStringFieldValue(Models.Metadata.Machine.SaveTypeKey),
|
||||
Publisher = machine.GetStringFieldValue(Models.Metadata.Machine.PublisherKey),
|
||||
Location = machine.GetStringFieldValue(Models.Metadata.Machine.LocationKey),
|
||||
SourceRom = machine.GetStringFieldValue(Models.Metadata.Machine.SourceRomKey),
|
||||
Language = machine.GetStringFieldValue(Models.Metadata.Machine.LanguageKey),
|
||||
Im1CRC = machine.GetStringFieldValue(Models.Metadata.Machine.Im1CRCKey),
|
||||
Im2CRC = machine.GetStringFieldValue(Models.Metadata.Machine.Im2CRCKey),
|
||||
Comment = machine.GetStringFieldValue(Models.Metadata.Machine.CommentKey),
|
||||
DuplicateID = machine.GetStringFieldValue(Models.Metadata.Machine.CloneOfKey),
|
||||
};
|
||||
|
||||
return game;
|
||||
@@ -388,7 +388,7 @@ namespace SabreTools.DatFiles.Formats
|
||||
{
|
||||
var romCRC = new Models.OfflineList.FileRomCRC
|
||||
{
|
||||
Content = item.GetFieldValue<string?>(Models.Metadata.Rom.CRCKey),
|
||||
Content = item.GetStringFieldValue(Models.Metadata.Rom.CRCKey),
|
||||
};
|
||||
|
||||
return romCRC;
|
||||
|
||||
@@ -33,7 +33,7 @@ namespace SabreTools.DatFiles.Formats
|
||||
switch (datItem)
|
||||
{
|
||||
case Rom rom:
|
||||
if (string.IsNullOrEmpty(rom.GetFieldValue<string?>(Models.Metadata.Rom.SHA1Key)))
|
||||
if (string.IsNullOrEmpty(rom.GetStringFieldValue(Models.Metadata.Rom.SHA1Key)))
|
||||
missingFields.Add(Models.Metadata.Rom.SHA1Key);
|
||||
break;
|
||||
}
|
||||
@@ -76,7 +76,7 @@ namespace SabreTools.DatFiles.Formats
|
||||
{
|
||||
var softwaredb = new Models.OpenMSX.SoftwareDb
|
||||
{
|
||||
Timestamp = Header.GetFieldValue<string?>(Models.Metadata.Header.DateKey),
|
||||
Timestamp = Header.GetStringFieldValue(Models.Metadata.Header.DateKey),
|
||||
Software = CreateSoftwares(ignoreblanks)
|
||||
};
|
||||
return softwaredb;
|
||||
@@ -106,12 +106,12 @@ namespace SabreTools.DatFiles.Formats
|
||||
var machine = items[0].GetFieldValue<Machine>(DatItem.MachineKey);
|
||||
var software = new Models.OpenMSX.Software
|
||||
{
|
||||
Title = machine?.GetFieldValue<string?>(Models.Metadata.Machine.NameKey),
|
||||
GenMSXID = machine?.GetFieldValue<string?>(Models.Metadata.Machine.GenMSXIDKey),
|
||||
System = machine?.GetFieldValue<string?>(Models.Metadata.Machine.SystemKey),
|
||||
Company = machine?.GetFieldValue<string?>(Models.Metadata.Machine.ManufacturerKey),
|
||||
Year = machine?.GetFieldValue<string?>(Models.Metadata.Machine.YearKey),
|
||||
Country = machine?.GetFieldValue<string?>(Models.Metadata.Machine.CountryKey),
|
||||
Title = machine?.GetStringFieldValue(Models.Metadata.Machine.NameKey),
|
||||
GenMSXID = machine?.GetStringFieldValue(Models.Metadata.Machine.GenMSXIDKey),
|
||||
System = machine?.GetStringFieldValue(Models.Metadata.Machine.SystemKey),
|
||||
Company = machine?.GetStringFieldValue(Models.Metadata.Machine.ManufacturerKey),
|
||||
Year = machine?.GetStringFieldValue(Models.Metadata.Machine.YearKey),
|
||||
Country = machine?.GetStringFieldValue(Models.Metadata.Machine.CountryKey),
|
||||
};
|
||||
|
||||
// Create holder for dumps
|
||||
@@ -165,10 +165,10 @@ namespace SabreTools.DatFiles.Formats
|
||||
_ => new Models.OpenMSX.Rom(),
|
||||
};
|
||||
|
||||
rom.Start = item.GetFieldValue<string?>(Models.Metadata.Rom.OffsetKey);
|
||||
rom.Type = item.GetFieldValue<string?>(Models.Metadata.Rom.OpenMSXType);
|
||||
rom.Hash = item.GetFieldValue<string?>(Models.Metadata.Rom.SHA1Key);
|
||||
rom.Remark = item.GetFieldValue<string?>(Models.Metadata.Rom.RemarkKey);
|
||||
rom.Start = item.GetStringFieldValue(Models.Metadata.Rom.OffsetKey);
|
||||
rom.Type = item.GetStringFieldValue(Models.Metadata.Rom.OpenMSXType);
|
||||
rom.Hash = item.GetStringFieldValue(Models.Metadata.Rom.SHA1Key);
|
||||
rom.Remark = item.GetStringFieldValue(Models.Metadata.Rom.RemarkKey);
|
||||
|
||||
var dump = new Models.OpenMSX.Dump
|
||||
{
|
||||
|
||||
@@ -34,9 +34,9 @@ namespace SabreTools.DatFiles.Formats
|
||||
switch (datItem)
|
||||
{
|
||||
case Rom rom:
|
||||
if (string.IsNullOrEmpty(rom.GetFieldValue<string?>(Models.Metadata.Rom.CRCKey)))
|
||||
if (string.IsNullOrEmpty(rom.GetStringFieldValue(Models.Metadata.Rom.CRCKey)))
|
||||
missingFields.Add(Models.Metadata.Rom.CRCKey);
|
||||
if (rom.GetFieldValue<long?>(Models.Metadata.Rom.SizeKey) == null || NumberHelper.ConvertToInt64(rom.GetFieldValue<string?>(Models.Metadata.Rom.SizeKey)) < 0)
|
||||
if (rom.GetInt64FieldValue(Models.Metadata.Rom.SizeKey) == null || rom.GetInt64FieldValue(Models.Metadata.Rom.SizeKey) < 0)
|
||||
missingFields.Add(Models.Metadata.Rom.SizeKey);
|
||||
break;
|
||||
}
|
||||
@@ -93,13 +93,13 @@ namespace SabreTools.DatFiles.Formats
|
||||
{
|
||||
var credits = new Models.RomCenter.Credits
|
||||
{
|
||||
Author = Header.GetFieldValue<string?>(Models.Metadata.Header.AuthorKey),
|
||||
Version = Header.GetFieldValue<string?>(Models.Metadata.Header.VersionKey),
|
||||
Email = Header.GetFieldValue<string?>(Models.Metadata.Header.EmailKey),
|
||||
Homepage = Header.GetFieldValue<string?>(Models.Metadata.Header.HomepageKey),
|
||||
Url = Header.GetFieldValue<string?>(Models.Metadata.Header.UrlKey),
|
||||
Date = Header.GetFieldValue<string?>(Models.Metadata.Header.DateKey),
|
||||
Comment = Header.GetFieldValue<string?>(Models.Metadata.Header.CommentKey),
|
||||
Author = Header.GetStringFieldValue(Models.Metadata.Header.AuthorKey),
|
||||
Version = Header.GetStringFieldValue(Models.Metadata.Header.VersionKey),
|
||||
Email = Header.GetStringFieldValue(Models.Metadata.Header.EmailKey),
|
||||
Homepage = Header.GetStringFieldValue(Models.Metadata.Header.HomepageKey),
|
||||
Url = Header.GetStringFieldValue(Models.Metadata.Header.UrlKey),
|
||||
Date = Header.GetStringFieldValue(Models.Metadata.Header.DateKey),
|
||||
Comment = Header.GetStringFieldValue(Models.Metadata.Header.CommentKey),
|
||||
};
|
||||
return credits;
|
||||
}
|
||||
@@ -111,8 +111,8 @@ namespace SabreTools.DatFiles.Formats
|
||||
{
|
||||
var dat = new Models.RomCenter.Dat
|
||||
{
|
||||
Version = Header.GetFieldValue<string?>(Models.Metadata.Header.DatVersionKey),
|
||||
Plugin = Header.GetFieldValue<string?>(Models.Metadata.Header.SystemKey),
|
||||
Version = Header.GetStringFieldValue(Models.Metadata.Header.DatVersionKey),
|
||||
Plugin = Header.GetStringFieldValue(Models.Metadata.Header.SystemKey),
|
||||
Split = (Header.GetFieldValue<MergingFlag>(Models.Metadata.Header.ForceMergingKey) == MergingFlag.Split ? "1" : "0"),
|
||||
Merge = (Header.GetFieldValue<MergingFlag>(Models.Metadata.Header.ForceMergingKey) == MergingFlag.Merged || Header.GetFieldValue<MergingFlag>(Models.Metadata.Header.ForceMergingKey) == MergingFlag.FullMerged ? "1" : "0"),
|
||||
};
|
||||
@@ -126,8 +126,8 @@ namespace SabreTools.DatFiles.Formats
|
||||
{
|
||||
var emulator = new Models.RomCenter.Emulator
|
||||
{
|
||||
RefName = Header.GetFieldValue<string?>(Models.Metadata.Header.NameKey),
|
||||
Version = Header.GetFieldValue<string?>(Models.Metadata.Header.DescriptionKey),
|
||||
RefName = Header.GetStringFieldValue(Models.Metadata.Header.NameKey),
|
||||
Version = Header.GetStringFieldValue(Models.Metadata.Header.DescriptionKey),
|
||||
};
|
||||
return emulator;
|
||||
}
|
||||
@@ -184,15 +184,15 @@ namespace SabreTools.DatFiles.Formats
|
||||
{
|
||||
var rom = new Models.RomCenter.Rom
|
||||
{
|
||||
ParentName = item.GetFieldValue<Machine>(DatItem.MachineKey)!.GetFieldValue<string?>(Models.Metadata.Machine.CloneOfKey),
|
||||
//ParentDescription = item.GetFieldValue<Machine>(DatItem.MachineKey)!.GetFieldValue<string?>(Models.Metadata.Machine.CloneOfDescription), // TODO: Add to internal model or find mapping
|
||||
GameName = item.GetFieldValue<Machine>(DatItem.MachineKey)!.GetFieldValue<string?>(Models.Metadata.Machine.NameKey),
|
||||
GameDescription = item.GetFieldValue<Machine>(DatItem.MachineKey)!.GetFieldValue<string?>(Models.Metadata.Machine.DescriptionKey),
|
||||
ParentName = item.GetFieldValue<Machine>(DatItem.MachineKey)!.GetStringFieldValue(Models.Metadata.Machine.CloneOfKey),
|
||||
//ParentDescription = item.GetFieldValue<Machine>(DatItem.MachineKey)!.GetStringFieldValue(Models.Metadata.Machine.CloneOfDescription), // TODO: Add to internal model or find mapping
|
||||
GameName = item.GetFieldValue<Machine>(DatItem.MachineKey)!.GetStringFieldValue(Models.Metadata.Machine.NameKey),
|
||||
GameDescription = item.GetFieldValue<Machine>(DatItem.MachineKey)!.GetStringFieldValue(Models.Metadata.Machine.DescriptionKey),
|
||||
RomName = item.GetName(),
|
||||
RomCRC = item.GetFieldValue<string?>(Models.Metadata.Rom.CRCKey),
|
||||
RomSize = item.GetFieldValue<string?>(Models.Metadata.Rom.SizeKey),
|
||||
RomOf = item.GetFieldValue<Machine>(DatItem.MachineKey)!.GetFieldValue<string?>(Models.Metadata.Machine.RomOfKey),
|
||||
MergeName = item.GetFieldValue<string?>(Models.Metadata.Rom.MergeKey),
|
||||
RomCRC = item.GetStringFieldValue(Models.Metadata.Rom.CRCKey),
|
||||
RomSize = item.GetStringFieldValue(Models.Metadata.Rom.SizeKey),
|
||||
RomOf = item.GetFieldValue<Machine>(DatItem.MachineKey)!.GetStringFieldValue(Models.Metadata.Machine.RomOfKey),
|
||||
MergeName = item.GetStringFieldValue(Models.Metadata.Rom.MergeKey),
|
||||
};
|
||||
return rom;
|
||||
}
|
||||
|
||||
@@ -395,11 +395,11 @@ namespace SabreTools.DatFiles.Formats
|
||||
DatItem datItem = datItems[index];
|
||||
|
||||
// If we have a different game and we're not at the start of the list, output the end of last item
|
||||
if (lastgame != null && lastgame.ToLowerInvariant() != datItem.GetFieldValue<Machine>(DatItem.MachineKey)!.GetFieldValue<string?>(Models.Metadata.Machine.NameKey)?.ToLowerInvariant())
|
||||
if (lastgame != null && lastgame.ToLowerInvariant() != datItem.GetFieldValue<Machine>(DatItem.MachineKey)!.GetStringFieldValue(Models.Metadata.Machine.NameKey)?.ToLowerInvariant())
|
||||
SabreJSON.WriteEndGame(jtw);
|
||||
|
||||
// If we have a new game, output the beginning of the new item
|
||||
if (lastgame == null || lastgame.ToLowerInvariant() != datItem.GetFieldValue<Machine>(DatItem.MachineKey)!.GetFieldValue<string?>(Models.Metadata.Machine.NameKey)?.ToLowerInvariant())
|
||||
if (lastgame == null || lastgame.ToLowerInvariant() != datItem.GetFieldValue<Machine>(DatItem.MachineKey)!.GetStringFieldValue(Models.Metadata.Machine.NameKey)?.ToLowerInvariant())
|
||||
SabreJSON.WriteStartGame(jtw, datItem);
|
||||
|
||||
// Check for a "null" item
|
||||
@@ -410,7 +410,7 @@ namespace SabreTools.DatFiles.Formats
|
||||
WriteDatItem(jtw, datItem);
|
||||
|
||||
// Set the new data to compare against
|
||||
lastgame = datItem.GetFieldValue<Machine>(DatItem.MachineKey)!.GetFieldValue<string?>(Models.Metadata.Machine.NameKey);
|
||||
lastgame = datItem.GetFieldValue<Machine>(DatItem.MachineKey)!.GetStringFieldValue(Models.Metadata.Machine.NameKey);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -457,8 +457,8 @@ namespace SabreTools.DatFiles.Formats
|
||||
private static void WriteStartGame(JsonTextWriter jtw, DatItem datItem)
|
||||
{
|
||||
// No game should start with a path separator
|
||||
if (!string.IsNullOrEmpty(datItem.GetFieldValue<Machine>(DatItem.MachineKey)!.GetFieldValue<string?>(Models.Metadata.Machine.NameKey)))
|
||||
datItem.GetFieldValue<Machine>(DatItem.MachineKey)!.SetFieldValue<string?>(Models.Metadata.Machine.NameKey, datItem.GetFieldValue<Machine>(DatItem.MachineKey)!.GetFieldValue<string?>(Models.Metadata.Machine.NameKey)!.TrimStart(Path.DirectorySeparatorChar));
|
||||
if (!string.IsNullOrEmpty(datItem.GetFieldValue<Machine>(DatItem.MachineKey)!.GetStringFieldValue(Models.Metadata.Machine.NameKey)))
|
||||
datItem.GetFieldValue<Machine>(DatItem.MachineKey)!.SetFieldValue<string?>(Models.Metadata.Machine.NameKey, datItem.GetFieldValue<Machine>(DatItem.MachineKey)!.GetStringFieldValue(Models.Metadata.Machine.NameKey)!.TrimStart(Path.DirectorySeparatorChar));
|
||||
|
||||
// Build the state
|
||||
jtw.WriteStartObject();
|
||||
|
||||
@@ -227,11 +227,11 @@ namespace SabreTools.DatFiles.Formats
|
||||
DatItem datItem = datItems[index];
|
||||
|
||||
// If we have a different game and we're not at the start of the list, output the end of last item
|
||||
if (lastgame != null && lastgame.ToLowerInvariant() != datItem.GetFieldValue<Machine>(DatItem.MachineKey)!.GetFieldValue<string?>(Models.Metadata.Machine.NameKey)?.ToLowerInvariant())
|
||||
if (lastgame != null && lastgame.ToLowerInvariant() != datItem.GetFieldValue<Machine>(DatItem.MachineKey)!.GetStringFieldValue(Models.Metadata.Machine.NameKey)?.ToLowerInvariant())
|
||||
WriteEndGame(xtw);
|
||||
|
||||
// If we have a new game, output the beginning of the new item
|
||||
if (lastgame == null || lastgame.ToLowerInvariant() != datItem.GetFieldValue<Machine>(DatItem.MachineKey)!.GetFieldValue<string?>(Models.Metadata.Machine.NameKey)?.ToLowerInvariant())
|
||||
if (lastgame == null || lastgame.ToLowerInvariant() != datItem.GetFieldValue<Machine>(DatItem.MachineKey)!.GetStringFieldValue(Models.Metadata.Machine.NameKey)?.ToLowerInvariant())
|
||||
WriteStartGame(xtw, datItem);
|
||||
|
||||
// Check for a "null" item
|
||||
@@ -242,7 +242,7 @@ namespace SabreTools.DatFiles.Formats
|
||||
WriteDatItem(xtw, datItem);
|
||||
|
||||
// Set the new data to compare against
|
||||
lastgame = datItem.GetFieldValue<Machine>(DatItem.MachineKey)!.GetFieldValue<string?>(Models.Metadata.Machine.NameKey);
|
||||
lastgame = datItem.GetFieldValue<Machine>(DatItem.MachineKey)!.GetStringFieldValue(Models.Metadata.Machine.NameKey);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -292,7 +292,7 @@ namespace SabreTools.DatFiles.Formats
|
||||
private static void WriteStartGame(XmlTextWriter xtw, DatItem datItem)
|
||||
{
|
||||
// No game should start with a path separator
|
||||
datItem.GetFieldValue<Machine>(DatItem.MachineKey)!.SetFieldValue<string?>(Models.Metadata.Machine.NameKey, datItem.GetFieldValue<Machine>(DatItem.MachineKey)!.GetFieldValue<string?>(Models.Metadata.Machine.NameKey)?.TrimStart(Path.DirectorySeparatorChar) ?? string.Empty);
|
||||
datItem.GetFieldValue<Machine>(DatItem.MachineKey)!.SetFieldValue<string?>(Models.Metadata.Machine.NameKey, datItem.GetFieldValue<Machine>(DatItem.MachineKey)!.GetStringFieldValue(Models.Metadata.Machine.NameKey)?.TrimStart(Path.DirectorySeparatorChar) ?? string.Empty);
|
||||
|
||||
// Write the machine
|
||||
xtw.WriteStartElement("directory");
|
||||
|
||||
@@ -36,23 +36,23 @@ namespace SabreTools.DatFiles.Formats
|
||||
switch (datItem)
|
||||
{
|
||||
case Disk disk:
|
||||
if (string.IsNullOrEmpty(disk.GetFieldValue<string?>(Models.Metadata.Disk.MD5Key))
|
||||
&& string.IsNullOrEmpty(disk.GetFieldValue<string?>(Models.Metadata.Disk.SHA1Key)))
|
||||
if (string.IsNullOrEmpty(disk.GetStringFieldValue(Models.Metadata.Disk.MD5Key))
|
||||
&& string.IsNullOrEmpty(disk.GetStringFieldValue(Models.Metadata.Disk.SHA1Key)))
|
||||
{
|
||||
missingFields.Add(Models.Metadata.Disk.SHA1Key);
|
||||
}
|
||||
break;
|
||||
|
||||
case Rom rom:
|
||||
if (rom.GetFieldValue<long?>(Models.Metadata.Rom.SizeKey) == null || NumberHelper.ConvertToInt64(rom.GetFieldValue<string?>(Models.Metadata.Rom.SizeKey)) < 0)
|
||||
if (rom.GetInt64FieldValue(Models.Metadata.Rom.SizeKey) == null || rom.GetInt64FieldValue(Models.Metadata.Rom.SizeKey) < 0)
|
||||
missingFields.Add(Models.Metadata.Rom.SizeKey);
|
||||
if (string.IsNullOrEmpty(rom.GetFieldValue<string?>(Models.Metadata.Rom.CRCKey))
|
||||
&& string.IsNullOrEmpty(rom.GetFieldValue<string?>(Models.Metadata.Rom.MD5Key))
|
||||
&& string.IsNullOrEmpty(rom.GetFieldValue<string?>(Models.Metadata.Rom.SHA1Key))
|
||||
&& string.IsNullOrEmpty(rom.GetFieldValue<string?>(Models.Metadata.Rom.SHA256Key))
|
||||
&& string.IsNullOrEmpty(rom.GetFieldValue<string?>(Models.Metadata.Rom.SHA384Key))
|
||||
&& string.IsNullOrEmpty(rom.GetFieldValue<string?>(Models.Metadata.Rom.SHA512Key))
|
||||
&& string.IsNullOrEmpty(rom.GetFieldValue<string?>(Models.Metadata.Rom.SpamSumKey)))
|
||||
if (string.IsNullOrEmpty(rom.GetStringFieldValue(Models.Metadata.Rom.CRCKey))
|
||||
&& string.IsNullOrEmpty(rom.GetStringFieldValue(Models.Metadata.Rom.MD5Key))
|
||||
&& string.IsNullOrEmpty(rom.GetStringFieldValue(Models.Metadata.Rom.SHA1Key))
|
||||
&& string.IsNullOrEmpty(rom.GetStringFieldValue(Models.Metadata.Rom.SHA256Key))
|
||||
&& string.IsNullOrEmpty(rom.GetStringFieldValue(Models.Metadata.Rom.SHA384Key))
|
||||
&& string.IsNullOrEmpty(rom.GetStringFieldValue(Models.Metadata.Rom.SHA512Key))
|
||||
&& string.IsNullOrEmpty(rom.GetStringFieldValue(Models.Metadata.Rom.SpamSumKey)))
|
||||
{
|
||||
missingFields.Add(Models.Metadata.Rom.SHA1Key);
|
||||
}
|
||||
@@ -159,18 +159,18 @@ namespace SabreTools.DatFiles.Formats
|
||||
{
|
||||
var row = new Models.SeparatedValue.Row
|
||||
{
|
||||
FileName = Header.GetFieldValue<string?>(DatHeader.FileNameKey),
|
||||
InternalName = Header.GetFieldValue<string?>(Models.Metadata.Header.NameKey),
|
||||
Description = Header.GetFieldValue<string?>(Models.Metadata.Header.DescriptionKey),
|
||||
GameName = disk.GetFieldValue<Machine>(DatItem.MachineKey)!.GetFieldValue<string?>(Models.Metadata.Machine.NameKey),
|
||||
GameDescription = disk.GetFieldValue<Machine>(DatItem.MachineKey)!.GetFieldValue<string?>(Models.Metadata.Machine.DescriptionKey),
|
||||
FileName = Header.GetStringFieldValue(DatHeader.FileNameKey),
|
||||
InternalName = Header.GetStringFieldValue(Models.Metadata.Header.NameKey),
|
||||
Description = Header.GetStringFieldValue(Models.Metadata.Header.DescriptionKey),
|
||||
GameName = disk.GetFieldValue<Machine>(DatItem.MachineKey)!.GetStringFieldValue(Models.Metadata.Machine.NameKey),
|
||||
GameDescription = disk.GetFieldValue<Machine>(DatItem.MachineKey)!.GetStringFieldValue(Models.Metadata.Machine.DescriptionKey),
|
||||
Type = disk.GetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey).AsStringValue<ItemType>(),
|
||||
RomName = string.Empty,
|
||||
DiskName = disk.GetName(),
|
||||
Size = string.Empty,
|
||||
CRC = string.Empty,
|
||||
MD5 = disk.GetFieldValue<string?>(Models.Metadata.Disk.MD5Key),
|
||||
SHA1 = disk.GetFieldValue<string?>(Models.Metadata.Disk.SHA1Key),
|
||||
MD5 = disk.GetStringFieldValue(Models.Metadata.Disk.MD5Key),
|
||||
SHA1 = disk.GetStringFieldValue(Models.Metadata.Disk.SHA1Key),
|
||||
SHA256 = string.Empty,
|
||||
SHA384 = string.Empty,
|
||||
SHA512 = string.Empty,
|
||||
@@ -187,22 +187,22 @@ namespace SabreTools.DatFiles.Formats
|
||||
{
|
||||
var row = new Models.SeparatedValue.Row
|
||||
{
|
||||
FileName = Header.GetFieldValue<string?>(DatHeader.FileNameKey),
|
||||
InternalName = Header.GetFieldValue<string?>(Models.Metadata.Header.NameKey),
|
||||
Description = Header.GetFieldValue<string?>(Models.Metadata.Header.DescriptionKey),
|
||||
GameName = media.GetFieldValue<Machine>(DatItem.MachineKey)!.GetFieldValue<string?>(Models.Metadata.Machine.NameKey),
|
||||
GameDescription = media.GetFieldValue<Machine>(DatItem.MachineKey)!.GetFieldValue<string?>(Models.Metadata.Machine.DescriptionKey),
|
||||
FileName = Header.GetStringFieldValue(DatHeader.FileNameKey),
|
||||
InternalName = Header.GetStringFieldValue(Models.Metadata.Header.NameKey),
|
||||
Description = Header.GetStringFieldValue(Models.Metadata.Header.DescriptionKey),
|
||||
GameName = media.GetFieldValue<Machine>(DatItem.MachineKey)!.GetStringFieldValue(Models.Metadata.Machine.NameKey),
|
||||
GameDescription = media.GetFieldValue<Machine>(DatItem.MachineKey)!.GetStringFieldValue(Models.Metadata.Machine.DescriptionKey),
|
||||
Type = media.GetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey).AsStringValue<ItemType>(),
|
||||
RomName = string.Empty,
|
||||
DiskName = media.GetName(),
|
||||
Size = string.Empty,
|
||||
CRC = string.Empty,
|
||||
MD5 = media.GetFieldValue<string?>(Models.Metadata.Media.MD5Key),
|
||||
SHA1 = media.GetFieldValue<string?>(Models.Metadata.Media.SHA1Key),
|
||||
SHA256 = media.GetFieldValue<string?>(Models.Metadata.Media.SHA256Key),
|
||||
MD5 = media.GetStringFieldValue(Models.Metadata.Media.MD5Key),
|
||||
SHA1 = media.GetStringFieldValue(Models.Metadata.Media.SHA1Key),
|
||||
SHA256 = media.GetStringFieldValue(Models.Metadata.Media.SHA256Key),
|
||||
SHA384 = string.Empty,
|
||||
SHA512 = string.Empty,
|
||||
SpamSum = media.GetFieldValue<string?>(Models.Metadata.Media.SpamSumKey),
|
||||
SpamSum = media.GetStringFieldValue(Models.Metadata.Media.SpamSumKey),
|
||||
Status = string.Empty,
|
||||
};
|
||||
return row;
|
||||
@@ -215,22 +215,22 @@ namespace SabreTools.DatFiles.Formats
|
||||
{
|
||||
var row = new Models.SeparatedValue.Row
|
||||
{
|
||||
FileName = Header.GetFieldValue<string?>(DatHeader.FileNameKey),
|
||||
InternalName = Header.GetFieldValue<string?>(Models.Metadata.Header.NameKey),
|
||||
Description = Header.GetFieldValue<string?>(Models.Metadata.Header.DescriptionKey),
|
||||
GameName = rom.GetFieldValue<Machine>(DatItem.MachineKey)!.GetFieldValue<string?>(Models.Metadata.Machine.NameKey),
|
||||
GameDescription = rom.GetFieldValue<Machine>(DatItem.MachineKey)!.GetFieldValue<string?>(Models.Metadata.Machine.DescriptionKey),
|
||||
FileName = Header.GetStringFieldValue(DatHeader.FileNameKey),
|
||||
InternalName = Header.GetStringFieldValue(Models.Metadata.Header.NameKey),
|
||||
Description = Header.GetStringFieldValue(Models.Metadata.Header.DescriptionKey),
|
||||
GameName = rom.GetFieldValue<Machine>(DatItem.MachineKey)!.GetStringFieldValue(Models.Metadata.Machine.NameKey),
|
||||
GameDescription = rom.GetFieldValue<Machine>(DatItem.MachineKey)!.GetStringFieldValue(Models.Metadata.Machine.DescriptionKey),
|
||||
Type = rom.GetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey).AsStringValue<ItemType>(),
|
||||
RomName = rom.GetName(),
|
||||
DiskName = string.Empty,
|
||||
Size = rom.GetFieldValue<string?>(Models.Metadata.Rom.SizeKey),
|
||||
CRC = rom.GetFieldValue<string?>(Models.Metadata.Rom.CRCKey),
|
||||
MD5 = rom.GetFieldValue<string?>(Models.Metadata.Rom.MD5Key),
|
||||
SHA1 = rom.GetFieldValue<string?>(Models.Metadata.Rom.SHA1Key),
|
||||
SHA256 = rom.GetFieldValue<string?>(Models.Metadata.Rom.SHA256Key),
|
||||
SHA384 = rom.GetFieldValue<string?>(Models.Metadata.Rom.SHA384Key),
|
||||
SHA512 = rom.GetFieldValue<string?>(Models.Metadata.Rom.SHA512Key),
|
||||
SpamSum = rom.GetFieldValue<string?>(Models.Metadata.Rom.SpamSumKey),
|
||||
Size = rom.GetInt64FieldValue(Models.Metadata.Rom.SizeKey).ToString(),
|
||||
CRC = rom.GetStringFieldValue(Models.Metadata.Rom.CRCKey),
|
||||
MD5 = rom.GetStringFieldValue(Models.Metadata.Rom.MD5Key),
|
||||
SHA1 = rom.GetStringFieldValue(Models.Metadata.Rom.SHA1Key),
|
||||
SHA256 = rom.GetStringFieldValue(Models.Metadata.Rom.SHA256Key),
|
||||
SHA384 = rom.GetStringFieldValue(Models.Metadata.Rom.SHA384Key),
|
||||
SHA512 = rom.GetStringFieldValue(Models.Metadata.Rom.SHA512Key),
|
||||
SpamSum = rom.GetStringFieldValue(Models.Metadata.Rom.SpamSumKey),
|
||||
Status = rom.GetFieldValue<ItemStatus>(Models.Metadata.Rom.StatusKey).AsStringValue<ItemStatus>(useSecond: false),
|
||||
};
|
||||
return row;
|
||||
|
||||
@@ -43,20 +43,20 @@ namespace SabreTools.DatFiles.Formats
|
||||
{
|
||||
if (string.IsNullOrEmpty(dipSwitch.GetFieldValue<Part?>(DipSwitch.PartKey)!.GetName()))
|
||||
missingFields.Add(Models.Metadata.Part.NameKey);
|
||||
if (string.IsNullOrEmpty(dipSwitch.GetFieldValue<Part?>(DipSwitch.PartKey)!.GetFieldValue<string?>(Models.Metadata.Part.InterfaceKey)))
|
||||
if (string.IsNullOrEmpty(dipSwitch.GetFieldValue<Part?>(DipSwitch.PartKey)!.GetStringFieldValue(Models.Metadata.Part.InterfaceKey)))
|
||||
missingFields.Add(Models.Metadata.Part.InterfaceKey);
|
||||
}
|
||||
if (string.IsNullOrEmpty(dipSwitch.GetName()))
|
||||
missingFields.Add(Models.Metadata.DipSwitch.NameKey);
|
||||
if (string.IsNullOrEmpty(dipSwitch.GetFieldValue<string?>(Models.Metadata.DipSwitch.TagKey)))
|
||||
if (string.IsNullOrEmpty(dipSwitch.GetStringFieldValue(Models.Metadata.DipSwitch.TagKey)))
|
||||
missingFields.Add(Models.Metadata.DipSwitch.TagKey);
|
||||
if (string.IsNullOrEmpty(dipSwitch.GetFieldValue<string?>(Models.Metadata.DipSwitch.MaskKey)))
|
||||
if (string.IsNullOrEmpty(dipSwitch.GetStringFieldValue(Models.Metadata.DipSwitch.MaskKey)))
|
||||
missingFields.Add(Models.Metadata.DipSwitch.MaskKey);
|
||||
if (dipSwitch.ValuesSpecified)
|
||||
{
|
||||
if (dipSwitch.GetFieldValue<DipValue[]?>(Models.Metadata.DipSwitch.DipValueKey)!.Any(dv => string.IsNullOrEmpty(dv.GetName())))
|
||||
missingFields.Add(Models.Metadata.DipValue.NameKey);
|
||||
if (dipSwitch.GetFieldValue<DipValue[]?>(Models.Metadata.DipSwitch.DipValueKey)!.Any(dv => string.IsNullOrEmpty(dv.GetFieldValue<string?>(Models.Metadata.DipValue.ValueKey))))
|
||||
if (dipSwitch.GetFieldValue<DipValue[]?>(Models.Metadata.DipSwitch.DipValueKey)!.Any(dv => string.IsNullOrEmpty(dv.GetStringFieldValue(Models.Metadata.DipValue.ValueKey))))
|
||||
missingFields.Add(Models.Metadata.DipValue.ValueKey);
|
||||
}
|
||||
|
||||
@@ -72,7 +72,7 @@ namespace SabreTools.DatFiles.Formats
|
||||
{
|
||||
if (string.IsNullOrEmpty(disk.GetFieldValue<Part?>(Disk.PartKey)!.GetName()))
|
||||
missingFields.Add(Models.Metadata.Part.NameKey);
|
||||
if (string.IsNullOrEmpty(disk.GetFieldValue<Part?>(Disk.PartKey)!.GetFieldValue<string?>(Models.Metadata.Part.InterfaceKey)))
|
||||
if (string.IsNullOrEmpty(disk.GetFieldValue<Part?>(Disk.PartKey)!.GetStringFieldValue(Models.Metadata.Part.InterfaceKey)))
|
||||
missingFields.Add(Models.Metadata.Part.InterfaceKey);
|
||||
}
|
||||
if (!disk.DiskAreaSpecified)
|
||||
@@ -103,7 +103,7 @@ namespace SabreTools.DatFiles.Formats
|
||||
{
|
||||
if (string.IsNullOrEmpty(rom.GetFieldValue<Part?>(Rom.PartKey)!.GetName()))
|
||||
missingFields.Add(Models.Metadata.Part.NameKey);
|
||||
if (string.IsNullOrEmpty(rom.GetFieldValue<Part?>(Rom.PartKey)!.GetFieldValue<string?>(Models.Metadata.Part.InterfaceKey)))
|
||||
if (string.IsNullOrEmpty(rom.GetFieldValue<Part?>(Rom.PartKey)!.GetStringFieldValue(Models.Metadata.Part.InterfaceKey)))
|
||||
missingFields.Add(Models.Metadata.Part.InterfaceKey);
|
||||
}
|
||||
if (!rom.DataAreaSpecified)
|
||||
@@ -115,7 +115,7 @@ namespace SabreTools.DatFiles.Formats
|
||||
{
|
||||
if (string.IsNullOrEmpty(rom.GetFieldValue<DataArea?>(Rom.DataAreaKey)!.GetName()))
|
||||
missingFields.Add(Models.Metadata.DataArea.NameKey);
|
||||
if (rom.GetFieldValue<DataArea?>(Rom.DataAreaKey)!.GetFieldValue<long?>(Models.Metadata.DataArea.SizeKey) == null)
|
||||
if (rom.GetFieldValue<DataArea?>(Rom.DataAreaKey)!.GetInt64FieldValue(Models.Metadata.DataArea.SizeKey) == null)
|
||||
missingFields.Add(Models.Metadata.DataArea.SizeKey);
|
||||
}
|
||||
break;
|
||||
@@ -166,9 +166,9 @@ namespace SabreTools.DatFiles.Formats
|
||||
{
|
||||
var softwarelist = new Models.SoftwareList.SoftwareList
|
||||
{
|
||||
Name = Header.GetFieldValue<string?>(Models.Metadata.Header.NameKey),
|
||||
Description = Header.GetFieldValue<string?>(Models.Metadata.Header.DescriptionKey),
|
||||
Notes = Header.GetFieldValue<string?>(Models.Metadata.Header.CommentKey),
|
||||
Name = Header.GetStringFieldValue(Models.Metadata.Header.NameKey),
|
||||
Description = Header.GetStringFieldValue(Models.Metadata.Header.DescriptionKey),
|
||||
Notes = Header.GetStringFieldValue(Models.Metadata.Header.CommentKey),
|
||||
Software = CreateSoftware(ignoreblanks),
|
||||
};
|
||||
|
||||
@@ -259,13 +259,13 @@ namespace SabreTools.DatFiles.Formats
|
||||
{
|
||||
var software = new Models.SoftwareList.Software
|
||||
{
|
||||
Name = machine.GetFieldValue<string?>(Models.Metadata.Machine.NameKey),
|
||||
CloneOf = machine.GetFieldValue<string?>(Models.Metadata.Machine.CloneOfKey),
|
||||
Name = machine.GetStringFieldValue(Models.Metadata.Machine.NameKey),
|
||||
CloneOf = machine.GetStringFieldValue(Models.Metadata.Machine.CloneOfKey),
|
||||
Supported = machine.GetFieldValue<Supported>(Models.Metadata.Machine.SupportedKey).AsStringValue<Supported>(useSecond: true),
|
||||
Description = machine.GetFieldValue<string?>(Models.Metadata.Machine.DescriptionKey),
|
||||
Year = machine.GetFieldValue<string?>(Models.Metadata.Machine.YearKey),
|
||||
Publisher = machine.GetFieldValue<string?>(Models.Metadata.Machine.PublisherKey),
|
||||
Notes = machine.GetFieldValue<string?>(Models.Metadata.Machine.CommentKey),
|
||||
Description = machine.GetStringFieldValue(Models.Metadata.Machine.DescriptionKey),
|
||||
Year = machine.GetStringFieldValue(Models.Metadata.Machine.YearKey),
|
||||
Publisher = machine.GetStringFieldValue(Models.Metadata.Machine.PublisherKey),
|
||||
Notes = machine.GetStringFieldValue(Models.Metadata.Machine.CommentKey),
|
||||
};
|
||||
|
||||
return software;
|
||||
@@ -279,7 +279,7 @@ namespace SabreTools.DatFiles.Formats
|
||||
var info = new Models.SoftwareList.Info
|
||||
{
|
||||
Name = item.GetName(),
|
||||
Value = item.GetFieldValue<string?>(Models.Metadata.Info.ValueKey),
|
||||
Value = item.GetStringFieldValue(Models.Metadata.Info.ValueKey),
|
||||
};
|
||||
return info;
|
||||
}
|
||||
@@ -292,7 +292,7 @@ namespace SabreTools.DatFiles.Formats
|
||||
var sharedfeat = new Models.SoftwareList.SharedFeat
|
||||
{
|
||||
Name = item.GetName(),
|
||||
Value = item.GetFieldValue<string?>(Models.Metadata.SharedFeat.ValueKey),
|
||||
Value = item.GetStringFieldValue(Models.Metadata.SharedFeat.ValueKey),
|
||||
};
|
||||
return sharedfeat;
|
||||
}
|
||||
@@ -305,7 +305,7 @@ namespace SabreTools.DatFiles.Formats
|
||||
var part = new Models.SoftwareList.Part
|
||||
{
|
||||
Name = item.GetFieldValue<Part?>(Rom.PartKey)?.GetName(),
|
||||
Interface = item.GetFieldValue<Part?>(Rom.PartKey)?.GetFieldValue<string?>(Models.Metadata.Part.InterfaceKey),
|
||||
Interface = item.GetFieldValue<Part?>(Rom.PartKey)?.GetStringFieldValue(Models.Metadata.Part.InterfaceKey),
|
||||
Feature = CreateFeatures(item.GetFieldValue<Part?>(Rom.PartKey)?.GetFieldValue<PartFeature[]?>(Models.Metadata.Part.FeatureKey)),
|
||||
DataArea = CreateDataAreas(item),
|
||||
DiskArea = null,
|
||||
@@ -322,7 +322,7 @@ namespace SabreTools.DatFiles.Formats
|
||||
var part = new Models.SoftwareList.Part
|
||||
{
|
||||
Name = item.GetFieldValue<Part?>(Disk.PartKey)?.GetName(),
|
||||
Interface = item.GetFieldValue<Part?>(Disk.PartKey)?.GetFieldValue<string?>(Models.Metadata.Part.InterfaceKey),
|
||||
Interface = item.GetFieldValue<Part?>(Disk.PartKey)?.GetStringFieldValue(Models.Metadata.Part.InterfaceKey),
|
||||
Feature = CreateFeatures(item.GetFieldValue<Part?>(Disk.PartKey)?.GetFieldValue<PartFeature[]?>(Models.Metadata.Part.FeatureKey)),
|
||||
DataArea = null,
|
||||
DiskArea = CreateDiskAreas(item),
|
||||
@@ -339,7 +339,7 @@ namespace SabreTools.DatFiles.Formats
|
||||
var part = new Models.SoftwareList.Part
|
||||
{
|
||||
Name = item.GetFieldValue<Part?>(DipSwitch.PartKey)?.GetName(),
|
||||
Interface = item.GetFieldValue<Part?>(DipSwitch.PartKey)?.GetFieldValue<string?>(Models.Metadata.Part.InterfaceKey),
|
||||
Interface = item.GetFieldValue<Part?>(DipSwitch.PartKey)?.GetStringFieldValue(Models.Metadata.Part.InterfaceKey),
|
||||
Feature = CreateFeatures(item.GetFieldValue<Part?>(DipSwitch.PartKey)?.GetFieldValue<PartFeature[]?>(Models.Metadata.Part.FeatureKey)),
|
||||
DataArea = null,
|
||||
DiskArea = null,
|
||||
@@ -363,7 +363,7 @@ namespace SabreTools.DatFiles.Formats
|
||||
var feature = new Models.SoftwareList.Feature
|
||||
{
|
||||
Name = item.GetName(),
|
||||
Value = item.GetFieldValue<string?>(Models.Metadata.Feature.ValueKey),
|
||||
Value = item.GetStringFieldValue(Models.Metadata.Feature.ValueKey),
|
||||
};
|
||||
features.Add(feature);
|
||||
}
|
||||
@@ -379,8 +379,8 @@ namespace SabreTools.DatFiles.Formats
|
||||
var dataArea = new Models.SoftwareList.DataArea
|
||||
{
|
||||
Name = item.GetFieldValue<DataArea?>(Rom.DataAreaKey)?.GetName(),
|
||||
Size = item.GetFieldValue<DataArea?>(Rom.DataAreaKey)?.GetFieldValue<long?>(Models.Metadata.DataArea.SizeKey)?.ToString(),
|
||||
Width = item.GetFieldValue<DataArea?>(Rom.DataAreaKey)?.GetFieldValue<long?>(Models.Metadata.DataArea.WidthKey)?.ToString(),
|
||||
Size = item.GetFieldValue<DataArea?>(Rom.DataAreaKey)?.GetInt64FieldValue(Models.Metadata.DataArea.SizeKey)?.ToString(),
|
||||
Width = item.GetFieldValue<DataArea?>(Rom.DataAreaKey)?.GetInt64FieldValue(Models.Metadata.DataArea.WidthKey)?.ToString(),
|
||||
Endianness = item.GetFieldValue<DataArea?>(Rom.DataAreaKey)?.GetFieldValue<Endianness>(Models.Metadata.DataArea.EndiannessKey).AsStringValue<Endianness>(),
|
||||
Rom = CreateRom(item),
|
||||
};
|
||||
@@ -395,12 +395,12 @@ namespace SabreTools.DatFiles.Formats
|
||||
var rom = new Models.SoftwareList.Rom
|
||||
{
|
||||
Name = item.GetName(),
|
||||
Size = item.GetFieldValue<string?>(Models.Metadata.Rom.SizeKey),
|
||||
Size = item.GetStringFieldValue(Models.Metadata.Rom.SizeKey),
|
||||
Length = null,
|
||||
CRC = item.GetFieldValue<string?>(Models.Metadata.Rom.CRCKey),
|
||||
SHA1 = item.GetFieldValue<string?>(Models.Metadata.Rom.SHA1Key),
|
||||
Offset = item.GetFieldValue<string?>(Models.Metadata.Rom.OffsetKey),
|
||||
Value = item.GetFieldValue<string?>(Models.Metadata.Rom.ValueKey),
|
||||
CRC = item.GetStringFieldValue(Models.Metadata.Rom.CRCKey),
|
||||
SHA1 = item.GetStringFieldValue(Models.Metadata.Rom.SHA1Key),
|
||||
Offset = item.GetStringFieldValue(Models.Metadata.Rom.OffsetKey),
|
||||
Value = item.GetStringFieldValue(Models.Metadata.Rom.ValueKey),
|
||||
Status = item.GetFieldValue<ItemStatus>(Models.Metadata.Rom.StatusKey).AsStringValue<ItemStatus>(useSecond: false),
|
||||
LoadFlag = item.GetFieldValue<LoadFlag>(Models.Metadata.Rom.LoadFlagKey).AsStringValue<LoadFlag>(),
|
||||
};
|
||||
@@ -427,10 +427,10 @@ namespace SabreTools.DatFiles.Formats
|
||||
var disk = new Models.SoftwareList.Disk
|
||||
{
|
||||
Name = item.GetName(),
|
||||
MD5 = item.GetFieldValue<string?>(Models.Metadata.Disk.MD5Key),
|
||||
SHA1 = item.GetFieldValue<string?>(Models.Metadata.Disk.SHA1Key),
|
||||
MD5 = item.GetStringFieldValue(Models.Metadata.Disk.MD5Key),
|
||||
SHA1 = item.GetStringFieldValue(Models.Metadata.Disk.SHA1Key),
|
||||
Status = item.GetFieldValue<ItemStatus>(Models.Metadata.Disk.StatusKey).AsStringValue<ItemStatus>(useSecond: false),
|
||||
Writeable = item.GetFieldValue<bool?>(Models.Metadata.Disk.WritableKey)?.ToString(),
|
||||
Writeable = item.GetBoolFieldValue(Models.Metadata.Disk.WritableKey)?.ToString(),
|
||||
};
|
||||
return [disk];
|
||||
}
|
||||
@@ -446,8 +446,8 @@ namespace SabreTools.DatFiles.Formats
|
||||
var dipValue = new Models.SoftwareList.DipValue
|
||||
{
|
||||
Name = setting.GetName(),
|
||||
Value = setting.GetFieldValue<string?>(Models.Metadata.DipValue.ValueKey),
|
||||
Default = setting.GetFieldValue<bool?>(Models.Metadata.DipValue.DefaultKey).FromYesNo(),
|
||||
Value = setting.GetStringFieldValue(Models.Metadata.DipValue.ValueKey),
|
||||
Default = setting.GetBoolFieldValue(Models.Metadata.DipValue.DefaultKey).FromYesNo(),
|
||||
};
|
||||
|
||||
dipValues.Add(dipValue);
|
||||
|
||||
Reference in New Issue
Block a user