Subversion Repositories spk

Rev

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

Rev 168 Rev 170
Line 322... Line 322...
322
					aNames[i] = SystemStringFromCyString(((CSpkFile *)p)->GetScriptTypeString(m_pPackages->GetLanguage()));
322
					aNames[i] = SystemStringFromCyString(((CSpkFile *)p)->GetScriptTypeString(m_pPackages->GetLanguage()));
323
				else
323
				else
324
					aNames[i] = "";
324
					aNames[i] = "";
325
			}
325
			}
326
			else
326
			else
327
				aNames[i] = SystemStringFromCyString(p->GetLanguageName(m_pPackages->GetLanguage()))->ToLower();
327
				aNames[i] = _US(p->getLanguageName(m_pPackages->GetLanguage()))->ToLower();
328
		}
328
		}
329
 
329
 
330
		Array::Sort(aNames, aPackages);
330
		Array::Sort(aNames, aPackages);
331
 
331
 
332
		// now display
332
		// now display
Line 335... Line 335...
335
			CBaseFile *p = (m_bSortingAsc) ? aPackages[i]->Package : aPackages[(aPackages->Length - 1 - i)]->Package;
335
			CBaseFile *p = (m_bSortingAsc) ? aPackages[i]->Package : aPackages[(aPackages->Length - 1 - i)]->Package;
336
			Utils::String name;
336
			Utils::String name;
337
			if ( p->GetType() == TYPE_ARCHIVE )
337
			if ( p->GetType() == TYPE_ARCHIVE )
338
				name = CFileIO(p->filename()).filename();
338
				name = CFileIO(p->filename()).filename();
339
			else
339
			else
340
				name = p->GetLanguageName(m_pPackages->GetLanguage()).ToString();
340
				name = p->getLanguageName(m_pPackages->GetLanguage());
341
 
341
 
342
			int indent = 0;
342
			int indent = 0;
343
			CBaseFile *parent = p;
343
			CBaseFile *parent = p;
344
 
344
 
345
			if ( p->GetParent() && p->GetParent()->GetType() == TYPE_SPK && ((CSpkFile *)p->GetParent())->IsLibrary() )
345
			if ( p->GetParent() && p->GetParent()->GetType() == TYPE_SPK && ((CSpkFile *)p->GetParent())->IsLibrary() )
Line 428... Line 428...
428
			}
428
			}
429
			item->Group->Header = SystemStringFromCyString(groupName);
429
			item->Group->Header = SystemStringFromCyString(groupName);
430
 
430
 
431
			// get the icon
431
			// get the icon
432
			item->ImageIndex = -1;
432
			item->ImageIndex = -1;
433
			if ( p->GetIcon() )
433
			if ( p->icon() )
434
				PluginManager::DisplayListIcon(p, ListPackages, item);
434
				PluginManager::DisplayListIcon(p, ListPackages, item);
435
 
435
 
436
			if ( item->ImageIndex == -1 )
436
			if ( item->ImageIndex == -1 )
437
			{
437
			{
438
				if ( p->GetType() == TYPE_XSP )
438
				if ( p->GetType() == TYPE_XSP )
Line 607... Line 607...
607
					for ( CBaseFile *p = erroredList.First(); p; p = erroredList.Next() )
607
					for ( CBaseFile *p = erroredList.First(); p; p = erroredList.Next() )
608
					{
608
					{
609
						p->SetOverrideFiles(builtin);
609
						p->SetOverrideFiles(builtin);
610
						if ( m_pPackages->PrepareInstallPackage(p, false, false, IC_MODIFIED) != INSTALLCHECK_OK )
610
						if ( m_pPackages->PrepareInstallPackage(p, false, false, IC_MODIFIED) != INSTALLCHECK_OK )
611
						{
611
						{
612
							modified += SystemStringFromCyString(p->GetFullPackageName(m_pPackages->GetLanguage()));
612
							modified += _US(p->getFullPackageName(m_pPackages->GetLanguage()));
613
							modified += "\n";
613
							modified += "\n";
614
							errored = true;
614
							errored = true;
615
						}
615
						}
616
					}
616
					}
617
 
617
 
Line 666... Line 666...
666
							this->DisplayMessageBox(false, "No Ships", "Ships are not supported for " + SystemStringFromCyString(m_pPackages->GetGameName()), MessageBoxButtons::OK, MessageBoxIcon::Stop);
666
							this->DisplayMessageBox(false, "No Ships", "Ships are not supported for " + SystemStringFromCyString(m_pPackages->GetGameName()), MessageBoxButtons::OK, MessageBoxIcon::Stop);
667
							errored = true;
667
							errored = true;
668
						}
668
						}
669
						else if ( m_pPackages->PrepareInstallPackage(package, false, false, IC_MODIFIED) != INSTALLCHECK_OK )
669
						else if ( m_pPackages->PrepareInstallPackage(package, false, false, IC_MODIFIED) != INSTALLCHECK_OK )
