aboutsummaryrefslogtreecommitdiff
path: root/engines/griffon
diff options
context:
space:
mode:
authorEugene Sandulenko2019-11-13 00:38:48 +0100
committerEugene Sandulenko2019-11-13 22:07:08 +0100
commit50f964770c17880993aff1af9342f5111d75bc07 (patch)
tree3504590811c830995a84b34508a8428cfb9bc832 /engines/griffon
parent4fbf91e829c3466e7fe6f1032220db8e1279ddaa (diff)
downloadscummvm-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.cpp12
-rw-r--r--engines/griffon/saveload.cpp9
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