Subversion Repositories spk

Rev

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

Rev 83 Rev 86
Line 303... Line 303...
303
				if ( p->GetParent() && p->GetParent() == m_pPackages->GetEnabledMod() )
303
				if ( p->GetParent() && p->GetParent() == m_pPackages->GetEnabledMod() )
304
					--indent;
304
					--indent;
305
			}
305
			}
306
 
306
 
307
			ListViewItem ^item = gcnew ListViewItem(SystemStringFromCyString(name));
307
			ListViewItem ^item = gcnew ListViewItem(SystemStringFromCyString(name));
-
 
308
			item->UseItemStyleForSubItems = false;
308
			item->IndentCount = (indent * 2);
309
			item->IndentCount = (indent * 2);
309
			item->SubItems->Add(_US(p->author()));
310
			item->SubItems->Add(_US(p->author()));
310
			item->SubItems->Add(_US(p->version()));
311
			item->SubItems->Add(_US(p->version()));
311
			item->SubItems->Add(_US(p->creationDate()));
312
			item->SubItems->Add(_US(p->creationDate()));
312
			if ( p->GetType() == TYPE_XSP )
313
			if ( p->GetType() == TYPE_XSP )
Line 319... Line 320...
319
				item->SubItems->Add(SystemStringFromCyString(spk->GetScriptTypeString(m_pPackages->GetLanguage())));
320
				item->SubItems->Add(SystemStringFromCyString(spk->GetScriptTypeString(m_pPackages->GetLanguage())));
320
			}
321
			}
321
			else
322
			else
322
				item->SubItems->Add("");
323
				item->SubItems->Add("");
323
 
324
 
324
			if ( p->IsEnabled() )
325
			if ( p->IsEnabled() ) {
325
				item->SubItems->Add("Yes");
326
				item->SubItems->Add("Yes");
-
 
327
				item->SubItems[item->SubItems->Count - 1]->ForeColor = Color::Green;
-
 
328
			}
326
			else
329
			else {
327
				item->SubItems->Add("No");
330
				item->SubItems->Add("No");
-
 
331
				item->SubItems[item->SubItems->Count - 1]->ForeColor = Color::Red;
-
 
332
			}
328
			if ( p->IsSigned() )
333
			if ( p->IsSigned() )
329
				item->SubItems->Add("Yes");
334
				item->SubItems->Add("Yes");
330
			else
335
			else
331
				item->SubItems->Add("No");
336
				item->SubItems->Add("No");
332
			item->Tag = SystemStringFromCyString(CyString::Number(p->GetNum()));
337
			item->Tag = SystemStringFromCyString(CyString::Number(p->GetNum()));
333
 
338
 
334
			ListPackages->Items->Add(item);
339
			ListPackages->Items->Add(item);
335
 
340
 
336
			if ( useGroup )
341
			if ( useGroup )
337
				item->Group = useGroup;
342
				item->Group = useGroup;
338
			else
343
			else
339
			{
344
			{
340
				int addGroup = LISTGROUP_INSTALLED;
345
				int addGroup = LISTGROUP_INSTALLED;
341
				if ( p->GetParent() && p->GetParent() == m_pPackages->GetEnabledMod() )
346
				if ( p->GetParent() && p->GetParent() == m_pPackages->GetEnabledMod() )
342
					addGroup = LISTGROUP_MOD;
347
					addGroup = LISTGROUP_MOD;
343
				else if ( p->GetType() == TYPE_SPK && ((CSpkFile *)p)->IsLibrary() )
348
				else if ( p->GetType() == TYPE_SPK && ((CSpkFile *)p)->IsLibrary() )
344
					addGroup = LISTGROUP_LIBRARY;
349
					addGroup = LISTGROUP_LIBRARY;
Line 348... Line 353...
348
					addGroup = LISTGROUP_SHIP;
353
					addGroup = LISTGROUP_SHIP;
349
				else if ( p->GetType() == TYPE_ARCHIVE )
354
				else if ( p->GetType() == TYPE_ARCHIVE )
350
					addGroup = LISTGROUP_ARCHIVE;
355
					addGroup = LISTGROUP_ARCHIVE;
351
 
356
 
352
				item->Group = ListPackages->Groups[addGroup];
357
				item->Group = ListPackages->Groups[addGroup];
353
			}
358
			}
354
 
359
 
355
			CyString groupName = CyStringFromSystemString(item->Group->Header);
360
			CyString groupName = CyStringFromSystemString(item->Group->Header);
