Subversion Repositories spk

Rev

Rev 1 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1 Rev 242
Line 188... Line 188...
188
	lcd->ModifyControlsOnPage(5);
188
	lcd->ModifyControlsOnPage(5);
189
	for ( int i = 0; i < 4; i++ )
189
	for ( int i = 0; i < 4; i++ )
190
	{
190
	{
191
		m_hCustomText[i] = lcd->AddText ( LG_SCROLLING_TEXT_FAST, LG_SMALL, DT_CENTER, 160 );
191
		m_hCustomText[i] = lcd->AddText ( LG_SCROLLING_TEXT_FAST, LG_SMALL, DT_CENTER, 160 );
192
		lcd->SetOrigin ( m_hCustomText[i], 0, (i + 1) * 9 );
192
		lcd->SetOrigin ( m_hCustomText[i], 0, (i + 1) * 9 );
193
		lcd->SetText ( m_hCustomText[i], "Test" );
193
		lcd->SetText ( m_hCustomText[i], L"Test" );
194
	}
194
	}
195
	HANDLE customPage = lcd->AddText ( LG_STATIC_TEXT, LG_SMALL, DT_LEFT, 80 );
195
	HANDLE customPage = lcd->AddText ( LG_STATIC_TEXT, LG_SMALL, DT_LEFT, 80 );
196
	lcd->SetOrigin ( customPage, 0, 0);
196
	lcd->SetOrigin ( customPage, 0, 0);
197
	lcd->SetText ( customPage, _T("Custom Stats") );
197
	lcd->SetText ( customPage, _T("Custom Stats") );
198
	m_hCustomPage = lcd->AddText ( LG_STATIC_TEXT, LG_SMALL, DT_RIGHT, 80 );
198
	m_hCustomPage = lcd->AddText ( LG_STATIC_TEXT, LG_SMALL, DT_RIGHT, 80 );
