Subversion Repositories spk

Rev

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

Rev 197 Rev 224
Line 112... Line 112...
112
		this->splitContainer1->Panel1Collapsed = true;
112
		this->splitContainer1->Panel1Collapsed = true;
113
		m_pPackage = p;
113
		m_pPackage = p;
114
 
114
 
115
		m_pTabPage->Text = System::IO::FileInfo(filename).Name;
115
		m_pTabPage->Text = System::IO::FileInfo(filename).Name;
116
		if ( p->filename().empty() )
116
		if ( p->filename().empty() )
117
			p->setFilename(_S(filename));
117
			p->setFilename(_WS(filename));
118
		this->UpdateView(false);
118
		this->UpdateView(false);
119
		m_pPackage->adjustChanged(false);
119
		m_pPackage->adjustChanged(false);
120
 
120
 
121
		this->Text = filename;
121
		this->Text = filename;
122
 
122
 
Line 128... Line 128...
128
		this->splitContainer1->Panel1Collapsed = false;
128
		this->splitContainer1->Panel1Collapsed = false;
129
		m_pMultiPackage = p;
129
		m_pMultiPackage = p;
130
 
130
 
131
		m_pTabPage->Text = System::IO::FileInfo(filename).Name;
131
		m_pTabPage->Text = System::IO::FileInfo(filename).Name;
132
		if (p->filename().empty())
132
		if (p->filename().empty())
133
			p->setFilename(_S(filename));
133
			p->setFilename(_WS(filename));
134
 
134
 
135
		this->UpdateView(false);
135
		this->UpdateView(false);
136
 
136
 
137
		this->Text = filename;
137
		this->Text = filename;
138
 
138
 
Line 145... Line 145...
145
				continue;
145
				continue;
146
			if ( package->pFile->icon() )
146
			if ( package->pFile->icon() )
