mirror of
https://github.com/claunia/SabreTools.git
synced 2025-12-16 19:14:27 +00:00
File types don't care about As flags
This commit is contained in:
@@ -128,27 +128,30 @@ namespace SabreTools.DatItems
|
||||
/// Create a specific type of DatItem to be used based on a BaseFile
|
||||
/// </summary>
|
||||
/// <param name="baseFile">BaseFile containing information to be created</param>
|
||||
/// <param name="asFiles">TreatAsFiles representing special format scanning</param>
|
||||
/// <returns>DatItem of the specific internal type that corresponds to the inputs</returns>
|
||||
public static DatItem? Create(BaseFile? baseFile)
|
||||
public static DatItem? Create(BaseFile? baseFile, TreatAsFile asFiles = 0x00)
|
||||
{
|
||||
return baseFile switch
|
||||
{
|
||||
// Disk
|
||||
FileTypes.CHD.CHDFile => new Disk(baseFile),
|
||||
#if NET20 || NET35
|
||||
FileTypes.CHD.CHDFile when (asFiles & TreatAsFile.CHD) == 0 => new Disk(baseFile),
|
||||
#else
|
||||
FileTypes.CHD.CHDFile when !asFiles.HasFlag(TreatAsFile.CHD) => new Disk(baseFile),
|
||||
#endif
|
||||
|
||||
// Media
|
||||
FileTypes.Aaru.AaruFormat => new Media(baseFile),
|
||||
#if NET20 || NET35
|
||||
FileTypes.Aaru.AaruFormat when (asFiles & TreatAsFile.AaruFormat) == 0 => new Media(baseFile),
|
||||
#else
|
||||
FileTypes.Aaru.AaruFormat when !asFiles.HasFlag(TreatAsFile.AaruFormat) => new Media(baseFile),
|
||||
#endif
|
||||
|
||||
// Rom
|
||||
FileTypes.Archives.GZipArchive => new Rom(baseFile),
|
||||
FileTypes.Archives.RarArchive => new Rom(baseFile),
|
||||
FileTypes.Archives.SevenZipArchive => new Rom(baseFile),
|
||||
FileTypes.Archives.TapeArchive => new Rom(baseFile),
|
||||
FileTypes.Archives.XZArchive => new Rom(baseFile),
|
||||
FileTypes.Archives.ZipArchive => new Rom(baseFile),
|
||||
FileTypes.BaseArchive => new Rom(baseFile),
|
||||
FileTypes.Folder => null, // Folders cannot be a DatItem
|
||||
FileTypes.BaseFile => new Rom(baseFile),
|
||||
BaseArchive => new Rom(baseFile),
|
||||
Folder => null, // Folders cannot be a DatItem
|
||||
BaseFile => new Rom(baseFile),
|
||||
|
||||
// Miscellaneous
|
||||
_ => null,
|
||||
|
||||
Reference in New Issue
Block a user