aboutsummaryrefslogtreecommitdiff
path: root/engines/tony/detection.cpp
diff options
context:
space:
mode:
authorPaul Gilbert2012-05-16 00:05:48 +1000
committerPaul Gilbert2012-05-17 19:38:57 +1000
commit59942d9a41cf7d43b95e9775aca66c241884b516 (patch)
tree7f8b0b671cff28dfb233c57ee6f3502f084db538 /engines/tony/detection.cpp
parent88762667b52e4b904c56ecc94bf304c1a91e9feb (diff)
downloadscummvm-rg350-59942d9a41cf7d43b95e9775aca66c241884b516.tar.gz
scummvm-rg350-59942d9a41cf7d43b95e9775aca66c241884b516.tar.bz2
scummvm-rg350-59942d9a41cf7d43b95e9775aca66c241884b516.zip
TONY: Work on enabling GMM saving and loading
Diffstat (limited to 'engines/tony/detection.cpp')
-rw-r--r--engines/tony/detection.cpp36
1 files changed, 33 insertions, 3 deletions
diff --git a/engines/tony/detection.cpp b/engines/tony/detection.cpp
index 944f717f26..5b1092d2c0 100644
--- a/engines/tony/detection.cpp
+++ b/engines/tony/detection.cpp
@@ -25,6 +25,7 @@
#include "engines/advancedDetector.h"
#include "common/system.h"
+#include "graphics/surface.h"
#include "tony/tony.h"
#include "tony/game.h"
@@ -75,18 +76,23 @@ public:
virtual SaveStateList listSaves(const char *target) const;
virtual int getMaximumSaveSlot() const;
virtual void removeSaveState(const char *target, int slot) const;
+ SaveStateDescriptor TonyMetaEngine::querySaveMetaInfos(const char *target, int slot) const;
};
bool TonyMetaEngine::hasFeature(MetaEngineFeature f) const {
return
(f == kSupportsListSaves) ||
-// (f == kSupportsLoadingDuringStartup) ||
- (f == kSupportsDeleteSave);
+ (f == kSupportsLoadingDuringStartup) ||
+ (f == kSupportsDeleteSave) ||
+ (f == kSavesSupportMetaInfo) ||
+ (f == kSavesSupportThumbnail);
}
bool Tony::TonyEngine::hasFeature(EngineFeature f) const {
return
- (f == kSupportsRTL);
+ (f == kSupportsRTL) ||
+ (f == kSupportsLoadingDuringRuntime) ||
+ (f == kSupportsSavingDuringRuntime);
}
bool TonyMetaEngine::createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const {
@@ -136,6 +142,30 @@ void TonyMetaEngine::removeSaveState(const char *target, int slot) const {
g_system->getSavefileManager()->removeSavefile(filename);
}
+SaveStateDescriptor TonyMetaEngine::querySaveMetaInfos(const char *target, int slot) const {
+ Tony::RMString saveName;
+ byte difficulty;
+
+ Graphics::PixelFormat pixelFormat(2, 5, 5, 5, 0, 10, 5, 0, 0);
+ Graphics::Surface *thumbnail = new Graphics::Surface();
+ thumbnail->create(160, 120, pixelFormat);
+
+ if (Tony::RMOptionScreen::LoadThumbnailFromSaveState(slot, (byte *)thumbnail->pixels, saveName, difficulty)) {
+ // Create the return descriptor
+ SaveStateDescriptor desc(slot, (const char *)saveName);
+ desc.setDeletableFlag(true);
+ desc.setWriteProtectedFlag(false);
+ desc.setThumbnail(thumbnail);
+
+ return desc;
+ }
+
+ thumbnail->free();
+ delete thumbnail;
+ return SaveStateDescriptor();
+}
+
+
#if PLUGIN_ENABLED_DYNAMIC(TONY)
REGISTER_PLUGIN_DYNAMIC(TONY, PLUGIN_TYPE_ENGINE, TonyMetaEngine);
#else