// Copyright (C) 2007-2025 EQ2EMulator // Licensed under GPL v3 #ifndef EQ2_VARIABLES_H #define EQ2_VARIABLES_H #include #include class Variable{ public: Variable (const char* name, const char* value, const char* comment){ variableName = string(name); variableValue = string(value); if(comment) variableComment = string(comment); } const char* GetName() { return variableName.c_str(); } const char* GetValue() { return variableValue.c_str(); } const char* GetComment() { return variableComment.c_str(); } string GetNameValuePair(){ return string(variableName).append(" ").append(variableValue); } void SetValue(const char* value){ if(value) variableValue = string(value); } private: string variableName; string variableValue; string variableComment; }; class Variables { public: ~Variables(){ ClearVariables(); } void AddVariable ( Variable* var ) { variables[string(var->GetName())] = var; } void ClearVariables() { if(variables.size() == 0) return; map::iterator map_list; for( map_list = variables.begin(); map_list != variables.end(); map_list++ ) { safe_delete(map_list->second); } variables.clear(); } Variable* FindVariable ( string name ) { if(variables.count(name) > 0) return variables[name]; return 0; } vector* GetVariables(string partial_name){ vector* ret = new vector(); map::iterator itr; for(itr = variables.begin(); itr != variables.end(); itr++){ if(itr->first.find(partial_name) < 0xFFFFFFFF) ret->push_back(itr->second); } return ret; } private: map variables; }; #endif