aboutsummaryrefslogtreecommitdiff
path: root/engines/glk/tads/detection.cpp
diff options
context:
space:
mode:
authorPaul Gilbert2018-12-31 23:58:11 -0800
committerPaul Gilbert2018-12-31 23:58:11 -0800
commitea53893300a02a37a2775bb1ffd4c585b7c27157 (patch)
tree9e2e93d3f1f82ac9ccf0f3714272183e5e26a5af /engines/glk/tads/detection.cpp
parent4938ac9ea1b207f100a73e2ecbf617b7569fb4b0 (diff)
downloadscummvm-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.cpp40
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] = "";
}
}