diff options
| author | Jakob Fries <jakob.fries@gmail.com> | 2007-06-01 11:08:33 +0000 |
|---|---|---|
| committer | Jakob Fries <jakob.fries@gmail.com> | 2007-06-01 11:08:33 +0000 |
| commit | 9da845061a2fc7f3401c3b7487062f7922ce759f (patch) | |
| tree | ce4be6b79c5ea5719b364eb3d68165d093969cbe /src/engine | |
| parent | 821e6bbe538421556f516c671114b7d748629661 (diff) | |
| download | zcatch-9da845061a2fc7f3401c3b7487062f7922ce759f.tar.gz zcatch-9da845061a2fc7f3401c3b7487062f7922ce759f.zip | |
gui things
Diffstat (limited to 'src/engine')
| -rw-r--r-- | src/engine/client/client.cpp | 2 | ||||
| -rw-r--r-- | src/engine/config/config.cpp | 32 | ||||
| -rw-r--r-- | src/engine/config/config.h | 24 | ||||
| -rw-r--r-- | src/engine/config/config_define.h | 8 |
4 files changed, 65 insertions, 1 deletions
diff --git a/src/engine/client/client.cpp b/src/engine/client/client.cpp index 20ab0b39..3f765645 100644 --- a/src/engine/client/client.cpp +++ b/src/engine/client/client.cpp @@ -695,7 +695,7 @@ int main(int argc, char **argv) { // -n NAME i++; - set_player_name(argv[i]); + set_player_name(&config, argv[i]); } else if(argv[i][0] == '-' && argv[i][1] == 'w' && argv[i][2] == 0) { diff --git a/src/engine/config/config.cpp b/src/engine/config/config.cpp new file mode 100644 index 00000000..844158c1 --- /dev/null +++ b/src/engine/config/config.cpp @@ -0,0 +1,32 @@ +#include <baselib/system.h> + +#include <cstring> +#include <cstdio> + +#include "config.h" + +configuration config; + +void config_reset() +{ + #define MACRO_CONFIG_INT(name,def,min,max) config.name = def; + #define MACRO_CONFIG_STR(name,len,def) strncpy(config.name, def, len); + + #include "config_define.h" + + #undef MACRO_CONFIG_INT + #undef MACRO_CONFIG_STR + + puts("woaaa"); +} + +void config_load(const char *filename) +{ + dbg_msg("config/load", "loading %s", filename); +} + +#define MACRO_CONFIG_INT(name,def,min,max) void set_ ## name (configuration *c, int val) { if (val < min) val = min; if (max != 0 && val > max) val = max; c->name = val; } +#define MACRO_CONFIG_STR(name,len,def) void set_ ## name (configuration *c, char *str) { strncpy(c->name, def, len-1); c->name[sizeof(c->name)-1] = 0; } +#include "config_define.h" +#undef MACRO_CONFIG_INT +#undef MACRO_CONFIG_STR diff --git a/src/engine/config/config.h b/src/engine/config/config.h new file mode 100644 index 00000000..c1a356a5 --- /dev/null +++ b/src/engine/config/config.h @@ -0,0 +1,24 @@ +#ifndef _CONFIG_H +#define _CONFIG_H + +struct configuration +{ + #define MACRO_CONFIG_INT(name,def,min,max) int name; + #define MACRO_CONFIG_STR(name,len,def) char name[len]; + #include "config_define.h" + #undef MACRO_CONFIG_INT + #undef MACRO_CONFIG_STR +}; + +extern configuration config; + +void config_reset(); +void config_load(const char *filename); + +#define MACRO_CONFIG_INT(name,def,min,max) void set_ ## name (configuration *c, int val); +#define MACRO_CONFIG_STR(name,len,def) void set_ ## name (configuration *c, char *str); +#include "config_define.h" +#undef MACRO_CONFIG_INT +#undef MACRO_CONFIG_STR + +#endif diff --git a/src/engine/config/config_define.h b/src/engine/config/config_define.h new file mode 100644 index 00000000..0b1fed7e --- /dev/null +++ b/src/engine/config/config_define.h @@ -0,0 +1,8 @@ +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) |