GameSaveContainerReader::GameSaveContainerReader(ContainerInfoType& containerInfo, std::istream& inStream) : m_containerInfo(containerInfo), m_inStream(inStream) { StreamHelperReader stream(getInStream()); auto& signature = stream.ReadString(5); if (signature.compare(std::string("C2AR\0", 5)) != 0) { throw std::runtime_error("Invalid signature"); } m_containerInfo.Signature = signature; m_containerInfo.Version = stream.Read<unsigned int>(); m_containerInfo.Unknown.v1 = stream.Read<int>(); m_containerInfo.Unknown.v2 = stream.Read<char>(); if (m_containerInfo.Unknown.v2 != 0) { throw std::runtime_error("Not supported"); } }
GameSaveContainerReader::GameSaveContainerReader(ContainerInfoType& containerInfo, std::istream& inStream) : m_containerInfo(containerInfo), m_inStream(inStream) { StreamHelperReader stream(getInStream()); auto& signature = stream.ReadString(5); if (signature.compare(std::string("C2AR\0", 5)) != 0) { throw VanHelsingEngineError("Invalid signature"); } m_containerInfo.Signature = signature; stream.Read(m_containerInfo.Version); checkVersion(); stream.Read(m_containerInfo.Unknown.v1); stream.Read(m_containerInfo.Unknown.v2); if (m_containerInfo.Unknown.v2 != 0) { throw VanHelsingEngineError("This file must be investigated"); } }