about summary refs log tree commit diff
path: root/src/engine/e_config.h
diff options
context:
space:
mode:
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