summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/enum.h
diff options
context:
space:
mode:
authordshaligram <dshaligram@c06c8d41-db1a-0410-9941-cceddc491573>2006-11-22 08:41:20 +0000
committerdshaligram <dshaligram@c06c8d41-db1a-0410-9941-cceddc491573>2006-11-22 08:41:20 +0000
commit1d0f57cbceb778139ca215cc4fcfd1584951f6dd (patch)
treecafd60c944c51fcce778aa5d6912bc548c518339 /crawl-ref/source/enum.h
parent6f5e187a9e5cd348296dba2fd89d2e206e775a01 (diff)
downloadcrawl-ref-1d0f57cbceb778139ca215cc4fcfd1584951f6dd.tar.gz
crawl-ref-1d0f57cbceb778139ca215cc4fcfd1584951f6dd.zip
Merged stone_soup r15:451 into trunk.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@452 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source/enum.h')
-rw-r--r--crawl-ref/source/enum.h1332
1 files changed, 1025 insertions, 307 deletions
diff --git a/crawl-ref/source/enum.h b/crawl-ref/source/enum.h
index 55d24085e1..4bf996d51f 100644
--- a/crawl-ref/source/enum.h
+++ b/crawl-ref/source/enum.h
@@ -3,6 +3,8 @@
* Summary: Global (ick) enums.
* Written by: Daniel Ligon
*
+ * Modified for Crawl Reference by $Author$ on $Date$
+ *
* Change History (most recent first):
*
* <11> 7 Aug 01 MV Changed MSLOT_UNASSIGNED_I to MSLOT_MISCELLANY
@@ -30,7 +32,7 @@
#ifndef ENUM_H
#define ENUM_H
-enum ABILITIES
+enum ability_type
{
ABIL_NON_ABILITY = -1,
ABIL_SPIT_POISON = 1, // 1
@@ -49,7 +51,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 +81,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
@@ -89,7 +91,7 @@ enum ABILITIES
ABIL_YRED_ANIMATE_DEAD,
ABIL_YRED_DRAIN_LIFE,
ABIL_YRED_CONTROL_UNDEAD, // 144
- ABIL_VEHUMET_CHANNEL_ENERGY = 160, // 160
+ // 160 - reserved for Vehumet
ABIL_OKAWARU_MIGHT = 170, // 170
ABIL_OKAWARU_HEALING,
ABIL_OKAWARU_HASTE, // 172
@@ -97,7 +99,8 @@ enum ABILITIES
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_SIF_MUNA_CHANNEL_ENERGY = 190, // 190
+ ABIL_SIF_MUNA_FORGET_SPELL,
ABIL_TROG_BERSERK = 200, // 200
ABIL_TROG_MIGHT,
ABIL_TROG_HASTE_SELF, // 202
@@ -110,11 +113,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,34 +133,28 @@ enum ABILITY_FLAGS
ABFLAG_PERMANENT_MP = 0x00000040 // costs permanent MPs
};
-enum ACTIVITY
+enum activity_interrupt_type
{
- ACT_NONE = 0,
- ACT_MULTIDROP,
- ACT_RUNNING,
- ACT_TRAVELING,
- ACT_MACRO,
-
- ACT_ACTIVITY_COUNT
-};
+ AI_FORCE_INTERRUPT = 0, // Forcibly kills any activity that can be
+ // interrupted.
+ AI_KEYPRESS,
+ AI_FULL_HP, // Player is fully healed
+ AI_FULL_MP, // Player has recovered all mp
+ AI_STATUE, // Bad statue has come into view
+ AI_HUNGRY, // Hunger increased
+ AI_MESSAGE, // Message was displayed
+ AI_HP_LOSS,
+ AI_BURDEN_CHANGE,
+ AI_STAT_CHANGE,
+ AI_SEE_MONSTER,
+ AI_MONSTER_ATTACKS,
+ AI_TELEPORT,
-enum ACT_INTERRUPT
-{
- AI_FORCE_INTERRUPT = 0, // Forcibly kills any activity
- AI_KEYPRESS = 0x01,
- AI_FULL_HP = 0x02, // Player is fully healed
- AI_FULL_MP = 0x04, // Player has recovered all mp
- AI_STATUE = 0x08, // Bad statue has come into view
- AI_HUNGRY = 0x10, // Hunger increased
- AI_MESSAGE = 0x20, // Message was displayed
- AI_HP_LOSS = 0x40,
- AI_BURDEN_CHANGE = 0x80,
- AI_STAT_CHANGE = 0x100,
- AI_SEE_MONSTER = 0x200,
- AI_TELEPORT = 0x400
+ // Always the last.
+ NUM_AINTERRUPTS
};
-enum AI_PAYLOAD
+enum activity_interrupt_payload_type
{
AIP_NONE,
AIP_INT,
@@ -162,7 +163,7 @@ enum AI_PAYLOAD
AIP_HP_LOSS
};
-enum AMMUNITION_DESCRIPTIONS
+enum ammunition_description_type
{
DAMMO_ORCISH = 3, // 3
DAMMO_ELVEN,
@@ -170,7 +171,7 @@ enum AMMUNITION_DESCRIPTIONS
};
// Various ways to get the acquirement effect.
-enum AQ_AGENTS
+enum acquirement_agent_type
{
AQ_SCROLL = 0,
@@ -184,7 +185,7 @@ enum AQ_AGENTS
AQ_WIZMODE = 200
};
-enum ARMOUR
+enum armour_type
{
ARM_ROBE, // 0
ARM_LEATHER_ARMOUR,
@@ -219,10 +220,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,19 +240,18 @@ 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!
// ATTR_SPEC_EARTH,
- ATTR_CONTROL_TELEPORT = 3,
+ ATTR_CONTROL_TELEPORT = 3, // obsolete
ATTR_WALK_SLOWLY,
ATTR_TRANSFORMATION, // 5
ATTR_CARD_COUNTDOWN,
@@ -258,10 +264,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 +317,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 +331,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 +368,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,
@@ -363,10 +381,12 @@ enum BEAMS // beam[].flavour
BEAM_POTION_BLACK_SMOKE,
BEAM_POTION_BLUE_SMOKE,
BEAM_POTION_PURP_SMOKE,
- BEAM_POTION_RANDOM
+ BEAM_POTION_RANDOM,
+
+ BEAM_LINE_OF_SIGHT // only used for checking monster LOS
};
-enum BOOKS
+enum book_type
{
BOOK_MINOR_MAGIC_I, // 0
BOOK_MINOR_MAGIC_II,
@@ -419,7 +439,7 @@ enum BOOKS
NUM_BOOKS
};
-enum BRANCHES // you.where_are_you
+enum branch_type // you.where_are_you
{
BRANCH_MAIN_DUNGEON, // 0
BRANCH_DIS,
@@ -441,10 +461,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,
@@ -458,17 +479,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,
@@ -480,10 +502,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 CLOUD_TYPES // cloud_type[], place_cloud(), big_cloud()
+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_type
{
CLOUD_NONE, // 0
CLOUD_FIRE, // 1
@@ -496,6 +530,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}
@@ -510,7 +545,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,
@@ -589,14 +624,12 @@ enum COMMANDS
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_SUSPEND_GAME,
+ CMD_QUIT, // 1000 + 80
CMD_WIZARD,
CMD_DESTROY_ITEM,
- CMD_OBSOLETE_INVOKE,
CMD_MARK_STASH,
CMD_FORGET_STASH,
@@ -605,17 +638,133 @@ enum COMMANDS
CMD_INTERLEVEL_TRAVEL,
CMD_FIX_WAYPOINT,
- CMD_CLEAR_MAP
-};
-
-enum CONFIRM_LEVEL
+ CMD_CLEAR_MAP,
+ CMD_INSCRIBE_ITEM,
+ CMD_TOGGLE_NOFIZZLE,
+ CMD_TOGGLE_AUTOPRAYER,
+ CMD_MAKE_NOTE,
+ CMD_RESISTS_SCREEN,
+
+ /* overmap commands */
+ CMD_MAP_CLEAR_MAP,
+ CMD_MAP_ADD_WAYPOINT,
+ CMD_MAP_EXCLUDE_AREA,
+ CMD_MAP_CLEAR_EXCLUDES,
+
+ CMD_MAP_MOVE_LEFT,
+ CMD_MAP_MOVE_DOWN,
+ CMD_MAP_MOVE_UP,
+ CMD_MAP_MOVE_RIGHT,
+ CMD_MAP_MOVE_UP_LEFT,
+ CMD_MAP_MOVE_DOWN_LEFT,
+ CMD_MAP_MOVE_UP_RIGHT,
+ CMD_MAP_MOVE_DOWN_RIGHT,
+
+ CMD_MAP_JUMP_LEFT,
+ CMD_MAP_JUMP_DOWN,
+ CMD_MAP_JUMP_UP,
+ CMD_MAP_JUMP_RIGHT,
+ CMD_MAP_JUMP_UP_LEFT,
+ CMD_MAP_JUMP_DOWN_LEFT,
+ CMD_MAP_JUMP_UP_RIGHT,
+ CMD_MAP_JUMP_DOWN_RIGHT,
+
+ CMD_MAP_SCROLL_DOWN,
+ CMD_MAP_SCROLL_UP,
+
+ CMD_MAP_FIND_UPSTAIR,
+ CMD_MAP_FIND_DOWNSTAIR,
+ CMD_MAP_FIND_YOU,
+ CMD_MAP_FIND_PORTAL,
+ CMD_MAP_FIND_TRAP,
+ CMD_MAP_FIND_ALTAR,
+ CMD_MAP_FIND_EXCLUDED,
+ CMD_MAP_FIND_F,
+ CMD_MAP_FIND_WAYPOINT,
+ CMD_MAP_FIND_STASH,
+
+ CMD_MAP_GOTO_TARGET,
+
+ CMD_MAP_EXIT_MAP,
+
+ /* targeting commands */
+ CMD_TARGET_DOWN_LEFT,
+ CMD_TARGET_DOWN,
+ CMD_TARGET_DOWN_RIGHT,
+ CMD_TARGET_LEFT,
+ CMD_TARGET_RIGHT,
+ CMD_TARGET_UP_LEFT,
+ CMD_TARGET_UP,
+ CMD_TARGET_UP_RIGHT,
+ CMD_TARGET_CYCLE_TARGET_MODE,
+ CMD_TARGET_PREV_TARGET,
+ CMD_TARGET_SELECT,
+ CMD_TARGET_OBJ_CYCLE_BACK,
+ CMD_TARGET_OBJ_CYCLE_FORWARD,
+ CMD_TARGET_CYCLE_FORWARD,
+ CMD_TARGET_CYCLE_BACK,
+ CMD_TARGET_CENTER,
+ CMD_TARGET_CANCEL,
+ CMD_TARGET_OLD_SPACE,
+ CMD_TARGET_FIND_TRAP,
+ CMD_TARGET_FIND_PORTAL,
+ CMD_TARGET_FIND_ALTAR,
+ CMD_TARGET_FIND_UPSTAIR,
+ CMD_TARGET_FIND_DOWNSTAIR,
+ CMD_TARGET_FIND_YOU,
+ CMD_TARGET_DESCRIBE,
+
+ // [ds] Silently ignored, requests another round of input.
+ CMD_NEXT_CMD
+
+};
+
+enum confirm_level_type
{
CONFIRM_NONE_EASY,
CONFIRM_SAFE_EASY,
CONFIRM_ALL_EASY
};
-enum CORPSE_EFFECTS
+enum conduct_type
+{
+ DID_NECROMANCY = 1, // vamp/drain/pain wpns, Zong/Curses
+ DID_UNHOLY, // demon wpns, demon spells
+ DID_ATTACK_HOLY,
+ DID_ATTACK_FRIEND,
+ DID_FRIEND_DIES,
+ DID_STABBING,
+ DID_POISON,
+ DID_DEDICATED_BUTCHERY,
+ DID_DEDICATED_KILL_LIVING,
+ DID_DEDICATED_KILL_UNDEAD,
+ DID_DEDICATED_KILL_DEMON,
+ DID_DEDICATED_KILL_NATURAL_EVIL, // unused
+ DID_DEDICATED_KILL_WIZARD,
+ DID_DEDICATED_KILL_PRIEST, // unused
+
+ // [dshaligram] No distinction between killing Angels during prayer or
+ // otherwise, borrowed from bwr 4.1.
+ DID_KILL_ANGEL,
+ DID_LIVING_KILLED_BY_UNDEAD_SLAVE,
+ DID_LIVING_KILLED_BY_SERVANT,
+ DID_UNDEAD_KILLED_BY_SERVANT,
+ DID_DEMON_KILLED_BY_SERVANT,
+ DID_NATURAL_EVIL_KILLED_BY_SERVANT, // unused
+ DID_ANGEL_KILLED_BY_SERVANT,
+ DID_SPELL_MEMORISE,
+ DID_SPELL_CASTING,
+ DID_SPELL_PRACTISE,
+ DID_SPELL_NONUTILITY, // unused
+ DID_CARDS,
+ DID_STIMULANTS, // unused
+ DID_EAT_MEAT, // unused
+ DID_CREATED_LIFE, // unused
+
+ NUM_CONDUCTS
+};
+
+enum corpse_effect_type
{
CE_NOCORPSE, // 0
CE_CLEAN, // 1
@@ -629,13 +778,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,
@@ -643,7 +792,16 @@ enum DEATH_KNIGHT_CHOICES
DK_RANDOM
};
-enum DECKS
+enum startup_book_type
+{
+ SBT_NO_SELECTION = 0,
+ SBT_FIRE,
+ SBT_COLD,
+ SBT_SUMM,
+ SBT_RANDOM
+};
+
+enum deck_type
{
DECK_OF_WONDERS, // 0
DECK_OF_SUMMONING,
@@ -652,25 +810,40 @@ enum DECKS
DECK_OF_PUNISHMENT
};
-enum DELAY
+// When adding new delays, update their names in delay.cc, or bad things will
+// happen.
+enum delay_type
{
DELAY_NOT_DELAYED,
DELAY_EAT,
DELAY_ARMOUR_ON,
DELAY_ARMOUR_OFF,
- DELAY_MEMORIZE,
+ DELAY_JEWELLERY_ON,
+ DELAY_MEMORISE,
DELAY_BUTCHER,
DELAY_AUTOPICKUP,
DELAY_WEAPON_SWAP, // for easy_butcher
DELAY_PASSWALL,
DELAY_DROP_ITEM,
+ DELAY_MULTIDROP,
DELAY_ASCENDING_STAIRS,
DELAY_DESCENDING_STAIRS,
- DELAY_INTERUPTABLE = 100, // simple interuptable delay
- DELAY_UNINTERUPTABLE // simple uninteruptable delay
+
+ // [dshaligram] Shift-running, resting, travel and macros are now
+ // also handled as delays.
+ DELAY_RUN,
+ DELAY_REST,
+ DELAY_TRAVEL,
+
+ DELAY_MACRO,
+
+ DELAY_INTERRUPTIBLE, // simple interruptible delay
+ DELAY_UNINTERRUPTIBLE, // simple uninterruptible delay
+
+ NUM_DELAYS
};
-enum DEMON_BEAMS
+enum demon_beam_type
{
DMNBM_HELLFIRE, // 0
DMNBM_SMITING,
@@ -678,14 +851,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
@@ -699,19 +873,71 @@ 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!
+// [dshaligram] If adding/removing from this list, also update view.cc!
+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,
@@ -723,14 +949,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
@@ -738,9 +962,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,
@@ -786,6 +1011,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,
@@ -800,6 +1029,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,
@@ -824,10 +1057,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,
@@ -850,18 +1114,54 @@ 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
+ DUR_GOURMAND, // 28
+ NUM_DURATIONS = 30 // must be at least 30
+};
+
+// various elemental colour schemes... used for abstracting random short lists
+// MUST match the order in initfile.cc or breakage results.
+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,
@@ -924,14 +1224,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,
@@ -952,7 +1261,7 @@ enum EQUIPMENT
EQ_ALL_ARMOUR // check all armour types
};
-enum FIRE_TYPES
+enum fire_type
{
FIRE_NONE,
FIRE_LAUNCHER,
@@ -962,19 +1271,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,
@@ -1001,21 +1315,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,
@@ -1047,9 +1361,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,
@@ -1067,35 +1381,16 @@ enum GODS // you.religion
GOD_RANDOM = 100
};
-enum GOOD_THINGS
+enum hands_reqd_type
{
- 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
-};
+ HANDS_ONE,
+ HANDS_HALF,
+ HANDS_TWO,
-enum HANDS_REQUIRED
-{
- HANDS_ONE_HANDED = 1, // 1
- HANDS_TWO_HANDED,
- HANDS_ONE_OR_TWO_HANDED
+ 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,
@@ -1106,7 +1401,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,
@@ -1119,30 +1413,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,
@@ -1151,7 +1423,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,
@@ -1161,7 +1433,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
@@ -1175,9 +1447,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
@@ -1186,6 +1458,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
@@ -1201,16 +1474,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,
@@ -1220,7 +1494,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
@@ -1234,22 +1508,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,
@@ -1288,7 +1563,7 @@ enum JEWELLERY
NUM_JEWELLERY
};
-enum JOB
+enum job_type
{
JOB_FIGHTER, // 0
JOB_WIZARD,
@@ -1324,7 +1599,7 @@ enum JOB
JOB_UNKNOWN = 100
};
-enum KILLBY
+enum kill_method_type
{
KILLED_BY_MONSTER, // 0
KILLED_BY_POISON,
@@ -1352,14 +1627,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,
@@ -1367,20 +1645,28 @@ enum KillCategory
KC_NCATEGORIES
};
-enum KILLER // monster_die(), thing_thrown
+enum killer_type // monster_die(), thing_thrown
{
KILL_YOU = 1, // 1
KILL_MON,
KILL_YOU_MISSILE,
KILL_MON_MISSILE,
KILL_MISC, // 5
- KILL_RESET // abjuration, etc.
+ KILL_RESET, // abjuration, etc.
+ KILL_DISMISSED // only on new game startup
};
#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,
@@ -1388,48 +1674,67 @@ 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}
+// [dshaligram] Maps can be mirrored; for every orientation, there must be
+// a suitable mirror.
+enum map_section_type // see maps.cc and dungeon.cc {dlb}
{
+ MAP_NONE = -1,
MAP_NORTH = 1, // 1
- MAP_NORTHWEST,
+ MAP_SOUTH,
+ MAP_EAST,
+ MAP_WEST,
+ MAP_NORTHWEST, // 5
MAP_NORTHEAST,
MAP_SOUTHWEST,
- MAP_SOUTHEAST, // 5
- MAP_ENCOMPASS,
- MAP_NORTH_DIS
+ MAP_SOUTHEAST,
+ MAP_ENCOMPASS
+};
+
+enum menu_type
+{
+ MT_INVSELECT, // General - select single item
+ MT_INVLIST, // List inventory
+ MT_DROP
};
// if you mess with this list, you'll need to make changes in initfile.cc
-enum MESSAGE_CHANNEL
+// to message_channel_names, and probably also to message.cc to colour
+// everything properly
+enum msg_channel_type
{
MSGCH_PLAIN, // regular text
MSGCH_PROMPT, // various prompts
MSGCH_GOD, // god/religion (param is god)
+ MSGCH_PRAY, // praying messages (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_SOUND, // messages about things the player hears
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_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,
@@ -1452,7 +1757,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,
@@ -1475,7 +1780,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,
@@ -1484,10 +1789,83 @@ 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
+};
+
+// properties of the monster class (other than resists/vulnerabilities)
+enum mons_class_flags
+{
+ M_NO_FLAGS = 0,
+
+ M_SPELLCASTER = (1<< 0), // any non-physical-attack powers,
+ M_ACTUAL_SPELLS = (1<< 1), // monster is a wizard,
+ M_PRIEST = (1<< 2), // monster is a priest
+ M_FIGHTER = (1<< 3), // monster is skilled fighter
+
+ M_FLIES = (1<< 4), // will crash to ground if paralysed?
+ M_LEVITATE = (1<< 5), // ... but not if this is set
+ M_INVIS = (1<< 6), // is created invis
+ M_SEE_INVIS = (1<< 7), // can see invis
+ M_SPEAKS = (1<< 8), // uses talking code
+ M_CONFUSED = (1<< 9), // monster is perma-confused,
+ M_BATTY = (1<<10), // monster is batty
+ M_SPLITS = (1<<11), // monster can split
+ M_AMPHIBIOUS = (1<<12), // monster can swim in water,
+ M_THICK_SKIN = (1<<13), // monster has more effective AC,
+ M_HUMANOID = (1<<14), // for Glamour
+ M_COLD_BLOOD = (1<<15), // susceptible to cold
+ M_WARM_BLOOD = (1<<16), // no effect currently
+ M_REGEN = (1<<17), // regenerates quickly
+ M_BURROWS = (1<<18), // monster digs through rock
+ M_EVIL = (1<<19), // monster vulnerable to holy spells
+
+ M_UNIQUE = (1<<20), // monster is a unique
+ M_FROZEN = (1<<21), // XXX: Potentially ditchable
+
+
+ M_SPECIAL_ABILITY = (1<<26), // XXX: eventually make these spells?
+ M_COLOUR_SHIFT = (1<<27), // flag for element colour shifters
+ M_DCHAR_SYMBOL = (1<<28), // monster looks like a DCHAR terrain
+
+ M_NO_SKELETON = (1<<29), // boneless corpses
+ M_NO_WOUNDS = (1<<30), // doesn't show would level
+ M_NO_EXP_GAIN = (1<<31) // worth 0 xp
+};
+
+enum mon_resist_flags
+{
+ MR_NO_FLAGS = 0,
+
+ // resistances
+ // Notes:
+ // - negative energy is mostly handled via mons_has_life_force()
+ // - acid is handled mostly by genus (jellies) plus non-living
+ // - asphyx-resistance replaces hellfrost resistance.
+ MR_RES_ELEC = (1<< 0),
+ MR_RES_POISON = (1<< 1),
+ MR_RES_FIRE = (1<< 2),
+ MR_RES_HELLFIRE = (1<< 3),
+ MR_RES_COLD = (1<< 4),
+ MR_RES_ASPHYX = (1<< 5),
+
+ // vulnerabilities
+ MR_VUL_ELEC = (1<< 6),
+ MR_VUL_POISON = (1<< 7),
+ MR_VUL_FIRE = (1<< 8),
+ MR_VUL_COLD = (1<< 9),
+
+ // melee armour resists/vulnerabilities
+ // XXX: how to do combos (bludgeon/slice, bludgeon/pierce)
+ MR_RES_PIERCE = (1<<10),
+ MR_RES_SLICE = (1<<11),
+ MR_RES_BLUDGEON = (1<<12),
+
+ MR_VUL_PIERCE = (1<<13),
+ MR_VUL_SLICE = (1<<14),
+ MR_VUL_BLUDGEON = (1<<15)
};
-enum MON_TARG_MODE
+enum targ_mode_type
{
TARG_ANY,
TARG_ENEMY,
@@ -1495,7 +1873,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,
@@ -1662,6 +2041,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
@@ -1775,6 +2155,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,
@@ -1848,57 +2245,62 @@ enum MONSTERS // (int) menv[].type
MONS_WATER_ELEMENTAL,
MONS_SWAMP_WORM, // 435
+ // Statuary
+ MONS_ORANGE_STATUE,
+ MONS_SILVER_STATUE,
+
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()
+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
@@ -1906,12 +2308,12 @@ enum MONSTER_FLAGS
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
+ MF_INTERESTING = 0x20, // Player finds monster interesting
+ MF_SEEN = 0x40, // Player already seen monster
+ MF_UNUSED_I = 0x80
};
-enum MONSTER_DAMAGE
+enum mon_dam_level_type
{
MDAM_OKAY,
MDAM_LIGHTLY_DAMAGED,
@@ -1922,14 +2324,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
@@ -1939,7 +2341,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}
@@ -1952,16 +2354,20 @@ 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_
+// If changing this list, keep mon-util.cc spell names in sync.
+enum mon_spell_type
{
MS_MMISSILE, // 0
MS_FLAME,
@@ -2016,12 +2422,25 @@ 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
+ MS_SUMMON_SMALL_MAMMALS,
+ MS_SUMMON_MUSHROOMS,
+ // 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,
@@ -2036,7 +2455,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
@@ -2109,13 +2529,19 @@ 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,
+ MST_CURSE_TOE,
NUM_MSTYPES,
MST_NO_SPELLS = 250
};
-enum MUTATIONS
+enum mutation_type
{
MUT_TOUGH_SKIN, // 0
MUT_STRONG,
@@ -2201,25 +2627,7 @@ enum MUTATIONS
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
+enum object_class_type // (unsigned char) mitm[].base_type
{
OBJ_WEAPONS, // 0
OBJ_MISSILES,
@@ -2244,18 +2652,86 @@ 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 operation_types
+{
+ OPER_WIELD = 'w',
+ OPER_QUAFF = 'q',
+ OPER_DROP = 'd',
+ OPER_EAT = 'e',
+ OPER_TAKEOFF = 'T',
+ OPER_WEAR = 'W',
+ OPER_PUTON = 'P',
+ OPER_REMOVE = 'R',
+ OPER_READ = 'r',
+ OPER_MEMORISE = 'M',
+ OPER_ZAP = 'z',
+ OPER_THROW = 't',
+ OPER_EXAMINE = 'v',
+ OPER_ANY = 0
+};
+
+enum orb_type
{
ORB_ZOT // 0
};
-enum POTIONS
+enum player_size_type
+{
+ PSIZE_BODY, // entire body size -- used for EV/size of target
+ PSIZE_TORSO, // torso only (hybrids -- size of parts that use equip)
+ PSIZE_PROFILE // profile only (for stealth checks)
+};
+
+// [dshaligram] If you edit potion colours/descriptions, also update
+// itemname.cc.
+enum potion_description_colour_type
+{
+ PDC_CLEAR,
+ PDC_BLUE,
+ PDC_BLACK,
+ PDC_SILVERY,
+ PDC_CYAN,
+ PDC_PURPLE,
+ PDC_ORANGE,
+ PDC_INKY,
+ PDC_RED,
+ PDC_YELLOW,
+ PDC_GREEN,
+ PDC_BROWN,
+ PDC_PINK,
+ PDC_WHITE,
+ PDC_NCOLOURS
+};
+
+// [dshaligram] If you edit potion colours/descriptions, also update
+// itemname.cc.
+enum potion_description_qualifier_type
+{
+ PDQ_NONE,
+ PDQ_BUBBLING,
+ PDQ_FUMING,
+ PDQ_FIZZY,
+ PDQ_VISCOUS,
+ PDQ_LUMPY,
+ PDQ_SMOKY,
+ PDQ_GLOWING,
+ PDQ_SEDIMENTED,
+ PDQ_METALLIC,
+ PDQ_MURKY,
+ PDQ_GLUGGY,
+ PDQ_OILY,
+ PDQ_SLIMY,
+ PDQ_EMULSIFIED,
+ PDQ_NQUALS
+};
+
+enum potion_type
{
POT_HEALING, // 0
POT_HEAL_WOUNDS,
@@ -2284,7 +2760,7 @@ enum POTIONS
NUM_POTIONS
};
-enum PRONOUN_TYPE
+enum pronoun_type
{
PRONOUN_CAP, // 0
PRONOUN_NOCAP, // 1
@@ -2293,7 +2769,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,
@@ -2301,7 +2777,7 @@ enum PROXIMITY // proximity to player to create monster
PROX_NEAR_STAIRS
};
-enum RANDART_PROP
+enum randart_prop_type
{
RAP_BRAND, // 0
RAP_AC,
@@ -2332,17 +2808,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,
@@ -2355,7 +2839,18 @@ enum RUN_DIR
RDIR_REST
};
-enum RUNE_TYPES
+enum run_mode_type
+{
+ RMODE_INTERLEVEL = -3, // Interlevel travel (Ctrl+G)
+ RMODE_EXPLORE = -2, // Exploring (Ctrl+O)
+ RMODE_TRAVEL = -1, // Classic or Plain Old travel
+ RMODE_NOT_RUNNING = 0, // must remain equal to 0
+ RMODE_CONTINUE,
+ RMODE_START,
+ RMODE_REST_DURATION = 100
+};
+
+enum rune_type
{
// Note: that runes DIS-SWAMP have the same numberic value as the branch
RUNE_DIS = 1,
@@ -2379,17 +2874,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,
@@ -2417,7 +2913,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,
@@ -2436,7 +2932,47 @@ 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
+};
+
+// [dshaligram] If you add a new skill, update skills2.cc, specifically
+// the skills[] array and skill_display_order[]. New skills must go at the
+// end of the list or in the unused skill numbers. NEVER rearrange this enum or
+// move existing skills to new numbers; save file compatibility depends on this
+// order.
+enum skill_type
{
SK_FIGHTING, // 0
SK_SHORT_BLADES,
@@ -2450,7 +2986,7 @@ enum SKILLS
SK_BOWS,
SK_CROSSBOWS, // 10
SK_DARTS,
- SK_THROWING,
+ SK_RANGED_COMBAT,
SK_ARMOUR,
SK_DODGING,
SK_STEALTH, // 15
@@ -2473,10 +3009,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,
@@ -2504,32 +3044,42 @@ 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
SPMSL_ICE, // 2
SPMSL_POISONED, // 3 - from poison_ammo() enchantment {dlb}
- SPMSL_POISONED_II // 4
+ SPMSL_POISONED_II, // 4
+ 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,
@@ -2579,7 +3129,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,
@@ -2599,7 +3149,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,
@@ -2629,7 +3179,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,
@@ -2643,7 +3193,7 @@ enum SPECIES
SP_UNKNOWN = 100
};
-enum SPELLS
+enum spell_type
{
SPELL_IDENTIFY, // 0
SPELL_TELEPORT_SELF,
@@ -2827,18 +3377,38 @@ 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, // 203 (be wary of 210, see below)
+ SPELL_CONJURE_BALL_LIGHTNING,
+ SPELL_CHAIN_LIGHTNING, // 203 (be wary of 209/210, see below)
NUM_SPELLS,
SPELL_NO_SPELL = 210 // 210 - added 22jan2000 {dlb}
};
-enum SPELL_TYPES //jmf: 24jul2000: changed from integer-list to bitfield
+enum spflag_type
+{
+ SPFLAG_NONE = 0x0000,
+ SPFLAG_DIR_OR_TARGET = 0x0001, // use DIR_NONE targeting
+ SPFLAG_TARGET = 0x0002, // use DIR_TARGET targeting
+ SPFLAG_GRID = 0x0004, // use DIR_GRID targeting
+ SPFLAG_DIR = 0x0008, // use DIR_DIR targeting
+ SPFLAG_TARGETING_MASK = 0x000f, // used to test for targeting
+ SPFLAG_HELPFUL = 0x0010, // TARG_FRIENDS used
+ SPFLAG_NOT_SELF = 0x0020, // aborts on isMe
+ SPFLAG_UNHOLY = 0x0040 // counts at "unholy"
+};
+
+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}
@@ -2859,13 +3429,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,
@@ -2875,14 +3445,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,
@@ -2908,7 +3478,7 @@ enum STATUS_REDRAW_FLAGS
REDRAW_LINE_3_MASK = 0x007f0000
};
-enum STAVES
+enum stave_type
{
STAFF_WIZARDRY, // 0
STAFF_POWER,
@@ -2936,7 +3506,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
@@ -2951,10 +3522,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
@@ -2968,15 +3540,25 @@ 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.
- TAGTYPE_GHOST // bones.xxx
+ TAGTYPE_GHOST, // bones.xxx
+
+ TAGTYPE_PLAYER_NAME // Used only to read the player name
};
+enum torment_source_type
+{
+ TORMENT_GENERIC = -1,
+ TORMENT_CARDS = -2, // Symbol of torment
+ TORMENT_SPWLD = -3, // Special wield torment
+ TORMENT_SCROLL = -4,
+ TORMENT_SPELL = -5 // SPELL_SYMBOL_OF_TORMENT
+};
-enum TRANSFORMATIONS
+enum transformation_type
{
TRAN_NONE, // 0
TRAN_SPIDER,
@@ -2990,7 +3572,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,
@@ -3004,10 +3586,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,
@@ -3016,31 +3599,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,
@@ -3065,7 +3767,7 @@ enum WANDS // mitm[].subtype
NUM_WANDS // must remain last member {dlb}
};
-enum WEAPONS
+enum weapon_type
{
// Base weapons
WPN_CLUB, // 0
@@ -3111,18 +3813,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,
- NUM_WEAPONS, // 44 - must remain last regular member {dlb}
+ WPN_BLESSED_BLADE, // 44
+ 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
@@ -3132,7 +3840,7 @@ enum WEAPON_DESCRIPTIONS
DWPN_DWARVEN // 5
};
-enum WEAPON_PROPERTIES
+enum weapon_property_type
{
PWPN_DAMAGE, // 0
PWPN_HIT,
@@ -3141,7 +3849,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
@@ -3150,7 +3858,7 @@ enum WIZARD_OPTIONS
#endif
-enum ZAPS // zapping(), zappy()
+enum zap_type
{
ZAP_FLAME, // 0
ZAP_FROST,
@@ -3199,7 +3907,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
@@ -3212,8 +3920,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