From 08d781b6ad4cbd399528407702fbec73c6532ea8 Mon Sep 17 00:00:00 2001 From: lukaslw Date: Tue, 29 Jul 2014 02:25:42 +0200 Subject: PRINCE: Game saving - basic implementation --- engines/prince/detection.cpp | 100 ++++++------------------------------------- 1 file changed, 14 insertions(+), 86 deletions(-) (limited to 'engines/prince/detection.cpp') 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: */ -- cgit v1.2.3