670
						{
670
						{
671
							this->DisplayMessageBox(false, "Installing", "Currently in Vanilla Mode, Package is not an Vanilla Package\n" + SystemStringFromCyString(package->GetLanguageName(m_pPackages->GetLanguage())) + "\n\nSwitch to modified mode if you wish to install this package", MessageBoxButtons::OK, MessageBoxIcon::Question);
671
							this->DisplayMessageBox(false, "Installing", "Currently in Vanilla Mode, Package is not an Vanilla Package\n" + _US(package->getLanguageName(m_pPackages->GetLanguage())) + "\n\nSwitch to modified mode if you wish to install this package", MessageBoxButtons::OK, MessageBoxIcon::Question);
672
							errored = true;
672
							errored = true;
673
						}
673
						}
674
					}
674
					}
675
 
675
 
676
					// check for compatabilities
676
					// check for compatabilities
Line 678... Line 678...
678
					int compat = m_pPackages->CheckCompatabilityAgainstPackages(package, NULL, &packages);
678
					int compat = m_pPackages->CheckCompatabilityAgainstPackages(package, NULL, &packages);
679
					if ( compat )
679
					if ( compat )
680
					{
680
					{
681
						String ^message = "\nConflicts with:\n";
681
						String ^message = "\nConflicts with:\n";
682
						for ( CBaseFile *p = packages.First(); p; p = packages.Next() )
682
						for ( CBaseFile *p = packages.First(); p; p = packages.Next() )
683
							message += SystemStringFromCyString(p->GetFullPackageName(m_pPackages->GetLanguage())) + "\n";
683
							message += _US(p->getFullPackageName(m_pPackages->GetLanguage())) + "\n";
684
 
684
 
685
						if ( MessageBox::Show(this, SystemStringFromCyString(package->GetFullPackageName(m_pPackages->GetLanguage())) + ":\nIncompatabilities found with installed fake patches\n" + message + "\n\nDo you still wish to install?", "Packages Incompatable", MessageBoxButtons::YesNo, MessageBoxIcon::Warning) != Windows::Forms::DialogResult::Yes )
685
						if ( MessageBox::Show(this, _US(package->getFullPackageName(m_pPackages->GetLanguage())) + ":\nIncompatabilities found with installed fake patches\n" + message + "\n\nDo you still wish to install?", "Packages Incompatable", MessageBoxButtons::YesNo, MessageBoxIcon::Warning) != Windows::Forms::DialogResult::Yes )
686
						{
686
						{
687
							m_pPackages->RemovePreparedInstall(package);
687
							m_pPackages->RemovePreparedInstall(package);
688
							errored = true;
688
							errored = true;
689
						}
689
						}
690
					}
690
					}
Line 720... Line 720...
720
		CLinkList<CBaseFile> packageList;
720
		CLinkList<CBaseFile> packageList;
721
		CLinkList<CBaseFile> disableList;
721
		CLinkList<CBaseFile> disableList;
722
 
722
 
723
		if ( m_pPackages->UninstallPreparedPackages(m_pFileErrors, 0, &packageList, &disableList) )
723
		if ( m_pPackages->UninstallPreparedPackages(m_pFileErrors, 0, &packageList, &disableList) )
724
		{
724
		{
725
			CyString sDisplay;
725
			Utils::String sDisplay;
726
			CyString sAfterText;
726
			Utils::String sAfterText;
727
			for ( CBaseFile *p = packageList.First(); p; p = packageList.Next() )
727
			for ( CBaseFile *p = packageList.First(); p; p = packageList.Next() )
728
			{
728
			{
729
				sAfterText = m_pPackages->GetUninstallAfterText(p);
729
				sAfterText = m_pPackages->GetUninstallAfterText(p).ToString();
730
				m_pPi->AddPackageWithGroup(SystemStringFromCyString(p->GetLanguageName(m_pPackages->GetLanguage())), _US(p->author()), _US(p->version()), (sAfterText.Empty() ? "Uninstalled" : SystemStringFromCyString(sAfterText)), "Uninstalled");
730
				m_pPi->AddPackageWithGroup(_US(p->getLanguageName(m_pPackages->GetLanguage())), _US(p->author()), _US(p->version()), (sAfterText.empty() ? "Uninstalled" : SystemStringFromCyString(sAfterText)), "Uninstalled");
731
				sDisplay = p->GetFullPackageName(m_pPackages->GetLanguage());
731
				sDisplay = p->getFullPackageName(m_pPackages->GetLanguage());
732
				delete p;
732
				delete p;
733
			}
733
			}
734
			for ( CBaseFile *p = disableList.First(); p; p = disableList.Next() )
734
			for ( CBaseFile *p = disableList.First(); p; p = disableList.Next() )
735
				m_pPi->AddPackageWithGroup(SystemStringFromCyString(p->GetLanguageName(m_pPackages->GetLanguage())), _US(p->author()), _US(p->version()), "Disabled", "Dependants Disabled");
735
				m_pPi->AddPackageWithGroup(_US(p->getLanguageName(m_pPackages->GetLanguage())), _US(p->author()), _US(p->version()), "Disabled", "Dependants Disabled");
736
			packageList.clear();			
736
			packageList.clear();			
737
 
737
 
738
			if ( m_pPi->PackageCount() == 1 )
738
			if ( m_pPi->PackageCount() == 1 )
739
			{
739
			{
740
				if ( sAfterText.Empty() )
740
				if ( sAfterText.empty() )
741
					this->DisplayMessageBox(true, "Uninstalled", "Package Uninstalled\n" + SystemStringFromCyString(sDisplay), MessageBoxButtons::OK, MessageBoxIcon::Information);
741
					this->DisplayMessageBox(true, "Uninstalled", "Package Uninstalled\n" + _US(sDisplay), MessageBoxButtons::OK, MessageBoxIcon::Information);
742
				else
742
				else
743
					this->DisplayMessageBox(true, "Uninstalled", "Package Uninstalled\n" + SystemStringFromCyString(sDisplay) + "\n\n" + SystemStringFromCyString(sAfterText), MessageBoxButtons::OK, MessageBoxIcon::Information);
743
					this->DisplayMessageBox(true, "Uninstalled", "Package Uninstalled\n" + _US(sDisplay) + "\n\n" + _US(sAfterText), MessageBoxButtons::OK, MessageBoxIcon::Information);
744
			}
744
			}
745
			else
745
			else
746
				m_bDisplayDialog = true;
746
				m_bDisplayDialog = true;
747
		}
747
		}
