From 2c158f77b7b4853912054ee4a37b9a9253272e8e Mon Sep 17 00:00:00 2001 From: Jakob Fries Date: Fri, 1 Jun 2007 12:15:38 +0000 Subject: --- src/engine/config.cpp | 35 +++++++++++++++++++++-------------- 1 file changed, 21 insertions(+), 14 deletions(-) (limited to 'src/engine/config.cpp') 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(); -- cgit 1.4.1