ddnet/src/engine/e_config.h

53 lines
1.4 KiB
C
Raw Normal View History

2007-11-25 19:42:40 +00:00
/* copyright (c) 2007 magnus auvinen, see licence.txt for more info */
2007-06-01 11:08:33 +00:00
#ifndef _CONFIG_H
#define _CONFIG_H
2007-10-09 09:04:57 +00:00
#ifdef __cplusplus
extern "C"{
#endif
typedef struct
2007-06-01 11:08:33 +00:00
{
#define MACRO_CONFIG_INT(name,def,min,max,save,desc) int name;
#define MACRO_CONFIG_STR(name,len,def,save,desc) char name[len]; /* Flawfinder: ignore */
2007-12-15 10:24:49 +00:00
#include "e_config_variables.h"
2007-06-01 11:08:33 +00:00
#undef MACRO_CONFIG_INT
#undef MACRO_CONFIG_STR
} CONFIGURATION;
2007-06-01 11:08:33 +00:00
extern CONFIGURATION config;
2007-06-01 11:08:33 +00:00
2008-01-16 22:14:06 +00:00
void config_init();
2007-06-01 11:08:33 +00:00
void config_reset();
void config_save();
2007-06-01 11:08:33 +00:00
enum
{
CFGFLAG_SAVE=1,
CFGFLAG_CLIENT=2,
CFGFLAG_SERVER=4
};
typedef int (*CONFIG_INT_GETTER)(CONFIGURATION *c);
typedef const char *(*CONFIG_STR_GETTER)(CONFIGURATION *c);
typedef void (*CONFIG_INT_SETTER)(CONFIGURATION *c, int val);
typedef void (*CONFIG_STR_SETTER)(CONFIGURATION *c, const char *str);
2008-01-16 22:14:06 +00:00
#define MACRO_CONFIG_INT(name,def,min,max,flags,desc) int config_get_ ## name (CONFIGURATION *c);
#define MACRO_CONFIG_STR(name,len,def,flags,desc) const char *config_get_ ## name (CONFIGURATION *c);
2007-12-15 10:24:49 +00:00
#include "e_config_variables.h"
2007-06-01 12:24:13 +00:00
#undef MACRO_CONFIG_INT
#undef MACRO_CONFIG_STR
#define MACRO_CONFIG_INT(name,def,min,max,flags,desc) void config_set_ ## name (CONFIGURATION *c, int val);
#define MACRO_CONFIG_STR(name,len,def,flags,desc) void config_set_ ## name (CONFIGURATION *c, const char *str);
2007-12-15 10:24:49 +00:00
#include "e_config_variables.h"
2007-06-01 11:08:33 +00:00
#undef MACRO_CONFIG_INT
#undef MACRO_CONFIG_STR
2007-10-09 09:04:57 +00:00
#ifdef __cplusplus
}
#endif
2007-06-01 11:08:33 +00:00
#endif