Files
sinbad/src/engineConfig.c
T

58 lines
1.7 KiB
C

#define RINI_IMPLEMENTATION
#define RINI_VALUE_DELIMITER '='
#include "engineConfig.h"
#include <stdio.h>
void InitConfig(Config *config, const char *path) {
config->rini = rini_load(path);
if (config->rini.count == 0) {
printf("Warning: Loaded config has no entries. Path: %s\n", config->path);
}
}
int GetConfigInt(Config *config, const char *key) {
return rini_get_value_fallback(config->rini, key, 0);
}
int GetConfigIntOrDefault(Config *config, const char *key, int default_value) {
return rini_get_value_fallback(config->rini, key, default_value);
}
const char *GetConfigString(Config *config, const char *key) {
return rini_get_value_text(config->rini, key);
}
const char *GetConfigStringOrDefault(Config *config, const char *key, const char *default_value) {
return rini_get_value_text_fallback(config->rini, key, default_value);
}
const char *GetConfigDescription(Config *config, const char *key) {
return rini_get_value_description(config->rini, key);
}
int SetConfigInt(Config *config, const char *key, int value, const char *desc) {
return rini_set_value(&config->rini, key, value, desc);
}
int SetConfigString(Config *config, const char *key, const char *text, const char *desc) {
return rini_set_value_text(&config->rini, key, text, desc);
}
int SetConfigDescription(Config *config, const char *key, const char *desc) {
return rini_set_value_description(&config->rini, key, desc);
}
int AddCommentLine(Config *config, const char *comment) {
return rini_set_comment_line(&config->rini, comment);
}
void SaveConfig(Config *config) {
rini_save(config->rini, config->path);
}
void CleanUpConfig(Config *config) {
rini_unload(&config->rini);
}