Alexandria.Engines.DarkSouls.StringArchiveFormat.LoadMatch C# (CSharp) Метод

LoadMatch() публичный Метод

Attempt to identifier the loader as a string archive.
public LoadMatch ( AssetLoader loader ) : LoadMatchStrength
loader Glare.Assets.AssetLoader The loader to match.
Результат LoadMatchStrength
        public override LoadMatchStrength LoadMatch(AssetLoader loader)
        {
            var reader = loader.Reader;
            ByteOrder byteOrder = ByteOrder.LittleEndian;

            if (loader.Length < 4 * 7)
                return LoadMatchStrength.None;
            int magic1 = reader.ReadInt32();
            if (magic1 != StringArchive.Magic1)
                return LoadMatchStrength.None;
            int totalFileLength = reader.ReadInt32();
            if (loader.Length != totalFileLength) {
                if (totalFileLength.ReverseBytes() == loader.Length)
                    byteOrder = ByteOrder.BigEndian;
                else
                    return LoadMatchStrength.None;
            }

            int magic2 = reader.ReadInt32(byteOrder);
            if (magic2 != StringArchive.Magic2 && magic2 != StringArchive.Magic2BE)
                return LoadMatchStrength.None;
            int groupCount = reader.ReadInt32(byteOrder);
            int stringCount = reader.ReadInt32(byteOrder);
            int stringOffset = reader.ReadInt32(byteOrder);
            int zero1 = reader.ReadInt32(byteOrder);
            if (zero1 != 0)
                return LoadMatchStrength.None;

            if (stringOffset != 28 + groupCount * 12)
                return LoadMatchStrength.None;
            return LoadMatchStrength.Strong;
        }