diff options
Diffstat (limited to 'Minecraft.Client/ArchiveFile.h')
| -rw-r--r-- | Minecraft.Client/ArchiveFile.h | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/Minecraft.Client/ArchiveFile.h b/Minecraft.Client/ArchiveFile.h new file mode 100644 index 00000000..722d570d --- /dev/null +++ b/Minecraft.Client/ArchiveFile.h @@ -0,0 +1,38 @@ +#pragma once + +#include <vector> +#include <unordered_map> + +#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<wstring, PMetaData> m_index; + +public: + void _readHeader(DataInputStream *dis); + + ArchiveFile(File file); + ~ArchiveFile(); + + vector<wstring> *getFileList(); + bool hasFile(const wstring &filename); + int getFileSize(const wstring &filename); + byteArray getFile(const wstring &filename); +};
\ No newline at end of file |
