Merge pull request #242 from LPFaint99/GCMemcard

MemcardManager: Fix "export all saves"
This commit is contained in:
Ryan Houdek 2014-04-10 22:10:34 -05:00
commit bedb386560
2 changed files with 18 additions and 9 deletions

View File

@ -904,17 +904,26 @@ u32 GCMemcard::ExportGci(u8 index, const std::string& fileName, const std::strin
File::IOFile gci; File::IOFile gci;
int offset = GCI; int offset = GCI;
gci.Open(fileName, "wb"); if (!fileName.length())
std::string fileType;
SplitPath(fileName, nullptr, nullptr, &fileType);
if (!strcasecmp(fileType.c_str(), ".gcs"))
{ {
offset = GCS; std::string gciFilename;
// GCI_FileName should only fail if the gamecode is 0xFFFFFFFF
if (!GCI_FileName(index, gciFilename)) return SUCCESS;
gci.Open(directory + DIR_SEP + gciFilename, "wb");
} }
else if (!strcasecmp(fileType.c_str(), ".sav")) else
{ {
offset = SAV; std::string fileType;
gci.Open(fileName, "wb");
SplitPath(fileName, nullptr, nullptr, &fileType);
if (!strcasecmp(fileType.c_str(), ".gcs"))
{
offset = GCS;
}
else if (!strcasecmp(fileType.c_str(), ".sav"))
{
offset = SAV;
}
} }
if (!gci) if (!gci)

View File

@ -605,7 +605,7 @@ void CMemcardManager::CopyDeleteClick(wxCommandEvent& event)
"%s\nand have the same name as a file on your memcard\nContinue?", path1.c_str())) "%s\nand have the same name as a file on your memcard\nContinue?", path1.c_str()))
for (int i = 0; i < DIRLEN; i++) for (int i = 0; i < DIRLEN; i++)
{ {
CopyDeleteSwitch(memoryCard[slot]->ExportGci(i, nullptr, path1), -1); CopyDeleteSwitch(memoryCard[slot]->ExportGci(i, "", path1), -1);
} }
break; break;
} }