356
			if ( groupName.IsIn(" [") )
361
			if ( groupName.IsIn(" [") )
357
			{
362
			{
358
				int enabled = groupName.GetToken(" [", 2, 2).GetToken("/", 1, 1).ToInt();
363
				int enabled = groupName.GetToken(" [", 2, 2).GetToken("/", 1, 1).ToInt();
359
				int total = groupName.GetToken(" [", 2, 2).GetToken("/", 2, 2).GetToken("]", 1, 1).ToInt() + 1;
364
				int total = groupName.GetToken(" [", 2, 2).GetToken("/", 2, 2).GetToken("]", 1, 1).ToInt() + 1;
360
				if ( p->IsEnabled() ) ++enabled;
365
				if ( p->IsEnabled() ) ++enabled;
361
				groupName = groupName.GetToken(" [", 1, 1) + " [" + CyString::Number(enabled) + "/" + CyString::Number(total) + "]";
366
				groupName = groupName.GetToken(" [", 1, 1) + " [" + CyString::Number(enabled) + "/" + CyString::Number(total) + "]";
362
			}
367
			}
363
			else
368
			else
364
			{
369
			{
365
				if ( p->IsEnabled() )
370
				if ( p->IsEnabled() )
366
					groupName = groupName + " [1/1]";
371
					groupName = groupName + " [1/1]";
367
				else
372
				else
368
					groupName = groupName + " [0/1]";
373
					groupName = groupName + " [0/1]";
369
			}
374
			}
370
			item->Group->Header = SystemStringFromCyString(groupName);
375
			item->Group->Header = SystemStringFromCyString(groupName);
371
 
376
 
372
			// get the icon
377
			// get the icon
Line 388... Line 393...
388
					item->ImageKey = "package";
393
					item->ImageKey = "package";
389
			}
394
			}
390
 
395
 
391
			// check for any children
396
			// check for any children
392
			this->_DisplayPackages(p, item->Group);
397
			this->_DisplayPackages(p, item->Group);
-
 
398
		}
-
 
399
	}
-
 
400
 
-
 
401
	void MainGui::AddIconToPackages(String ^icon)
-
 
402
	{
-
 
403
		int index = this->imageList1->Images->IndexOfKey(icon + ".png");
-
 
404
		if ( index != -1 )
-
 
405
		{
-
 
406
			ListPackages->SmallImageList->Images->Add(icon, this->imageList1->Images[index]);
-
 
407
			ListPackages->LargeImageList->Images->Add(icon, this->imageList1->Images[index]);
393
		}
408
		}
394
	}
409
	}
395
 
410
 
396
	void MainGui::UpdatePackages()
411
	void MainGui::UpdatePackages()
397
	{
412
	{
Line 403... Line 418...
403
		ListPackages->LargeImageList->ColorDepth = Windows::Forms::ColorDepth::Depth32Bit;
418
		ListPackages->LargeImageList->ColorDepth = Windows::Forms::ColorDepth::Depth32Bit;
404
		ListPackages->SmallImageList->ImageSize = System::Drawing::Size(16, 16);
419
		ListPackages->SmallImageList->ImageSize = System::Drawing::Size(16, 16);
405
		ListPackages->SmallImageList->ColorDepth = Windows::Forms::ColorDepth::Depth32Bit;
420
		ListPackages->SmallImageList->ColorDepth = Windows::Forms::ColorDepth::Depth32Bit;
406
 
421
 
407
		int index = this->imageList1->Images->IndexOfKey("package.png");
422
		int index = this->imageList1->Images->IndexOfKey("package.png");
408
		if ( index != -1 )
423
		if ( index != -1 )
409
		{
424
		{
410
			ListPackages->SmallImageList->Images->Add("package", this->imageList1->Images[index]);
425
			ListPackages->SmallImageList->Images->Add("package", this->imageList1->Images[index]);
411
			ListPackages->LargeImageList->Images->Add("package", this->imageList1->Images[index]);
426
			ListPackages->LargeImageList->Images->Add("package", this->imageList1->Images[index]);
412
		}
427
		}
413
		index = this->imageList1->Images->IndexOfKey("ship.png");
428
		index = this->imageList1->Images->IndexOfKey("ship.png");
414
		if ( index != -1 )
429
		if ( index != -1 )
Line 433... Line 448...
433
		if ( index != -1 )
448
		if ( index != -1 )
434
		{
449
		{
435
			ListPackages->SmallImageList->Images->Add("archive", this->imageList1->Images[index]);
450
			ListPackages->SmallImageList->Images->Add("archive", this->imageList1->Images[index]);
436
			ListPackages->LargeImageList->Images->Add("archive", this->imageList1->Images[index]);
451
			ListPackages->LargeImageList->Images->Add("archive", this->imageList1->Images[index]);
437
		}
452
		}
-
 
453
 
-
 
454
		AddIconToPackages("tick");
-
 
455
		AddIconToPackages("no");
438
 
456
 
439
		ListViewGroup ^group = gcnew ListViewGroup("Installed Scripts", HorizontalAlignment::Left);
457
		ListViewGroup ^group = gcnew ListViewGroup("Installed Scripts", HorizontalAlignment::Left);
440
		ListPackages->Groups->Add(group);
458
		ListPackages->Groups->Add(group);
441
		ListViewGroup ^shipGroup = gcnew ListViewGroup("Installed Ships", HorizontalAlignment::Left);
459
		ListViewGroup ^shipGroup = gcnew ListViewGroup("Installed Ships", HorizontalAlignment::Left);
442
		ListPackages->Groups->Add(shipGroup);
460
		ListPackages->Groups->Add(shipGroup);
Line 609... Line 627...
609
				// not installing
627
				// not installing
610
				if ( errored )
628
				if ( errored )
611
				{
629
				{
612
					delete package;
630
					delete package;
613
					package = NULL;
631
					package = NULL;
614
				}
632
				}
615
			}
633
			}