748
		else
748
		else
Line 760... Line 760...
760
		{
760
		{
761
			if ( m_pPackages->DisablePreparedPackages(0, 0, &packageList) )
761
			if ( m_pPackages->DisablePreparedPackages(0, 0, &packageList) )
762
			{
762
			{
763
				for ( CBaseFile *p = packageList.First(); p; p = packageList.Next() )
763
				for ( CBaseFile *p = packageList.First(); p; p = packageList.Next() )
764
				{
764
				{
765
					m_pPi->AddPackageWithGroup(SystemStringFromCyString(p->GetLanguageName(m_pPackages->GetLanguage())), _US(p->author()), _US(p->version()), "Disabled", "Disabled Packages");
765
					m_pPi->AddPackageWithGroup(_US(p->getLanguageName(m_pPackages->GetLanguage())), _US(p->author()), _US(p->version()), "Disabled", "Disabled Packages");
766
					display = "Package Disabled\n\n" + SystemStringFromCyString(p->GetFullPackageName(m_pPackages->GetLanguage()));
766
					display = "Package Disabled\n\n" + _US(p->getFullPackageName(m_pPackages->GetLanguage()));
767
				}
767
				}
768
			}
768
			}
769
			else
769
			else
770
				this->DisplayMessageBox(true, "Disable Error", "Error Disabling packages", MessageBoxButtons::OK, MessageBoxIcon::Stop);
770
				this->DisplayMessageBox(true, "Disable Error", "Error Disabling packages", MessageBoxButtons::OK, MessageBoxIcon::Stop);
771
		}
771
		}
Line 775... Line 775...
775
		{
775
		{
776
			if ( m_pPackages->EnablePreparedPackages(0, 0, &packageList) )
776
			if ( m_pPackages->EnablePreparedPackages(0, 0, &packageList) )
777
			{
777
			{
778
				for ( CBaseFile *p = packageList.First(); p; p = packageList.Next() )
778
				for ( CBaseFile *p = packageList.First(); p; p = packageList.Next() )
779
				{
779
				{
780
					m_pPi->AddPackageWithGroup(SystemStringFromCyString(p->GetLanguageName(m_pPackages->GetLanguage())), _US(p->author()), _US(p->version()), "Enabled", "Enable Packages");
780
					m_pPi->AddPackageWithGroup(_US(p->getLanguageName(m_pPackages->GetLanguage())), _US(p->author()), _US(p->version()), "Enabled", "Enable Packages");
781
					display = "Package Enabled\n\n" + SystemStringFromCyString(p->GetFullPackageName(m_pPackages->GetLanguage()));
781
					display = "Package Enabled\n\n" + _US(p->getFullPackageName(m_pPackages->GetLanguage()));
782
				}
782
				}
783
			}
783
			}
784
			else
784
			else
785
				this->DisplayMessageBox(true, "Enable Error", "Error Enabling packages", MessageBoxButtons::OK, MessageBoxIcon::Stop);
785
				this->DisplayMessageBox(true, "Enable Error", "Error Enabling packages", MessageBoxButtons::OK, MessageBoxIcon::Stop);
786
		}
786
		}
Line 802... Line 802...
802
			if ( !builtin )
802
			if ( !builtin )