147
			{
147
			{
148
				package->pFile->ReadIconFileToMemory();
148
				package->pFile->ReadIconFileToMemory();
149
				Utils::WString sIconFile = _WS(IO::Path::GetTempPath()) + L"\\" + CFileIO(package->sName).baseName() + L"." + package->pFile->iconExt();
149
				Utils::WString sIconFile = _WS(IO::Path::GetTempPath()) + L"\\" + CFileIO(package->sName).baseName() + L"." + package->pFile->iconExt();
150
				if ( package->pFile->extractFile(package->pFile->icon(), CFileIO(sIconFile).fullFilename().toString(), false))
150
				if ( package->pFile->extractFile(package->pFile->icon(), CFileIO(sIconFile).fullFilename(), false))
151
				{
151
				{
152
					String ^iconFile = _US(sIconFile);
152
					String ^iconFile = _US(sIconFile);
153
					if ( IO::File::Exists(iconFile) )
153
					if ( IO::File::Exists(iconFile) )
154
					{
154
					{
155
						String ^file = _US(package->sName);
155
						String ^file = _US(package->sName);
Line 257... Line 257...
257
				added = true;
257
				added = true;
258
			}
258
			}
259
		}
259
		}
260
		else if ( System::IO::File::Exists(filename) )
260
		else if ( System::IO::File::Exists(filename) )
261
		{
261
		{
262
			Utils::String sF = _S(filename);
262
			Utils::WString sF = _WS(filename);
263
			if ( CFileIO(sF).isFileExtension(L"bmp") )
263
			if ( CFileIO(sF).isFileExtension(L"bmp") )
264
			{
264
			{
265
				list->Images->Add(key, Bitmap::FromFile(filename));
265
				list->Images->Add(key, Bitmap::FromFile(filename));
266
				added = true;
266
				added = true;
267
			}
267
			}
Line 534... Line 534...
534
			return;
534
			return;
535
 
535
 
536
		AddDialog ^ad = gcnew AddDialog(m_pPackage, m_pMultiPackage);
536
		AddDialog ^ad = gcnew AddDialog(m_pPackage, m_pMultiPackage);
537
		ad->SetRemove();
537
		ad->SetRemove();
538
 
538
 
539
		int pos = _S(cli::safe_cast<System::String ^>(item->Tag)).toInt();
539
		int pos = _WS(cli::safe_cast<System::String ^>(item->Tag)).toInt();
540
		C_File *f = m_pPackage->GetFileList()->Get(pos);
540
		C_File *f = m_pPackage->GetFileList()->Get(pos);
541
		if ( f )
541
		if ( f )
542
			ad->AddFile(_US(f->name()), _US(f->dir()), f->GetFileType(), f->GetGame());
542
			ad->AddFile(_US(f->name()), _US(f->dir()), f->GetFileType(), f->GetGame());
543
 
543
 
544
		// remove the dat or cat file as well
544
		// remove the dat or cat file as well
545
		if ( f->GetFileType() == FILETYPE_MOD )
545
		if ( f->GetFileType() == FILETYPE_MOD )
546
		{
546
		{
547
			if ( f->checkFileExt("cat") )
547
			if ( f->checkFileExt("cat") )
548
			{
548
			{
549
				C_File *datFile = m_pPackage->findFile(CFileIO(f).changeFileExtension(L"dat").toString(), FILETYPE_MOD, "", f->GetGame());
549
				C_File *datFile = m_pPackage->findFile(CFileIO(f).changeFileExtension(L"dat"), FILETYPE_MOD, L"", f->GetGame());
550
				if ( datFile )
550
				if ( datFile )
551
					ad->AddFile(_US(datFile->name()), _US(datFile->dir()), datFile->GetFileType(), datFile->GetGame());
551
					ad->AddFile(_US(datFile->name()), _US(datFile->dir()), datFile->GetFileType(), datFile->GetGame());
552
			}
552
			}
553
			else if ( f->checkFileExt("dat") )
553
			else if ( f->checkFileExt("dat") )
554
			{
554
			{
555
				C_File *datFile = m_pPackage->findFile(CFileIO(f).changeFileExtension(L"cat").toString(), FILETYPE_MOD, "", f->GetGame());
555
				C_File *datFile = m_pPackage->findFile(CFileIO(f).changeFileExtension(L"cat"), FILETYPE_MOD, L"", f->GetGame());
556
				if ( datFile )
556
				if ( datFile )
557
					ad->AddFile(_US(datFile->name()), _US(datFile->dir()), datFile->GetFileType(), datFile->GetGame());
557
					ad->AddFile(_US(datFile->name()), _US(datFile->dir()), datFile->GetFileType(), datFile->GetGame());
558
			}
558
			}
559
		}
559
		}
560
		ad->ShowDialog(this);
560
		ad->ShowDialog(this);
Line 568... Line 568...
568
		AddDialog ^ad = gcnew AddDialog(m_pPackage, m_pMultiPackage);
568
		AddDialog ^ad = gcnew AddDialog(m_pPackage, m_pMultiPackage);
569
		ad->SetRemove();
569
		ad->SetRemove();
570
 
570
 
571
		for ( int i = 0; i < this->listView1->SelectedItems->Count; i++ )
571
		for ( int i = 0; i < this->listView1->SelectedItems->Count; i++ )
572
		{
572
		{
573
			int pos = _S(cli::safe_cast<System::String ^>(this->listView1->SelectedItems[i]->Tag)).toInt();
573
			int pos = _WS(cli::safe_cast<System::String ^>(this->listView1->SelectedItems[i]->Tag)).toInt();
574
			C_File *f = m_pPackage->GetFileList()->Get(pos);
574
			C_File *f = m_pPackage->GetFileList()->Get(pos);
575
			if ( f )
575
			if ( f )
576
				ad->AddFile(_US(f->name()), _US(f->dir()), f->GetFileType(), f->GetGame());
576
				ad->AddFile(_US(f->name()), _US(f->dir()), f->GetFileType(), f->GetGame());
577
 
577
 
578
			// remove the dat or cat file as well
578
			// remove the dat or cat file as well
579
			if ( f->GetFileType() == FILETYPE_MOD )
579
			if ( f->GetFileType() == FILETYPE_MOD )
580
			{
580
			{
581
				if ( f->checkFileExt("cat") )
581
				if ( f->checkFileExt("cat") )
582
				{
582
				{
583
					C_File *datFile = m_pPackage->findFile(CFileIO(f).changeFileExtension(L"dat").toString(), FILETYPE_MOD, "", f->GetGame());
583
					C_File *datFile = m_pPackage->findFile(CFileIO(f).changeFileExtension(L"dat"), FILETYPE_MOD, L"", f->GetGame());
584
					if ( datFile )
584
					if ( datFile )
585
						ad->AddFile(_US(datFile->name()), _US(datFile->dir()), datFile->GetFileType(), datFile->GetGame());
585
						ad->AddFile(_US(datFile->name()), _US(datFile->dir()), datFile->GetFileType(), datFile->GetGame());
586
				}
586
				}
587
				else if ( f->checkFileExt("dat") )
587
				else if ( f->checkFileExt("dat") )
588
				{
588
				{
589
					C_File *datFile = m_pPackage->findFile(CFileIO(f).changeFileExtension(L"cat").toString(), FILETYPE_MOD, "", f->GetGame());
589
					C_File *datFile = m_pPackage->findFile(CFileIO(f).changeFileExtension(L"cat"), FILETYPE_MOD, L"", f->GetGame());
590
					if ( datFile )
590
					if ( datFile )
591
						ad->AddFile(_US(datFile->name()), _US(datFile->dir()), datFile->GetFileType(), datFile->GetGame());
591
						ad->AddFile(_US(datFile->name()), _US(datFile->dir()), datFile->GetFileType(), datFile->GetGame());
592
				}
592
				}
593
			}
593
			}
594
		}
594
		}
Line 925... Line 925...
925
			m_pMultiPackage->readAllPackages();
925
			m_pMultiPackage->readAllPackages();
926
			m_pMultiPackage->UpdatedPackage(m_pPackage);
926
			m_pMultiPackage->UpdatedPackage(m_pPackage);
927
			m_pMultiPackage->writeFile(m_pMultiPackage->filename());
927
			m_pMultiPackage->writeFile(m_pMultiPackage->filename());
928
		}
928
		}
929
		else
929
		else
930
			m_pPackage->writeFile(m_pPackage->filename().toString());
930
			m_pPackage->writeFile(m_pPackage->filename());
931
	}
931
	}