616
		}
634
		}
617
 
635
 
618
		if ( errored )
636
		if ( errored )
619
		{
637
		{
Line 897... Line 915...
897
	bool MainGui::StartBackground(int type)
915
	bool MainGui::StartBackground(int type)
898
	{
916
	{
899
		if ( backgroundWorker1->IsBusy )
917
		if ( backgroundWorker1->IsBusy )
900
			return false;
918
			return false;
901
		if ( m_bRunningBackground )
919
		if ( m_bRunningBackground )
902
			return false;
920
			return false;
903
 
921
 
904
		m_iBackgroundTask = type;
922
		m_iBackgroundTask = type;
905
 
923
 
906
		backgroundWorker1->RunWorkerAsync();
924
		backgroundWorker1->RunWorkerAsync();
907
		m_bRunningBackground = true;
925
		m_bRunningBackground = true;
908
		return true;
926
		return true;
Line 970... Line 988...
970
			return;
988
			return;
971
		}
989
		}
972
 
990
 
973
		DownloadPackageList ^dpl = gcnew DownloadPackageList(m_pPackages, &servers);
991
		DownloadPackageList ^dpl = gcnew DownloadPackageList(m_pPackages, &servers);
974
		dpl->ShowDialog(this);
992
		dpl->ShowDialog(this);
975
 
993
 
976
		if ( m_pPackages->AnyAvailablePackages() )
994
		if ( m_pPackages->AnyAvailablePackages() )
977
			MessageBox::Show(this, "Package update completed\n" + m_pPackages->GetAvailablePackageList()->size() + " packages have been added to the package browser", "Found Packages", MessageBoxButtons::OK, MessageBoxIcon::Information);
995
			MessageBox::Show(this, "Package update completed\n" + m_pPackages->GetAvailablePackageList()->size() + " packages have been added to the package browser", "Found Packages", MessageBoxButtons::OK, MessageBoxIcon::Information);
978
		else
996
		else
979
			MessageBox::Show(this, "Unable to find any packages\n", "No Packages Found", MessageBoxButtons::OK, MessageBoxIcon::Warning);
997
			MessageBox::Show(this, "Unable to find any packages\n", "No Packages Found", MessageBoxButtons::OK, MessageBoxIcon::Warning);
980
	}
998
	}
Line 1024... Line 1042...
1024
		TextDesc->Text = "";
1042
		TextDesc->Text = "";
1025
		bool buttonEnabled = false;
1043
		bool buttonEnabled = false;
1026
		if ( ListPackages->SelectedItems->Count )
1044
		if ( ListPackages->SelectedItems->Count )
