diff --git a/SabreTools.Models/Internal/Machine.cs b/SabreTools.Models/Internal/Machine.cs index 8de9eb7e..6d619c90 100644 --- a/SabreTools.Models/Internal/Machine.cs +++ b/SabreTools.Models/Internal/Machine.cs @@ -3,7 +3,7 @@ using System.Collections.Generic; namespace SabreTools.Models.Internal { /// - /// Format-agnostic representation of item data + /// Format-agnostic representation of game, machine, and set data /// public class Machine : Dictionary { diff --git a/SabreTools.Serialization/Internal.EverdriveSMDB.cs b/SabreTools.Serialization/Internal.EverdriveSMDB.cs index da274464..ec03d2ad 100644 --- a/SabreTools.Serialization/Internal.EverdriveSMDB.cs +++ b/SabreTools.Serialization/Internal.EverdriveSMDB.cs @@ -1,3 +1,5 @@ +using System.Collections.Generic; + namespace SabreTools.Serialization { /// @@ -7,6 +9,18 @@ namespace SabreTools.Serialization { #region Serialize + /// + /// Convert from to + /// + public static Models.Internal.Machine ConvertMachineFromEverdriveSMDB(Models.EverdriveSMDB.Row item) + { + var machine = new Models.Internal.Machine + { + [Models.Internal.Machine.RomKey] = ConvertFromEverdriveSMDB(item), + }; + return machine; + } + /// /// Convert from to /// @@ -28,6 +42,22 @@ namespace SabreTools.Serialization #region Deserialize + /// + /// Convert from to an array of + /// + public static Models.EverdriveSMDB.Row[]? ConvertMachineToEverdriveSMDB(Models.Internal.Machine item) + { + if (!item.ContainsKey(Models.Internal.Machine.RomKey) || item[Models.Internal.Machine.RomKey] is not Models.Internal.Rom[] roms) + return null; + + var fileItems = new List(); + foreach (var rom in roms) + { + fileItems.Add(ConvertToEverdriveSMDB(rom)); + } + return fileItems.ToArray(); + } + /// /// Convert from to ///