about summary refs log tree commit diff
path: root/src/engine/config.h
blob: 116ad9b471df68d37d1606b83530d16287ae6e95 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#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_variables.h" 
    #undef MACRO_CONFIG_INT 
    #undef MACRO_CONFIG_STR 
}; 

extern configuration config;

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 "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 "config_variables.h"
#undef MACRO_CONFIG_INT
#undef MACRO_CONFIG_STR

#endif