CMapGenOptions.cpp 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  1. #include "CMapGenOptions.h"
  2. CMapGenOptions::CMapGenOptions() : width(72), height(72), hasTwoLevels(true),
  3. playersCnt(-1), teamsCnt(-1), compOnlyPlayersCnt(0), compOnlyTeamsCnt(-1),
  4. waterContent(EWaterContent::RANDOM), monsterStrength(EMonsterStrength::RANDOM)
  5. {
  6. }
  7. si32 CMapGenOptions::getWidth() const
  8. {
  9. return width;
  10. }
  11. void CMapGenOptions::setWidth(int value)
  12. {
  13. if(value > 0)
  14. {
  15. width = value;
  16. }
  17. else
  18. {
  19. throw std::runtime_error("Map width lower than 1 not allowed.");
  20. }
  21. }
  22. si32 CMapGenOptions::getHeight() const
  23. {
  24. return height;
  25. }
  26. void CMapGenOptions::setHeight(si32 value)
  27. {
  28. if(value > 0)
  29. {
  30. height = value;
  31. }
  32. else
  33. {
  34. throw std::runtime_error("Map height lower than 1 not allowed.");
  35. }
  36. }
  37. bool CMapGenOptions::getHasTwoLevels() const
  38. {
  39. return hasTwoLevels;
  40. }
  41. void CMapGenOptions::setHasTwoLevels(bool value)
  42. {
  43. hasTwoLevels = value;
  44. }
  45. si8 CMapGenOptions::getPlayersCnt() const
  46. {
  47. return playersCnt;
  48. }
  49. void CMapGenOptions::setPlayersCnt(si8 value)
  50. {
  51. if((value >= 1 && value <= 8) || value == RANDOM_SIZE)
  52. {
  53. playersCnt = value;
  54. }
  55. else
  56. {
  57. throw std::runtime_error("Players count of RMG options should be between 1 and 8 or -1 for random.");
  58. }
  59. }
  60. si8 CMapGenOptions::getTeamsCnt() const
  61. {
  62. return teamsCnt;
  63. }
  64. void CMapGenOptions::setTeamsCnt(si8 value)
  65. {
  66. if(playersCnt == RANDOM_SIZE || (value >= 0 && value < playersCnt) || value == RANDOM_SIZE)
  67. {
  68. teamsCnt = value;
  69. }
  70. else
  71. {
  72. throw std::runtime_error("Teams count of RMG options should be between 0 and <" +
  73. boost::lexical_cast<std::string>(playersCnt) + "(players count) - 1> or -1 for random.");
  74. }
  75. }
  76. si8 CMapGenOptions::getCompOnlyPlayersCnt() const
  77. {
  78. return compOnlyPlayersCnt;
  79. }
  80. void CMapGenOptions::setCompOnlyPlayersCnt(si8 value)
  81. {
  82. if(value == RANDOM_SIZE || (value >= 0 && value <= 8 - playersCnt))
  83. {
  84. compOnlyPlayersCnt = value;
  85. }
  86. else
  87. {
  88. throw std::runtime_error(std::string("Computer only players count of RMG options should be ") +
  89. "between 0 and <8 - " + boost::lexical_cast<std::string>(playersCnt) +
  90. "(playersCount)> or -1 for random.");
  91. }
  92. }
  93. si8 CMapGenOptions::getCompOnlyTeamsCnt() const
  94. {
  95. return compOnlyTeamsCnt;
  96. }
  97. void CMapGenOptions::setCompOnlyTeamsCnt(si8 value)
  98. {
  99. if(value == RANDOM_SIZE || compOnlyPlayersCnt == RANDOM_SIZE || (value >= 0 && value <= compOnlyPlayersCnt - 1))
  100. {
  101. compOnlyTeamsCnt = value;
  102. }
  103. else
  104. {
  105. throw std::runtime_error(std::string("Computer only teams count of RMG options should be ") +
  106. "between 0 and <" + boost::lexical_cast<std::string>(compOnlyPlayersCnt) +
  107. "(compOnlyPlayersCnt) - 1> or -1 for random.");
  108. }
  109. }
  110. EWaterContent::EWaterContent CMapGenOptions::getWaterContent() const
  111. {
  112. return waterContent;
  113. }
  114. void CMapGenOptions::setWaterContent(EWaterContent::EWaterContent value)
  115. {
  116. waterContent = value;
  117. }
  118. EMonsterStrength::EMonsterStrength CMapGenOptions::getMonsterStrength() const
  119. {
  120. return monsterStrength;
  121. }
  122. void CMapGenOptions::setMonsterStrength(EMonsterStrength::EMonsterStrength value)
  123. {
  124. monsterStrength = value;
  125. }