#ifndef _VARIABLE_H #define _VARIABLE_H #include "_global.h" //enums enum VAR_TYPE { VAR_SYSTEM = 1, VAR_USER = 2, VAR_READONLY = 3, VAR_HIDDEN = 4 }; enum VAR_VALUE_TYPE { VAR_UINT, VAR_STRING, }; //structures struct VAR_VALUE { union { uint value; std::vector* data; } u; VAR_VALUE_TYPE type; int size; }; struct VAR { String name; String alias; VAR_TYPE type; VAR_VALUE value; }; struct CaseInsensitiveCompare { bool operator()(const String & str1, const String & str2) const { return _stricmp(str1.c_str(), str2.c_str()) < 0; } }; //functions void varsetvalue(VAR* Var, VAR_VALUE* Value); bool varset(const char* Name, VAR_VALUE* Value, bool ReadOnly); void varinit(); void varfree(); bool varnew(const char* Name, uint Value, VAR_TYPE Type); bool varget(const char* Name, VAR_VALUE* Value, int* Size, VAR_TYPE* Type); bool varget(const char* Name, uint* Value, int* Size, VAR_TYPE* Type); bool varget(const char* Name, char* String, int* Size, VAR_TYPE* Type); bool varset(const char* Name, uint Value, bool ReadOnly); bool varset(const char* Name, const char* Value, bool ReadOnly); bool vardel(const char* Name, bool DelSystem); bool vargettype(const char* Name, VAR_TYPE* Type = nullptr, VAR_VALUE_TYPE* ValueType = nullptr); bool varenum(VAR* List, size_t* Size); #endif // _VARIABLE_H