1027
		{
1045
		{
1028
			buttonEnabled = true;
1046
			buttonEnabled = true;
1029
 
1047
 
1030
			ListView::SelectedListViewItemCollection^ selected = this->ListPackages->SelectedItems;
1048
			ListView::SelectedListViewItemCollection^ selected = this->ListPackages->SelectedItems;
1031
			System::Collections::IEnumerator^ myEnum = selected->GetEnumerator();
1049
			System::Collections::IEnumerator^ myEnum = selected->GetEnumerator();
1032
			while ( myEnum->MoveNext() )
1050
			while ( myEnum->MoveNext() )
1033
			{
1051
			{
1034
				CBaseFile *p = this->FindPackageFromList(safe_cast<ListViewItem ^>(myEnum->Current));
1052
				CBaseFile *p = this->FindPackageFromList(safe_cast<ListViewItem ^>(myEnum->Current));
Line 1042... Line 1060...
1042
 
1060
 
1043
					this->PictureDisplay->Show();
1061
					this->PictureDisplay->Show();
1044
					bool addedIcon = false;
1062
					bool addedIcon = false;
1045
					C_File *picFile = p->GetFirstFile(FILETYPE_ADVERT);
1063
					C_File *picFile = p->GetFirstFile(FILETYPE_ADVERT);
1046
					if ( picFile )
1064
					if ( picFile )
1047
					{
1065
					{
1048
						System::String ^pic = SystemStringFromCyString(picFile->GetFilePointer());
1066
						System::String ^pic = SystemStringFromCyString(picFile->GetFilePointer());
1049
						if ( System::IO::File::Exists(pic) )
1067
						if ( System::IO::File::Exists(pic) )
1050
						{
1068
						{
1051
							Bitmap ^myBitmap = gcnew Bitmap(pic);
1069
							Bitmap ^myBitmap = gcnew Bitmap(pic);
1052
							if ( myBitmap )
1070
							if ( myBitmap )
1053
							{
1071
							{
1054
								this->PictureDisplay->Image = dynamic_cast<Image ^>(myBitmap);
1072
								this->PictureDisplay->Image = dynamic_cast<Image ^>(myBitmap);
1055
								addedIcon = true;
1073
								addedIcon = true;
1056
							}
1074
							}
1057
						}
1075
						}
1058
					}
1076
					}
1059
 
1077
 
1060
					if ( !addedIcon )
1078
					if ( !addedIcon )
1061
					{
1079
					{
1062
	
1080
	
1063
						System::ComponentModel::ComponentResourceManager^  resources = (gcnew System::ComponentModel::ComponentResourceManager(MainGui::typeid));
1081
						System::ComponentModel::ComponentResourceManager^  resources = (gcnew System::ComponentModel::ComponentResourceManager(MainGui::typeid));
1064
						this->PictureDisplay->Image = (cli::safe_cast<System::Drawing::Image^  >(resources->GetObject(L"PictureDisplay.Image")));
1082
						this->PictureDisplay->Image = (cli::safe_cast<System::Drawing::Image^  >(resources->GetObject(L"PictureDisplay.Image")));
1065
					}
1083
					}
1066
 
1084
 
1067
					if ( p->GetType() != TYPE_ARCHIVE )
1085
					if ( p->GetType() != TYPE_ARCHIVE )
1068
						this->PanelDisplay->Show();
1086
						this->PanelDisplay->Show();
1069
				}	
1087
				}	
1070
			}				
1088
			}				
1071
		}
1089
		}
