diff options
-rw-r--r-- | common/config-file.cpp | 23 | ||||
-rw-r--r-- | common/config-file.h | 5 | ||||
-rw-r--r-- | gui/launcher.cpp | 9 |
3 files changed, 17 insertions, 20 deletions
diff --git a/common/config-file.cpp b/common/config-file.cpp index 699c959eb0..c6289e45cf 100644 --- a/common/config-file.cpp +++ b/common/config-file.cpp @@ -245,21 +245,16 @@ const int Config::count_domains() { for (d = domains.begin(); d != end; ++d) count++; - return 0; + return count; } -int Config::get_domains(char (*ptr)[100]) { - int index = 0; - DomainMap::Iterator d, end(domains.end()); - for (d = domains.begin(); d != end; ++d) { - //printf("Key %d is %s\n", index, d->_key.c_str()); - strcpy(ptr[index], d->_key.c_str()); - index++; - - if (index>99) - return 99; - } - - return index; +ScummVM::StringList Config::get_domains() { + StringList domainNames; + DomainMap::Iterator d, end(domains.end()); + for (d = domains.begin(); d != end; ++d) { + domainNames.push_back(d->_key); + } + + return domainNames; } diff --git a/common/config-file.h b/common/config-file.h index c581e0181d..520fb769dd 100644 --- a/common/config-file.h +++ b/common/config-file.h @@ -25,11 +25,13 @@ #include "common/util.h" #include "common/map.h" +#include "common/list.h" #include "common/str.h" class Config { public: typedef ScummVM::String String; + typedef ScummVM::StringList StringList; typedef ScummVM::StringMap StringMap; typedef ScummVM::Map<String, StringMap> DomainMap; @@ -52,7 +54,8 @@ public: void set_writing(bool); const int count_domains(); - int Config::get_domains(char (*ptr)[100]); + StringList get_domains(); + protected: DomainMap domains; String filename; diff --git a/gui/launcher.cpp b/gui/launcher.cpp index 4d5a933aee..fff6290f3f 100644 --- a/gui/launcher.cpp +++ b/gui/launcher.cpp @@ -76,16 +76,15 @@ LauncherDialog::LauncherDialog(NewGui *gui, GameDetector &detector) // Retrieve a list of all games defined in the config file - char domains[255][100]; - int count = g_config->get_domains(domains); - for (i=0;i<count;i++) { + StringList domains = g_config->get_domains(); + for (i = 0; i < domains.size();i++) { String name = (char*)g_config->get("gameid", domains[i]); String description = (char*)g_config->get("description", domains[i]); if (name.isEmpty() || description.isEmpty()) { v = version_settings; while (v->filename && v->gamename) { - if (!scumm_stricmp(v->filename, domains[i])) { + if (!scumm_stricmp(v->filename, domains[i].c_str())) { name = domains[i]; description = v->gamename; break; @@ -98,7 +97,7 @@ LauncherDialog::LauncherDialog(NewGui *gui, GameDetector &detector) // Insert the game into the launcher list int pos = 0, size = l.size(); - while (pos < size && (name > l[pos])) + while (pos < size && (description > l[pos])) pos++; l.insert_at(pos, description); _filenames.insert_at(pos, domains[i]); |