class EE::System::Pak¶
Overview¶
Quake 2 PAK handler. More…
#include <pak.hpp> class Pak: public EE::System::Pack { public: // structs struct pakEntry; struct pakFile; struct pakHeader; // construction ~Pak(); // methods static Pak* New(); virtual bool create(const std::string& path); virtual bool open(const std::string& path); virtual bool close(); virtual bool addFile(const std::string& path, const std::string& inpack); virtual bool addFile(std::vector<Uint8>& data, const std::string& inpack); virtual bool addFile(const Uint8* data, const Uint32& dataSize, const std::string& inpack); virtual bool addFiles(std::map<std::string, std::string> paths); virtual bool eraseFile(const std::string& path); virtual bool eraseFiles(const std::vector<std::string>& paths); virtual bool extractFile(const std::string& path, const std::string& dest); virtual bool extractFileToMemory(const std::string& path, std::vector<Uint8>& data); virtual bool extractFileToMemory(const std::string& path, ScopedBuffer& data); virtual Int32 exists(const std::string& path); virtual Int8 checkPack(); virtual std::vector<std::string> getFileList(); virtual bool isOpen() const; virtual std::string getPackPath(); virtual IOStream* getFileStream(const std::string& path); };
Inherited Members¶
public: // methods void lock(); void unlock(); bool tryLock(); virtual bool create(const std::string& path) = 0; virtual bool open(const std::string& path) = 0; virtual bool close() = 0; virtual bool addFile(const std::string& path, const std::string& inpack) = 0; virtual bool addFile(std::vector<Uint8>& data, const std::string& inpack) = 0; virtual bool addFile(const Uint8* data, const Uint32& dataSize, const std::string& inpack) = 0; virtual bool addFiles(std::map<std::string, std::string> paths) = 0; virtual bool eraseFile(const std::string& path) = 0; virtual bool eraseFiles(const std::vector<std::string>& paths) = 0; virtual bool extractFile(const std::string& path, const std::string& dest) = 0; virtual bool extractFileToMemory(const std::string& path, std::vector<Uint8>& data) = 0; virtual bool extractFileToMemory(const std::string& path, ScopedBuffer& data) = 0; virtual Int32 exists(const std::string& path) = 0; virtual Int8 checkPack() = 0; virtual std::vector<std::string> getFileList() = 0; virtual bool isOpen() const; virtual std::string getPackPath() = 0; virtual IOStream* getFileStream(const std::string& path) = 0;
Detailed Documentation¶
Quake 2 PAK handler.
Methods¶
virtual bool create(const std::string& path)
Creates a new pakFile
virtual bool open(const std::string& path)
Open a pakFile
virtual bool close()
Close the pakFile
virtual bool addFile(const std::string& path, const std::string& inpack)
Add a file to the pakFile
Parameters:
path |
Path to the file in the disk |
inpack |
Path that will have the file inside the pak |
Returns:
True if success
virtual bool addFile(std::vector<Uint8>& data, const std::string& inpack)
Add a new file from memory
virtual bool addFile(const Uint8* data, const Uint32& dataSize, const std::string& inpack)
Add a new file from memory
virtual bool addFiles(std::map<std::string, std::string> paths)
Add a map of files to the pakFile ( myMap[ myFilepath ] = myInPakFilepath )
virtual bool eraseFile(const std::string& path)
Erase a file from the pakFile. ( This will create a new pakFile without that file, so, can be slow )
virtual bool eraseFiles(const std::vector<std::string>& paths)
Erase all passed files from the pakFile. ( This will create a new pakFile without that file, so, can be slow )
virtual bool extractFile(const std::string& path, const std::string& dest)
Extract a file from the pakFile
virtual bool extractFileToMemory(const std::string& path, std::vector<Uint8>& data)
Extract a file to memory from the pakFile
virtual bool extractFileToMemory(const std::string& path, ScopedBuffer& data)
Extract a file to memory from the pakFile
virtual Int32 exists(const std::string& path)
Check if a file exists in the pakFile and return the number of the file, otherwise return -1.
virtual Int8 checkPack()
Check the integrity of the pakFile.
If return 0 integrity OK. -1 wrong indentifier. -2 wrong header.
virtual std::vector<std::string> getFileList()
Returns:
a vector with all the files inside the pakFile
virtual bool isOpen() const
Returns:
If the PAK file is open
virtual std::string getPackPath()
Returns:
The file path of the opened package
virtual IOStream* getFileStream(const std::string& path)
Open a file stream for reading