| Line 490... |
Line 490... |
| 490 |
void SpkForm::ExtractSelected(System::String ^toDir)
|
490 |
void SpkForm::ExtractSelected(System::String ^toDir)
|
| 491 |
{
|
491 |
{
|
| 492 |
if ( !m_pPackage )
|
492 |
if ( !m_pPackage )
|
| 493 |
return;
|
493 |
return;
|
| 494 |
|
494 |
|
| 495 |
CyString sToDir = CyStringFromSystemString(toDir);
|
495 |
Utils::WString sToDir = _WS(toDir);
|
| 496 |
|
496 |
|
| 497 |
CLinkList<C_File> list;
|
497 |
CLinkList<C_File> list;
|
| 498 |
|
498 |
|
| 499 |
for ( int i = 0; i < this->listView1->SelectedItems->Count; i++ )
|
499 |
for ( int i = 0; i < this->listView1->SelectedItems->Count; i++ )
|
| 500 |
{
|
500 |
{
|
| 501 |
int pos = CyStringFromSystemString(cli::safe_cast<System::String ^>(this->listView1->SelectedItems[i]->Tag)).ToInt();
|
501 |
int pos = _WS(cli::safe_cast<System::String ^>(this->listView1->SelectedItems[i]->Tag)).toInt();
|
| 502 |
C_File *f = m_pPackage->GetFileList()->Get(pos);
|
502 |
C_File *f = m_pPackage->GetFileList()->Get(pos);
|
| 503 |
list.push_back(f);
|
503 |
list.push_back(f);
|
| 504 |
}
|
504 |
}
|
| 505 |
|
505 |
|
| 506 |
this->DoExtract(&list, toDir, -1);
|
506 |
this->DoExtract(&list, toDir, -1);
|
| Line 510... |
Line 510... |
| 510 |
void SpkForm::ExtractSelectedPackage(System::String ^toDir)
|
510 |
void SpkForm::ExtractSelectedPackage(System::String ^toDir)
|
| 511 |
{
|
511 |
{
|
| 512 |
if ( !m_pMultiPackage )
|
512 |
if ( !m_pMultiPackage )
|
| 513 |
return;
|
513 |
return;
|
| 514 |
|
514 |
|
| 515 |
CyString sToDir = CyStringFromSystemString(toDir);
|
515 |
Utils::WString sToDir = _WS(toDir);
|
| 516 |
|
516 |
|
| 517 |
CLinkList<SMultiSpkFile> list;
|
517 |
CLinkList<SMultiSpkFile> list;
|
| 518 |
|
518 |
|
| 519 |
for ( int i = 0; i < this->listView2->SelectedItems->Count; i++ )
|
519 |
for ( int i = 0; i < this->listView2->SelectedItems->Count; i++ )
|
| 520 |
{
|
520 |
{
|
| 521 |
int pos = CyStringFromSystemString(cli::safe_cast<System::String ^>(this->listView2->SelectedItems[i]->Tag)).ToInt();
|
521 |
int pos = _WS(cli::safe_cast<System::String ^>(this->listView2->SelectedItems[i]->Tag)).toInt();
|
| 522 |
SMultiSpkFile *mp = m_pMultiPackage->GetFileList()->Get(pos);
|
522 |
SMultiSpkFile *mp = m_pMultiPackage->GetFileList()->Get(pos);
|
| 523 |
if ( mp )
|
523 |
if ( mp )
|
| 524 |
list.push_back(mp);
|
524 |
list.push_back(mp);
|
| 525 |
}
|
525 |
}
|
| 526 |
|
526 |
|
| Line 542... |
Line 542... |
| 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(L"cat") )
|
| 548 |
{
|
548 |
{
|
| 549 |
C_File *datFile = m_pPackage->findFile(CFileIO(f).changeFileExtension(L"dat"), FILETYPE_MOD, L"", 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(L"dat") )
|
| 554 |
{
|
554 |
{
|
| 555 |
C_File *datFile = m_pPackage->findFile(CFileIO(f).changeFileExtension(L"cat"), FILETYPE_MOD, L"", 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 |
}
|
| Line 576... |
Line 576... |
| 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(L"cat") )
|
| 582 |
{
|
582 |
{
|
| 583 |
C_File *datFile = m_pPackage->findFile(CFileIO(f).changeFileExtension(L"dat"), FILETYPE_MOD, L"", 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(L"dat") )
|
| 588 |
{
|
588 |
{
|
| 589 |
C_File *datFile = m_pPackage->findFile(CFileIO(f).changeFileExtension(L"cat"), FILETYPE_MOD, L"", 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 |
}
|