implement Magic Byte Offsets for DataFormatFilter

This commit is contained in:
Michael Becker 2021-04-29 23:10:26 -04:00
parent ce33b46702
commit 32058ff15e
No known key found for this signature in database
GPG Key ID: 98C333A81F18C22C
2 changed files with 7 additions and 2 deletions

View File

@ -50,6 +50,8 @@ namespace UniversalEditor
{
dff.FileNameFilters.Add(FileNameFilter);
}
dff.MagicByteOffsets = new int[MagicBytes.Length];
foreach (byte?[] magicBytes in MagicBytes)
{
dff.MagicBytes.Add(magicBytes);

View File

@ -1020,6 +1020,7 @@ namespace UniversalEditor.DataFormats.UEPackage
MarkupTagElement tagMagicByteSequences = (tagFilter.Elements["MagicByteSequences"] as MarkupTagElement);
if (tagMagicByteSequences != null)
{
List<int> magicByteOffsets = new List<int>();
foreach (MarkupElement elMagicByteSequence in tagMagicByteSequences.Elements)
{
MarkupTagElement tagMagicByteSequence = (elMagicByteSequence as MarkupTagElement);
@ -1055,10 +1056,10 @@ namespace UniversalEditor.DataFormats.UEPackage
}
case "string":
{
string value = tagMagicByte.Value;
byte[] value = System.Text.Encoding.ASCII.GetBytes(tagMagicByte.Value);
for (int i = 0; i < value.Length; i++)
{
magicByteSequence.Add((byte)value[i]);
magicByteSequence.Add(value[i]);
}
break;
}
@ -1098,8 +1099,10 @@ namespace UniversalEditor.DataFormats.UEPackage
}
}
magicByteOffsets.Add(0);
filter.MagicBytes.Add(magicByteSequence.ToArray());
}
filter.MagicByteOffsets = magicByteOffsets.ToArray();
}
association.Filters.Add(filter);