Subversion Repositories spk

Rev

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

Rev Author Line No. Line
35 cycrow 1
#pragma once
2
 
3
#include <map>
254 cycrow 4
#include <set>
197 cycrow 5
#include "Utils/WString.h"
35 cycrow 6
 
7
namespace SPK {
8
class CTextDB
9
{
10
public:
197 cycrow 11
	typedef std::map<Utils::WString, Utils::WString> TextList;
12
	typedef std::map<Utils::WString, Utils::WString>::iterator TextListItr;
35 cycrow 13
 
14
private:
15
	int			 m_iLang;
16
	int			 m_iInPage;
254 cycrow 17
	int			_iInGame;
35 cycrow 18
	TextList	*m_pTexts;
94 cycrow 19
	TextList	*m_pTextComment;
254 cycrow 20
	std::vector<unsigned int> _lGameOrder;
21
	std::set<unsigned int> _lGames;
22
	bool		_bSortedGames;
35 cycrow 23
 
24
public:
25
	CTextDB(void);
26
	virtual ~CTextDB(void);
27
 
197 cycrow 28
	void parseTextFile(int iFromPage, int iToPage, const Utils::WString &sFile, int iLang);
29
	Utils::WString get(int iLang, int iPage, int iID) const;
35 cycrow 30
	bool exists(int iLang, int iPage, int iID) const;
197 cycrow 31
	Utils::WString get(int iPage, int iID) const;
35 cycrow 32
	bool exists(int iPage, int iID) const;
101 cycrow 33
	bool anyTextLoaded() const;
35 cycrow 34
 
35
	void setLanguage(int iLang);
36
 
37
private:
197 cycrow 38
	Utils::WString _parseText(int iLang, const Utils::WString &sText, const Utils::WString &sReplace) const;
39
	Utils::WString _parseText(int iLang, const Utils::WString &sText) const;
40
	void _parsePage(int iLang, const Utils::WString &sLine);
41
	void _parseFileLine(int iFromPage, int iToPage, int iLang, const Utils::WString &sLine);
42
	void _addText(int iLang, int iID, const Utils::WString &sText);
43
	Utils::WString _mapID(int iLang, int iPage, int iID) const;
254 cycrow 44
	void _sortGames();
35 cycrow 45
};
46
 
47
} //NAMESPACE