mirror of
https://github.com/claunia/SabreTools.git
synced 2025-12-16 19:14:27 +00:00
Fix consistency issues in converting to metadata
This commit is contained in:
@@ -163,15 +163,6 @@ namespace SabreTools.DatFiles
|
||||
|
||||
#endregion
|
||||
|
||||
#region Accessors
|
||||
|
||||
/// <summary>
|
||||
/// Get a clone of the current internal model
|
||||
/// </summary>
|
||||
public Models.Metadata.Header GetInternalClone() => (_internal.Clone() as Models.Metadata.Header)!;
|
||||
|
||||
#endregion
|
||||
|
||||
#region Cloning Methods
|
||||
|
||||
/// <summary>
|
||||
@@ -257,6 +248,36 @@ namespace SabreTools.DatFiles
|
||||
return header;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Get a clone of the current internal model
|
||||
/// </summary>
|
||||
public Models.Metadata.Header GetInternalClone()
|
||||
{
|
||||
var header = (_internal.Clone() as Models.Metadata.Header)!;
|
||||
|
||||
// Remove fields with default values
|
||||
if (header.ReadString(Models.Metadata.Header.ForceMergingKey).AsEnumValue<MergingFlag>() == MergingFlag.None)
|
||||
header.Remove(Models.Metadata.Header.ForceMergingKey);
|
||||
if (header.ReadString(Models.Metadata.Header.ForceNodumpKey).AsEnumValue<NodumpFlag>() == NodumpFlag.None)
|
||||
header.Remove(Models.Metadata.Header.ForceNodumpKey);
|
||||
if (header.ReadString(Models.Metadata.Header.ForcePackingKey).AsEnumValue<PackingFlag>() == PackingFlag.None)
|
||||
header.Remove(Models.Metadata.Header.ForcePackingKey);
|
||||
|
||||
// Convert subheader values
|
||||
if (CanOpenSpecified)
|
||||
header[Models.Metadata.Header.CanOpenKey] = new Models.OfflineList.CanOpen { Extension = GetStringArrayFieldValue(Models.Metadata.Header.CanOpenKey) };
|
||||
if (ImagesSpecified)
|
||||
header[Models.Metadata.Header.ImagesKey] = GetFieldValue<Models.OfflineList.Images>(Models.Metadata.Header.ImagesKey);
|
||||
if (InfosSpecified)
|
||||
header[Models.Metadata.Header.InfosKey] = GetFieldValue<Models.OfflineList.Infos>(Models.Metadata.Header.InfosKey);
|
||||
if (NewDatSpecified)
|
||||
header[Models.Metadata.Header.NewDatKey] = GetFieldValue<Models.OfflineList.NewDat>(Models.Metadata.Header.NewDatKey);
|
||||
if (SearchSpecified)
|
||||
header[Models.Metadata.Header.SearchKey] = GetFieldValue<Models.OfflineList.Search>(Models.Metadata.Header.SearchKey);
|
||||
|
||||
return header;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Overwrite local values from another DatHeader if not default
|
||||
/// </summary>
|
||||
|
||||
Reference in New Issue
Block a user