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