#pragma once #include #include #include #include #include #include class AFSArchive { public: AFSArchive(std::shared_ptr data); ~AFSArchive() = default; struct Entry { uint64_t offset; uint32_t size; }; inline const std::vector& all_entries() const { return this->entries; } std::pair get(size_t index) const; std::string get_copy(size_t index) const; StringReader get_reader(size_t index) const; static std::string generate(const std::vector& files, bool big_endian); private: template static std::string generate_t(const std::vector& files); std::shared_ptr data; std::vector entries; };