803
			{
803
			{
804
				if ( installedPackages.size() == 1 && erroredPackages.size() == 0 )
804
				if ( installedPackages.size() == 1 && erroredPackages.size() == 0 )
805
				{
805
				{
806
					CBaseFile *p = installedPackages.Front()->Data();
806
					CBaseFile *p = installedPackages.Front()->Data();
807
					CyString packageName = p->GetFullPackageName(m_pPackages->GetLanguage());
807
					Utils::String packageName = p->getFullPackageName(m_pPackages->GetLanguage());
808
					CyString afterText = m_pPackages->GetInstallAfterText(p);
808
					Utils::String afterText = m_pPackages->GetInstallAfterText(p).ToString();
809
					if ( afterText.Empty() )
809
					if (afterText.empty())
810
						this->DisplayMessageBox(frombackground, "Installed", "Package: " + SystemStringFromCyString(packageName) + " installed!\n\n", MessageBoxButtons::OK, MessageBoxIcon::Information);
810
						this->DisplayMessageBox(frombackground, "Installed", "Package: " + _US(packageName) + " installed!\n\n", MessageBoxButtons::OK, MessageBoxIcon::Information);
811
					else
811
					else
812
					{
812
					{
813
						afterText.StripHTML();
813
						afterText = afterText.stripHtml();
814
						this->DisplayMessageBox(frombackground, "Installed", "Package: " + SystemStringFromCyString(packageName) + " installed!\n\n" + SystemStringFromCyString(afterText), MessageBoxButtons::OK, MessageBoxIcon::Information);
814
						this->DisplayMessageBox(frombackground, "Installed", "Package: " + _US(packageName) + " installed!\n\n" + _US(afterText), MessageBoxButtons::OK, MessageBoxIcon::Information);
815
					}
815
					}
816
				}
816
				}
817
				else
817
				else
818
				{
818
				{
819
					m_pPi = gcnew PackageInstalled("Packages Installed");
819
					m_pPi = gcnew PackageInstalled("Packages Installed");
820
 
820
 
821
					CyStringList packages;
821
					CyStringList packages;
822
					for ( CListNode<CBaseFile> *node = installedPackages.Front(); node; node = node->next() )
822
					for ( CListNode<CBaseFile> *node = installedPackages.Front(); node; node = node->next() )
823
					{
823
					{
824
						CBaseFile *p = node->Data();
824
						CBaseFile *p = node->Data();
825
						CyString packageName = p->GetFullPackageName(m_pPackages->GetLanguage());
825
						Utils::String packageName = p->getFullPackageName(m_pPackages->GetLanguage());
826
						CyString afterText = m_pPackages->GetInstallAfterText(p);
826
						Utils::String afterText = m_pPackages->GetInstallAfterText(p).ToString();
827
 
827
 
828
						if ( afterText.Empty() )
828
						if (afterText.empty())
829
							afterText = "Installed";
829
							afterText = "Installed";
830
						m_pPi->AddPackage(SystemStringFromCyString(packageName), _US(p->author()), _US(p->version()), SystemStringFromCyString(afterText));
830
						m_pPi->AddPackage(_US(packageName), _US(p->author()), _US(p->version()), _US(afterText));
831
					}
831
					}
832
					for ( CListNode<CBaseFile> *node = erroredPackages.Front(); node; node = node->next() )
832
					for ( CListNode<CBaseFile> *node = erroredPackages.Front(); node; node = node->next() )
833
					{
833
					{
834
						CBaseFile *p = node->Data();
834
						CBaseFile *p = node->Data();
835
						CyString packageName = p->GetFullPackageName(m_pPackages->GetLanguage());
835
						Utils::String packageName = p->getFullPackageName(m_pPackages->GetLanguage());
836
						m_pPi->AddPackage(SystemStringFromCyString(packageName), _US(p-&gt;author()), _US(p->;version()), SystemStringFromCyString(&quot;Failed to Install"));
836
						m_pPi->AddPackage(_US(packageName), _US(p-&gt;author()), _US(p->;version()), &quot;Failed to Install");
837
					}
837
					}
838
 
838
 
839
					m_bDisplayDialog = true;
839
					m_bDisplayDialog = true;
840
				}
840
				}
841
			}
841
			}
Line 846... Line 846...
846
			if ( !builtin )
846
			if ( !builtin )
847
			{
847
			{
848
				if ( erroredPackages.size() == 1 )
848
				if ( erroredPackages.size() == 1 )
849
				{
849
				{
850
					CBaseFile *p = erroredPackages.Front()->Data();
850
					CBaseFile *p = erroredPackages.Front()->Data();
851
					Utils::String packageName = p->GetFullPackageName(m_pPackages->GetLanguage()).ToString();
851
					Utils::String packageName = p->getFullPackageName(m_pPackages->GetLanguage());
852
					this->DisplayMessageBox(frombackground, "Error Installing", "Package: " + _US(packageName) + " failed to install!\nError: " + _US(CBaseFile::ErrorString(p->lastError(), p->lastErrorString())) + "\n", MessageBoxButtons::OK, MessageBoxIcon::Error);
852
					this->DisplayMessageBox(frombackground, "Error Installing", "Package: " + _US(packageName) + " failed to install!\nError: " + _US(CBaseFile::ErrorString(p->lastError(), p->lastErrorString())) + "\n", MessageBoxButtons::OK, MessageBoxIcon::Error);
853
				}
853
				}
854
				else
854
				else
855
				{
855
				{
856
					m_pPi = gcnew PackageInstalled("Packages Failed To Install");
856
					m_pPi = gcnew PackageInstalled("Packages Failed To Install");
857
 
857
 
858
					CyStringList packages;
858
					CyStringList packages;
859
					for ( CListNode<CBaseFile> *node = erroredPackages.Front(); node; node = node->next() )
859
					for ( CListNode<CBaseFile> *node = erroredPackages.Front(); node; node = node->next() )
860
					{
860
					{
861
						CBaseFile *p = node->Data();
861
						CBaseFile *p = node->Data();
862
						Utils::String packageName = p->GetFullPackageName(m_pPackages->GetLanguage()).ToString();
862
						Utils::String packageName = p->getFullPackageName(m_pPackages->GetLanguage());
863
						m_pPi->AddPackage(_US(packageName), _US(p->author()), _US(p->version()), "Failed: " + _US(CBaseFile::ErrorString(p->lastError(), p->lastErrorString())));
863
						m_pPi->AddPackage(_US(packageName), _US(p->author()), _US(p->version()), "Failed: " + _US(CBaseFile::ErrorString(p->lastError(), p->lastErrorString())));
864
					}
864
					}
865
 
865
 
866
					m_bDisplayDialog = true;
866
					m_bDisplayDialog = true;
867
				}
867
				}
Line 986... Line 986...
986
					}
986
					}
987
 
987
 
988
					std::vector<const SAvailablePackage*> downloads;
988
					std::vector<const SAvailablePackage*> downloads;
989
					if (m_pPackages->getDownloadableDependacies(package, downloads) >= missingList.size())
989
					if (m_pPackages->getDownloadableDependacies(package, downloads) >= missingList.size())
990
					{
990
					{
991
						if (this->DisplayMessageBox(false, "Installing", "Missing Package for " + SystemStringFromCyString(package->GetLanguageName(m_pPackages->GetLanguage())) + "\nRequires:\n" + _US(requires) + "\n\nDo you want to download them?", MessageBoxButtons::YesNo, MessageBoxIcon::Question) == System::Windows::Forms::DialogResult::Yes)
991
						if (this->DisplayMessageBox(false, "Installing", "Missing Package for " + _US(package->getLanguageName(m_pPackages->GetLanguage())) + "\nRequires:\n" + _US(requires) + "\n\nDo you want to download them?", MessageBoxButtons::YesNo, MessageBoxIcon::Question) == System::Windows::Forms::DialogResult::Yes)
992
						{
992
						{
993
							CheckUpdate^ update = gcnew CheckUpdate(m_pPackages, this->imageList1);
993
							CheckUpdate^ update = gcnew CheckUpdate(m_pPackages, this->imageList1);
994
							update->SetDownloader();
994
							update->SetDownloader();
995
							if (downloads.size() == 1)
995
							if (downloads.size() == 1)
996
								update->OnePackage(downloads.front());
996
								update->OnePackage(downloads.front());
Line 1007... Line 1007...
1007
								return StartInstalling(builtin, background);
1007
								return StartInstalling(builtin, background);
1008
							}
1008
							}
1009
						}
1009
						}
1010
					}
1010
					}
1011
					else
1011
					else
1012
						this->DisplayMessageBox(false, "Installing", "Missing Package for " + SystemStringFromCyString(package->GetLanguageName(m_pPackages->GetLanguage())) + "\nRequires:\n" + _US(requires), MessageBoxButtons::OK, MessageBoxIcon::Exclamation);
1012
						this->DisplayMessageBox(false, "Installing", "Missing Package for " + _US(package->getLanguageName(m_pPackages->GetLanguage())) + "\nRequires:\n" + _US(requires), MessageBoxButtons::OK, MessageBoxIcon::Exclamation);
1013
				}
