diff options
author | Eugene Sandulenko | 2019-11-13 00:38:48 +0100 |
---|---|---|
committer | Eugene Sandulenko | 2019-11-13 22:07:08 +0100 |
commit | 50f964770c17880993aff1af9342f5111d75bc07 (patch) | |
tree | 3504590811c830995a84b34508a8428cfb9bc832 /engines/griffon | |
parent | 4fbf91e829c3466e7fe6f1032220db8e1279ddaa (diff) | |
download | scummvm-rg350-50f964770c17880993aff1af9342f5111d75bc07.tar.gz scummvm-rg350-50f964770c17880993aff1af9342f5111d75bc07.tar.bz2 scummvm-rg350-50f964770c17880993aff1af9342f5111d75bc07.zip |
GRIFFON: Added support for extended saves
Diffstat (limited to 'engines/griffon')
-rw-r--r-- | engines/griffon/detection.cpp | 12 | ||||
-rw-r--r-- | engines/griffon/saveload.cpp | 9 |
2 files changed, 19 insertions, 2 deletions
diff --git a/engines/griffon/detection.cpp b/engines/griffon/detection.cpp index 99eab521e2..e19530ba9a 100644 --- a/engines/griffon/detection.cpp +++ b/engines/griffon/detection.cpp @@ -59,6 +59,8 @@ public: return "Griffon Engine"; } + virtual int getMaximumSaveSlot() const { return 3; } + virtual const char *getOriginalCopyright() const { return "The Griffon Legend (c) 2005 Syn9 (Daniel Kennedy)"; } @@ -68,7 +70,15 @@ public: }; bool GriffonMetaEngine::hasFeature(MetaEngineFeature f) const { - return false; + return + (f == kSupportsListSaves) || + (f == kSupportsDeleteSave) || + (f == kSavesSupportMetaInfo) || + (f == kSavesSupportThumbnail) || + (f == kSavesSupportCreationDate) || + (f == kSavesSupportPlayTime) || + (f == kSupportsLoadingDuringStartup) || + (f == kSavesUseExtendedFormat); } bool GriffonMetaEngine::createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const { diff --git a/engines/griffon/saveload.cpp b/engines/griffon/saveload.cpp index 7285e21fb5..ff0ffbf588 100644 --- a/engines/griffon/saveload.cpp +++ b/engines/griffon/saveload.cpp @@ -37,6 +37,7 @@ #include "griffon/griffon.h" #include "common/savefile.h" +#include "engines/metaengine.h" namespace Griffon { @@ -55,7 +56,7 @@ namespace Griffon { } while(0) Common::String GriffonEngine::makeSaveGameName(int slot) { - return (_targetName + Common::String::format(".%02d", slot)); + return (_targetName + Common::String::format(".s%02d", slot)); } int GriffonEngine::loadState(int slotnum) { @@ -248,6 +249,12 @@ int GriffonEngine::saveState(int slotnum) { PRINT("%f", _player.spellStrength); } + drawView(); + + Common::String desc = Common::String::format("Level: %d Map: %d", _player.level, _curMap); + + MetaEngine::appendExtendedSave(file, (_secStart + _secsInGame) * 1000, desc); + file->finalize(); return 1; // success |