const int CFG_TYPE_STRING = 0; const int CFG_TYPE_INT = 1; const int CFG_TYPE_FLOAT = 2; const int CFG_TYPE_BOOL = 3; const int CFG_TYPE_ARRAY = 4; const int CFG_TYPE_PARAM = 5; class CfgParam: Managed { protected string m_ParamName; protected string m_ParamValueString; void CfgParam(string param_name) { m_ParamName = param_name; } void SetName(string param_name) { m_ParamName = param_name; } string GetName() { return m_ParamName; } int GetType() { return -1; } bool IsArray() { return false; } static CfgParam CreateParam(string name, int cfg_type) { CfgParam param; switch (cfg_type) { case CFG_TYPE_STRING: { param = new CfgParamString(name); break; } case CFG_TYPE_INT: { param = new CfgParamInt(name); break; } case CFG_TYPE_FLOAT: { param = new CfgParamFloat(name); break; } case CFG_TYPE_BOOL: { param = new CfgParamBool(name); break; } case CFG_TYPE_ARRAY: { param = new CfgParamArray(name); break; } } return param; } }