diff options
Diffstat (limited to 'engines/xeen/detection.cpp')
-rw-r--r-- | engines/xeen/detection.cpp | 24 |
1 files changed, 18 insertions, 6 deletions
diff --git a/engines/xeen/detection.cpp b/engines/xeen/detection.cpp index 49b74b24a2..91eab285b3 100644 --- a/engines/xeen/detection.cpp +++ b/engines/xeen/detection.cpp @@ -73,6 +73,7 @@ static const PlainGameDescriptor XeenGames[] = { }; #define GAMEOPTION_SHOW_ITEM_COSTS GUIO_GAMEOPTIONS1 +#define GAMEOPTION_DURABLE_ARMOR GUIO_GAMEOPTIONS2 #include "xeen/detection_tables.h" @@ -88,6 +89,16 @@ static const ADExtraGuiOptionsMap optionsList[] = { } }, + { + GAMEOPTION_DURABLE_ARMOR, + { + _s("More durable armor"), + _s("Armor won't break until character is at -80HP, rather than merely -10HP"), + "DurableArmor", + false + } + }, + AD_EXTRA_GUI_OPTIONS_TERMINATOR }; @@ -170,12 +181,9 @@ SaveStateList XeenMetaEngine::listSaves(const char *target) const { Common::InSaveFile *in = g_system->getSavefileManager()->openForLoading(*file); if (in) { - Xeen::SavesManager::readSavegameHeader(in, header); - saveList.push_back(SaveStateDescriptor(slot, header._saveName)); + if (Xeen::SavesManager::readSavegameHeader(in, header)) + saveList.push_back(SaveStateDescriptor(slot, header._saveName)); - if (header._thumbnail) - header._thumbnail->free(); - delete header._thumbnail; delete in; } } @@ -200,7 +208,11 @@ SaveStateDescriptor XeenMetaEngine::querySaveMetaInfos(const char *target, int s if (f) { Xeen::XeenSavegameHeader header; - Xeen::SavesManager::readSavegameHeader(f, header); + if (!Xeen::SavesManager::readSavegameHeader(f, header, false)) { + delete f; + return SaveStateDescriptor(); + } + delete f; // Create the return descriptor |