aboutsummaryrefslogtreecommitdiff
path: root/engines/prince/detection.cpp
diff options
context:
space:
mode:
authorlukaslw2014-07-29 02:25:42 +0200
committerlukaslw2014-07-29 02:25:42 +0200
commit08d781b6ad4cbd399528407702fbec73c6532ea8 (patch)
treef322be5b8e2c0b8fe65aec064e4a6df023925542 /engines/prince/detection.cpp
parent822d1786b0c625bc9d1be694132c0ffc480dec60 (diff)
downloadscummvm-rg350-08d781b6ad4cbd399528407702fbec73c6532ea8.tar.gz
scummvm-rg350-08d781b6ad4cbd399528407702fbec73c6532ea8.tar.bz2
scummvm-rg350-08d781b6ad4cbd399528407702fbec73c6532ea8.zip
PRINCE: Game saving - basic implementation
Diffstat (limited to 'engines/prince/detection.cpp')
-rw-r--r--engines/prince/detection.cpp100
1 files changed, 14 insertions, 86 deletions
diff --git a/engines/prince/detection.cpp b/engines/prince/detection.cpp
index fa9df38c90..285d7d1ce3 100644
--- a/engines/prince/detection.cpp
+++ b/engines/prince/detection.cpp
@@ -20,19 +20,10 @@
*
*/
-#include "base/plugins.h"
-#include "engines/advancedDetector.h"
-
-#include "prince/prince.h"
+#include "prince/detection.h"
namespace Prince {
-struct PrinceGameDescription {
- ADGameDescription desc;
-
- int gameType;
-};
-
int PrinceEngine::getGameType() const {
return _gameDescription->gameType;
}
@@ -49,78 +40,6 @@ Common::Language PrinceEngine::getLanguage() const {
return _gameDescription->desc.language;
}
-}
-
-static const PlainGameDescriptor princeGames[] = {
- {"prince", "Prince Game"},
- {0, 0}
-};
-
-namespace Prince {
-
-static const PrinceGameDescription gameDescriptions[] = {
-
- // German
- {
- {
- "prince",
- "Galador",
- AD_ENTRY1s("databank.ptc", "5fa03833177331214ec1354761b1d2ee", 3565031),
- Common::DE_DEU,
- Common::kPlatformWindows,
- ADGF_NO_FLAGS,
- GUIO1(GUIO_NONE)
- },
- 0
- },
- // Polish
- {
- {
- "prince",
- "Ksiaze i Tchorz",
- AD_ENTRY1s("databank.ptc", "48ec9806bda9d152acbea8ce31c93c49", 3435298),
- Common::PL_POL,
- Common::kPlatformWindows,
- ADGF_NO_FLAGS,
- GUIO1(GUIO_NONE)
- },
- 1
- },
-
-
- { AD_TABLE_END_MARKER, 0 }
-};
-
-} // End of namespace Prince
-
-using namespace Prince;
-
-// we match from data too, to stop detection from a non-top-level directory
-const static char *directoryGlobs[] = {
- "all",
- 0
-};
-
-class PrinceMetaEngine : public AdvancedMetaEngine {
-public:
- PrinceMetaEngine() : AdvancedMetaEngine(Prince::gameDescriptions, sizeof(Prince::PrinceGameDescription), princeGames) {
- _singleid = "prince";
- _maxScanDepth = 2;
- _directoryGlobs = directoryGlobs;
- }
-
- virtual const char *getName() const {
- return "Prince Engine";
- }
-
- virtual const char *getOriginalCopyright() const {
- return "Copyright (C)";
- }
-
- virtual bool createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const;
- virtual bool hasFeature(MetaEngineFeature f) const;
-};
-
bool PrinceMetaEngine::createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const {
using namespace Prince;
const PrinceGameDescription *gd = (const PrinceGameDescription *)desc;
@@ -131,17 +50,26 @@ bool PrinceMetaEngine::createInstance(OSystem *syst, Engine **engine, const ADGa
}
bool PrinceMetaEngine::hasFeature(MetaEngineFeature f) const {
- return false;
+ return
+ (f == kSupportsDeleteSave) ||
+ (f == kSavesSupportMetaInfo) ||
+ (f == kSavesSupportThumbnail) ||
+ (f == kSavesSupportCreationDate) ||
+ (f == kSupportsListSaves);
}
bool Prince::PrinceEngine::hasFeature(EngineFeature f) const {
- return false;//(f == kSupportsRTL);
+ return
+ (f == kSupportsLoadingDuringRuntime) ||
+ (f == kSupportsSavingDuringRuntime);
}
+} // End of namespace Prince
+
#if PLUGIN_ENABLED_DYNAMIC(PRINCE)
-REGISTER_PLUGIN_DYNAMIC(PRINCE, PLUGIN_TYPE_ENGINE, PrinceMetaEngine);
+REGISTER_PLUGIN_DYNAMIC(PRINCE, PLUGIN_TYPE_ENGINE, Prince::PrinceMetaEngine);
#else
-REGISTER_PLUGIN_STATIC(PRINCE, PLUGIN_TYPE_ENGINE, PrinceMetaEngine);
+REGISTER_PLUGIN_STATIC(PRINCE, PLUGIN_TYPE_ENGINE, Prince::PrinceMetaEngine);
#endif
/* vim: set tabstop=4 noexpandtab: */