diff --git a/inc/ini.h b/inc/ini.h index ee88575..dfcee82 100644 --- a/inc/ini.h +++ b/inc/ini.h @@ -15,6 +15,7 @@ void ini_create(INIFILE* ini, char* filename); DWORD ini_get_string(INIFILE* ini, LPCSTR section, LPCSTR key, LPCSTR def, LPSTR buf, DWORD size); BOOL ini_get_bool(INIFILE* ini, LPCSTR section, LPCSTR key, BOOL def); int ini_get_int(INIFILE* ini, LPCSTR section, LPCSTR key, int def); +float ini_get_float(INIFILE* ini, LPCSTR section, LPCSTR key, float def); void ini_free(INIFILE* ini); #endif diff --git a/src/ini.c b/src/ini.c index 593dbba..b71f275 100644 --- a/src/ini.c +++ b/src/ini.c @@ -155,6 +155,17 @@ int ini_get_int(INIFILE* ini, LPCSTR section, LPCSTR key, int def) } } +float ini_get_float(INIFILE* ini, LPCSTR section, LPCSTR key, float def) +{ + char def_str[32]; + _snprintf(def_str, sizeof(def_str) - 1, "%f", def); + + char value[32]; + ini_get_string(ini, section, key, def_str, value, sizeof(value)); + + return (float)atof(value); +} + void ini_free(INIFILE* ini) { if (!ini)