public const int ENCRYPTED_MAGIC = 0x636D66; // todo: use the thingy again? public ContentManifestFile(ClientHandler client, Stream stream, string name) { using (BinaryReader reader = new BinaryReader(stream)) { m_header = reader.Read <CMFHeader>(); if (m_header.m_buildVersion < ProductHandler_Tank.VERSION_148_PTR) // before 1.48 { stream.Position = 0; m_header = reader.Read <CMFHeader25>().Upgrade(); } if (m_header.m_buildVersion >= 12923648 || m_header.m_buildVersion < 52320) { throw new NotSupportedException("Overwatch 1.29 or earlier is not supported"); } if (m_header.IsEncrypted()) { using (var decryptedReader = ManifestCryptoHandler.GetDecryptedReader(name, "CMF", m_header, m_header.m_buildVersion, client.Product, stream)) ParseEntries(decryptedReader); } else { ParseEntries(reader); } } }
public const int ENCRYPTED_MAGIC = 0x636D66; // todo: use the thingy again? public ContentManifestFile(ClientHandler client, Stream stream, string name) { using (BinaryReader reader = new BinaryReader(stream)) { Header = reader.Read <CMFHeader>(); if (Header.BuildVersion >= 12923648 || Header.BuildVersion < 52320) { throw new NotSupportedException("Overwatch 1.29 or earlier is not supported"); } if (Header.IsEncrypted()) { using (BinaryReader decryptedReader = DecryptCMF(client, stream, name)) { ParseEntries(decryptedReader); } } else { ParseEntries(reader); } } }