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 | |
| parent | c31246a665359173e98bce9e6537e8139361072c (diff) | |
| download | zcatch-2c158f77b7b4853912054ee4a37b9a9253272e8e.tar.gz zcatch-2c158f77b7b4853912054ee4a37b9a9253272e8e.zip | |
| -rw-r--r-- | src/engine/config.cpp | 35 | ||||
| -rw-r--r-- | src/engine/config_define.h | 8 |
2 files changed, 21 insertions, 22 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(); diff --git a/src/engine/config_define.h b/src/engine/config_define.h deleted file mode 100644 index 0b1fed7e..00000000 --- a/src/engine/config_define.h +++ /dev/null @@ -1,8 +0,0 @@ -MACRO_CONFIG_INT(screen_width, 800, 0, 0) -MACRO_CONFIG_INT(screen_height, 600, 0, 0) -MACRO_CONFIG_STR(player_name, 32, "nameless tee") -MACRO_CONFIG_INT(key_move_left, 65, 32, 127) -MACRO_CONFIG_INT(key_move_right, 68, 32, 127) -MACRO_CONFIG_INT(key_jump, 32, 32, 127) -MACRO_CONFIG_INT(key_fire, 33, 32, 127) -MACRO_CONFIG_INT(key_hook, 34, 32, 127) |