1013
				}
1014
			}
1014
			}
1015
 
1015
 
1016
			bool restart = false;
1016
			bool restart = false;
1017
			if (installRequired->size())
1017
			if (installRequired->size())
Line 1290... Line 1290...
1290
	bool MainGui::EnablePackage(CBaseFile *p)
1290
	bool MainGui::EnablePackage(CBaseFile *p)
1291
	{
1291
	{
1292
		if ( !m_pPackages->PrepareEnablePackage(p) )
1292
		if ( !m_pPackages->PrepareEnablePackage(p) )
1293
		{
1293
		{
1294
			if ( m_pPackages->GetError() == PKERR_NOPARENT )
1294
			if ( m_pPackages->GetError() == PKERR_NOPARENT )
1295
				this->DisplayMessageBox(false, "Enable Error", "Error enabling package\n" + SystemStringFromCyString(p->GetFullPackageName(m_pPackages->GetLanguage())) + "\n\nParent mod is not enabled", MessageBoxButtons::OK, MessageBoxIcon::Warning);
1295
				this->DisplayMessageBox(false, "Enable Error", "Error enabling package\n" + _US(p->getFullPackageName(m_pPackages->GetLanguage())) + "\n\nParent mod is not enabled", MessageBoxButtons::OK, MessageBoxIcon::Warning);
1296
			else if ( m_pPackages->GetError() == PKERR_MODIFIED )
1296
			else if ( m_pPackages->GetError() == PKERR_MODIFIED )
1297
				this->DisplayMessageBox(false, "Enable Error", "Error enabling package\n" + SystemStringFromCyString(p->GetFullPackageName(m_pPackages->GetLanguage())) + "\n\nPackage is modified and game is currently set to vanilla\nSwitch to modified mode to enable", MessageBoxButtons::OK, MessageBoxIcon::Warning);
1297
				this->DisplayMessageBox(false, "Enable Error", "Error enabling package\n" + _US(p->getFullPackageName(m_pPackages->GetLanguage())) + "\n\nPackage is modified and game is currently set to vanilla\nSwitch to modified mode to enable", MessageBoxButtons::OK, MessageBoxIcon::Warning);
1298
			else if ( m_pPackages->GetError() == PKERR_MISSINGDEP )
1298
			else if ( m_pPackages->GetError() == PKERR_MISSINGDEP )
1299
			{
1299
			{
1300
				Utils::CStringList depList;
1300
				Utils::CStringList depList;
1301
				m_pPackages->GetMissingDependacies(p, &depList, true);
1301
				m_pPackages->GetMissingDependacies(p, &depList, true);
1302
				Utils::String sDep;
1302
				Utils::String sDep;
Line 1305... Line 1305...
1305
					if ( (*itr)->str.contains("|") )
1305
					if ( (*itr)->str.contains("|") )
1306
						sDep = (*itr)->str.token("|", 1) + " V" + (*itr)->str.token("|", 2) + " by " + (*itr)->data + "\n";
1306
						sDep = (*itr)->str.token("|", 1) + " V" + (*itr)->str.token("|", 2) + " by " + (*itr)->data + "\n";
1307
					else
1307
					else
1308
						sDep = (*itr)->str + " by " + (*itr)->data + "\n";
1308
						sDep = (*itr)->str + " by " + (*itr)->data + "\n";
1309
				}
1309
				}
1310
				this->DisplayMessageBox(false, "Enable Error", "Error enabling package\n" + SystemStringFromCyString(p->GetFullPackageName(m_pPackages->GetLanguage())) + "\n\nMissing Enabled Dependacies:\n" + _US(sDep), MessageBoxButtons::OK, MessageBoxIcon::Warning);
1310
				this->DisplayMessageBox(false, "Enable Error", "Error enabling package\n" + _US(p->getFullPackageName(m_pPackages->GetLanguage())) + "\n\nMissing Enabled Dependacies:\n" + _US(sDep), MessageBoxButtons::OK, MessageBoxIcon::Warning);
1311
			}
1311
			}
1312
			else
1312
			else
1313
				this->DisplayMessageBox(false, "Enable Error", "Error enabling package\n" + SystemStringFromCyString(p->GetFullPackageName(m_pPackages->GetLanguage())) + "\n\nUnknown Error", MessageBoxButtons::OK, MessageBoxIcon::Warning);
1313
				this->DisplayMessageBox(false, "Enable Error", "Error enabling package\n" + _US(p->getFullPackageName(m_pPackages->GetLanguage())) + "\n\nUnknown Error", MessageBoxButtons::OK, MessageBoxIcon::Warning);
1314
			return false;
1314
			return false;
1315
		}
1315
		}
