Guest User

enums.h

a guest
Apr 1st, 2018
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.13 KB | None | 0 0
  1. ////////////////////////////////////////////////////////////////////////
  2. // OpenTibia - an opensource roleplaying game
  3. ////////////////////////////////////////////////////////////////////////
  4. // This program is free software: you can redistribute it and/or modify
  5. // it under the terms of the GNU General Public License as published by
  6. // the Free Software Foundation, either version 3 of the License, or
  7. // (at your option) any later version.
  8. //
  9. // This program is distributed in the hope that it will be useful,
  10. // but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  12. // GNU General Public License for more details.
  13. //
  14. // You should have received a copy of the GNU General Public License
  15. // along with this program. If not, see <http://www.gnu.org/licenses/>.
  16. ////////////////////////////////////////////////////////////////////////
  17.  
  18. #ifndef __ENUMS__
  19. #define __ENUMS__
  20.  
  21. #include <string>
  22. #include <list>
  23.  
  24. #define PLAYER_ID_RANGE 0x10000000
  25. #define MONSTER_ID_RANGE 0x40000000
  26. #define NPC_ID_RANGE 0x80000000
  27.  
  28. enum Vocation_t
  29. {
  30. VOCATION_NONE = 0,
  31. VOCATION_SORCERER = 1,
  32. VOCATION_DRUID = 2,
  33. VOCATION_PALADIN = 3,
  34. VOCATION_KNIGHT = 4,
  35. VOCATION_MASTERSORCERER = 5,
  36. VOCATION_ELDERDRUID = 6,
  37. VOCATION_ROYALPALADIN = 7,
  38. VOCATION_ELITEKNIGHT = 8
  39. };
  40.  
  41. enum CreatureType_t
  42. {
  43. CREATURETYPE_PLAYER = 0,
  44. CREATURETYPE_MONSTER = 1,
  45. CREATURETYPE_NPC = 2
  46. };
  47.  
  48. enum DatabaseEngine_t
  49. {
  50. DATABASE_ENGINE_NONE = 0,
  51. DATABASE_ENGINE_MYSQL,
  52. DATABASE_ENGINE_SQLITE,
  53. DATABASE_ENGINE_POSTGRESQL
  54. };
  55.  
  56. enum Encryption_t
  57. {
  58. ENCRYPTION_PLAIN = 0,
  59. ENCRYPTION_MD5,
  60. ENCRYPTION_SHA1,
  61. ENCRYPTION_SHA256,
  62. ENCRYPTION_SHA512
  63. };
  64.  
  65. enum GuildLevel_t
  66. {
  67. GUILDLEVEL_NONE = 0,
  68. GUILDLEVEL_MEMBER,
  69. GUILDLEVEL_VICE,
  70. GUILDLEVEL_LEADER
  71. };
  72.  
  73. enum Channels_t
  74. {
  75. CHANNEL_GUILD = 0x00,
  76. CHANNEL_RVR = 0x03,
  77. CHANNEL_PARTY = 0x08,
  78. CHANNEL_HELP = 0x09,
  79. CHANNEL_DEFAULT = 0xFFFE, //internal usage only, there is no such channel
  80. CHANNEL_PRIVATE = 0xFFFF
  81. };
  82.  
  83. enum RaceType_t
  84. {
  85. RACE_NONE = 0,
  86. RACE_VENOM,
  87. RACE_BLOOD,
  88. RACE_UNDEAD,
  89. RACE_FIRE,
  90. RACE_ENERGY
  91. };
  92.  
  93. enum CombatType_t
  94. {
  95. COMBAT_NONE = 0x00,
  96. COMBAT_ALL = COMBAT_NONE, /* for internal use only.*/
  97.  
  98. COMBAT_PHYSICALDAMAGE = 1 << 0,
  99. COMBAT_ENERGYDAMAGE = 1 << 1,
  100. COMBAT_EARTHDAMAGE = 1 << 2,
  101. COMBAT_FIREDAMAGE = 1 << 3,
  102. COMBAT_UNDEFINEDDAMAGE = 1 << 4,
  103. COMBAT_LIFEDRAIN = 1 << 5,
  104. COMBAT_MANADRAIN = 1 << 6,
  105. COMBAT_HEALING = 1 << 7,
  106. COMBAT_DROWNDAMAGE = 1 << 8,
  107. COMBAT_ICEDAMAGE = 1 << 9,
  108. COMBAT_HOLYDAMAGE = 1 << 10,
  109. COMBAT_DEATHDAMAGE = 1 << 11,
  110.  
  111. COMBAT_FIRST = COMBAT_NONE,
  112. COMBAT_LAST = COMBAT_DEATHDAMAGE
  113. };
  114.  
  115. enum CombatParam_t
  116. {
  117. COMBATPARAM_NONE = 0,
  118. COMBATPARAM_COMBATTYPE,
  119. COMBATPARAM_EFFECT,
  120. COMBATPARAM_DISTANCEEFFECT,
  121. COMBATPARAM_BLOCKEDBYSHIELD,
  122. COMBATPARAM_BLOCKEDBYARMOR,
  123. COMBATPARAM_TARGETCASTERORTOPMOST,
  124. COMBATPARAM_CREATEITEM,
  125. COMBATPARAM_AGGRESSIVE,
  126. COMBATPARAM_DISPEL,
  127. COMBATPARAM_USECHARGES,
  128. COMBATPARAM_TARGETPLAYERSORSUMMONS,
  129. COMBATPARAM_DIFFERENTAREADAMAGE,
  130. COMBATPARAM_HITEFFECT,
  131. COMBATPARAM_HITCOLOR,
  132. COMBATPARAM_ELEMENTTYPE,
  133. COMBATPARAM_ELEMENTDAMAGE
  134. };
  135.  
  136. enum CallBackParam_t
  137. {
  138. CALLBACKPARAM_NONE = 0,
  139. CALLBACKPARAM_LEVELMAGICVALUE,
  140. CALLBACKPARAM_SKILLVALUE,
  141. CALLBACKPARAM_TARGETTILECALLBACK,
  142. CALLBACKPARAM_TARGETCREATURECALLBACK
  143. };
  144.  
  145. enum ConditionParam_t
  146. {
  147. CONDITIONPARAM_OWNER = 1,
  148. CONDITIONPARAM_TICKS,
  149. CONDITIONPARAM_OUTFIT,
  150. CONDITIONPARAM_HEALTHGAIN,
  151. CONDITIONPARAM_HEALTHTICKS,
  152. CONDITIONPARAM_MANAGAIN,
  153. CONDITIONPARAM_MANATICKS,
  154. CONDITIONPARAM_DELAYED,
  155. CONDITIONPARAM_SPEED,
  156. CONDITIONPARAM_LIGHT_LEVEL,
  157. CONDITIONPARAM_LIGHT_COLOR,
  158. CONDITIONPARAM_SOULGAIN,
  159. CONDITIONPARAM_SOULTICKS,
  160. CONDITIONPARAM_MINVALUE,
  161. CONDITIONPARAM_MAXVALUE,
  162. CONDITIONPARAM_STARTVALUE,
  163. CONDITIONPARAM_TICKINTERVAL,
  164. CONDITIONPARAM_FORCEUPDATE,
  165. CONDITIONPARAM_SKILL_MELEE,
  166. CONDITIONPARAM_SKILL_FIST,
  167. CONDITIONPARAM_SKILL_CLUB,
  168. CONDITIONPARAM_SKILL_SWORD,
  169. CONDITIONPARAM_SKILL_AXE,
  170. CONDITIONPARAM_SKILL_DISTANCE,
  171. CONDITIONPARAM_SKILL_SHIELD,
  172. CONDITIONPARAM_SKILL_FISHING,
  173. CONDITIONPARAM_STAT_MAXHEALTH,
  174. CONDITIONPARAM_STAT_MAXMANA,
  175. CONDITIONPARAM_STAT_SOUL,
  176. CONDITIONPARAM_STAT_MAGICLEVEL,
  177. CONDITIONPARAM_STAT_MAXHEALTHPERCENT,
  178. CONDITIONPARAM_STAT_MAXMANAPERCENT,
  179. CONDITIONPARAM_STAT_SOULPERCENT,
  180. CONDITIONPARAM_STAT_MAGICLEVELPERCENT,
  181. CONDITIONPARAM_SKILL_MELEEPERCENT,
  182. CONDITIONPARAM_SKILL_FISTPERCENT,
  183. CONDITIONPARAM_SKILL_CLUBPERCENT,
  184. CONDITIONPARAM_SKILL_SWORDPERCENT,
  185. CONDITIONPARAM_SKILL_AXEPERCENT,
  186. CONDITIONPARAM_SKILL_DISTANCEPERCENT,
  187. CONDITIONPARAM_SKILL_SHIELDPERCENT,
  188. CONDITIONPARAM_SKILL_FISHINGPERCENT,
  189. CONDITIONPARAM_PERIODICDAMAGE,
  190. CONDITIONPARAM_BUFF,
  191. CONDITIONPARAM_SUBID,
  192. CONDITIONPARAM_FIELD
  193. };
  194.  
  195. enum Exhaust_t
  196. {
  197. EXHAUST_OTHER = 0,
  198. EXHAUST_SPELLGROUP_NONE = 1,
  199. EXHAUST_SPELLGROUP_ATTACK = 2,
  200. EXHAUST_SPELLGROUP_HEALING = 3,
  201. EXHAUST_SPELLGROUP_SUPPORT = 4,
  202. EXHAUST_SPELLGROUP_SPECIAL = 5,
  203. EXHAUST_MELEE = 6
  204. };
  205.  
  206. enum BlockType_t
  207. {
  208. BLOCK_NONE = 0,
  209. BLOCK_DEFENSE,
  210. BLOCK_ARMOR,
  211. BLOCK_IMMUNITY
  212. };
  213.  
  214. enum Reflect_t
  215. {
  216. REFLECT_FIRST = 0,
  217. REFLECT_PERCENT = REFLECT_FIRST,
  218. REFLECT_CHANCE,
  219. REFLECT_LAST = REFLECT_CHANCE
  220. };
  221.  
  222. enum Increment_t
  223. {
  224. INCREMENT_FIRST = 0,
  225. HEALING_VALUE = INCREMENT_FIRST,
  226. HEALING_PERCENT,
  227. MAGIC_VALUE,
  228. MAGIC_PERCENT,
  229. INCREMENT_LAST = MAGIC_PERCENT
  230. };
  231.  
  232. enum stats_t
  233. {
  234. STAT_FIRST = 0,
  235. STAT_MAXHEALTH = STAT_FIRST,
  236. STAT_MAXMANA,
  237. STAT_SOUL,
  238. STAT_LEVEL,
  239. STAT_MAGICLEVEL,
  240. STAT_LAST = STAT_MAGICLEVEL
  241. };
  242.  
  243. enum lossTypes_t
  244. {
  245. LOSS_FIRST = 0,
  246. LOSS_EXPERIENCE = LOSS_FIRST,
  247. LOSS_MANA,
  248. LOSS_SKILLS,
  249. LOSS_CONTAINERS,
  250. LOSS_ITEMS,
  251. LOSS_LAST = LOSS_ITEMS
  252. };
  253.  
  254. enum formulaType_t
  255. {
  256. FORMULA_UNDEFINED = 0,
  257. FORMULA_LEVELMAGIC,
  258. FORMULA_SKILL,
  259. FORMULA_VALUE
  260. };
  261.  
  262. enum ConditionId_t
  263. {
  264. CONDITIONID_DEFAULT = -1,
  265. CONDITIONID_COMBAT = 0,
  266. CONDITIONID_HEAD,
  267. CONDITIONID_NECKLACE,
  268. CONDITIONID_BACKPACK,
  269. CONDITIONID_ARMOR,
  270. CONDITIONID_RIGHT,
  271. CONDITIONID_LEFT,
  272. CONDITIONID_LEGS,
  273. CONDITIONID_FEET,
  274. CONDITIONID_RING,
  275. CONDITIONID_AMMO,
  276. CONDITIONID_OUTFIT
  277. };
  278.  
  279. enum PlayerSex_t
  280. {
  281. PLAYERSEX_FEMALE = 0,
  282. PLAYERSEX_MALE
  283. // DO NOT ADD HERE! Every higher sex is only for your
  284. // own use- each female should be even and male odd.
  285. };
  286.  
  287. enum WarType_t
  288. {
  289. WAR_FIRST = 0,
  290. WAR_GUILD = WAR_FIRST,
  291. WAR_ENEMY,
  292. WAR_LAST = WAR_ENEMY
  293. };
  294.  
  295. struct War_t
  296. {
  297. War_t()
  298. {
  299. war = 0;
  300. type = WAR_FIRST;
  301.  
  302. memset(ids, 0, sizeof(ids));
  303. memset(frags, 0, sizeof(frags));
  304.  
  305. limit = 0;
  306. payment = 0;
  307. }
  308.  
  309. uint32_t war;
  310. WarType_t type;
  311.  
  312. uint32_t ids[WAR_LAST + 1];
  313. std::string names[WAR_LAST + 1];
  314. uint16_t frags[WAR_LAST + 1];
  315.  
  316. uint16_t limit;
  317. uint64_t payment;
  318. };
  319.  
  320. struct Outfit_t
  321. {
  322. Outfit_t()
  323. {
  324. lookType = lookTypeEx = 0;
  325. lookHead = lookBody = lookLegs = lookFeet = lookAddons = 0;
  326. }
  327. Outfit_t(uint16_t _lookType)
  328. {
  329. lookType = _lookType;
  330. lookTypeEx = 0;
  331. lookHead = lookBody = lookLegs = lookFeet = lookAddons = 0;
  332. }
  333.  
  334. uint16_t lookType, lookTypeEx;
  335. uint8_t lookHead, lookBody, lookLegs, lookFeet, lookAddons;
  336.  
  337. bool operator==(const Outfit_t& o) const
  338. {
  339. return (o.lookAddons == lookAddons
  340. && o.lookType == lookType && o.lookTypeEx == lookTypeEx
  341. && o.lookHead == lookHead && o.lookBody == lookBody
  342. && o.lookLegs == lookLegs && o.lookFeet == lookFeet);
  343. }
  344.  
  345. bool operator!=(const Outfit_t& o) const
  346. {
  347. return !(*this == o);
  348. }
  349. };
  350.  
  351. struct LightInfo
  352. {
  353. uint32_t level, color;
  354.  
  355. LightInfo() {level = color = 0;}
  356. LightInfo(uint32_t _level, uint32_t _color):
  357. level(_level), color(_color) {}
  358. };
  359.  
  360. struct ShopInfo
  361. {
  362. uint32_t itemId;
  363. int32_t subType, buyPrice, sellPrice;
  364. std::string itemName;
  365.  
  366. ShopInfo()
  367. {
  368. itemId = 0;
  369. subType = 1;
  370. buyPrice = sellPrice = -1;
  371. itemName = "";
  372. }
  373. ShopInfo(uint32_t _itemId, int32_t _subType = 1, int32_t _buyPrice = -1, int32_t _sellPrice = -1,
  374. const std::string& _itemName = ""): itemId(_itemId), subType(_subType), buyPrice(_buyPrice),
  375. sellPrice(_sellPrice), itemName(_itemName) {}
  376. };
  377.  
  378. typedef std::list<ShopInfo> ShopInfoList;
  379. #endif
Add Comment
Please, Sign In to add comment