Ejemplo n.º 1
0
        private void ReadEx(Stream stream)
        {
            var reader = new BinaryReaderEx(stream);

            var magic = reader.ReadString(4); //Magic Number: r3d2

            if (magic != "r3d2")
            {
                throw new InvalidDataException();
            }
            reader.ReadUInt32();
            var wemFragmentCount = reader.ReadUInt32(); //wem Fragment Count

            for (var i = 0; i < 25; i++)
            {
                reader.ReadUInt32();
            }

            Fragments = new WemFragment[wemFragmentCount];
            for (var i = 0; i < wemFragmentCount; i++)
            {
                Fragments[i] = WemFragment.Read(reader);
            }

            foreach (var wem in Fragments)
            {
                reader.BaseStream.Seek(wem.Offset, SeekOrigin.Begin);
                wem.Data = reader.ReadBytes((int)wem.Size);
            }
        }
Ejemplo n.º 2
0
            internal static WemFragment Read(BinaryReaderEx reader)
            {
                var wem = new WemFragment();

                wem.ReadEx(reader);
                return(wem);
            }