CMapGenOptions.cpp 2.9 KB

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