Rev 35 | 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);bool 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);Utils::String findFile(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();};}