diff options
| author | Jakob Fries <jakob.fries@gmail.com> | 2007-06-01 12:15:38 +0000 |
|---|---|---|
| committer | Jakob Fries <jakob.fries@gmail.com> | 2007-06-01 12:15:38 +0000 |
| commit | 2c158f77b7b4853912054ee4a37b9a9253272e8e (patch) | |
| tree | 886b8b40433beb1cea8a28104d59f92050e92e02 /src/engine/config.cpp | |
| parent | c31246a665359173e98bce9e6537e8139361072c (diff) | |
| download | zcatch-2c158f77b7b4853912054ee4a37b9a9253272e8e.tar.gz zcatch-2c158f77b7b4853912054ee4a37b9a9253272e8e.zip | |
Diffstat (limited to 'src/engine/config.cpp')
| -rw-r--r-- | src/engine/config.cpp | 35 |
1 files changed, 21 insertions, 14 deletions
diff --git a/src/engine/config.cpp b/src/engine/config.cpp index c486d1f7..54668c11 100644 --- a/src/engine/config.cpp +++ b/src/engine/config.cpp @@ -23,6 +23,26 @@ void config_reset() #undef MACRO_CONFIG_STR } +void config_set(const char *line) +{ + char var_str[128]; + char *val_str = strchr(line, '='); + if (val_str) + { + memcpy(var_str, line, val_str - line); + var_str[val_str - line] = 0; + ++val_str; + + #define MACRO_CONFIG_INT(name,def,min,max) { if (strcmp(#name, var_str) == 0) config_set_ ## name (&config, atoi(val_str)); } + #define MACRO_CONFIG_STR(name,len,def) { if (strcmp(#name, var_str) == 0) { config_set_ ## name (&config, val_str); } } + + #include "config_variables.h" + + #undef MACRO_CONFIG_INT + #undef MACRO_CONFIG_STR + } +} + void config_load(const char *filename) { dbg_msg("config/load", "loading %s", filename); @@ -34,20 +54,7 @@ void config_load(const char *filename) { while (getline(file, line)) { - int eq_index = line.find_first_of('='); - if (eq_index != string::npos) - { - string variable = line.substr(0, eq_index); - string value = line.substr(eq_index + 1); - - #define MACRO_CONFIG_INT(name,def,min,max) { if (strcmp(#name, variable.c_str()) == 0) config_set_ ## name (&config, atoi(value.c_str())); } - #define MACRO_CONFIG_STR(name,len,def) { if (strcmp(#name, variable.c_str()) == 0) { config_set_ ## name (&config, value.c_str()); } } - - #include "config_variables.h" - - #undef MACRO_CONFIG_INT - #undef MACRO_CONFIG_STR - } + config_set(line.c_str()); } file.close(); |