From 50f964770c17880993aff1af9342f5111d75bc07 Mon Sep 17 00:00:00 2001 From: Eugene Sandulenko Date: Wed, 13 Nov 2019 00:38:48 +0100 Subject: GRIFFON: Added support for extended saves --- engines/griffon/detection.cpp | 12 +++++++++++- engines/griffon/saveload.cpp | 9 ++++++++- 2 files changed, 19 insertions(+), 2 deletions(-) (limited to 'engines/griffon') 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 -- cgit v1.2.3