From 3d45092b1f7e5df50d86bd3a0f9b7f5743ca761c Mon Sep 17 00:00:00 2001 From: Robert Vollmert Date: Tue, 17 Nov 2009 15:10:56 +0100 Subject: Split itemprop enums out into itemprop-enum.h. Other headers now don't need to include all of itemprop.h. --- crawl-ref/source/actor.cc | 1 + crawl-ref/source/attitude-change.cc | 1 + crawl-ref/source/godabil.cc | 1 + crawl-ref/source/goditem.cc | 1 + crawl-ref/source/itemprop-enum.h | 569 ++++++++++++++++++++++++++++++++++++ crawl-ref/source/itemprop.h | 566 +---------------------------------- crawl-ref/source/l_food.cc | 1 + crawl-ref/source/makeitem.h | 2 +- crawl-ref/source/mon-stuff.cc | 1 + crawl-ref/source/newgame.h | 2 +- crawl-ref/source/player.h | 2 +- crawl-ref/source/show.cc | 1 + crawl-ref/source/spells2.h | 2 +- crawl-ref/source/spells3.h | 2 +- crawl-ref/source/wiz-fsim.cc | 1 + crawl-ref/source/wiz-item.cc | 1 + crawl-ref/source/xom.cc | 1 + 17 files changed, 586 insertions(+), 569 deletions(-) create mode 100644 crawl-ref/source/itemprop-enum.h diff --git a/crawl-ref/source/actor.cc b/crawl-ref/source/actor.cc index 26466c1e1f..1a79413525 100644 --- a/crawl-ref/source/actor.cc +++ b/crawl-ref/source/actor.cc @@ -3,6 +3,7 @@ #include "actor.h" #include "artefact.h" #include "env.h" +#include "itemprop.h" #include "player.h" #include "random.h" #include "state.h" diff --git a/crawl-ref/source/attitude-change.cc b/crawl-ref/source/attitude-change.cc index a0029ae21c..27b71ecfcf 100644 --- a/crawl-ref/source/attitude-change.cc +++ b/crawl-ref/source/attitude-change.cc @@ -14,6 +14,7 @@ #include "files.h" #include "godabil.h" #include "goditem.h" +#include "itemprop.h" #include "message.h" #include "mon-behv.h" #include "mon-iter.h" diff --git a/crawl-ref/source/godabil.cc b/crawl-ref/source/godabil.cc index aef7df3fc5..ab4be021d6 100644 --- a/crawl-ref/source/godabil.cc +++ b/crawl-ref/source/godabil.cc @@ -18,6 +18,7 @@ #include "files.h" #include "godabil.h" #include "invent.h" +#include "itemprop.h" #include "items.h" #include "kills.h" #include "message.h" diff --git a/crawl-ref/source/goditem.cc b/crawl-ref/source/goditem.cc index 65ddba4de7..41d2d275c5 100644 --- a/crawl-ref/source/goditem.cc +++ b/crawl-ref/source/goditem.cc @@ -15,6 +15,7 @@ #include #include "itemname.h" +#include "itemprop.h" #include "religion.h" #include "spl-book.h" #include "spl-cast.h" diff --git a/crawl-ref/source/itemprop-enum.h b/crawl-ref/source/itemprop-enum.h new file mode 100644 index 0000000000..f913199999 --- /dev/null +++ b/crawl-ref/source/itemprop-enum.h @@ -0,0 +1,569 @@ +#ifndef ITEMPROP_ENUM_H +#define ITEMPROP_ENUM_H + +enum armour_type +{ + ARM_ROBE, // 0 + ARM_LEATHER_ARMOUR, + ARM_RING_MAIL, + ARM_SCALE_MAIL, + ARM_CHAIN_MAIL, + ARM_SPLINT_MAIL, // 5 + ARM_BANDED_MAIL, + ARM_PLATE_MAIL, + + ARM_CLOAK, + + ARM_CAP, + ARM_WIZARD_HAT, // 10 + ARM_HELMET, + + ARM_GLOVES, + + ARM_BOOTS, + + ARM_BUCKLER, + ARM_SHIELD, // 15 + ARM_LARGE_SHIELD, + ARM_MAX_RACIAL = ARM_LARGE_SHIELD, + + ARM_CRYSTAL_PLATE_MAIL, + + ARM_ANIMAL_SKIN, + + ARM_TROLL_HIDE, + ARM_TROLL_LEATHER_ARMOUR, // 20 + + ARM_DRAGON_HIDE, + ARM_DRAGON_ARMOUR, + ARM_ICE_DRAGON_HIDE, + ARM_ICE_DRAGON_ARMOUR, + ARM_STEAM_DRAGON_HIDE, // 25 + ARM_STEAM_DRAGON_ARMOUR, + ARM_MOTTLED_DRAGON_HIDE, + ARM_MOTTLED_DRAGON_ARMOUR, + ARM_STORM_DRAGON_HIDE, + ARM_STORM_DRAGON_ARMOUR, // 30 + ARM_GOLD_DRAGON_HIDE, + ARM_GOLD_DRAGON_ARMOUR, + ARM_SWAMP_DRAGON_HIDE, + ARM_SWAMP_DRAGON_ARMOUR, + + ARM_CENTAUR_BARDING, // 35 + ARM_NAGA_BARDING, + + NUM_ARMOURS // 37 +}; + +enum armour_property_type +{ + PARM_AC, // 0 + PARM_EVASION +}; + +enum boot_type // used in pluses2 +{ + TBOOT_BOOTS = 0, + TBOOT_NAGA_BARDING, + TBOOT_CENTAUR_BARDING, + NUM_BOOT_TYPES +}; + +const int SP_FORBID_EGO = -1; +const int SP_FORBID_BRAND = -1; + +enum brand_type // equivalent to (you.inv[].special or mitm[].special) % 30 +{ + SPWPN_FORBID_BRAND = -1, // -1 + SPWPN_NORMAL, // 0 + SPWPN_FLAMING, + SPWPN_FREEZING, + SPWPN_HOLY_WRATH, + SPWPN_ELECTROCUTION, + SPWPN_ORC_SLAYING, // 5 + SPWPN_DRAGON_SLAYING, + SPWPN_VENOM, + SPWPN_PROTECTION, + SPWPN_DRAINING, + SPWPN_SPEED, // 10 + SPWPN_VORPAL, + SPWPN_FLAME, // ranged, only + SPWPN_FROST, // ranged, only + SPWPN_VAMPIRICISM, + SPWPN_PAIN, // 15 + SPWPN_DISTORTION, + SPWPN_REACHING, + SPWPN_RETURNING, // 18 + SPWPN_CHAOS, + + MAX_PAN_LORD_BRANDS = SPWPN_CHAOS, + + SPWPN_CONFUSE, // 20 + SPWPN_PENETRATION, + SPWPN_REAPING, + SPWPN_DEBUG_RANDART = 25, // 25 + NUM_SPECIAL_WEAPONS, + SPWPN_DUMMY_CRUSHING // ONLY TEMPORARY USAGE -- converts to VORPAL +}; + +enum corpse_type +{ + CORPSE_BODY, // 0 + CORPSE_SKELETON +}; + +enum hands_reqd_type +{ + HANDS_ONE, + HANDS_HALF, + HANDS_TWO, + + HANDS_DOUBLE // not a level, marks double ended weapons (== half) +}; + +enum helmet_desc_type +{ + THELM_DESC_PLAIN = 0, + THELM_DESC_WINGED, + THELM_DESC_HORNED, + THELM_DESC_CRESTED, + THELM_DESC_PLUMED, + THELM_DESC_MAX_SOFT = THELM_DESC_PLUMED, + THELM_DESC_SPIKED, + THELM_DESC_VISORED, + THELM_DESC_GOLDEN, + THELM_NUM_DESCS +}; + +enum gloves_desc_type +{ + TGLOV_DESC_GLOVES = 0, + TGLOV_DESC_GAUNTLETS, + TGLOV_DESC_BRACERS +}; + +enum jewellery_type +{ + RING_FIRST_RING = 0, + + RING_REGENERATION = RING_FIRST_RING, // 0 + RING_PROTECTION, + RING_PROTECTION_FROM_FIRE, + RING_POISON_RESISTANCE, + RING_PROTECTION_FROM_COLD, + RING_STRENGTH, // 5 + RING_SLAYING, + RING_SEE_INVISIBLE, + RING_INVISIBILITY, + RING_HUNGER, + RING_TELEPORTATION, // 10 + RING_EVASION, + RING_SUSTAIN_ABILITIES, + RING_SUSTENANCE, + RING_DEXTERITY, + RING_INTELLIGENCE, // 15 + RING_WIZARDRY, + RING_MAGICAL_POWER, + RING_LEVITATION, + RING_LIFE_PROTECTION, + RING_PROTECTION_FROM_MAGIC, // 20 + RING_FIRE, + RING_ICE, + RING_TELEPORT_CONTROL, // 23 + + NUM_RINGS, // 24, keep as last ring; can overlap + // safely with first amulet. + + AMU_FIRST_AMULET = 35, + AMU_RAGE = AMU_FIRST_AMULET, // 35 + AMU_RESIST_SLOW, + AMU_CLARITY, + AMU_WARDING, + AMU_RESIST_CORROSION, + AMU_THE_GOURMAND, // 40 + AMU_CONSERVATION, + AMU_CONTROLLED_FLIGHT, + AMU_INACCURACY, + AMU_RESIST_MUTATION, + AMU_GUARDIAN_SPIRIT, + + NUM_JEWELLERY +}; + +enum launch_retval +{ + LRET_FUMBLED = 0, // must be left as 0 + LRET_LAUNCHED, + LRET_THROWN +}; + +enum misc_item_type +{ + MISC_BOTTLED_EFREET, // 0 + MISC_CRYSTAL_BALL_OF_SEEING, + MISC_AIR_ELEMENTAL_FAN, + MISC_LAMP_OF_FIRE, + MISC_STONE_OF_EARTH_ELEMENTALS, + MISC_LANTERN_OF_SHADOWS, + MISC_HORN_OF_GERYON, + MISC_BOX_OF_BEASTS, + MISC_CRYSTAL_BALL_OF_ENERGY, + MISC_EMPTY_EBONY_CASKET, + MISC_CRYSTAL_BALL_OF_FIXATION, + MISC_DISC_OF_STORMS, + + // pure decks + MISC_DECK_OF_ESCAPE, + MISC_DECK_OF_DESTRUCTION, + MISC_DECK_OF_DUNGEONS, + MISC_DECK_OF_SUMMONING, + MISC_DECK_OF_WONDERS, + MISC_DECK_OF_PUNISHMENT, + + // mixed decks + MISC_DECK_OF_WAR, + MISC_DECK_OF_CHANGES, + MISC_DECK_OF_DEFENCE, + + MISC_RUNE_OF_ZOT, + + NUM_MISCELLANY // mv: used for random generation +}; + +enum missile_type +{ + MI_DART, // 0 + MI_NEEDLE, + MI_ARROW, + MI_BOLT, + MI_JAVELIN, + MI_MAX_RACIAL = MI_JAVELIN, + + MI_STONE, // 5 + MI_LARGE_ROCK, + MI_SLING_BULLET, + MI_THROWING_NET, + + NUM_MISSILES, // 9 + MI_NONE // was MI_EGGPLANT... used for launch type detection +}; + +enum rune_type +{ + // Note: that runes DIS-SWAMP have the same numeric value as the branch + RUNE_DIS = BRANCH_DIS, + RUNE_GEHENNA = BRANCH_GEHENNA, + RUNE_COCYTUS = BRANCH_COCYTUS, + RUNE_TARTARUS = BRANCH_TARTARUS, + RUNE_SLIME_PITS = BRANCH_SLIME_PITS, + RUNE_VAULTS = BRANCH_VAULTS, + RUNE_SNAKE_PIT = BRANCH_SNAKE_PIT, + RUNE_ELVEN_HALLS = BRANCH_ELVEN_HALLS, // unused + RUNE_TOMB = BRANCH_TOMB, + RUNE_SWAMP = BRANCH_SWAMP, + RUNE_SHOALS = BRANCH_SHOALS, + + // Runes 50 and 51 are for Pandemonium (general demon) and the Abyss + RUNE_DEMONIC = 50, + RUNE_ABYSSAL, + + // Runes 60-63 correspond to the Pandemonium demonlords, + // and are equal to the corresponding vault. + RUNE_MNOLEG = 60, + RUNE_LOM_LOBON, + RUNE_CEREBOV, + RUNE_GLOORX_VLOQ, + NUM_RUNE_TYPES, // should always be last + RUNE_NONE +}; + +enum scroll_type +{ + SCR_IDENTIFY, // 0 + SCR_TELEPORTATION, + SCR_FEAR, + SCR_NOISE, + SCR_REMOVE_CURSE, + SCR_DETECT_CURSE, // 5 + SCR_SUMMONING, + SCR_ENCHANT_WEAPON_I, + SCR_ENCHANT_ARMOUR, + SCR_TORMENT, + SCR_RANDOM_USELESSNESS, // 10 + SCR_CURSE_WEAPON, + SCR_CURSE_ARMOUR, + SCR_IMMOLATION, + SCR_BLINKING, + SCR_PAPER, // 15 + SCR_MAGIC_MAPPING, + SCR_FOG, + SCR_ACQUIREMENT, + SCR_ENCHANT_WEAPON_II, + SCR_VORPALISE_WEAPON, // 20 + SCR_RECHARGING, + SCR_ENCHANT_WEAPON_III, + SCR_HOLY_WORD, + SCR_VULNERABILITY, + SCR_SILENCE, // 25 + NUM_SCROLLS +}; + +enum special_armour_type +{ + SPARM_FORBID_EGO = -1, // -1 + SPARM_NORMAL, // 0 + SPARM_RUNNING, + SPARM_FIRE_RESISTANCE, + SPARM_COLD_RESISTANCE, + SPARM_POISON_RESISTANCE, + SPARM_SEE_INVISIBLE, // 5 + SPARM_DARKNESS, + SPARM_STRENGTH, + SPARM_DEXTERITY, + SPARM_INTELLIGENCE, + SPARM_PONDEROUSNESS, // 10 + SPARM_LEVITATION, + SPARM_MAGIC_RESISTANCE, + SPARM_PROTECTION, + SPARM_STEALTH, + SPARM_RESISTANCE, // 15 + SPARM_POSITIVE_ENERGY, + SPARM_ARCHMAGI, + SPARM_PRESERVATION, + SPARM_REFLECTION, + SPARM_SPIRIT_SHIELD, // 20 + SPARM_ARCHERY, + NUM_SPECIAL_ARMOURS // 22 +}; + +enum special_missile_type // to separate from weapons in general {dlb} +{ + SPMSL_FORBID_BRAND = -1, // -1 + SPMSL_NORMAL, // 0 + SPMSL_FLAME, + SPMSL_FROST, + SPMSL_POISONED, + SPMSL_CURARE, + SPMSL_RETURNING, // 5 + SPMSL_CHAOS, + SPMSL_PENETRATION, + SPMSL_REAPING, + SPMSL_DISPERSAL, + SPMSL_EXPLODING, // 10 + SPMSL_STEEL, + SPMSL_SILVER, + SPMSL_ELECTRIC, + NUM_SPECIAL_MISSILES // 13 +}; + +enum special_ring_type // jewellery mitm[].special values +{ + SPRING_RANDART = 200, + SPRING_UNRANDART = 201 +}; + +enum stave_type +{ + // staves + STAFF_WIZARDRY = 0, + STAFF_POWER, + STAFF_FIRE, + STAFF_COLD, + STAFF_POISON, + STAFF_ENERGY, + STAFF_DEATH, + STAFF_CONJURATION, + STAFF_ENCHANTMENT, + STAFF_SUMMONING, + STAFF_AIR, + STAFF_EARTH, + STAFF_CHANNELING, // 12 + // rods + STAFF_FIRST_ROD, + STAFF_SMITING = STAFF_FIRST_ROD, + STAFF_SPELL_SUMMONING, + STAFF_DESTRUCTION_I, + STAFF_DESTRUCTION_II, + STAFF_DESTRUCTION_III, + STAFF_DESTRUCTION_IV, + STAFF_WARDING, + STAFF_DISCOVERY, + STAFF_DEMONOLOGY, + STAFF_STRIKING, + STAFF_VENOM, // 23 + NUM_STAVES // must remain last member {dlb} +}; + +enum weapon_type +{ + WPN_CLUB, // 0 + WPN_WHIP, + WPN_HAMMER, + WPN_MACE, + WPN_FLAIL, + WPN_MORNINGSTAR, // 5 + WPN_SPIKED_FLAIL, + WPN_DIRE_FLAIL, + WPN_EVENINGSTAR, + WPN_GREAT_MACE, + + WPN_DAGGER, // 10 + WPN_QUICK_BLADE, + WPN_SHORT_SWORD, + WPN_SABRE, + + WPN_FALCHION, + WPN_LONG_SWORD, // 15 + WPN_SCIMITAR, + WPN_GREAT_SWORD, + + WPN_HAND_AXE, + WPN_WAR_AXE, + WPN_BROAD_AXE, // 20 + WPN_BATTLEAXE, + WPN_EXECUTIONERS_AXE, + + WPN_SPEAR, + WPN_TRIDENT, + WPN_HALBERD, // 25 + WPN_GLAIVE, + WPN_BARDICHE, + + WPN_BLOWGUN, + WPN_HAND_CROSSBOW, + WPN_CROSSBOW, // 30 + WPN_BOW, + WPN_LONGBOW, + WPN_MAX_RACIAL = WPN_LONGBOW, + + WPN_ANKUS, + WPN_DEMON_WHIP, + WPN_GIANT_CLUB, // 35 + WPN_GIANT_SPIKED_CLUB, + + WPN_KNIFE, + + WPN_KATANA, + WPN_DEMON_BLADE, + WPN_DOUBLE_SWORD, // 40 + WPN_TRIPLE_SWORD, + + WPN_DEMON_TRIDENT, + WPN_SCYTHE, + + WPN_QUARTERSTAFF, + WPN_LAJATANG, // 45 + + WPN_SLING, + + WPN_MAX_NONBLESSED = WPN_SLING, + + WPN_BLESSED_FALCHION, + WPN_BLESSED_LONG_SWORD, + WPN_BLESSED_SCIMITAR, + WPN_BLESSED_GREAT_SWORD, // 50 + + WPN_BLESSED_KATANA, + WPN_BLESSED_EUDEMON_BLADE, + WPN_BLESSED_DOUBLE_SWORD, + WPN_BLESSED_TRIPLE_SWORD, + + NUM_WEAPONS, // 55 - must be last regular member {dlb} + +// special cases + WPN_UNARMED = 500, // 500 + WPN_UNKNOWN = 1000, // 1000 + WPN_RANDOM +}; + +enum weapon_description_type +{ + DWPN_PLAIN = 0, // 0 - added to round out enum {dlb} + DWPN_RUNED = 1, // 1 + DWPN_GLOWING, + DWPN_ORCISH, + DWPN_ELVEN, + DWPN_DWARVEN // 5 +}; + +enum weapon_property_type +{ + PWPN_DAMAGE, // 0 + PWPN_HIT, + PWPN_SPEED, + PWPN_ACQ_WEIGHT +}; + +enum vorpal_damage_type +{ + // These are the types of damage a weapon can do. You can set more + // than one of these. + DAM_BASH = 0x0000, // non-melee weapon blugeoning + DAM_BLUDGEON = 0x0001, // crushing + DAM_SLICE = 0x0002, // slicing/chopping + DAM_PIERCE = 0x0004, // stabbing/piercing + DAM_WHIP = 0x0008, // whip slashing (no butcher) + DAM_MAX_TYPE = DAM_WHIP, + + // These are used for vorpal weapon descriptions. You shouldn't set + // more than one of these. + DVORP_NONE = 0x0000, // used for non-melee weapons + DVORP_CRUSHING = 0x1000, + DVORP_SLICING = 0x2000, + DVORP_PIERCING = 0x3000, + DVORP_CHOPPING = 0x4000, // used for axes + DVORP_SLASHING = 0x5000, // used for whips + DVORP_STABBING = 0x6000, // used for knives/daggers + + DVORP_CLAWING = 0x7000, // claw damage + DVORP_TENTACLE = 0x8000, // tentacle damage + + // These are shortcuts to tie vorpal/damage types for easy setting... + // as above, setting more than one vorpal type is trouble. + DAMV_NON_MELEE = DVORP_NONE | DAM_BASH, // launchers + DAMV_CRUSHING = DVORP_CRUSHING | DAM_BLUDGEON, + DAMV_SLICING = DVORP_SLICING | DAM_SLICE, + DAMV_PIERCING = DVORP_PIERCING | DAM_PIERCE, + DAMV_CHOPPING = DVORP_CHOPPING | DAM_SLICE, + DAMV_SLASHING = DVORP_SLASHING | DAM_WHIP, + DAMV_STABBING = DVORP_STABBING | DAM_PIERCE, + + DAM_MASK = 0x0fff, // strips vorpal specification + DAMV_MASK = 0xf000 // strips non-vorpal specification +}; + +enum wand_type +{ + WAND_FLAME, + WAND_FROST, + WAND_SLOWING, + WAND_HASTING, + WAND_MAGIC_DARTS, + WAND_HEALING, + WAND_PARALYSIS, + WAND_FIRE, + WAND_COLD, + WAND_CONFUSION, + WAND_INVISIBILITY, + WAND_DIGGING, + WAND_FIREBALL, + WAND_TELEPORTATION, + WAND_LIGHTNING, + WAND_POLYMORPH_OTHER, + WAND_ENSLAVEMENT, + WAND_DRAINING, + WAND_RANDOM_EFFECTS, + WAND_DISINTEGRATION, + NUM_WANDS +}; + +enum zap_count_type +{ + ZAPCOUNT_EMPTY = -1, + ZAPCOUNT_UNKNOWN = -2, + ZAPCOUNT_RECHARGED = -3, + ZAPCOUNT_MAX_CHARGED = -4 +}; + +#endif + diff --git a/crawl-ref/source/itemprop.h b/crawl-ref/source/itemprop.h index c0cd22966f..ac95f91f2d 100644 --- a/crawl-ref/source/itemprop.h +++ b/crawl-ref/source/itemprop.h @@ -8,571 +8,9 @@ #ifndef ITEMPROP_H #define ITEMPROP_H -struct bolt; +#include "itemprop-enum.h" -enum armour_type -{ - ARM_ROBE, // 0 - ARM_LEATHER_ARMOUR, - ARM_RING_MAIL, - ARM_SCALE_MAIL, - ARM_CHAIN_MAIL, - ARM_SPLINT_MAIL, // 5 - ARM_BANDED_MAIL, - ARM_PLATE_MAIL, - - ARM_CLOAK, - - ARM_CAP, - ARM_WIZARD_HAT, // 10 - ARM_HELMET, - - ARM_GLOVES, - - ARM_BOOTS, - - ARM_BUCKLER, - ARM_SHIELD, // 15 - ARM_LARGE_SHIELD, - ARM_MAX_RACIAL = ARM_LARGE_SHIELD, - - ARM_CRYSTAL_PLATE_MAIL, - - ARM_ANIMAL_SKIN, - - ARM_TROLL_HIDE, - ARM_TROLL_LEATHER_ARMOUR, // 20 - - ARM_DRAGON_HIDE, - ARM_DRAGON_ARMOUR, - ARM_ICE_DRAGON_HIDE, - ARM_ICE_DRAGON_ARMOUR, - ARM_STEAM_DRAGON_HIDE, // 25 - ARM_STEAM_DRAGON_ARMOUR, - ARM_MOTTLED_DRAGON_HIDE, - ARM_MOTTLED_DRAGON_ARMOUR, - ARM_STORM_DRAGON_HIDE, - ARM_STORM_DRAGON_ARMOUR, // 30 - ARM_GOLD_DRAGON_HIDE, - ARM_GOLD_DRAGON_ARMOUR, - ARM_SWAMP_DRAGON_HIDE, - ARM_SWAMP_DRAGON_ARMOUR, - - ARM_CENTAUR_BARDING, // 35 - ARM_NAGA_BARDING, - - NUM_ARMOURS // 37 -}; - -enum armour_property_type -{ - PARM_AC, // 0 - PARM_EVASION -}; - -enum boot_type // used in pluses2 -{ - TBOOT_BOOTS = 0, - TBOOT_NAGA_BARDING, - TBOOT_CENTAUR_BARDING, - NUM_BOOT_TYPES -}; - -const int SP_FORBID_EGO = -1; -const int SP_FORBID_BRAND = -1; - -enum brand_type // equivalent to (you.inv[].special or mitm[].special) % 30 -{ - SPWPN_FORBID_BRAND = -1, // -1 - SPWPN_NORMAL, // 0 - SPWPN_FLAMING, - SPWPN_FREEZING, - SPWPN_HOLY_WRATH, - SPWPN_ELECTROCUTION, - SPWPN_ORC_SLAYING, // 5 - SPWPN_DRAGON_SLAYING, - SPWPN_VENOM, - SPWPN_PROTECTION, - SPWPN_DRAINING, - SPWPN_SPEED, // 10 - SPWPN_VORPAL, - SPWPN_FLAME, // ranged, only - SPWPN_FROST, // ranged, only - SPWPN_VAMPIRICISM, - SPWPN_PAIN, // 15 - SPWPN_DISTORTION, - SPWPN_REACHING, - SPWPN_RETURNING, // 18 - SPWPN_CHAOS, - - MAX_PAN_LORD_BRANDS = SPWPN_CHAOS, - - SPWPN_CONFUSE, // 20 - SPWPN_PENETRATION, - SPWPN_REAPING, - SPWPN_DEBUG_RANDART = 25, // 25 - NUM_SPECIAL_WEAPONS, - SPWPN_DUMMY_CRUSHING // ONLY TEMPORARY USAGE -- converts to VORPAL -}; - -enum corpse_type -{ - CORPSE_BODY, // 0 - CORPSE_SKELETON -}; - -enum hands_reqd_type -{ - HANDS_ONE, - HANDS_HALF, - HANDS_TWO, - - HANDS_DOUBLE // not a level, marks double ended weapons (== half) -}; - -enum helmet_desc_type -{ - THELM_DESC_PLAIN = 0, - THELM_DESC_WINGED, - THELM_DESC_HORNED, - THELM_DESC_CRESTED, - THELM_DESC_PLUMED, - THELM_DESC_MAX_SOFT = THELM_DESC_PLUMED, - THELM_DESC_SPIKED, - THELM_DESC_VISORED, - THELM_DESC_GOLDEN, - THELM_NUM_DESCS -}; - -enum gloves_desc_type -{ - TGLOV_DESC_GLOVES = 0, - TGLOV_DESC_GAUNTLETS, - TGLOV_DESC_BRACERS -}; - -enum jewellery_type -{ - RING_FIRST_RING = 0, - - RING_REGENERATION = RING_FIRST_RING, // 0 - RING_PROTECTION, - RING_PROTECTION_FROM_FIRE, - RING_POISON_RESISTANCE, - RING_PROTECTION_FROM_COLD, - RING_STRENGTH, // 5 - RING_SLAYING, - RING_SEE_INVISIBLE, - RING_INVISIBILITY, - RING_HUNGER, - RING_TELEPORTATION, // 10 - RING_EVASION, - RING_SUSTAIN_ABILITIES, - RING_SUSTENANCE, - RING_DEXTERITY, - RING_INTELLIGENCE, // 15 - RING_WIZARDRY, - RING_MAGICAL_POWER, - RING_LEVITATION, - RING_LIFE_PROTECTION, - RING_PROTECTION_FROM_MAGIC, // 20 - RING_FIRE, - RING_ICE, - RING_TELEPORT_CONTROL, // 23 - - NUM_RINGS, // 24, keep as last ring; can overlap - // safely with first amulet. - - AMU_FIRST_AMULET = 35, - AMU_RAGE = AMU_FIRST_AMULET, // 35 - AMU_RESIST_SLOW, - AMU_CLARITY, - AMU_WARDING, - AMU_RESIST_CORROSION, - AMU_THE_GOURMAND, // 40 - AMU_CONSERVATION, - AMU_CONTROLLED_FLIGHT, - AMU_INACCURACY, - AMU_RESIST_MUTATION, - AMU_GUARDIAN_SPIRIT, - - NUM_JEWELLERY -}; - -enum launch_retval -{ - LRET_FUMBLED = 0, // must be left as 0 - LRET_LAUNCHED, - LRET_THROWN -}; - -enum misc_item_type -{ - MISC_BOTTLED_EFREET, // 0 - MISC_CRYSTAL_BALL_OF_SEEING, - MISC_AIR_ELEMENTAL_FAN, - MISC_LAMP_OF_FIRE, - MISC_STONE_OF_EARTH_ELEMENTALS, - MISC_LANTERN_OF_SHADOWS, - MISC_HORN_OF_GERYON, - MISC_BOX_OF_BEASTS, - MISC_CRYSTAL_BALL_OF_ENERGY, - MISC_EMPTY_EBONY_CASKET, - MISC_CRYSTAL_BALL_OF_FIXATION, - MISC_DISC_OF_STORMS, - - // pure decks - MISC_DECK_OF_ESCAPE, - MISC_DECK_OF_DESTRUCTION, - MISC_DECK_OF_DUNGEONS, - MISC_DECK_OF_SUMMONING, - MISC_DECK_OF_WONDERS, - MISC_DECK_OF_PUNISHMENT, - - // mixed decks - MISC_DECK_OF_WAR, - MISC_DECK_OF_CHANGES, - MISC_DECK_OF_DEFENCE, - - MISC_RUNE_OF_ZOT, - - NUM_MISCELLANY // mv: used for random generation -}; - -enum missile_type -{ - MI_DART, // 0 - MI_NEEDLE, - MI_ARROW, - MI_BOLT, - MI_JAVELIN, - MI_MAX_RACIAL = MI_JAVELIN, - - MI_STONE, // 5 - MI_LARGE_ROCK, - MI_SLING_BULLET, - MI_THROWING_NET, - - NUM_MISSILES, // 9 - MI_NONE // was MI_EGGPLANT... used for launch type detection -}; - -enum rune_type -{ - // Note: that runes DIS-SWAMP have the same numeric value as the branch - RUNE_DIS = BRANCH_DIS, - RUNE_GEHENNA = BRANCH_GEHENNA, - RUNE_COCYTUS = BRANCH_COCYTUS, - RUNE_TARTARUS = BRANCH_TARTARUS, - RUNE_SLIME_PITS = BRANCH_SLIME_PITS, - RUNE_VAULTS = BRANCH_VAULTS, - RUNE_SNAKE_PIT = BRANCH_SNAKE_PIT, - RUNE_ELVEN_HALLS = BRANCH_ELVEN_HALLS, // unused - RUNE_TOMB = BRANCH_TOMB, - RUNE_SWAMP = BRANCH_SWAMP, - RUNE_SHOALS = BRANCH_SHOALS, - - // Runes 50 and 51 are for Pandemonium (general demon) and the Abyss - RUNE_DEMONIC = 50, - RUNE_ABYSSAL, - - // Runes 60-63 correspond to the Pandemonium demonlords, - // and are equal to the corresponding vault. - RUNE_MNOLEG = 60, - RUNE_LOM_LOBON, - RUNE_CEREBOV, - RUNE_GLOORX_VLOQ, - NUM_RUNE_TYPES, // should always be last - RUNE_NONE -}; - -enum scroll_type -{ - SCR_IDENTIFY, // 0 - SCR_TELEPORTATION, - SCR_FEAR, - SCR_NOISE, - SCR_REMOVE_CURSE, - SCR_DETECT_CURSE, // 5 - SCR_SUMMONING, - SCR_ENCHANT_WEAPON_I, - SCR_ENCHANT_ARMOUR, - SCR_TORMENT, - SCR_RANDOM_USELESSNESS, // 10 - SCR_CURSE_WEAPON, - SCR_CURSE_ARMOUR, - SCR_IMMOLATION, - SCR_BLINKING, - SCR_PAPER, // 15 - SCR_MAGIC_MAPPING, - SCR_FOG, - SCR_ACQUIREMENT, - SCR_ENCHANT_WEAPON_II, - SCR_VORPALISE_WEAPON, // 20 - SCR_RECHARGING, - SCR_ENCHANT_WEAPON_III, - SCR_HOLY_WORD, - SCR_VULNERABILITY, - SCR_SILENCE, // 25 - NUM_SCROLLS -}; - -enum special_armour_type -{ - SPARM_FORBID_EGO = -1, // -1 - SPARM_NORMAL, // 0 - SPARM_RUNNING, - SPARM_FIRE_RESISTANCE, - SPARM_COLD_RESISTANCE, - SPARM_POISON_RESISTANCE, - SPARM_SEE_INVISIBLE, // 5 - SPARM_DARKNESS, - SPARM_STRENGTH, - SPARM_DEXTERITY, - SPARM_INTELLIGENCE, - SPARM_PONDEROUSNESS, // 10 - SPARM_LEVITATION, - SPARM_MAGIC_RESISTANCE, - SPARM_PROTECTION, - SPARM_STEALTH, - SPARM_RESISTANCE, // 15 - SPARM_POSITIVE_ENERGY, - SPARM_ARCHMAGI, - SPARM_PRESERVATION, - SPARM_REFLECTION, - SPARM_SPIRIT_SHIELD, // 20 - SPARM_ARCHERY, - NUM_SPECIAL_ARMOURS // 22 -}; - -enum special_missile_type // to separate from weapons in general {dlb} -{ - SPMSL_FORBID_BRAND = -1, // -1 - SPMSL_NORMAL, // 0 - SPMSL_FLAME, - SPMSL_FROST, - SPMSL_POISONED, - SPMSL_CURARE, - SPMSL_RETURNING, // 5 - SPMSL_CHAOS, - SPMSL_PENETRATION, - SPMSL_REAPING, - SPMSL_DISPERSAL, - SPMSL_EXPLODING, // 10 - SPMSL_STEEL, - SPMSL_SILVER, - SPMSL_ELECTRIC, - NUM_SPECIAL_MISSILES // 13 -}; - -enum special_ring_type // jewellery mitm[].special values -{ - SPRING_RANDART = 200, - SPRING_UNRANDART = 201 -}; - -enum stave_type -{ - // staves - STAFF_WIZARDRY = 0, - STAFF_POWER, - STAFF_FIRE, - STAFF_COLD, - STAFF_POISON, - STAFF_ENERGY, - STAFF_DEATH, - STAFF_CONJURATION, - STAFF_ENCHANTMENT, - STAFF_SUMMONING, - STAFF_AIR, - STAFF_EARTH, - STAFF_CHANNELING, // 12 - // rods - STAFF_FIRST_ROD, - STAFF_SMITING = STAFF_FIRST_ROD, - STAFF_SPELL_SUMMONING, - STAFF_DESTRUCTION_I, - STAFF_DESTRUCTION_II, - STAFF_DESTRUCTION_III, - STAFF_DESTRUCTION_IV, - STAFF_WARDING, - STAFF_DISCOVERY, - STAFF_DEMONOLOGY, - STAFF_STRIKING, - STAFF_VENOM, // 23 - NUM_STAVES // must remain last member {dlb} -}; - -enum weapon_type -{ - WPN_CLUB, // 0 - WPN_WHIP, - WPN_HAMMER, - WPN_MACE, - WPN_FLAIL, - WPN_MORNINGSTAR, // 5 - WPN_SPIKED_FLAIL, - WPN_DIRE_FLAIL, - WPN_EVENINGSTAR, - WPN_GREAT_MACE, - - WPN_DAGGER, // 10 - WPN_QUICK_BLADE, - WPN_SHORT_SWORD, - WPN_SABRE, - - WPN_FALCHION, - WPN_LONG_SWORD, // 15 - WPN_SCIMITAR, - WPN_GREAT_SWORD, - - WPN_HAND_AXE, - WPN_WAR_AXE, - WPN_BROAD_AXE, // 20 - WPN_BATTLEAXE, - WPN_EXECUTIONERS_AXE, - - WPN_SPEAR, - WPN_TRIDENT, - WPN_HALBERD, // 25 - WPN_GLAIVE, - WPN_BARDICHE, - - WPN_BLOWGUN, - WPN_HAND_CROSSBOW, - WPN_CROSSBOW, // 30 - WPN_BOW, - WPN_LONGBOW, - WPN_MAX_RACIAL = WPN_LONGBOW, - - WPN_ANKUS, - WPN_DEMON_WHIP, - WPN_GIANT_CLUB, // 35 - WPN_GIANT_SPIKED_CLUB, - - WPN_KNIFE, - - WPN_KATANA, - WPN_DEMON_BLADE, - WPN_DOUBLE_SWORD, // 40 - WPN_TRIPLE_SWORD, - - WPN_DEMON_TRIDENT, - WPN_SCYTHE, - - WPN_QUARTERSTAFF, - WPN_LAJATANG, // 45 - - WPN_SLING, - - WPN_MAX_NONBLESSED = WPN_SLING, - - WPN_BLESSED_FALCHION, - WPN_BLESSED_LONG_SWORD, - WPN_BLESSED_SCIMITAR, - WPN_BLESSED_GREAT_SWORD, // 50 - - WPN_BLESSED_KATANA, - WPN_BLESSED_EUDEMON_BLADE, - WPN_BLESSED_DOUBLE_SWORD, - WPN_BLESSED_TRIPLE_SWORD, - - NUM_WEAPONS, // 55 - must be last regular member {dlb} - -// special cases - WPN_UNARMED = 500, // 500 - WPN_UNKNOWN = 1000, // 1000 - WPN_RANDOM -}; - -enum weapon_description_type -{ - DWPN_PLAIN = 0, // 0 - added to round out enum {dlb} - DWPN_RUNED = 1, // 1 - DWPN_GLOWING, - DWPN_ORCISH, - DWPN_ELVEN, - DWPN_DWARVEN // 5 -}; - -enum weapon_property_type -{ - PWPN_DAMAGE, // 0 - PWPN_HIT, - PWPN_SPEED, - PWPN_ACQ_WEIGHT -}; - -enum vorpal_damage_type -{ - // These are the types of damage a weapon can do. You can set more - // than one of these. - DAM_BASH = 0x0000, // non-melee weapon blugeoning - DAM_BLUDGEON = 0x0001, // crushing - DAM_SLICE = 0x0002, // slicing/chopping - DAM_PIERCE = 0x0004, // stabbing/piercing - DAM_WHIP = 0x0008, // whip slashing (no butcher) - DAM_MAX_TYPE = DAM_WHIP, - - // These are used for vorpal weapon descriptions. You shouldn't set - // more than one of these. - DVORP_NONE = 0x0000, // used for non-melee weapons - DVORP_CRUSHING = 0x1000, - DVORP_SLICING = 0x2000, - DVORP_PIERCING = 0x3000, - DVORP_CHOPPING = 0x4000, // used for axes - DVORP_SLASHING = 0x5000, // used for whips - DVORP_STABBING = 0x6000, // used for knives/daggers - - DVORP_CLAWING = 0x7000, // claw damage - DVORP_TENTACLE = 0x8000, // tentacle damage - - // These are shortcuts to tie vorpal/damage types for easy setting... - // as above, setting more than one vorpal type is trouble. - DAMV_NON_MELEE = DVORP_NONE | DAM_BASH, // launchers - DAMV_CRUSHING = DVORP_CRUSHING | DAM_BLUDGEON, - DAMV_SLICING = DVORP_SLICING | DAM_SLICE, - DAMV_PIERCING = DVORP_PIERCING | DAM_PIERCE, - DAMV_CHOPPING = DVORP_CHOPPING | DAM_SLICE, - DAMV_SLASHING = DVORP_SLASHING | DAM_WHIP, - DAMV_STABBING = DVORP_STABBING | DAM_PIERCE, - - DAM_MASK = 0x0fff, // strips vorpal specification - DAMV_MASK = 0xf000 // strips non-vorpal specification -}; - -enum wand_type -{ - WAND_FLAME, - WAND_FROST, - WAND_SLOWING, - WAND_HASTING, - WAND_MAGIC_DARTS, - WAND_HEALING, - WAND_PARALYSIS, - WAND_FIRE, - WAND_COLD, - WAND_CONFUSION, - WAND_INVISIBILITY, - WAND_DIGGING, - WAND_FIREBALL, - WAND_TELEPORTATION, - WAND_LIGHTNING, - WAND_POLYMORPH_OTHER, - WAND_ENSLAVEMENT, - WAND_DRAINING, - WAND_RANDOM_EFFECTS, - WAND_DISINTEGRATION, - NUM_WANDS -}; - -enum zap_count_type -{ - ZAPCOUNT_EMPTY = -1, - ZAPCOUNT_UNKNOWN = -2, - ZAPCOUNT_RECHARGED = -3, - ZAPCOUNT_MAX_CHARGED = -4 -}; +struct bolt; void init_properties(void); diff --git a/crawl-ref/source/l_food.cc b/crawl-ref/source/l_food.cc index 90fc6e1d72..2467b877a7 100644 --- a/crawl-ref/source/l_food.cc +++ b/crawl-ref/source/l_food.cc @@ -5,6 +5,7 @@ #include "food.h" #include "invent.h" +#include "itemprop.h" #include "items.h" #include "player.h" diff --git a/crawl-ref/source/makeitem.h b/crawl-ref/source/makeitem.h index 5445467c4b..d434143058 100644 --- a/crawl-ref/source/makeitem.h +++ b/crawl-ref/source/makeitem.h @@ -7,7 +7,7 @@ #ifndef MAKEITEM_H #define MAKEITEM_H -#include "itemprop.h" +#include "itemprop-enum.h" enum item_make_species_type { diff --git a/crawl-ref/source/mon-stuff.cc b/crawl-ref/source/mon-stuff.cc index 07890d5236..a2c2f9ac5a 100644 --- a/crawl-ref/source/mon-stuff.cc +++ b/crawl-ref/source/mon-stuff.cc @@ -23,6 +23,7 @@ #include "godabil.h" #include "hiscores.h" #include "itemname.h" +#include "itemprop.h" #include "items.h" #include "kills.h" #include "message.h" diff --git a/crawl-ref/source/newgame.h b/crawl-ref/source/newgame.h index 3c1b65abd8..6a93f3958b 100644 --- a/crawl-ref/source/newgame.h +++ b/crawl-ref/source/newgame.h @@ -10,7 +10,7 @@ #include "enum.h" -#include "itemprop.h" +#include "itemprop-enum.h" enum death_knight_type { diff --git a/crawl-ref/source/player.h b/crawl-ref/source/player.h index 432a104731..06b65d2d1f 100644 --- a/crawl-ref/source/player.h +++ b/crawl-ref/source/player.h @@ -9,7 +9,7 @@ #define PLAYER_H #include "actor.h" -#include "itemprop.h" +#include "itemprop-enum.h" #include "species.h" #include diff --git a/crawl-ref/source/show.cc b/crawl-ref/source/show.cc index dbcd0c85c4..a08deaad8c 100644 --- a/crawl-ref/source/show.cc +++ b/crawl-ref/source/show.cc @@ -9,6 +9,7 @@ #include "env.h" #include "fprop.h" #include "halo.h" +#include "itemprop.h" #include "mon-util.h" #include "monster.h" #include "options.h" diff --git a/crawl-ref/source/spells2.h b/crawl-ref/source/spells2.h index 74111a2434..efa011c3ba 100644 --- a/crawl-ref/source/spells2.h +++ b/crawl-ref/source/spells2.h @@ -8,7 +8,7 @@ #define SPELLS2_H #include "enum.h" -#include "itemprop.h" +#include "itemprop-enum.h" struct dist; diff --git a/crawl-ref/source/spells3.h b/crawl-ref/source/spells3.h index a73cdf88d3..6b2cb7dad4 100644 --- a/crawl-ref/source/spells3.h +++ b/crawl-ref/source/spells3.h @@ -8,7 +8,7 @@ #ifndef SPELLS3_H #define SPELLS3_H -#include "itemprop.h" // from _raise_remains() +#include "itemprop-enum.h" struct dist; struct bolt; diff --git a/crawl-ref/source/wiz-fsim.cc b/crawl-ref/source/wiz-fsim.cc index 31d052a268..e998abb7d4 100644 --- a/crawl-ref/source/wiz-fsim.cc +++ b/crawl-ref/source/wiz-fsim.cc @@ -13,6 +13,7 @@ #include "beam.h" #include "dbg-util.h" #include "fight.h" +#include "itemprop.h" #include "items.h" #include "item_use.h" #include "it_use2.h" diff --git a/crawl-ref/source/wiz-item.cc b/crawl-ref/source/wiz-item.cc index bae01bc91a..f7e5d81e11 100644 --- a/crawl-ref/source/wiz-item.cc +++ b/crawl-ref/source/wiz-item.cc @@ -17,6 +17,7 @@ #include "dbg-util.h" #include "decks.h" #include "effects.h" +#include "itemprop.h" #include "items.h" #include "item_use.h" #include "it_use2.h" diff --git a/crawl-ref/source/xom.cc b/crawl-ref/source/xom.cc index f9725dcc31..b79f99207f 100644 --- a/crawl-ref/source/xom.cc +++ b/crawl-ref/source/xom.cc @@ -20,6 +20,7 @@ #include "feature.h" #include "goditem.h" #include "it_use2.h" +#include "itemprop.h" #include "items.h" #include "kills.h" #include "los.h" -- cgit v1.2.3-54-g00ecf