Lazily make OfflineList-specific header items properties

This commit is contained in:
Matt Nadareski
2026-04-04 18:24:58 -04:00
parent ca2a289a3f
commit ebf67d39cf
11 changed files with 135 additions and 237 deletions

View File

@@ -37,40 +37,35 @@ namespace SabreTools.Serialization.CrossModel
};
if (item.Name is not null
|| item.ContainsKey(Data.Models.Metadata.Header.ImFolderKey)
|| item.ImFolder is not null
|| item.DatVersion is not null
|| item.System is not null
|| item.ScreenshotsHeight is not null
|| item.ScreenshotsWidth is not null
|| item.ContainsKey(Data.Models.Metadata.Header.InfosKey)
|| item.ContainsKey(Data.Models.Metadata.Header.CanOpenKey)
|| item.ContainsKey(Data.Models.Metadata.Header.NewDatKey)
|| item.ContainsKey(Data.Models.Metadata.Header.SearchKey)
|| item.Infos is not null
|| item.CanOpen is not null
|| item.NewDat is not null
|| item.Search is not null
|| item.RomTitle is not null)
{
dat.Configuration = new Configuration
{
DatName = item.Name,
ImFolder = item.ReadString(Data.Models.Metadata.Header.ImFolderKey),
ImFolder = item.ImFolder,
DatVersion = item.DatVersion,
System = item.System,
ScreenshotsWidth = item.ScreenshotsHeight,
ScreenshotsHeight = item.ScreenshotsWidth,
Infos = item.Read<Infos>(Data.Models.Metadata.Header.InfosKey),
CanOpen = item.Read<CanOpen>(Data.Models.Metadata.Header.CanOpenKey),
NewDat = item.Read<NewDat>(Data.Models.Metadata.Header.NewDatKey),
Search = item.Read<Search>(Data.Models.Metadata.Header.SearchKey),
Infos = item.Infos,
CanOpen = item.CanOpen,
NewDat = item.NewDat,
Search = item.Search,
RomTitle = item.RomTitle,
};
}
if (item.ContainsKey(Data.Models.Metadata.Header.ImagesKey))
{
dat.GUI = new GUI
{
Images = item.Read<Images>(Data.Models.Metadata.Header.ImagesKey),
};
}
if (item.Images is not null)
dat.GUI = new GUI { Images = item.Images };
return dat;
}

View File

@@ -38,22 +38,20 @@ namespace SabreTools.Serialization.CrossModel
if (item.Configuration is not null)
{
header.Name = item.Configuration.DatName;
header[Data.Models.Metadata.Header.ImFolderKey] = item.Configuration.ImFolder;
header.ImFolder = item.Configuration.ImFolder;
header.DatVersion = item.Configuration.DatVersion;
header.System = item.Configuration.System;
header.ScreenshotsHeight = item.Configuration.ScreenshotsWidth;
header.ScreenshotsWidth = item.Configuration.ScreenshotsHeight;
header[Data.Models.Metadata.Header.InfosKey] = item.Configuration.Infos;
header[Data.Models.Metadata.Header.CanOpenKey] = item.Configuration.CanOpen;
header[Data.Models.Metadata.Header.NewDatKey] = item.Configuration.NewDat;
header[Data.Models.Metadata.Header.SearchKey] = item.Configuration.Search;
header.Infos = item.Configuration.Infos;
header.CanOpen = item.Configuration.CanOpen;
header.NewDat = item.Configuration.NewDat;
header.Search = item.Configuration.Search;
header.RomTitle = item.Configuration.RomTitle;
}
if (item.GUI is not null)
{
header[Data.Models.Metadata.Header.ImagesKey] = item.GUI.Images;
}
header.Images = item.GUI.Images;
return header;
}