summaryrefslogtreecommitdiffstats
path: root/trunk/source/enum.h
diff options
context:
space:
mode:
authorpeterb12 <peterb12@c06c8d41-db1a-0410-9941-cceddc491573>2005-07-21 02:34:44 +0000
committerpeterb12 <peterb12@c06c8d41-db1a-0410-9941-cceddc491573>2005-07-21 02:34:44 +0000
commit673bdae75485d14f759af597c3c62b99601f9a43 (patch)
tree368103f29fe0ce5dcf98060d9b5faa04590085fb /trunk/source/enum.h
parent7e900be770db24b0405fd2162491c405a425873e (diff)
downloadcrawl-ref-673bdae75485d14f759af597c3c62b99601f9a43.tar.gz
crawl-ref-673bdae75485d14f759af597c3c62b99601f9a43.zip
Initial revision
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@3 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'trunk/source/enum.h')
-rw-r--r--trunk/source/enum.h3116
1 files changed, 3116 insertions, 0 deletions
diff --git a/trunk/source/enum.h b/trunk/source/enum.h
new file mode 100644
index 0000000000..a1b76e0422
--- /dev/null
+++ b/trunk/source/enum.h
@@ -0,0 +1,3116 @@
+/*
+ * File: enum.h
+ * Summary: Global (ick) enums.
+ * Written by: Daniel Ligon
+ *
+ * Change History (most recent first):
+ *
+ * <11> 7 Aug 01 MV Changed MSLOT_UNASSIGNED_I to MSLOT_MISCELLANY
+ * added NUM_MISCELLANY, changed MONS_ANOTHER_
+ * LAVA_THING to MONS_SALAMANDER
+ * <10> 7/29/00 JDJ Changed NUM_SPELL_TYPES to 14 (from 32767!).
+ * 24jun2000 jmf Changed comment spacing so stuff fit in 80
+ * columns; deleted some leading numbers in
+ * comments (reasoning as above).
+ * Also removed many "must be last" comments,
+ * esp. where less-than-accurate.
+ * <9> 10jan2000 dlb extensive - see changes.340 S
+ * <8> 04nov1999 cdl added killed_by
+ * <7> 29sep1999 BCR Added comments showing where uniques are
+ * <6> 25sep1999 CDL Added commands
+ * <5> 09sep1999 BWR Removed Great Swords skill
+ * <4> 06aug1999 BWR added branch and level types
+ * <3> 02jun1999 DML beams, clouds, ench, ms, kill,
+ * other minor changes
+ * <2> 26may1999 JDJ Added a header guard.
+ * <1> --/--/-- CDL Created
+ */
+
+
+#ifndef ENUM_H
+#define ENUM_H
+
+enum ABILITIES
+{
+ ABIL_NON_ABILITY = -1,
+ ABIL_SPIT_POISON = 1, // 1
+ ABIL_GLAMOUR,
+ ABIL_MAPPING,
+ ABIL_TELEPORTATION,
+ ABIL_BREATHE_FIRE, // 5
+ ABIL_BLINK,
+ ABIL_BREATHE_FROST,
+ ABIL_BREATHE_POISON,
+ ABIL_BREATHE_LIGHTNING,
+ ABIL_SPIT_ACID, // 10
+ ABIL_BREATHE_POWER,
+ ABIL_EVOKE_BERSERK,
+ ABIL_BREATHE_STICKY_FLAME,
+ ABIL_BREATHE_STEAM,
+ ABIL_FLY, // 15
+ ABIL_SUMMON_MINOR_DEMON,
+ ABIL_SUMMON_DEMON,
+ ABIL_HELLFIRE,
+ ABIL_TORMENT,
+ ABIL_RAISE_DEAD, // 20
+ ABIL_CONTROL_DEMON,
+ ABIL_TO_PANDEMONIUM,
+ ABIL_CHANNELING,
+ ABIL_THROW_FLAME,
+ ABIL_THROW_FROST, // 25
+ ABIL_BOLT_OF_DRAINING,
+ ABIL_BREATHE_HELLFIRE,
+ ABIL_FLY_II,
+ ABIL_DELAYED_FIREBALL,
+ ABIL_MUMMY_RESTORATION, // 30
+ ABIL_EVOKE_MAPPING,
+ ABIL_EVOKE_TELEPORTATION,
+ ABIL_EVOKE_BLINK, // 33
+ ABIL_EVOKE_TURN_INVISIBLE = 51, // 51
+ ABIL_EVOKE_TURN_VISIBLE,
+ ABIL_EVOKE_LEVITATE,
+ ABIL_EVOKE_STOP_LEVITATING,
+ ABIL_END_TRANSFORMATION, // 55
+ ABIL_ZIN_REPEL_UNDEAD = 110, // 110
+ ABIL_ZIN_HEALING,
+ ABIL_ZIN_PESTILENCE,
+ ABIL_ZIN_HOLY_WORD,
+ ABIL_ZIN_SUMMON_GUARDIAN, // 114
+ ABIL_TSO_REPEL_UNDEAD = 120, // 120
+ ABIL_TSO_SMITING,
+ ABIL_TSO_ANNIHILATE_UNDEAD,
+ ABIL_TSO_THUNDERBOLT,
+ ABIL_TSO_SUMMON_DAEVA, // 124
+ ABIL_KIKU_RECALL_UNDEAD_SLAVES = 130, // 130
+ ABIL_KIKU_ENSLAVE_UNDEAD = 132, // 132
+ ABIL_KIKU_INVOKE_DEATH, // 133
+ ABIL_YRED_ANIMATE_CORPSE = 140, // 140
+ ABIL_YRED_RECALL_UNDEAD,
+ ABIL_YRED_ANIMATE_DEAD,
+ ABIL_YRED_DRAIN_LIFE,
+ ABIL_YRED_CONTROL_UNDEAD, // 144
+ ABIL_VEHUMET_CHANNEL_ENERGY = 160, // 160
+ ABIL_OKAWARU_MIGHT = 170, // 170
+ ABIL_OKAWARU_HEALING,
+ ABIL_OKAWARU_HASTE, // 172
+ ABIL_MAKHLEB_MINOR_DESTRUCTION = 180, // 180
+ ABIL_MAKHLEB_LESSER_SERVANT_OF_MAKHLEB,
+ ABIL_MAKHLEB_MAJOR_DESTRUCTION,
+ ABIL_MAKHLEB_GREATER_SERVANT_OF_MAKHLEB, // 183
+ ABIL_SIF_MUNA_FORGET_SPELL = 190, // 190
+ ABIL_TROG_BERSERK = 200, // 200
+ ABIL_TROG_MIGHT,
+ ABIL_TROG_HASTE_SELF, // 202
+ ABIL_ELYVILON_LESSER_HEALING = 220, // 220
+ ABIL_ELYVILON_PURIFICATION,
+ ABIL_ELYVILON_HEALING,
+ ABIL_ELYVILON_RESTORATION,
+ ABIL_ELYVILON_GREATER_HEALING, // 224
+ ABIL_CHARM_SNAKE,
+ ABIL_TRAN_SERPENT_OF_HELL,
+ ABIL_ROTTING,
+ ABIL_TORMENT_II,
+ ABIL_SHUGGOTH_SEED,
+ ABIL_RENOUNCE_RELIGION = 250 // 250
+};
+
+enum ABILITY_FLAGS
+{
+ ABFLAG_NONE = 0x00000000,
+ ABFLAG_BREATH = 0x00000001, // ability uses DUR_BREATH_WEAPON
+ ABFLAG_DELAY = 0x00000002, // ability has its own delay (ie glamour)
+ ABFLAG_PAIN = 0x00000004, // ability must hurt player (ie torment)
+ ABFLAG_EXHAUSTION = 0x00000008, // fails if you.exhausted
+ ABFLAG_INSTANT = 0x00000010, // doesn't take time to use
+ ABFLAG_PERMANENT_HP = 0x00000020, // costs permanent HPs
+ ABFLAG_PERMANENT_MP = 0x00000040 // costs permanent MPs
+};
+
+enum AMMUNITION_DESCRIPTIONS
+{
+ DAMMO_ORCISH = 3, // 3
+ DAMMO_ELVEN,
+ DAMMO_DWARVEN // 5
+};
+
+enum ARMOUR
+{
+ 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_SHIELD,
+ ARM_CLOAK,
+ ARM_HELMET, // 10
+ ARM_GLOVES,
+ ARM_BOOTS,
+ ARM_BUCKLER,
+ ARM_LARGE_SHIELD,
+ ARM_DRAGON_HIDE, // 15
+ ARM_TROLL_HIDE,
+ ARM_CRYSTAL_PLATE_MAIL,
+ ARM_DRAGON_ARMOUR,
+ ARM_TROLL_LEATHER_ARMOUR,
+ ARM_ICE_DRAGON_HIDE, // 20
+ ARM_ICE_DRAGON_ARMOUR,
+ ARM_STEAM_DRAGON_HIDE,
+ ARM_STEAM_DRAGON_ARMOUR,
+ ARM_MOTTLED_DRAGON_HIDE,
+ ARM_MOTTLED_DRAGON_ARMOUR, // 25
+ ARM_STORM_DRAGON_HIDE,
+ ARM_STORM_DRAGON_ARMOUR,
+ ARM_GOLD_DRAGON_HIDE,
+ ARM_GOLD_DRAGON_ARMOUR,
+ ARM_ANIMAL_SKIN, // 30
+ ARM_SWAMP_DRAGON_HIDE,
+ ARM_SWAMP_DRAGON_ARMOUR,
+ NUM_ARMOURS
+};
+
+enum ARMOUR_DESCRIPTIONS
+{
+ DARM_PLAIN, // added for the heck of it, 15 Apr 2000 {dlb}
+ DARM_EMBROIDERED_SHINY = 1, // which it is dependent upon armour subtype {dlb}
+ DARM_RUNED,
+ DARM_GLOWING,
+ DARM_ELVEN,
+ DARM_DWARVEN, // 5
+ DARM_ORCISH
+};
+
+enum ARMOUR_PROPERTIES
+{
+ PARM_AC, // 0
+ PARM_EVASION
+};
+
+// Note: currently the size of the attr array is hard coded at 30! ick! -- bwr
+enum ATTRIBUTES
+{
+ ATTR_DIVINE_LIGHTNING_PROTECTION, // 0
+ // ATTR_SPEC_AIR, // don't use this!
+ // ATTR_SPEC_EARTH,
+ ATTR_CONTROL_TELEPORT = 3,
+ ATTR_WALK_SLOWLY,
+ ATTR_TRANSFORMATION, // 5
+ ATTR_CARD_COUNTDOWN,
+ ATTR_CARD_TABLE,
+ ATTR_NUM_DEMONIC_POWERS,
+ ATTR_WAS_SILENCED, //jmf: added for silenced messages
+ ATTR_GOD_GIFT_COUNT, //jmf: added to help manage god gift giving
+ ATTR_EXPENSIVE_FLIGHT, //jmf: flag for "manual flight" (ie wings)
+ ATTR_DEMONIC_SCALES, //jmf: remember which kind of scales to improve
+ ATTR_WALLS,
+ ATTR_LAST_WALLS,
+ ATTR_DELAYED_FIREBALL, // bwr: reserve fireballs
+ NUM_ATTRIBUTES // must always remain last member {dlb}
+};
+
+enum BANDS
+{
+ BAND_NO_BAND = 0,
+ BAND_KOBOLDS = 1,
+ BAND_ORCS,
+ BAND_ORC_KNIGHT,
+ BAND_KILLER_BEES,
+ BAND_FLYING_SKULLS, // 5
+ BAND_SLIME_CREATURES,
+ BAND_YAKS,
+ BAND_UGLY_THINGS,
+ BAND_HELL_HOUNDS,
+ BAND_JACKALS, // 10
+ BAND_HELL_KNIGHTS,
+ BAND_ORC_HIGH_PRIEST,
+ BAND_GNOLLS, // 13
+ BAND_BUMBLEBEES = 16,
+ BAND_CENTAURS,
+ BAND_YAKTAURS,
+ BAND_INSUBSTANTIAL_WISPS,
+ BAND_OGRE_MAGE, // 20
+ BAND_DEATH_YAKS,
+ BAND_NECROMANCER,
+ BAND_BALRUG,
+ BAND_CACODEMON,
+ BAND_EXECUTIONER, // 25
+ BAND_HELLWING,
+ BAND_DEEP_ELF_FIGHTER,
+ BAND_DEEP_ELF_KNIGHT,
+ BAND_DEEP_ELF_HIGH_PRIEST,
+ BAND_KOBOLD_DEMONOLOGIST, // 30
+ BAND_NAGAS,
+ BAND_WAR_DOGS,
+ BAND_GREY_RATS,
+ BAND_GREEN_RATS,
+ BAND_ORANGE_RATS, // 35
+ BAND_SHEEP,
+ BAND_GHOULS,
+ BAND_DEEP_TROLLS,
+ BAND_HOGS,
+ BAND_HELL_HOGS, // 40
+ BAND_GIANT_MOSQUITOES,
+ BAND_BOGGARTS,
+ BAND_BLINK_FROGS,
+ BAND_SKELETAL_WARRIORS, // 44
+ NUM_BANDS // always last
+};
+
+enum BEAMS // beam[].flavour
+{
+ BEAM_MISSILE, // 0
+ BEAM_MMISSILE, // 1 - and similarly unresistable things
+ BEAM_FIRE,
+ BEAM_COLD,
+ BEAM_MAGIC,
+ BEAM_ELECTRICITY, // 5
+ BEAM_POISON,
+ BEAM_NEG,
+ BEAM_ACID, // 8
+ BEAM_EXPLOSION = 10, // 10
+ BEAM_SPORE, // 11
+ BEAM_POISON_ARROW, // 12
+ BEAM_HELLFIRE, // 13 - found 11jan2000 {dlb}
+ BEAM_ENERGY = 17,
+ BEAM_HOLY = 18, // 18 - aka beam of cleansing, golden flame
+ BEAM_FRAG,
+ BEAM_LAVA, // 20
+ BEAM_BACKLIGHT,
+ BEAM_SLEEP,
+ BEAM_ICE, // 23
+ BEAM_NUKE = 27, // 27
+ BEAM_RANDOM, // currently translates into FIRE..ACID
+
+ // These used to be handled in the colour field:
+ BEAM_SLOW, // BLACK
+ BEAM_HASTE, // BLUE
+ BEAM_HEALING, // GREEN
+ BEAM_PARALYSIS, // CYAN
+ BEAM_CONFUSION, // RED
+ BEAM_INVISIBILITY, // MAGENTA
+ BEAM_DIGGING, // BROWN
+ BEAM_TELEPORT, // LIGHTGREY
+ BEAM_POLYMORPH, // DARKGREY
+ BEAM_CHARM, // LIGHTBLUE
+ BEAM_BANISH, // LIGHTGREEN
+ BEAM_DEGENERATE, // LIGHTCYAN
+ BEAM_ENSLAVE_UNDEAD, // LIGHTRED
+ BEAM_PAIN, // LIGHTMAGENTA
+ BEAM_DISPEL_UNDEAD, // YELLOW
+ BEAM_DISINTEGRATION, // WHITE
+ BEAM_ENSLAVE_DEMON, // colour "16"
+
+ // new beams for evaporate
+ BEAM_POTION_STINKING_CLOUD,
+ BEAM_POTION_POISON,
+ BEAM_POTION_MIASMA,
+ BEAM_POTION_STEAM,
+ BEAM_POTION_FIRE,
+ BEAM_POTION_COLD,
+ BEAM_POTION_BLACK_SMOKE,
+ BEAM_POTION_BLUE_SMOKE,
+ BEAM_POTION_PURP_SMOKE,
+ BEAM_POTION_RANDOM
+};
+
+enum BOOKS
+{
+ BOOK_MINOR_MAGIC_I, // 0
+ BOOK_MINOR_MAGIC_II,
+ BOOK_MINOR_MAGIC_III,
+ BOOK_CONJURATIONS_I,
+ BOOK_CONJURATIONS_II,
+ BOOK_FLAMES, // 5
+ BOOK_FROST,
+ BOOK_SUMMONINGS,
+ BOOK_FIRE,
+ BOOK_ICE,
+ BOOK_SURVEYANCES, // 10
+ BOOK_SPATIAL_TRANSLOCATIONS,
+ BOOK_ENCHANTMENTS,
+ BOOK_YOUNG_POISONERS,
+ BOOK_TEMPESTS,
+ BOOK_DEATH, // 15
+ BOOK_HINDERANCE,
+ BOOK_CHANGES,
+ BOOK_TRANSFIGURATIONS,
+ BOOK_PRACTICAL_MAGIC,
+ BOOK_WAR_CHANTS, // 20
+ BOOK_CLOUDS,
+ BOOK_HEALING,
+ BOOK_NECROMANCY,
+ BOOK_NECRONOMICON,
+ BOOK_CALLINGS, // 25
+ BOOK_CHARMS,
+ BOOK_DEMONOLOGY,
+ BOOK_AIR,
+ BOOK_SKY,
+ BOOK_DIVINATIONS, // 30
+ BOOK_WARP,
+ BOOK_ENVENOMATIONS,
+ BOOK_ANNIHILATIONS,
+ BOOK_UNLIFE,
+ BOOK_DESTRUCTION, // 35
+ BOOK_CONTROL,
+ BOOK_MUTATIONS,
+ BOOK_TUKIMA,
+ BOOK_GEOMANCY,
+ BOOK_EARTH, // 40
+ BOOK_MANUAL,
+ BOOK_WIZARDRY,
+ BOOK_POWER,
+ BOOK_CANTRIPS, //jmf: 04jan2000
+ BOOK_PARTY_TRICKS, // 45 //jmf: 04jan2000
+ BOOK_BEASTS,
+ BOOK_STALKING, // renamed -- assassination was confusing -- bwr
+ NUM_BOOKS
+};
+
+enum BRANCHES // you.where_are_you
+{
+ BRANCH_MAIN_DUNGEON, // 0
+ BRANCH_DIS,
+ BRANCH_GEHENNA,
+ BRANCH_VESTIBULE_OF_HELL,
+ BRANCH_COCYTUS,
+ BRANCH_TARTARUS, // 5
+ BRANCH_INFERNO, // unimplemented
+ BRANCH_THE_PIT, // 7 // unimplemented
+ BRANCH_ORCISH_MINES = 10, // 10
+ BRANCH_HIVE,
+ BRANCH_LAIR,
+ BRANCH_SLIME_PITS,
+ BRANCH_VAULTS,
+ BRANCH_CRYPT, // 15
+ BRANCH_HALL_OF_BLADES,
+ BRANCH_HALL_OF_ZOT,
+ BRANCH_ECUMENICAL_TEMPLE,
+ BRANCH_SNAKE_PIT,
+ BRANCH_ELVEN_HALLS, // 20
+ BRANCH_TOMB,
+ BRANCH_SWAMP
+};
+
+enum BRANCH_STAIRS // you.branch_stairs[] - 10 less than BRANCHES {dlb}
+{
+ STAIRS_ORCISH_MINES, // 0
+ STAIRS_HIVE,
+ STAIRS_LAIR,
+ STAIRS_SLIME_PITS,
+ STAIRS_VAULTS,
+ STAIRS_CRYPT, // 5
+ STAIRS_HALL_OF_BLADES,
+ STAIRS_HALL_OF_ZOT,
+ STAIRS_ECUMENICAL_TEMPLE,
+ STAIRS_SNAKE_PIT,
+ STAIRS_ELVEN_HALLS, // 10
+ STAIRS_TOMB,
+ STAIRS_SWAMP
+};
+
+enum BURDEN_STATES // you.burden_state
+{
+ BS_UNENCUMBERED, // 0
+ BS_ENCUMBERED = 2, // 2
+ BS_OVERLOADED = 5 // 5
+};
+
+enum CANNED_MESSAGES // canned_msg() - unsigned char
+{
+ MSG_SOMETHING_APPEARS, // 0
+ MSG_NOTHING_HAPPENS,
+ MSG_YOU_RESIST,
+ MSG_TOO_BERSERK,
+ MSG_NOTHING_CARRIED,
+ MSG_CANNOT_DO_YET,
+ MSG_OK,
+ MSG_UNTHINKING_ACT,
+ MSG_SPELL_FIZZLES,
+ MSG_HUH,
+ MSG_EMPTY_HANDED
+};
+
+enum CLOUD_TYPES // cloud_type[], place_cloud(), big_cloud()
+{
+ CLOUD_NONE, // 0
+ CLOUD_FIRE, // 1
+ CLOUD_STINK, // 2
+ CLOUD_COLD, // 3
+ CLOUD_POISON, // 4
+ CLOUD_GREY_SMOKE = 5, // 5: found 11jan2000 {dlb}
+ CLOUD_BLUE_SMOKE = 6, // 6: found 11jan2000 {dlb}
+ CLOUD_PURP_SMOKE = 7, // was: CLOUD_ENERGY and wrong 19jan2000 {dlb}
+ CLOUD_STEAM, // 8
+ CLOUD_MIASMA = 9, // 9: found 11jan2000 {dlb}
+ CLOUD_BLACK_SMOKE = 10, //was: CLOUD_STICKY_FLAME and wrong 19jan2000 {dlb}
+ CLOUD_DEBUGGING = 99, // 99: used once as 'nonexistent cloud' {dlb}
+// if env.cloud_type > 100, it is a monster's cloud {dlb}
+ CLOUD_FIRE_MON = 101, // 101: found 11jan2000 {dlb}
+ CLOUD_STINK_MON = 102, // 102: found 11jan2000 {dlb}
+ CLOUD_COLD_MON = 103, // 103: added 11jan2000 {dlb}
+ CLOUD_POISON_MON = 104, // 104
+ CLOUD_GREY_SMOKE_MON = 105, // 105: found 11jan2000 {dlb}
+ CLOUD_BLUE_SMOKE_MON = 106, // 106: found 11jan2000 {dlb}
+ CLOUD_PURP_SMOKE_MON = 107, // 107:
+ CLOUD_STEAM_MON = 108, // 108: added 11jan2000 {dlb}
+ CLOUD_MIASMA_MON = 109, // 109: added 11jan2000 {dlb}
+ CLOUD_BLACK_SMOKE_MON = 110 // 110: added 19jan2000 {dlb}
+};
+
+enum COMMANDS
+{
+ CMD_NO_CMD = 1000, // 1000
+ CMD_MOVE_NOWHERE,
+ CMD_MOVE_LEFT,
+ CMD_MOVE_DOWN,
+ CMD_MOVE_UP,
+ CMD_MOVE_RIGHT,
+ CMD_MOVE_UP_LEFT,
+ CMD_MOVE_DOWN_LEFT,
+ CMD_MOVE_UP_RIGHT,
+ CMD_MOVE_DOWN_RIGHT,
+ CMD_RUN_LEFT, // 1000 + 10
+ CMD_RUN_DOWN,
+ CMD_RUN_UP,
+ CMD_RUN_RIGHT,
+ CMD_RUN_UP_LEFT,
+ CMD_RUN_DOWN_LEFT,
+ CMD_RUN_UP_RIGHT,
+ CMD_RUN_DOWN_RIGHT,
+ CMD_OPEN_DOOR_LEFT,
+ CMD_OPEN_DOOR_DOWN,
+ CMD_OPEN_DOOR_UP, // 1000 + 20
+ CMD_OPEN_DOOR_RIGHT,
+ CMD_OPEN_DOOR_UP_LEFT,
+ CMD_OPEN_DOOR_DOWN_LEFT,
+ CMD_OPEN_DOOR_UP_RIGHT,
+ CMD_OPEN_DOOR_DOWN_RIGHT,
+ CMD_OPEN_DOOR,
+ CMD_CLOSE_DOOR,
+ CMD_REST,
+ CMD_GO_UPSTAIRS,
+ CMD_GO_DOWNSTAIRS, // 1000 + 30
+ CMD_TOGGLE_AUTOPICKUP,
+ CMD_PICKUP,
+ CMD_DROP,
+ CMD_BUTCHER,
+ CMD_INSPECT_FLOOR,
+ CMD_EXAMINE_OBJECT,
+ CMD_EVOKE,
+ CMD_WIELD_WEAPON,
+ CMD_WEAPON_SWAP,
+ CMD_THROW, // 1000 + 40
+ CMD_FIRE,
+ CMD_WEAR_ARMOUR,
+ CMD_REMOVE_ARMOUR,
+ CMD_WEAR_JEWELLERY,
+ CMD_REMOVE_JEWELLERY,
+ CMD_LIST_WEAPONS,
+ CMD_LIST_ARMOUR,
+ CMD_LIST_JEWELLERY,
+ CMD_ZAP_WAND,
+ CMD_CAST_SPELL, // 1000 + 50
+ CMD_MEMORISE_SPELL,
+ CMD_USE_ABILITY,
+ CMD_PRAY,
+ CMD_EAT,
+ CMD_QUAFF,
+ CMD_READ,
+ CMD_LOOK_AROUND,
+ CMD_SEARCH,
+ CMD_SHOUT,
+ CMD_DISARM_TRAP, // 1000 + 60
+ CMD_CHARACTER_DUMP,
+ CMD_DISPLAY_COMMANDS,
+ CMD_DISPLAY_INVENTORY,
+ CMD_DISPLAY_KNOWN_OBJECTS,
+ CMD_DISPLAY_MUTATIONS,
+ CMD_DISPLAY_SKILLS,
+ CMD_DISPLAY_MAP,
+ CMD_DISPLAY_OVERMAP,
+ CMD_DISPLAY_RELIGION,
+ CMD_DISPLAY_CHARACTER_STATUS, // 1000 + 70
+ CMD_EXPERIENCE_CHECK,
+ CMD_GET_VERSION,
+ CMD_ADJUST_INVENTORY,
+ CMD_REPLAY_MESSAGES,
+ CMD_REDRAW_SCREEN,
+ CMD_MACRO_ADD,
+ CMD_MACRO_SAVE,
+ CMD_SAVE_GAME,
+ CMD_SAVE_GAME_NOW,
+ CMD_SUSPEND_GAME, // 1000 + 80
+ CMD_QUIT,
+ CMD_WIZARD,
+ CMD_DESTROY_ITEM,
+ CMD_OBSOLETE_INVOKE
+};
+
+enum CONFIRM_LEVEL
+{
+ CONFIRM_NONE_EASY,
+ CONFIRM_SAFE_EASY,
+ CONFIRM_ALL_EASY
+};
+
+enum CORPSE_EFFECTS
+{
+ CE_NOCORPSE, // 0
+ CE_CLEAN, // 1
+ CE_CONTAMINATED, // 2
+ CE_POISONOUS, // 3
+ CE_HCL, // 4
+ CE_MUTAGEN_RANDOM, // 5
+ CE_MUTAGEN_GOOD, // 6 - may be worth implementing {dlb}
+ CE_MUTAGEN_BAD, // 7 - may be worth implementing {dlb}
+ CE_RANDOM, // 8 - not used, but may be worth implementing {dlb}
+ CE_ROTTEN = 50 // 50 - must remain at 50 for now {dlb}
+};
+
+enum CORPSES
+{
+ CORPSE_BODY, // 0
+ CORPSE_SKELETON
+};
+
+enum DEATH_KNIGHT_CHOICES
+{
+ DK_NO_SELECTION,
+ DK_NECROMANCY,
+ DK_YREDELEMNUL,
+ DK_RANDOM
+};
+
+enum DECKS
+{
+ DECK_OF_WONDERS, // 0
+ DECK_OF_SUMMONING,
+ DECK_OF_TRICKS,
+ DECK_OF_POWER,
+ DECK_OF_PUNISHMENT
+};
+
+enum DELAY
+{
+ DELAY_NOT_DELAYED,
+ DELAY_EAT,
+ DELAY_ARMOUR_ON,
+ DELAY_ARMOUR_OFF,
+ DELAY_MEMORIZE,
+ DELAY_BUTCHER,
+ DELAY_AUTOPICKUP,
+ DELAY_WEAPON_SWAP, // for easy_butcher
+ DELAY_PASSWALL,
+ DELAY_DROP_ITEM,
+ DELAY_ASCENDING_STAIRS,
+ DELAY_DESCENDING_STAIRS,
+ DELAY_INTERUPTABLE = 100, // simple interuptable delay
+ DELAY_UNINTERUPTABLE // simple uninteruptable delay
+};
+
+enum DEMON_BEAMS
+{
+ DMNBM_HELLFIRE, // 0
+ DMNBM_SMITING,
+ DMNBM_BRAIN_FEED,
+ DMNBM_MUTATION
+};
+
+enum DEMON_CLASSES // summon_any_demon()
+{
+ DEMON_LESSER, // 0: Class V
+ DEMON_COMMON, // 1: Class II-IV
+ DEMON_GREATER // 2: Class I
+};
+
+enum DESCRIPTION_LEVEL
+{
+ DESC_CAP_THE, // 0
+ DESC_NOCAP_THE, // 1
+ DESC_CAP_A, // 2
+ DESC_NOCAP_A, // 3
+ DESC_CAP_YOUR, // 4
+ DESC_NOCAP_YOUR, // 5
+ DESC_PLAIN, // 6
+ DESC_NOCAP_ITS, // 7
+ DESC_INVENTORY_EQUIP, // 8
+ DESC_INVENTORY // 8
+};
+
+enum DIRECTION // (unsigned char) you.char_direction
+{
+ DIR_DESCENDING = 0, // 0 - change and lose savefile compatibility (!!!)
+ DIR_ASCENDING = 1 // 1 - change and lose savefile compatibility (!!!)
+};
+
+enum DUNGEON_FEATURES // (unsigned char) grd[][]
+{
+ DNGN_UNSEEN, // 0
+ DNGN_ROCK_WALL,
+ DNGN_STONE_WALL,
+ DNGN_CLOSED_DOOR,
+ DNGN_METAL_WALL,
+ DNGN_SECRET_DOOR, // 5
+ DNGN_GREEN_CRYSTAL_WALL,
+ DNGN_ORCISH_IDOL,
+ DNGN_WAX_WALL, // 8
+ DNGN_PERMAROCK_WALL, // 9 - for undiggable walls
+ DNGN_LAST_SOLID_TILE = 10, // 10 - just here temporarily {dlb}
+
+ DNGN_LAVA_X = 11, // 11
+ DNGN_WATER_X, // 12
+ DNGN_SILVER_STATUE = 21, // 21
+ DNGN_GRANITE_STATUE,
+ DNGN_ORANGE_CRYSTAL_STATUE, // 23
+ DNGN_STATUE_39 = 39, // 39
+
+ DNGN_LAVA = 61, // 61
+ DNGN_DEEP_WATER, // 62
+ DNGN_SHALLOW_WATER = 65, // 65
+ DNGN_WATER_STUCK,
+
+ DNGN_FLOOR, // 67
+ DNGN_ENTER_HELL = 69, // 69
+ DNGN_OPEN_DOOR, // 70
+ DNGN_BRANCH_STAIRS, // 71
+ DNGN_TRAP_MECHANICAL = 75, // 75
+ DNGN_TRAP_MAGICAL,
+ DNGN_TRAP_III,
+ DNGN_UNDISCOVERED_TRAP, // 78
+
+ DNGN_ENTER_SHOP = 80, // 80
+ DNGN_ENTER_LABYRINTH,
+
+ DNGN_STONE_STAIRS_DOWN_I,
+ DNGN_STONE_STAIRS_DOWN_II,
+ DNGN_STONE_STAIRS_DOWN_III,
+ DNGN_ROCK_STAIRS_DOWN, // 85 - was this supposed to be a ladder? {dlb}
+
+ DNGN_STONE_STAIRS_UP_I,
+ DNGN_STONE_STAIRS_UP_II,
+ DNGN_STONE_STAIRS_UP_III,
+ DNGN_ROCK_STAIRS_UP, // 89 - was this supposed to be a ladder? {dlb}
+
+ DNGN_ENTER_DIS = 92, // 92
+ DNGN_ENTER_GEHENNA,
+ DNGN_ENTER_COCYTUS,
+ DNGN_ENTER_TARTARUS, // 95
+ DNGN_ENTER_ABYSS,
+ DNGN_EXIT_ABYSS,
+ DNGN_STONE_ARCH,
+ DNGN_ENTER_PANDEMONIUM,
+ DNGN_EXIT_PANDEMONIUM, // 100
+ DNGN_TRANSIT_PANDEMONIUM, // 101
+
+ DNGN_BUILDER_SPECIAL_WALL = 105, // 105; builder() only
+ DNGN_BUILDER_SPECIAL_FLOOR, // 106; builder() only
+
+ DNGN_ENTER_ORCISH_MINES = 110, // 110
+ DNGN_ENTER_HIVE,
+ DNGN_ENTER_LAIR,
+ DNGN_ENTER_SLIME_PITS,
+ DNGN_ENTER_VAULTS,
+ DNGN_ENTER_CRYPT, // 115
+ DNGN_ENTER_HALL_OF_BLADES,
+ DNGN_ENTER_ZOT,
+ DNGN_ENTER_TEMPLE,
+ DNGN_ENTER_SNAKE_PIT,
+ DNGN_ENTER_ELVEN_HALLS, // 120
+ DNGN_ENTER_TOMB,
+ DNGN_ENTER_SWAMP, // 122
+
+ DNGN_RETURN_FROM_ORCISH_MINES = 130, // 130
+ DNGN_RETURN_FROM_HIVE,
+ DNGN_RETURN_FROM_LAIR,
+ DNGN_RETURN_FROM_SLIME_PITS,
+ DNGN_RETURN_FROM_VAULTS,
+ DNGN_RETURN_FROM_CRYPT, // 135
+ DNGN_RETURN_FROM_HALL_OF_BLADES,
+ DNGN_RETURN_FROM_ZOT,
+ DNGN_RETURN_FROM_TEMPLE,
+ DNGN_RETURN_FROM_SNAKE_PIT,
+ DNGN_RETURN_FROM_ELVEN_HALLS, // 140
+ DNGN_RETURN_FROM_TOMB,
+ DNGN_RETURN_FROM_SWAMP, // 142
+
+ DNGN_ALTAR_ZIN = 180, // 180
+ DNGN_ALTAR_SHINING_ONE,
+ DNGN_ALTAR_KIKUBAAQUDGHA,
+ DNGN_ALTAR_YREDELEMNUL,
+ DNGN_ALTAR_XOM,
+ DNGN_ALTAR_VEHUMET, // 185
+ DNGN_ALTAR_OKAWARU,
+ DNGN_ALTAR_MAKHLEB,
+ DNGN_ALTAR_SIF_MUNA,
+ DNGN_ALTAR_TROG,
+ DNGN_ALTAR_NEMELEX_XOBEH, // 190
+ DNGN_ALTAR_ELYVILON, // 191
+
+ DNGN_BLUE_FOUNTAIN = 200, // 200
+ DNGN_DRY_FOUNTAIN_I,
+ DNGN_SPARKLING_FOUNTAIN, // aka 'Magic Fountain' {dlb}
+ DNGN_DRY_FOUNTAIN_II,
+ DNGN_DRY_FOUNTAIN_III,
+ DNGN_DRY_FOUNTAIN_IV, // 205
+ DNGN_DRY_FOUNTAIN_V,
+ DNGN_DRY_FOUNTAIN_VI,
+ DNGN_DRY_FOUNTAIN_VII,
+ DNGN_DRY_FOUNTAIN_VIII,
+ DNGN_PERMADRY_FOUNTAIN = 210 // added (from dungeon.cc/maps.cc) 22jan2000 {dlb}
+};
+
+enum DURATIONS // you.duration[]
+{
+ DUR_LIQUID_FLAMES, // 0
+ DUR_ICY_ARMOUR,
+ DUR_REPEL_MISSILES,
+ DUR_PRAYER,
+ DUR_REGENERATION,
+ DUR_SWIFTNESS, // 5
+ DUR_INSULATION,
+ DUR_STONEMAIL,
+ DUR_CONTROLLED_FLIGHT,
+ DUR_TELEPORT,
+ DUR_CONTROL_TELEPORT, // 10
+ DUR_RESIST_POISON,
+ DUR_BREATH_WEAPON,
+ DUR_TRANSFORMATION,
+ DUR_DEATH_CHANNEL,
+ DUR_DEFLECT_MISSILES, // 15
+//jmf: new durations:
+ DUR_FORESCRY,
+ DUR_SEE_INVISIBLE,
+ DUR_WEAPON_BRAND, // general "branding" spell counter
+ DUR_SILENCE,
+ DUR_GLAMOUR, // 20
+ DUR_SHUGGOTH_SEED_RELOAD,
+ DUR_INFECTED_SHUGGOTH_SEED,
+ DUR_CONDENSATION_SHIELD, // 23
+ DUR_STONESKIN,
+ DUR_REPEL_UNDEAD, // 25
+ DUR_LAST_DUR, //jmf: for asserts
+ NUM_DURATIONS = 30
+ // set at 30 to prevent savefile incompatibilities 12mar2000{dlb}
+};
+
+enum ENCHANTMENT // menv[].enchantment[]
+{
+ ENCH_NONE = 0, // 0
+ ENCH_SLOW,
+ ENCH_HASTE, // 2
+ ENCH_FEAR = 4, // 4
+ ENCH_CONFUSION, // 5
+ ENCH_INVIS,
+ ENCH_YOUR_POISON_I,
+ ENCH_YOUR_POISON_II,
+ ENCH_YOUR_POISON_III,
+ ENCH_YOUR_POISON_IV, // 10
+ ENCH_YOUR_SHUGGOTH_I, //jmf: Shuggothim!
+ ENCH_YOUR_SHUGGOTH_II,
+ ENCH_YOUR_SHUGGOTH_III,
+ ENCH_YOUR_SHUGGOTH_IV,
+ ENCH_YOUR_ROT_I, // 15 //jmf: rotting effect for monsters
+ ENCH_YOUR_ROT_II,
+ ENCH_YOUR_ROT_III,
+ ENCH_YOUR_ROT_IV,
+ ENCH_SUMMON = 19, // 19
+ ENCH_ABJ_I, // 20
+ ENCH_ABJ_II,
+ ENCH_ABJ_III,
+ ENCH_ABJ_IV,
+ ENCH_ABJ_V,
+ ENCH_ABJ_VI, // 25
+ ENCH_BACKLIGHT_I, //jmf: backlight for Corona spell
+ ENCH_BACKLIGHT_II,
+ ENCH_BACKLIGHT_III,
+ ENCH_BACKLIGHT_IV,
+ ENCH_CHARM = 30, // 30
+ ENCH_YOUR_STICKY_FLAME_I,
+ ENCH_YOUR_STICKY_FLAME_II,
+ ENCH_YOUR_STICKY_FLAME_III,
+ ENCH_YOUR_STICKY_FLAME_IV, // 34
+ ENCH_GLOWING_SHAPESHIFTER = 38, // 38
+ ENCH_SHAPESHIFTER,
+ ENCH_TP_I, // 40
+ ENCH_TP_II,
+ ENCH_TP_III,
+ ENCH_TP_IV, // 43
+ ENCH_POISON_I = 57, // 57
+ ENCH_POISON_II,
+ ENCH_POISON_III,
+ ENCH_POISON_IV, // 60
+ ENCH_STICKY_FLAME_I,
+ ENCH_STICKY_FLAME_II,
+ ENCH_STICKY_FLAME_III,
+ ENCH_STICKY_FLAME_IV,
+ ENCH_FRIEND_ABJ_I, // no longer used
+ ENCH_FRIEND_ABJ_II, // no longer used
+ ENCH_FRIEND_ABJ_III, // no longer used
+ ENCH_FRIEND_ABJ_IV, // no longer used
+ ENCH_FRIEND_ABJ_V, // no longer used
+ ENCH_FRIEND_ABJ_VI, // no longer used
+ ENCH_CREATED_FRIENDLY, // no longer used
+ ENCH_SLEEP_WARY,
+ ENCH_SUBMERGED, // 73 (includes air elementals in air)
+ ENCH_SHORT_LIVED, // 74 for ball lightning
+ NUM_ENCHANTMENTS
+};
+
+enum ENCHANT_STATS
+{
+ ENCHANT_TO_HIT,
+ ENCHANT_TO_DAM
+};
+
+enum EQUIPMENT
+{
+ EQ_WEAPON, // 0
+ EQ_CLOAK,
+ EQ_HELMET,
+ EQ_GLOVES,
+ EQ_BOOTS,
+ EQ_SHIELD, // 5
+ EQ_BODY_ARMOUR,
+ EQ_LEFT_RING,
+ EQ_RIGHT_RING,
+ EQ_AMULET,
+ NUM_EQUIP,
+
+ // these aren't actual equipment slots, they're categories for functions
+ EQ_STAFF = 100, // weapon with base_type OBJ_STAVES
+ EQ_RINGS, // check both rings
+ EQ_RINGS_PLUS, // check both rings and sum plus
+ EQ_RINGS_PLUS2, // check both rings and sum plus2
+ EQ_ALL_ARMOUR // check all armour types
+};
+
+enum FIRE_TYPES
+{
+ FIRE_NONE,
+ FIRE_LAUNCHER,
+ FIRE_DART,
+ FIRE_STONE,
+ FIRE_DAGGER,
+ FIRE_SPEAR,
+ FIRE_HAND_AXE,
+ FIRE_CLUB,
+ NUM_FIRE_TYPES
+};
+
+enum FLUSH_REASONS
+{
+ FLUSH_ON_FAILURE, // spell/ability failed to cast
+ FLUSH_BEFORE_COMMAND, // flush before getting a command
+ FLUSH_ON_MESSAGE, // flush when printing a message
+ NUM_FLUSH_REASONS
+};
+
+enum FOODS // mitm[].sub_type[]
+{
+ FOOD_MEAT_RATION, // 0
+ FOOD_BREAD_RATION,
+ FOOD_PEAR,
+ FOOD_APPLE,
+ FOOD_CHOKO,
+ FOOD_HONEYCOMB, // 5
+ FOOD_ROYAL_JELLY,
+ FOOD_SNOZZCUMBER,
+ FOOD_PIZZA,
+ FOOD_APRICOT,
+ FOOD_ORANGE, // 10
+ FOOD_BANANA,
+ FOOD_STRAWBERRY,
+ FOOD_RAMBUTAN,
+ FOOD_LEMON,
+ FOOD_GRAPE, // 15
+ FOOD_SULTANA,
+ FOOD_LYCHEE,
+ FOOD_BEEF_JERKY,
+ FOOD_CHEESE,
+ FOOD_SAUSAGE, // 20
+ FOOD_CHUNK,
+ NUM_FOODS
+};
+
+enum GENUS_PLAYER // see player::player_genus()
+{
+ GENPC_DRACONIAN, // 0
+ GENPC_ELVEN, // 1
+ GENPC_DWARVEN // 2
+};
+
+enum GENDER
+{
+ GENDER_NEUTER,
+ GENDER_MALE,
+ GENDER_FEMALE
+};
+
+enum GHOST_VALUES
+{
+ GVAL_MAX_HP, // 0
+ GVAL_EV,
+ GVAL_AC,
+ GVAL_SEE_INVIS,
+ GVAL_RES_FIRE,
+ GVAL_RES_COLD, // 5
+ GVAL_RES_ELEC,
+ GVAL_DAMAGE,
+ GVAL_BRAND,
+ GVAL_SPECIES,
+ GVAL_BEST_SKILL, // 10
+ GVAL_SKILL_LEVEL,
+ GVAL_EXP_LEVEL,
+ GVAL_CLASS,
+ GVAL_SPELL_1, // 14
+ GVAL_SPELL_2,
+ GVAL_SPELL_3,
+ GVAL_SPELL_4,
+ GVAL_SPELL_5,
+ GVAL_SPELL_6, // 19
+ NUM_GHOST_VALUES, // should always be last value
+
+ // these values are for demonlords, which override the above:
+ GVAL_DEMONLORD_SPELLCASTER = 9,
+ GVAL_DEMONLORD_FLY, // 10
+ GVAL_DEMONLORD_UNUSED, // 11
+ GVAL_DEMONLORD_HIT_DICE, // 12
+ GVAL_DEMONLORD_CYCLE_COLOUR // 13
+};
+
+enum GODS // you.religion
+{
+ GOD_NO_GOD, // 0
+ GOD_ZIN,
+ GOD_SHINING_ONE,
+ GOD_KIKUBAAQUDGHA,
+ GOD_YREDELEMNUL,
+ GOD_XOM, // 5
+ GOD_VEHUMET,
+ GOD_OKAWARU,
+ GOD_MAKHLEB,
+ GOD_SIF_MUNA,
+ GOD_TROG, // 10
+ GOD_NEMELEX_XOBEH,
+ GOD_ELYVILON,
+ NUM_GODS, // always after last god
+
+ GOD_RANDOM = 100
+};
+
+enum GOOD_THINGS
+{
+ GOOD_KILLED_LIVING = 1, // 1 - killed a living monster in god's name
+ GOOD_KILLED_UNDEAD, // 2 - killed an undead in god's name
+ GOOD_KILLED_DEMON, // 3 - killed a demon in god's name
+ GOOD_KILLED_ANGEL_I, // 4 - killed an angel (any time)
+ GOOD_KILLED_ANGEL_II, // 5 - killed an angel in god's name
+ // (all above pass HD of monster as pgain)
+ GOOD_HACKED_CORPSE, // 6 - hacked up a corpse in god's name
+ GOOD_OFFER_STUFF, // 7 - offered inanimate stuff at an altar
+ GOOD_OFFER_CORPSE, // as above,including at least one corpse
+ GOOD_SLAVES_KILL_LIVING,// 9 - undead slaves killed a living thing
+ GOOD_SERVANTS_KILL, // 10 - any servants kill anything
+ GOOD_CARDS, // 11 - cards (Nemelex)
+ GOOD_KILLED_WIZARD,
+ GOOD_KILLED_PRIEST,
+ GOOD_POISON,
+ GOOD_ATTACKED_FRIEND,
+ NUM_GOOD_THINGS
+};
+
+enum HANDS_REQUIRED
+{
+ HANDS_ONE_HANDED = 1, // 1
+ HANDS_TWO_HANDED,
+ HANDS_ONE_OR_TWO_HANDED
+};
+
+enum HELMET_TYPES // used in pluses2
+{
+ THELM_HELMET = 0x0000,
+ THELM_HELM = 0x0001,
+ THELM_CAP = 0x0002,
+ THELM_WIZARD_HAT = 0x0003,
+ THELM_NUM_TYPES = 4,
+
+ THELM_SPECIAL = 0x0004, // type used only for artefacts (mask, hat)
+ THELM_TYPE_MASK = 0x00ff,
+
+
+ THELM_DESC_PLAIN = 0x0000,
+ THELM_DESC_WINGED = 0x0100,
+ THELM_DESC_HORNED = 0x0200,
+ THELM_DESC_CRESTED = 0x0300,
+ THELM_DESC_PLUMED = 0x0400,
+ THELM_DESC_SPIKED = 0x0500,
+ THELM_DESC_VISORED = 0x0600,
+ THELM_DESC_JEWELLED = 0x0700,
+
+ THELM_DESC_MASK = 0xff00
+};
+
+#if 0
+enum HELMET_DESCRIPTIONS
+{
+ DHELM_WINGED = 1, // 1
+ DHELM_HORNED,
+ DHELM_CRESTED,
+ DHELM_PLUMED,
+ DHELM_SPIKED, // 5
+ DHELM_VISORED,
+ DHELM_JEWELLED
+};
+
+enum HELMET_TYPES // used in pluses2
+{
+ THELM_HELMET = 0,
+ THELM_HELM,
+ THELM_CAP,
+ THELM_WIZARD_HAT,
+ NUM_HELMET_TYPES,
+ THELM_SPECIAL // type used only for artefacts (mask, hat)
+};
+#endif
+
+enum BOOT_TYPES // used in pluses2
+{
+ TBOOT_BOOTS = 0,
+ TBOOT_NAGA_BARDING,
+ TBOOT_CENTAUR_BARDING,
+ NUM_BOOT_TYPES
+};
+
+
+enum HUNGER_STATES // you.hunger_state
+{
+ HS_RAVENOUS, // 0: not used within code, really
+ HS_STARVING,
+ HS_HUNGRY,
+ HS_SATIATED, // "not hungry" state
+ HS_FULL,
+ HS_ENGORGED // 5
+};
+
+enum ITEM_STATUS_FLAGS // per item flags: ie. ident status, cursed status
+{
+ ISFLAG_KNOW_CURSE = 0x00000001, // curse status
+ ISFLAG_KNOW_TYPE = 0x00000002, // artefact name, sub/special types
+ ISFLAG_KNOW_PLUSES = 0x00000004, // to hit/to dam/to AC/charges
+ ISFLAG_KNOW_PROPERTIES = 0x00000008, // know special artefact properties
+ ISFLAG_IDENT_MASK = 0x0000000F, // mask of all id related flags
+
+ // these three masks are of the minimal flags set upon using equipment:
+ ISFLAG_EQ_WEAPON_MASK = 0x0000000B, // mask of flags for weapon equip
+ ISFLAG_EQ_ARMOUR_MASK = 0x0000000F, // mask of flags for armour equip
+ ISFLAG_EQ_JEWELLERY_MASK = 0x0000000F, // mask of flags for known jewellery
+
+ ISFLAG_CURSED = 0x00000100, // cursed
+ ISFLAG_RESERVED_1 = 0x00000200, // reserved (re-curses on wield?)
+ ISFLAG_RESERVED_2 = 0x00000400, // reserved (heavy cursed?)
+ ISFLAG_RESERVED_3 = 0x00000800, // reserved (perma-cursed?)
+ ISFLAG_CURSE_MASK = 0x00000F00, // mask of all curse related flags
+
+ ISFLAG_RANDART = 0x00001000, // special value is seed
+ ISFLAG_UNRANDART = 0x00002000, // is an unrandart
+ ISFLAG_ARTEFACT_MASK = 0x00003000, // randart or unrandart
+
+ ISFLAG_NO_DESC = 0x00000000, // used for clearing these flags
+ ISFLAG_GLOWING = 0x00010000, // weapons or armour
+ ISFLAG_RUNED = 0x00020000, // weapons or armour
+ ISFLAG_EMBROIDERED_SHINY = 0x00040000, // armour: depends on sub-type
+ ISFLAG_COSMETIC_MASK = 0x00070000, // mask of cosmetic descriptions
+
+ ISFLAG_NO_RACE = 0x00000000, // used for clearing these flags
+ ISFLAG_ORCISH = 0x01000000, // low quality items
+ ISFLAG_DWARVEN = 0x02000000, // strong and robust items
+ ISFLAG_ELVEN = 0x04000000, // light and accurate items
+ ISFLAG_RACIAL_MASK = 0x07000000, // mask of racial equipment types
+
+ ISFLAG_DEBUG_MARK = 0x80000000 // used for testing item structure
+};
+
+enum ITEM_DESCRIPTIONS
+{
+ IDESC_WANDS,
+ IDESC_POTIONS,
+ IDESC_SCROLLS, // special field (like the others)
+ IDESC_RINGS,
+ IDESC_SCROLLS_II // pluses field
+};
+
+enum ITEM_MAKE_SPECIES // used only for race during creation
+{
+ MAKE_ITEM_ELVEN = 1,
+ MAKE_ITEM_DWARVEN = 2,
+ MAKE_ITEM_ORCISH = 3,
+
+ MAKE_ITEM_NO_RACE = 100,
+ MAKE_ITEM_RANDOM_RACE = 250
+};
+
+enum ITEM_TYPE_ID // used for first index of id[4][50]
+{
+ IDTYPE_WANDS = 0,
+ IDTYPE_SCROLLS,
+ IDTYPE_JEWELLERY,
+ IDTYPE_POTIONS
+};
+
+enum ITEM_TYPE_ID_STATE // used for values in id[4][50]
+{
+ ID_UNKNOWN_TYPE = 0,
+ ID_KNOWN_TYPE,
+ ID_TRIED_TYPE
+};
+
+enum JEWELLERY
+{
+ RING_REGENERATION, // 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
+ AMU_RAGE = 35, // 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,
+ NUM_JEWELLERY
+};
+
+enum JOB
+{
+ JOB_FIGHTER, // 0
+ JOB_WIZARD,
+ JOB_PRIEST,
+ JOB_THIEF,
+ JOB_GLADIATOR,
+ JOB_NECROMANCER, // 5
+ JOB_PALADIN,
+ JOB_ASSASSIN,
+ JOB_BERSERKER,
+ JOB_HUNTER,
+ JOB_CONJURER, // 10
+ JOB_ENCHANTER,
+ JOB_FIRE_ELEMENTALIST,
+ JOB_ICE_ELEMENTALIST,
+ JOB_SUMMONER,
+ JOB_AIR_ELEMENTALIST, // 15
+ JOB_EARTH_ELEMENTALIST,
+ JOB_CRUSADER,
+ JOB_DEATH_KNIGHT,
+ JOB_VENOM_MAGE,
+ JOB_CHAOS_KNIGHT, // 20
+ JOB_TRANSMUTER,
+ JOB_HEALER, // 22
+ JOB_QUITTER, // 23 -- this is job 'x', don't use
+ JOB_REAVER, // 24
+ JOB_STALKER, // 25
+ JOB_MONK,
+ JOB_WARPER,
+ JOB_WANDERER, // 23
+ NUM_JOBS, // always after the last job
+
+ JOB_UNKNOWN = 100
+};
+
+enum KILLBY
+{
+ KILLED_BY_MONSTER, // 0
+ KILLED_BY_POISON,
+ KILLED_BY_CLOUD,
+ KILLED_BY_BEAM, // 3
+ KILLED_BY_DEATHS_DOOR, // should be deprecated, but you never know {dlb}
+ KILLED_BY_LAVA, // 5
+ KILLED_BY_WATER,
+ KILLED_BY_STUPIDITY,
+ KILLED_BY_WEAKNESS,
+ KILLED_BY_CLUMSINESS,
+ KILLED_BY_TRAP, // 10
+ KILLED_BY_LEAVING,
+ KILLED_BY_WINNING,
+ KILLED_BY_QUITTING,
+ KILLED_BY_DRAINING,
+ KILLED_BY_STARVATION, // 15
+ KILLED_BY_FREEZING,
+ KILLED_BY_BURNING,
+ KILLED_BY_WILD_MAGIC,
+ KILLED_BY_XOM,
+ KILLED_BY_STATUE, // 20
+ KILLED_BY_ROTTING,
+ KILLED_BY_TARGETTING,
+ KILLED_BY_SPORE,
+ KILLED_BY_TSO_SMITING,
+ KILLED_BY_PETRIFICATION, // 25
+ KILLED_BY_SHUGGOTH,
+ KILLED_BY_SOMETHING,
+ KILLED_BY_FALLING_DOWN_STAIRS,
+ KILLED_BY_ACID,
+ NUM_KILLBY
+};
+
+enum KILLER // monster_die(), thing_thrown
+{
+ KILL_YOU = 1, // 1
+ KILL_MON,
+ KILL_YOU_MISSILE,
+ KILL_MON_MISSILE,
+ KILL_MISC, // 5
+ KILL_RESET // abjuration, etc.
+};
+
+#define YOU_KILL(x) ((x) == KILL_YOU || (x) == KILL_YOU_MISSILE)
+#define MON_KILL(x) ((x) == KILL_MON || (x) == KILL_MON_MISSILE)
+
+enum LEVEL_TYPES // you.level_type
+{
+ LEVEL_DUNGEON, // 0
+ LEVEL_LABYRINTH,
+ LEVEL_ABYSS,
+ LEVEL_PANDEMONIUM
+};
+
+enum LOAD_MODE
+{
+ LOAD_START_GAME,
+ LOAD_RESTART_GAME,
+ LOAD_ENTER_LEVEL
+};
+
+enum MAP_SECTIONS // see maps.cc and dungeon.cc {dlb}
+{
+ MAP_NORTH = 1, // 1
+ MAP_NORTHWEST,
+ MAP_NORTHEAST,
+ MAP_SOUTHWEST,
+ MAP_SOUTHEAST, // 5
+ MAP_ENCOMPASS,
+ MAP_NORTH_DIS
+};
+
+// if you mess with this list, you'll need to make changes in initfile.cc
+enum MESSAGE_CHANNEL
+{
+ MSGCH_PLAIN, // regular text
+ MSGCH_PROMPT, // various prompts
+ MSGCH_GOD, // god/religion (param is god)
+ MSGCH_DURATION, // effect down/warnings
+ MSGCH_DANGER, // serious life threats (ie very large HP attacks)
+ MSGCH_WARN, // much less serious threats
+ MSGCH_FOOD, // hunger notices
+ MSGCH_RECOVERY, // recovery from disease/stat/poison condition
+ MSGCH_TALK, // monster talk (param is monster type)
+ MSGCH_INTRINSIC_GAIN, // player level/stat/species-power gains
+ MSGCH_MUTATION, // player gain/lose mutations
+ MSGCH_MONSTER_SPELL, // monsters casting spells
+ MSGCH_MONSTER_ENCHANT,// monsters enchantments up and down
+ MSGCH_MONSTER_DAMAGE, // monster damage reports (param is level)
+ MSGCH_ROTTEN_MEAT, // messages about chunks/corpses becoming rotten
+ MSGCH_EQUIPMENT, // equipment listing messages
+ MSGCH_DIAGNOSTICS, // various diagnostic messages
+ NUM_MESSAGE_CHANNELS // always last
+};
+
+enum MESSAGE_COLOURS
+{
+ MSGCOL_BLACK = 0, // the order of these colours is important
+ MSGCOL_BLUE,
+ MSGCOL_GREEN,
+ MSGCOL_CYAN,
+ MSGCOL_RED,
+ MSGCOL_MAGENTA,
+ MSGCOL_BROWN,
+ MSGCOL_LIGHTGRAY,
+ MSGCOL_DARKGRAY,
+ MSGCOL_LIGHTBLUE,
+ MSGCOL_LIGHTGREEN,
+ MSGCOL_LIGHTCYAN,
+ MSGCOL_LIGHTMAGENTA,
+ MSGCOL_YELLOW,
+ MSGCOL_WHITE,
+ MSGCOL_DEFAULT, // use default colour
+ MSGCOL_ALTERNATE, // use secondary default colour scheme
+ MSGCOL_MUTED, // don't print messages
+ MSGCOL_PLAIN // same as plain channel
+};
+
+enum MISCELLANY // mitm[].sub_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, // 5
+ MISC_HORN_OF_GERYON,
+ MISC_BOX_OF_BEASTS,
+ MISC_DECK_OF_WONDERS,
+ MISC_DECK_OF_SUMMONINGS,
+ MISC_CRYSTAL_BALL_OF_ENERGY, // 10
+ MISC_EMPTY_EBONY_CASKET,
+ MISC_CRYSTAL_BALL_OF_FIXATION,
+ MISC_DISC_OF_STORMS,
+ MISC_RUNE_OF_ZOT,
+ MISC_DECK_OF_TRICKS, // 15
+ MISC_DECK_OF_POWER,
+ MISC_PORTABLE_ALTAR_OF_NEMELEX,
+ NUM_MISCELLANY // mv: used for random generation
+};
+
+enum MISSILES // (unsigned char)
+{
+ MI_STONE, // 0
+ MI_ARROW,
+ MI_BOLT,
+ MI_DART,
+ MI_NEEDLE,
+ MI_LARGE_ROCK, //jmf: it'd be nice to move MI_LARGE_ROCK to DEBRIS_ROCK
+ NUM_MISSILES,
+ MI_EGGPLANT
+};
+
+enum MON_TARG_MODE
+{
+ TARG_ANY,
+ TARG_ENEMY,
+ TARG_FRIEND,
+ TARG_NUM_MODES
+};
+
+enum MONSTERS // (int) menv[].type
+{
+ MONS_GIANT_ANT, // 0
+ MONS_GIANT_BAT,
+ MONS_CENTAUR,
+ MONS_RED_DEVIL,
+ MONS_ETTIN,
+ MONS_FUNGUS, // 5
+ MONS_GOBLIN,
+ MONS_HOUND,
+ MONS_IMP,
+ MONS_JACKAL,
+ MONS_KILLER_BEE, // 10
+ MONS_KILLER_BEE_LARVA,
+ MONS_MANTICORE,
+ MONS_NECROPHAGE,
+ MONS_ORC,
+ MONS_PHANTOM, // 15
+ MONS_QUASIT,
+ MONS_RAT,
+ MONS_SCORPION, // 18
+ //MONS_TUNNELING_WORM, // deprecated and now officially removed {dlb}
+ MONS_UGLY_THING = 20, // 20
+ MONS_FIRE_VORTEX,
+ MONS_WORM,
+ MONS_ABOMINATION_SMALL,
+ MONS_YELLOW_WASP,
+ MONS_ZOMBIE_SMALL, // 25
+ MONS_ANGEL,
+ MONS_GIANT_BEETLE,
+ MONS_CYCLOPS,
+ MONS_DRAGON,
+ MONS_TWO_HEADED_OGRE, // 30
+ MONS_FIEND,
+ MONS_GIANT_SPORE,
+ MONS_HOBGOBLIN,
+ MONS_ICE_BEAST,
+ MONS_JELLY, // 35
+ MONS_KOBOLD,
+ MONS_LICH,
+ MONS_MUMMY,
+ MONS_GUARDIAN_NAGA,
+ MONS_OGRE, // 40
+ MONS_PLANT,
+ MONS_QUEEN_BEE,
+ MONS_RAKSHASA,
+ MONS_SNAKE,
+ MONS_TROLL, // 45
+ MONS_UNSEEN_HORROR,
+ MONS_VAMPIRE,
+ MONS_WRAITH,
+ MONS_ABOMINATION_LARGE,
+ MONS_YAK, // 50
+ MONS_ZOMBIE_LARGE,
+ MONS_ORC_WARRIOR,
+ MONS_KOBOLD_DEMONOLOGIST,
+ MONS_ORC_WIZARD,
+ MONS_ORC_KNIGHT, // 55
+ //MONS_WORM_TAIL = 56, // deprecated and now officially removed {dlb}
+ MONS_WYVERN = 57, // 57
+ MONS_BIG_KOBOLD,
+ MONS_GIANT_EYEBALL,
+ MONS_WIGHT, // 60
+ MONS_OKLOB_PLANT,
+ MONS_WOLF_SPIDER,
+ MONS_SHADOW,
+ MONS_HUNGRY_GHOST,
+ MONS_EYE_OF_DRAINING, // 65
+ MONS_BUTTERFLY,
+ MONS_WANDERING_MUSHROOM,
+ MONS_EFREET,
+ MONS_BRAIN_WORM,
+ MONS_GIANT_ORANGE_BRAIN, // 70
+ MONS_BOULDER_BEETLE,
+ MONS_FLYING_SKULL,
+ MONS_HELL_HOUND,
+ MONS_MINOTAUR,
+ MONS_ICE_DRAGON, // 75
+ MONS_SLIME_CREATURE,
+ MONS_FREEZING_WRAITH,
+ MONS_RAKSHASA_FAKE,
+ MONS_GREAT_ORB_OF_EYES,
+ MONS_HELLION, // 80
+ MONS_ROTTING_DEVIL,
+ MONS_TORMENTOR,
+ MONS_REAPER,
+ MONS_SOUL_EATER,
+ MONS_HAIRY_DEVIL, // 85
+ MONS_ICE_DEVIL,
+ MONS_BLUE_DEVIL,
+ MONS_BEAST,
+ MONS_IRON_DEVIL, // 89
+ MONS_GLOWING_SHAPESHIFTER = 98, // 98
+ MONS_SHAPESHIFTER,
+ MONS_GIANT_MITE, // 100
+ MONS_STEAM_DRAGON,
+ MONS_VERY_UGLY_THING,
+ MONS_ORC_SORCERER,
+ MONS_HIPPOGRIFF,
+ MONS_GRIFFON, // 105
+ MONS_HYDRA,
+ MONS_SKELETON_SMALL,
+ MONS_SKELETON_LARGE,
+ MONS_HELL_KNIGHT,
+ MONS_NECROMANCER, // 110
+ MONS_WIZARD,
+ MONS_ORC_PRIEST,
+ MONS_ORC_HIGH_PRIEST,
+ MONS_HUMAN,
+ MONS_GNOLL, // 115
+ MONS_CLAY_GOLEM,
+ MONS_WOOD_GOLEM,
+ MONS_STONE_GOLEM,
+ MONS_IRON_GOLEM,
+ MONS_CRYSTAL_GOLEM, // 120
+ MONS_TOENAIL_GOLEM,
+ MONS_MOTTLED_DRAGON,
+ MONS_EARTH_ELEMENTAL,
+ MONS_FIRE_ELEMENTAL,
+ MONS_AIR_ELEMENTAL, // 125
+ MONS_ICE_FIEND,
+ MONS_SHADOW_FIEND,
+ MONS_BROWN_SNAKE,
+ MONS_GIANT_LIZARD,
+ MONS_SPECTRAL_WARRIOR, // 130
+ MONS_PULSATING_LUMP,
+ MONS_STORM_DRAGON,
+ MONS_YAKTAUR,
+ MONS_DEATH_YAK,
+ MONS_ROCK_TROLL, // 135
+ MONS_STONE_GIANT,
+ MONS_FLAYED_GHOST,
+ MONS_BUMBLEBEE,
+ MONS_REDBACK,
+ MONS_INSUBSTANTIAL_WISP, // 140
+ MONS_VAPOUR,
+ MONS_OGRE_MAGE,
+ MONS_SPINY_WORM,
+ MONS_DANCING_WEAPON,
+ MONS_TITAN, // 145
+ MONS_GOLDEN_DRAGON,
+ MONS_ELF,
+ MONS_LINDWURM,
+ MONS_ELEPHANT_SLUG,
+ MONS_WAR_DOG, // 150
+ MONS_GREY_RAT,
+ MONS_GREEN_RAT,
+ MONS_ORANGE_RAT,
+ MONS_BLACK_SNAKE,
+ MONS_SHEEP, // 155
+ MONS_GHOUL,
+ MONS_HOG,
+ MONS_GIANT_MOSQUITO,
+ MONS_GIANT_CENTIPEDE,
+ MONS_IRON_TROLL, // 160
+ MONS_NAGA,
+ MONS_FIRE_GIANT,
+ MONS_FROST_GIANT,
+ MONS_FIREDRAKE,
+ MONS_SHADOW_DRAGON, // 165
+ MONS_YELLOW_SNAKE,
+ MONS_GREY_SNAKE,
+ MONS_DEEP_TROLL,
+ MONS_GIANT_BLOWFLY,
+ MONS_RED_WASP, // 170
+ MONS_SWAMP_DRAGON,
+ MONS_SWAMP_DRAKE,
+ MONS_SOLDIER_ANT,
+ MONS_HILL_GIANT,
+ MONS_QUEEN_ANT, // 175
+ MONS_ANT_LARVA,
+ MONS_GIANT_FROG,
+ MONS_GIANT_BROWN_FROG,
+ MONS_SPINY_FROG,
+ MONS_BLINK_FROG, // 180
+ MONS_GIANT_COCKROACH,
+ MONS_SMALL_SNAKE, // 182
+ //jmf: new monsters
+ MONS_SHUGGOTH, //jmf: added for evil spells
+ MONS_WOLF, //jmf: added
+ MONS_WARG, //jmf: added for orc mines
+ MONS_BEAR, //jmf: added bears!
+ MONS_GRIZZLY_BEAR,
+ MONS_POLAR_BEAR,
+ MONS_BLACK_BEAR, // 189
+ MONS_SIMULACRUM_SMALL,
+ MONS_SIMULACRUM_LARGE,
+ //jmf: end new monsters
+ MONS_WHITE_IMP = 220, // 220
+ MONS_LEMURE,
+ MONS_UFETUBUS,
+ MONS_MANES,
+ MONS_MIDGE,
+ MONS_NEQOXEC, // 225
+ MONS_ORANGE_DEMON,
+ MONS_HELLWING,
+ MONS_SMOKE_DEMON,
+ MONS_YNOXINUL,
+ MONS_EXECUTIONER, // 230
+ MONS_GREEN_DEATH,
+ MONS_BLUE_DEATH,
+ MONS_BALRUG,
+ MONS_CACODEMON,
+ MONS_DEMONIC_CRAWLER, // 235
+ MONS_SUN_DEMON,
+ MONS_SHADOW_IMP,
+ MONS_SHADOW_DEMON,
+ MONS_LOROCYPROCA,
+ MONS_SHADOW_WRAITH, // 240
+ MONS_GIANT_AMOEBA,
+ MONS_GIANT_SLUG,
+ MONS_GIANT_SNAIL,
+ MONS_SPATIAL_VORTEX,
+ MONS_PIT_FIEND, // 245
+ MONS_BORING_BEETLE,
+ MONS_GARGOYLE,
+ MONS_METAL_GARGOYLE,
+ MONS_MOLTEN_GARGOYLE,
+ MONS_PROGRAM_BUG, // 250
+// BCR - begin first batch of uniques.
+ MONS_MNOLEG,
+ MONS_LOM_LOBON,
+ MONS_CEREBOV,
+ MONS_GLOORX_VLOQ, // 254
+ MONS_MOLLUSC_LORD, // 255 - deprecated, but still referenced in code {dlb}
+// BCR - End first batch of uniques.
+ MONS_NAGA_MAGE = 260, // 260
+ MONS_NAGA_WARRIOR,
+ MONS_ORC_WARLORD,
+ MONS_DEEP_ELF_SOLDIER,
+ MONS_DEEP_ELF_FIGHTER,
+ MONS_DEEP_ELF_KNIGHT, // 265
+ MONS_DEEP_ELF_MAGE,
+ MONS_DEEP_ELF_SUMMONER,
+ MONS_DEEP_ELF_CONJURER,
+ MONS_DEEP_ELF_PRIEST,
+ MONS_DEEP_ELF_HIGH_PRIEST, // 270
+ MONS_DEEP_ELF_DEMONOLOGIST,
+ MONS_DEEP_ELF_ANNIHILATOR,
+ MONS_DEEP_ELF_SORCERER,
+ MONS_DEEP_ELF_DEATH_MAGE,
+ MONS_BROWN_OOZE, // 275
+ MONS_AZURE_JELLY,
+ MONS_DEATH_OOZE,
+ MONS_ACID_BLOB,
+ MONS_ROYAL_JELLY,
+// BCR - begin second batch of uniques.
+ MONS_TERENCE, // 280
+ MONS_JESSICA,
+ MONS_IJYB,
+ MONS_SIGMUND,
+ MONS_BLORK_THE_ORC,
+ MONS_EDMUND, // 285
+ MONS_PSYCHE,
+ MONS_EROLCHA,
+ MONS_DONALD,
+ MONS_URUG,
+ MONS_MICHAEL, // 290
+ MONS_JOSEPH,
+ MONS_SNORG, // was Anita - Snorg is correct 16jan2000 {dlb}
+ MONS_ERICA,
+ MONS_JOSEPHINE,
+ MONS_HAROLD, // 295
+ MONS_NORBERT,
+ MONS_JOZEF,
+ MONS_AGNES,
+ MONS_MAUD,
+ MONS_LOUISE, // 300
+ MONS_FRANCIS,
+ MONS_FRANCES,
+ MONS_RUPERT,
+ MONS_WAYNE,
+ MONS_DUANE, // 305
+ MONS_XTAHUA,
+ MONS_NORRIS,
+ MONS_ADOLF,
+ MONS_MARGERY,
+ MONS_BORIS, // 310
+// BCR - end second batch of uniques.
+
+ // The Lords of Hell:
+ MONS_GERYON = 340, // 340
+ MONS_DISPATER,
+ MONS_ASMODEUS,
+ MONS_ANTAEUS,
+ MONS_ERESHKIGAL, // 344
+
+ MONS_ANCIENT_LICH = 356, // 356
+ MONS_OOZE, // 357
+
+ MONS_VAULT_GUARD = 360, // 360
+ MONS_CURSE_SKULL,
+ MONS_VAMPIRE_KNIGHT,
+ MONS_VAMPIRE_MAGE,
+ MONS_SHINING_EYE,
+ MONS_ORB_GUARDIAN, // 365
+ MONS_DAEVA,
+ MONS_SPECTRAL_THING,
+ MONS_GREATER_NAGA,
+ MONS_SKELETAL_DRAGON,
+ MONS_TENTACLED_MONSTROSITY, // 370
+ MONS_SPHINX,
+ MONS_ROTTING_HULK,
+ MONS_GUARDIAN_MUMMY,
+ MONS_GREATER_MUMMY,
+ MONS_MUMMY_PRIEST, // 375
+ MONS_CENTAUR_WARRIOR,
+ MONS_YAKTAUR_CAPTAIN,
+ MONS_KILLER_KLOWN,
+ MONS_ELECTRIC_GOLEM, // replacing the guardian robot -- bwr
+ MONS_BALL_LIGHTNING, // replacing the dorgi -- bwr
+ MONS_ORB_OF_FIRE, // Swords renamed to fit -- bwr
+ MONS_QUOKKA, // Quokka are a type of wallaby, returned -- bwr 382
+
+
+ MONS_EYE_OF_DEVASTATION = 385, // 385
+ MONS_MOTH_OF_WRATH,
+ MONS_DEATH_COB,
+ MONS_CURSE_TOE,
+ MONS_GOLD_MIMIC,
+ MONS_WEAPON_MIMIC, // 390
+ MONS_ARMOUR_MIMIC,
+ MONS_SCROLL_MIMIC,
+ MONS_POTION_MIMIC,
+ MONS_HELL_HOG,
+ MONS_SERPENT_OF_HELL, // 395
+ MONS_BOGGART,
+ MONS_QUICKSILVER_DRAGON,
+ MONS_IRON_DRAGON,
+ MONS_SKELETAL_WARRIOR, // 399
+ MONS_PLAYER_GHOST, // 400
+ MONS_PANDEMONIUM_DEMON, // 401
+
+ MONS_GIANT_NEWT, // 402
+ MONS_GIANT_GECKO, // 403
+ MONS_GIANT_IGUANA, // 404
+ MONS_GILA_MONSTER, // 405
+ MONS_KOMODO_DRAGON, // 406
+
+ // Lava monsters:
+ MONS_LAVA_WORM = 420, // 420
+ MONS_LAVA_FISH,
+ MONS_LAVA_SNAKE,
+ MONS_SALAMANDER, // 423 mv: was another lava thing
+
+ // Water monsters:
+ MONS_BIG_FISH = 430, // 430
+ MONS_GIANT_GOLDFISH,
+ MONS_ELECTRICAL_EEL,
+ MONS_JELLYFISH,
+ MONS_WATER_ELEMENTAL,
+ MONS_SWAMP_WORM, // 435
+
+ NUM_MONSTERS, // used for polymorph
+ RANDOM_MONSTER = 1000, // used to distinguish between a random monster and using program bugs for error trapping {dlb}
+ WANDERING_MONSTER = 2500 // only used in monster placement routines - forced limit checks {dlb}
+
+};
+
+enum MONSTER_BEHAVIOUR // create_monster()
+{
+ BEH_SLEEP, // 0
+ BEH_WANDER,
+ BEH_SEEK,
+ BEH_FLEE,
+ BEH_CORNERED,
+ NUM_BEHAVIOURS, // max # of legal states
+ BEH_CHARMED, // hostile-but-charmed; create only
+ BEH_FRIENDLY, // used during creation only
+ BEH_HOSTILE, // creation only
+ BEH_GOD_GIFT // creation only
+};
+
+enum MONSTER_ATTITUDES
+{
+ ATT_HOSTILE, // 0, default in most cases
+ ATT_FRIENDLY, // created friendly (or tamed?)
+ ATT_NEUTRAL
+};
+
+enum MONSTER_EVENTS
+{
+ ME_EVAL, // 0, evaluate monster AI state
+ ME_DISTURB, // noisy
+ ME_ANNOY, // annoy at range
+ ME_ALERT, // alert to presence
+ ME_WHACK, // physical attack
+ ME_SCARE, // frighten monster
+ ME_CORNERED // cannot flee
+};
+
+#if 0
+// Obsolete... use mons_charclass()
+enum MONSTER_CATEGORIES
+{
+ MC_MIMIC, // 0
+ NUM_MC,
+ MC_UNSPECIFIED = 255 // keep at end !!! mind the upper limit of 255 {dlb}
+};
+#endif
+
+// Note: These are currently stored in chars!!!
+// Need to fix struct monsters and the savefile if you want more.
+enum MONSTER_FLAGS
+{
+ MF_CREATED_FRIENDLY = 0x01, // no benefit from killing
+ MF_GOD_GIFT = 0x02, // player not penalized by its death
+ MF_BATTY = 0x04, // flutters like a bat
+ MF_JUST_SUMMONED = 0x08, // monster skips next available action
+ MF_TAKING_STAIRS = 0x10, // is following player through stairs
+
+ MF_UNUSED_I = 0x20,
+ MF_UNUSED_II = 0x40,
+ MF_UNUSED_III = 0x80
+};
+
+enum MONSTER_DAMAGE
+{
+ MDAM_OKAY,
+ MDAM_LIGHTLY_DAMAGED,
+ MDAM_MODERATELY_DAMAGED,
+ MDAM_HEAVILY_DAMAGED,
+ MDAM_HORRIBLY_DAMAGED,
+ MDAM_ALMOST_DEAD,
+ MDAM_DEAD
+};
+
+enum MONSTER_DESCRIPTORS // things that cross categorical lines {dlb}
+{
+ MDSC_LEAVES_HIDE, // 0
+ MDSC_REGENERATES,
+ MDSC_NOMSG_WOUNDS
+};
+
+enum MONSTER_HOLINESS // matches (char) H_foo in mon-util.h, see: monster_holiness()
+{
+ MH_HOLY, // 0 - was -1
+ MH_NATURAL, // 1 - was 0
+ MH_UNDEAD, // 2 - was 1
+ MH_DEMONIC, // 3 - was 2
+ MH_NONLIVING, // golems and other constructs
+ MH_PLANT // plants
+};
+
+enum MONSTER_INVENTORY_SLOTS // (int) menv[].inv[]
+{
+ MSLOT_WEAPON,
+ MSLOT_MISSILE, // although it is a second weapon for MONS_TWO_HEADED_OGRE - how to reconcile cleanly? {dlb}
+ MSLOT_ARMOUR,
+ MSLOT_MISCELLANY, //mv: used for misc. obj. (7 Aug 2001)
+ MSLOT_POTION, // mv: now used only for potions (7 Aug 2001)
+ MSLOT_WAND, //
+ MSLOT_SCROLL,
+ MSLOT_GOLD, //mv: used for money :) (7 Aug 2001)
+ NUM_MONSTER_SLOTS = 8 // value must remain 8 for savefile compatibility {dlb}
+};
+
+enum MONSTER_ITEM_USE
+{
+ MONUSE_NOTHING,
+ MONUSE_EATS_ITEMS,
+ MONUSE_OPEN_DOORS,
+ MONUSE_STARTING_EQUIPMENT,
+ MONUSE_WEAPONS_ARMOUR
+};
+
+enum MONSTER_SPELLS // mons_cast(), mspell_list[], mons_spells()
+{
+ MS_MMISSILE, // 0
+ MS_FLAME,
+ MS_FROST,
+ MS_PARALYSIS,
+ MS_SLOW,
+ MS_HASTE, // 5
+ MS_CONFUSE, // 6 - do not deprecate!!! 13jan2000 {dlb}
+ MS_VENOM_BOLT,
+ MS_FIRE_BOLT,
+ MS_COLD_BOLT,
+ MS_LIGHTNING_BOLT, // 10
+ MS_INVIS,
+ MS_FIREBALL,
+ MS_HEAL,
+ MS_TELEPORT,
+ MS_TELEPORT_OTHER, // 15
+ MS_BLINK,
+ MS_CRYSTAL_SPEAR,
+ MS_DIG,
+ MS_NEGATIVE_BOLT,
+ MS_HELLFIRE_BURST, // 20
+ MS_VAMPIRE_SUMMON,
+ MS_ORB_ENERGY,
+ MS_BRAIN_FEED,
+ MS_LEVEL_SUMMON,
+ MS_FAKE_RAKSHASA_SUMMON, // 25
+ MS_STEAM_BALL,
+ MS_SUMMON_DEMON,
+ MS_ANIMATE_DEAD,
+ MS_PAIN,
+ MS_SMITE, // 30
+ MS_STICKY_FLAME,
+ MS_POISON_BLAST,
+ MS_SUMMON_DEMON_LESSER,
+ MS_SUMMON_UFETUBUS,
+ MS_PURPLE_BLAST, // 35
+ MS_SUMMON_BEAST, // MS_GERYON was not descriptive - renamed 13jan2000 {dlb}
+ MS_ENERGY_BOLT,
+ MS_STING,
+ MS_IRON_BOLT,
+ MS_STONE_ARROW, // 40
+ MS_POISON_SPLASH,
+ MS_SUMMON_UNDEAD,
+ MS_MUTATION, // 43
+ MS_CANTRIP,
+ MS_DISINTEGRATE, // 45
+ MS_MARSH_GAS,
+ MS_QUICKSILVER_BOLT,
+ MS_TORMENT,
+ MS_HELLFIRE,
+ MS_METAL_SPLINTERS, // 50
+ MS_SUMMON_DEMON_GREATER, // [foo]_1 was confusing - renamed 13jan2000 {dlb}
+ MS_BANISHMENT,
+ NUM_MONSTER_SPELLS,
+ MS_NO_SPELL = 100
+};
+
+// XXX: These still need to be applied in mon-data.h
+enum MONSTER_SPELL_TEMPLATES
+{
+ MST_ORC_WIZARD_I = 0,
+ MST_ORC_WIZARD_II,
+ MST_ORC_WIZARD_III,
+ MST_GUARDIAN_NAGA = 10,
+ MST_LICH_I = 20,
+ MST_LICH_II,
+ MST_LICH_III,
+ MST_LICH_IV,
+ MST_BURNING_DEVIL = 30,
+ MST_VAMPIRE = 40,
+ MST_VAMPIRE_KNIGHT,
+ MST_VAMPIRE_MAGE,
+ MST_EFREET = 50,
+ MST_BRAIN_WORM = 52,
+ MST_GIANT_ORANGE_BRAIN,
+ MST_RAKSHASA,
+ MST_GREAT_ORB_OF_EYES, // 55
+ MST_ORC_SORCERER,
+ MST_STEAM_DRAGON,
+ MST_HELL_KNIGHT_I,
+ MST_HELL_KNIGHT_II,
+ MST_NECROMANCER_I, // 60
+ MST_NECROMANCER_II,
+ MST_WIZARD_I,
+ MST_WIZARD_II,
+ MST_WIZARD_III,
+ MST_WIZARD_IV, // 65
+ MST_WIZARD_V,
+ MST_ORC_PRIEST,
+ MST_ORC_HIGH_PRIEST,
+ MST_MOTTLED_DRAGON,
+ MST_ICE_FIEND, // 70
+ MST_SHADOW_FIEND,
+ MST_TORMENTOR,
+ MST_STORM_DRAGON,
+ MST_WHITE_IMP,
+ MST_YNOXINUL, // 75
+ MST_NEQOXEC,
+ MST_HELLWING,
+ MST_SMOKE_DEMON,
+ MST_CACODEMON,
+ MST_GREEN_DEATH, // 80
+ MST_BALRUG,
+ MST_BLUE_DEATH,
+ MST_GERYON,
+ MST_DISPATER,
+ MST_ASMODEUS, // 85
+ MST_ERESHKIGAL,
+ MST_ANTAEUS, // 87
+ MST_MNOLEG = 90,
+ MST_LOM_LOBON,
+ MST_CEREBOV,
+ MST_GLOORX_VLOQ,
+ MST_TITAN,
+ MST_GOLDEN_DRAGON, // 95
+ MST_DEEP_ELF_SUMMONER,
+ MST_DEEP_ELF_CONJURER_I,
+ MST_DEEP_ELF_CONJURER_II,
+ MST_DEEP_ELF_PRIEST,
+ MST_DEEP_ELF_HIGH_PRIEST, // 100
+ MST_DEEP_ELF_DEMONOLOGIST,
+ MST_DEEP_ELF_ANNIHILATOR,
+ MST_DEEP_ELF_SORCERER,
+ MST_DEEP_ELF_DEATH_MAGE,
+ MST_KOBOLD_DEMONOLOGIST, // 105
+ MST_NAGA,
+ MST_NAGA_MAGE,
+ MST_CURSE_SKULL,
+ MST_SHINING_EYE,
+ MST_FROST_GIANT, // 110
+ MST_ANGEL,
+ MST_DAEVA,
+ MST_SHADOW_DRAGON,
+ MST_SPHINX,
+ MST_MUMMY, // 115
+ MST_ELECTRIC_GOLEM,
+ MST_ORB_OF_FIRE,
+ MST_SHADOW_IMP,
+ MST_GHOST,
+ MST_HELL_HOG, // 120
+ MST_SWAMP_DRAGON,
+ MST_SWAMP_DRAKE,
+ MST_SERPENT_OF_HELL,
+ MST_BOGGART,
+ MST_EYE_OF_DEVASTATION, // 125
+ MST_QUICKSILVER_DRAGON,
+ MST_IRON_DRAGON, // 127
+ MST_SKELETAL_WARRIOR,
+ NUM_MSTYPES,
+ MST_NO_SPELLS = 250
+};
+
+enum MUTATIONS
+{
+ MUT_TOUGH_SKIN, // 0
+ MUT_STRONG,
+ MUT_CLEVER,
+ MUT_AGILE,
+ MUT_GREEN_SCALES,
+ MUT_BLACK_SCALES, // 5
+ MUT_GREY_SCALES,
+ MUT_BONEY_PLATES,
+ MUT_REPULSION_FIELD,
+ MUT_POISON_RESISTANCE,
+ MUT_CARNIVOROUS, // 10
+ MUT_HERBIVOROUS,
+ MUT_HEAT_RESISTANCE,
+ MUT_COLD_RESISTANCE,
+ MUT_SHOCK_RESISTANCE,
+ MUT_REGENERATION, // 15
+ MUT_FAST_METABOLISM,
+ MUT_SLOW_METABOLISM,
+ MUT_WEAK,
+ MUT_DOPEY,
+ MUT_CLUMSY, // 20
+ MUT_TELEPORT_CONTROL,
+ MUT_TELEPORT,
+ MUT_MAGIC_RESISTANCE,
+ MUT_FAST,
+ MUT_ACUTE_VISION, // 25
+ MUT_DEFORMED,
+ MUT_TELEPORT_AT_WILL,
+ MUT_SPIT_POISON,
+ MUT_MAPPING,
+ MUT_BREATHE_FLAMES, // 30
+ MUT_BLINK,
+ MUT_HORNS,
+ MUT_STRONG_STIFF,
+ MUT_FLEXIBLE_WEAK,
+ MUT_LOST, // 35
+ MUT_CLARITY,
+ MUT_BERSERK,
+ MUT_DETERIORATION,
+ MUT_BLURRY_VISION,
+ MUT_MUTATION_RESISTANCE, // 40
+ MUT_FRAIL,
+ MUT_ROBUST,
+ MUT_TORMENT_RESISTANCE,
+ MUT_NEGATIVE_ENERGY_RESISTANCE,
+ MUT_SUMMON_MINOR_DEMONS, // 45
+ MUT_SUMMON_DEMONS,
+ MUT_HURL_HELLFIRE,
+ MUT_CALL_TORMENT,
+ MUT_RAISE_DEAD,
+ MUT_CONTROL_DEMONS, // 50
+ MUT_PANDEMONIUM,
+ MUT_DEATH_STRENGTH,
+ MUT_CHANNEL_HELL,
+ MUT_DRAIN_LIFE,
+ MUT_THROW_FLAMES, // 55
+ MUT_THROW_FROST,
+ MUT_SMITE, // 57
+ MUT_CLAWS, //jmf: added
+ MUT_HOOVES, //jmf: etc.
+ MUT_BREATHE_POISON, // 60
+ MUT_STINGER,
+ MUT_BIG_WINGS,
+ MUT_BLUE_MARKS, // 63 - decorative, as in "mark of the devil"
+ MUT_GREEN_MARKS, // 64
+ MUT_RED_SCALES = 70, // 70
+ MUT_NACREOUS_SCALES,
+ MUT_GREY2_SCALES,
+ MUT_METALLIC_SCALES,
+ MUT_BLACK2_SCALES,
+ MUT_WHITE_SCALES, // 75
+ MUT_YELLOW_SCALES,
+ MUT_BROWN_SCALES,
+ MUT_BLUE_SCALES,
+ MUT_PURPLE_SCALES,
+ MUT_SPECKLED_SCALES, // 80
+ MUT_ORANGE_SCALES,
+ MUT_INDIGO_SCALES,
+ MUT_RED2_SCALES,
+ MUT_IRIDESCENT_SCALES,
+ MUT_PATTERNED_SCALES, // 85
+ NUM_MUTATIONS
+};
+
+enum NAUGHTY_THINGS
+{
+ NAUGHTY_NECROMANCY = 1, // 1 - using necromancy (spell or device)
+ NAUGHTY_UNHOLY, // 2 - using unholy stuff (call imp, summon things)
+ NAUGHTY_KILLING, // 3 - killing in the name of a peaceful deity
+ NAUGHTY_ATTACK_HOLY, // 4 - attacking holy things
+ NAUGHTY_ATTACK_FRIEND, // 5 - attacking friendly things
+ NAUGHTY_FRIEND_DIES, // 6 - allowing friendly things to die
+ NAUGHTY_BUTCHER, // 7 - butchering in the name of a peaceful deity
+ NAUGHTY_STABBING, // 8 - stabbing
+ NAUGHTY_SPELLCASTING, // 9 - spellcasting
+ NAUGHTY_POISON, // 10 - poisoning
+ NAUGHTY_STIMULANTS, //jmf: next three new, some not yet used
+ NAUGHTY_ATE_MEAT,
+ NAUGHTY_CREATED_LIFE,
+ NUM_NAUGHTY_THINGS
+};
+
+enum OBJECT_CLASSES // (unsigned char) mitm[].base_type
+{
+ OBJ_WEAPONS, // 0
+ OBJ_MISSILES,
+ OBJ_ARMOUR,
+ OBJ_WANDS,
+ OBJ_FOOD, // 4
+ OBJ_UNKNOWN_I = 5, // (use unknown) labeled as books in invent.cc {dlb}
+ OBJ_SCROLLS = 6, // 6
+ OBJ_JEWELLERY,
+ OBJ_POTIONS, // 8
+ OBJ_UNKNOWN_II = 9, // (use unknown, stackable) labeled as gems in invent.cc {dlb}
+ OBJ_BOOKS = 10, // 10
+ OBJ_STAVES,
+ OBJ_ORBS,
+ OBJ_MISCELLANY,
+ OBJ_CORPSES,
+ OBJ_GOLD, // important role as upper limit to chardump::dump_inventory() {dlb}
+ OBJ_GEMSTONES, // found in itemname.cc, labeled as miscellaneous in invent.cc {dlb}
+ NUM_OBJECT_CLASSES,
+ OBJ_UNASSIGNED = 100, // must remain set to 100 {dlb}
+ OBJ_RANDOM = 255 // must remain set to 255 {dlb} - also used
+ // for blanket random sub_type .. see dungeon::items()
+};
+
+enum ORBS
+{
+ ORB_ZOT // 0
+};
+
+enum POTIONS
+{
+ POT_HEALING, // 0
+ POT_HEAL_WOUNDS,
+ POT_SPEED,
+ POT_MIGHT,
+ POT_GAIN_STRENGTH,
+ POT_GAIN_DEXTERITY, // 5
+ POT_GAIN_INTELLIGENCE,
+ POT_LEVITATION,
+ POT_POISON,
+ POT_SLOWING,
+ POT_PARALYSIS, // 10
+ POT_CONFUSION,
+ POT_INVISIBILITY,
+ POT_PORRIDGE,
+ POT_DEGENERATION,
+ POT_DECAY, // 15
+ POT_WATER,
+ POT_EXPERIENCE,
+ POT_MAGIC,
+ POT_RESTORE_ABILITIES,
+ POT_STRONG_POISON, // 20
+ POT_BERSERK_RAGE,
+ POT_CURE_MUTATION,
+ POT_MUTATION,
+ NUM_POTIONS
+};
+
+enum PRONOUN_TYPE
+{
+ PRONOUN_CAP, // 0
+ PRONOUN_NOCAP, // 1
+ PRONOUN_CAP_POSSESSIVE, // 2
+ PRONOUN_NOCAP_POSSESSIVE, // 3
+ PRONOUN_REFLEXIVE // 4 (reflexive is always lowercase)
+};
+
+enum PROXIMITY // proximity to player to create monster
+{
+ PROX_ANYWHERE,
+ PROX_CLOSE_TO_PLAYER,
+ PROX_AWAY_FROM_PLAYER,
+ PROX_NEAR_STAIRS
+};
+
+enum RANDART_PROP
+{
+ RAP_BRAND, // 0
+ RAP_AC,
+ RAP_EVASION,
+ RAP_STRENGTH,
+ RAP_INTELLIGENCE,
+ RAP_DEXTERITY, // 5
+ RAP_FIRE,
+ RAP_COLD,
+ RAP_ELECTRICITY,
+ RAP_POISON,
+ RAP_NEGATIVE_ENERGY, // 10
+ RAP_MAGIC,
+ RAP_EYESIGHT,
+ RAP_INVISIBLE,
+ RAP_LEVITATE,
+ RAP_BLINK, // 15
+ RAP_CAN_TELEPORT,
+ RAP_BERSERK,
+ RAP_MAPPING,
+ RAP_NOISES,
+ RAP_PREVENT_SPELLCASTING, // 20
+ RAP_CAUSE_TELEPORTATION,
+ RAP_PREVENT_TELEPORTATION,
+ RAP_ANGRY,
+ RAP_METABOLISM,
+ RAP_MUTAGENIC, // 25
+ RAP_ACCURACY,
+ RAP_DAMAGE,
+ RAP_CURSED,
+ RAP_STEALTH
+};
+
+enum READ_BOOK_ACTION
+{
+ RBOOK_USE_STAFF,
+ RBOOK_MEMORIZE,
+ RBOOK_READ_SPELL
+};
+
+enum RUN_DIR
+{
+ RDIR_UP = 0,
+ RDIR_UP_RIGHT,
+ RDIR_RIGHT,
+ RDIR_DOWN_RIGHT,
+ RDIR_DOWN,
+ RDIR_DOWN_LEFT,
+ RDIR_LEFT,
+ RDIR_UP_LEFT,
+ RDIR_REST
+};
+
+enum RUNE_TYPES
+{
+ // Note: that runes DIS-SWAMP have the same numberic value as the branch
+ RUNE_DIS = 1,
+ RUNE_GEHENNA,
+ RUNE_COCYTUS = 4,
+ RUNE_TARTARUS,
+ RUNE_SLIME_PITS = 13,
+ RUNE_VAULTS,
+ RUNE_SNAKE_PIT = 19,
+ RUNE_ELVEN_HALLS, // unused
+ RUNE_TOMB,
+ RUNE_SWAMP,
+
+ // 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
+};
+
+enum SCORE_FORMAT
+{
+ SCORE_TERSE, // one line
+ SCORE_REGULAR, // two lines (name, cause, blank)
+ SCORE_VERBOSE // everything (dates, times, god, etc)
+};
+
+enum SCROLLS
+{
+ 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_FORGETFULNESS,
+ SCR_ACQUIREMENT,
+ SCR_ENCHANT_WEAPON_II,
+ SCR_VORPALISE_WEAPON, // 20
+ SCR_RECHARGING,
+ SCR_ENCHANT_WEAPON_III,
+ NUM_SCROLLS
+};
+
+enum SHOPS // (unsigned char) env.sh_type[], item_in_shop(), in_a_shop()
+{
+ SHOP_WEAPON, // 0
+ SHOP_ARMOUR,
+ SHOP_WEAPON_ANTIQUE,
+ SHOP_ARMOUR_ANTIQUE,
+ SHOP_GENERAL_ANTIQUE,
+ SHOP_JEWELLERY, // 5
+ SHOP_WAND,
+ SHOP_BOOK,
+ SHOP_FOOD,
+ SHOP_DISTILLERY,
+ SHOP_SCROLL, // 10
+ SHOP_GENERAL,
+ NUM_SHOPS, // must remain last 'regular' member {dlb}
+ SHOP_UNASSIGNED = 100, // keep set at 100 for now {dlb}
+ SHOP_RANDOM = 255 // keep set at 255 for now {dlb}
+};
+
+enum SKILLS
+{
+ SK_FIGHTING, // 0
+ SK_SHORT_BLADES,
+ SK_LONG_SWORDS,
+ SK_UNUSED_1, // SK_GREAT_SWORDS - now unused
+ SK_AXES,
+ SK_MACES_FLAILS, // 5
+ SK_POLEARMS,
+ SK_STAVES,
+ SK_SLINGS,
+ SK_BOWS,
+ SK_CROSSBOWS, // 10
+ SK_DARTS,
+ SK_THROWING,
+ SK_ARMOUR,
+ SK_DODGING,
+ SK_STEALTH, // 15
+ SK_STABBING,
+ SK_SHIELDS,
+ SK_TRAPS_DOORS,
+ SK_UNARMED_COMBAT, // 19
+ SK_SPELLCASTING = 25, // 25
+ SK_CONJURATIONS,
+ SK_ENCHANTMENTS,
+ SK_SUMMONINGS,
+ SK_NECROMANCY,
+ SK_TRANSLOCATIONS, // 30
+ SK_TRANSMIGRATION,
+ SK_DIVINATIONS,
+ SK_FIRE_MAGIC,
+ SK_ICE_MAGIC,
+ SK_AIR_MAGIC, // 35
+ SK_EARTH_MAGIC,
+ SK_POISON_MAGIC,
+ SK_INVOCATIONS,
+ SK_EVOCATIONS,
+ NUM_SKILLS // must remain last member {dlb}
+};
+
+enum SPECIAL_ARMOR
+{
+ 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, // 18
+ SPARM_RANDART_I = 25, // must remain at 25 for now - how high do they go? {dlb}
+ SPARM_RANDART_II = 26, // 26
+ SPARM_RANDART_III = 27, // 27
+ SPARM_RANDART_IV = 28, // 28
+ SPARM_RANDART_V = 29 // 29 - highest value found thus far {dlb}
+};
+
+enum SPECIAL_MISSILES // to separate from weapons in general {dlb}
+{
+ SPMSL_NORMAL, // 0
+ SPMSL_FLAME, // 1
+ SPMSL_ICE, // 2
+ SPMSL_POISONED, // 3 - from poison_ammo() enchantment {dlb}
+ SPMSL_POISONED_II, // 4
+};
+
+enum SPECIAL_ROOMS
+{
+ SROOM_LAIR_ORC, // 0
+ SROOM_LAIR_KOBOLD,
+ SROOM_TREASURY,
+ SROOM_BEEHIVE,
+ SROOM_MORGUE,
+ NUM_SPECIAL_ROOMS // 5 - must remain final member {dlb}
+};
+
+enum SPECIAL_RINGS // jewellery mitm[].special values
+{
+ SPRING_RANDART = 200,
+ SPRING_UNRANDART = 201
+};
+
+enum SPECIAL_WEAPONS // equivalent to (you.inv[].special or mitm[].special) % 30
+{
+ SPWPN_NORMAL, // 0
+ SPWPN_FLAMING,
+ SPWPN_FREEZING,
+ SPWPN_HOLY_WRATH,
+ SPWPN_ELECTROCUTION,
+ SPWPN_ORC_SLAYING, // 5
+ SPWPN_VENOM,
+ SPWPN_PROTECTION,
+ SPWPN_DRAINING,
+ SPWPN_SPEED,
+ SPWPN_VORPAL, // 10
+ SPWPN_FLAME,
+ SPWPN_FROST,
+ SPWPN_VAMPIRICISM,
+ SPWPN_DISRUPTION,
+ SPWPN_PAIN, // 15
+ SPWPN_DISTORTION,
+ SPWPN_REACHING, // 17
+ SPWPN_CONFUSE,
+ SPWPN_RANDART_I = 25, // 25
+ SPWPN_RANDART_II,
+ SPWPN_RANDART_III,
+ SPWPN_RANDART_IV,
+ SPWPN_RANDART_V,
+ NUM_SPECIAL_WEAPONS,
+ SPWPN_DUMMY_CRUSHING, // ONLY TEMPORARY USAGE -- converts to VORPAL
+
+ // everything above this point is a special artefact wield:
+ SPWPN_SINGING_SWORD = 181, // 181
+ SPWPN_WRATH_OF_TROG,
+ SPWPN_SCYTHE_OF_CURSES,
+ SPWPN_MACE_OF_VARIABILITY,
+ SPWPN_GLAIVE_OF_PRUNE, // 185
+ SPWPN_SCEPTRE_OF_TORMENT,
+ SPWPN_SWORD_OF_ZONGULDROK,
+
+ // these three are not generated randomly {dlb}
+ SPWPN_SWORD_OF_CEREBOV,
+ SPWPN_STAFF_OF_DISPATER,
+ SPWPN_SCEPTRE_OF_ASMODEUS, // 190
+
+ SPWPN_SWORD_OF_POWER,
+ SPWPN_KNIFE_OF_ACCURACY,
+ SPWPN_STAFF_OF_OLGREB,
+ SPWPN_VAMPIRES_TOOTH,
+ SPWPN_STAFF_OF_WUCAD_MU // 195
+};
+
+enum SPECIAL_WIELD // you.special_wield
+{
+ SPWLD_NONE, // 0
+ SPWLD_SING,
+ SPWLD_TROG,
+ SPWLD_CURSE,
+ SPWLD_VARIABLE, // 4
+ SPWLD_PRUNE, // 5 - implicit in it_use3::special_wielded() {dlb}
+ SPWLD_TORMENT, // 6
+ SPWLD_ZONGULDROK,
+ SPWLD_POWER,
+ SPWLD_WUCAD_MU, // 9
+ SPWLD_OLGREB, // 10
+ SPWLD_SHADOW = 50, // 50
+ SPWLD_HUM, // 51 - see it_use3::special_wielded() {dlb}
+ SPWLD_CHIME, // 52 - see it_use3::special_wielded() {dlb}
+ SPWLD_BECKON, // 53 - see it_use3::special_wielded() {dlb}
+ SPWLD_SHOUT // 54 - see it_use3::special_wielded() {dlb}
+};
+
+enum SPECIES
+{
+ SP_HUMAN = 1, // 1
+ SP_ELF,
+ SP_HIGH_ELF,
+ SP_GREY_ELF,
+ SP_DEEP_ELF, // 5
+ SP_SLUDGE_ELF,
+ SP_HILL_DWARF,
+ SP_MOUNTAIN_DWARF,
+ SP_HALFLING,
+ SP_HILL_ORC, // 10
+ SP_KOBOLD,
+ SP_MUMMY,
+ SP_NAGA,
+ SP_GNOME,
+ SP_OGRE, // 15
+ SP_TROLL,
+ SP_OGRE_MAGE,
+ SP_RED_DRACONIAN,
+ SP_WHITE_DRACONIAN,
+ SP_GREEN_DRACONIAN, // 20
+ SP_GOLDEN_DRACONIAN,
+ SP_GREY_DRACONIAN,
+ SP_BLACK_DRACONIAN,
+ SP_PURPLE_DRACONIAN,
+ SP_MOTTLED_DRACONIAN, // 25
+ SP_PALE_DRACONIAN,
+ SP_UNK0_DRACONIAN,
+ SP_UNK1_DRACONIAN,
+ SP_UNK2_DRACONIAN,
+ SP_CENTAUR, // 30
+ SP_DEMIGOD,
+ SP_SPRIGGAN,
+ SP_MINOTAUR,
+ SP_DEMONSPAWN,
+ SP_GHOUL, // 35
+ SP_KENKU,
+ SP_MERFOLK,
+ NUM_SPECIES, // always after the last species
+
+ SP_UNKNOWN = 100
+};
+
+enum SPELLS
+{
+ SPELL_IDENTIFY, // 0
+ SPELL_TELEPORT_SELF,
+ SPELL_CAUSE_FEAR,
+ SPELL_CREATE_NOISE,
+ SPELL_REMOVE_CURSE,
+ SPELL_MAGIC_DART, // 5
+ SPELL_FIREBALL,
+ SPELL_SWAP,
+ SPELL_APPORTATION,
+ SPELL_TWIST,
+ SPELL_FAR_STRIKE, // 10
+ SPELL_DELAYED_FIREBALL,
+ SPELL_STRIKING,
+ SPELL_CONJURE_FLAME,
+ SPELL_DIG,
+ SPELL_BOLT_OF_FIRE, // 15
+ SPELL_BOLT_OF_COLD,
+ SPELL_LIGHTNING_BOLT,
+ SPELL_BOLT_OF_MAGMA, // 18
+ SPELL_POLYMORPH_OTHER = 20, // 20
+ SPELL_SLOW,
+ SPELL_HASTE,
+ SPELL_PARALYZE,
+ SPELL_CONFUSE,
+ SPELL_INVISIBILITY, // 25
+ SPELL_THROW_FLAME,
+ SPELL_THROW_FROST,
+ SPELL_CONTROLLED_BLINK,
+ SPELL_FREEZING_CLOUD,
+ SPELL_MEPHITIC_CLOUD, // 30
+ SPELL_RING_OF_FLAMES,
+ SPELL_RESTORE_STRENGTH,
+ SPELL_RESTORE_INTELLIGENCE,
+ SPELL_RESTORE_DEXTERITY,
+ SPELL_VENOM_BOLT, // 35
+ SPELL_OLGREBS_TOXIC_RADIANCE,
+ SPELL_TELEPORT_OTHER,
+ SPELL_LESSER_HEALING,
+ SPELL_GREATER_HEALING,
+ SPELL_CURE_POISON_I, // 40
+ SPELL_PURIFICATION,
+ SPELL_DEATHS_DOOR,
+ SPELL_SELECTIVE_AMNESIA,
+ SPELL_MASS_CONFUSION,
+ SPELL_SMITING, // 45
+ SPELL_REPEL_UNDEAD,
+ SPELL_HOLY_WORD,
+ SPELL_DETECT_CURSE,
+ SPELL_SUMMON_SMALL_MAMMAL,
+ SPELL_ABJURATION_I, // 50
+ SPELL_SUMMON_SCORPIONS,
+ SPELL_LEVITATION,
+ SPELL_BOLT_OF_DRAINING,
+ SPELL_LEHUDIBS_CRYSTAL_SPEAR,
+ SPELL_BOLT_OF_INACCURACY, // 55
+ SPELL_POISONOUS_CLOUD,
+ SPELL_FIRE_STORM,
+ SPELL_DETECT_TRAPS,
+ SPELL_BLINK,
+ SPELL_ISKENDERUNS_MYSTIC_BLAST, // 60
+ SPELL_SWARM,
+ SPELL_SUMMON_HORRIBLE_THINGS,
+ SPELL_ENSLAVEMENT,
+ SPELL_MAGIC_MAPPING,
+ SPELL_HEAL_OTHER, // 65
+ SPELL_ANIMATE_DEAD,
+ SPELL_PAIN,
+ SPELL_EXTENSION,
+ SPELL_CONTROL_UNDEAD,
+ SPELL_ANIMATE_SKELETON, // 70
+ SPELL_VAMPIRIC_DRAINING,
+ SPELL_SUMMON_WRAITHS,
+ SPELL_DETECT_ITEMS,
+ SPELL_BORGNJORS_REVIVIFICATION,
+ SPELL_BURN, // 75
+ SPELL_FREEZE,
+ SPELL_SUMMON_ELEMENTAL,
+ SPELL_OZOCUBUS_REFRIGERATION,
+ SPELL_STICKY_FLAME,
+ SPELL_SUMMON_ICE_BEAST, // 80
+ SPELL_OZOCUBUS_ARMOUR,
+ SPELL_CALL_IMP,
+ SPELL_REPEL_MISSILES,
+ SPELL_BERSERKER_RAGE,
+ SPELL_DISPEL_UNDEAD, // 85
+ SPELL_GUARDIAN,
+ SPELL_PESTILENCE,
+ SPELL_THUNDERBOLT,
+ SPELL_FLAME_OF_CLEANSING,
+ SPELL_SHINING_LIGHT, // 90
+ SPELL_SUMMON_DAEVA,
+ SPELL_ABJURATION_II,
+ SPELL_FULSOME_DISTILLATION, // 93
+ SPELL_POISON_ARROW, // 94
+ SPELL_TWISTED_RESURRECTION = 110, // 110
+ SPELL_REGENERATION,
+ SPELL_BONE_SHARDS,
+ SPELL_BANISHMENT,
+ SPELL_CIGOTUVIS_DEGENERATION,
+ SPELL_STING, // 115
+ SPELL_SUBLIMATION_OF_BLOOD,
+ SPELL_TUKIMAS_DANCE,
+ SPELL_HELLFIRE,
+ SPELL_SUMMON_DEMON,
+ SPELL_DEMONIC_HORDE, // 120
+ SPELL_SUMMON_GREATER_DEMON,
+ SPELL_CORPSE_ROT,
+ SPELL_TUKIMAS_VORPAL_BLADE,
+ SPELL_FIRE_BRAND,
+ SPELL_FREEZING_AURA, // 125
+ SPELL_LETHAL_INFUSION,
+ SPELL_CRUSH,
+ SPELL_BOLT_OF_IRON,
+ SPELL_STONE_ARROW,
+ SPELL_TOMB_OF_DOROKLOHE, // 130
+ SPELL_STONEMAIL,
+ SPELL_SHOCK,
+ SPELL_SWIFTNESS,
+ SPELL_FLY,
+ SPELL_INSULATION, // 135
+ SPELL_ORB_OF_ELECTROCUTION,
+ SPELL_DETECT_CREATURES,
+ SPELL_CURE_POISON_II,
+ SPELL_CONTROL_TELEPORT,
+ SPELL_POISON_AMMUNITION, // 140
+ SPELL_POISON_WEAPON,
+ SPELL_RESIST_POISON,
+ SPELL_PROJECTED_NOISE,
+ SPELL_ALTER_SELF,
+ SPELL_DEBUGGING_RAY, // 145
+ SPELL_RECALL,
+ SPELL_PORTAL,
+ SPELL_AGONY,
+ SPELL_SPIDER_FORM,
+ SPELL_DISRUPT, // 150
+ SPELL_DISINTEGRATE,
+ SPELL_BLADE_HANDS,
+ SPELL_STATUE_FORM,
+ SPELL_ICE_FORM,
+ SPELL_DRAGON_FORM, // 155
+ SPELL_NECROMUTATION,
+ SPELL_DEATH_CHANNEL,
+ SPELL_SYMBOL_OF_TORMENT,
+ SPELL_DEFLECT_MISSILES,
+ SPELL_ORB_OF_FRAGMENTATION, // 160
+ SPELL_ICE_BOLT,
+ SPELL_ICE_STORM,
+ SPELL_ARC,
+ SPELL_AIRSTRIKE,
+ SPELL_SHADOW_CREATURES, // 165
+ SPELL_CONFUSING_TOUCH,
+ SPELL_SURE_BLADE,
+//jmf: new spells
+ SPELL_FLAME_TONGUE,
+ SPELL_PASSWALL,
+ SPELL_IGNITE_POISON, // 170
+ SPELL_STICKS_TO_SNAKES,
+ SPELL_SUMMON_LARGE_MAMMAL, // e.g. hound
+ SPELL_SUMMON_DRAGON,
+ SPELL_TAME_BEASTS, // charm/enslave but only animals
+ SPELL_SLEEP, // 175
+ SPELL_MASS_SLEEP,
+ SPELL_DETECT_MAGIC, //jmf: unfinished, perhaps useless
+ SPELL_DETECT_SECRET_DOORS,
+ SPELL_SEE_INVISIBLE,
+ SPELL_FORESCRY, // 180
+ SPELL_SUMMON_BUTTERFLIES,
+ SPELL_WARP_BRAND,
+ SPELL_SILENCE,
+ SPELL_SHATTER,
+ SPELL_DISPERSAL, // 185
+ SPELL_DISCHARGE,
+ SPELL_BEND,
+ SPELL_BACKLIGHT,
+ SPELL_INTOXICATE, // confusion but only "smart" creatures
+ SPELL_GLAMOUR, // charm/confuse/sleep but only "smart" creatures 190
+ SPELL_EVAPORATE, // turn a potion into a cloud
+ SPELL_ERINGYAS_SURPRISING_BOUQUET, // turn sticks into herbivore food
+ SPELL_FRAGMENTATION, // replacement for "orb of frag"
+ SPELL_AIR_WALK, // "dematerialize" (air/transmigration)
+ SPELL_SANDBLAST, // mini-frag; can use stones for material comp 195
+ SPELL_ROTTING, // evil god power or necromantic transmigration
+ SPELL_SHUGGOTH_SEED, // evil god power or necromantic summoning
+ SPELL_MAXWELLS_SILVER_HAMMER, // vorpal-brand maces etc.
+ SPELL_CONDENSATION_SHIELD, // "shield" of icy vapour
+ SPELL_SEMI_CONTROLLED_BLINK, //jmf: to test effect 200
+ SPELL_STONESKIN,
+ SPELL_SIMULACRUM,
+ SPELL_CONJURE_BALL_LIGHTNING, // 203 (be wary of 210, see below)
+ NUM_SPELLS,
+ SPELL_NO_SPELL = 210 // 210 - added 22jan2000 {dlb}
+};
+
+enum SPELL_TYPES //jmf: 24jul2000: changed from integer-list to bitfield
+{
+ SPTYP_NONE = 0, // "0" is reserved for no type at all {dlb}
+ SPTYP_CONJURATION = 1, // was 11, but only for old typematch routine {dlb}
+ SPTYP_ENCHANTMENT = 1<<1,
+ SPTYP_FIRE = 1<<2,
+ SPTYP_ICE = 1<<3,
+ SPTYP_TRANSMIGRATION = 1<<4,
+ SPTYP_NECROMANCY = 1<<5,
+ SPTYP_SUMMONING = 1<<6,
+ SPTYP_DIVINATION = 1<<7,
+ SPTYP_TRANSLOCATION = 1<<8,
+ SPTYP_POISON = 1<<9,
+ SPTYP_EARTH = 1<<10,
+ SPTYP_AIR = 1<<11,
+ SPTYP_HOLY = 1<<12, //jmf: moved to accomodate "random" miscast f/x
+ SPTYP_LAST_EXPONENT = 12, //jmf: ``NUM_SPELL_TYPES'' kinda useless
+ NUM_SPELL_TYPES = 14,
+ SPTYP_RANDOM = 1<<14
+};
+
+enum STATS
+{
+ STAT_STRENGTH, // 0
+ STAT_DEXTERITY,
+ STAT_INTELLIGENCE,
+ NUM_STATS, // added for increase_stats() {dlb}
+ STAT_ALL, // must remain after NUM_STATS -- added to handle royal jelly, etc. {dlb}
+ STAT_RANDOM = 255 // leave at 255, added for increase_stats() handling {dlb}
+};
+
+enum STATUE_TYPES
+{
+ STATUE_SILVER,
+ STATUE_ORANGE_CRYSTAL,
+ NUM_STATUE_TYPES
+};
+
+enum STATUS_REDRAW_FLAGS
+{
+ REDRAW_HUNGER = 0x00000001,
+ REDRAW_BURDEN = 0x00000002,
+ REDRAW_LINE_1_MASK = 0x00000003,
+
+ REDRAW_PRAYER = 0x00000100,
+ REDRAW_REPEL_UNDEAD = 0x00000200,
+ REDRAW_BREATH = 0x00000400,
+ REDRAW_REPEL_MISSILES = 0x00000800,
+ REDRAW_REGENERATION = 0x00001000,
+ REDRAW_INSULATION = 0x00002000,
+ REDRAW_FLY = 0x00004000,
+ REDRAW_INVISIBILITY = 0x00008000,
+ REDRAW_LINE_2_MASK = 0x0000ff00,
+
+ REDRAW_CONFUSION = 0x00010000,
+ REDRAW_POISONED = 0x00020000,
+ REDRAW_LIQUID_FLAMES = 0x00040000,
+ REDRAW_DISEASED = 0x00080000,
+ REDRAW_CONTAMINATED = 0x00100000,
+ REDRAW_SWIFTNESS = 0x00200000,
+ REDRAW_SPEED = 0x00400000,
+ REDRAW_LINE_3_MASK = 0x007f0000
+};
+
+enum STAVES
+{
+ STAFF_WIZARDRY, // 0
+ STAFF_POWER,
+ STAFF_FIRE,
+ STAFF_COLD,
+ STAFF_POISON,
+ STAFF_ENERGY, // 5
+ STAFF_DEATH,
+ STAFF_CONJURATION,
+ STAFF_ENCHANTMENT,
+ STAFF_SUMMONING,
+ STAFF_SMITING, // 10
+ STAFF_SPELL_SUMMONING,
+ STAFF_DESTRUCTION_I,
+ STAFF_DESTRUCTION_II,
+ STAFF_DESTRUCTION_III,
+ STAFF_DESTRUCTION_IV, // 15
+ STAFF_WARDING,
+ STAFF_DISCOVERY,
+ STAFF_DEMONOLOGY, // 18
+ STAFF_STRIKING, // 19
+ STAFF_AIR = 25, // 25
+ STAFF_EARTH,
+ STAFF_CHANNELING,
+ NUM_STAVES // must remain last member {dlb}
+};
+
+enum SYMBOLS // beam[].type - note that this (and its variants) also accepts values from other enums - confusing {dlb}
+{
+ SYM_SPACE = ' ', // 32
+ SYM_FLASK = '!', // 33
+ SYM_BOLT = '#', // 35
+ SYM_CHUNK = '%', // 37
+ SYM_OBJECT = '(', // 40 - actually used for books, but... {dlb}
+ SYM_WEAPON = ')', // 41
+ SYM_ZAP = '*', // 42
+ SYM_BURST = '+', // 43
+ SYM_STICK = '/', // 47
+ SYM_TRINKET = '=', // 61
+ SYM_SCROLL = '?', // 63
+ SYM_DEBUG = 'X', // 88
+ SYM_ARMOUR = '[', // 91
+ SYM_MISSILE = '`' // 96
+};
+
+enum TAGS // used during save/load process to identify data blocks
+{
+ TAG_VERSION = 0, // should NEVER be read in!
+ TAG_YOU = 1, // 'you' structure
+ TAG_YOU_ITEMS, // your items
+ TAG_YOU_DUNGEON, // dungeon specs (stairs, branches, features)
+ TAG_LEVEL, // various grids & clouds
+ TAG_LEVEL_ITEMS, // items/traps
+ TAG_LEVEL_MONSTERS, // monsters
+ TAG_GHOST, // ghost
+ TAG_LEVEL_ATTITUDE, // monster attitudes
+ NUM_TAGS
+};
+
+enum TAGTYPES // file types supported by tag system
+{
+ TAGTYPE_PLAYER=0, // Foo.sav
+ TAGTYPE_LEVEL, // Foo.00a, .01a, etc.
+ TAGTYPE_GHOST // bones.xxx
+};
+
+
+enum TRANSFORMATIONS
+{
+ TRAN_NONE, // 0
+ TRAN_SPIDER,
+ TRAN_BLADE_HANDS,
+ TRAN_STATUE,
+ TRAN_ICE_BEAST,
+ TRAN_DRAGON, // 5
+ TRAN_LICH,
+ TRAN_SERPENT_OF_HELL,
+ TRAN_AIR,
+ NUM_TRANSFORMATIONS // must remain last member {dlb}
+};
+
+enum TRAPS // env.trap_type[]
+{
+ TRAP_DART, // 0
+ TRAP_ARROW,
+ TRAP_SPEAR,
+ TRAP_AXE,
+ TRAP_TELEPORT,
+ TRAP_AMNESIA, // 5
+ TRAP_BLADE,
+ TRAP_BOLT,
+ TRAP_ZOT,
+ TRAP_NEEDLE,
+ NUM_TRAPS, // must remain last 'regular' member {dlb}
+ TRAP_UNASSIGNED = 100, // keep set at 100 for now {dlb}
+ TRAP_RANDOM = 255 // set at 255 to avoid potential conflicts {dlb}
+};
+
+enum UNARMED_ATTACKS
+{
+ UNAT_NO_ATTACK, // 0
+ UNAT_KICK,
+ UNAT_HEADBUTT,
+ UNAT_TAILSLAP,
+ UNAT_PUNCH
+};
+
+enum UNDEAD_STATES // you.is_undead
+{
+ US_ALIVE, // 0
+ US_HUNGRY_DEAD,
+ US_UNDEAD
+};
+
+enum UNIQUE_ITEM_STATUS
+{
+ UNIQ_NOT_EXISTS = 0,
+ UNIQ_EXISTS = 1,
+ UNIQ_LOST_IN_ABYSS = 2
+};
+
+enum VORPAL_DESCRIPTIONS
+{
+ DVORP_CRUSHING, // 0
+ DVORP_SLICING,
+ DVORP_PIERCING,
+ DVORP_CHOPPING
+};
+
+// NOTE: This order is very special! Its basically the same as ZAP_*,
+// and there are bits of the code that still use that fact.. see zap_wand().
+enum WANDS // mitm[].subtype
+{
+ WAND_FLAME, // 0
+ WAND_FROST,
+ WAND_SLOWING,
+ WAND_HASTING,
+ WAND_MAGIC_DARTS,
+ WAND_HEALING, // 5
+ WAND_PARALYSIS,
+ WAND_FIRE,
+ WAND_COLD,
+ WAND_CONFUSION,
+ WAND_INVISIBILITY, // 10
+ WAND_DIGGING,
+ WAND_FIREBALL,
+ WAND_TELEPORTATION,
+ WAND_LIGHTNING,
+ WAND_POLYMORPH_OTHER, // 15
+ WAND_ENSLAVEMENT,
+ WAND_DRAINING,
+ WAND_RANDOM_EFFECTS,
+ WAND_DISINTEGRATION,
+ NUM_WANDS // must remain last member {dlb}
+};
+
+enum WEAPONS
+{
+// Base weapons
+ WPN_CLUB, // 0
+ WPN_MACE,
+ WPN_FLAIL,
+ WPN_DAGGER,
+ WPN_MORNINGSTAR,
+ WPN_SHORT_SWORD, // 5
+ WPN_LONG_SWORD,
+ WPN_GREAT_SWORD,
+ WPN_SCIMITAR,
+ WPN_HAND_AXE,
+ WPN_BATTLEAXE, // 10
+ WPN_SPEAR,
+ WPN_HALBERD,
+ WPN_SLING,
+ WPN_BOW,
+ WPN_CROSSBOW, // 15
+ WPN_HAND_CROSSBOW,
+ WPN_GLAIVE,
+ WPN_QUARTERSTAFF,
+// these three not created ordinarily
+ WPN_SCYTHE,
+ WPN_GIANT_CLUB, // 20
+ WPN_GIANT_SPIKED_CLUB,
+// "rare" weapons - some have special cases and are uncommon
+ WPN_EVENINGSTAR,
+ WPN_QUICK_BLADE,
+ WPN_KATANA,
+ WPN_EXECUTIONERS_AXE, // 25
+ WPN_DOUBLE_SWORD,
+ WPN_TRIPLE_SWORD,
+ WPN_HAMMER,
+ WPN_ANCUS,
+ WPN_WHIP, // 30
+ WPN_SABRE,
+ WPN_DEMON_BLADE,
+ WPN_DEMON_WHIP,
+ WPN_DEMON_TRIDENT,
+ WPN_BROAD_AXE, // 35
+// base items (continued)
+ WPN_WAR_AXE,
+ WPN_TRIDENT,
+ WPN_SPIKED_FLAIL,
+ WPN_GREAT_MACE,
+ WPN_GREAT_FLAIL, // 40
+ WPN_KNIFE,
+ WPN_BLOWGUN,
+ WPN_FALCHION,
+ NUM_WEAPONS, // 44 - must remain last regular member {dlb}
+// special cases
+ WPN_UNARMED = 500, // 500
+ WPN_UNKNOWN = 1000, // 1000
+ WPN_RANDOM
+};
+
+enum WEAPON_DESCRIPTIONS
+{
+ 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_PROPERTIES
+{
+ PWPN_DAMAGE, // 0
+ PWPN_HIT,
+ PWPN_SPEED
+};
+
+#ifdef WIZARD
+
+enum WIZARD_OPTIONS
+{
+ WIZ_NEVER, // protect player from accidental wiz
+ WIZ_NO, // don't start character in wiz mode
+ WIZ_YES // start character in wiz mode
+};
+
+#endif
+
+enum ZAPS // zapping(), zappy()
+{
+ ZAP_FLAME, // 0
+ ZAP_FROST,
+ ZAP_SLOWING,
+ ZAP_HASTING,
+ ZAP_MAGIC_DARTS,
+ ZAP_HEALING, // 5
+ ZAP_PARALYSIS,
+ ZAP_FIRE,
+ ZAP_COLD,
+ ZAP_CONFUSION,
+ ZAP_INVISIBILITY, // 10
+ ZAP_DIGGING,
+ ZAP_FIREBALL,
+ ZAP_TELEPORTATION,
+ ZAP_LIGHTNING,
+ ZAP_POLYMORPH_OTHER, // 15
+ ZAP_VENOM_BOLT,
+ ZAP_NEGATIVE_ENERGY,
+ ZAP_CRYSTAL_SPEAR,
+ ZAP_BEAM_OF_ENERGY,
+ ZAP_MYSTIC_BLAST, // 20
+ ZAP_ENSLAVEMENT,
+ ZAP_PAIN,
+ ZAP_STICKY_FLAME,
+ ZAP_DISPEL_UNDEAD,
+ ZAP_CLEANSING_FLAME, // 25
+ ZAP_BONE_SHARDS,
+ ZAP_BANISHMENT,
+ ZAP_DEGENERATION,
+ ZAP_STING,
+ ZAP_HELLFIRE, // 30
+ ZAP_IRON_BOLT,
+ ZAP_STRIKING,
+ ZAP_STONE_ARROW,
+ ZAP_ELECTRICITY,
+ ZAP_ORB_OF_ELECTRICITY, // 35
+ ZAP_SPIT_POISON,
+ ZAP_DEBUGGING_RAY,
+ ZAP_BREATHE_FIRE,
+ ZAP_BREATHE_FROST,
+ ZAP_BREATHE_ACID, // 40
+ ZAP_BREATHE_POISON,
+ ZAP_BREATHE_POWER,
+ ZAP_ENSLAVE_UNDEAD,
+ ZAP_AGONY,
+ ZAP_DISRUPTION, // 45
+ ZAP_DISINTEGRATION, // 46
+ ZAP_ISKS_CROSS, // 47: Isk's Cross -- commented out, deprecated {dlb}
+ ZAP_BREATHE_STEAM = 48, // 48
+ ZAP_CONTROL_DEMON,
+ ZAP_ORB_OF_FRAGMENTATION, // 50
+ ZAP_ICE_BOLT,
+ ZAP_ICE_STORM,
+ ZAP_BACKLIGHT, //jmf: added next bunch 19mar2000
+ ZAP_SLEEP,
+ ZAP_FLAME_TONGUE,
+ ZAP_SANDBLAST,
+ ZAP_SMALL_SANDBLAST,
+ ZAP_MAGMA,
+ ZAP_POISON_ARROW,
+ NUM_ZAPS // must remain last member {dlb}
+};
+
+
+#endif // ENUM_H