| Line 258... |
Line 258... |
| 258 |
}
|
258 |
}
|
| 259 |
}
|
259 |
}
|
| 260 |
else if ( System::IO::File::Exists(filename) )
|
260 |
else if ( System::IO::File::Exists(filename) )
|
| 261 |
{
|
261 |
{
|
| 262 |
CyString sF = CyStringFromSystemString(filename);
|
262 |
CyString sF = CyStringFromSystemString(filename);
|
| 263 |
if ( CFileIO(sF).CheckFileExtension("bmp") )
|
263 |
if ( CFileIO(sF).isFileExtension("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 |
}
|
| 268 |
else
|
268 |
else
|
| Line 535... |
Line 535... |
| 535 |
return;
|
535 |
return;
|
| 536 |
|
536 |
|
| 537 |
AddDialog ^ad = gcnew AddDialog(m_pPackage, m_pMultiPackage);
|
537 |
AddDialog ^ad = gcnew AddDialog(m_pPackage, m_pMultiPackage);
|
| 538 |
ad->SetRemove();
|
538 |
ad->SetRemove();
|
| 539 |
|
539 |
|
| 540 |
int pos = CyStringFromSystemString(cli::safe_cast<System::String ^>(item->Tag)).ToInt();
|
540 |
int pos = _S(cli::safe_cast<System::String ^>(item->Tag)).toInt();
|
| 541 |
C_File *f = m_pPackage->GetFileList()->Get(pos);
|
541 |
C_File *f = m_pPackage->GetFileList()->Get(pos);
|
| 542 |
if ( f )
|
542 |
if ( f )
|
| 543 |
ad->AddFile(SystemStringFromCyString(f->GetName()), SystemStringFromCyString(f->GetDir()), f->GetFileType(), f->GetGame());
|
543 |
ad->AddFile(_US(f->name()), _US(f->dir()), f->GetFileType(), f->GetGame());
|
| 544 |
|
544 |
|
| 545 |
// remove the dat or cat file as well
|
545 |
// remove the dat or cat file as well
|
| 546 |
if ( f->GetFileType() == FILETYPE_MOD )
|
546 |
if ( f->GetFileType() == FILETYPE_MOD )
|
| 547 |
{
|
547 |
{
|
| 548 |
if ( f->CheckFileExt("cat") )
|
548 |
if ( f->CheckFileExt("cat") )
|
| 549 |
{
|
549 |
{
|
| 550 |
C_File *datFile = m_pPackage->FindFile(CFileIO(f).ChangeFileExtension("dat"), FILETYPE_MOD, "", f->GetGame());
|
550 |
C_File *datFile = m_pPackage->FindFile(CFileIO(f).changeFileExtension("dat"), FILETYPE_MOD, "", f->GetGame());
|
| 551 |
if ( datFile )
|
551 |
if ( datFile )
|
| 552 |
ad->AddFile(SystemStringFromCyString(datFile->GetName()), SystemStringFromCyString(datFile->GetDir()), datFile->GetFileType(), datFile->GetGame());
|
552 |
ad->AddFile(_US(datFile->name()), _US(datFile->dir()), datFile->GetFileType(), datFile->GetGame());
|
| 553 |
}
|
553 |
}
|
| 554 |
else if ( f->CheckFileExt("dat") )
|
554 |
else if ( f->CheckFileExt("dat") )
|
| 555 |
{
|
555 |
{
|
| 556 |
C_File *datFile = m_pPackage->FindFile(CFileIO(f).ChangeFileExtension("cat"), FILETYPE_MOD, "", f->GetGame());
|
556 |
C_File *datFile = m_pPackage->FindFile(CFileIO(f).changeFileExtension("cat"), FILETYPE_MOD, "", f->GetGame());
|
| 557 |
if ( datFile )
|
557 |
if ( datFile )
|
| 558 |
ad->AddFile(SystemStringFromCyString(datFile->GetName()), SystemStringFromCyString(datFile->GetDir()), datFile->GetFileType(), datFile->GetGame());
|
558 |
ad->AddFile(_US(datFile->name()), _US(datFile->dir()), datFile->GetFileType(), datFile->GetGame());
|
| 559 |
}
|
559 |
}
|
| 560 |
}
|
560 |
}
|
| 561 |
ad->ShowDialog(this);
|
561 |
ad->ShowDialog(this);
|
| 562 |
this->UpdateView(true);
|
562 |
this->UpdateView(true);
|
| 563 |
}
|
563 |
}
|
| Line 569... |
Line 569... |
| 569 |
AddDialog ^ad = gcnew AddDialog(m_pPackage, m_pMultiPackage);
|
569 |
AddDialog ^ad = gcnew AddDialog(m_pPackage, m_pMultiPackage);
|
| 570 |
ad->SetRemove();
|
570 |
ad->SetRemove();
|
| 571 |
|
571 |
|
| 572 |
for ( int i = 0; i < this->listView1->SelectedItems->Count; i++ )
|
572 |
for ( int i = 0; i < this->listView1->SelectedItems->Count; i++ )
|
| 573 |
{
|
573 |
{
|
| 574 |
int pos = CyStringFromSystemString(cli::safe_cast<System::String ^>(this->listView1->SelectedItems[i]->Tag)).ToInt();
|
574 |
int pos = _S(cli::safe_cast<System::String ^>(this->listView1->SelectedItems[i]->Tag)).toInt();
|
| 575 |
C_File *f = m_pPackage->GetFileList()->Get(pos);
|
575 |
C_File *f = m_pPackage->GetFileList()->Get(pos);
|
| 576 |
if ( f )
|
576 |
if ( f )
|
| 577 |
ad->AddFile(SystemStringFromCyString(f->GetName()), SystemStringFromCyString(f->GetDir()), f->GetFileType(), f->GetGame());
|
577 |
ad->AddFile(_US(f->name()), _US(f->dir()), f->GetFileType(), f->GetGame());
|
| 578 |
|
578 |
|
| 579 |
// remove the dat or cat file as well
|
579 |
// remove the dat or cat file as well
|
| 580 |
if ( f->GetFileType() == FILETYPE_MOD )
|
580 |
if ( f->GetFileType() == FILETYPE_MOD )
|
| 581 |
{
|
581 |
{
|
| 582 |
if ( f->CheckFileExt("cat") )
|
582 |
if ( f->CheckFileExt("cat") )
|
| 583 |
{
|
583 |
{
|
| 584 |
C_File *datFile = m_pPackage->FindFile(CFileIO(f).ChangeFileExtension("dat"), FILETYPE_MOD, "", f->GetGame());
|
584 |
C_File *datFile = m_pPackage->FindFile(CFileIO(f).changeFileExtension("dat"), FILETYPE_MOD, "", f->GetGame());
|
| 585 |
if ( datFile )
|
585 |
if ( datFile )
|
| 586 |
ad->AddFile(SystemStringFromCyString(datFile->GetName()), SystemStringFromCyString(datFile->GetDir()), datFile->GetFileType(), datFile->GetGame());
|
586 |
ad->AddFile(_US(datFile->name()), _US(datFile->dir()), datFile->GetFileType(), datFile->GetGame());
|
| 587 |
}
|
587 |
}
|
| 588 |
else if ( f->CheckFileExt("dat") )
|
588 |
else if ( f->CheckFileExt("dat") )
|
| 589 |
{
|
589 |
{
|
| 590 |
C_File *datFile = m_pPackage->FindFile(CFileIO(f).ChangeFileExtension("cat"), FILETYPE_MOD, "", f->GetGame());
|
590 |
C_File *datFile = m_pPackage->FindFile(CFileIO(f).changeFileExtension("cat"), FILETYPE_MOD, "", f->GetGame());
|
| 591 |
if ( datFile )
|
591 |
if ( datFile )
|
| 592 |
ad->AddFile(SystemStringFromCyString(datFile->GetName()), SystemStringFromCyString(datFile->GetDir()), datFile->GetFileType(), datFile->GetGame());
|
592 |
ad->AddFile(_US(datFile->name()), _US(datFile->dir()), datFile->GetFileType(), datFile->GetGame());
|
| 593 |
}
|
593 |
}
|
| 594 |
}
|
594 |
}
|
| 595 |
}
|
595 |
}
|
| 596 |
|
596 |
|
| 597 |
ad->ShowDialog(this);
|
597 |
ad->ShowDialog(this);
|
| Line 709... |
Line 709... |
| 709 |
for ( SStringList *str = fileList.Head(); str; str = str->next )
|
709 |
for ( SStringList *str = fileList.Head(); str; str = str->next )
|
| 710 |
{
|
710 |
{
|
| 711 |
if ( str->data != "-1" )
|
711 |
if ( str->data != "-1" )
|
| 712 |
continue;
|
712 |
continue;
|
| 713 |
|
713 |
|
| 714 |
CyString ext = CFileIO(str->str).GetFileExtension();
|
714 |
Utils::String ext = CFileIO(str->str).extension();
|
| 715 |
if ( !ext.Compare("xsp") && !ext.Compare("spk") )
|
715 |
if ( !ext.Compare("xsp") && !ext.Compare("spk") )
|
| 716 |
continue;
|
716 |
continue;
|
| 717 |
|
717 |
|
| 718 |
ad->AddFile(SystemStringFromCyString(str->str), "", -1, 0);
|
718 |
ad->AddFile(SystemStringFromCyString(str->str), "", -1, 0);
|
| 719 |
}
|
719 |
}
|
| Line 1004... |
Line 1004... |
| 1004 |
case FILETYPE_MOD:
|
1004 |
case FILETYPE_MOD:
|
| 1005 |
if ( m_pPackage->ExtractFile(f, CyStringFromSystemString(IO::Path::GetTempPath()), false) )
|
1005 |
if ( m_pPackage->ExtractFile(f, CyStringFromSystemString(IO::Path::GetTempPath()), false) )
|
| 1006 |
{
|
1006 |
{
|
| 1007 |
if ( f->CheckFileExt("cat") )
|
1007 |
if ( f->CheckFileExt("cat") )
|
| 1008 |
{
|
1008 |
{
|
| 1009 |
C_File *datFile = m_pPackage->FindFile(CFileIO(f).ChangeFileExtension("dat"), FILETYPE_MOD, "");
|
1009 |
C_File *datFile = m_pPackage->FindFile(CFileIO(f).changeFileExtension("dat"), FILETYPE_MOD, "");
|
| 1010 |
if ( datFile )
|
1010 |
if ( datFile )
|
| 1011 |
{
|
1011 |
{
|
| 1012 |
if ( m_pPackage->ExtractFile(datFile, CyStringFromSystemString(IO::Path::GetTempPath()), false) )
|
1012 |
if ( m_pPackage->ExtractFile(datFile, CyStringFromSystemString(IO::Path::GetTempPath()), false) )
|
| 1013 |
process->StartInfo->FileName = IO::Path::GetTempPath() + "\\" + SystemStringFromCyString(f->GetName());
|
1013 |
process->StartInfo->FileName = IO::Path::GetTempPath() + "\\" + _US(f->name());
|
| 1014 |
}
|
1014 |
}
|
| 1015 |
}
|
1015 |
}
|
| 1016 |
else if ( f->CheckFileExt("dat") )
|
1016 |
else if ( f->CheckFileExt("dat") )
|
| 1017 |
{
|
1017 |
{
|
| 1018 |
C_File *catFile = m_pPackage->FindFile(CFileIO(f).ChangeFileExtension("cat"), FILETYPE_MOD, "");
|
1018 |
C_File *catFile = m_pPackage->FindFile(CFileIO(f).changeFileExtension("cat"), FILETYPE_MOD, "");
|
| 1019 |
if ( catFile )
|
1019 |
if ( catFile )
|
| 1020 |
{
|
1020 |
{
|
| 1021 |
if ( m_pPackage->ExtractFile(catFile, CyStringFromSystemString(IO::Path::GetTempPath()), false) )
|
1021 |
if ( m_pPackage->ExtractFile(catFile, CyStringFromSystemString(IO::Path::GetTempPath()), false) )
|
| 1022 |
process->StartInfo->FileName = IO::Path::GetTempPath() + "\\" + SystemStringFromCyString(catFile->GetName());
|
1022 |
process->StartInfo->FileName = IO::Path::GetTempPath() + "\\" + _US(catFile->name());
|
| 1023 |
}
|
1023 |
}
|
| 1024 |
}
|
1024 |
}
|
| 1025 |
}
|
1025 |
}
|
| 1026 |
break;
|
1026 |
break;
|
| 1027 |
|
1027 |
|
| 1028 |
case FILETYPE_MAP:
|
1028 |
case FILETYPE_MAP:
|
| 1029 |
break;
|
1029 |
break;
|
| 1030 |
|
1030 |
|
| 1031 |
default:
|
1031 |
default:
|
| 1032 |
if ( m_pPackage->ExtractFile(f, CyStringFromSystemString(IO::Path::GetTempPath()), false) )
|
1032 |
if ( m_pPackage->ExtractFile(f, CyStringFromSystemString(IO::Path::GetTempPath()), false) )
|
| 1033 |
process->StartInfo->FileName = IO::Path::GetTempPath() + "\\" + SystemStringFromCyString(f->GetName());
|
1033 |
process->StartInfo->FileName = IO::Path::GetTempPath() + "\\" + _US(f->name());
|
| 1034 |
}
|
1034 |
}
|
| 1035 |
|
1035 |
|
| 1036 |
if ( process->StartInfo->FileName && process->StartInfo->FileName->Length )
|
1036 |
if ( process->StartInfo->FileName && process->StartInfo->FileName->Length )
|
| 1037 |
{
|
1037 |
{
|
| 1038 |
process->StartInfo->CreateNoWindow = true;
|
1038 |
process->StartInfo->CreateNoWindow = true;
|