about summary refs log tree commit diff
path: root/src/engine/e_config.h
diff options
context:
space:
mode:
authorMagnus Auvinen <magnus.auvinen@gmail.com>2007-12-15 10:24:49 +0000
committerMagnus Auvinen <magnus.auvinen@gmail.com>2007-12-15 10:24:49 +0000
commita2566b3ebd93e0bbc55a920a7be08054a9377f11 (patch)
tree44a4612805d894168fe4b3b4c065fccc1a1686e9 /src/engine/e_config.h
parentac9873056aa1fe529b098f19ff31e9ffa0e016a2 (diff)
downloadzcatch-a2566b3ebd93e0bbc55a920a7be08054a9377f11.tar.gz
zcatch-a2566b3ebd93e0bbc55a920a7be08054a9377f11.zip
cleaned up code structure a bit
Diffstat (limited to 'src/engine/e_config.h')
-rw-r--r--src/engine/e_config.h41
1 files changed, 41 insertions, 0 deletions
diff --git a/src/engine/e_config.h b/src/engine/e_config.h
new file mode 100644
index 00000000..63933660
--- /dev/null
+++ b/src/engine/e_config.h
@@ -0,0 +1,41 @@
+/* copyright (c) 2007 magnus auvinen, see licence.txt for more info */
+#ifndef _CONFIG_H
+#define _CONFIG_H
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+typedef struct
+{ 
+    #define MACRO_CONFIG_INT(name,def,min,max) int name;
+    #define MACRO_CONFIG_STR(name,len,def) char name[len];
+    #include "e_config_variables.h" 
+    #undef MACRO_CONFIG_INT 
+    #undef MACRO_CONFIG_STR 
+} CONFIGURATION;
+
+extern CONFIGURATION config;
+
+void config_set(const char *line);
+void config_reset();
+void config_load(const char *filename);
+void config_save(const char *filename);
+
+#define MACRO_CONFIG_INT(name,def,min,max) int config_get_ ## name (CONFIGURATION *c);
+#define MACRO_CONFIG_STR(name,len,def) const char *config_get_ ## name (CONFIGURATION *c);
+#include "e_config_variables.h"
+#undef MACRO_CONFIG_INT
+#undef MACRO_CONFIG_STR
+
+#define MACRO_CONFIG_INT(name,def,min,max) void config_set_ ## name (CONFIGURATION *c, int val);
+#define MACRO_CONFIG_STR(name,len,def) void config_set_ ## name (CONFIGURATION *c, const char *str);
+#include "e_config_variables.h"
+#undef MACRO_CONFIG_INT
+#undef MACRO_CONFIG_STR
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif