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