Subversion Repositories spk

Rev

Rev 197 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 197 Rev 299
Line 1... Line 1...
1
#include "Languages.h"
1
#include "Languages.h"
2
 
2
 
3
#include <stdarg.h>
3
#include <stdarg.h>
-
 
4
#include "SpkFile.h"
4
 
5
 
5
CLanguages *CLanguages::_pInstance = NULL;
6
CLanguages *CLanguages::_pInstance = NULL;
6
 
7
 
7
 
8
 
8
void CLanguages::DEBUG_AddDefaultTexts()
9
void CLanguages::DEBUG_AddDefaultTexts()
Line 22... Line 23...
22
 
23
 
23
		{
24
		{
24
			LangPage &page = (*_pDefaultLang)[LS_DIRECTORY];
25
			LangPage &page = (*_pDefaultLang)[LS_DIRECTORY];
25
			page[LANGDIR_TITLE] = L"Directory Control";
26
			page[LANGDIR_TITLE] = L"Directory Control";
26
		}
27
		}
-
 
28
 
-
 
29
		{
-
 
30
			LangPage& page = (*_pDefaultLang)[LS_SCRIPTTYPE];
-
 
31
			page[CSpkFile::SCRIPTTYPE_LIBRARY] = L"Library";
-
 
32
			page[CSpkFile::SCRIPTTYPE_UPDATE] = L"Package Update";
-
 
33
			page[CSpkFile::SCRIPTTYPE_CUSTOMSTART] = L"Custom Start";
-
 
34
			page[CSpkFile::SCRIPTTYPE_PATCH] = L"Patch";
-
 
35
			page[CSpkFile::SCRIPTTYPE_FAKEPATCH] = L"Fake Patch";
-
 
36
			page[CSpkFile::SCRIPTTYPE_CUSTOM] = L"Custom";
-
 
37
			page[CSpkFile::SCRIPTTYPE_NAVIGATION] = L"Navigation";
-
 
38
			page[CSpkFile::SCRIPTTYPE_COMBAT] = L"Combat";
-
 
39
			page[CSpkFile::SCRIPTTYPE_MISSION] = L"Mission";
-
 
40
			page[CSpkFile::SCRIPTTYPE_ALPLUGIN] = L"AL Plugin";
-
 
41
			page[CSpkFile::SCRIPTTYPE_HOTKEY] = L"Hotkey";
-
 
42
			page[CSpkFile::SCRIPTTYPE_SHIPUPGRADE] = L"Ship Upgrade";
-
 
43
			page[CSpkFile::SCRIPTTYPE_SHIPCOMMAND] = L"Ship Command";
-
 
44
			page[CSpkFile::SCRIPTTYPE_STATIONCOMMAND] = L"Station Command";
-
 
45
			page[CSpkFile::SCRIPTTYPE_FLEET] = L"Fleet Management";
-
 
46
			page[CSpkFile::SCRIPTTYPE_TRADE] = L"Trade";
-
 
47
			page[CSpkFile::SCRIPTTYPE_PIRACY] = L"Piracy";
-
 
48
			page[CSpkFile::SCRIPTTYPE_CHEAT] = L"Cheat";
-
 
49
			page[CSpkFile::SCRIPTTYPE_EXTENSION] = L"Extension Mods";
-
 
50
			page[CSpkFile::SCRIPTTYPE_REBALANCE] = L"Rebalance";
-
 
51
			page[CSpkFile::SCRIPTTYPE_FIX] = L"Vanilla Fix";
-
 
52
			page[CSpkFile::SCRIPTTYPE_GENERALMOD] = L"General Mod";
-
 
53
			page[CSpkFile::SCRIPTTYPE_TOTAL] = L"Totel Conversion";
-
 
54
			page[CSpkFile::SCRIPTTYPE_WINGCOMMAND] = L"Wing Command";
-
 
55
			page[CSpkFile::SCRIPTTYPE_OTHER] = L"Other";
-
 
56
		}
27
	}
57
	}
28
}
58
}
29
 
59
 
30
 
60
 
31
CLanguages::CLanguages() : 
61
CLanguages::CLanguages() : 
32
	_iLanguage(-1),
62
	_iLanguage(-1),
33
	_pDefaultLang(NULL),
63
	_pDefaultLang(nullptr),
34
	_pCurrentLang(NULL)
64
	_pCurrentLang(nullptr),
-
 
65
	_langStack(nullptr)
35
{
66
{
36
	_lTexts = new LangTexts();
67
	_lTexts = new LangTexts();
-
 
68
	_langStack = new std::vector<int>();
37
}
69
}
38
 
70
 
39
CLanguages::~CLanguages()
71
CLanguages::~CLanguages()
40
{
72
{
41
	delete _lTexts;
73
	delete _lTexts;
42
	_pDefaultLang = NULL;
74
	_pDefaultLang = NULL;
43
	_pCurrentLang = NULL;
75
	_pCurrentLang = NULL;
-
 
76
	if (_langStack)
-
 
77
	{
-
 
78
		delete _langStack;
-
 
79
		_langStack = nullptr;
-
 
80
	}
44
}
81
}
45
 
82
 
46
CLanguages *CLanguages::Instance()
83
CLanguages *CLanguages::Instance()
47
{
84
{
48
	if ( !_pInstance ) {
85
	if ( !_pInstance ) {
Line 71... Line 108...
71
		if (itr != _lTexts->end())
108
		if (itr != _lTexts->end())
72
			_pCurrentLang = &itr->second;
109
			_pCurrentLang = &itr->second;
73
	}
110
	}
74
}
111
}
75
 
112
 
-
 
113
void CLanguages::pushLanguage(int lang)
-
 
114
{
-
 
115
	if (_iLanguage != lang)
-
 
116
	{	
-
 
117
		if (!_langStack)
-
 
118
			_langStack = new std::vector<int>();	
-
 
119
		_langStack->push_back(_iLanguage);
-
 
120
		setLanguage(lang);
-
 
121
	}
-
 
122
}
-
 
123
void CLanguages::popLanguage()
-
 
124
{
-
 
125
	if (!_langStack ||_langStack->empty())
-
 
126
		return;
-
 
127
	setLanguage(_langStack->back());
-
 
128
	_langStack->pop_back();
-
 
129
}
-
 
130
 
76
 
131
 
77
Utils::WString CLanguages::findText(int section, int id)
132
Utils::WString CLanguages::findText(int section, int id)
78
{
133
{
79
	LangPages *text = _pCurrentLang;
134
	LangPages *text = _pCurrentLang;
80
	if (!text) text = _pDefaultLang;
135
	if (!text) text = _pDefaultLang;