Enumerations.h 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251
  1. /*
  2. * GameConstants.h, part of VCMI engine
  3. *
  4. * Authors: listed in file AUTHORS in main folder
  5. *
  6. * License: GNU General Public License v2.0 or later
  7. * Full text of license available in license.txt file, in main folder
  8. *
  9. */
  10. #pragma once
  11. enum class PrimarySkill : int8_t
  12. {
  13. NONE = -1,
  14. ATTACK,
  15. DEFENSE,
  16. SPELL_POWER,
  17. KNOWLEDGE,
  18. EXPERIENCE = 4 //for some reason changePrimSkill uses it
  19. };
  20. enum class EAlignment : int8_t
  21. {
  22. GOOD,
  23. EVIL,
  24. NEUTRAL
  25. };
  26. namespace BuildingSubID
  27. {
  28. enum EBuildingSubID
  29. {
  30. DEFAULT = -50,
  31. NONE = -1,
  32. STABLES,
  33. BROTHERHOOD_OF_SWORD,
  34. CASTLE_GATE,
  35. CREATURE_TRANSFORMER,
  36. MYSTIC_POND,
  37. FOUNTAIN_OF_FORTUNE,
  38. ARTIFACT_MERCHANT,
  39. LOOKOUT_TOWER,
  40. LIBRARY,
  41. MANA_VORTEX,
  42. PORTAL_OF_SUMMONING,
  43. ESCAPE_TUNNEL,
  44. FREELANCERS_GUILD,
  45. BALLISTA_YARD,
  46. ATTACK_VISITING_BONUS,
  47. MAGIC_UNIVERSITY,
  48. SPELL_POWER_GARRISON_BONUS,
  49. ATTACK_GARRISON_BONUS,
  50. DEFENSE_GARRISON_BONUS,
  51. DEFENSE_VISITING_BONUS,
  52. SPELL_POWER_VISITING_BONUS,
  53. KNOWLEDGE_VISITING_BONUS,
  54. EXPERIENCE_VISITING_BONUS,
  55. LIGHTHOUSE,
  56. TREASURY,
  57. CUSTOM_VISITING_BONUS,
  58. CUSTOM_VISITING_REWARD
  59. };
  60. }
  61. enum class EMarketMode : int8_t
  62. {
  63. RESOURCE_RESOURCE, RESOURCE_PLAYER, CREATURE_RESOURCE, RESOURCE_ARTIFACT,
  64. ARTIFACT_RESOURCE, ARTIFACT_EXP, CREATURE_EXP, CREATURE_UNDEAD, RESOURCE_SKILL,
  65. MARTKET_AFTER_LAST_PLACEHOLDER
  66. };
  67. enum class EAiTactic : int8_t
  68. {
  69. NONE = -1,
  70. RANDOM,
  71. WARRIOR,
  72. BUILDER,
  73. EXPLORER
  74. };
  75. enum class EBuildingState : int8_t
  76. {
  77. HAVE_CAPITAL, NO_WATER, FORBIDDEN, ADD_MAGES_GUILD, ALREADY_PRESENT, CANT_BUILD_TODAY,
  78. NO_RESOURCES, ALLOWED, PREREQUIRES, MISSING_BASE, BUILDING_ERROR, TOWN_NOT_OWNED
  79. };
  80. enum class ESpellCastProblem : int8_t
  81. {
  82. OK, NO_HERO_TO_CAST_SPELL, CASTS_PER_TURN_LIMIT, NO_SPELLBOOK,
  83. HERO_DOESNT_KNOW_SPELL, NOT_ENOUGH_MANA, ADVMAP_SPELL_INSTEAD_OF_BATTLE_SPELL,
  84. SPELL_LEVEL_LIMIT_EXCEEDED, NO_SPELLS_TO_DISPEL,
  85. NO_APPROPRIATE_TARGET, STACK_IMMUNE_TO_SPELL, WRONG_SPELL_TARGET, ONGOING_TACTIC_PHASE,
  86. MAGIC_IS_BLOCKED, //For Orb of Inhibition and similar - no casting at all
  87. INVALID
  88. };
  89. namespace ECommander
  90. {
  91. enum SecondarySkills {ATTACK, DEFENSE, HEALTH, DAMAGE, SPEED, SPELL_POWER, CASTS, RESISTANCE};
  92. const int MAX_SKILL_LEVEL = 5;
  93. }
  94. enum class EWallPart : int8_t
  95. {
  96. INDESTRUCTIBLE_PART_OF_GATE = -3, INDESTRUCTIBLE_PART = -2, INVALID = -1,
  97. KEEP = 0, BOTTOM_TOWER, BOTTOM_WALL, BELOW_GATE, OVER_GATE, UPPER_WALL, UPPER_TOWER, GATE,
  98. PARTS_COUNT /* This constant SHOULD always stay as the last item in the enum. */
  99. };
  100. enum class EWallState : int8_t
  101. {
  102. NONE = -1, //no wall
  103. DESTROYED,
  104. DAMAGED,
  105. INTACT,
  106. REINFORCED, // walls in towns with castle
  107. };
  108. enum class EGateState : int8_t
  109. {
  110. NONE,
  111. CLOSED,
  112. BLOCKED, // gate is blocked in closed state, e.g. by creature
  113. OPENED,
  114. DESTROYED
  115. };
  116. enum class ETileType : int8_t
  117. {
  118. FREE,
  119. POSSIBLE,
  120. BLOCKED,
  121. USED
  122. };
  123. enum class ETeleportChannelType : int8_t
  124. {
  125. IMPASSABLE,
  126. BIDIRECTIONAL,
  127. UNIDIRECTIONAL,
  128. MIXED
  129. };
  130. namespace SecSkillLevel
  131. {
  132. enum SecSkillLevel
  133. {
  134. NONE,
  135. BASIC,
  136. ADVANCED,
  137. EXPERT,
  138. LEVELS_SIZE
  139. };
  140. }
  141. enum class Date : int8_t
  142. {
  143. DAY = 0,
  144. DAY_OF_WEEK = 1,
  145. WEEK = 2,
  146. MONTH = 3,
  147. DAY_OF_MONTH
  148. };
  149. enum class EActionType : int8_t
  150. {
  151. NO_ACTION,
  152. END_TACTIC_PHASE,
  153. RETREAT,
  154. SURRENDER,
  155. HERO_SPELL,
  156. WALK,
  157. WAIT,
  158. DEFEND,
  159. WALK_AND_ATTACK,
  160. SHOOT,
  161. CATAPULT,
  162. MONSTER_SPELL,
  163. BAD_MORALE,
  164. STACK_HEAL,
  165. };
  166. enum class EDiggingStatus : int8_t
  167. {
  168. UNKNOWN = -1,
  169. CAN_DIG = 0,
  170. LACK_OF_MOVEMENT,
  171. WRONG_TERRAIN,
  172. TILE_OCCUPIED,
  173. BACKPACK_IS_FULL
  174. };
  175. enum class EPlayerStatus : int8_t
  176. {
  177. WRONG = -1,
  178. INGAME,
  179. LOSER,
  180. WINNER
  181. };
  182. enum class PlayerRelations : int8_t
  183. {
  184. ENEMIES,
  185. ALLIES,
  186. SAME_PLAYER
  187. };
  188. enum class EMetaclass : int8_t
  189. {
  190. INVALID = 0,
  191. ARTIFACT,
  192. CREATURE,
  193. FACTION,
  194. EXPERIENCE,
  195. HERO,
  196. HEROCLASS,
  197. LUCK,
  198. MANA,
  199. MORALE,
  200. MOVEMENT,
  201. OBJECT,
  202. PRIMARY_SKILL,
  203. SECONDARY_SKILL,
  204. SPELL,
  205. RESOURCE
  206. };
  207. enum class EHealLevel: int8_t
  208. {
  209. HEAL,
  210. RESURRECT,
  211. OVERHEAL
  212. };
  213. enum class EHealPower : int8_t
  214. {
  215. ONE_BATTLE,
  216. PERMANENT
  217. };
  218. enum class EBattleResult : int8_t
  219. {
  220. NORMAL = 0,
  221. ESCAPE = 1,
  222. SURRENDER = 2,
  223. };
  224. VCMI_LIB_NAMESPACE_END