diff --git a/SabreTools.DatFiles/Formats/RomCenter.Reader.cs b/SabreTools.DatFiles/Formats/RomCenter.Reader.cs index ce8ce44a..9c39d278 100644 --- a/SabreTools.DatFiles/Formats/RomCenter.Reader.cs +++ b/SabreTools.DatFiles/Formats/RomCenter.Reader.cs @@ -1,9 +1,5 @@ using System; -using System.Linq; using SabreTools.Core; -using SabreTools.Core.Tools; -using SabreTools.DatItems; -using SabreTools.DatItems.Formats; namespace SabreTools.DatFiles.Formats { @@ -19,6 +15,7 @@ namespace SabreTools.DatFiles.Formats { // Deserialize the input file var metadataFile = new Serialization.Files.RomCenter().Deserialize(filename); + var metadata = new Serialization.CrossModel.RomCenter().Serialize(metadataFile); // Convert the credits data to the internal format ConvertCredits(metadataFile?.Credits); @@ -29,8 +26,8 @@ namespace SabreTools.DatFiles.Formats // Convert the emulator data to the internal format ConvertEmulator(metadataFile?.Emulator); - // Convert the games data to the internal format - ConvertGames(metadataFile?.Games, filename, indexId, statsOnly); + // Convert to the internal format + ConvertMetadata(metadata, filename, indexId, statsOnly); } catch (Exception ex) when (!throwOnError) { @@ -92,44 +89,6 @@ namespace SabreTools.DatFiles.Formats Header.Description ??= emulator.Version; } - /// - /// Convert games 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 ConvertGames(Models.RomCenter.Games? games, string filename, int indexId, bool statsOnly) - { - // If the games is missing, we can't do anything - if (games?.Rom == null || !games.Rom.Any()) - return; - - foreach (var rom in games.Rom) - { - var machine = new Machine(); - machine.SetFieldValue(Models.Metadata.Machine.CloneOfKey, rom.ParentName); - //machine.SetFieldValue(Models.Metadata.Machine.CloneOfDescriptionKey, rom.ParentDescription); // TODO: Add to internal model or find mapping - machine.SetFieldValue(Models.Metadata.Machine.DescriptionKey, rom.GameDescription); - machine.SetFieldValue(Models.Metadata.Machine.NameKey, rom.GameName); - machine.SetFieldValue(Models.Metadata.Machine.RomOfKey, rom.RomOf); - - var item = new Rom - { - Source = new Source { Index = indexId, Name = filename }, - }; - item.SetName(rom.RomName); - item.SetFieldValue(Models.Metadata.Rom.CRCKey, rom.RomCRC); - item.SetFieldValue(Models.Metadata.Rom.MergeKey, rom.MergeName); - item.SetFieldValue(Models.Metadata.Rom.SizeKey, NumberHelper.ConvertToInt64(rom.RomSize)); - item.SetFieldValue(Models.Metadata.Rom.StatusKey, ItemStatus.None); - - // Now process and add the item - item.CopyMachineInformation(machine); - ParseAddHelper(item, statsOnly); - } - } - #endregion } }