Line 250... Line 250...
250
void CLCDDisplay::Display ()
250
void CLCDDisplay::Display ()
251
{
251
{
252
	int i;
252
	int i;
253
 
253
 
254
    // Modifying controls on the 1st page
254
    // Modifying controls on the 1st page
255
	CyString name = m_pData->GetGameName();
255
	Utils::WString name = m_pData->GetGameName();
256
	name += ": ";
256
	name += L": ";
257
	name += m_pData->GetPilot();
257
	name += m_pData->pilot();
258
 
258
 
259
	// first stats page
259
	// first stats page
260
    m_pLcd->ModifyControlsOnPage(0);
260
    m_pLcd->ModifyControlsOnPage(0);
261
	m_pLcd->SetText ( m_hStatsTitle1, (LPCSTR)name.c_str() );
261
	m_pLcd->SetText ( m_hStatsTitle1, name.c_str() );
262
	m_pLcd->SetText ( m_hShipsNum, (LPCSTR)CyString::Number(m_pData->GetShipsNum()).c_str() );
262
	m_pLcd->SetText ( m_hShipsNum, Utils::WString::Number(m_pData->GetShipsNum()).c_str() );
263
	m_pLcd->SetText ( m_hStationsNum, (LPCSTR)CyString::Number(m_pData->GetStations()).c_str() );
263
	m_pLcd->SetText ( m_hStationsNum, Utils::WString::Number(m_pData->GetStations()).c_str() );
264
	m_pLcd->SetText ( m_hCredits, (LPCSTR)m_pData->GetCredits().c_str() );
264
	m_pLcd->SetText ( m_hCredits, m_pData->credits().c_str() );
265
	m_pLcd->SetText ( m_hGameTime, (LPCSTR)m_pData->GetGameTime().c_str() );
265
	m_pLcd->SetText ( m_hGameTime, m_pData->gameTime().c_str() );
266
	m_pLcd->SetText ( m_hInsurance1, (LPCSTR)CyString::Number(m_pData->GetInsurance()).c_str() );
266
	m_pLcd->SetText ( m_hInsurance1, Utils::WString::Number(m_pData->GetInsurance()).c_str() );
267
 
267
 
268
	// second stats pages (each ship classes)
268
	// second stats pages (each ship classes)
269
    m_pLcd->ModifyControlsOnPage(1);
269
    m_pLcd->ModifyControlsOnPage(1);
270
	m_pLcd->SetText ( m_hStatsTitle2, (LPCSTR)name.c_str() );
270
	m_pLcd->SetText(m_hStatsTitle2, name);
271
	for ( i = 0; i < MAXSHIPCLASS; i++ )
271
	for ( i = 0; i < MAXSHIPCLASS; i++ )
272
		m_pLcd->SetText ( m_hClasses[i], (LPCSTR)CyString::Number(m_pData->GetShipClass(i)).c_str() );
272
		m_pLcd->SetText ( m_hClasses[i], Utils::WString::Number(m_pData->GetShipClass(i)).c_str() );
273
	m_pLcd->SetText ( m_hInsurance2, (LPCSTR)CyString::Number(m_pData->GetInsurance()).c_str() );
273
	m_pLcd->SetText ( m_hInsurance2, Utils::WString::Number(m_pData->GetInsurance()).c_str() );
274
 
274
 
275
	// first combat page, your current ship)
275
	// first combat page, your current ship)
276
    m_pLcd->ModifyControlsOnPage(2);
276
    m_pLcd->ModifyControlsOnPage(2);
277
	m_pLcd->SetText ( m_hCombatTitle1, (LPCSTR)m_pData->GetMyShip().c_str() );
277
	m_pLcd->SetText ( m_hCombatTitle1, m_pData->myShip() );
278
	m_pLcd->SetProgressBarPosition ( m_hMyHull, (float)m_pData->GetHull());
278
	m_pLcd->SetProgressBarPosition ( m_hMyHull, (float)m_pData->GetHull());
279
	m_pLcd->SetProgressBarPosition ( m_hMyShield, (float)m_pData->GetShields());
279
	m_pLcd->SetProgressBarPosition ( m_hMyShield, (float)m_pData->GetShields());
280
	m_pLcd->SetProgressBarPosition ( m_hMyWeapon, (float)m_pData->GetWeaponEnergy ());
280
	m_pLcd->SetProgressBarPosition ( m_hMyWeapon, (float)m_pData->GetWeaponEnergy ());
281
	m_pLcd->SetText ( m_hMissiles, (LPCSTR)CyString::Number(m_pData->GetMissiles()).c_str() );
281
	m_pLcd->SetText ( m_hMissiles, Utils::WString::Number(m_pData->GetMissiles()).c_str() );
282
	m_pLcd->SetText ( m_hEnemies, (LPCSTR)CyString::Number(m_pData->GetEnemies()).c_str() );
282
	m_pLcd->SetText ( m_hEnemies, Utils::WString::Number(m_pData->GetEnemies()).c_str() );
283
 
283
 
284
 
284
 
285
	// second combat page, Your current target
285
	// second combat page, Your current target
286
    m_pLcd->ModifyControlsOnPage(3);
286
    m_pLcd->ModifyControlsOnPage(3);
287
	CyString target = m_pData->GetMyTarget();
287
	Utils::WString target = m_pData->myTarget();
288
	if ( !m_pData->GetTargetRelation().Empty() )
288
	if ( !m_pData->targetRelation().empty() )
289
	{
289
	{
290
		target += " / ";
290
		target += L" / ";
291
		target += m_pData->GetTargetRelation();
291
		target += m_pData->targetRelation();
292
	}
292
	}
293
	m_pLcd->SetText ( m_hCombatTitle2, (LPCSTR)target.c_str() );
293
	m_pLcd->SetText ( m_hCombatTitle2, target);
294
	m_pLcd->SetText ( m_hSpeedText1, _T("Speed:") );
294
	m_pLcd->SetText ( m_hSpeedText1, _T("Speed:") );
295
	m_pLcd->SetText ( m_hSpeedText2, _T("Distance:") );
295
	m_pLcd->SetText ( m_hSpeedText2, _T("Distance:") );
296
	CyString speed = CyString::Number(m_pData-&gt;GetTargetSpeed()) + " (" + CyString::Number(m_pData->GetMySpeed()) + ")";
296
	Utils::WString speed = Utils::WString::Number(m_pData-&gt;GetTargetSpeed()) + L" (" + Utils::WString::Number(m_pData->GetMySpeed()) + L")";
297
	m_pLcd->SetText ( m_hMySpeed, (LPCSTR)speed.c_str() );
297
	m_pLcd->SetText ( m_hMySpeed, speed);
298
	m_pLcd->SetText ( m_hTargetSpeed, (LPCSTR)m_pData->GetTargetDistanceStr().c_str() );
298
	m_pLcd->SetText ( m_hTargetSpeed, m_pData->GetTargetDistanceStr());
299
	m_pLcd->SetProgressBarPosition ( m_hTargetHull, (float)m_pData->GetTargetHull() );
299
	m_pLcd->SetProgressBarPosition ( m_hTargetHull, (float)m_pData->GetTargetHull() );
300
	m_pLcd->SetProgressBarPosition ( m_hTargetShield, (float)m_pData->GetTargetShield() );
300
	m_pLcd->SetProgressBarPosition ( m_hTargetShield, (float)m_pData->GetTargetShield() );
301
	m_pLcd->SetText ( m_hMissiles2, (LPCSTR)CyString::Number(m_pData->GetMissiles()).c_str() );
301
	m_pLcd->SetText ( m_hMissiles2, Utils::WString::Number(m_pData->GetMissiles()).c_str() );
302
	m_pLcd->SetText ( m_hEnemies2, (LPCSTR)CyString::Number(m_pData->GetEnemies()).c_str() );
302
	m_pLcd->SetText ( m_hEnemies2, Utils::WString::Number(m_pData->GetEnemies()).c_str() );
303
 
303
 
304
	// rep pagess
304
	// rep pagess
305
    m_pLcd->ModifyControlsOnPage(4);
305
    m_pLcd->ModifyControlsOnPage(4);
306
 
306
 
307
	int done = 0;
307
	int done = 0;
308
	for ( i = 0; i < 4; i++ )
308
	for ( i = 0; i < 4; i++ )
309
		m_pLcd->SetText ( m_hRepText[i], _T("") );
309
		m_pLcd->SetText ( m_hRepText[i], _T("") );
310
	for ( i = 0; i < MAXRACEREP; i++ )
310
	for ( i = 0; i < MAXRACEREP; i++ )
311
	{
311
	{
312
		SRaceRep rep = m_pData->GetRaceRep(i);
312
		SRaceRep rep = m_pData->GetRaceRep(i);
313
		if ( rep.sRace.Empty() ) continue;
313
		if ( rep.sRace.empty() ) continue;
314
 
314
 
315
		int pos = done - (m_iSplitPage * 4);
315
		int pos = done - (m_iSplitPage * 4);
316
		++done;
316
		++done;
317
		if ( pos >= 4 )
317
		if ( pos >= 4 )
318
			break;
318
			break;
319
		else if ( pos < 0 )
319
		else if ( pos < 0 )
320
			continue;
320
			continue;
321
		CyString sRep = rep.sRank + " (" + (long)rep.iRepPct + "%)";
321
		Utils::WString sRep = rep.sRank + L" (" + (long)rep.iRepPct + L"%)";
322
		if ( rep.bIncludeRace )
322
		if ( rep.bIncludeRace )
323
			sRep = rep.sRace + ": " + sRep;
323
			sRep = rep.sRace + ": " + sRep;
324
		m_pLcd->SetText ( m_hRepText[pos], (LPCSTR)sRep.c_str() );
324
		m_pLcd->SetText ( m_hRepText[pos], sRep);
325
	}
325
	}
326
 
326
 
327
	// wait while data is locked
327
	// wait while data is locked
328
	while ( m_pData->IsLocked() ) Sleep(1);
328
	while ( m_pData->IsLocked() ) Sleep(1);
329
 
329
 
330
    m_pLcd->ModifyControlsOnPage(5);
330
    m_pLcd->ModifyControlsOnPage(5);
331
	CyStringList *list = m_pData->GetCustomList();
331
	const Utils::WStringList &list = m_pData->customList();
332
	int pages = ((list->Count() - 1) / 4);
332
	int pages = ((list.size() - 1) / 4);
333
	CyString page("(Page: ");
333
	Utils::WString page(L"(Page: ");
334
	page += (long)(pages + 1);
334
	page += (long)(pages + 1);
335
	page += "/";
335
	page += L"/";
336
	page += (long)(m_iSplitPage + 1);
336
	page += (long)(m_iSplitPage + 1);
337
	page += ")";
337
	page += L")";
338
	m_pLcd->SetText ( m_hCustomPage, (LPCSTR)page.c_str() );
338
	m_pLcd->SetText ( m_hCustomPage, page);
339
 
339
 
340
	SStringList *pCustom = list->GetAt ( m_iSplitPage * 4 );
340
	size_t pos = m_iSplitPage * 4;
-
 
341
	const Utils::WStringNode* pCustom = list[pos];
341
 
342
 
342
	for ( i = 0; i < 4; i++ )
343
	for ( i = 0; i < 4; i++ )
343
	{
344
	{
344
		if ( !pCustom )
345
		if ( !pCustom )
345
			m_pLcd->SetText ( m_hCustomText[i], _T("") );
346
			m_pLcd->SetText ( m_hCustomText[i], _T("") );
346
		else
347
		else
347
		{
348
		{
348
			m_pLcd->SetText ( m_hCustomText[i], pCustom->data.c_str() );
349
			m_pLcd->SetText ( m_hCustomText[i], pCustom->data);
349
			pCustom = pCustom->next;
350
			pCustom = list[++pos];
350
		}
351
		}
351
	}
352
	}
352
 
353
 
353
    m_pLcd->ModifyControlsOnPage(6);
354
    m_pLcd->ModifyControlsOnPage(6);
354
	m_pLcd->SetText ( m_hMissiles2, (LPCSTR)CyString::Number(m_pData->GetMissiles()).c_str() );
355
	m_pLcd->SetText ( m_hMissiles2, Utils::WString::Number(m_pData->GetMissiles()));
355
	m_pLcd->SetText ( m_hEnemies2, (LPCSTR)CyString::Number(m_pData->GetEnemies2()).c_str() );
356
	m_pLcd->SetText ( m_hEnemies2, Utils::WString::Number(m_pData->GetEnemies2()));
356
 
357
 
357
    m_pLcd->ModifyControlsOnPage(m_iTitlePage);
358
    m_pLcd->ModifyControlsOnPage(m_iTitlePage);
358
	m_pLcd->SetText(m_hMainText, (LPCSTR)m_pData-&gt;GetGameName().GetToken(" ", 2).c_str());
359
	m_pLcd->SetText(m_hMainText, m_pData-&gt;GetGameName().tokens(L" ", 2));
359
    m_pLcd->ModifyControlsOnPage(m_iLoadingPage);
360
    m_pLcd->ModifyControlsOnPage(m_iLoadingPage);
360
	m_pLcd->SetText(m_hMainText2, (LPCSTR)m_pData-&gt;GetGameName().GetToken(" ", 2).c_str());
361
	m_pLcd->SetText(m_hMainText2, m_pData-&gt;GetGameName().tokens(L" ", 2));
361
 
362
 
362
}
363
}
363
 
