GCMemcard: Rework construction logic to better match our knowledge of the format, while providing better error reporting facilities.

This commit is contained in:
Admiral H. Curtiss
2019-04-21 15:18:01 +02:00
parent 24718c1a38
commit b54a49eaaf
5 changed files with 369 additions and 223 deletions

View File

@ -212,9 +212,10 @@ void GameCubePane::OnConfigPressed(int slot)
{
if (File::Exists(filename.toStdString()))
{
GCMemcard mc(filename.toStdString());
// TODO: check error codes and give reasonable error messages
auto [error_code, mc] = GCMemcard::Open(filename.toStdString());
if (!mc.IsValid())
if (error_code.HasCriticalErrors() || !mc || !mc->IsValid())
{
ModalMessageBox::critical(this, tr("Error"),
tr("Cannot use that file as a memory card.\n%1\n"