Line 1079... Line 1097...
1079
	{
1097
	{
1080
		OpenFileDialog ^ofd = gcnew OpenFileDialog();
1098
		OpenFileDialog ^ofd = gcnew OpenFileDialog();
1081
		ofd->Filter = "X-Universe Executable|";
1099
		ofd->Filter = "X-Universe Executable|";
1082
		String ^games = "";
1100
		String ^games = "";
1083
		for ( int i = 0; i < m_pPackages->GetGameExe()->GetNumGames(); i++ )
1101
		for ( int i = 0; i < m_pPackages->GetGameExe()->GetNumGames(); i++ )
1084
		{
1102
		{
1085
			SGameExe *exe = m_pPackages->GetGameExe()->GetGame(i);
1103
			SGameExe *exe = m_pPackages->GetGameExe()->GetGame(i);
1086
			if ( i ) ofd->Filter += ";";
1104
			if ( i ) ofd->Filter += ";";
1087
			ofd->Filter += SystemStringFromCyString(exe->sExe);
1105
			ofd->Filter += SystemStringFromCyString(exe->sExe);
1088
			games += "|" + SystemStringFromCyString(exe->sName) + "|" + SystemStringFromCyString(exe->sExe);
1106
			games += "|" + SystemStringFromCyString(exe->sName) + "|" + SystemStringFromCyString(exe->sExe);
1089
		}
1107
		}
Line 1169... Line 1187...
1169
				if ( p->IsEnabled() )
1187
				if ( p->IsEnabled() )
1170
				{
1188
				{
1171
					if ( p->GetType() == TYPE_SPK && ((CSpkFile *)p)->IsLibrary() )
1189
					if ( p->GetType() == TYPE_SPK && ((CSpkFile *)p)->IsLibrary() )
1172
					{
1190
					{
1173
						if ( this->DisplayMessageBox(false, "Disable Library", "Package: " + SystemStringFromCyString(p->GetFullPackageName(m_pPackages->GetLanguage())) + "\nThis is a library package and might be required for other installed packages\nDo you still wish to disable it?", MessageBoxButtons::YesNo, MessageBoxIcon::Question) == System::Windows::Forms::DialogResult::No )
1191
						if ( this->DisplayMessageBox(false, "Disable Library", "Package: " + SystemStringFromCyString(p->GetFullPackageName(m_pPackages->GetLanguage())) + "\nThis is a library package and might be required for other installed packages\nDo you still wish to disable it?", MessageBoxButtons::YesNo, MessageBoxIcon::Question) == System::Windows::Forms::DialogResult::No )
1174
							continue;
1192
							continue;
1175
					}
1193
					}
1176
					if ( p->GetType() == TYPE_XSP )
1194
					if ( p->GetType() == TYPE_XSP )
1177
					{
1195
					{
1178
						if ( !this->DisplayTip(TIPSECTION_YESNO, TIP_SHIPDISABLE) )
1196
						if ( !this->DisplayTip(TIPSECTION_YESNO, TIP_SHIPDISABLE) )
1179
							skipShips = true;
1197
							skipShips = true;
Line 1181... Line 1199...
1181
						if ( skipShips )
1199
						if ( skipShips )
1182
							continue;
1200
							continue;
1183
					}
1201
					}
1184
 
1202
 
1185
					m_pPackages->PrepareDisablePackage(p);
1203
					m_pPackages->PrepareDisablePackage(p);
1186
					++count;
1204
					++count;
1187
				}
1205
				}
1188
				else
1206
				else
1189
				{
1207
				{
1190
					this->EnablePackage(p);
1208
					this->EnablePackage(p);
1191
					++count;
1209
					++count;
1192
				}
1210
				}
1193
			}
1211
			}
1194
		}
1212
		}
1195
 
1213
 
1196
		if ( count )
1214
		if ( count )
1197
		{
1215
		{
Line 1474... Line 1492...
1474
			this->Enabled = false;
1492
			this->Enabled = false;
1475
			if ( this->DisplayMessageBox(false, "Vanilla Mode", "Switching back to vanilla mode you will no longer be able to use any modifying packages, these will be disabled\nYour current save games will be backed up as modified saves, and any vanilla save games will be restored\n\nDo you wish to go back to Vanilla?", MessageBoxButtons::YesNo, MessageBoxIcon::Question) == System::Windows::Forms::DialogResult::Yes )
1493
			if ( this->DisplayMessageBox(false, "Vanilla Mode", "Switching back to vanilla mode you will no longer be able to use any modifying packages, these will be disabled\nYour current save games will be backed up as modified saves, and any vanilla save games will be restored\n\nDo you wish to go back to Vanilla?", MessageBoxButtons::YesNo, MessageBoxIcon::Question) == System::Windows::Forms::DialogResult::Yes )
1476
			{
1494
			{
1477
				if ( m_iSaveGameManager == 1 )
1495
				if ( m_iSaveGameManager == 1 )
1478
				{
1496
				{
1479
					m_pPackages->RestoreSaves(true);
-
 
1480
					m_pPackages->BackupSaves(false);
1497
					m_pPackages->BackupSaves(false);
-
 
1498
					m_pPackages->RestoreSaves(true);
1481
				}
1499
				}
1482
				m_pPackages->SetVanilla(true);
1500
				m_pPackages->SetVanilla(true);
1483
				m_pMenuBar->Vanilla();
1501
				m_pMenuBar->Vanilla();
1484
				m_pPackages->PrepareDisableForVanilla();
1502
				m_pPackages->PrepareDisableForVanilla();
1485
				this->StartBackground(MGUI_BACKGROUND_DISABLE);
1503
				this->StartBackground(MGUI_BACKGROUND_DISABLE);