#pragma once #include #include #include #include #include "Pack.h" #pragma pack(push, 1) struct PackFileIndex { uint32_t m_Crc; int32_t m_LowerCrc; int32_t m_UpperCrc; uint32_t m_PackFileIndex; uint32_t m_IsCompressed; // u32 bool? }; #pragma pack(pop) class PackIndex { public: PackIndex(const std::filesystem::path& filePath); ~PackIndex(); const std::vector& GetPackPaths() { return m_PackPaths; } const std::vector& GetPackFileIndices() { return m_PackFileIndices; } const std::vector& GetPacks() { return m_Packs; } private: std::ifstream m_FileStream; uint32_t m_Version; uint32_t m_PackPathCount; std::vector m_PackPaths; uint32_t m_PackFileIndexCount; std::vector m_PackFileIndices; std::vector m_Packs; };