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 } |