diff --git a/doomsday/apps/client/src/ui/savelistdata.cpp b/doomsday/apps/client/src/ui/savelistdata.cpp index 35073f9a9e..9c70f7a07f 100644 --- a/doomsday/apps/client/src/ui/savelistdata.cpp +++ b/doomsday/apps/client/src/ui/savelistdata.cpp @@ -75,10 +75,19 @@ DENG2_PIMPL(SaveListData) { foreach (File *file, SaveGames::get().saveIndex().files()) { - GameStateFolder &save = file->as(); - if (shouldAddFolder(save)) + try { - self().append(new SaveItem(save)); + GameStateFolder &save = file->as(); + if (shouldAddFolder(save)) + { + self().append(new SaveItem(save)); + } + } + catch (Error const &er) + { + LOG_ERROR("Save file %s has corrupt metadata: %s") + << file->description() + << er.asText(); } } } diff --git a/doomsday/apps/plugins/common/src/game/saveslots.cpp b/doomsday/apps/plugins/common/src/game/saveslots.cpp index 945bde6fca..56a541fedd 100644 --- a/doomsday/apps/plugins/common/src/game/saveslots.cpp +++ b/doomsday/apps/plugins/common/src/game/saveslots.cpp @@ -67,7 +67,7 @@ DENG2_PIMPL_NOREF(SaveSlots::Slot) { status = Incompatible; // Game identity key missmatch? - if (!session->metadata().gets("gameIdentityKey").compareWithoutCase(COMMON_GAMESESSION->gameId())) + if (!session->metadata().gets("gameIdentityKey", "").compareWithoutCase(COMMON_GAMESESSION->gameId())) { /// @todo Validate loaded add-ons and checksum the definition database. status = Loadable; // It's good!