File diff r7033:4eb48f2ed5ed → r7034:02d83c0816e7
src/settings.cpp
Show inline comments
 
@@ -1617,25 +1617,25 @@ static uint NewsDisplayLoadConfig(IniFil
 
/* Load a GRF configuration from the given group name */
 
static GRFConfig *GRFLoadConfig(IniFile *ini, const char *grpname, bool is_static)
 
{
 
	IniGroup *group = ini_getgroup(ini, grpname, -1);
 
	IniItem *item;
 
	GRFConfig *first = NULL;
 
	GRFConfig **curr = &first;
 

	
 
	if (group == NULL) return NULL;
 

	
 
	for (item = group->item; item != NULL; item = item->next) {
 
		GRFConfig *c = CallocT<GRFConfig>(1);
 
		c->full_path = strdup(item->name);
 
		c->filename = strdup(item->name);
 

	
 
		/* Parse parameters */
 
		if (*item->value != '\0') {
 
			c->num_params = parse_intlist(item->value, (int*)c->param, lengthof(c->param));
 
			if (c->num_params == (byte)-1) {
 
				ShowInfoF("ini: error in array '%s'", item->name);
 
				c->num_params = 0;
 
			}
 
		}
 

	
 
		/* Check if item is valid */
 
		if (!FillGRFDetails(c, is_static)) {
 
@@ -1694,25 +1694,25 @@ static void GRFSaveConfig(IniFile *ini, 
 
	IniGroup *group = ini_getgroup(ini, grpname, -1);
 
	IniItem **item;
 
	const GRFConfig *c;
 

	
 
	if (group == NULL) return;
 
	group->item = NULL;
 
	item = &group->item;
 

	
 
	for (c = list; c != NULL; c = c->next) {
 
		char params[512];
 
		GRFBuildParamList(params, c, lastof(params));
 

	
 
		*item = ini_item_alloc(group, c->full_path, strlen(c->full_path));
 
		*item = ini_item_alloc(group, c->filename, strlen(c->filename));
 
		(*item)->value = (char*)pool_strdup(&ini->pool, params, strlen(params));
 
		item = &(*item)->next;
 
	}
 
}
 

	
 
/* Common handler for saving/loading variables to the configuration file */
 
static void HandleSettingDescs(IniFile *ini, SettingDescProc *proc, SettingDescProcList *proc_list)
 
{
 
	proc(ini, (const SettingDesc*)_misc_settings,    "misc",  NULL);
 
	proc(ini, (const SettingDesc*)_music_settings,   "music", &msf);
 
#ifdef WIN32
 
	proc(ini, (const SettingDesc*)_win32_settings,   "win32", NULL);