aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorJohannes Schickel2008-11-03 21:10:18 +0000
committerJohannes Schickel2008-11-03 21:10:18 +0000
commit2694e916dacd46641831fdaba600641212e9bbe2 (patch)
tree3b7dc650fd8bd398b58d0b37571205d61ee97a40 /engines
parent4905d827b70c9c0e626be27a1f7d15201a60d747 (diff)
downloadscummvm-rg350-2694e916dacd46641831fdaba600641212e9bbe2.tar.gz
scummvm-rg350-2694e916dacd46641831fdaba600641212e9bbe2.tar.bz2
scummvm-rg350-2694e916dacd46641831fdaba600641212e9bbe2.zip
Extend HACK in Engine::hasFeature, fixes GMM load dialog.
svn-id: r34889
Diffstat (limited to 'engines')
-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;
}