1316
		return true;
1316
		return true;
1317
	}
1317
	}
1318
 
1318
 
Line 1328... Line 1328...
1328
			{
1328
			{
1329
				if ( p->IsEnabled() )
1329
				if ( p->IsEnabled() )
1330
				{
1330
				{
1331
					if ( p->GetType() == TYPE_SPK && ((CSpkFile *)p)->IsLibrary() )
1331
					if ( p->GetType() == TYPE_SPK && ((CSpkFile *)p)->IsLibrary() )
1332
					{
1332
					{
1333
						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 )
1333
						if ( this->DisplayMessageBox(false, "Disable Library", "Package: " + _US(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 )
1334
							continue;
1334
							continue;
1335
					}
1335
					}
1336
					if ( p->GetType() == TYPE_XSP )
1336
					if ( p->GetType() == TYPE_XSP )
1337
					{
1337
					{
1338
						if ( !this->DisplayTip(TIPSECTION_YESNO, TIP_SHIPDISABLE) )
1338
						if ( !this->DisplayTip(TIPSECTION_YESNO, TIP_SHIPDISABLE) )
Line 1510... Line 1510...
1510
		else if (result == System::Windows::Forms::DialogResult::Abort)
1510
		else if (result == System::Windows::Forms::DialogResult::Abort)
1511
		{
1511
		{
1512
			if (m_pPackages->GetEnabledMod())
1512
			if (m_pPackages->GetEnabledMod())
1513
			{
1513
			{
1514
				CBaseFile *mod = m_pPackages->GetEnabledMod();
1514
				CBaseFile *mod = m_pPackages->GetEnabledMod();
1515
				CyString message = mod->GetFullPackageName(m_pPackages->GetLanguage());
1515
				Utils::String message = mod->getFullPackageName(m_pPackages->GetLanguage());
1516
				m_pPackages->DisablePackage(m_pPackages->GetEnabledMod(), 0, 0);
1516
				m_pPackages->DisablePackage(m_pPackages->GetEnabledMod(), 0, 0);
1517
				this->DisplayMessageBox(false, "Mod Disabed", SystemStringFromCyString(message) + " has been disabled\nYour game is no longer using any mods\n", MessageBoxButtons::OK, MessageBoxIcon::Exclamation);
1517
				this->DisplayMessageBox(false, "Mod Disabed", _US(message) + " has been disabled\nYour game is no longer using any mods\n", MessageBoxButtons::OK, MessageBoxIcon::Exclamation);
1518
			}
1518
			}
1519
		}
1519
		}
1520
 
1520
 
1521
		// uninstall the selected mod
1521
		// uninstall the selected mod
1522
		else if (result == System::Windows::Forms::DialogResult::Retry)
1522
		else if (result == System::Windows::Forms::DialogResult::Retry)
Line 1563... Line 1563...
1563
				}
1563
				}
1564
 
1564
 
1565
				// display uninstall text
1565
				// display uninstall text
1566
				Utils::String beforeText = m_pPackages->GetUninstallBeforeText(p).ToString();
1566
				Utils::String beforeText = m_pPackages->GetUninstallBeforeText(p).ToString();
1567
				if ( !beforeText.empty() ) {
1567
				if ( !beforeText.empty() ) {
1568
					if ( this->DisplayMessageBox(false, "Uninstall Package", _US(p->GetFullPackageName(m_pPackages->GetLanguage()).ToString() + "\n" + beforeText + "\n\nDo you want to uninstall this package?"), MessageBoxButtons::YesNo, MessageBoxIcon::Question) != System::Windows::Forms::DialogResult::Yes )
1568
					if ( this->DisplayMessageBox(false, "Uninstall Package", _US(p->getFullPackageName(m_pPackages->GetLanguage()) + "\n" + beforeText + "\n\nDo you want to uninstall this package?"), MessageBoxButtons::YesNo, MessageBoxIcon::Question) != System::Windows::Forms::DialogResult::Yes )
1569
						continue;
1569
						continue;
1570
				}
1570
				}
1571
 
1571
 
1572
				m_pPackages->PrepareUninstallPackage(p);
1572
				m_pPackages->PrepareUninstallPackage(p);
1573
			}
1573
			}
Line 1919... Line 1919...
1919
			// TODO: read addresses from data
1919
			// TODO: read addresses from data
1920
 
1920
 
1921
			// hardcoded address
1921
			// hardcoded address
1922
			m_pUpdateList->PushBack("http://xpluginmanager.co.uk/pmupdate.dat", "", true);
1922
			m_pUpdateList->PushBack("http://xpluginmanager.co.uk/pmupdate.dat", "", true);
1923
			if ( (int)PMLBETA )
1923
			if ( (int)PMLBETA )
1924
				m_pUpdateList->PushBack("http://xpluginmanager/Beta/pmupdatebeta.dat", "", true);
1924
				m_pUpdateList->PushBack("http://xpluginmanager.co.uk/Beta/pmupdatebeta.dat", "", true);
1925
		}
1925
		}
1926
 
1926
 
1927
		backgroundUpdater->RunWorkerAsync();
1927
		backgroundUpdater->RunWorkerAsync();
1928
	}
