translatr.CineFile.parseSubtitles C# (CSharp) Method

parseSubtitles() private method

private parseSubtitles ( ) : void
return void
        private void parseSubtitles()
        {
            int block = 0;
            UInt32 type;
            UInt32 blockSize;

            BinaryReader br = new BinaryReader(dataStream);

            // Start of MUL data
            dataStream.Position = 0x800;
            while (dataStream.Position < dataStream.Length)
            {
                // Read block header
                type = dataStream.readuint(isBE);
                blockSize = dataStream.readuint(isBE);
                dataStream.Position += 8;

                if (type == 1) // Cine block
                {
                    if (blockSize == 0x10)
                    {
                        block++;
                        dataStream.Position += 0x10;
                        continue;
                    }

                    // Copy cine block to array
                    var array = br.ReadBytes((int)blockSize);

                    parseBlock(array, block);
                    block++;
                }
                else if (type == 0) // Skip audio block
                {
                    dataStream.Position += blockSize;
                }
                else if (type == 2) // Unknown block (TRL, TRA), skip
                {
                    dataStream.Position += blockSize;
                }
                else if (type == 3) // Unknown block (LCGoL), skip
                {
                    dataStream.Position += blockSize;
                }
                else
                {
                    throw new Exception("Unknown mul block type");
                }
            }
        }