Subversion Repositories spk

Rev

Rev 123 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
94 cycrow 1
#pragma once
2
 
3
#include <vector>
4
#include "spkdefines.h"
197 cycrow 5
#include "Utils/WStringList.h"
94 cycrow 6
 
7
class CPackages;
95 cycrow 8
class CGameExe;
94 cycrow 9
 
10
namespace SPK {
11
 
12
	class CVirtualFileSystem;
13
 
14
	typedef struct SGameDir {
15
		bool			bLoad;
197 cycrow 16
		Utils::WString	dir;
17
		Utils::WString	name;
94 cycrow 18
		int				iGame;
19
		CVirtualFileSystem *pVfs;
20
//		SGameExe		*pExe;
21
	} SGameDir;
22
 
23
	tclass CGameDirectories
24
	{
25
	private:
26
		std::vector<SGameDir *> *_pDirs;
197 cycrow 27
		Utils::WStringList	_lControlledDirs;
94 cycrow 28
		SGameDir	*_pCurrentItr;
29
		SGameDir	*_pSelected;
30
		SGameDir	*_pTemporary;
31
		int			 _iLanguage;
32
 
33
	public:
197 cycrow 34
		CGameDirectories(const Utils::WString &mydoc);
94 cycrow 35
		~CGameDirectories(void);
36
 
197 cycrow 37
		bool add(const Utils::WString &dir, const Utils::WString &name, int iGame, const Utils::WString &addon, bool bLoad);
38
		bool remove(const Utils::WString &dir);
94 cycrow 39
 
197 cycrow 40
		bool parse(const Utils::WString &data, CPackages *pPackages);
41
		bool findDir(const Utils::WString &dir);
42
		bool writeData(Utils::WStringList *lines);
101 cycrow 43
		void updateCurrentVFS(bool bReload);
94 cycrow 44
 
45
		void clear();
46
 
47
		bool setSelectedGameDirectory(int iGame, bool temp = false);
197 cycrow 48
		bool setSelectedDirectory(const Utils::WString &dir, bool temp = false);
94 cycrow 49
		void reselectTemporaryDirectory();
50
		void setLanguage(int iLang);
51
 
52
		void setLoad(bool bLoad);
53
 
101 cycrow 54
		bool isAllTextLoaded() const;
197 cycrow 55
		bool isDir(const Utils::WString &dir) const;
94 cycrow 56
		bool hasSelected() const;
57
		bool isEmpty() const;
58
		int highestGame() const;
59
 
197 cycrow 60
		Utils::WString currentName() const;
94 cycrow 61
		int currentGame() const;
62
		bool currentLoad() const;
63
		CVirtualFileSystem *selectedVFS() const;
64
 
95 cycrow 65
		void syncWithControlled(CGameExe *exe);
66
 
197 cycrow 67
		Utils::WString findText(int iGame, int iLanguage, int iPage, int iID);
68
		Utils::WString findText(int iLanguage, int iPage, int iID, Utils::WString missing = Utils::WString::Null());
94 cycrow 69
 
197 cycrow 70
		Utils::WString first(int iGame = -1);
71
		Utils::WString next(int iGame = -1);
94 cycrow 72
 
197 cycrow 73
		Utils::WString firstShield();
74
		Utils::WString nextShield();
75
		Utils::WString firstComponentSection();
76
		Utils::WString nextComponentSection();
77
		Utils::WString firstDummySection();
78
		Utils::WString nextDummySection();
79
		Utils::WString firstBodiesSection();
80
		Utils::WString nextBodiesSection();
81
		Utils::WString firstCockpit();
82
		Utils::WString nextCockpit();
83
		std::pair<Utils::WString, Utils::WString> firstLaser() const;
84
		std::pair<Utils::WString, Utils::WString> nextLaser() const;
85
		std::pair<Utils::WString, Utils::WString> firstMissile() const;
86
		std::pair<Utils::WString, Utils::WString> nextMissile() const;
94 cycrow 87
 
88
	private:
89
		SGameDir *_findGameDir(int iGame) const;	
197 cycrow 90
		SGameDir *_findGameDir(const Utils::WString &dir) const;	
91
		void _add(const Utils::WString &dir, const Utils::WString &name, int iGame, const Utils::WString &addon, bool bLoad);
95 cycrow 92
 
197 cycrow 93
		void _updateControlledDirs(const Utils::WString &mydoc);
94 cycrow 94
	};
95
 
96
}