1928
	}
1929
 
1929
 
Line 2279... Line 2279...
2279
				{
2279
				{
2280
					int key = this->ListPackages->LargeImageList->Images->IndexOfKey(item->ImageKey);
2280
					int key = this->ListPackages->LargeImageList->Images->IndexOfKey(item->ImageKey);
2281
					if ( key != -1 )
2281
					if ( key != -1 )
2282
						this->ContextName->Image = this->ListPackages->LargeImageList->Images[key];
2282
						this->ContextName->Image = this->ListPackages->LargeImageList->Images[key];
2283
				}
2283
				}
2284
				else if ( p->GetIcon() )
2284
				else if ( p->icon() )
2285
					PluginManager::DisplayContextIcon(p, this->ContextName, nullptr);
2285
					PluginManager::DisplayContextIcon(p, this->ContextName, nullptr);
2286
 
2286
 
2287
				this->uninstallToolStripMenuItem->Text = "Uninstall: " + item->Text;
2287
				this->uninstallToolStripMenuItem->Text = "Uninstall: " + item->Text;
2288
 
2288
 
2289
				this->viewReadmeToolStripMenuItem->DropDownItems->Clear();
2289
				this->viewReadmeToolStripMenuItem->DropDownItems->Clear();
2290
				if ( p->CountFiles(FILETYPE_README) )
2290
				if (p->countFiles(FILETYPE_README))
