cfgparamarray.c 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. class CfgParamArray extends CfgParam
  2. {
  3. private ref array<ref CfgParam> m_Values;
  4. void CfgParamArray(string param_name)
  5. {
  6. m_Values = new array<ref CfgParam>;
  7. }
  8. void ~CfgParamArray()
  9. {
  10. if ( m_Values != NULL )
  11. {
  12. Clear();
  13. }
  14. }
  15. void Clear()
  16. {
  17. m_Values.Clear();
  18. }
  19. array<ref CfgParam> GetValues()
  20. {
  21. return m_Values;
  22. }
  23. CfgParam GetValue(int i)
  24. {
  25. return m_Values.Get(i);
  26. }
  27. void InsertValue(CfgParam value)
  28. {
  29. if ( m_Values == NULL )
  30. {
  31. m_Values = new array<ref CfgParam>;
  32. }
  33. m_Values.Insert(value);
  34. }
  35. bool IsParamExist(string name, int cfg_type)
  36. {
  37. if ( m_Values == NULL )
  38. {
  39. m_Values = new array<ref CfgParam>;
  40. }
  41. for ( int i = 0; i < m_Values.Count(); ++i )
  42. {
  43. CfgParam p = m_Values.Get(i);
  44. if ( name == p.GetName() )
  45. {
  46. return true;
  47. }
  48. }
  49. return false;
  50. }
  51. bool RenameParam(string name, int cfg_type, string new_name)
  52. {
  53. if ( m_Values == NULL )
  54. {
  55. m_Values = new array<ref CfgParam>;
  56. }
  57. for ( int i = 0; i < m_Values.Count(); ++i )
  58. {
  59. CfgParam p = m_Values.Get(i);
  60. if ( name == p.GetName() )
  61. {
  62. p.SetName(new_name);
  63. return true;
  64. }
  65. }
  66. return false;
  67. }
  68. CfgParam GetValueByName(string name, int cfg_type)
  69. {
  70. if ( m_Values == NULL )
  71. {
  72. m_Values = new array<ref CfgParam>;
  73. }
  74. for ( int i = 0; i < m_Values.Count(); ++i )
  75. {
  76. CfgParam p = m_Values.Get(i);
  77. if ( name == p.GetName() )
  78. {
  79. return p;
  80. }
  81. }
  82. CfgParam param = CreateParam(name, cfg_type);
  83. m_Values.Insert(param);
  84. return param;
  85. }
  86. void SetParams(array<ref CfgParam> value_array)
  87. {
  88. m_Values = value_array;
  89. }
  90. bool IsValueArray()
  91. {
  92. return true;
  93. }
  94. override int GetType()
  95. {
  96. return CFG_TYPE_ARRAY;
  97. }
  98. }