private Magic ReadMagic()
{
var magic = new Magic();
magic.signature = InputReader.ReadBytes(16);
magic.format = Magic.FormatFromSignature(magic.signature);
magic.headersSize = InputReader.ReadUInt32();
magic.headerFormat = InputReader.ReadUInt32();
magic.reserved1 = InputReader.ReadUInt32();
magic.reserved2 = InputReader.ReadUInt32();
if (magic.headerFormat != 0)
throw new ParsingException("Compressed GR2 files are not supported");
Debug.Assert(magic.reserved1 == 0);
Debug.Assert(magic.reserved2 == 0);
#if DEBUG_GR2_SERIALIZATION
System.Console.WriteLine(" ===== GR2 Magic ===== ");
System.Console.WriteLine(String.Format("Format: {0}", magic.format));
System.Console.WriteLine(String.Format("Headers size: {0:X8}, format: ", magic.headersSize, magic.headerFormat));
System.Console.WriteLine(String.Format("Reserved1-2: {0:X8} {1:X8}", magic.reserved1, magic.reserved2));
#endif
return magic;
}