2291
				{
2291
				{
2292
					for ( C_File *f = p->GetFirstFile(FILETYPE_README); f; f = p->GetNextFile(f) )
2292
					for ( C_File *f = p->GetFirstFile(FILETYPE_README); f; f = p->GetNextFile(f) )
2293
					{
2293
					{
2294
						if ( f->GetBaseName().GetToken(".", 1, 1).IsNumber() )
2294
						if ( f->baseName().token(".", 1).isNumber() )
2295
						{
2295
						{
2296
							if ( f->GetBaseName().GetToken(".", 1, 1).ToInt() != m_pPackages->GetLanguage() )
2296
							if ( f->baseName().token(".", 1).toInt() != m_pPackages->GetLanguage() )
2297
								continue;
2297
								continue;
2298
						}
2298
						}
2299
						if ( f->GetBaseName().IsIn("-L") )
2299
						if ( f->baseName().contains("-L") )
2300
						{
2300
						{
2301
							int pos = f->GetBaseName().FindPos("-L");
2301
							int pos = f->baseName().findPos("-L");
2302
							int l = f->GetBaseName().Mid(pos + 2, 3).ToInt();
2302
							int l = f->baseName().mid(pos + 2, 3).toInt();
2303
							if ( l != m_pPackages->GetLanguage() )
2303
							if ( l != m_pPackages->GetLanguage() )
2304
								continue;
2304
								continue;
2305
						}
2305
						}
2306
 
2306
 
2307
						Windows::Forms::ToolStripMenuItem ^item = gcnew Windows::Forms::ToolStripMenuItem();
2307
						Windows::Forms::ToolStripMenuItem ^item = gcnew Windows::Forms::ToolStripMenuItem();
Line 2319... Line 2319...
2319
						showSep = true;
2319
						showSep = true;
2320
					}
2320
					}
2321
				}
2321
				}
2322
 
2322
 
2323
				this->extrasToolStripMenuItem->DropDownItems->Clear();
2323
				this->extrasToolStripMenuItem->DropDownItems->Clear();
2324
				if ( p->CountFiles(FILETYPE_EXTRA) )
2324
				if (p->countFiles(FILETYPE_EXTRA))
2325
				{
2325
				{
2326
					showSep = true;
2326
					showSep = true;
2327
					for ( C_File *f = p->GetFirstFile(FILETYPE_EXTRA); f; f = p->GetNextFile(f) )
2327
					for ( C_File *f = p->GetFirstFile(FILETYPE_EXTRA); f; f = p->GetNextFile(f) )
2328
					{
2328
					{
2329
						if ( !f->GetDir().Left(6).Compare("extras") )
2329
						if ( !f->dir().left(6).Compare("extras") )
2330
							continue;
2330
							continue;
2331
 
2331
 
2332
						Windows::Forms::ToolStripMenuItem ^item = gcnew Windows::Forms::ToolStripMenuItem();
2332
						Windows::Forms::ToolStripMenuItem ^item = gcnew Windows::Forms::ToolStripMenuItem();
2333
						item->Text = _US(f->filename());
2333
						item->Text = _US(f->filename());
2334
						if ( this->imageList2->Images->IndexOfKey(_US(f->fileExt().lower())) > -1 )
2334
						if ( this->imageList2->Images->IndexOfKey(_US(f->fileExt().lower())) > -1 )
Line 2572... Line 2572...
2572
		for ( CBaseFile *p = m_pPackages->GetFirstPackage(); p; p = m_pPackages->GetNextPackage(p) )
2572
		for ( CBaseFile *p = m_pPackages->GetFirstPackage(); p; p = m_pPackages->GetNextPackage(p) )
2573
		{
2573
		{
2574
			if ( !p->IsEnabled() ) continue;
2574
			if ( !p->IsEnabled() ) continue;
2575
			if ( !p->AnyFileType(FILETYPE_MOD) ) continue;
2575
			if ( !p->AnyFileType(FILETYPE_MOD) ) continue;
2576
 
2576
 
2577
			CyString packageName = p->GetFullPackageName(m_pPackages->GetLanguage());
2577
			Utils::String packageName = p->getFullPackageName(m_pPackages->GetLanguage());
2578
 
2578
 
2579
			// compare this file against all other packages
2579
			// compare this file against all other packages
2580
			for ( CBaseFile *comparePackage = m_pPackages->GetNextPackage(p); comparePackage; comparePackage = m_pPackages->GetNextPackage(comparePackage) )
2580
			for ( CBaseFile *comparePackage = m_pPackages->GetNextPackage(p); comparePackage; comparePackage = m_pPackages->GetNextPackage(comparePackage) )
2581
			{
2581
			{
2582
				if ( comparePackage == p ) continue; // dont include the same package
2582
				if ( comparePackage == p ) continue; // dont include the same package
Line 2584... Line 2584...
2584
				if ( !comparePackage->AnyFileType(FILETYPE_MOD) ) continue;
2584
				if ( !comparePackage->AnyFileType(FILETYPE_MOD) ) continue;
2585
 
2585
 
2586
				CyStringList list;
2586
				CyStringList list;
2587
				if ( m_pPackages->CheckCompatabilityBetweenMods(p, comparePackage, &list) )
2587
				if ( m_pPackages->CheckCompatabilityBetweenMods(p, comparePackage, &list) )
2588
				{
2588
				{
2589
					CyString package2Name = comparePackage->GetFullPackageName(m_pPackages->GetLanguage());
2589
					Utils::String package2Name = comparePackage->getFullPackageName(m_pPackages->GetLanguage());
2590
					for ( SStringList *str = list.Head(); str; str = str->next )
2590
					for ( SStringList *str = list.Head(); str; str = str->next )
2591
					{
2591
					{
2592
						errorList.PushBack(str->str + " (" + packageName + ")", str->data + " (" + package2Name + ")");
2592
						errorList.PushBack(str->str + " (" + packageName + ")", str->data + " (" + package2Name + ")");
2593
						++count;
2593
						++count;
2594
					}
2594
					}