Subversion Repositories spk

Rev

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

Rev 224 Rev 225
Line 3... Line 3...
3
 
3
 
4
namespace SpkExplorer {
4
namespace SpkExplorer {
5
	void AddDialog::AddFile(System::String ^file, System::String ^dir, int type, int game)
5
	void AddDialog::AddFile(System::String ^file, System::String ^dir, int type, int game)
6
	{
6
	{
7
		SAddFile *af = new SAddFile;
7
		SAddFile *af = new SAddFile;
8
		af->sFile = CyStringFromSystemString(file);
8
		af->sFile = _WS(file);
9
		if ( dir && dir->Length )
9
		if ( dir && dir->Length )
10
			af->sDir = CyStringFromSystemString(dir);
10
			af->sDir = _WS(dir);
11
		af->iType = type;
11
		af->iType = type;
12
		af->iGame = game;
12
		af->iGame = game;
13
		m_lFiles->push_back(af);
13
		m_lFiles->push_back(af);
14
 
14
 
15
		if ( type == FILETYPE_MOD && !m_bRemove )
15
		if ( type == FILETYPE_MOD && !m_bRemove )
Line 18... Line 18...
18
			{
18
			{
19
				String ^datFile = IO::Path::GetDirectoryName(file) + "\\" + IO::Path::GetFileNameWithoutExtension(file) + ".dat";
19
				String ^datFile = IO::Path::GetDirectoryName(file) + "\\" + IO::Path::GetFileNameWithoutExtension(file) + ".dat";
20
				if ( IO::File::Exists(datFile) )
20
				if ( IO::File::Exists(datFile) )
21
				{
21
				{
22
					SAddFile *af = new SAddFile;
22
					SAddFile *af = new SAddFile;
23
					af->sFile = CyStringFromSystemString(datFile);
23
					af->sFile = _WS(datFile);
24
					if ( dir && dir->Length )
24
					if ( dir && dir->Length )
25
						af->sDir = CyStringFromSystemString(dir);
25
						af->sDir = _WS(dir);
26
					af->iType = type;
26
					af->iType = type;
27
					af->iGame = game;
27
					af->iGame = game;
28
					m_lFiles->push_back(af);
28
					m_lFiles->push_back(af);
29
				}
29
				}
30
			}
30
			}
Line 49... Line 49...
49
				if ( m_bRemove )
49
				if ( m_bRemove )
50
					m_iStatus = ADDSTATUS_REMOVE;
50
					m_iStatus = ADDSTATUS_REMOVE;
51
				else
51
				else
52
					m_iStatus = ADDSTATUS_ADD;
52
					m_iStatus = ADDSTATUS_ADD;
53
				m_lFiles->First();
53
				m_lFiles->First();
54
				this->LabFile->Text = _US(m_lFiles->CurrentData()->sFile.ToString());
54
				this->LabFile->Text = _US(m_lFiles->CurrentData()->sFile);
55
				this->progressBar1->Maximum = m_lFiles->size();
55
				this->progressBar1->Maximum = m_lFiles->size();
56
				this->progressBar1->Value = 0;
56
				this->progressBar1->Value = 0;
57
				this->backgroundWorker1->RunWorkerAsync();
57
				this->backgroundWorker1->RunWorkerAsync();
58
				break;
58
				break;
59
 
59
 
Line 62... Line 62...
62
				if ( !m_lFiles->Next() )
62
				if ( !m_lFiles->Next() )
63
					m_iStatus = ADDSTATUS_SAVE;
63
					m_iStatus = ADDSTATUS_SAVE;
64
				else
64
				else
65
				{
65
				{
66
					++this->progressBar1->Value;
66
					++this->progressBar1->Value;
67
					this->LabFile->Text = _US(m_lFiles->CurrentData()->sFile.ToString());
67
					this->LabFile->Text = _US(m_lFiles->CurrentData()->sFile);
68
				}
68
				}
69
				this->backgroundWorker1->RunWorkerAsync();
69
				this->backgroundWorker1->RunWorkerAsync();
70
				break;
70
				break;
71
 
71
 
72
			case ADDSTATUS_SAVE:
72
			case ADDSTATUS_SAVE:
Line 87... Line 87...
87
					m_pPackage->ReadAllFilesToMemory();
87
					m_pPackage->ReadAllFilesToMemory();
88
				break;
88
				break;
89
 
89
 
90
			case ADDSTATUS_ADD:
90
			case ADDSTATUS_ADD:
91
				if ( m_lFiles->CurrentData()->iType < 0 && m_pMultiPackage ) // package
91
				if ( m_lFiles->CurrentData()->iType < 0 && m_pMultiPackage ) // package
92
					m_pMultiPackage->addFileNow(m_lFiles->CurrentData()->sFile.ToString(), (m_lFiles->CurrentData()->iType == -1) ? true : false);
92
					m_pMultiPackage->addFileNow(m_lFiles->CurrentData()->sFile, (m_lFiles->CurrentData()->iType == -1) ? true : false);
93
				else if ( m_pPackage && m_lFiles->CurrentData()->iType >= 0 )
93
				else if ( m_pPackage && m_lFiles->CurrentData()->iType >= 0 )
94
				{
94
				{
95
					m_pPackage->addFileNow(m_lFiles->CurrentData()->sFile.ToString(), m_lFiles->CurrentData()->sDir.ToString(), static_cast<FileType>(m_lFiles->CurrentData()->iType));
95
					m_pPackage->addFileNow(m_lFiles->CurrentData()->sFile, m_lFiles->CurrentData()->sDir, static_cast<FileType>(m_lFiles->CurrentData()->iType));
96
					if ( m_pMultiPackage )
96
					if ( m_pMultiPackage )
97
						m_bUpdatedPackage = true;
97
						m_bUpdatedPackage = true;
98
				}
98
				}
99
				break;
99
				break;
100
 
100
 
101
			case ADDSTATUS_REMOVE:
101
			case ADDSTATUS_REMOVE:
102
				if ( m_lFiles->CurrentData()->iType < 0 && m_pMultiPackage ) // package
102
				if ( m_lFiles->CurrentData()->iType < 0 && m_pMultiPackage ) // package
103
					m_pMultiPackage->removeFile(m_lFiles->CurrentData()->sFile.ToString());
103
					m_pMultiPackage->removeFile(m_lFiles->CurrentData()->sFile);
104
				else if ( m_pPackage && m_lFiles->CurrentData()->iType >= 0 )
104
				else if ( m_pPackage && m_lFiles->CurrentData()->iType >= 0 )
105
				{
105
				{
106
					m_pPackage->removeFile(m_lFiles->CurrentData()->sFile.ToString(), static_cast<;FileType>(m_lFiles->CurrentData()->iType), m_lFiles->CurrentData()->sDir.ToString(), m_lFiles->CurrentData()->iGame);
106
					m_pPackage->removeFile(m_lFiles->CurrentData()->sFile, static_cast<;FileType>(m_lFiles->CurrentData()->iType), m_lFiles->CurrentData()->sDir, m_lFiles->CurrentData()->iGame);
107
					if ( m_pMultiPackage )
107
					if ( m_pMultiPackage )
108
						m_bUpdatedPackage = true;
108
						m_bUpdatedPackage = true;
109
				}
109
				}
110
				break;
110
				break;
111
 
111