using System.Collections.Generic; using SabreTools.Hashing; using SabreTools.Metadata.DatItems; using SabreTools.Metadata.DatItems.Formats; namespace SabreTools.Metadata.DatFiles.Formats { /// /// Represents an MD2 hashfile /// public sealed class Md2File : Hashfile { /// public override Data.Models.Metadata.ItemType[] SupportedTypes => [ Data.Models.Metadata.ItemType.Rom, ]; /// /// Constructor designed for casting a base DatFile /// /// Parent DatFile to copy from public Md2File(DatFile? datFile) : base(datFile) { _hash = HashType.MD2; Header.Write(DatHeader.DatFormatKey, DatFormat.RedumpMD2); } /// protected internal override List? GetMissingRequiredFields(DatItem datItem) { List missingFields = []; // Check item name if (string.IsNullOrEmpty(datItem.GetName())) missingFields.Add(Data.Models.Metadata.Rom.NameKey); switch (datItem) { case Rom rom: if (string.IsNullOrEmpty(rom.ReadString(Data.Models.Metadata.Rom.MD2Key))) missingFields.Add(Data.Models.Metadata.Rom.MD2Key); break; default: // Item type is not supported break; } return missingFields; } } }