Merge pull request #773 from tambry/OverwriteFix

Fix overwriting, when installing PKG files
This commit is contained in:
Alexandro Sánchez Bach 2014-08-23 14:57:21 +02:00
commit 0d4c10b56c
2 changed files with 9 additions and 10 deletions

View File

@ -233,18 +233,18 @@ void MainFrame::InstallPkg(wxCommandEvent& WXUNUSED(event))
Emu.Stop();
// Open and install PKG file
wxString filePath = ctrl.GetPath();
rFile pkg_f(filePath.ToStdString(), rFile::read); // TODO: Use VFS to install PKG files
std::string filePath = ctrl.GetPath().ToStdString();
rFile pkg_f(filePath, rFile::read); // TODO: Use VFS to install PKG files
if (pkg_f.IsOpened())
{
PKGLoader pkg(pkg_f);
pkg.Install("/dev_hdd0/game/");
pkg.Close();
}
// Refresh game list
m_game_viewer->Refresh();
// Refresh game list
m_game_viewer->Refresh();
}
}
void MainFrame::BootElf(wxCommandEvent& WXUNUSED(event))

View File

@ -25,17 +25,16 @@ bool PKGLoader::Install(std::string dest)
std::string titleID = std::string(title_id).substr(7, 9);
if (rExists(dest+titleID)) {
if (rExists(dest + titleID)) {
rMessageDialog d_overwrite(NULL, "Another installation was found. Do you want to overwrite it?", "PKG Decrypter / Installer", rYES_NO|rCENTRE);
if (d_overwrite.ShowModal() != rID_YES) {
LOG_ERROR(LOADER, "PKG Loader: Another installation found in: %s", titleID.c_str());
return false;
}
// TODO: Remove the following two lines and remove the folder dest+titleID
LOG_ERROR(LOADER, "PKG Loader: Another installation found in: %s", titleID.c_str());
return false;
rRmdir(dest + titleID);
}
if (!rMkdir(dest+titleID)) {
if (!rMkdir(dest + titleID)) {
LOG_ERROR(LOADER, "PKG Loader: Could not make the installation directory: %s", titleID.c_str());
return false;
}