diff options
author | Paul Gilbert | 2018-12-31 23:58:11 -0800 |
---|---|---|
committer | Paul Gilbert | 2018-12-31 23:58:11 -0800 |
commit | ea53893300a02a37a2775bb1ffd4c585b7c27157 (patch) | |
tree | 9e2e93d3f1f82ac9ccf0f3714272183e5e26a5af /engines/glk/tads/detection.cpp | |
parent | 4938ac9ea1b207f100a73e2ecbf617b7569fb4b0 (diff) | |
download | scummvm-rg350-ea53893300a02a37a2775bb1ffd4c585b7c27157.tar.gz scummvm-rg350-ea53893300a02a37a2775bb1ffd4c585b7c27157.tar.bz2 scummvm-rg350-ea53893300a02a37a2775bb1ffd4c585b7c27157.zip |
GLK: TADS: Split game list arrays into v2 and v3
Diffstat (limited to 'engines/glk/tads/detection.cpp')
-rw-r--r-- | engines/glk/tads/detection.cpp | 40 |
1 files changed, 28 insertions, 12 deletions
diff --git a/engines/glk/tads/detection.cpp b/engines/glk/tads/detection.cpp index 9206193f63..9e1eb0833d 100644 --- a/engines/glk/tads/detection.cpp +++ b/engines/glk/tads/detection.cpp @@ -31,15 +31,27 @@ namespace Glk { namespace TADS { void TADSMetaEngine::getSupportedGames(PlainGameList &games) { - for (const GameDescriptor *pd = TADS_GAME_LIST; pd->_gameId; ++pd) { + for (const PlainGameDescriptor *pd = TADS2_GAME_LIST; pd->gameId; ++pd) + games.push_back(*pd); + for (const PlainGameDescriptor *pd = TADS3_GAME_LIST; pd->gameId; ++pd) games.push_back(*pd); - } } GameDescriptor TADSMetaEngine::findGame(const char *gameId) { - for (const GameDescriptor *pd = TADS_GAME_LIST; pd->_gameId; ++pd) { - if (!strcmp(gameId, pd->_gameId)) - return *pd; + for (const PlainGameDescriptor *pd = TADS2_GAME_LIST; pd->gameId; ++pd) { + if (!strcmp(gameId, pd->gameId)) { + GameDescriptor gd = *pd; + gd._options = OPTION_TADS2; + return gd; + } + } + + for (const PlainGameDescriptor *pd = TADS3_GAME_LIST; pd->gameId; ++pd) { + if (!strcmp(gameId, pd->gameId)) { + GameDescriptor gd = *pd; + gd._options = OPTION_TADS3; + return gd; + } } return GameDescriptor::empty(); @@ -81,10 +93,9 @@ bool TADSMetaEngine::detectGames(const Common::FSList &fslist, DetectedGames &ga debug("ENTRY0(\"%s\", \"%s\", %u),", fname.c_str(), md5.c_str(), (uint)filesize); } - const GameDescriptor &desc = TADS_GAME_LIST[0]; + const GameDescriptor &desc = TADS2_GAME_LIST[0]; gd = DetectedGame(desc._gameId, desc._description, Common::UNK_LANG, Common::kPlatformUnknown); - } - else { + } else { PlainGameDescriptor gameDesc = findGame(p->_gameId); gd = DetectedGame(p->_gameId, gameDesc.description, p->_language, Common::kPlatformUnknown, p->_extra); } @@ -97,10 +108,15 @@ bool TADSMetaEngine::detectGames(const Common::FSList &fslist, DetectedGames &ga } void TADSMetaEngine::detectClashes(Common::StringMap &map) { - for (const GameDescriptor *pd = TADS_GAME_LIST; pd->_gameId; ++pd) { - if (map.contains(pd->_gameId)) - error("Duplicate game Id found - %s", pd->_gameId); - map[pd->_gameId] = ""; + for (const PlainGameDescriptor *pd = TADS2_GAME_LIST; pd->gameId; ++pd) { + if (map.contains(pd->gameId)) + error("Duplicate game Id found - %s", pd->gameId); + map[pd->gameId] = ""; + } + for (const PlainGameDescriptor *pd = TADS3_GAME_LIST; pd->gameId; ++pd) { + if (map.contains(pd->gameId)) + error("Duplicate game Id found - %s", pd->gameId); + map[pd->gameId] = ""; } } |