00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #if !defined(__INCLUDE_ModFilesh_INCLUDE__)
00022 #define __INCLUDE_ModFilesh_INCLUDE__
00023
00024 #include <engine/ModFileEntry.h>
00025 #include <common/ProgressCounter.h>
00026 #include <map>
00027
00028 class ModFiles
00029 {
00030 public:
00031 ModFiles();
00032 virtual ~ModFiles();
00033
00034 bool exportModFiles(const std::string &mod, const std::string &fileName);
00035 bool importModFiles(std::string &mod, const std::string &fileName);
00036 bool importModFiles(std::string &mod, NetBuffer &buffer);
00037
00038 bool loadModFiles(const std::string &mod, bool createDir,
00039 ProgressCounter *counter = 0);
00040 bool writeModFiles(const std::string &mod);
00041 void clearData();
00042
00043 std::map<std::string, ModFileEntry *> &getFiles() { return files_; }
00044 static bool excludeFile(const std::string &file);
00045 static bool fileEnding(const std::string &file, const std::string &ext);
00046
00047 protected:
00048 std::map<std::string, ModFileEntry *> files_;
00049
00050 bool loadModDir(const std::string &moddir, const std::string &mod,
00051 ProgressCounter *counter = 0);
00052 bool loadModFile(const std::string &fullFileName,
00053 const std::string &modDir, const std::string &mod);
00054 bool loadLocalModFile(const std::string &local,
00055 const std::string &mod);
00056
00057 private:
00058 ModFiles(const ModFiles&other);
00059 ModFiles &operator=(ModFiles &other);
00060
00061 };
00062
00063 #endif
00064