364
 
364
int CLCDDisplay::FindMaxRacePages()
365
int CLCDDisplay::FindMaxRacePages()
365
{
366
{
366
	int count = 0;
367
	int count = 0;
367
	for ( int i = 0; i < MAXRACEREP; i++ )
368
	for ( int i = 0; i < MAXRACEREP; i++ )
368
	{
369
	{
369
		SRaceRep rep = m_pData->GetRaceRep(i);
370
		SRaceRep rep = m_pData->GetRaceRep(i);
370
		if ( rep.sRace.Empty() ) continue;
371
		if ( rep.sRace.empty() ) continue;
371
 
372
 
372
		++count;
373
		++count;
373
	}
374
	}
374
 
375
 
375
	int pages = count / 4;
376
	int pages = count / 4;
Line 408... Line 409...
408
			m_iSplitPage = 0;
409
			m_iSplitPage = 0;
409
		m_iPage = 4;
410
		m_iPage = 4;
410
	}
411
	}
411
    else if ( m_pLcd->ButtonTriggered(LG_BUTTON_4))
412
    else if ( m_pLcd->ButtonTriggered(LG_BUTTON_4))
412
	{
413
	{
413
		CyStringList *list = m_pData->GetCustomList();
414
		const Utils::WStringList &list = m_pData->customList();
414
		if ( m_iPage == 5 )
415
		if ( m_iPage == 5 )
415
		{
416
		{
416
			m_iSplitPage++;
417
			m_iSplitPage++;
417
			if ( m_iSplitPage > ((list->Count() - 1) / 4) )
418
			if ( m_iSplitPage > ((static_cast<int>(list.size()) - 1) / 4) )
418
				m_iSplitPage = 0;
419
				m_iSplitPage = 0;
419
		}
420
		}
420
		else
421
		else
421
			m_iSplitPage = 0;
422
			m_iSplitPage = 0;
422
 
423
 
Line 454... Line 455...
454
		m_bLoading = false;
455
		m_bLoading = false;
455
		m_bWaiting = false;
456
		m_bWaiting = false;
456
		m_pLcd->ModifyControlsOnPage ( m_iLoadingPage );
457
		m_pLcd->ModifyControlsOnPage ( m_iLoadingPage );
457
		m_pLcd->SetProgressBarPosition ( m_hLoadBar, 100 );
458
		m_pLcd->SetProgressBarPosition ( m_hLoadBar, 100 );
458
 
459
 
459
		if ( m_pData->GetCustomFiles()->Count() )
460
		if ( m_pData->customFiles().size())
460
		{
461
		{
461
			CyString c = m_pData->GetCustomFiles()->First();
462
			Utils::WString c = m_pData->customFiles().front();
462
			CyString v = m_pData->GetCustomFiles()->Head()->data;
463
			Utils::WString v = m_pData->customFiles()[0]->data;
463
			m_pData->GetCustomFiles()->PopFront();
464
			const_cast<Utils::WStringList *>(&m_pData->customFiles())->popFront();
464
			m_pCustomScreen = new CLcdCustomScreen ( m_pLcd );
465
			m_pCustomScreen = new CLcdCustomScreen ( m_pLcd );
465
			m_pCustomScreen->LoadScript ( m_pData->GetGameDirectory(), m_pData->GetProgDir(), c.c_str() );
466
			m_pCustomScreen->loadScript ( m_pData->GetGameDirectory(), m_pData->GetProgDir(), c.c_str() );
-
 
467
 
466
			int max;
468
			std::vector<Utils::WString> tokens;
467
			CyString *tokens = v.SplitToken(";|", &max);
469
			size_t max = v.tokenise(L";|", tokens);
468
			for ( int i = 0; i < max; i++ )
470
			for (size_t i = 0; i < max; i++ )
469
				m_pCustomScreen->SetVarible ( tokens[i], i );
471
				m_pCustomScreen->setVarible(tokens[i], i);
470
		}
472
		}
471
	}
473
	}
