/* (c) Magnus Auvinen. See licence.txt in the root of the distribution for more information. */
/* If you are missing that file, acquire a complete release at teeworlds.com.                */
#ifndef ENGINE_SHARED_CONFIG_H
#define ENGINE_SHARED_CONFIG_H

#define CONFIG_FILE "settings_ddnet.cfg"
#define AUTOEXEC_FILE "autoexec.cfg"
#define AUTOEXEC_CLIENT_FILE "autoexec_client.cfg"
#define AUTOEXEC_SERVER_FILE "autoexec_server.cfg"

struct CConfiguration
{
	#define MACRO_CONFIG_INT(Name,ScriptName,Def,Min,Max,Save,Desc) int m_##Name;
	#define MACRO_CONFIG_COL(Name,ScriptName,Def,Save,Desc) unsigned m_##Name;
	#define MACRO_CONFIG_STR(Name,ScriptName,Len,Def,Save,Desc) char m_##Name[Len]; // Flawfinder: ignore
	#include "config_variables.h"
	#undef MACRO_CONFIG_INT
	#undef MACRO_CONFIG_COL
	#undef MACRO_CONFIG_STR
};

extern CConfiguration g_Config;

enum
{
	CFGFLAG_SAVE=1<<0,
	CFGFLAG_CLIENT=1<<1,
	CFGFLAG_SERVER=1<<2,
	CFGFLAG_STORE=1<<3,
	CFGFLAG_MASTER=1<<4,
	CFGFLAG_ECON=1<<5,
	// DDRace

	CMDFLAG_TEST=1<<6,
	CFGFLAG_CHAT=1<<7,
	CFGFLAG_GAME=1<<8,
	CFGFLAG_NONTEEHISTORIC=1<<9,
	CFGFLAG_COLLIGHT=1<<10,
	CFGFLAG_COLALPHA=1<<11,
};

#endif
