1 #pragma once 2 3 #include <vector> 4 5 #include "tag-version.h" 6 7 using std::vector; 8 9 enum potion_type 10 { 11 POT_CURING, 12 POT_HEAL_WOUNDS, 13 POT_HASTE, 14 POT_MIGHT, 15 POT_BRILLIANCE, 16 POT_ATTRACTION, 17 #if TAG_MAJOR_VERSION == 34 18 POT_GAIN_STRENGTH, 19 POT_GAIN_DEXTERITY, 20 POT_GAIN_INTELLIGENCE, 21 #endif 22 POT_FLIGHT, 23 #if TAG_MAJOR_VERSION == 34 24 POT_POISON, 25 POT_SLOWING, 26 #endif 27 POT_CANCELLATION, 28 POT_AMBROSIA, 29 POT_INVISIBILITY, 30 #if TAG_MAJOR_VERSION == 34 31 POT_PORRIDGE, 32 #endif 33 POT_DEGENERATION, 34 #if TAG_MAJOR_VERSION == 34 35 POT_DECAY, 36 POT_WATER, 37 #endif 38 POT_EXPERIENCE, 39 POT_MAGIC, 40 #if TAG_MAJOR_VERSION == 34 41 POT_RESTORE_ABILITIES, 42 POT_STRONG_POISON, 43 #endif 44 POT_BERSERK_RAGE, 45 #if TAG_MAJOR_VERSION == 34 46 POT_CURE_MUTATION, 47 #endif 48 POT_MUTATION, 49 POT_RESISTANCE, 50 #if TAG_MAJOR_VERSION == 34 51 POT_BLOOD, 52 POT_BLOOD_COAGULATED, 53 #endif 54 POT_LIGNIFY, 55 #if TAG_MAJOR_VERSION == 34 56 POT_BENEFICIAL_MUTATION, 57 POT_DUMMY_AGILITY, 58 #endif 59 NUM_POTIONS 60 }; 61 62 // used for objstat 63 const vector<potion_type> potion_types = 64 { 65 POT_CURING, 66 POT_HEAL_WOUNDS, 67 POT_HASTE, 68 POT_MIGHT, 69 POT_BRILLIANCE, 70 POT_ATTRACTION, 71 POT_FLIGHT, 72 POT_CANCELLATION, 73 POT_AMBROSIA, 74 POT_INVISIBILITY, 75 POT_DEGENERATION, 76 POT_EXPERIENCE, 77 POT_MAGIC, 78 POT_BERSERK_RAGE, 79 POT_MUTATION, 80 POT_RESISTANCE, 81 POT_LIGNIFY, 82 }; 83 84 #if TAG_MAJOR_VERSION == 34 85 #define CASE_REMOVED_POTIONS(pot) \ 86 case POT_GAIN_STRENGTH: \ 87 case POT_GAIN_DEXTERITY: \ 88 case POT_GAIN_INTELLIGENCE: \ 89 case POT_POISON: \ 90 case POT_SLOWING: \ 91 case POT_PORRIDGE: \ 92 case POT_DECAY: \ 93 case POT_WATER: \ 94 case POT_RESTORE_ABILITIES: \ 95 case POT_STRONG_POISON: \ 96 case POT_CURE_MUTATION: \ 97 case POT_BLOOD: \ 98 case POT_BLOOD_COAGULATED: \ 99 case POT_BENEFICIAL_MUTATION: \ 100 case POT_DUMMY_AGILITY: \ 101 { \ 102 die("Removed potion type %d!", static_cast<int>(pot)); \ 103 } 104 #else 105 #define CASE_REMOVED_POTIONS(pot) 106 #endif 107