472
	else
474
	else
473
	{
475
	{
474
		m_pLcd->ModifyControlsOnPage ( m_iLoadingPage );
476
		m_pLcd->ModifyControlsOnPage ( m_iLoadingPage );
Line 499... Line 501...
499
 
501
 
500
	// Update the LCD display
502
	// Update the LCD display
501
    m_pLcd->Update();
503
    m_pLcd->Update();
502
}
504
}
503
 
505
 
504
LPCSTR CLCDDisplay::GetShipClassName(int i)
506
Utils::WString CLCDDisplay::GetShipClassName(int i)
505
{
507
{
506
	switch (i)
508
	switch (i)
507
	{
509
	{
508
		case CLASS_M1:
510
		case CLASS_M1:
509
			return _T("M1:");
511
			return L"M1:";
510
		case CLASS_M2:
512
		case CLASS_M2:
511
			return _T("M2:");
513
			return L"M2:";
512
		case CLASS_M3:
514
		case CLASS_M3:
513
			return _T("M3:");
515
			return L"M3:";
514
		case CLASS_M4:
516
		case CLASS_M4:
515
			return _T("M4:");
517
			return L"M4:";
516
		case CLASS_M5:
518
		case CLASS_M5:
517
			return _T("M5:");
519
			return L"M5:";
518
		case CLASS_M6:
520
		case CLASS_M6:
519
			return _T("M6:");
521
			return L"M6:";
520
		case CLASS_M7:
522
		case CLASS_M7:
521
			return _T("M7:");
523
			return L"M7:";
522
		case CLASS_M8:
524
		case CLASS_M8:
523
			return _T("M8:");
525
			return L"M8:";
524
		case CLASS_TS:
526
		case CLASS_TS:
525
			return _T("TS:");
527
			return L"TS:";
526
		case CLASS_TM:
528
		case CLASS_TM:
527
			return _T("TM:");
529
			return L"TM:";
528
		case CLASS_TP:
530
		case CLASS_TP:
529
			return _T("TP:");
531
			return L"TP:";
530
		case CLASS_TL:
532
		case CLASS_TL:
531
			return _T("TL:");
533
			return L"TL:";
532
	}
534
	}
533
 
535
 
534
	return "";
536
	return "";
535
}
537
}