Enumerations.h 4.0 KB

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