ConfigVar.cpp 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. #include <OgreStringConverter.h>
  2. #include "core/Assert.h"
  3. #include "core/ConfigVar.h"
  4. ConfigVar* ConfigVar::m_StaticConfigVarList = nullptr;
  5. ConfigVar::ConfigVar(const Ogre::String& name, const Ogre::String& description, const Ogre::String& default_value):
  6. m_Name(name),
  7. m_Description(description),
  8. m_DefaultValue(default_value),
  9. m_ValueS(default_value)
  10. {
  11. QGEARS_ASSERT(name != "", "m_Name of ConfigVar can`t be empty!");
  12. QGEARS_ASSERT(default_value != "", "m_DefaultValue of ConfigVar can`t be empty!");
  13. QGEARS_ASSERT(description != "", "m_Description of ConfigVar can`t be empty!");
  14. UpdateVariables();
  15. // TODO: This code looks suspect
  16. if (m_StaticConfigVarList != (ConfigVar*)0xffffffff)
  17. {
  18. m_Previous = m_StaticConfigVarList;
  19. m_StaticConfigVarList = this;
  20. }
  21. else
  22. {
  23. QGEARS_ASSERT(false, "ConfigVar declared after RegisterCvars were called!");
  24. }
  25. }
  26. int
  27. ConfigVar::GetI() const
  28. {
  29. return m_ValueI;
  30. }
  31. float
  32. ConfigVar::GetF() const
  33. {
  34. return m_ValueF;
  35. }
  36. bool
  37. ConfigVar::GetB() const
  38. {
  39. return m_ValueB;
  40. }
  41. Ogre::String
  42. ConfigVar::GetS() const
  43. {
  44. return m_ValueS;
  45. }
  46. void
  47. ConfigVar::SetI(int value)
  48. {
  49. m_ValueS = Ogre::StringConverter::toString(value);
  50. UpdateVariables();
  51. }
  52. void
  53. ConfigVar::SetF(float value)
  54. {
  55. m_ValueS = Ogre::StringConverter::toString(value);
  56. UpdateVariables();
  57. }
  58. void
  59. ConfigVar::SetB(bool value)
  60. {
  61. m_ValueS = Ogre::StringConverter::toString(value);
  62. UpdateVariables();
  63. }
  64. void
  65. ConfigVar::SetS(const Ogre::String& value)
  66. {
  67. m_ValueS = value;
  68. UpdateVariables();
  69. }
  70. const Ogre::String&
  71. ConfigVar::GetName() const
  72. {
  73. return m_Name;
  74. }
  75. const Ogre::String&
  76. ConfigVar::GetDescription() const
  77. {
  78. return m_Description;
  79. }
  80. const Ogre::String&
  81. ConfigVar::GetDefaultValue() const
  82. {
  83. return m_DefaultValue;
  84. }
  85. void
  86. ConfigVar::UpdateVariables()
  87. {
  88. m_ValueI = Ogre::StringConverter::parseInt(m_ValueS);
  89. m_ValueF = Ogre::StringConverter::parseReal(m_ValueS);
  90. m_ValueB = Ogre::StringConverter::parseBool(m_ValueS);
  91. }