932
 
932
 
933
	void SpkForm::PasteFiles(CLinkList<C_File> *list)
933
	void SpkForm::PasteFiles(CLinkList<C_File> *list)
934
	{
934
	{
935
		if ( m_pMultiPackage && m_pSelectedPackage )
935
		if ( m_pMultiPackage && m_pSelectedPackage )
Line 991... Line 991...
991
 
991
 
992
			switch ( f->GetFileType() )
992
			switch ( f->GetFileType() )
993
			{
993
			{
994
				case FILETYPE_SCRIPT:
994
				case FILETYPE_SCRIPT:
995
				case FILETYPE_UNINSTALL:
995
				case FILETYPE_UNINSTALL:
996
					if ( m_pPackage->extractFile(f, _S(IO::Path::GetTempPath()), false) )
996
					if ( m_pPackage->extractFile(f, _WS(IO::Path::GetTempPath()), false) )
997
					{
997
					{
998
						SPK::WriteScriptStyleSheet(_S(IO::Path::GetTempPath()));
998
						SPK::WriteScriptStyleSheet(_WS(IO::Path::GetTempPath()));
999
						process->StartInfo->FileName = IO::Path::GetTempPath() + "\\" + _US(f->name());
999
						process->StartInfo->FileName = IO::Path::GetTempPath() + "\\" + _US(f->name());
1000
					}
1000
					}
1001
					break;
1001
					break;
1002
 
1002
 
1003
				case FILETYPE_MOD:
1003
				case FILETYPE_MOD:
1004
					if ( m_pPackage->extractFile(f, _S(IO::Path::GetTempPath()), false) )
1004
					if ( m_pPackage->extractFile(f, _WS(IO::Path::GetTempPath()), false) )
1005
					{
1005
					{
1006
						if ( f->checkFileExt("cat") )
1006
						if ( f->checkFileExt("cat") )
1007
						{
1007
						{
1008
							C_File *datFile = m_pPackage->findFile(CFileIO(f).changeFileExtension(L"dat").toString(), FILETYPE_MOD, "");
1008
							C_File *datFile = m_pPackage->findFile(CFileIO(f).changeFileExtension(L"dat"), FILETYPE_MOD, L"");
1009
							if ( datFile )
1009
							if ( datFile )
1010
							{
1010
							{
1011
								if ( m_pPackage->extractFile(datFile, _S(IO::Path::GetTempPath()), false) )
1011
								if ( m_pPackage->extractFile(datFile, _WS(IO::Path::GetTempPath()), false) )
1012
									process->StartInfo->FileName = IO::Path::GetTempPath() + "\\" + _US(f->name());
1012
									process->StartInfo->FileName = IO::Path::GetTempPath() + "\\" + _US(f->name());
1013
							}
1013
							}
1014
						}
1014
						}
1015
						else if ( f->checkFileExt("dat") )
1015
						else if ( f->checkFileExt("dat") )
1016
						{
1016
						{
1017
							C_File *catFile = m_pPackage->findFile(CFileIO(f).changeFileExtension(L"cat").toString(), FILETYPE_MOD, "");
1017
							C_File *catFile = m_pPackage->findFile(CFileIO(f).changeFileExtension(L"cat"), FILETYPE_MOD, L"");
1018
							if ( catFile )
1018
							if ( catFile )
1019
							{
1019
							{
1020
								if ( m_pPackage->extractFile(catFile, _S(IO::Path::GetTempPath()), false) )
1020
								if ( m_pPackage->extractFile(catFile, _WS(IO::Path::GetTempPath()), false) )
1021
									process->StartInfo->FileName = IO::Path::GetTempPath() + "\\" + _US(catFile->name());
1021
									process->StartInfo->FileName = IO::Path::GetTempPath() + "\\" + _US(catFile->name());
1022
							}
1022
							}
1023
						}
1023
						}
1024
					}
1024
					}
1025
					break;
1025
					break;
1026
 
1026
 
1027
				case FILETYPE_MAP:
1027
				case FILETYPE_MAP:
1028
					break;
1028
					break;
1029
 
1029
 
1030
				default:
1030
				default:
1031
					if ( m_pPackage->extractFile(f, _S(IO::Path::GetTempPath()), false) )
1031
					if ( m_pPackage->extractFile(f, _WS(IO::Path::GetTempPath()), false) )
1032
						process->StartInfo->FileName = IO::Path::GetTempPath() + "\\" + _US(f->name());
1032
						process->StartInfo->FileName = IO::Path::GetTempPath() + "\\" + _US(f->name());
1033
			}
1033
			}
1034
 
1034
 
1035
			if ( process->StartInfo->FileName && process->StartInfo->FileName->Length )
1035
			if ( process->StartInfo->FileName && process->StartInfo->FileName->Length )
1036
			{
1036
			{