// Copyright (c) rAthena Project (www.rathena.org) - Licensed under GNU GPL // For more information, see LICENCE in the main folder #ifndef _rA_CONF_H_ #define _rA_CONF_H_ #include "../common/cbasetypes.h" // rAthena generic configuration file parser // // Config file Syntax is athena style // extended with ini style support (including sections) // // Comments are started with // or ; (ini style) // typedef struct raconf *raconf; /** * Parses a rAthna Configuration file * * @param file_name path to the file to parse * * @returns not NULL incase of success */ raconf raconf_parse(const char *file_name); /** * Frees a Handle received from raconf_parse * * @param rc - the handle to free */ void raconf_destroy(raconf rc); /** * Gets the value for Section / Key pair, if key not exists returns _default! * */ bool raconf_getbool(raconf rc, const char *section, const char *key, bool _default); float raconf_getfloat(raconf rc,const char *section, const char *key, float _default); int64 raconf_getint(raconf rc, const char *section, const char *key, int64 _default); const char* raconf_getstr(raconf rc, const char *section, const char *key, const char *_default); /** * Gets the value for Section / Key pair, but has fallback section option if not found in section, * if not found in both - default gets returned. * */ bool raconf_getboolEx(raconf rc, const char *section, const char *fallback_section, const char *key, bool _default); float raconf_getfloatEx(raconf rc,const char *section, const char *fallback_section, const char *key, float _default); int64 raconf_getintEx(raconf rc, const char *section, const char *fallback_section, const char *key, int64 _default); const char* raconf_getstrEx(raconf rc, const char *section, const char *fallback_section, const char *key, const char *_default); #endif