From affb300733b641cad8bb4a2bcbeb51e26e606b6f Mon Sep 17 00:00:00 2001 From: Matt Nadareski Date: Sun, 10 Mar 2024 00:24:16 -0500 Subject: [PATCH] Convert AttractMode --- .../Formats/ArchiveDotOrg.Reader.cs | 2 +- .../Formats/AttractMode.Reader.cs | 81 +------------------ 2 files changed, 4 insertions(+), 79 deletions(-) diff --git a/SabreTools.DatFiles/Formats/ArchiveDotOrg.Reader.cs b/SabreTools.DatFiles/Formats/ArchiveDotOrg.Reader.cs index 0ca5b5c2..91a87c80 100644 --- a/SabreTools.DatFiles/Formats/ArchiveDotOrg.Reader.cs +++ b/SabreTools.DatFiles/Formats/ArchiveDotOrg.Reader.cs @@ -16,7 +16,7 @@ namespace SabreTools.DatFiles.Formats var files = new Serialization.Files.ArchiveDotOrg().Deserialize(filename); var metadata = new Serialization.CrossModel.ArchiveDotOrg().Serialize(files); - // Convert the files data to the internal format + // Convert to the internal format ConvertMetadata(metadata, filename, indexId, statsOnly); } catch (Exception ex) when (!throwOnError) diff --git a/SabreTools.DatFiles/Formats/AttractMode.Reader.cs b/SabreTools.DatFiles/Formats/AttractMode.Reader.cs index 7f7444bc..a2f8b0a8 100644 --- a/SabreTools.DatFiles/Formats/AttractMode.Reader.cs +++ b/SabreTools.DatFiles/Formats/AttractMode.Reader.cs @@ -1,9 +1,4 @@ using System; -using System.Linq; -using SabreTools.Core; -using SabreTools.DatItems; -using SabreTools.DatItems.Formats; -using SabreTools.Hashing; namespace SabreTools.DatFiles.Formats { @@ -19,9 +14,10 @@ namespace SabreTools.DatFiles.Formats { // Deserialize the input file var metadataFile = new Serialization.Files.AttractMode().Deserialize(filename); + var metadata = new Serialization.CrossModel.AttractMode().Serialize(metadataFile); - // Convert the row data to the internal format - ConvertRows(metadataFile?.Row, filename, indexId, statsOnly); + // Convert to the internal format + ConvertMetadata(metadata, filename, indexId, statsOnly); } catch (Exception ex) when (!throwOnError) { @@ -29,76 +25,5 @@ namespace SabreTools.DatFiles.Formats logger.Error(ex, message); } } - - #region Converters - - /// - /// Convert rows information - /// - /// Array of deserialized models to convert - /// Name of the file to be parsed - /// Index ID for the DAT - /// True to only add item statistics while parsing, false otherwise - private void ConvertRows(Models.AttractMode.Row?[]? rows, string filename, int indexId, bool statsOnly) - { - // If the rows array is missing, we can't do anything - if (rows == null || !rows.Any()) - return; - - // Loop through the rows and add - foreach (var row in rows) - { - ConvertRow(row, filename, indexId, statsOnly); - } - } - - /// - /// Convert rows information - /// - /// Deserialized model to convert - /// Name of the file to be parsed - /// Index ID for the DAT - /// True to only add item statistics while parsing, false otherwise - private void ConvertRow(Models.AttractMode.Row? row, string filename, int indexId, bool statsOnly) - { - // If the row is missing, we can't do anything - if (row == null) - return; - - var machine = new Machine(); - machine.SetFieldValue(Models.Metadata.Machine.ButtonsKey, row.Buttons); - machine.SetFieldValue(Models.Metadata.Machine.CategoryKey, row.Category); - machine.SetFieldValue(Models.Metadata.Machine.CloneOfKey, row.CloneOf); - machine.SetFieldValue(Models.Metadata.Machine.CommentKey, row.Extra); - machine.SetFieldValue(Models.Metadata.Machine.ControlKey, row.Control); - machine.SetFieldValue(Models.Metadata.Machine.DescriptionKey, row.Title); - machine.SetFieldValue(Models.Metadata.Machine.DisplayCountKey, row.DisplayCount); - machine.SetFieldValue(Models.Metadata.Machine.DisplayTypeKey, row.DisplayType); - machine.SetFieldValue(Models.Metadata.Machine.ManufacturerKey, row.Manufacturer); - machine.SetFieldValue(Models.Metadata.Machine.NameKey, row.Name); - machine.SetFieldValue(Models.Metadata.Machine.PlayersKey, row.Players); - machine.SetFieldValue(Models.Metadata.Machine.RotationKey, row.Rotation); - machine.SetFieldValue(Models.Metadata.Machine.StatusKey, row.Status); - machine.SetFieldValue(Models.Metadata.Machine.YearKey, row.Year); - - var rom = new Rom() - { - Source = new Source { Index = indexId, Name = filename }, - }; - rom.SetName("-"); - rom.SetFieldValue(Models.Metadata.Rom.AltRomnameKey, row.AltRomname); - rom.SetFieldValue(Models.Metadata.Rom.AltTitleKey, row.AltTitle); - rom.SetFieldValue(Models.Metadata.Rom.CRCKey, Constants.CRCZero); - rom.SetFieldValue(Models.Metadata.Rom.MD5Key, Constants.MD5Zero); - rom.SetFieldValue(Models.Metadata.Rom.SHA1Key, Constants.SHA1Zero); - rom.SetFieldValue(Models.Metadata.Rom.SizeKey, Constants.SizeZero); - rom.SetFieldValue(Models.Metadata.Rom.StatusKey, ItemStatus.None); - - // Now process and add the rom - rom.CopyMachineInformation(machine); - ParseAddHelper(rom, statsOnly); - } - - #endregion } }