public static MythicPackageData Read( BinaryReader reader ) { MythicPackageData data = new MythicPackageData(); data.Flag = reader.ReadInt16(); data.DataOffset = reader.ReadInt16(); data.Unknown = reader.ReadInt64(); return data; }
public static MythicPackageData Read(BinaryReader reader) { MythicPackageData data = new MythicPackageData(); data.Flag = reader.ReadInt16(); data.DataOffset = reader.ReadInt16(); data.Unknown = reader.ReadInt64(); return(data); }
public static MythicPackageIndex Read(BinaryReader reader, ref int found) { MythicPackageIndex index = new MythicPackageIndex(); index.DataBlockOffset = reader.ReadInt64(); index.DataLength = reader.ReadInt32(); index.CompressedSize = reader.ReadInt32(); index.DecompressedSize = reader.ReadInt32(); index.FileHash = reader.ReadInt64(); index.FileName = HashDictionary.Get(index.FileHash); index.CRC = reader.ReadInt32(); if (index.FileName != null) { found += 1; } short flag = reader.ReadInt16(); switch (flag) { case 0x0: index.Compressed = false; break; case 0x1: index.Compressed = true; break; default: throw new Exception(String.Format("Invalid compressed flag: '{0}'!", flag)); } if (index.DataBlockOffset != 0) { long position = reader.BaseStream.Position; reader.BaseStream.Seek(index.DataBlockOffset, SeekOrigin.Begin); index.DataBlock = MythicPackageData.Read(reader); reader.BaseStream.Seek(position, SeekOrigin.Begin); } return(index); }