diff --git a/Libraries/UniversalEditor.Core/DataFormatFilter.cs b/Libraries/UniversalEditor.Core/DataFormatFilter.cs index 6f5e672f..3c74b795 100644 --- a/Libraries/UniversalEditor.Core/DataFormatFilter.cs +++ b/Libraries/UniversalEditor.Core/DataFormatFilter.cs @@ -154,15 +154,15 @@ namespace UniversalEditor byte[] cmp = new byte[bytes.Length]; long offset = accessor.Position; - if (i < mvarMagicByteOffsets.Length) + if (i < MagicByteOffsets.Length) { - if (mvarMagicByteOffsets[i] < 0) + if (MagicByteOffsets[i] < 0) { - accessor.Seek(mvarMagicByteOffsets[i], SeekOrigin.End); + accessor.Seek(MagicByteOffsets[i], SeekOrigin.End); } else { - accessor.Seek(mvarMagicByteOffsets[i], SeekOrigin.Begin); + accessor.Seek(MagicByteOffsets[i], SeekOrigin.Begin); } } accessor.Reader.Read(cmp, 0, cmp.Length); @@ -223,8 +223,7 @@ namespace UniversalEditor return false; } - private int[] mvarMagicByteOffsets = new int[0]; - public int[] MagicByteOffsets { get { return mvarMagicByteOffsets; } set { mvarMagicByteOffsets = value; } } + public int[] MagicByteOffsets { get; set; } = new int[0]; public string ContentType { get; set; } = null; public string PerceivedType { get; set; } diff --git a/Libraries/UniversalEditor.Essential/DataFormats/UEPackage/UEPackageXMLDataFormat.cs b/Libraries/UniversalEditor.Essential/DataFormats/UEPackage/UEPackageXMLDataFormat.cs index 4bbd723f..9dbf9f03 100644 --- a/Libraries/UniversalEditor.Essential/DataFormats/UEPackage/UEPackageXMLDataFormat.cs +++ b/Libraries/UniversalEditor.Essential/DataFormats/UEPackage/UEPackageXMLDataFormat.cs @@ -936,6 +936,13 @@ namespace UniversalEditor.DataFormats.UEPackage if (tagMagicByteSequence == null) continue; if (tagMagicByteSequence.FullName != "MagicByteSequence") continue; + int offset = 0; + MarkupAttribute attOffset = tagMagicByteSequence.Attributes["Offset"]; + if (attOffset != null) + { + offset = Int32.Parse(attOffset.Value); + } + List magicByteSequence = new List(); foreach (MarkupElement elMagicByte in tagMagicByteSequence.Elements) @@ -1008,7 +1015,7 @@ namespace UniversalEditor.DataFormats.UEPackage } } - magicByteOffsets.Add(0); + magicByteOffsets.Add(offset); filter.MagicBytes.Add(magicByteSequence.ToArray()); } filter.MagicByteOffsets = magicByteOffsets.ToArray();