summaryrefslogtreecommitdiff
path: root/settings.c
diff options
context:
space:
mode:
authordominik <dominik@openttd.org>2004-12-18 18:58:03 +0000
committerdominik <dominik@openttd.org>2004-12-18 18:58:03 +0000
commit853c11d301cd5ad662b1c73b58f2581f0e49997a (patch)
tree5e845319d36cb833763f462a08f7be2e4c008118 /settings.c
parentb9779176d5b7ed3277e5d23317c1511a417b04a4 (diff)
downloadopenttd-853c11d301cd5ad662b1c73b58f2581f0e49997a.tar.xz
(svn r1162) The server list can now be automatically filled from the config file. Add a section [servers] with the addresses each in a new line. Those will be checked upon OpenTTD startup.
Diffstat (limited to 'settings.c')
-rw-r--r--settings.c18
1 files changed, 9 insertions, 9 deletions
diff --git a/settings.c b/settings.c
index fa1c7d69d..35cffb08e 100644
--- a/settings.c
+++ b/settings.c
@@ -122,7 +122,7 @@ static IniGroup *ini_group_alloc(IniFile *ini, const char *grpt, int len)
IniGroup *grp = pool_alloc(&ini->pool, sizeof(IniGroup));
grp->ini = ini;
grp->name = pool_strdup(&ini->pool, grpt, len);
- if(!strcmp(grp->name, "newgrf"))
+ if(!strcmp(grp->name, "newgrf") || !strcmp(grp->name, "servers") )
grp->type = IGT_LIST;
else
grp->type = IGT_VARIABLES;
@@ -906,20 +906,19 @@ static void HandleSettingDescs(IniFile *ini, SettingDescProc *proc)
proc(ini, debug_settings, "debug");
}
-static void LoadGrfSettings(IniFile *ini)
+// loads all items from a *grpname section into the **list
+static void LoadList(IniFile *ini, const char *grpname, char **list, int len)
{
- IniGroup *group = ini_getgroup(ini, "newgrf", -1);
+ IniGroup *group = ini_getgroup(ini, grpname, -1);
IniItem *item;
int i;
if (!group)
return;
-
item = group->item;
- for(i=0; i!=lengthof(_newgrf_files); i++) {
- if (!item)
- break;
- _newgrf_files[i] = strdup(item->value);
+ for ( i=0; i != len; i++) {
+ if (item == NULL) break;
+ list[i] = strdup(item->value);
item = item->next;
}
}
@@ -928,7 +927,8 @@ void LoadFromConfig()
{
IniFile *ini = ini_load(_config_file);
HandleSettingDescs(ini, load_setting_desc);
- LoadGrfSettings(ini);
+ LoadList(ini, "newgrf", _newgrf_files, lengthof(_newgrf_files));
+ LoadList(ini, "servers", _network_server_list, lengthof(_network_server_list));
ini_free(ini);
}