Subversion Repositories spk

Rev

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

Rev 196 Rev 197
Line 46... Line 46...
46
					}
46
					}
47
				}
47
				}
48
				break;
48
				break;
49
			case WORKER_WRITE:
49
			case WORKER_WRITE:
50
				{
50
				{
51
					Utils::String sToDir = _S(m_sToDir);
51
					Utils::WString sToDir = _WS(m_sToDir);
52
					if ( m_pMultiPackage )
52
					if ( m_pMultiPackage )
53
					{
53
					{
54
						if ( !m_pMultiPackage->extractFile(m_pWorkingPackage, sToDir) )
54
						if ( !m_pMultiPackage->extractFile(m_pWorkingPackage, sToDir.toString()) )
55
							m_sFailed = "Writing";
55
							m_sFailed = "Writing";
56
					}
56
					}
57
					else
57
					else
58
					{
58
					{
59
						// check for addon directory
59
						// check for addon directory
Line 73... Line 73...
73
								}
73
								}
74
							}
74
							}
75
 
75
 
76
							if (game > 0)
76
							if (game > 0)
77
							{
77
							{
78
								SGameExe *exe = _pPackages->GetGameExe()->GetGame(game - 1);
78
								SGameExe *exe = _pPackages->GetGameExe()->game(game - 1);
79
								if (exe && !exe->sAddon.empty())
79
								if (exe && !exe->sAddon.empty())
80
									sToDir += "/" + exe->sAddon;
80
									sToDir += L"/" + exe->sAddon;
81
							}
81
							}
82
						}
82
						}
83
 
83
 
84
						if ( !CDirIO(sToDir + "/" + m_pWorkingFile->getDirectory(NULL)).exists() )
84
						if ( !CDirIO(sToDir + L"/" + m_pWorkingFile->getDirectory(NULL)).exists() )
85
						{
85
						{
86
							if ( !CDirIO(sToDir + "/" + m_pWorkingFile->getDirectory(NULL)).create() )
86
							if ( !CDirIO(sToDir + L"/" + m_pWorkingFile->getDirectory(NULL)).create() )
87
							{
87
							{
88
								m_sFailed = "Creating Directory";
88
								m_sFailed = "Creating Directory";
89
								break;
89
								break;
90
							}
90
							}
91
						}
91
						}
92
 
92
 
93
						if ( !m_pWorkingFile->writeToFile(CFileIO(sToDir + "/" + m_pWorkingFile->getNameDirectory(NULL)).fullFilenameStr(), m_pUncompressData, m_iUncompressSize) )
93
						if ( !m_pWorkingFile->writeToFile(CFileIO(sToDir + L"/" + m_pWorkingFile->getNameDirectory(NULL)).fullFilename(), m_pUncompressData, m_iUncompressSize) )
94
							m_sFailed = "Writing";
94
							m_sFailed = "Writing";
95
						else
95
						else
96
							m_iExtractCount++;
96
							m_iExtractCount++;
97
					}
97
					}
98
				}
98
				}
Line 133... Line 133...
133
		if ( m_sFailed->Length )
133
		if ( m_sFailed->Length )
134
		{
134
		{
135
			if ( m_pMultiPackage )
135
			if ( m_pMultiPackage )
136
				m_pFailedList->PushBack(CyString(m_pWorkingPackage->sName), CyStringFromSystemString(m_sFailed));
136
				m_pFailedList->PushBack(CyString(m_pWorkingPackage->sName), CyStringFromSystemString(m_sFailed));
137
			else
137
			else
138
				m_pFailedList->PushBack(CyString(m_pWorkingFile->getNameDirectory(NULL)), CyStringFromSystemString(m_sFailed));
138
				m_pFailedList->PushBack(CyString(m_pWorkingFile->getNameDirectory(NULL).toString()), CyStringFromSystemString(m_sFailed));
139
		}
139
		}
140
 
140
 
141
		if ( m_iWorkingStatus == WORKER_WRITE || m_sFailed->Length )
141
		if ( m_iWorkingStatus == WORKER_WRITE || m_sFailed->Length )
142
			this->DoNextFile();
142
			this->DoNextFile();
143
		else
143
		else
Line 239... Line 239...
239
	}
239
	}
240
 
240
 
241
 
241
 
242
	void ExtractDialog::UpdateDisplay()
242
	void ExtractDialog::UpdateDisplay()
243
	{
243
	{
244
		Utils::String sToDir = _S(m_sToDir);
244
		Utils::WString sToDir = _WS(m_sToDir);
245
 
245
 
246
		int max = 0;
246
		int max = 0;
247
		if ( m_pMultiPackage )
247
		if ( m_pMultiPackage )
248
			max = m_pMultiList->size();
248
			max = m_pMultiList->size();
249
		else
249
		else
250
			max = m_pList->size();
250
			max = m_pList->size();
251
 
251
 
252
		this->Text = "Extracting Files [" + (m_iCount + 1) + "/" + max + "]";
252
		this->Text = "Extracting Files [" + (m_iCount + 1) + "/" + max + "]";
253
 
253
 
254
		Utils::String filename;
254
		Utils::WString filename;
255
		if ( m_pMultiPackage )
255
		if ( m_pMultiPackage )
256
			filename = sToDir + "/" + m_pWorkingPackage->sName;
256
			filename = sToDir + L"/" + m_pWorkingPackage->sName.toWString();
257
		else
257
		else
258
			filename = sToDir + "/" + m_pWorkingFile->getNameDirectory(NULL);
258
			filename = sToDir + L"/" + m_pWorkingFile->getNameDirectory(NULL);
259
 
259
 
260
		Utils::String displayFilename = filename;
260
		Utils::WString displayFilename = filename;
261
		displayFilename = displayFilename.findReplace("/", "\\");
261
		displayFilename = displayFilename.findReplace("/", "\\");
262
		this->LabFilename->Text = _US(displayFilename);
262
		this->LabFilename->Text = _US(displayFilename);
263
 
263
 
264
		if ( m_pMultiPackage )
264
		if ( m_pMultiPackage )
265
			this->LabSize->Text = _US(SPK::GetSizeString(m_pWorkingPackage->lSize));
265
			this->LabSize->Text = _US(SPK::GetSizeString(m_pWorkingPackage->lSize));