aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/engine.cpp15
1 files changed, 13 insertions, 2 deletions
diff --git a/engines/engine.cpp b/engines/engine.cpp
index 4bbe2d069f..7c251cbe1f 100644
--- a/engines/engine.cpp
+++ b/engines/engine.cpp
@@ -288,7 +288,9 @@ bool Engine::shouldQuit() const {
bool Engine::hasFeature(EngineFeature f) {
// TODO: Get rid of this hack!!!
- if (f != kSupportsRTL)
+ if (f != kSupportsRTL && f != kSupportsListSaves &&
+ f != kSupportsLoadingDuringRuntime &&
+ f != kSupportsSavingDuringRuntime)
return false;
const EnginePlugin *plugin = 0;
@@ -296,6 +298,15 @@ bool Engine::hasFeature(EngineFeature f) {
gameid.toLowercase();
EngineMan.findGame(gameid, &plugin);
assert(plugin);
- return ( (*plugin)->hasFeature(MetaEngine::kSupportsRTL) );
+ if (f == kSupportsRTL)
+ return (*plugin)->hasFeature(MetaEngine::kSupportsRTL);
+ else if (f == kSupportsListSaves)
+ return (*plugin)->hasFeature(MetaEngine::kSupportsListSaves);
+ else if (f == kSupportsLoadingDuringRuntime)
+ return (*plugin)->hasFeature(MetaEngine::kSupportsLoadingDuringRuntime);
+ else if (f == kSupportsSavingDuringRuntime)
+ return (*plugin)->hasFeature(MetaEngine::kSupportsSavingDuringRuntime);
+ else
+ return false;
}