Subversion Repositories spk

Rev

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

Rev 52 Rev 173
Line 95... Line 95...
95
 
95
 
96
	// read the log files for the game
96
	// read the log files for the game
97
	CFileIO File(m_sLogDir + "/log09005.txt");
97
	CFileIO File(m_sLogDir + "/log09005.txt");
98
	if ( File.exists() )
98
	if ( File.exists() )
99
	{
99
	{
100
		CyStringList *lines = File.ReadLinesStr();
100
		std::vector<Utils::String> lines;
101
		if ( lines )
101
		if(File.readLines(lines))
102
		{
102
		{
103
			
-
 
104
			for ( SStringList *str = lines->Head(); str; str = str->;next )
103
			for(auto itr = lines.begin(); itr != lines.end(); itr++)
105
			{
104
			{
106
				CyString cmd = str->str.GetToken(";:", 1, 1);
105
				Utils::String cmd = itr->token(";:", 1);
107
				if ( cmd.Compare("MESSAGE") )
106
				if ( cmd.Compare("MESSAGE") )
108
				{
107
				{
109
					SMessages *m = new SMessages;
108
					SMessages *m = new SMessages;
110
					m->iTimeout = str->str.GetToken ( ";:", 2, 2 ).ToInt();
109
					m->iTimeout = itr->token(";:", 2).toInt();
111
					m->iHeight  = str->str.GetToken ( ";:", 3, 3 ).ToInt();
110
					m->iHeight  = itr->token(";:", 3).toInt();
112
					m->sHeader = str-&gt;str.GetToken ( &quot;:", 4, 4 );
111
					m->sHeader  = itr-&gt;token(&quot;:", 4);
113
					m->sText = str->str.GetToken ( ";:", 5 );
112
					m->sText = itr->tokens(";:", 5);
114
 
113
 
115
					if ( !m->iHeight )
114
					if ( !m->iHeight )
116
						m->iHeight = 100;
115
						m->iHeight = 100;
117
 
116
 
118
					if ( m->iTimeout != -1 )
117
					if ( m->iTimeout != -1 )
Line 125... Line 124...
125
					m_lDisplays->push_back ( display );
124
					m_lDisplays->push_back ( display );
126
					delete m;
125
					delete m;
127
				}
126
				}
128
				else if ( cmd.Compare("ADDGUI") ) // ADDGUI:<name>:<timeout>:x:y:<TYPE>:args
127
				else if ( cmd.Compare("ADDGUI") ) // ADDGUI:<name>:<timeout>:x:y:<TYPE>:args
129
				{
128
				{
130
					CyString name = str->str.GetToken(";:", 2, 2);
129
					Utils::String name = itr->token(";:", 2);
131
					CyString guicmd = str->str.GetToken(";:", 6, 6);
130
					Utils::String guicmd = itr->token(";:", 6);
132
					CDisplay *display = FindDisplay(name);
131
					CDisplay *display = FindDisplay(name);
133
					if ( guicmd.Compare("TEXT") )
132
					if ( guicmd.Compare("TEXT") )
134
					{
133
					{
135
						if ( !display )
134
						if ( !display )
136
						{
135
						{
137
							display = new CDisplayText(this, device, name, str->str.GetToken(":", 8));
136
							display = new CDisplayText(this, device, name, itr->tokens(":", 8));
138
							m_lPermDisplays->push_back(display);
137
							m_lPermDisplays->push_back(display);
139
							display->SetMaxSize(m_iWidth, m_iHeight);
138
							display->SetMaxSize(m_iWidth, m_iHeight);
140
							display->SetSize(m_iWidth, m_iHeight);
139
							display->SetSize(m_iWidth, m_iHeight);
141
						}
140
						}
142
						display->SetLength(str->str.GetToken(":", 7, 7).ToInt());
141
						display->SetLength(itr->token(":", 7).toInt());
143
						((CDisplayText *)display)->SetText(str->str.GetToken(":", 8));
142
						((CDisplayText *)display)->SetText(itr->tokens(":", 8));
144
 
143
 
145
						CDisplay::Log(CyString("Adding Text Gui Object: ") + str->str.GetToken(":", 8));
144
						CDisplay::Log(CyString("Adding Text Gui Object: ") + itr->tokens(":", 8));
146
					}
145
					}
147
 
146
 
148
					if ( display ) 
147
					if ( display ) 
149
					{
148
					{
150
						int iTimeout = str->str.GetToken ( ";:", 3, 3 ).ToInt();
149
						int iTimeout = itr->token(";:", 3).toInt();
151
						if ( iTimeout != -1 )
150
						if ( iTimeout != -1 )
152
							iTimeout = timeNow + iTimeout;
151
							iTimeout = timeNow + iTimeout;
153
						display->SetTimeout(iTimeout);
152
						display->SetTimeout(iTimeout);
154
						display->SetPosition(str->str.GetToken(":", 4, 4).ToInt(), str-&gt;str.GetToken(&quot;:", 5, 5).ToInt());
153
						display->SetPosition(itr->token(":", 4).toInt(), itr-&gt;token(&quot;:", 5).toInt());
155
					}
154
					}
156
				}
155
				}
157
				else if ( cmd.Compare("REMOVEGUI") )
156
				else if ( cmd.Compare("REMOVEGUI") )
158
				{
157
				{
159
					CDisplay *d = FindDisplay(str->str.GetToken(":", 2, 2));
158
					CDisplay *d = FindDisplay(itr->token(":", 2));
160
					if ( d )
159
					if ( d )
161
						m_lPermDisplays->remove(d, true, true);
160
						m_lPermDisplays->remove(d, true, true);
162
				}
161
				}
163
				else if ( cmd.Compare("TEXTFILE") )
162
				else if ( cmd.Compare("TEXTFILE") )
164
					m_sTextfile = str->str.GetToken ( ";:", 2, 2 );
163
					m_sTextfile = itr->token(";:", 2);
165
				else if ( cmd.Compare("LANGUAGE") )
164
				else if ( cmd.Compare("LANGUAGE") )
166
					m_sLang = str->str.GetToken ( ";:", 2, 2 );
165
					m_sLang = itr->token(";:", 2);
167
				else if ( cmd.Compare("PURGE") )
166
				else if ( cmd.Compare("PURGE") )
168
				{
167
				{
169
					size_t time = str->str.GetToken ( ";:", 2, 2 ).ToLong();
168
					size_t time = itr->token(";:", 2).toLong();
170
					if ( time == m_lCurrentTime )
169
					if ( time == m_lCurrentTime )
171
						m_lSend.Clear();
170
						m_lSend.Clear();
172
					char buf[1000];
171
					char buf[1000];
173
					sprintf_s ( buf, 1000, "t/%s%s.xml", m_sLang.c_str(), m_sTextfile.c_str() );
172
					sprintf_s ( buf, 1000, "t/%s%s.xml", m_sLang.c_str(), m_sTextfile.c_str() );
174
					remove ( buf );
173
					remove ( buf );
175
				}
174
				}
176
				else if ( cmd.Compare("CUSTOM") )
175
				else if ( cmd.Compare("CUSTOM") )
177
				{
176
				{
178
					CyString filename = str-&gt;str.GetToken ( ";:", 3 );
177
					Utils::String filename = itr-&gt;tokens(";:", 3);
179
					CyString name = str-&gt;str.GetToken ( ";:", 2, 2 );
178
					Utils::String name = itr-&gt;token(";:", 2);
180
					CDisplayCustom *display = new CDisplayCustom ( this, device, filename, name, m_iWidth, m_iHeight, &varibles );
179
					CDisplayCustom *display = new CDisplayCustom ( this, device, filename, name, m_iWidth, m_iHeight, &varibles );
181
					display->SetMouse ( &m_iMouseX, &m_iMouseY );
180
					display->SetMouse ( &m_iMouseX, &m_iMouseY );
182
					
181
					
183
					m_lDisplays->push_back ( display );
182
					m_lDisplays->push_back ( display );
184
				}
183
				}
185
				else if ( cmd.Compare("VARIBLES") )
184
				else if ( cmd.Compare("VARIBLES") )
186
				{
185
				{
187
					CyString rest = str-&gt;str.GetToken ( ";:", 2, 2 );
186
					Utils::String rest = itr-&gt;token(";:", 2);
188
					if ( rest.Left(5).Compare("ARRAY") )
187
					if ( rest.left(5).Compare("ARRAY") )
189
					{
188
					{
190
						CyString vari = rest.GetToken ( "(", 2 );
189
						Utils::String vari = rest.tokens("(", 2);
-
 
190
						vari.removeFirstSpace();
191
						vari.RemoveSpaces ();
191
						vari.removeEndSpace();
192
						if ( vari.Right(1) == ")" )
192
						if ( vari.right(1) == ")" )
193
							vari.Truncate ( -1 );
193
							vari.truncate ( -1 );
-
 
194
						vari.removeFirstSpace();
194
						vari.RemoveSpaces ();
195
						vari.removeEndSpace();
195
 
196
 
196
						int num = 0;
197
						int num = 0;
197
						CyString *varis = vari.SplitToken ( ',', &num );
198
						Utils::String *varis = vari.tokenise(",", &num);
198
						for ( int i = 0; i < num; i++ )
199
						for ( int i = 0; i < num; i++ )
199
						{
200
						{
200
							CyString s = varis[i];
201
							Utils::String s = varis[i];
201
							s.RemoveFirstSpace();
202
							s.removeFirstSpace();
202
							varibles.PushBack ( s );
203
							varibles.PushBack ( CyString(s) );
203
						}
204
						}
204
 
205
 
205
						CLEANSPLIT(varis, num)
206
						CLEANSPLIT(varis, num)
206
					}
207
					}
207
				}
208
				}
208
			}
209
			}
209
			delete lines;
-
 
210
		}
210
		}
211
		File.remove();
211
		File.remove();
212
	}
212
	}
213
 
213
 
214
	if ( (!m_lDisplays->empty()) && (!m_pDisplay) )
214
	if ( (!m_lDisplays->empty()) && (!m_pDisplay) )