Esempio n. 1
0
        public override void read(BinaryReader reader)
        {
            reader.BaseStream.Seek(0, SeekOrigin.Begin);

            header = new Header();
            header.read(reader);

            screenshot = new Screenshot(header.screenshotWidth, header.screenshotHeight);
            screenshot.read(reader);

            applicationInfo = new ApplicationInfo();
            applicationInfo.read(reader);

            index = new Index();
            index.read(reader);

            idBlocks = new Dictionary<uint, IdBlock>();

            reader.BaseStream.Seek(index.offset3, SeekOrigin.Begin);

            for(var i = 0; i < index.blockCount1; i++) {
                var idBlock = new IdBlock();
                idBlock.read(reader);
                idBlocks.Add(idBlock.id, idBlock);
            }

            reader.BaseStream.Seek(index.offset4, SeekOrigin.Begin);

            for (var i = 0; i < index.blockCount2; i++) {
                var idBlock = new IdBlock();
                idBlock.read(reader);
                idBlocks.Add(idBlock.id, idBlock);
            }

            reader.BaseStream.Seek(index.offset6, SeekOrigin.Begin);

            for (var i = 0; i < index.blockCount3; i++) {
                var idBlock = new IdBlock();
                idBlock.read(reader);
                idBlocks.Add(idBlock.id, idBlock);
            }

            formBlocks = new Dictionary<uint, FormBlock>();

            reader.BaseStream.Seek(index.offset5, SeekOrigin.Begin);

            for(var i = 0; i < index.blockCount4; i++) {
                var formBlock = new FormBlock();
                formBlock.read(reader);
                formBlocks.Add(formBlock.id, formBlock);
            }
        }