public override void Read(Iff iff, Stream stream) { using (var io = IoBuffer.FromStream(stream, ByteOrder.LITTLE_ENDIAN)) { var version = io.ReadUInt32(); uint spriteCount = 0; if (version == 1000) { spriteCount = io.ReadUInt32(); DefaultPaletteID = io.ReadUInt32(); var offsetTable = new uint[spriteCount]; for (var i = 0; i < spriteCount; i++) { offsetTable[i] = io.ReadUInt32(); } Frames = new SPR2Frame[spriteCount]; for (var i = 0; i < spriteCount; i++) { var frame = new SPR2Frame(this); io.Seek(SeekOrigin.Begin, offsetTable[i]); frame.Read(version, io); Frames[i] = frame; } } else if (version == 1001) { DefaultPaletteID = io.ReadUInt32(); spriteCount = io.ReadUInt32(); Frames = new SPR2Frame[spriteCount]; for (var i = 0; i < spriteCount; i++) { var frame = new SPR2Frame(this); frame.Read(version, io); Frames[i] = frame; } } } }