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); } }
internal static WemFragment Read(BinaryReaderEx reader) { var wem = new WemFragment(); wem.ReadEx(reader); return(wem); }