summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/enum.h
diff options
context:
space:
mode:
Diffstat (limited to 'crawl-ref/source/enum.h')
-rw-r--r--crawl-ref/source/enum.h867
1 files changed, 637 insertions, 230 deletions
diff --git a/crawl-ref/source/enum.h b/crawl-ref/source/enum.h
index a803a5d5c6..c084ec3154 100644
--- a/crawl-ref/source/enum.h
+++ b/crawl-ref/source/enum.h
@@ -30,7 +30,7 @@
#ifndef ENUM_H
#define ENUM_H
-enum ABILITIES
+enum ability_type
{
ABIL_NON_ABILITY = -1,
ABIL_SPIT_POISON = 1, // 1
@@ -49,7 +49,7 @@ enum ABILITIES
ABIL_BREATHE_STEAM,
ABIL_FLY, // 15
ABIL_SUMMON_MINOR_DEMON,
- ABIL_SUMMON_DEMON,
+ ABIL_SUMMON_DEMONS,
ABIL_HELLFIRE,
ABIL_TORMENT,
ABIL_RAISE_DEAD, // 20
@@ -79,7 +79,7 @@ enum ABILITIES
ABIL_TSO_REPEL_UNDEAD = 120, // 120
ABIL_TSO_SMITING,
ABIL_TSO_ANNIHILATE_UNDEAD,
- ABIL_TSO_THUNDERBOLT,
+ ABIL_TSO_CLEANSING_FLAME,
ABIL_TSO_SUMMON_DAEVA, // 124
ABIL_KIKU_RECALL_UNDEAD_SLAVES = 130, // 130
ABIL_KIKU_ENSLAVE_UNDEAD = 132, // 132
@@ -110,11 +110,15 @@ enum ABILITIES
ABIL_TRAN_SERPENT_OF_HELL,
ABIL_ROTTING,
ABIL_TORMENT_II,
- ABIL_SHUGGOTH_SEED,
+ ABIL_PAIN,
+ ABIL_ENSLAVE_UNDEAD,
+ ABIL_BOLT_OF_FIRE,
+ ABIL_BOLT_OF_COLD,
+ ABIL_HELLFROST,
ABIL_RENOUNCE_RELIGION = 250 // 250
};
-enum ABILITY_FLAGS
+enum ability_flag_type
{
ABFLAG_NONE = 0x00000000,
ABFLAG_BREATH = 0x00000001, // ability uses DUR_BREATH_WEAPON
@@ -126,7 +130,7 @@ enum ABILITY_FLAGS
ABFLAG_PERMANENT_MP = 0x00000040 // costs permanent MPs
};
-enum ACTIVITY
+enum activity_type
{
ACT_NONE = 0,
ACT_MULTIDROP,
@@ -137,7 +141,7 @@ enum ACTIVITY
ACT_ACTIVITY_COUNT
};
-enum ACT_INTERRUPT
+enum activity_interrupt_type
{
AI_FORCE_INTERRUPT = 0, // Forcibly kills any activity
AI_KEYPRESS = 0x01,
@@ -153,7 +157,7 @@ enum ACT_INTERRUPT
AI_TELEPORT = 0x400
};
-enum AI_PAYLOAD
+enum activity_interrupt_payload_type
{
AIP_NONE,
AIP_INT,
@@ -162,7 +166,7 @@ enum AI_PAYLOAD
AIP_HP_LOSS
};
-enum AMMUNITION_DESCRIPTIONS
+enum ammunition_description_type
{
DAMMO_ORCISH = 3, // 3
DAMMO_ELVEN,
@@ -170,7 +174,7 @@ enum AMMUNITION_DESCRIPTIONS
};
// Various ways to get the acquirement effect.
-enum AQ_AGENTS
+enum acquirement_agent_type
{
AQ_SCROLL = 0,
@@ -184,7 +188,7 @@ enum AQ_AGENTS
AQ_WIZMODE = 200
};
-enum ARMOUR
+enum armour_type
{
ARM_ROBE, // 0
ARM_LEATHER_ARMOUR,
@@ -219,10 +223,16 @@ enum ARMOUR
ARM_ANIMAL_SKIN, // 30
ARM_SWAMP_DRAGON_HIDE,
ARM_SWAMP_DRAGON_ARMOUR,
+ ARM_STUDDED_LEATHER_ARMOUR,
+ ARM_CAP,
+ ARM_CENTAUR_BARDING, // 35
+ ARM_NAGA_BARDING,
+
NUM_ARMOURS
};
-enum ARMOUR_DESCRIPTIONS
+// these are for the old system (still used for reading old files)
+enum armour_description_type
{
DARM_PLAIN, // added for the heck of it, 15 Apr 2000 {dlb}
DARM_EMBROIDERED_SHINY = 1, // which it is dependent upon armour subtype {dlb}
@@ -233,14 +243,13 @@ enum ARMOUR_DESCRIPTIONS
DARM_ORCISH
};
-enum ARMOUR_PROPERTIES
+enum armour_property_type
{
PARM_AC, // 0
PARM_EVASION
};
-// Note: currently the size of the attr array is hard coded at 30! ick! -- bwr
-enum ATTRIBUTES
+enum attribute_type
{
ATTR_DIVINE_LIGHTNING_PROTECTION, // 0
// ATTR_SPEC_AIR, // don't use this!
@@ -258,10 +267,15 @@ enum ATTRIBUTES
ATTR_WALLS,
ATTR_LAST_WALLS,
ATTR_DELAYED_FIREBALL, // bwr: reserve fireballs
- NUM_ATTRIBUTES // must always remain last member {dlb}
+ ATTR_DEMONIC_POWER_1,
+ ATTR_DEMONIC_POWER_2,
+ ATTR_DEMONIC_POWER_3,
+ ATTR_DEMONIC_POWER_4,
+ ATTR_DEMONIC_POWER_5, // 19
+ NUM_ATTRIBUTES = 30 // must be at least 30
};
-enum BANDS
+enum band_type
{
BAND_NO_BAND = 0,
BAND_KOBOLDS = 1,
@@ -306,10 +320,11 @@ enum BANDS
BAND_BOGGARTS,
BAND_BLINK_FROGS,
BAND_SKELETAL_WARRIORS, // 44
+ BAND_DRACONIAN, // 45
NUM_BANDS // always last
};
-enum BEAMS // beam[].flavour
+enum beam_type // beam[].flavour
{
BEAM_MISSILE, // 0
BEAM_MMISSILE, // 1 - and similarly unresistable things
@@ -319,13 +334,17 @@ enum BEAMS // beam[].flavour
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_ACID,
+ BEAM_MIASMA,
+ // BEAM_EXPLOSION, // 10 - use is_explosion, and BEAM of flavour
+ BEAM_SPORE = 11,
+ BEAM_POISON_ARROW,
+ BEAM_HELLFIRE,
+ BEAM_NAPALM,
+ BEAM_STEAM, // 15
+ BEAM_HELLFROST,
+ BEAM_ENERGY,
+ BEAM_HOLY, // 18 - aka beam of cleansing, golden flame
BEAM_FRAG,
BEAM_LAVA, // 20
BEAM_BACKLIGHT,
@@ -352,6 +371,8 @@ enum BEAMS // beam[].flavour
BEAM_DISPEL_UNDEAD, // YELLOW
BEAM_DISINTEGRATION, // WHITE
BEAM_ENSLAVE_DEMON, // colour "16"
+ BEAM_BLINK,
+ BEAM_PETRIFY,
// new beams for evaporate
BEAM_POTION_STINKING_CLOUD,
@@ -365,10 +386,10 @@ enum BEAMS // beam[].flavour
BEAM_POTION_PURP_SMOKE,
BEAM_POTION_RANDOM,
- BEAM_LINE_OF_SIGHT, // only to check monster LOS
+ BEAM_LINE_OF_SIGHT // only used for checking monster LOS
};
-enum BOOKS
+enum book_type
{
BOOK_MINOR_MAGIC_I, // 0
BOOK_MINOR_MAGIC_II,
@@ -421,7 +442,7 @@ enum BOOKS
NUM_BOOKS
};
-enum BRANCHES // you.where_are_you
+enum branch_type // you.where_are_you
{
BRANCH_MAIN_DUNGEON, // 0
BRANCH_DIS,
@@ -443,10 +464,11 @@ enum BRANCHES // you.where_are_you
BRANCH_SNAKE_PIT,
BRANCH_ELVEN_HALLS, // 20
BRANCH_TOMB,
- BRANCH_SWAMP
+ BRANCH_SWAMP,
+ BRANCH_CAVERNS
};
-enum BRANCH_STAIRS // you.branch_stairs[] - 10 less than BRANCHES {dlb}
+enum branch_stair_type // you.branch_stairs[] - 10 less than BRANCHES {dlb}
{
STAIRS_ORCISH_MINES, // 0
STAIRS_HIVE,
@@ -460,17 +482,18 @@ enum BRANCH_STAIRS // you.branch_stairs[] - 10 less than BRANCHES {dlb}
STAIRS_SNAKE_PIT,
STAIRS_ELVEN_HALLS, // 10
STAIRS_TOMB,
- STAIRS_SWAMP
+ STAIRS_SWAMP,
+ STAIRS_CAVERNS
};
-enum BURDEN_STATES // you.burden_state
+enum burden_state_type // you.burden_state
{
BS_UNENCUMBERED, // 0
BS_ENCUMBERED = 2, // 2
BS_OVERLOADED = 5 // 5
};
-enum CANNED_MESSAGES // canned_msg() - unsigned char
+enum canned_message_type // canned_msg() - unsigned char
{
MSG_SOMETHING_APPEARS, // 0
MSG_NOTHING_HAPPENS,
@@ -482,10 +505,22 @@ enum CANNED_MESSAGES // canned_msg() - unsigned char
MSG_UNTHINKING_ACT,
MSG_SPELL_FIZZLES,
MSG_HUH,
- MSG_EMPTY_HANDED
+ MSG_EMPTY_HANDED,
+ MSG_NOT_IN_PRESENT_FORM,
+ MSG_TOO_CONFUSED,
+ MSG_DISORIENTED,
+ MSG_CANT_REACH
+};
+
+enum char_set_type
+{
+ CSET_ASCII, // flat 7-bit ASCII
+ CSET_IBM, // 8-bit ANSI/Code Page 437
+ CSET_DEC, // 8-bit DEC, 0xE0-0xFF shifted for line drawing chars
+ NUM_CSET
};
-enum CLOUD_TYPES // cloud_type[], place_cloud(), big_cloud()
+enum cloud_type
{
CLOUD_NONE, // 0
CLOUD_FIRE, // 1
@@ -498,6 +533,7 @@ enum CLOUD_TYPES // cloud_type[], place_cloud(), big_cloud()
CLOUD_STEAM, // 8
CLOUD_MIASMA = 9, // 9: found 11jan2000 {dlb}
CLOUD_BLACK_SMOKE = 10, //was: CLOUD_STICKY_FLAME and wrong 19jan2000 {dlb}
+ CLOUD_RANDOM = 98,
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}
@@ -512,7 +548,7 @@ enum CLOUD_TYPES // cloud_type[], place_cloud(), big_cloud()
CLOUD_BLACK_SMOKE_MON = 110 // 110: added 19jan2000 {dlb}
};
-enum COMMANDS
+enum command_type
{
CMD_NO_CMD = 1000, // 1000
CMD_MOVE_NOWHERE,
@@ -610,15 +646,14 @@ enum COMMANDS
CMD_CLEAR_MAP
};
-enum CONFIRM_LEVEL
+enum confirm_level_type
{
CONFIRM_NONE_EASY,
CONFIRM_SAFE_EASY,
CONFIRM_ALL_EASY
};
-// [dshaligram] 4.1 merge GOOD_ and NAUGHTY_ into generic conducts.
-enum CONDUCTS
+enum conduct_type
{
DID_NECROMANCY = 1, // vamp/drain/pain wpns, Zong/Curses
DID_UNHOLY, // demon wpns, demon spells
@@ -656,7 +691,7 @@ enum CONDUCTS
NUM_CONDUCTS
};
-enum CORPSE_EFFECTS
+enum corpse_effect_type
{
CE_NOCORPSE, // 0
CE_CLEAN, // 1
@@ -670,13 +705,13 @@ enum CORPSE_EFFECTS
CE_ROTTEN = 50 // 50 - must remain at 50 for now {dlb}
};
-enum CORPSES
+enum corpse_type
{
CORPSE_BODY, // 0
CORPSE_SKELETON
};
-enum DEATH_KNIGHT_CHOICES
+enum death_knight_type
{
DK_NO_SELECTION,
DK_NECROMANCY,
@@ -684,7 +719,7 @@ enum DEATH_KNIGHT_CHOICES
DK_RANDOM
};
-enum DECKS
+enum deck_type
{
DECK_OF_WONDERS, // 0
DECK_OF_SUMMONING,
@@ -693,13 +728,13 @@ enum DECKS
DECK_OF_PUNISHMENT
};
-enum DELAY
+enum delay_type
{
DELAY_NOT_DELAYED,
DELAY_EAT,
DELAY_ARMOUR_ON,
DELAY_ARMOUR_OFF,
- DELAY_MEMORIZE,
+ DELAY_MEMORISE,
DELAY_BUTCHER,
DELAY_AUTOPICKUP,
DELAY_WEAPON_SWAP, // for easy_butcher
@@ -711,7 +746,7 @@ enum DELAY
DELAY_UNINTERUPTABLE // simple uninteruptable delay
};
-enum DEMON_BEAMS
+enum demon_beam_type
{
DMNBM_HELLFIRE, // 0
DMNBM_SMITING,
@@ -719,14 +754,15 @@ enum DEMON_BEAMS
DMNBM_MUTATION
};
-enum DEMON_CLASSES // summon_any_demon()
+enum demon_class_type
{
DEMON_LESSER, // 0: Class V
DEMON_COMMON, // 1: Class II-IV
- DEMON_GREATER // 2: Class I
+ DEMON_GREATER, // 2: Class I
+ DEMON_RANDOM // any of the above
};
-enum DESCRIPTION_LEVEL
+enum description_level_type
{
DESC_CAP_THE, // 0
DESC_NOCAP_THE, // 1
@@ -740,19 +776,70 @@ enum DESCRIPTION_LEVEL
DESC_INVENTORY // 8
};
-enum DIRECTION // (unsigned char) you.char_direction
+enum dragon_class_type
+{
+ DRAGON_LIZARD,
+ DRAGON_DRACONIAN,
+ DRAGON_DRAGON
+};
+
+enum game_direction_type
{
DIR_DESCENDING = 0, // 0 - change and lose savefile compatibility (!!!)
DIR_ASCENDING = 1 // 1 - change and lose savefile compatibility (!!!)
};
-enum DROP_MODE
+// NOTE: The order of these is very important to their usage!
+enum dungeon_char_type
+{
+ DCHAR_WALL, // 0
+ DCHAR_WALL_MAGIC,
+ DCHAR_FLOOR,
+ DCHAR_FLOOR_MAGIC,
+ DCHAR_DOOR_OPEN,
+ DCHAR_DOOR_CLOSED, // 5
+ DCHAR_TRAP,
+ DCHAR_STAIRS_DOWN,
+ DCHAR_STAIRS_UP,
+ DCHAR_ALTAR,
+ DCHAR_ARCH, // 10
+ DCHAR_FOUNTAIN,
+ DCHAR_WAVY,
+ DCHAR_STATUE,
+ DCHAR_INVIS_EXPOSED,
+ DCHAR_ITEM_DETECTED, // 15
+ DCHAR_ITEM_ORB,
+ DCHAR_ITEM_WEAPON,
+ DCHAR_ITEM_ARMOUR,
+ DCHAR_ITEM_WAND,
+ DCHAR_ITEM_FOOD, // 20
+ DCHAR_ITEM_SCROLL,
+ DCHAR_ITEM_RING,
+ DCHAR_ITEM_POTION,
+ DCHAR_ITEM_MISSILE,
+ DCHAR_ITEM_BOOK, // 25
+ DCHAR_ITEM_STAVE,
+ DCHAR_ITEM_MISCELLANY,
+ DCHAR_ITEM_CORPSE,
+ DCHAR_ITEM_GOLD,
+ DCHAR_ITEM_AMULET, // 30
+ DCHAR_CLOUD, // 31
+ NUM_DCHAR_TYPES
+};
+
+enum drop_mode_type
{
DM_SINGLE,
DM_MULTI
};
-enum DUNGEON_FEATURES // (unsigned char) grd[][]
+// lowest grid value which can be occupied (walk, swim, fly)
+#define MINMOVE 31
+
+// lowest grid value which can be seen through
+#define MINSEE 11
+
+enum dungeon_feature_type
{
DNGN_UNSEEN, // 0
DNGN_ROCK_WALL,
@@ -764,14 +851,12 @@ enum DUNGEON_FEATURES // (unsigned char) grd[][]
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_STATUE_RESERVED_1,
+ DNGN_STATUE_RESERVED_2, // 25
DNGN_LAVA = 61, // 61
DNGN_DEEP_WATER, // 62
@@ -779,9 +864,10 @@ enum DUNGEON_FEATURES // (unsigned char) grd[][]
DNGN_WATER_STUCK,
DNGN_FLOOR, // 67
- DNGN_ENTER_HELL = 69, // 69
+ DNGN_EXIT_HELL, // 68
+ DNGN_ENTER_HELL, // 69
DNGN_OPEN_DOOR, // 70
- DNGN_BRANCH_STAIRS, // 71
+ // DNGN_BRANCH_STAIRS, // 71
DNGN_TRAP_MECHANICAL = 75, // 75
DNGN_TRAP_MAGICAL,
DNGN_TRAP_III,
@@ -827,6 +913,10 @@ enum DUNGEON_FEATURES // (unsigned char) grd[][]
DNGN_ENTER_ELVEN_HALLS, // 120
DNGN_ENTER_TOMB,
DNGN_ENTER_SWAMP, // 122
+ DNGN_ENTER_RESERVED_1,
+ DNGN_ENTER_RESERVED_2,
+ DNGN_ENTER_RESERVED_3,
+ DNGN_ENTER_RESERVED_4, // 126
DNGN_RETURN_FROM_ORCISH_MINES = 130, // 130
DNGN_RETURN_FROM_HIVE,
@@ -841,6 +931,10 @@ enum DUNGEON_FEATURES // (unsigned char) grd[][]
DNGN_RETURN_FROM_ELVEN_HALLS, // 140
DNGN_RETURN_FROM_TOMB,
DNGN_RETURN_FROM_SWAMP, // 142
+ DNGN_RETURN_RESERVED_1,
+ DNGN_RETURN_RESERVED_2,
+ DNGN_RETURN_RESERVED_3,
+ DNGN_RETURN_RESERVED_4, // 146
DNGN_ALTAR_ZIN = 180, // 180
DNGN_ALTAR_SHINING_ONE,
@@ -865,10 +959,41 @@ enum DUNGEON_FEATURES // (unsigned char) grd[][]
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[]
+ DNGN_PERMADRY_FOUNTAIN = 210, // added (from dungeon.cc/maps.cc) 22jan2000 {dlb}
+
+ // Real terrain must all occur before 256 to guarantee it fits
+ // into the unsigned char used for the grid!
+
+ // There aren't really terrain, but they're passed in and used
+ // to get their appearance character so I'm putting them here for now.
+ DNGN_ITEM_ORB = 256,
+ DNGN_INVIS_EXPOSED = 257,
+ DNGN_ITEM_WEAPON = 258,
+ DNGN_ITEM_ARMOUR = 259,
+ DNGN_ITEM_WAND = 260,
+ DNGN_ITEM_FOOD = 261,
+ DNGN_ITEM_UNUSED_1 = 262,
+ DNGN_ITEM_SCROLL = 263,
+ DNGN_ITEM_RING = 264,
+ DNGN_ITEM_POTION = 265,
+ DNGN_ITEM_MISSILE = 266,
+ DNGN_ITEM_BOOK = 267,
+ DNGN_ITEM_UNUSED_2 = 268,
+ DNGN_ITEM_STAVE = 269,
+ DNGN_ITEM_MISCELLANY = 270,
+ DNGN_ITEM_CORPSE = 271,
+ DNGN_ITEM_GOLD = 272,
+ DNGN_ITEM_AMULET = 273,
+ DNGN_ITEM_DETECTED = 274,
+
+ DNGN_CLOUD = 280,
+ NUM_FEATURES, // for use in lookup table in view.cc
+
+ DNGN_RANDOM,
+ DNGN_START_OF_MONSTERS = 297 // don't go past here! see view.cc
+};
+
+enum duration_type
{
DUR_LIQUID_FLAMES, // 0
DUR_ICY_ARMOUR,
@@ -891,18 +1016,52 @@ enum DURATIONS // you.duration[]
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_GLAMOUR, // 20
+ DUR_CONDENSATION_SHIELD = 23, // 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[]
+ DUR_REPEL_UNDEAD, // 25
+ DUR_STUN,
+ DUR_CUT, // 27
+ NUM_DURATIONS = 30 // must be at least 30
+};
+
+// various elemental colour schemes... used for abstracting random short lists
+enum element_type
+{
+ EC_FIRE = 32, // fiery colours (must be first and > higest colour)
+ EC_ICE, // icy colours
+ EC_EARTH, // earthy colours
+ EC_ELECTRICITY, // electrical side of air
+ EC_AIR, // non-electric and general air magic
+ EC_POISON, // used only for venom mage and stalker stuff
+ EC_WATER, // used only for the elemental
+ EC_MAGIC, // general magical effect
+ EC_MUTAGENIC, // transmute, poly, radiation effects
+ EC_WARP, // teleportation and anything similar
+ EC_ENCHANT, // magical enhancements
+ EC_HEAL, // holy healing (not necromantic stuff)
+ EC_HOLY, // general "good" god effects
+ EC_DARK, // darkness
+ EC_DEATH, // currently only assassin (and equal to EC_NECRO)
+ EC_NECRO, // necromancy stuff
+ EC_UNHOLY, // demonology stuff
+ EC_VEHUMET, // vehumet's odd-ball colours
+ EC_CRYSTAL, // colours of crystal
+ EC_BLOOD, // colours of blood
+ EC_SMOKE, // colours of smoke
+ EC_SLIME, // colours of slime
+ EC_JEWEL, // colourful
+ EC_ELVEN, // used for colouring elf fabric items
+ EC_DWARVEN, // used for colouring dwarf fabric items
+ EC_ORCISH, // used for colouring orc fabric items
+ EC_GILA, // gila monster colours
+ EC_FLOOR, // colour of the area's floor
+ EC_ROCK, // colour of the area's rock
+ EC_STONE, // colour of the area's stone
+ EC_RANDOM // any colour (except BLACK)
+};
+
+enum enchant_type
{
ENCH_NONE = 0, // 0
ENCH_SLOW,
@@ -965,14 +1124,23 @@ enum ENCHANTMENT // menv[].enchantment[]
NUM_ENCHANTMENTS
};
-enum ENCHANT_STATS
+enum enchant_retval
+{
+ ERV_FAIL,
+ ERV_NEW,
+ ERV_INCREASED
+};
+
+enum enchant_stat_type
{
ENCHANT_TO_HIT,
ENCHANT_TO_DAM
};
-enum EQUIPMENT
+enum equipment_type
{
+ EQ_NONE = -1,
+
EQ_WEAPON, // 0
EQ_CLOAK,
EQ_HELMET,
@@ -993,7 +1161,7 @@ enum EQUIPMENT
EQ_ALL_ARMOUR // check all armour types
};
-enum FIRE_TYPES
+enum fire_type
{
FIRE_NONE,
FIRE_LAUNCHER,
@@ -1003,19 +1171,24 @@ enum FIRE_TYPES
FIRE_SPEAR,
FIRE_HAND_AXE,
FIRE_CLUB,
+ FIRE_ROCK,
NUM_FIRE_TYPES
};
-enum FLUSH_REASONS
+enum flush_reason_type
{
FLUSH_ON_FAILURE, // spell/ability failed to cast
FLUSH_BEFORE_COMMAND, // flush before getting a command
FLUSH_ON_MESSAGE, // flush when printing a message
- FLUSH_LUA, // flush when Lua wants us to
+ FLUSH_ON_WARNING_MESSAGE, // flush on MSGCH_WARN messages
+ FLUSH_ON_DANGER_MESSAGE, // flush on MSGCH_DANGER messages
+ FLUSH_ON_PROMPT, // flush on MSGCH_PROMPT messages
+ FLUSH_ON_UNSAFE_YES_OR_NO_PROMPT, // flush when !safe set to yesno()
+ FLUSH_LUA, // flush when Lua wants to flush
NUM_FLUSH_REASONS
};
-enum FOODS // mitm[].sub_type[]
+enum food_type
{
FOOD_MEAT_RATION, // 0
FOOD_BREAD_RATION,
@@ -1042,21 +1215,21 @@ enum FOODS // mitm[].sub_type[]
NUM_FOODS
};
-enum GENUS_PLAYER // see player::player_genus()
+enum genus_type
{
GENPC_DRACONIAN, // 0
GENPC_ELVEN, // 1
GENPC_DWARVEN // 2
};
-enum GENDER
+enum gender_type
{
GENDER_NEUTER,
GENDER_MALE,
GENDER_FEMALE
};
-enum GHOST_VALUES
+enum ghost_value_type
{
GVAL_MAX_HP, // 0
GVAL_EV,
@@ -1088,9 +1261,9 @@ enum GHOST_VALUES
GVAL_DEMONLORD_CYCLE_COLOUR // 13
};
-enum GODS // you.religion
+enum god_type
{
- GOD_NO_GOD, // 0
+ GOD_NO_GOD, // 0 -- must be zero
GOD_ZIN,
GOD_SHINING_ONE,
GOD_KIKUBAAQUDGHA,
@@ -1108,14 +1281,16 @@ enum GODS // you.religion
GOD_RANDOM = 100
};
-enum HANDS_REQUIRED
+enum hands_reqd_type
{
- HANDS_ONE_HANDED = 1, // 1
- HANDS_TWO_HANDED,
- HANDS_ONE_OR_TWO_HANDED
+ HANDS_ONE,
+ HANDS_HALF,
+ HANDS_TWO,
+
+ HANDS_DOUBLE // not a level, marks double ended weapons (== half)
};
-enum HELMET_TYPES // used in pluses2
+enum helmet_type
{
THELM_HELMET = 0x0000,
THELM_HELM = 0x0001,
@@ -1126,7 +1301,6 @@ enum HELMET_TYPES // used in pluses2
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,
@@ -1139,30 +1313,8 @@ enum HELMET_TYPES // used in pluses2
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
+enum boot_type // used in pluses2
{
TBOOT_BOOTS = 0,
TBOOT_NAGA_BARDING,
@@ -1171,7 +1323,7 @@ enum BOOT_TYPES // used in pluses2
};
-enum HUNGER_STATES // you.hunger_state
+enum hunger_state // you.hunger_state
{
HS_RAVENOUS, // 0: not used within code, really
HS_STARVING,
@@ -1181,7 +1333,7 @@ enum HUNGER_STATES // you.hunger_state
HS_ENGORGED // 5
};
-enum ITEM_STATUS_FLAGS // per item flags: ie. ident status, cursed status
+enum item_status_flag_type // per item flags: ie. ident status, cursed status
{
ISFLAG_KNOW_CURSE = 0x00000001, // curse status
ISFLAG_KNOW_TYPE = 0x00000002, // artefact name, sub/special types
@@ -1195,9 +1347,9 @@ enum ITEM_STATUS_FLAGS // per item flags: ie. ident status, cursed status
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_RESERVED_1 = 0x00000200, // reserved
+ ISFLAG_RESERVED_2 = 0x00000400, // reserved
+ ISFLAG_RESERVED_3 = 0x00000800, // reserved
ISFLAG_CURSE_MASK = 0x00000F00, // mask of all curse related flags
ISFLAG_RANDART = 0x00001000, // special value is seed
@@ -1206,6 +1358,7 @@ enum ITEM_STATUS_FLAGS // per item flags: ie. ident status, cursed status
ISFLAG_DROPPED = 0x00004000, // dropped item (no autopickup)
ISFLAG_THROWN = 0x00008000, // thrown missile weapon
+ // these don't have to remain as flags
ISFLAG_NO_DESC = 0x00000000, // used for clearing these flags
ISFLAG_GLOWING = 0x00010000, // weapons or armour
ISFLAG_RUNED = 0x00020000, // weapons or armour
@@ -1221,16 +1374,17 @@ enum ITEM_STATUS_FLAGS // per item flags: ie. ident status, cursed status
ISFLAG_DEBUG_MARK = 0x80000000 // used for testing item structure
};
-enum ITEM_DESCRIPTIONS
+enum item_description_type
{
IDESC_WANDS,
IDESC_POTIONS,
IDESC_SCROLLS, // special field (like the others)
IDESC_RINGS,
- IDESC_SCROLLS_II // pluses field
+ IDESC_SCROLLS_II,
+ NUM_IDESC
};
-enum ITEM_MAKE_SPECIES // used only for race during creation
+enum item_make_species_type
{
MAKE_ITEM_ELVEN = 1,
MAKE_ITEM_DWARVEN = 2,
@@ -1240,7 +1394,7 @@ enum ITEM_MAKE_SPECIES // used only for race during creation
MAKE_ITEM_RANDOM_RACE = 250
};
-enum ITEM_ORIGIN_DUMP_SELECT
+enum item_origin_dump_selector
{
IODS_PRICE = 0, // Extra info is provided based on price
IODS_ARTIFACTS = 1, // Extra information on artifacts
@@ -1254,22 +1408,23 @@ enum ITEM_ORIGIN_DUMP_SELECT
IODS_EVERYTHING = 0xFF
};
-enum ITEM_TYPE_ID // used for first index of id[4][50]
+enum item_type_id_type
{
IDTYPE_WANDS = 0,
IDTYPE_SCROLLS,
IDTYPE_JEWELLERY,
- IDTYPE_POTIONS
+ IDTYPE_POTIONS,
+ NUM_IDTYPE
};
-enum ITEM_TYPE_ID_STATE // used for values in id[4][50]
+enum item_type_id_state_type // used for values in id[4][50]
{
ID_UNKNOWN_TYPE = 0,
ID_KNOWN_TYPE,
ID_TRIED_TYPE
};
-enum JEWELLERY
+enum jewellery_type
{
RING_REGENERATION, // 0
RING_PROTECTION,
@@ -1308,7 +1463,7 @@ enum JEWELLERY
NUM_JEWELLERY
};
-enum JOB
+enum job_type
{
JOB_FIGHTER, // 0
JOB_WIZARD,
@@ -1344,7 +1499,7 @@ enum JOB
JOB_UNKNOWN = 100
};
-enum KILLBY
+enum kill_method_type
{
KILLED_BY_MONSTER, // 0
KILLED_BY_POISON,
@@ -1372,16 +1527,17 @@ enum KILLBY
KILLED_BY_SPORE,
KILLED_BY_TSO_SMITING,
KILLED_BY_PETRIFICATION, // 25
- KILLED_BY_SHUGGOTH,
- KILLED_BY_SOMETHING,
+ KILLED_BY_SOMETHING = 27,
KILLED_BY_FALLING_DOWN_STAIRS,
KILLED_BY_ACID,
KILLED_BY_CURARE,
+ KILLED_BY_MELTING,
+ KILLED_BY_BLEEDING,
NUM_KILLBY
};
-enum KillCategory
+enum kill_category
{
KC_YOU,
KC_FRIENDLY,
@@ -1389,7 +1545,7 @@ enum KillCategory
KC_NCATEGORIES
};
-enum KILLER // monster_die(), thing_thrown
+enum killer_type // monster_die(), thing_thrown
{
KILL_YOU = 1, // 1
KILL_MON,
@@ -1403,7 +1559,14 @@ enum KILLER // monster_die(), thing_thrown
#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
+enum launch_retval
+{
+ LRET_FUMBLED = 0, // must be left as 0
+ LRET_LAUNCHED,
+ LRET_THROWN
+};
+
+enum level_area_type // you.level_type
{
LEVEL_DUNGEON, // 0
LEVEL_LABYRINTH,
@@ -1411,14 +1574,14 @@ enum LEVEL_TYPES // you.level_type
LEVEL_PANDEMONIUM
};
-enum LOAD_MODE
+enum load_mode_type
{
LOAD_START_GAME,
LOAD_RESTART_GAME,
LOAD_ENTER_LEVEL
};
-enum MAP_SECTIONS // see maps.cc and dungeon.cc {dlb}
+enum map_section_type // see maps.cc and dungeon.cc {dlb}
{
MAP_NORTH = 1, // 1
MAP_NORTHWEST,
@@ -1430,7 +1593,7 @@ enum MAP_SECTIONS // see maps.cc and dungeon.cc {dlb}
};
// if you mess with this list, you'll need to make changes in initfile.cc
-enum MESSAGE_CHANNEL
+enum msg_channel_type
{
MSGCH_PLAIN, // regular text
MSGCH_PROMPT, // various prompts
@@ -1447,13 +1610,16 @@ enum MESSAGE_CHANNEL
MSGCH_MONSTER_SPELL, // monsters casting spells
MSGCH_MONSTER_ENCHANT,// monsters enchantments up and down
MSGCH_MONSTER_DAMAGE, // monster damage reports (param is level)
+ MSGCH_MONSTER_TARGET, // message marking the monster as a target
MSGCH_ROTTEN_MEAT, // messages about chunks/corpses becoming rotten
MSGCH_EQUIPMENT, // equipment listing messages
- MSGCH_DIAGNOSTICS, // various diagnostic messages
+ MSGCH_FLOOR_ITEMS, // like equipment, but lists of floor items
+ MSGCH_MULTITURN_ACTION, // delayed action messages
+ MSGCH_DIAGNOSTICS, // various diagnostic messages
NUM_MESSAGE_CHANNELS // always last
};
-enum MESSAGE_COLOURS
+enum msg_colour_type
{
MSGCOL_BLACK = 0, // the order of these colours is important
MSGCOL_BLUE,
@@ -1476,7 +1642,7 @@ enum MESSAGE_COLOURS
MSGCOL_PLAIN // same as plain channel
};
-enum MISCELLANY // mitm[].sub_type
+enum misc_item_type
{
MISC_BOTTLED_EFREET, // 0
MISC_CRYSTAL_BALL_OF_SEEING,
@@ -1499,7 +1665,7 @@ enum MISCELLANY // mitm[].sub_type
NUM_MISCELLANY // mv: used for random generation
};
-enum MISSILES // (unsigned char)
+enum missile_type
{
MI_STONE, // 0
MI_ARROW,
@@ -1508,10 +1674,11 @@ enum MISSILES // (unsigned char)
MI_NEEDLE,
MI_LARGE_ROCK, //jmf: it'd be nice to move MI_LARGE_ROCK to DEBRIS_ROCK
NUM_MISSILES,
- MI_EGGPLANT
+ MI_NONE // was MI_EGGPLANT... used for launch type detection
};
-enum MONS_CLASS_FLAGS
+// properties of the monster class (other than resists/vulnerabilities)
+enum mons_class_flags
{
M_NO_FLAGS = 0,
@@ -1582,7 +1749,7 @@ enum mon_resist_flags
MR_VUL_BLUDGEON = (1<<15)
};
-enum MON_TARG_MODE
+enum targ_mode_type
{
TARG_ANY,
TARG_ENEMY,
@@ -1590,7 +1757,8 @@ enum MON_TARG_MODE
TARG_NUM_MODES
};
-enum MONSTERS // (int) menv[].type
+// note this order is very sensitive... look at mons_is_unique()
+enum monster_type // (int) menv[].type
{
MONS_GIANT_ANT, // 0
MONS_GIANT_BAT,
@@ -1757,6 +1925,7 @@ enum MONSTERS // (int) menv[].type
MONS_RED_WASP, // 170
MONS_SWAMP_DRAGON,
MONS_SWAMP_DRAKE,
+ MONS_DEATH_DRAKE,
MONS_SOLDIER_ANT,
MONS_HILL_GIANT,
MONS_QUEEN_ANT, // 175
@@ -1870,6 +2039,23 @@ enum MONSTERS // (int) menv[].type
MONS_BORIS, // 310
// BCR - end second batch of uniques.
+ MONS_DRACONIAN,
+ MONS_BLACK_DRACONIAN,
+ MONS_MOTTLED_DRACONIAN,
+ MONS_YELLOW_DRACONIAN,
+ MONS_GREEN_DRACONIAN, // 315
+ MONS_PURPLE_DRACONIAN,
+ MONS_RED_DRACONIAN,
+ MONS_WHITE_DRACONIAN,
+ MONS_PALE_DRACONIAN,
+ MONS_DRACONIAN_CALLER, // 320
+ MONS_DRACONIAN_MONK,
+ MONS_DRACONIAN_ZEALOT,
+ MONS_DRACONIAN_SHIFTER,
+ MONS_DRACONIAN_ANNIHILATOR,
+ MONS_DRACONIAN_KNIGHT, // 325
+ MONS_DRACONIAN_SCORCHER,
+
// The Lords of Hell:
MONS_GERYON = 340, // 340
MONS_DISPATER,
@@ -1949,51 +2135,52 @@ enum MONSTERS // (int) menv[].type
};
-enum MONSTER_BEHAVIOUR // create_monster()
+enum beh_type
{
BEH_SLEEP, // 0
BEH_WANDER,
BEH_SEEK,
BEH_FLEE,
BEH_CORNERED,
+ BEH_PANIC, // like flee but without running away
+ BEH_INVESTIGATE, // investigating an ME_DISTURB
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
+ BEH_GOD_GIFT, // creation only
+ BEH_GUARD // creation only - monster is guard
};
-enum MONSTER_ATTITUDES
+enum mon_attitude_type
{
ATT_HOSTILE, // 0, default in most cases
ATT_FRIENDLY, // created friendly (or tamed?)
ATT_NEUTRAL
};
-enum MONSTER_EVENTS
+enum mon_event_type
{
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_SHOT, // attack at range
ME_SCARE, // frighten monster
ME_CORNERED // cannot flee
};
-#if 0
-// Obsolete... use mons_charclass()
-enum MONSTER_CATEGORIES
+enum mon_flight_type
{
- MC_MIMIC, // 0
- NUM_MC,
- MC_UNSPECIFIED = 255 // keep at end !!! mind the upper limit of 255 {dlb}
+ FLY_NOT,
+ FLY_POWERED, // wings, etc... paralysis == fall
+ FLY_LEVITATION // doesn't require physical effort
};
-#endif
// Note: These are currently stored in chars!!!
// Need to fix struct monsters and the savefile if you want more.
-enum MONSTER_FLAGS
+enum monster_flag_type
{
MF_CREATED_FRIENDLY = 0x01, // no benefit from killing
MF_GOD_GIFT = 0x02, // player not penalized by its death
@@ -2006,7 +2193,7 @@ enum MONSTER_FLAGS
MF_UNUSED_III = 0x80
};
-enum MONSTER_DAMAGE
+enum mon_dam_level_type
{
MDAM_OKAY,
MDAM_LIGHTLY_DAMAGED,
@@ -2017,14 +2204,14 @@ enum MONSTER_DAMAGE
MDAM_DEAD
};
-enum MONSTER_DESCRIPTORS // things that cross categorical lines {dlb}
+enum mon_desc_type // 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()
+enum mon_holy_type // matches (char) H_foo in mon-util.h, see: monster_holiness()
{
MH_HOLY, // 0 - was -1
MH_NATURAL, // 1 - was 0
@@ -2034,7 +2221,7 @@ enum MONSTER_HOLINESS // matches (char) H_foo in mon-util.h, see: monster_holine
MH_PLANT // plants
};
-enum MONSTER_INVENTORY_SLOTS // (int) menv[].inv[]
+enum mon_inv_type // (int) menv[].inv[]
{
MSLOT_WEAPON,
MSLOT_MISSILE, // although it is a second weapon for MONS_TWO_HEADED_OGRE - how to reconcile cleanly? {dlb}
@@ -2047,16 +2234,19 @@ enum MONSTER_INVENTORY_SLOTS // (int) menv[].inv[]
NUM_MONSTER_SLOTS = 8 // value must remain 8 for savefile compatibility {dlb}
};
-enum MONSTER_ITEM_USE
+// order of these is important:
+enum mon_itemuse_type
{
MONUSE_NOTHING,
MONUSE_EATS_ITEMS,
MONUSE_OPEN_DOORS,
MONUSE_STARTING_EQUIPMENT,
- MONUSE_WEAPONS_ARMOUR
+ MONUSE_WEAPONS_ARMOUR,
+ MONUSE_MAGIC_ITEMS
};
-enum MONSTER_SPELLS // mons_cast(), mspell_list[], mons_spells()
+// XXX: someday merge these into SPELL_
+enum mon_spell_type
{
MS_MMISSILE, // 0
MS_FLAME,
@@ -2111,12 +2301,23 @@ enum MONSTER_SPELLS // mons_cast(), mspell_list[], mons_spells()
MS_METAL_SPLINTERS, // 50
MS_SUMMON_DEMON_GREATER, // [foo]_1 was confusing - renamed 13jan2000 {dlb}
MS_BANISHMENT,
+ MS_CONTROLLED_BLINK,
+ MS_CONTROL_UNDEAD,
+ MS_MIASMA, // 55
+ MS_SUMMON_LIZARDS,
+ MS_BLINK_OTHER,
+ MS_DISPEL_UNDEAD,
+ MS_HELLFROST,
+ MS_POISON_ARROW, // 60
+ // XXX: before adding more monster versions of player spells we should
+ // consider merging the two lists into one and just having monsters
+ // fail to implement the ones that are impractical.
NUM_MONSTER_SPELLS,
MS_NO_SPELL = 100
};
// XXX: These still need to be applied in mon-data.h
-enum MONSTER_SPELL_TEMPLATES
+enum mon_spellbook_type
{
MST_ORC_WIZARD_I = 0,
MST_ORC_WIZARD_II,
@@ -2131,7 +2332,8 @@ enum MONSTER_SPELL_TEMPLATES
MST_VAMPIRE_KNIGHT,
MST_VAMPIRE_MAGE,
MST_EFREET = 50,
- MST_BRAIN_WORM = 52,
+ MST_KILLER_KLOWN,
+ MST_BRAIN_WORM,
MST_GIANT_ORANGE_BRAIN,
MST_RAKSHASA,
MST_GREAT_ORB_OF_EYES, // 55
@@ -2204,13 +2406,18 @@ enum MONSTER_SPELL_TEMPLATES
MST_BOGGART,
MST_EYE_OF_DEVASTATION, // 125
MST_QUICKSILVER_DRAGON,
- MST_IRON_DRAGON, // 127
+ MST_IRON_DRAGON,
MST_SKELETAL_WARRIOR,
+ MST_MYSTIC,
+ MST_DEATH_DRAKE, // 130
+ MST_DRAC_SCORCHER, // As Bioster would say.. pig*s
+ MST_DRAC_CALLER,
+ MST_DRAC_SHIFTER,
NUM_MSTYPES,
MST_NO_SPELLS = 250
};
-enum MUTATIONS
+enum mutation_type
{
MUT_TOUGH_SKIN, // 0
MUT_STRONG,
@@ -2296,7 +2503,7 @@ enum MUTATIONS
NUM_MUTATIONS
};
-enum OBJECT_CLASSES // (unsigned char) mitm[].base_type
+enum object_class_type // (unsigned char) mitm[].base_type
{
OBJ_WEAPONS, // 0
OBJ_MISSILES,
@@ -2321,18 +2528,18 @@ enum OBJECT_CLASSES // (unsigned char) mitm[].base_type
// for blanket random sub_type .. see dungeon::items()
};
-enum OBJECT_SELECTORS
+enum object_selector
{
OSEL_ANY = -1,
OSEL_WIELD = -2
};
-enum ORBS
+enum orb_type
{
ORB_ZOT // 0
};
-enum POTIONS
+enum potion_type
{
POT_HEALING, // 0
POT_HEAL_WOUNDS,
@@ -2361,7 +2568,7 @@ enum POTIONS
NUM_POTIONS
};
-enum PRONOUN_TYPE
+enum pronoun_type
{
PRONOUN_CAP, // 0
PRONOUN_NOCAP, // 1
@@ -2370,7 +2577,7 @@ enum PRONOUN_TYPE
PRONOUN_REFLEXIVE // 4 (reflexive is always lowercase)
};
-enum PROXIMITY // proximity to player to create monster
+enum proximity_type // proximity to player to create monster
{
PROX_ANYWHERE,
PROX_CLOSE_TO_PLAYER,
@@ -2378,7 +2585,7 @@ enum PROXIMITY // proximity to player to create monster
PROX_NEAR_STAIRS
};
-enum RANDART_PROP
+enum randart_prop_type
{
RAP_BRAND, // 0
RAP_AC,
@@ -2409,17 +2616,25 @@ enum RANDART_PROP
RAP_ACCURACY,
RAP_DAMAGE,
RAP_CURSED,
- RAP_STEALTH
+ RAP_STEALTH,
+ RAP_NUM_PROPERTIES
};
-enum READ_BOOK_ACTION
+enum read_book_action_type
{
RBOOK_USE_STAFF,
- RBOOK_MEMORIZE,
+ RBOOK_MEMORISE,
RBOOK_READ_SPELL
};
-enum RUN_DIR
+enum run_check_type
+{
+ RCHECK_LEFT,
+ RCHECK_FRONT,
+ RCHECK_RIGHT
+};
+
+enum run_dir_type
{
RDIR_UP = 0,
RDIR_UP_RIGHT,
@@ -2432,7 +2647,7 @@ enum RUN_DIR
RDIR_REST
};
-enum RUNE_TYPES
+enum rune_type
{
// Note: that runes DIS-SWAMP have the same numberic value as the branch
RUNE_DIS = 1,
@@ -2456,17 +2671,18 @@ enum RUNE_TYPES
RUNE_LOM_LOBON,
RUNE_CEREBOV,
RUNE_GLOORX_VLOQ,
- NUM_RUNE_TYPES // should always be last
+ NUM_RUNE_TYPES, // should always be last
+ RUNE_NONE
};
-enum SCORE_FORMAT
+enum score_format_type
{
SCORE_TERSE, // one line
SCORE_REGULAR, // two lines (name, cause, blank)
SCORE_VERBOSE // everything (dates, times, god, etc)
};
-enum SCROLLS
+enum scroll_type
{
SCR_IDENTIFY, // 0
SCR_TELEPORTATION,
@@ -2494,7 +2710,7 @@ enum SCROLLS
NUM_SCROLLS
};
-enum SHOPS // (unsigned char) env.sh_type[], item_in_shop(), in_a_shop()
+enum shop_type // (unsigned char) env.sh_type[], item_in_shop(), in_a_shop()
{
SHOP_WEAPON, // 0
SHOP_ARMOUR,
@@ -2513,7 +2729,42 @@ enum SHOPS // (unsigned char) env.sh_type[], item_in_shop(), in_a_shop()
SHOP_RANDOM = 255 // keep set at 255 for now {dlb}
};
-enum SKILLS
+enum shout_type
+{
+ S_SILENT, // silent
+ S_SHOUT, // shout
+ S_BARK, // bark
+ S_SHOUT2, // shout twice
+ S_ROAR, // roar
+ S_SCREAM, // scream
+ S_BELLOW, // bellow (?)
+ S_SCREECH, // screech
+ S_BUZZ, // buzz
+ S_MOAN, // moan
+ S_WHINE, // irritating whine (mosquito)
+ S_CROAK, // frog croak
+ S_GROWL, // for bears
+ S_HISS, // for snakes and lizards
+ NUM_SHOUTS,
+ S_RANDOM
+};
+
+// These are often addressed relative to each other (esp. delta SIZE_MEDIUM)
+enum size_type
+{
+ SIZE_TINY, // rat/bat
+ SIZE_LITTLE, // spriggan
+ SIZE_SMALL, // halfling/kobold/gnome
+ SIZE_MEDIUM, // human/elf/dwarf
+ SIZE_LARGE, // troll/ogre
+ SIZE_BIG, // centaur/naga/large quadrupeds
+ SIZE_GIANT, // giant
+ SIZE_HUGE, // dragon
+ NUM_SIZE_LEVELS,
+ SIZE_CHARACTER // transformations that don't change size
+};
+
+enum skill_type
{
SK_FIGHTING, // 0
SK_SHORT_BLADES,
@@ -2527,7 +2778,7 @@ enum SKILLS
SK_BOWS,
SK_CROSSBOWS, // 10
SK_DARTS,
- SK_THROWING,
+ SK_RANGED_COMBAT,
SK_ARMOUR,
SK_DODGING,
SK_STEALTH, // 15
@@ -2550,10 +2801,14 @@ enum SKILLS
SK_POISON_MAGIC,
SK_INVOCATIONS,
SK_EVOCATIONS,
- NUM_SKILLS // must remain last member {dlb}
+ NUM_SKILLS, // must remain last regular member
+
+ SK_BLANK_LINE, // used for skill output
+ SK_COLUMN_BREAK, // used for skill output
+ SK_NONE
};
-enum SPECIAL_ARMOR
+enum special_armour_type
{
SPARM_NORMAL, // 0
SPARM_RUNNING,
@@ -2581,7 +2836,7 @@ enum SPECIAL_ARMOR
SPARM_RANDART_V = 29 // 29 - highest value found thus far {dlb}
};
-enum SPECIAL_MISSILES // to separate from weapons in general {dlb}
+enum special_missile_type // to separate from weapons in general {dlb}
{
SPMSL_NORMAL, // 0
SPMSL_FLAME, // 1
@@ -2591,23 +2846,32 @@ enum SPECIAL_MISSILES // to separate from weapons in general {dlb}
SPMSL_CURARE // 5
};
-enum SPECIAL_ROOMS
+enum special_room_type
{
SROOM_LAIR_ORC, // 0
SROOM_LAIR_KOBOLD,
SROOM_TREASURY,
SROOM_BEEHIVE,
+ SROOM_JELLY_PIT,
SROOM_MORGUE,
NUM_SPECIAL_ROOMS // 5 - must remain final member {dlb}
};
-enum SPECIAL_RINGS // jewellery mitm[].special values
+enum special_ring_type // jewellery mitm[].special values
{
SPRING_RANDART = 200,
SPRING_UNRANDART = 201
};
-enum SPECIAL_WEAPONS // equivalent to (you.inv[].special or mitm[].special) % 30
+// order is important on these (see player_speed())
+enum speed_type
+{
+ SPEED_SLOWED,
+ SPEED_NORMAL,
+ SPEED_HASTED
+};
+
+enum brand_type // equivalent to (you.inv[].special or mitm[].special) % 30
{
SPWPN_NORMAL, // 0
SPWPN_FLAMING,
@@ -2657,7 +2921,7 @@ enum SPECIAL_WEAPONS // equivalent to (you.inv[].special or mitm[].special) % 30
SPWPN_STAFF_OF_WUCAD_MU // 195
};
-enum SPECIAL_WIELD // you.special_wield
+enum special_wield_type // you.special_wield
{
SPWLD_NONE, // 0
SPWLD_SING,
@@ -2677,7 +2941,7 @@ enum SPECIAL_WIELD // you.special_wield
SPWLD_SHOUT // 54 - see it_use3::special_wielded() {dlb}
};
-enum SPECIES
+enum species_type
{
SP_HUMAN = 1, // 1
SP_ELF,
@@ -2707,7 +2971,7 @@ enum SPECIES
SP_PALE_DRACONIAN,
SP_UNK0_DRACONIAN,
SP_UNK1_DRACONIAN,
- SP_UNK2_DRACONIAN,
+ SP_BASE_DRACONIAN,
SP_CENTAUR, // 30
SP_DEMIGOD,
SP_SPRIGGAN,
@@ -2721,7 +2985,7 @@ enum SPECIES
SP_UNKNOWN = 100
};
-enum SPELLS
+enum spell_type
{
SPELL_IDENTIFY, // 0
SPELL_TELEPORT_SELF,
@@ -2905,19 +3169,18 @@ enum SPELLS
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_SEMI_CONTROLLED_BLINK, //jmf: to test effect
+ SPELL_STONESKIN, // 200
SPELL_SIMULACRUM,
SPELL_CONJURE_BALL_LIGHTNING,
- SPELL_CHAIN_LIGHTNING, // 204 (be wary of 209/210, see below)
+ SPELL_CHAIN_LIGHTNING, // 203 (be wary of 209/210, see below)
NUM_SPELLS,
SPELL_NO_SPELL = 210 // 210 - added 22jan2000 {dlb}
};
-enum SPELL_FLAGS
+enum spflag_type
{
SPFLAG_NONE = 0x0000,
SPFLAG_DIR_OR_TARGET = 0x0001, // use DIR_NONE targeting
@@ -2930,7 +3193,14 @@ enum SPELL_FLAGS
SPFLAG_UNHOLY = 0x0040 // counts at "unholy"
};
-enum SPELL_TYPES //jmf: 24jul2000: changed from integer-list to bitfield
+enum spret_type
+{
+ SPRET_ABORT = 0, // should be left as 0
+ SPRET_FAIL,
+ SPRET_SUCCESS
+};
+
+enum spschool_flag_type
{
SPTYP_NONE = 0, // "0" is reserved for no type at all {dlb}
SPTYP_CONJURATION = 1, // was 11, but only for old typematch routine {dlb}
@@ -2951,13 +3221,13 @@ enum SPELL_TYPES //jmf: 24jul2000: changed from integer-list to bitfield
SPTYP_RANDOM = 1<<14
};
-enum SLOT_SELECT_MODES
+enum slot_select_mode
{
SS_FORWARD = 0,
SS_BACKWARD = 1
};
-enum STATS
+enum stat_type
{
STAT_STRENGTH, // 0
STAT_DEXTERITY,
@@ -2967,14 +3237,14 @@ enum STATS
STAT_RANDOM = 255 // leave at 255, added for increase_stats() handling {dlb}
};
-enum STATUE_TYPES
+enum statue_type
{
STATUE_SILVER,
STATUE_ORANGE_CRYSTAL,
NUM_STATUE_TYPES
};
-enum STATUS_REDRAW_FLAGS
+enum status_redraw_flag_type
{
REDRAW_HUNGER = 0x00000001,
REDRAW_BURDEN = 0x00000002,
@@ -3000,7 +3270,7 @@ enum STATUS_REDRAW_FLAGS
REDRAW_LINE_3_MASK = 0x007f0000
};
-enum STAVES
+enum stave_type
{
STAFF_WIZARDRY, // 0
STAFF_POWER,
@@ -3028,7 +3298,8 @@ enum STAVES
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}
+// beam[].type - note that this (and its variants) also accepts values from other enums - confusing {dlb}
+enum zap_symbol_type
{
SYM_SPACE = ' ', // 32
SYM_FLASK = '!', // 33
@@ -3043,10 +3314,11 @@ enum SYMBOLS // beam[].type - note that this (and its variants) also accepts val
SYM_SCROLL = '?', // 63
SYM_DEBUG = 'X', // 88
SYM_ARMOUR = '[', // 91
- SYM_MISSILE = '`' // 96
+ SYM_MISSILE = '`', // 96
+ SYM_EXPLOSION = '#'
};
-enum TAGS // used during save/load process to identify data blocks
+enum tag_type // used during save/load process to identify data blocks
{
TAG_VERSION = 0, // should NEVER be read in!
TAG_YOU = 1, // 'you' structure
@@ -3060,7 +3332,7 @@ enum TAGS // used during save/load process to identify data blocks
NUM_TAGS
};
-enum TAGTYPES // file types supported by tag system
+enum tag_file_type // file types supported by tag system
{
TAGTYPE_PLAYER=0, // Foo.sav
TAGTYPE_LEVEL, // Foo.00a, .01a, etc.
@@ -3068,7 +3340,7 @@ enum TAGTYPES // file types supported by tag system
};
-enum TRANSFORMATIONS
+enum transformation_type
{
TRAN_NONE, // 0
TRAN_SPIDER,
@@ -3082,7 +3354,7 @@ enum TRANSFORMATIONS
NUM_TRANSFORMATIONS // must remain last member {dlb}
};
-enum TRAPS // env.trap_type[]
+enum trap_type // env.trap_type[]
{
TRAP_DART, // 0
TRAP_ARROW,
@@ -3096,10 +3368,11 @@ enum TRAPS // env.trap_type[]
TRAP_NEEDLE,
NUM_TRAPS, // must remain last 'regular' member {dlb}
TRAP_UNASSIGNED = 100, // keep set at 100 for now {dlb}
+ TRAP_NONTELEPORT = 254,
TRAP_RANDOM = 255 // set at 255 to avoid potential conflicts {dlb}
};
-enum UNARMED_ATTACKS
+enum unarmed_attack_type
{
UNAT_NO_ATTACK, // 0
UNAT_KICK,
@@ -3108,31 +3381,150 @@ enum UNARMED_ATTACKS
UNAT_PUNCH
};
-enum UNDEAD_STATES // you.is_undead
+enum undead_state_type // you.is_undead
{
US_ALIVE, // 0
US_HUNGRY_DEAD,
US_UNDEAD
};
-enum UNIQUE_ITEM_STATUS
+enum unique_item_status_type
{
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: THE ORDER AND VALUE OF THESE IS CURRENTLY VERY IMPORTANT!
+enum vault_type
+{
+ VAULT_VAULT_1 = 0,
+ VAULT_VAULT_2 = 1,
+ VAULT_VAULT_3 = 2,
+ VAULT_VAULT_4 = 3,
+ VAULT_VAULT_5 = 4,
+ VAULT_VAULT_6 = 5,
+ VAULT_VAULT_7 = 6,
+ VAULT_VAULT_8 = 7,
+ VAULT_VAULT_9 = 8,
+ VAULT_VAULT_10 = 9,
+ VAULT_ORC_TEMPLE = 10,
+ VAULT_FARM_AND_COUNTRY = 11,
+ VAULT_FORT_YAKTAUR = 12,
+ VAULT_BOX_LEVEL = 13,
+ VAULT_MY_MAP = 14,
+
+ VAULT_VESTIBULE_MAP = 50,
+ VAULT_CASTLE_DIS = 51,
+ VAULT_ASMODEUS = 52,
+ VAULT_ANTAEUS = 53,
+ VAULT_ERESHKIGAL = 54,
+
+ VAULT_MNOLEG = 60,
+ VAULT_LOM_LOBON = 61,
+ VAULT_CEREBOV = 62,
+ VAULT_GLOORX_VLOQ = 63,
+ // VAULT_MOLLUSC = 64,
+
+ VAULT_BEEHIVE = 80,
+ VAULT_SLIME_PIT = 81,
+ VAULT_BOTTOM_OF_VAULTS = 82,
+ VAULT_HALL_OF_BLADES = 83,
+ VAULT_HALL_OF_ZOT = 84,
+ VAULT_TEMPLE = 85,
+ VAULT_SNAKE_PIT = 86,
+ VAULT_ELF_HALL = 87,
+ VAULT_TOMB_1 = 88,
+ VAULT_TOMB_2 = 89,
+ VAULT_TOMB_3 = 90,
+ VAULT_SWAMP = 91,
+
+ VAULT_RANDOM = 100,
+
+ VAULT_MINIVAULT_1 = 200,
+ VAULT_MINIVAULT_2 = 201,
+ VAULT_MINIVAULT_3 = 202,
+ VAULT_MINIVAULT_4 = 203,
+ VAULT_MINIVAULT_5 = 204,
+ VAULT_MINIVAULT_6 = 205,
+ VAULT_MINIVAULT_7 = 206,
+ VAULT_MINIVAULT_8 = 207,
+ VAULT_MINIVAULT_9 = 208,
+ VAULT_MINIVAULT_10 = 209,
+ VAULT_MINIVAULT_11 = 210,
+ VAULT_MINIVAULT_12 = 211,
+ VAULT_MINIVAULT_13 = 212,
+ VAULT_MINIVAULT_14 = 213,
+ VAULT_MINIVAULT_15 = 214,
+ VAULT_MINIVAULT_16 = 215,
+ VAULT_MINIVAULT_17 = 216,
+ VAULT_MINIVAULT_18 = 217,
+ VAULT_MINIVAULT_19 = 218,
+ VAULT_MINIVAULT_20 = 219,
+ VAULT_MINIVAULT_21 = 220,
+ VAULT_MINIVAULT_22 = 221,
+ VAULT_MINIVAULT_23 = 222,
+ VAULT_MINIVAULT_24 = 223,
+ VAULT_MINIVAULT_25 = 224,
+ VAULT_MINIVAULT_26 = 225,
+ VAULT_MINIVAULT_27 = 226,
+ VAULT_MINIVAULT_28 = 227,
+ VAULT_MINIVAULT_29 = 228,
+ VAULT_MINIVAULT_30 = 229,
+ VAULT_MINIVAULT_31 = 230,
+ VAULT_MINIVAULT_32 = 231,
+ VAULT_MINIVAULT_33 = 232,
+ VAULT_MINIVAULT_34 = 233,
+ VAULT_MINIVAULT_35 = 234,
+
+ VAULT_RAND_DEMON_1 = 300,
+ VAULT_RAND_DEMON_2 = 301,
+ VAULT_RAND_DEMON_3 = 302,
+ VAULT_RAND_DEMON_4 = 303,
+ VAULT_RAND_DEMON_5 = 304,
+ VAULT_RAND_DEMON_6 = 305,
+ VAULT_RAND_DEMON_7 = 306,
+ VAULT_RAND_DEMON_8 = 307,
+ VAULT_RAND_DEMON_9 = 308
+};
+
+enum vorpal_damage_type
+{
+ // Types of damage a weapon can do... currently assuming that anything
+ // with BLUDGEON always does "AND" with any other specified types,
+ // and and sets not including BLUDGEON are "OR".
+ 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)
+
+ // These are used for vorpal weapon desc (don't set more than one)
+ 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
+
+ // 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
};
// 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
+enum wand_type // mitm[].subtype
{
WAND_FLAME, // 0
WAND_FROST,
@@ -3157,7 +3549,7 @@ enum WANDS // mitm[].subtype
NUM_WANDS // must remain last member {dlb}
};
-enum WEAPONS
+enum weapon_type
{
// Base weapons
WPN_CLUB, // 0
@@ -3203,19 +3595,24 @@ enum WEAPONS
WPN_TRIDENT,
WPN_SPIKED_FLAIL,
WPN_GREAT_MACE,
- WPN_GREAT_FLAIL, // 40
+ WPN_DIRE_FLAIL, // 40
WPN_KNIFE,
WPN_BLOWGUN,
WPN_FALCHION,
WPN_BLESSED_BLADE, // 44
- NUM_WEAPONS, // 45 - must be last regular member {dlb}
+ WPN_LONGBOW,
+ WPN_LAJATANG,
+ WPN_LOCHABER_AXE,
+
+ NUM_WEAPONS, // 48 - must be last regular member {dlb}
+
// special cases
WPN_UNARMED = 500, // 500
WPN_UNKNOWN = 1000, // 1000
WPN_RANDOM
};
-enum WEAPON_DESCRIPTIONS
+enum weapon_description_type
{
DWPN_PLAIN = 0, // 0 - added to round out enum {dlb}
DWPN_RUNED = 1, // 1
@@ -3225,7 +3622,7 @@ enum WEAPON_DESCRIPTIONS
DWPN_DWARVEN // 5
};
-enum WEAPON_PROPERTIES
+enum weapon_property_type
{
PWPN_DAMAGE, // 0
PWPN_HIT,
@@ -3234,7 +3631,7 @@ enum WEAPON_PROPERTIES
#ifdef WIZARD
-enum WIZARD_OPTIONS
+enum wizard_option_type
{
WIZ_NEVER, // protect player from accidental wiz
WIZ_NO, // don't start character in wiz mode
@@ -3243,7 +3640,7 @@ enum WIZARD_OPTIONS
#endif
-enum ZAPS // zapping(), zappy()
+enum zap_type
{
ZAP_FLAME, // 0
ZAP_FROST,
@@ -3292,7 +3689,7 @@ enum ZAPS // zapping(), zappy()
ZAP_AGONY,
ZAP_DISRUPTION, // 45
ZAP_DISINTEGRATION, // 46
- ZAP_ISKS_CROSS, // 47: Isk's Cross -- commented out, deprecated {dlb}
+ // ZAP_ISKS_CROSS, // 47: Isk's Cross -- commented out, deprecated {dlb}
ZAP_BREATHE_STEAM = 48, // 48
ZAP_CONTROL_DEMON,
ZAP_ORB_OF_FRAGMENTATION, // 50
@@ -3305,8 +3702,18 @@ enum ZAPS // zapping(), zappy()
ZAP_SMALL_SANDBLAST,
ZAP_MAGMA,
ZAP_POISON_ARROW,
+ ZAP_BREATHE_STICKY_FLAME,
+ ZAP_BREATHE_LIGHTNING,
+ ZAP_PETRIFY,
+ ZAP_HELLFROST,
NUM_ZAPS // must remain last member {dlb}
};
+enum zombie_size_type
+{
+ Z_NOZOMBIE,
+ Z_SMALL,
+ Z_BIG
+};
#endif // ENUM_H