project_files/frontlib/model/cfg.c
changeset 7316 f7b49b2c5d84
parent 7314 6171f0bad318
equal deleted inserted replaced
7314:6171f0bad318 7316:f7b49b2c5d84
   116 	}
   116 	}
   117 	return 0;
   117 	return 0;
   118 }
   118 }
   119 
   119 
   120 flib_cfg_meta *flib_cfg_meta_from_ini(const char *filename) {
   120 flib_cfg_meta *flib_cfg_meta_from_ini(const char *filename) {
   121 	if(!filename) {
   121 	if(log_badargs_if(filename==NULL)) {
   122 		flib_log_e("null parameter in flib_cfg_meta_from_ini");
       
   123 		return NULL;
   122 		return NULL;
   124 	}
   123 	}
   125 	flib_cfg_meta *result = flib_cfg_meta_retain(flib_calloc(1, sizeof(flib_cfg_meta)));
   124 	flib_cfg_meta *result = flib_cfg_meta_retain(flib_calloc(1, sizeof(flib_cfg_meta)));
   126 	flib_ini *ini = flib_ini_load(filename);
   125 	flib_ini *ini = flib_ini_load(filename);
   127 
   126 
   166 	}
   165 	}
   167 }
   166 }
   168 
   167 
   169 flib_cfg *flib_cfg_create(flib_cfg_meta *meta, const char *schemeName) {
   168 flib_cfg *flib_cfg_create(flib_cfg_meta *meta, const char *schemeName) {
   170 	flib_cfg *result = flib_cfg_retain(flib_calloc(1, sizeof(flib_cfg)));
   169 	flib_cfg *result = flib_cfg_retain(flib_calloc(1, sizeof(flib_cfg)));
   171 	if(!meta || !result || !schemeName) {
   170 	if(log_badargs_if2(meta==NULL, schemeName==NULL) || result==NULL) {
   172 		flib_log_e("null parameter in flib_cfg_create");
       
   173 		return NULL;
   171 		return NULL;
   174 	}
   172 	}
   175 
   173 
   176 	result->meta = flib_cfg_meta_retain(meta);
   174 	result->meta = flib_cfg_meta_retain(meta);
   177 	result->name = flib_strdupnull(schemeName);
   175 	result->name = flib_strdupnull(schemeName);
   213 		flib_cfg_destroy(cfg);
   211 		flib_cfg_destroy(cfg);
   214 	}
   212 	}
   215 }
   213 }
   216 
   214 
   217 bool flib_cfg_get_mod(flib_cfg *cfg, const char *name) {
   215 bool flib_cfg_get_mod(flib_cfg *cfg, const char *name) {
   218 	for(int i=0; i<cfg->meta->modCount; i++) {
   216 	if(!log_badargs_if2(cfg==NULL, name==NULL)) {
   219 		if(!strcmp(cfg->meta->mods[i].name, name)) {
   217 		for(int i=0; i<cfg->meta->modCount; i++) {
   220 			return cfg->mods[i];
   218 			if(!strcmp(cfg->meta->mods[i].name, name)) {
   221 		}
   219 				return cfg->mods[i];
   222 	}
   220 			}
   223 	flib_log_e("Unable to find game mod %s", name);
   221 		}
       
   222 		flib_log_e("Unable to find game mod %s", name);
       
   223 	}
   224 	return false;
   224 	return false;
   225 }
   225 }
   226 
   226 
   227 int flib_cfg_get_setting(flib_cfg *cfg, const char *name, int def) {
   227 int flib_cfg_get_setting(flib_cfg *cfg, const char *name, int def) {
   228 	for(int i=0; i<cfg->meta->settingCount; i++) {
   228 	if(!log_badargs_if2(cfg==NULL, name==NULL)) {
   229 		if(!strcmp(cfg->meta->settings[i].name, name)) {
   229 		for(int i=0; i<cfg->meta->settingCount; i++) {
   230 			return cfg->settings[i];
   230 			if(!strcmp(cfg->meta->settings[i].name, name)) {
   231 		}
   231 				return cfg->settings[i];
   232 	}
   232 			}
   233 	flib_log_e("Unable to find game setting %s", name);
   233 		}
       
   234 		flib_log_e("Unable to find game setting %s", name);
       
   235 	}
   234 	return def;
   236 	return def;
   235 }
   237 }