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;
}