#pragma once #include #include #include #include "../../Minecraft.World/IO/Files/File.h" #include "../../Minecraft.World/Util/ArrayWithLength.h" class ArchiveFile { protected: File m_sourcefile; uint8_t *m_cachedData; typedef struct _MetaData { std::wstring filename; int ptr; int filesize; bool isCompressed; } MetaData, *PMetaData; std::unordered_map m_index; public: void _readHeader(DataInputStream *dis); ArchiveFile(File file); ~ArchiveFile(); std::vector *getFileList(); bool hasFile(const std::wstring &filename); int getFileSize(const std::wstring &filename); byteArray getFile(const std::wstring &filename); };