Rev 43 | Rev 84 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
#pragma once#include "CyString.h"#include "File.h"#include "TextDB.h"#include <map>class CBaseFile;class CXspFile;namespace SPK {tclass CVirtualFileSystem{public:typedef std::map<std::string, std::string> FileList;typedef std::map<std::string, std::string>::iterator FileListItr;private:Utils::String m_sAddon;Utils::String m_sDir;bool m_bLoaded;FileList *m_pModMap;FileList *m_pMap;CTextDB *m_pTexts;CTextDB *m_pModTexts;int m_iLang;public:CVirtualFileSystem(void);~CVirtualFileSystem(void);void SetAddon(const Utils::String &addon) { m_sAddon = addon; }void extractTexts(CXspFile *pPackage, int textId);C_File *extractGameFileToPackage(CBaseFile *pPackage, const Utils::String &sFile, FileType iFileType, const Utils::String &sTo);C_File *extractGameFileToPackage(CBaseFile *pPackage, const Utils::String &sFile, FileType iFileType);Utils::String ExtractGameFile(const Utils::String &file, const Utils::String &to);bool LoadFilesystem(const Utils::String &dir, int maxPatch = 0);bool LoadFilesystem(const Utils::String &dir, const Utils::String &mod, int maxPatch = 0);bool loadMod(const Utils::String &mod);bool addMod(const Utils::String &mod);bool isFileAvailable(const Utils::String &file);CyStringList *GetTShipsEntries();Utils::String getTShipsEntry(const Utils::String &sId);void updateModTexts(int iPage);void updateModTexts(int iFromPage, int iToPage);void updateTexts(int iPage);void updateTexts(int iFromPage, int iToPage);Utils::String findText(int iLang, int iPage, int iID) const;bool textExists(int iLang, int iPage, int iID) const;void clearMods();bool loadShipData(CyStringList *list);void setLanguage(int iLang);private:void _updateTexts(int iFromPage, int iToPage, FileList *pFileList, CTextDB *pTextList);Utils::String _convertExtension(const Utils::String &sFile);void _clear();void _addFile(const Utils::String &sFile, const Utils::String &sDest, FileList *pList);void _addModFile(const Utils::String &sFile, const Utils::String &sMod, FileList *pList);Utils::String _findFile(const Utils::String &file);void _addDir(const Utils::String &sStart, const Utils::String &sDir);Utils::String _extractFromCat(const Utils::String &sCat, const Utils::String &sFile, const Utils::String &sTo);Utils::String _extract(const Utils::String &sFile, const Utils::String &sTo);};}