diff options
author | Paul Gilbert | 2011-10-01 17:50:19 +1000 |
---|---|---|
committer | Paul Gilbert | 2011-10-01 17:50:19 +1000 |
commit | 9bb978486b102dc751922c6d5f4e729e264c2887 (patch) | |
tree | 65a5b4603f3f9c3376eed9fde8034f170ecb5ede /engines/cruise | |
parent | 8465f9f99ff5eca617a57b4231efdbcf7c9f9e8a (diff) | |
download | scummvm-rg350-9bb978486b102dc751922c6d5f4e729e264c2887.tar.gz scummvm-rg350-9bb978486b102dc751922c6d5f4e729e264c2887.tar.bz2 scummvm-rg350-9bb978486b102dc751922c6d5f4e729e264c2887.zip |
COMMON: Fix multiple engines asserting in querySaveMetaInfos for empty save slots
Diffstat (limited to 'engines/cruise')
-rw-r--r-- | engines/cruise/detection.cpp | 27 |
1 files changed, 15 insertions, 12 deletions
diff --git a/engines/cruise/detection.cpp b/engines/cruise/detection.cpp index 5be2fdeeea..a68b14d986 100644 --- a/engines/cruise/detection.cpp +++ b/engines/cruise/detection.cpp @@ -284,19 +284,22 @@ void CruiseMetaEngine::removeSaveState(const char *target, int slot) const { SaveStateDescriptor CruiseMetaEngine::querySaveMetaInfos(const char *target, int slot) const { Common::InSaveFile *f = g_system->getSavefileManager()->openForLoading( Cruise::CruiseEngine::getSavegameFile(slot)); - assert(f); - - Cruise::CruiseSavegameHeader header; - Cruise::readSavegameHeader(f, header); - delete f; - - // Create the return descriptor - SaveStateDescriptor desc(slot, header.saveName); - desc.setDeletableFlag(true); - desc.setWriteProtectedFlag(false); - desc.setThumbnail(header.thumbnail); + + if (f) { + Cruise::CruiseSavegameHeader header; + Cruise::readSavegameHeader(f, header); + delete f; + + // Create the return descriptor + SaveStateDescriptor desc(slot, header.saveName); + desc.setDeletableFlag(true); + desc.setWriteProtectedFlag(false); + desc.setThumbnail(header.thumbnail); + + return desc; + } - return desc; + return SaveStateDescriptor(); } bool CruiseMetaEngine::createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const { |