diff options
-rw-r--r-- | engines/glk/alan3/detection.cpp | 15 | ||||
-rw-r--r-- | engines/glk/detection.cpp | 31 | ||||
-rw-r--r-- | engines/glk/detection.h | 12 |
3 files changed, 45 insertions, 13 deletions
diff --git a/engines/glk/alan3/detection.cpp b/engines/glk/alan3/detection.cpp index cafc426151..08a489bfda 100644 --- a/engines/glk/alan3/detection.cpp +++ b/engines/glk/alan3/detection.cpp @@ -71,24 +71,13 @@ bool Alan3MetaEngine::detectGames(const Common::FSList &fslist, DetectedGames &g while (p->_gameId && (md5 != p->_md5 || filesize != p->_filesize)) ++p; - DetectedGame gd; if (!p->_gameId) { const PlainGameDescriptor &desc = ALAN3_GAME_LIST[0]; - gd = DetectedGame(desc.gameId, desc.description, Common::UNK_LANG, Common::kPlatformUnknown); - gd.canBeAdded = true; - gd.hasUnknownFiles = true; - FileProperties fp; - fp.md5 = md5; - fp.size = filesize; - gd.matchedFiles[filename] = fp; - + gameList.push_back(GlkDetectedGame(desc.gameId, desc.description, filename, md5, filesize)); } else { PlainGameDescriptor gameDesc = findGame(p->_gameId); - gd = DetectedGame(p->_gameId, gameDesc.description, Common::EN_ANY, Common::kPlatformUnknown); + gameList.push_back(GlkDetectedGame(p->_gameId, gameDesc.description, filename)); } - - gd.addExtraEntry("filename", filename); - gameList.push_back(gd); } return !gameList.empty(); diff --git a/engines/glk/detection.cpp b/engines/glk/detection.cpp index 33a15757ba..43f1291b0d 100644 --- a/engines/glk/detection.cpp +++ b/engines/glk/detection.cpp @@ -54,6 +54,37 @@ #include "common/config-manager.h" #include "common/file.h" +namespace Glk { + +GlkDetectedGame::GlkDetectedGame(const char *gameId, const char *gameDesc, const Common::String &filename) : + DetectedGame(gameId, gameDesc, Common::EN_ANY, Common::kPlatformUnknown) { + setGUIOptions(GUIO2(GUIO_NOSPEECH, GUIO_NOMIDI)); + addExtraEntry("filename", filename); +} + +GlkDetectedGame::GlkDetectedGame(const char *gameId, const char *gameDesc, const Common::String &filename, + Common::Language lang) : DetectedGame(gameId, gameDesc, lang, Common::kPlatformUnknown) { + setGUIOptions(GUIO2(GUIO_NOSPEECH, GUIO_NOMIDI)); + addExtraEntry("filename", filename); +} + +GlkDetectedGame::GlkDetectedGame(const char *gameId, const char *gameDesc, const Common::String &filename, + const Common::String &md5, size_t filesize) : + DetectedGame(gameId, gameDesc, Common::UNK_LANG, Common::kPlatformUnknown) { + setGUIOptions(GUIO2(GUIO_NOSPEECH, GUIO_NOMIDI)); + addExtraEntry("filename", filename); + + canBeAdded = true; + hasUnknownFiles = true; + + FileProperties fp; + fp.md5 = md5; + fp.size = filesize; + matchedFiles[filename] = fp; +} + +} // End of namespace Glk + bool GlkMetaEngine::hasFeature(MetaEngineFeature f) const { return (f == kSupportsListSaves) || diff --git a/engines/glk/detection.h b/engines/glk/detection.h index 0b21985349..2e2047edeb 100644 --- a/engines/glk/detection.h +++ b/engines/glk/detection.h @@ -102,6 +102,18 @@ struct GameDescriptor { } }; +/** + * Derived game descriptor class to simplifying setting up needed properties + */ +class GlkDetectedGame : public DetectedGame { +public: + GlkDetectedGame(const char *gameId, const char *gameDesc, const Common::String &filename); + GlkDetectedGame(const char *gameId, const char *gameDesc, const Common::String &filename, + Common::Language lang); + GlkDetectedGame(const char *gameId, const char *gameDesc, const Common::String &filename, + const Common::String &md5, size_t filesize); +}; + } // End of namespace Glk #endif |