aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--common/gameDetector.cpp33
-rw-r--r--common/gameDetector.h1
2 files changed, 34 insertions, 0 deletions
diff --git a/common/gameDetector.cpp b/common/gameDetector.cpp
index d63605d105..78fab22134 100644
--- a/common/gameDetector.cpp
+++ b/common/gameDetector.cpp
@@ -68,6 +68,7 @@ static const char USAGE_STRING[] =
#endif
"\t-x[<num>] - save game slot to load (default: autosave)\n"
"\t-y - set text speed (default: 60)\n"
+ "\t-z - display list of games\n"
;
@@ -165,6 +166,34 @@ void GameDetector::updateconfig()
_talkSpeed = g_config->getInt("talkspeed", _talkSpeed);
}
+void GameDetector::list_games()
+{
+ const VersionSettings *v = version_settings;
+ char config[4] = "";
+
+ printf("Game SCUMM ver Full Title Config\n"
+ "----------- ----------- ---------------------------------------------- -------\n");
+
+ while (v->filename && v->gamename) {
+ if (g_config->has_domain(v->filename)) {
+ strcpy(config, "Yes");
+ }
+ else {
+ strcpy(config, "");
+ }
+
+ if (v->major != 99)
+ printf("%-12s%d.%d.%d\t%-47s%s\n", v->filename,
+ v->major, v->middle, v->minor, v->gamename, config);
+ else
+ printf("%-12s%-7s\t%-47s%s\n", v->filename, "n/a",
+ v->gamename, config);
+
+ v++;
+ }
+
+}
+
void GameDetector::parseCommandLine(int argc, char **argv)
{
int i;
@@ -288,6 +317,10 @@ void GameDetector::parseCommandLine(int argc, char **argv)
_talkSpeed = atoi(option);
g_config->setInt("talkspeed", _talkSpeed);
break;
+ case 'z':
+ CHECK_OPTION();
+ list_games();
+ exit(1);
default:
goto ShowHelpAndExit;
}
diff --git a/common/gameDetector.h b/common/gameDetector.h
index cdfb77d8e3..0a58030c86 100644
--- a/common/gameDetector.h
+++ b/common/gameDetector.h
@@ -86,6 +86,7 @@ public:
bool parseMusicDriver(const char *s);
void updateconfig();
+ void list_games();
public:
OSystem *createSystem();