diff --git a/pk3DS/3DS/FileFormat.cs b/pk3DS/3DS/FileFormat.cs index 05e0d46..a59da9e 100644 --- a/pk3DS/3DS/FileFormat.cs +++ b/pk3DS/3DS/FileFormat.cs @@ -169,16 +169,12 @@ internal static bool Guess3CHAR(BinaryReader br, out string ext) ext = ""; // Reset extension try { - byte[] magic = Encoding.ASCII.GetBytes(br.ReadChars(4)); - if (magic[0] < 0x41) - return false; - for (int i = 0; i < magic.Length && i < 3; i++) - { - if ((magic[i] >= 'a' && magic[i] <= 'z') || (magic[i] >= 'A' && magic[i] <= 'Z') || char.IsDigit((char)magic[i])) - ext += (char)magic[i]; - else - return false; - } + byte[] magic = Encoding.ASCII.GetBytes(br.ReadChars(3)); + + ext = Encoding.ASCII.GetString(magic); + // Return BaseStream position to the start. + br.BaseStream.Position = position; + return validEXT.Contains(ext); } catch { }