Rev 197 | Blame | Compare with Previous | Last modification | View Log | RSS feed
#pragma once#include <vector>#include "spkdefines.h"#include "Utils/WStringList.h"class CPackages;class CGameExe;namespace SPK {class CVirtualFileSystem;typedef struct SGameDir {bool bLoad;Utils::WString dir;Utils::WString name;int iGame;CVirtualFileSystem *pVfs;// SGameExe *pExe;} SGameDir;tclass CGameDirectories{private:std::vector<SGameDir *> *_pDirs;Utils::WStringList _lControlledDirs;SGameDir *_pCurrentItr;SGameDir *_pSelected;SGameDir *_pTemporary;int _iLanguage;public:CGameDirectories(const Utils::WString &mydoc);~CGameDirectories(void);bool add(const Utils::WString &dir, const Utils::WString &name, int iGame, const Utils::WString &addon, bool bLoad);bool remove(const Utils::WString &dir);bool parse(const Utils::WString &data, CPackages *pPackages);bool findDir(const Utils::WString &dir);bool writeData(Utils::WStringList* lines);bool writeData(std::vector<Utils::WString> &lines);void updateCurrentVFS(bool bReload);void clear();bool setSelectedGameDirectory(int iGame, bool temp = false);bool setSelectedDirectory(const Utils::WString &dir, bool temp = false);void reselectTemporaryDirectory();void setLanguage(int iLang);void setLoad(bool bLoad);bool isAllTextLoaded() const;bool isDir(const Utils::WString &dir) const;bool hasSelected() const;bool isEmpty() const;int highestGame() const;Utils::WString currentName() const;int currentGame() const;bool currentLoad() const;CVirtualFileSystem *selectedVFS() const;void syncWithControlled(CGameExe *exe);Utils::WString findText(int iGame, int iLanguage, int iPage, int iID);Utils::WString findText(int iLanguage, int iPage, int iID, Utils::WString missing = Utils::WString::Null());Utils::WString first(int iGame = -1);Utils::WString next(int iGame = -1);Utils::WString firstShield();Utils::WString nextShield();Utils::WString firstComponentSection();Utils::WString nextComponentSection();Utils::WString firstDummySection();Utils::WString nextDummySection();Utils::WString firstBodiesSection();Utils::WString nextBodiesSection();Utils::WString firstCockpit();Utils::WString nextCockpit();std::pair<Utils::WString, Utils::WString> firstLaser() const;std::pair<Utils::WString, Utils::WString> nextLaser() const;std::pair<Utils::WString, Utils::WString> firstMissile() const;std::pair<Utils::WString, Utils::WString> nextMissile() const;private:SGameDir *_findGameDir(int iGame) const;SGameDir *_findGameDir(const Utils::WString &dir) const;void _add(const Utils::WString &dir, const Utils::WString &name, int iGame, const Utils::WString &addon, bool bLoad);void _updateControlledDirs(const Utils::WString &mydoc);};}