/*
* File: enum.h
* Summary: Global (ick) enums.
* Written by: Daniel Ligon
*/
#ifndef ENUM_H
#define ENUM_H
enum ability_type
{
ABIL_NON_ABILITY = -1,
ABIL_SPIT_POISON = 1, // 1
ABIL_TELEPORTATION,
ABIL_BREATHE_FIRE,
ABIL_BLINK,
ABIL_BREATHE_FROST, // 5
ABIL_BREATHE_POISON,
ABIL_BREATHE_LIGHTNING,
ABIL_SPIT_ACID,
ABIL_BREATHE_POWER,
ABIL_EVOKE_BERSERK, // 10
ABIL_BREATHE_STICKY_FLAME,
ABIL_BREATHE_STEAM,
ABIL_FLY,
ABIL_SUMMON_MINOR_DEMON,
ABIL_SUMMON_DEMON, // 15
ABIL_HELLFIRE,
ABIL_TORMENT,
ABIL_RAISE_DEAD,
ABIL_CONTROL_DEMON,
ABIL_CHANNELING, // 20
ABIL_THROW_FLAME,
ABIL_THROW_FROST,
ABIL_BOLT_OF_DRAINING,
ABIL_FLY_II,
ABIL_DELAYED_FIREBALL, // 25
ABIL_MUMMY_RESTORATION,
ABIL_EVOKE_TELEPORTATION,
ABIL_EVOKE_BLINK,
ABIL_RECHARGING,
// 30 - 50 unused
ABIL_EVOKE_TURN_INVISIBLE = 51, // 51
ABIL_EVOKE_TURN_VISIBLE,
ABIL_EVOKE_LEVITATE,
ABIL_EVOKE_STOP_LEVITATING,
ABIL_END_TRANSFORMATION, // 55
// Divine abilities
ABIL_ZIN_SUSTENANCE = 109, // 109
ABIL_ZIN_RECITE,
ABIL_ZIN_VITALISATION,
ABIL_ZIN_SANCTUARY,
ABIL_ZIN_CURE_ALL_MUTATIONS,
ABIL_TSO_DIVINE_SHIELD = 120, // 120
ABIL_TSO_CLEANSING_FLAME,
ABIL_TSO_SUMMON_DIVINE_WARRIOR,
ABIL_KIKU_RECEIVE_CORPSES = 130, // 130
ABIL_YRED_INJURY_MIRROR = 139,
ABIL_YRED_ANIMATE_REMAINS, // 140
ABIL_YRED_RECALL_UNDEAD_SLAVES,
ABIL_YRED_ANIMATE_DEAD,
ABIL_YRED_DRAIN_LIFE,
ABIL_YRED_ENSLAVE_SOUL,
// 160 - reserved for Vehumet
ABIL_OKAWARU_MIGHT = 170, // 170
// Okawaru no longer heals (JPEG)
ABIL_OKAWARU_HASTE = 172,
ABIL_MAKHLEB_MINOR_DESTRUCTION = 180, // 180
ABIL_MAKHLEB_LESSER_SERVANT_OF_MAKHLEB,
ABIL_MAKHLEB_MAJOR_DESTRUCTION,
ABIL_MAKHLEB_GREATER_SERVANT_OF_MAKHLEB,
ABIL_SIF_MUNA_CHANNEL_ENERGY = 190, // 190
ABIL_SIF_MUNA_FORGET_SPELL,
ABIL_TROG_BURN_SPELLBOOKS = 199,
ABIL_TROG_BERSERK = 200, // 200
ABIL_TROG_REGEN_MR,
ABIL_TROG_BROTHERS_IN_ARMS,
ABIL_ELYVILON_DESTROY_WEAPONS = 219,
ABIL_ELYVILON_LESSER_HEALING_SELF = 220, // 220
ABIL_ELYVILON_LESSER_HEALING_OTHERS,
ABIL_ELYVILON_PURIFICATION,
ABIL_ELYVILON_GREATER_HEALING_SELF,
ABIL_ELYVILON_GREATER_HEALING_OTHERS,
ABIL_ELYVILON_RESTORATION, // 225
ABIL_ELYVILON_DIVINE_VIGOUR,
ABIL_LUGONU_ABYSS_EXIT,
ABIL_LUGONU_BEND_SPACE,
ABIL_LUGONU_BANISH,
ABIL_LUGONU_CORRUPT, // 230
ABIL_LUGONU_ABYSS_ENTER,
ABIL_NEMELEX_DRAW_ONE,
ABIL_NEMELEX_PEEK_TWO,
ABIL_NEMELEX_TRIPLE_DRAW,
ABIL_NEMELEX_MARK_FOUR, // 235
ABIL_NEMELEX_STACK_FIVE,
ABIL_BEOGH_SMITING,
ABIL_BEOGH_RECALL_ORCISH_FOLLOWERS,
ABIL_JIYVA_CALL_JELLY,
ABIL_JIYVA_JELLY_SHIELD, // 240
ABIL_JIYVA_SLIMIFY,
ABIL_JIYVA_CURE_BAD_MUTATION,
ABIL_FEDHAS_FUNGAL_BLOOM,
ABIL_FEDHAS_SUNLIGHT,
ABIL_FEDHAS_RAIN, // 245
ABIL_FEDHAS_PLANT_RING,
ABIL_FEDHAS_SPAWN_SPORES,
ABIL_FEDHAS_EVOLUTION,
ABIL_CHEIBRIADOS_PONDEROUSIFY,
ABIL_CHEIBRIADOS_TIME_STEP, // 250
ABIL_CHEIBRIADOS_TIME_BEND,
ABIL_CHEIBRIADOS_SLOUCH,
ABIL_TRAN_BAT = 260,
ABIL_HARM_PROTECTION,
ABIL_HARM_PROTECTION_II, // 262
ABIL_RENOUNCE_RELIGION = 270 // 270
};
enum activity_interrupt_type
{
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,
AI_HIT_MONSTER, // Player hit monster (invis or
// mimic) during travel/explore.
// Always the last.
NUM_AINTERRUPTS
};
enum actor_type
{
ACT_NONE = -1,
ACT_PLAYER,
ACT_MONSTER
};
enum attribute_type
{
ATTR_DIVINE_LIGHTNING_PROTECTION,
ATTR_DIVINE_REGENERATION,
ATTR_DIVINE_DEATH_CHANNEL,
ATTR_TRANSFORMATION,
ATTR_CARD_COUNTDOWN,
ATTR_WAS_SILENCED, //jmf: added for silenced messages
ATTR_GOD_GIFT_COUNT, //jmf: added to help manage god gift giving
ATTR_DELAYED_FIREBALL, // bwr: reserve fireballs
ATTR_HELD, // caught in a net
ATTR_ABYSS_ENTOURAGE, // maximum number of hostile monsters in
// sight of the player while in the Abyss.
ATTR_DIVINE_VIGOUR, // strength of Ely's Divine Vigour
ATTR_DIVINE_STAMINA, // strength of Zin's Divine Stamina
ATTR_DIVINE_SHIELD, // strength of TSO's Divine Shield
ATTR_UNIQUE_RUNES,
ATTR_DEMONIC_RUNES,
ATTR_ABYSSAL_RUNES,
ATTR_RUNES_IN_ZOT, // Unused but needed for save file compatibility.
ATTR_WEAPON_SWAP_INTERRUPTED,
ATTR_GOLD_FOUND,
ATTR_PURCHASES, // Gold amount spent at shops.
ATTR_DONATIONS, // Gold amount donated to Zin.
ATTR_MISC_SPENDING, // Spending for things like ziggurats.
ATTR_RND_LVL_BOOKS, // Bitfield of level-type randart spellbooks
// player has seen.
ATTR_NOISES, // A noisy artefact is equipped.
ATTR_SHADOWS, // Lantern of shadows effect.
NUM_ATTRIBUTES
};
enum beam_type // beam[].flavour
{
BEAM_NONE, // 0
BEAM_MISSILE,
BEAM_MMISSILE, // and similarly irresistible things
BEAM_FIRE,
BEAM_COLD,
BEAM_MAGIC,
BEAM_ELECTRICITY,
BEAM_POISON,
BEAM_NEG,
BEAM_ACID,
BEAM_MIASMA,
BEAM_WATER,
BEAM_SPORE,
BEAM_POISON_ARROW,
BEAM_HELLFIRE,
BEAM_NAPALM,
BEAM_STEAM,
BEAM_ENERGY,
BEAM_HOLY,
BEAM_FRAG,
BEAM_LAVA,
BEAM_ICE,
BEAM_NUKE,
BEAM_RANDOM, // currently translates into FIRE..ACID
BEAM_CHAOS,
// Enchantments
BEAM_SLOW,
BEAM_FIRST_ENCHANTMENT = BEAM_SLOW,
BEAM_HASTE,
BEAM_MIGHT,
BEAM_HEALING,
BEAM_PARALYSIS,
BEAM_CONFUSION,
BEAM_INVISIBILITY,
BEAM_DIGGING,
BEAM_TELEPORT,
BEAM_POLYMORPH,
BEAM_CHARM,
BEAM_BANISH,
BEAM_DEGENERATE,
BEAM_ENSLAVE_UNDEAD,
BEAM_ENSLAVE_SOUL,
BEAM_PAIN,
BEAM_DISPEL_UNDEAD,
BEAM_DISINTEGRATION,
BEAM_ENSLAVE_DEMON,
BEAM_BLINK,
BEAM_BLINK_CLOSE,
BEAM_PETRIFY,
BEAM_CORONA,
BEAM_PORKALATOR,
BEAM_HIBERNATION,
BEAM_BERSERK,
BEAM_SLEEP,
BEAM_LAST_ENCHANTMENT = BEAM_SLEEP,
// new beams for evaporate
BEAM_POTION_STINKING_CLOUD,
BEAM_POTION_POISON,
BEAM_POTION_MIASMA,
BEAM_POTION_STEAM,
BEAM_POTION_FIRE,
BEAM_POTION_COLD,
BEAM_POTION_BLACK_SMOKE,
BEAM_POTION_GREY_SMOKE,
BEAM_POTION_MUTAGENIC,
BEAM_POTION_BLUE_SMOKE,
BEAM_POTION_PURPLE_SMOKE,
BEAM_POTION_RAIN,
BEAM_GLOOM,
BEAM_POTION_RANDOM,
BEAM_LAST_REAL = BEAM_POTION_RANDOM,
// For getting the visual effect of a beam.
BEAM_VISUAL,
BEAM_TORMENT_DAMAGE, // Pseudo-beam for damage flavour.
BEAM_FIRST_PSEUDO = BEAM_TORMENT_DAMAGE,
BEAM_STEAL_FOOD, // Pseudo-beam for harpies stealing food.
NUM_BEAMS
};
enum book_type
{
BOOK_MINOR_MAGIC_I,
BOOK_MINOR_MAGIC_II,
BOOK_MINOR_MAGIC_III,
BOOK_CONJURATIONS_I,
BOOK_CONJURATIONS_II,
BOOK_FLAMES,
BOOK_FROST,
BOOK_SUMMONINGS,
BOOK_FIRE,
BOOK_ICE,
BOOK_SPATIAL_TRANSLOCATIONS,
BOOK_ENCHANTMENTS,
BOOK_YOUNG_POISONERS,
BOOK_TEMPESTS,
BOOK_DEATH,
BOOK_HINDERANCE,
BOOK_CHANGES,
BOOK_TRANSFIGURATIONS,
BOOK_WAR_CHANTS,
BOOK_CLOUDS,
BOOK_NECROMANCY,
BOOK_CALLINGS,
BOOK_CHARMS,
BOOK_AIR,
BOOK_SKY,
BOOK_WARP,
BOOK_ENVENOMATIONS,
BOOK_UNLIFE,
BOOK_CONTROL,
BOOK_MUTATIONS,
BOOK_TUKIMA,
BOOK_GEOMANCY,
BOOK_EARTH,
BOOK_WIZARDRY,
BOOK_POWER,
BOOK_CANTRIPS,
BOOK_PARTY_TRICKS,
BOOK_BEASTS,
BOOK_STALKING,
BOOK_BRANDS,
MAX_NORMAL_BOOK = BOOK_BRANDS,
MIN_GOD_ONLY_BOOK,
BOOK_ANNIHILATIONS = MIN_GOD_ONLY_BOOK,
BOOK_DEMONOLOGY,
BOOK_NECRONOMICON,
MAX_GOD_ONLY_BOOK = BOOK_NECRONOMICON,
MAX_FIXED_BOOK = MAX_GOD_ONLY_BOOK,
BOOK_RANDART_LEVEL,
BOOK_RANDART_THEME,
BOOK_MANUAL,
BOOK_DESTRUCTION,
NUM_BOOKS
};
#define NUM_NORMAL_BOOKS (MAX_NORMAL_BOOK + 1)
#define NUM_FIXED_BOOKS (MAX_FIXED_BOOK + 1)
enum branch_type // you.where_are_you
{
BRANCH_MAIN_DUNGEON, // 0
BRANCH_ECUMENICAL_TEMPLE,
BRANCH_ORCISH_MINES,
BRANCH_ELVEN_HALLS,
BRANCH_LAIR,
BRANCH_SWAMP,
BRANCH_SHOALS,
BRANCH_SLIME_PITS,
BRANCH_SNAKE_PIT,
BRANCH_HIVE,
BRANCH_VAULTS,
BRANCH_HALL_OF_BLADES,
BRANCH_CRYPT,
BRANCH_TOMB,
BRANCH_VESTIBULE_OF_HELL,
BRANCH_FIRST_HELL,
BRANCH_DIS = BRANCH_FIRST_HELL,
BRANCH_GEHENNA,
BRANCH_COCYTUS,
BRANCH_TARTARUS,
BRANCH_LAST_HELL = BRANCH_TARTARUS,
BRANCH_HALL_OF_ZOT,
NUM_BRANCHES
};
enum builder_rc_type
{
BUILD_QUIT = -1, // all done, don't continue
BUILD_SKIP = 1, // skip further generation
BUILD_CONTINUE = 0 // continue generation
};
enum burden_state_type // you.burden_state
{
BS_UNENCUMBERED, // 0
BS_ENCUMBERED = 2, // 2
BS_OVERLOADED = 5 // 5
};
enum canned_message_type
{
MSG_SOMETHING_APPEARS,
MSG_NOTHING_HAPPENS,
MSG_YOU_RESIST,
MSG_YOU_PARTIALLY_RESIST,
MSG_TOO_BERSERK,
MSG_PRESENT_FORM,
MSG_NOTHING_CARRIED,
MSG_CANNOT_DO_YET,
MSG_OK,
MSG_UNTHINKING_ACT,
MSG_SPELL_FIZZLES,
MSG_HUH,
MSG_EMPTY_HANDED
};
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
CSET_UNICODE, // Unicode
NUM_CSET
};
enum cleansing_flame_source_type
{
CLEANSING_FLAME_GENERIC = -1,
CLEANSING_FLAME_SPELL = -2, // SPELL_FLAME_OF_CLEANSING
CLEANSING_FLAME_INVOCATION = -3, // ABIL_TSO_CLEANSING_FLAME
CLEANSING_FLAME_TSO = -4 // TSO effect
};
enum cloud_type
{
CLOUD_NONE,
CLOUD_FIRE,
CLOUD_STINK,
CLOUD_COLD,
CLOUD_POISON,
CLOUD_BLACK_SMOKE,
CLOUD_GREY_SMOKE,
CLOUD_BLUE_SMOKE,
CLOUD_PURPLE_SMOKE,
CLOUD_TLOC_ENERGY,
CLOUD_FOREST_FIRE,
CLOUD_STEAM,
CLOUD_GLOOM,
CLOUD_OPAQUE_FIRST = CLOUD_BLACK_SMOKE,
CLOUD_OPAQUE_LAST = CLOUD_GLOOM,
CLOUD_MIASMA,
CLOUD_MIST,
CLOUD_CHAOS,
CLOUD_RAIN,
CLOUD_MUTAGENIC,
CLOUD_MAGIC_TRAIL,
CLOUD_RANDOM = 98,
CLOUD_DEBUGGING = 99 // 99: used once as 'nonexistent cloud' {dlb}
};
enum command_type
{
CMD_NO_CMD = 1000,
CMD_NO_CMD_DEFAULT, // hack to allow assignment of keys to CMD_NO_CMD
CMD_MOVE_NOWHERE,
CMD_MOVE_LEFT,
CMD_MOVE_DOWN,
CMD_MOVE_UP,
CMD_MOVE_RIGHT,
CMD_MOVE_UP_LEFT,
CMD_MOVE_DOWN_LEFT,
CMD_MOVE_UP_RIGHT,
CMD_MOVE_DOWN_RIGHT,
CMD_RUN_LEFT,
CMD_RUN_DOWN,
CMD_RUN_UP,
CMD_RUN_RIGHT,
CMD_RUN_UP_LEFT,
CMD_RUN_DOWN_LEFT,
CMD_RUN_UP_RIGHT,
CMD_RUN_DOWN_RIGHT,
CMD_OPEN_DOOR_LEFT,
CMD_OPEN_DOOR_DOWN,
CMD_OPEN_DOOR_UP,
CMD_OPEN_DOOR_RIGHT,
CMD_OPEN_DOOR_UP_LEFT,
CMD_OPEN_DOOR_DOWN_LEFT,
CMD_OPEN_DOOR_UP_RIGHT,
CMD_OPEN_DOOR_DOWN_RIGHT,
CMD_OPEN_DOOR,
CMD_CLOSE_DOOR,
CMD_REST,
CMD_GO_UPSTAIRS,
CMD_GO_DOWNSTAIRS,
CMD_TOGGLE_AUTOPICKUP,
CMD_TOGGLE_FRIENDLY_PICKUP,
CMD_PICKUP,
CMD_DROP,
CMD_BUTCHER,
CMD_INSPECT_FLOOR,
CMD_FULL_VIEW,
CMD_EXAMINE_OBJECT,
CMD_EVOKE,
CMD_EVOKE_WIELDED,
CMD_WIELD_WEAPON,
CMD_WEAPON_SWAP,
CMD_FIRE,
CMD_QUIVER_ITEM,
CMD_THROW_ITEM_NO_QUIVER,
CMD_WEAR_ARMOUR,
CMD_REMOVE_ARMOUR,
CMD_WEAR_JEWELLERY,
CMD_REMOVE_JEWELLERY,
CMD_CYCLE_QUIVER_FORWARD,
CMD_CYCLE_QUIVER_BACKWARD,
CMD_LIST_WEAPONS,
CMD_LIST_ARMOUR,
CMD_LIST_JEWELLERY,
CMD_LIST_EQUIPMENT,
CMD_LIST_GOLD,
CMD_ZAP_WAND,
CMD_CAST_SPELL,
CMD_FORCE_CAST_SPELL,
CMD_MEMORISE_SPELL,
CMD_USE_ABILITY,
CMD_PRAY,
CMD_EAT,
CMD_QUAFF,
CMD_READ,
CMD_LOOK_AROUND,
CMD_SEARCH,
CMD_SHOUT,
CMD_DISARM_TRAP,
CMD_CHARACTER_DUMP,
CMD_DISPLAY_COMMANDS,
CMD_DISPLAY_INVENTORY,
CMD_DISPLAY_KNOWN_OBJECTS,
CMD_DISPLAY_MUTATIONS,
CMD_DISPLAY_SKILLS,
CMD_DISPLAY_MAP,
CMD_DISPLAY_OVERMAP,
CMD_DISPLAY_RELIGION,
CMD_DISPLAY_CHARACTER_STATUS,
CMD_DISPLAY_SPELLS,
CMD_EXPERIENCE_CHECK,
CMD_ADJUST_INVENTORY,
CMD_REPLAY_MESSAGES,
CMD_REDRAW_SCREEN,
CMD_MACRO_ADD,
CMD_SAVE_GAME,
CMD_SAVE_GAME_NOW,
CMD_SUSPEND_GAME,
CMD_QUIT,
CMD_WIZARD,
CMD_DESTROY_ITEM,
CMD_FORGET_STASH,
CMD_SEARCH_STASHES,
CMD_EXPLORE,
CMD_INTERLEVEL_TRAVEL,
CMD_FIX_WAYPOINT,
CMD_CLEAR_MAP,
CMD_INSCRIBE_ITEM,
CMD_MAKE_NOTE,
CMD_RESISTS_SCREEN,
CMD_READ_MESSAGES,
CMD_MOUSE_MOVE,
CMD_MOUSE_CLICK,
CMD_ANNOTATE_LEVEL,
#ifdef USE_TILE
CMD_EDIT_PLAYER_TILE,
CMD_MIN_TILE = CMD_EDIT_PLAYER_TILE,
CMD_TOGGLE_SPELL_DISPLAY,
CMD_MAX_TILE = CMD_TOGGLE_SPELL_DISPLAY,
#endif
// Repeat previous command
CMD_PREV_CMD_AGAIN,
// Repeat next command a given number of times
CMD_REPEAT_CMD,
CMD_MAX_NORMAL = CMD_REPEAT_CMD,
// overmap commands
CMD_MAP_CLEAR_MAP,
CMD_MIN_OVERMAP = CMD_MAP_CLEAR_MAP,
CMD_MAP_ADD_WAYPOINT,
CMD_MAP_EXCLUDE_AREA,
CMD_MAP_CLEAR_EXCLUDES,
CMD_MAP_EXCLUDE_RADIUS,
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_NEXT_LEVEL,
CMD_MAP_PREV_LEVEL,
CMD_MAP_GOTO_LEVEL,
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_FIND_STASH_REVERSE,
CMD_MAP_GOTO_TARGET,
CMD_MAP_WIZARD_TELEPORT,
CMD_MAP_HELP,
CMD_MAP_FORGET,
CMD_MAP_EXIT_MAP,
CMD_MAX_OVERMAP = CMD_MAP_EXIT_MAP,
// targetting commands
CMD_TARGET_DOWN_LEFT,
CMD_MIN_TARGET = 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_DIR_DOWN_LEFT,
CMD_TARGET_DIR_DOWN,
CMD_TARGET_DIR_DOWN_RIGHT,
CMD_TARGET_DIR_LEFT,
CMD_TARGET_DIR_RIGHT,
CMD_TARGET_DIR_UP_LEFT,
CMD_TARGET_DIR_UP,
CMD_TARGET_DIR_UP_RIGHT,
CMD_TARGET_DESCRIBE,
CMD_TARGET_CYCLE_TARGET_MODE,
CMD_TARGET_PREV_TARGET,
CMD_TARGET_MAYBE_PREV_TARGET,
CMD_TARGET_SELECT,
CMD_TARGET_SELECT_ENDPOINT,
CMD_TARGET_SELECT_FORCE,
CMD_TARGET_SELECT_FORCE_ENDPOINT,
CMD_TARGET_OBJ_CYCLE_BACK,
CMD_TARGET_OBJ_CYCLE_FORWARD,
CMD_TARGET_CYCLE_FORWARD,
CMD_TARGET_CYCLE_BACK,
CMD_TARGET_CYCLE_BEAM,
CMD_TARGET_CYCLE_MLIST = 2000, // for indices a-z in the monster list
CMD_TARGET_CYCLE_MLIST_END = 2025,
CMD_TARGET_TOGGLE_MLIST,
CMD_TARGET_TOGGLE_BEAM,
CMD_TARGET_CENTER,
CMD_TARGET_CANCEL,
CMD_TARGET_SHOW_PROMPT,
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_WIZARD_MAKE_FRIENDLY,
CMD_TARGET_WIZARD_BLESS_MONSTER,
CMD_TARGET_WIZARD_MAKE_SHOUT,
CMD_TARGET_WIZARD_GIVE_ITEM,
CMD_TARGET_WIZARD_MOVE,
CMD_TARGET_WIZARD_PATHFIND,
CMD_TARGET_WIZARD_GAIN_LEVEL,
CMD_TARGET_WIZARD_MISCAST,
CMD_TARGET_WIZARD_MAKE_SUMMONED,
CMD_TARGET_WIZARD_POLYMORPH,
CMD_TARGET_WIZARD_DEBUG_MONSTER,
CMD_TARGET_WIZARD_HURT_MONSTER,
CMD_TARGET_MOUSE_MOVE,
CMD_TARGET_MOUSE_SELECT,
CMD_TARGET_HELP,
CMD_MAX_TARGET = CMD_TARGET_HELP,
#ifdef USE_TILE
// Tile doll editing screen
CMD_DOLL_RANDOMIZE,
CMD_MIN_DOLL = CMD_DOLL_RANDOMIZE,
CMD_DOLL_SELECT_NEXT_DOLL,
CMD_DOLL_SELECT_PREV_DOLL,
CMD_DOLL_SELECT_NEXT_PART,
CMD_DOLL_SELECT_PREV_PART,
CMD_DOLL_CHANGE_PART_NEXT,
CMD_DOLL_CHANGE_PART_PREV,
CMD_DOLL_CONFIRM_CHOICE,
CMD_DOLL_COPY,
CMD_DOLL_PASTE,
CMD_DOLL_TAKE_OFF,
CMD_DOLL_TAKE_OFF_ALL,
CMD_DOLL_TOGGLE_EQUIP,
CMD_DOLL_TOGGLE_EQUIP_ALL,
CMD_DOLL_CLASS_DEFAULT,
CMD_DOLL_CHANGE_MODE,
CMD_DOLL_QUIT,
CMD_MAX_DOLL = CMD_DOLL_QUIT,
#endif
// Disable/enable -more- prompts.
CMD_DISABLE_MORE,
CMD_MIN_SYNTHETIC = CMD_DISABLE_MORE,
CMD_ENABLE_MORE,
// [ds] Silently ignored, requests another round of input.
CMD_NEXT_CMD,
// Stick the keyspresses of the command to be repeated into the
// input buffer.
CMD_REPEAT_KEYS,
// Must always be last
CMD_MAX_CMD
};
enum conduct_type
{
DID_NOTHING,
DID_NECROMANCY = 1, // vamp/drain/pain/reap, Zong/Curses
DID_HOLY, // holy wrath, holy word scrolls
DID_UNHOLY, // demon weapons, demon spells
DID_ATTACK_HOLY,
DID_ATTACK_NEUTRAL,
DID_ATTACK_FRIEND,
DID_FRIEND_DIED,
DID_STABBING, // unused
DID_UNCHIVALRIC_ATTACK,
DID_POISON,
DID_DEDICATED_BUTCHERY, // unused
// killings need no longer be dedicated (JPEG)
DID_KILL_LIVING,
DID_KILL_UNDEAD,
DID_KILL_DEMON,
DID_KILL_NATURAL_UNHOLY, // TSO
DID_KILL_NATURAL_EVIL, // TSO
DID_KILL_UNCLEAN, // Zin
DID_KILL_CHAOTIC, // Zin
DID_KILL_WIZARD, // Trog
DID_KILL_PRIEST, // Beogh
DID_KILL_HOLY,
DID_KILL_FAST, // Cheibriados
DID_LIVING_KILLED_BY_UNDEAD_SLAVE,
DID_LIVING_KILLED_BY_SERVANT,
DID_UNDEAD_KILLED_BY_UNDEAD_SLAVE,
DID_UNDEAD_KILLED_BY_SERVANT,
DID_DEMON_KILLED_BY_UNDEAD_SLAVE,
DID_DEMON_KILLED_BY_SERVANT,
DID_NATURAL_UNHOLY_KILLED_BY_SERVANT, // TSO
DID_NATURAL_EVIL_KILLED_BY_SERVANT, // TSO
DID_HOLY_KILLED_BY_UNDEAD_SLAVE,
DID_HOLY_KILLED_BY_SERVANT,
DID_SPELL_MEMORISE,
DID_SPELL_CASTING,
DID_SPELL_PRACTISE,
DID_SPELL_NONUTILITY, // unused
DID_CARDS,
DID_STIMULANTS, // unused
DID_DRINK_BLOOD,
DID_CANNIBALISM,
DID_EAT_MEAT, // unused
DID_EAT_SOULED_BEING, // Zin
DID_DELIBERATE_MUTATING, // Zin
DID_CAUSE_GLOWING, // Zin
DID_UNCLEAN, // Zin (used unclean weapon/magic)
DID_CHAOS, // Zin (used chaotic weapon/magic)
DID_DESECRATE_ORCISH_REMAINS, // Beogh
DID_DESTROY_ORCISH_IDOL, // Beogh
DID_CREATE_LIFE, // unused
DID_KILL_SLIME, // Jiyva
DID_KILL_PLANT, // Fedhas
DID_ALLY_KILLED_PLANT, // Fedhas
DID_HASTY, // Cheibriados
NUM_CONDUCTS
};
enum confirm_prompt_type
{
CONFIRM_CANCEL, // automatically answer 'no', i.e. disallow
CONFIRM_PROMPT, // prompt
CONFIRM_NONE // automatically answer 'yes'
};
enum confirm_level_type
{
CONFIRM_NONE_EASY,
CONFIRM_SAFE_EASY,
CONFIRM_ALL_EASY
};
// When adding new delays, update their names in delay.cc, or bad things will
// happen.
enum delay_type
{
DELAY_NOT_DELAYED,
DELAY_EAT,
DELAY_FEED_VAMPIRE,
DELAY_ARMOUR_ON,
DELAY_ARMOUR_OFF,
DELAY_JEWELLERY_ON,
DELAY_MEMORISE,
DELAY_BUTCHER,
DELAY_BOTTLE_BLOOD,
DELAY_WEAPON_SWAP, // for easy_butcher
DELAY_PASSWALL,
DELAY_DROP_ITEM,
DELAY_MULTIDROP,
DELAY_ASCENDING_STAIRS,
DELAY_DESCENDING_STAIRS,
DELAY_RECITE, // Zin's Recite invocation
// [dshaligram] Shift-running, resting, travel and macros are now
// also handled as delays.
DELAY_RUN,
DELAY_REST,
DELAY_TRAVEL,
DELAY_MACRO,
// In a macro delay, a stacked delay to tell Crawl to read and act on
// one input command.
DELAY_MACRO_PROCESS_KEY,
DELAY_INTERRUPTIBLE, // simple interruptible delay
DELAY_UNINTERRUPTIBLE, // simple uninterruptible delay
NUM_DELAYS
};
enum description_level_type
{
DESC_CAP_THE, // 0
DESC_NOCAP_THE, // 1
DESC_CAP_A, // 2
DESC_NOCAP_A, // 3
DESC_CAP_YOUR, // 4
DESC_NOCAP_YOUR, // 5
DESC_PLAIN, // 6
DESC_NOCAP_ITS, // 7
DESC_INVENTORY_EQUIP, // 8
DESC_INVENTORY, // 9
// Partial item names.
DESC_BASENAME, // Base name of item subtype
DESC_QUALNAME, // Name without articles, quantities,
// enchantments.
DESC_DBNAME, // Name with which to look up item
// description in the db.
DESC_NONE
};
enum game_direction_type
{
GDT_GAME_START = 0,
GDT_DESCENDING,
GDT_ASCENDING
};
enum level_flag_type
{
LFLAG_NONE = 0,
LFLAG_NO_TELE_CONTROL = (1 << 0), // Teleport control not allowed.
LFLAG_NOT_MAPPABLE = (1 << 1), // Level not mappable (like Abyss).
LFLAG_NO_MAGIC_MAP = (1 << 2) // Level can't be magic mapped.
};
// 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
DCHAR_TREES,
DCHAR_SPACE,
DCHAR_FIRED_FLASK,
DCHAR_FIRED_BOLT,
DCHAR_FIRED_CHUNK,
DCHAR_FIRED_BOOK,
DCHAR_FIRED_WEAPON,
DCHAR_FIRED_ZAP,
DCHAR_FIRED_BURST,
DCHAR_FIRED_STICK,
DCHAR_FIRED_TRINKET,
DCHAR_FIRED_SCROLL,
DCHAR_FIRED_DEBUG,
DCHAR_FIRED_ARMOUR,
DCHAR_FIRED_MISSILE,
DCHAR_EXPLOSION,
NUM_DCHAR_TYPES
};
// When adding:
//
// * New stairs/portals: update grid_stair_direction.
// * Any: edit view.cc and add a glyph and colour for the feature.
// * Any: edit direct.cc and add a description for the feature.
// * Any: edit dat/descript.txt and add a long description if appropriate.
// * Any: check the grid_* functions in misc.cc and make sure
// they return sane values for your new feature.
// * Any: edit dungeon.cc and add a symbol to map_feature() and
// vault_grid() for the feature, if you want vault maps to
// be able to use it. If you do, also update
// docs/develop/levels/syntax.txt with the new symbol.
// * Any: edit l_dgngrd.cc and add the feature's name to the dngn_feature_names
// array, if you want vault map Lua code to be able to use the
// feature, and/or you want to be able to create the feature
// using the "create feature by name" wizard command.
// Also take note of MINMOVE and MINSEE above.
//
enum dungeon_feature_type
{
DNGN_UNSEEN, // 0
DNGN_CLOSED_DOOR,
DNGN_DETECTED_SECRET_DOOR,
DNGN_SECRET_DOOR,
DNGN_WAX_WALL,
DNGN_METAL_WALL, // 5
DNGN_GREEN_CRYSTAL_WALL,
DNGN_ROCK_WALL,
DNGN_STONE_WALL,
DNGN_PERMAROCK_WALL, // 9 - for undiggable walls
DNGN_CLEAR_ROCK_WALL, // 10 - transparent walls
DNGN_CLEAR_STONE_WALL,
DNGN_CLEAR_PERMAROCK_WALL,
// Lowest/highest grid value which is a wall.
DNGN_MINWALL = DNGN_WAX_WALL,
DNGN_MAXWALL = DNGN_CLEAR_PERMAROCK_WALL,
// Random wall types for big rooms.
DNGN_RNDWALL_MIN = DNGN_METAL_WALL,
DNGN_RNDWALL_MAX = DNGN_STONE_WALL,
// Highest grid value which is opaque.
DNGN_MAXOPAQUE = DNGN_PERMAROCK_WALL,
// Lowest grid value which can be seen through.
DNGN_MINSEE = DNGN_CLEAR_ROCK_WALL,
// Highest grid value which can't be reached through.
DNGN_MAX_NONREACH = DNGN_CLEAR_PERMAROCK_WALL,
DNGN_OPEN_SEA, // Shoals equivalent for permarock
// Can be seen through and reached past.
DNGN_TREES,
DNGN_ORCISH_IDOL = 15,
DNGN_GRANITE_STATUE = 21, // 21
DNGN_STATUE_RESERVED,
// Highest solid grid value.
DNGN_MAXSOLID = DNGN_STATUE_RESERVED,
// Lowest grid value which can be passed by walking etc.
DNGN_MINMOVE = 31,
DNGN_LAVA = 61, // 61
DNGN_DEEP_WATER, // 62
DNGN_SHALLOW_WATER = 65, // 65
DNGN_WATER_RESERVED,
// Lowest grid value that an item can be placed on.
DNGN_MINITEM = DNGN_SHALLOW_WATER,
DNGN_FLOOR_MIN = 67,
DNGN_FLOOR = DNGN_FLOOR_MIN,
DNGN_FLOOR_SPECIAL, // currently only used for colouring bazaars
DNGN_FLOOR_RESERVED,
DNGN_FLOOR_MAX = DNGN_FLOOR_RESERVED,
DNGN_EXIT_HELL, // 70
DNGN_ENTER_HELL, // 71
DNGN_OPEN_DOOR, // 72
DNGN_TRAP_MECHANICAL = 75, // 75
DNGN_TRAP_MAGICAL,
DNGN_TRAP_NATURAL,
DNGN_UNDISCOVERED_TRAP, // 78
DNGN_ENTER_SHOP = 80, // 80
DNGN_ENTER_LABYRINTH,
DNGN_STONE_STAIRS_DOWN_I,
DNGN_STONE_STAIRS_DOWN_II,
DNGN_STONE_STAIRS_DOWN_III,
DNGN_ESCAPE_HATCH_DOWN, // 85 - was: rock stairs (Stonesoup 0.3)
// corresponding up stairs (same order as above)
DNGN_STONE_STAIRS_UP_I,
DNGN_STONE_STAIRS_UP_II,
DNGN_STONE_STAIRS_UP_III,
DNGN_ESCAPE_HATCH_UP, // 89 - was: rock stairs (Stonesoup 0.3)
// Various gates
DNGN_ENTER_DIS = 92, // 92
DNGN_ENTER_GEHENNA,
DNGN_ENTER_COCYTUS,
DNGN_ENTER_TARTARUS, // 95
DNGN_ENTER_ABYSS,
DNGN_EXIT_ABYSS,
DNGN_STONE_ARCH,
DNGN_ENTER_PANDEMONIUM,
DNGN_EXIT_PANDEMONIUM, // 100
DNGN_TRANSIT_PANDEMONIUM, // 101
// [enne] should the special_wall be placed between minwall/maxwall?
DNGN_BUILDER_SPECIAL_WALL = 105, // 105; builder() only
DNGN_BUILDER_SPECIAL_FLOOR, // 106; builder() only
// Entrances to various branches
DNGN_ENTER_FIRST_BRANCH = 110, // 110
DNGN_ENTER_ORCISH_MINES = DNGN_ENTER_FIRST_BRANCH,
DNGN_ENTER_HIVE,
DNGN_ENTER_LAIR,
DNGN_ENTER_SLIME_PITS,
DNGN_ENTER_VAULTS,
DNGN_ENTER_CRYPT, // 115
DNGN_ENTER_HALL_OF_BLADES,
DNGN_ENTER_ZOT,
DNGN_ENTER_TEMPLE,
DNGN_ENTER_SNAKE_PIT,
DNGN_ENTER_ELVEN_HALLS, // 120
DNGN_ENTER_TOMB,
DNGN_ENTER_SWAMP, // 122
DNGN_ENTER_SHOALS,
DNGN_ENTER_LAST_BRANCH = DNGN_ENTER_SHOALS,
// Exits from various branches
// Order must be the same as above
DNGN_RETURN_FROM_FIRST_BRANCH = 130, // 130
DNGN_RETURN_FROM_ORCISH_MINES = DNGN_RETURN_FROM_FIRST_BRANCH,
DNGN_RETURN_FROM_HIVE,
DNGN_RETURN_FROM_LAIR,
DNGN_RETURN_FROM_SLIME_PITS,
DNGN_RETURN_FROM_VAULTS,
DNGN_RETURN_FROM_CRYPT, // 135
DNGN_RETURN_FROM_HALL_OF_BLADES,
DNGN_RETURN_FROM_ZOT,
DNGN_RETURN_FROM_TEMPLE,
DNGN_RETURN_FROM_SNAKE_PIT,
DNGN_RETURN_FROM_ELVEN_HALLS, // 140
DNGN_RETURN_FROM_TOMB,
DNGN_RETURN_FROM_SWAMP, // 142
DNGN_RETURN_FROM_SHOALS,
DNGN_RETURN_FROM_LAST_BRANCH = DNGN_RETURN_FROM_SHOALS,
// Portals to various places unknown.
DNGN_ENTER_PORTAL_VAULT = 160,
DNGN_EXIT_PORTAL_VAULT,
// Order of altars must match order of gods (god_type)
DNGN_ALTAR_FIRST_GOD = 180, // 180
DNGN_ALTAR_ZIN = DNGN_ALTAR_FIRST_GOD,
DNGN_ALTAR_SHINING_ONE,
DNGN_ALTAR_KIKUBAAQUDGHA,
DNGN_ALTAR_YREDELEMNUL,
DNGN_ALTAR_XOM,
DNGN_ALTAR_VEHUMET, // 185
DNGN_ALTAR_OKAWARU,
DNGN_ALTAR_MAKHLEB,
DNGN_ALTAR_SIF_MUNA,
DNGN_ALTAR_TROG,
DNGN_ALTAR_NEMELEX_XOBEH, // 190
DNGN_ALTAR_ELYVILON, // 191
DNGN_ALTAR_LUGONU,
DNGN_ALTAR_BEOGH,
DNGN_ALTAR_JIYVA,
DNGN_ALTAR_FEDHAS,
DNGN_ALTAR_CHEIBRIADOS,
DNGN_ALTAR_LAST_GOD = DNGN_ALTAR_CHEIBRIADOS,
DNGN_FOUNTAIN_BLUE = 200, // 200
DNGN_FOUNTAIN_SPARKLING, // aka 'Magic Fountain' {dlb}
DNGN_FOUNTAIN_BLOOD,
// same order as above!
DNGN_DRY_FOUNTAIN_BLUE,
DNGN_DRY_FOUNTAIN_SPARKLING,
DNGN_DRY_FOUNTAIN_BLOOD, // 205
DNGN_PERMADRY_FOUNTAIN,
DNGN_ABANDONED_SHOP,
NUM_FEATURES // 208
};
enum duration_type
{
DUR_INVIS,
DUR_CONF,
DUR_PARALYSIS,
DUR_SLOW,
DUR_MESMERISED,
DUR_HASTE,
DUR_MIGHT,
DUR_BRILLIANCE,
DUR_AGILITY,
DUR_LEVITATION,
DUR_BERSERKER,
DUR_POISONING,
DUR_CONFUSING_TOUCH,
DUR_SURE_BLADE,
DUR_CORONA,
DUR_DEATHS_DOOR,
DUR_FIRE_SHIELD,
DUR_BUILDING_RAGE, // countdown to starting berserk
DUR_EXHAUSTED, // fatigue counter for berserk
DUR_LIQUID_FLAMES,
DUR_ICY_ARMOUR,
DUR_REPEL_MISSILES,
DUR_PRAYER,
DUR_PIETY_POOL, // distribute piety over time
DUR_DIVINE_VIGOUR, // duration of Ely's Divine Vigour
DUR_DIVINE_STAMINA, // duration of Zin's Divine Stamina
DUR_DIVINE_SHIELD, // duration of TSO's Divine Shield
DUR_REGENERATION,
DUR_SWIFTNESS,
DUR_STONEMAIL,
DUR_CONTROLLED_FLIGHT,
DUR_TELEPORT,
DUR_CONTROL_TELEPORT,
DUR_BREATH_WEAPON,
DUR_TRANSFORMATION,
DUR_DEATH_CHANNEL,
DUR_DEFLECT_MISSILES,
DUR_PHASE_SHIFT,
DUR_SEE_INVISIBLE,
DUR_WEAPON_BRAND, // general "branding" spell counter
DUR_SILENCE,
DUR_CONDENSATION_SHIELD,
DUR_STONESKIN,
DUR_GOURMAND,
DUR_BARGAIN,
DUR_INSULATION,
DUR_RESIST_POISON,
DUR_RESIST_FIRE,
DUR_RESIST_COLD,
DUR_SLAYING,
DUR_STEALTH,
DUR_MAGIC_SHIELD,
DUR_SLEEP,
DUR_SAGE,
DUR_TELEPATHY,
DUR_PETRIFIED,
DUR_LOWERED_MR,
DUR_REPEL_STAIRS_MOVE,
DUR_REPEL_STAIRS_CLIMB,
DUR_SLIMIFY,
DUR_TIME_STEP,
DUR_ICEMAIL_DEPLETED, // Wait this many turns for full Icemail
DUR_MISLED,
NUM_DURATIONS
};
// This list must match the enchant_names array in mon-util.cc or Crawl
// will CRASH, we kid you not.
// Enchantments that imply other enchantments should come first
// to avoid timeout message confusion. Currently:
// berserk -> haste, might; fatigue -> slow
enum enchant_type
{
ENCH_NONE = 0, // 0
ENCH_BERSERK,
ENCH_HASTE,
ENCH_MIGHT,
ENCH_FATIGUE, // Post-berserk fatigue.
ENCH_SLOW, // 5
ENCH_FEAR,
ENCH_CONFUSION,
ENCH_INVIS,
ENCH_POISON,
ENCH_ROT, // 10
ENCH_SUMMON,
ENCH_ABJ,
ENCH_CORONA,
ENCH_CHARM,
ENCH_STICKY_FLAME, // 15
ENCH_GLOWING_SHAPESHIFTER,
ENCH_SHAPESHIFTER,
ENCH_TP,
ENCH_SLEEP_WARY,
ENCH_SUBMERGED, // 20
ENCH_SHORT_LIVED,
ENCH_PARALYSIS,
ENCH_SICK,
ENCH_SLEEPY, // Monster can't wake until this wears off.
ENCH_HELD, // 25 -- Caught in a net.
ENCH_BATTLE_FRENZY, // Monster is in a battle frenzy
ENCH_TEMP_PACIF,
ENCH_PETRIFYING,
ENCH_PETRIFIED,
ENCH_LOWERED_MR, // 30
ENCH_SOUL_RIPE,
ENCH_SLOWLY_DYING,
ENCH_EAT_ITEMS,
ENCH_AQUATIC_LAND, // Water monsters lose hp while on land.
ENCH_SPORE_PRODUCTION, // 35
ENCH_SLOUCH,
ENCH_SWIFT,
ENCH_TIDE,
ENCH_INSANE,
// Update enchantment names in mon-util.cc when adding or removing
// enchantments.
NUM_ENCHANTMENTS // 36
};
enum enchant_retval
{
ERV_FAIL,
ERV_NEW,
ERV_INCREASED
};
enum energy_use_type
{
EUT_MOVE,
EUT_SWIM,
EUT_ATTACK,
EUT_MISSILE,
EUT_SPELL,
EUT_SPECIAL,
EUT_ITEM,
EUT_PICKUP
};
enum equipment_type
{
EQ_NONE = -1,
EQ_WEAPON, // 0
EQ_CLOAK,
EQ_HELMET,
EQ_GLOVES,
EQ_BOOTS,
EQ_SHIELD, // 5
EQ_BODY_ARMOUR,
EQ_LEFT_RING,
EQ_RIGHT_RING,
EQ_AMULET,
NUM_EQUIP,
// these aren't actual equipment slots, they're categories for functions
EQ_STAFF = 100, // weapon with base_type OBJ_STAVES
EQ_RINGS, // check both rings
EQ_RINGS_PLUS, // check both rings and sum plus
EQ_RINGS_PLUS2, // check both rings and sum plus2
EQ_ALL_ARMOUR // check all armour types
};
enum feature_flag_type
{
FFT_NONE = 0,
FFT_NOTABLE = 0x1, // should be noted for dungeon overview
FFT_EXAMINE_HINT = 0x2 // could get an "examine-this" hint.
};
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_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
FLUSH_KEY_REPLAY_CANCEL, // flush when key replay is cancelled
FLUSH_ABORT_MACRO, // something wrong with macro being
// processed, so stop it
FLUSH_REPLAY_SETUP_FAILURE, // setup for key replay failed
NUM_FLUSH_REASONS
};
// The order of this enum must match the order of DNGN_ALTAR_FOO.
enum god_type
{
GOD_NO_GOD, // 0 -- must be zero
GOD_ZIN,
GOD_SHINING_ONE,
GOD_KIKUBAAQUDGHA,
GOD_YREDELEMNUL,
GOD_XOM, // 5
GOD_VEHUMET,
GOD_OKAWARU,
GOD_MAKHLEB,
GOD_SIF_MUNA,
GOD_TROG, // 10
GOD_NEMELEX_XOBEH,
GOD_ELYVILON,
GOD_LUGONU,
GOD_BEOGH,
GOD_JIYVA, // 15
GOD_FEDHAS,
GOD_CHEIBRIADOS,
NUM_GODS, // always after last god
GOD_RANDOM = 100,
GOD_NAMELESS = 101 // for monsters with non-player gods
};
enum holy_word_source_type
{
HOLY_WORD_GENERIC = -1,
HOLY_WORD_SCROLL = -2,
HOLY_WORD_SPELL = -3, // SPELL_HOLY_WORD
HOLY_WORD_ZIN = -4, // Zin effect
HOLY_WORD_TSO = -5 // TSO effect
};
enum hunger_state // you.hunger_state
{
HS_STARVING, // 0
HS_NEAR_STARVING,
HS_VERY_HUNGRY,
HS_HUNGRY,
HS_SATIATED, // "not hungry" state
HS_FULL,
HS_VERY_FULL,
HS_ENGORGED // 8
};
enum immolation_source_type
{
IMMOLATION_GENERIC = -1,
IMMOLATION_SCROLL = -2,
IMMOLATION_SPELL = -3, // effect when fixing fire brand
IMMOLATION_TOME = -4 // exploding Tome of Destruction
};
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
ISFLAG_KNOW_PLUSES = 0x00000004, // to hit/to dam/to AC/charges
ISFLAG_KNOW_PROPERTIES = 0x00000008, // know special artefact properties
ISFLAG_IDENT_MASK = 0x0000000F, // mask of all id related flags
// these three masks are of the minimal flags set upon using equipment:
ISFLAG_EQ_WEAPON_MASK = 0x0000000B, // mask of flags for weapon equip
ISFLAG_EQ_ARMOUR_MASK = 0x0000000F, // mask of flags for armour equip
ISFLAG_EQ_JEWELLERY_MASK = 0x0000000F, // mask of flags for known jewellery
ISFLAG_CURSED = 0x00000100, // cursed
ISFLAG_BLESSED_WEAPON = 0x00000200, // personalized TSO's gift
ISFLAG_RESERVED_2 = 0x00000400, // reserved
ISFLAG_RESERVED_3 = 0x00000800, // reserved
ISFLAG_RANDART = 0x00001000, // special value is seed
ISFLAG_UNRANDART = 0x00002000, // is an unrandart
ISFLAG_ARTEFACT_MASK = 0x00003000, // randart or unrandart
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
ISFLAG_EMBROIDERED_SHINY = 0x00040000, // armour: depends on sub-type
ISFLAG_COSMETIC_MASK = 0x00070000, // mask of cosmetic descriptions
ISFLAG_NO_RACE = 0x00000000, // used for clearing these flags
ISFLAG_ORCISH = 0x01000000, // low quality items
ISFLAG_DWARVEN = 0x02000000, // strong and robust items
ISFLAG_ELVEN = 0x04000000, // light and accurate items
ISFLAG_RACIAL_MASK = 0x07000000, // mask of racial equipment types
ISFLAG_NOTED_ID = 0x08000000,
ISFLAG_NOTED_GET = 0x10000000,
ISFLAG_BEEN_IN_INV = 0x20000000, // Item has been in inventory
ISFLAG_SUMMONED = 0x40000000, // Item generated on a summon
ISFLAG_DROPPED_BY_ALLY = 0x80000000 // Item was dropped by an ally
};
enum item_type_id_state_type
{
ID_UNKNOWN_TYPE = 0,
ID_MON_TRIED_TYPE,
ID_TRIED_TYPE,
ID_TRIED_ITEM_TYPE,
ID_KNOWN_TYPE
};
enum job_type
{
JOB_FIGHTER, // 0
JOB_WIZARD,
JOB_PRIEST,
JOB_THIEF,
JOB_GLADIATOR,
JOB_NECROMANCER, // 5
JOB_PALADIN,
JOB_ASSASSIN,
JOB_BERSERKER,
JOB_HUNTER,
JOB_CONJURER, // 10
JOB_ENCHANTER,
JOB_FIRE_ELEMENTALIST,
JOB_ICE_ELEMENTALIST,
JOB_SUMMONER,
JOB_AIR_ELEMENTALIST, // 15
JOB_EARTH_ELEMENTALIST,
JOB_CRUSADER,
JOB_DEATH_KNIGHT,
JOB_VENOM_MAGE,
JOB_CHAOS_KNIGHT, // 20
JOB_TRANSMUTER,
JOB_HEALER,
JOB_REAVER,
JOB_STALKER,
JOB_MONK, // 25
JOB_WARPER,
JOB_WANDERER, // 27
JOB_ARTIFICER, // 28 -Greenberg/Bane
JOB_ARCANE_MARKSMAN,
NUM_JOBS, // always after the last job
JOB_UNKNOWN = 100
};
enum KeymapContext
{
KMC_DEFAULT, // For no-arg getchm(), must be zero.
KMC_LEVELMAP, // When in the 'X' level map
KMC_TARGETTING, // Only during 'x' and other targetting modes
KMC_CONFIRM, // When being asked y/n/q questions
KMC_MENU, // For menus
#ifdef USE_TILE
KMC_DOLL, // For the tiles doll menu editing screen
#endif
KMC_CONTEXT_COUNT, // Must always be the last real context
KMC_NONE
};
// This order is *critical*. Don't mess with it (see mon_enchant)
enum kill_category
{
KC_YOU,
KC_FRIENDLY,
KC_OTHER,
KC_NCATEGORIES
};
enum killer_type // monster_die(), thing_thrown
{
KILL_NONE = 0,
KILL_YOU, // 1
KILL_MON,
KILL_YOU_MISSILE,
KILL_MON_MISSILE,
KILL_YOU_CONF,
KILL_MISCAST, // 5
KILL_MISC, // miscellany
KILL_RESET, // abjuration, etc.
KILL_DISMISSED // only on new game startup
};
enum flight_type
{
FL_NONE = 0,
FL_LEVITATE, // doesn't require physical effort
FL_FLY // wings, etc... paralysis == fall
};
enum level_area_type // you.level_type
{
LEVEL_DUNGEON, // 0
LEVEL_LABYRINTH,
LEVEL_ABYSS,
LEVEL_PANDEMONIUM,
LEVEL_PORTAL_VAULT,
NUM_LEVEL_AREA_TYPES
};
// Reasons for entering the Abyss.
enum entry_cause_type
{
EC_UNKNOWN,
EC_SELF_EXPLICIT,
EC_SELF_RISKY, // i.e., wielding an id'd distorion weapon
EC_SELF_ACCIDENT, // i.e., wielding an un-id'd distortion weapon
EC_MISCAST,
EC_GOD_RETRIBUTION,
EC_GOD_ACT, // Xom sending the player somewhere for amusement.
EC_MONSTER,
EC_TRAP, // Zot traps
EC_ENVIRONMENT, // Hell effects.
NUM_ENTRY_CAUSE_TYPES
};
// Can't change this order without breaking saves.
enum map_marker_type
{
MAT_FEATURE, // Stock marker.
MAT_LUA_MARKER,
MAT_CORRUPTION_NEXUS,
MAT_WIZ_PROPS,
NUM_MAP_MARKER_TYPES,
MAT_ANY
};
enum map_feature
{
MF_UNSEEN, // 0
MF_FLOOR,
MF_WALL,
MF_MAP_FLOOR,
MF_MAP_WALL,
MF_DOOR, // 5
MF_ITEM,
MF_MONS_FRIENDLY,
MF_MONS_PEACEFUL,
MF_MONS_NEUTRAL,
MF_MONS_HOSTILE, // 10
MF_MONS_NO_EXP,
MF_STAIR_UP,
MF_STAIR_DOWN,
MF_STAIR_BRANCH,
MF_FEATURE, // 15
MF_WATER,
MF_LAVA,
MF_TRAP,
MF_EXCL_ROOT,
MF_EXCL, // 20
MF_PLAYER,
MF_MAX,
MF_SKIP // 23
};
enum menu_type
{
MT_ANY = -1,
MT_INVLIST, // List inventory
MT_DROP,
MT_PICKUP,
MT_KNOW
};
enum mon_holy_type
{
MH_HOLY, // 0
MH_NATURAL, // 1
MH_UNDEAD, // 2
MH_DEMONIC, // 3
MH_NONLIVING, // 4, golems and other constructs
MH_PLANT // 5, plants
};
enum targ_mode_type
{
TARG_ANY,
TARG_ENEMY, // hostile + neutral
TARG_FRIEND,
TARG_HOSTILE,
TARG_NUM_MODES
};
// NOTE: Changing this order will break saves!
enum monster_type // (int) menv[].type
{
MONS_GIANT_ANT, // 0
MONS_GIANT_BAT,
MONS_CENTAUR,
MONS_RED_DEVIL,
MONS_ETTIN,
MONS_FUNGUS, // 5
MONS_GOBLIN,
MONS_HOUND,
MONS_IMP,
MONS_JACKAL,
MONS_KILLER_BEE, // 10
MONS_KILLER_BEE_LARVA,
MONS_MANTICORE,
MONS_NECROPHAGE,
MONS_ORC,
MONS_PHANTOM, // 15
MONS_QUASIT,
MONS_RAT,
MONS_SCORPION,
MONS_DWARF, // only for corpses
MONS_UGLY_THING, // 20
MONS_FIRE_VORTEX,
MONS_WORM,
MONS_ABOMINATION_SMALL,
MONS_YELLOW_WASP,
MONS_ZOMBIE_SMALL, // 25
MONS_ANGEL,
MONS_GIANT_BEETLE,
MONS_CYCLOPS,
MONS_DRAGON,
MONS_TWO_HEADED_OGRE, // 30
MONS_FIEND,
MONS_GIANT_SPORE,
MONS_HOBGOBLIN,
MONS_ICE_BEAST,
MONS_JELLY, // 35
MONS_KOBOLD,
MONS_LICH,
MONS_MUMMY,
MONS_GUARDIAN_SERPENT,
MONS_OGRE, // 40
MONS_PLANT,
MONS_QUEEN_BEE,
MONS_RAKSHASA,
MONS_SNAKE,
MONS_TROLL, // 45
MONS_UNSEEN_HORROR,
MONS_VAMPIRE,
MONS_WRAITH,
MONS_ABOMINATION_LARGE,
MONS_YAK, // 50
MONS_ZOMBIE_LARGE,
MONS_ORC_WARRIOR,
MONS_KOBOLD_DEMONOLOGIST,
MONS_ORC_WIZARD,
MONS_ORC_KNIGHT, // 55
MONS_ORB_OF_DESTRUCTION, // a projectile, not a real mon
MONS_WYVERN,
MONS_BIG_KOBOLD,
MONS_GIANT_EYEBALL,
MONS_WIGHT, // 60
MONS_OKLOB_PLANT,
MONS_WOLF_SPIDER,
MONS_SHADOW,
MONS_HUNGRY_GHOST,
MONS_EYE_OF_DRAINING, // 65
MONS_BUTTERFLY,
MONS_WANDERING_MUSHROOM,
MONS_EFREET,
MONS_BRAIN_WORM,
MONS_GIANT_ORANGE_BRAIN, // 70
MONS_BOULDER_BEETLE,
MONS_FLYING_SKULL,
MONS_HELL_HOUND,
MONS_MINOTAUR,
MONS_ICE_DRAGON, // 75
MONS_SLIME_CREATURE,
MONS_FREEZING_WRAITH,
MONS_RAKSHASA_FAKE,
MONS_GREAT_ORB_OF_EYES,
MONS_HELLION, // 80
MONS_ROTTING_DEVIL,
MONS_TORMENTOR,
MONS_REAPER,
MONS_SOUL_EATER,
MONS_HAIRY_DEVIL, // 85
MONS_ICE_DEVIL,
MONS_BLUE_DEVIL,
MONS_BEAST,
MONS_IRON_DEVIL,
MONS_SIXFIRHY, // 90
MONS_MERGED_SLIME_CREATURE, // used only for recoloring
//
//
//
// 95
//
//
MONS_GLOWING_SHAPESHIFTER = 98, // 98
MONS_SHAPESHIFTER,
MONS_GIANT_MITE, // 100
MONS_STEAM_DRAGON,
MONS_VERY_UGLY_THING,
MONS_ORC_SORCERER,
MONS_HIPPOGRIFF,
MONS_GRIFFON, // 105
MONS_HYDRA,
MONS_SKELETON_SMALL,
MONS_SKELETON_LARGE,
MONS_HELL_KNIGHT,
MONS_NECROMANCER, // 110
MONS_WIZARD,
MONS_ORC_PRIEST,
MONS_ORC_HIGH_PRIEST,
MONS_HUMAN,
MONS_GNOLL, // 115
MONS_CLAY_GOLEM,
MONS_WOOD_GOLEM,
MONS_STONE_GOLEM,
MONS_IRON_GOLEM,
MONS_CRYSTAL_GOLEM, // 120
MONS_TOENAIL_GOLEM,
MONS_MOTTLED_DRAGON,
MONS_EARTH_ELEMENTAL,
MONS_FIRE_ELEMENTAL,
MONS_AIR_ELEMENTAL, // 125
MONS_ICE_FIEND,
MONS_SHADOW_FIEND,
MONS_WATER_MOCCASIN,
MONS_GIANT_LIZARD,
MONS_SPECTRAL_WARRIOR, // 130
MONS_PULSATING_LUMP,
MONS_STORM_DRAGON,
MONS_YAKTAUR,
MONS_DEATH_YAK,
MONS_ROCK_TROLL, // 135
MONS_STONE_GIANT,
MONS_FLAYED_GHOST,
MONS_BUMBLEBEE,
MONS_REDBACK,
MONS_INSUBSTANTIAL_WISP, // 140
MONS_VAPOUR,
MONS_OGRE_MAGE,
MONS_SPINY_WORM,
MONS_DANCING_WEAPON,
MONS_TITAN, // 145
MONS_GOLDEN_DRAGON,
MONS_ELF,
MONS_LINDWURM,
MONS_ELEPHANT_SLUG,
MONS_WAR_DOG, // 150
MONS_GREY_RAT,
MONS_GREEN_RAT,
MONS_ORANGE_RAT,
MONS_BLACK_MAMBA,
MONS_SHEEP, // 155
MONS_GHOUL,
MONS_HOG,
MONS_GIANT_MOSQUITO,
MONS_GIANT_CENTIPEDE,
MONS_IRON_TROLL, // 160
MONS_NAGA,
MONS_FIRE_GIANT,
MONS_FROST_GIANT,
MONS_FIRE_DRAKE,
MONS_SHADOW_DRAGON, // 165
MONS_VIPER,
MONS_ANACONDA,
MONS_DEEP_TROLL,
MONS_GIANT_BLOWFLY,
MONS_RED_WASP, // 170
MONS_SWAMP_DRAGON,
MONS_SWAMP_DRAKE,
MONS_DEATH_DRAKE,
MONS_SOLDIER_ANT,
MONS_HILL_GIANT, // 175
MONS_QUEEN_ANT,
MONS_ANT_LARVA,
MONS_GIANT_FROG,
MONS_GIANT_TOAD,
MONS_SPINY_FROG, // 180
MONS_BLINK_FROG,
MONS_GIANT_COCKROACH,
MONS_SMALL_SNAKE,
//jmf: new monsters
MONS_SHUGGOTH, // XXX: not used
MONS_WOLF, //jmf: added
MONS_WARG, //jmf: added for orc mines
MONS_BEAR, //jmf: added bears!
MONS_GRIZZLY_BEAR,
MONS_POLAR_BEAR,
MONS_BLACK_BEAR, // 190
MONS_SIMULACRUM_SMALL,
MONS_SIMULACRUM_LARGE,
MONS_MERFOLK,
MONS_MERMAID,
MONS_SIREN, // 195
MONS_FLAMING_CORPSE,
MONS_HARPY,
MONS_TOADSTOOL,
MONS_BUSH,
MONS_BALLISTOMYCETE, // 200
// Shoals guardians
MONS_MERFOLK_IMPALER,
MONS_MERFOLK_AQUAMANCER,
MONS_MERFOLK_JAVELINEER,
MONS_SNAPPING_TURTLE,
MONS_ALLIGATOR_SNAPPING_TURTLE,
MONS_SEA_SNAKE,
//jmf: end new monsters
MONS_WHITE_IMP = 220, // 220
MONS_LEMURE,
MONS_UFETUBUS,
MONS_MANES,
MONS_MIDGE,
MONS_NEQOXEC, // 225
MONS_ORANGE_DEMON,
MONS_HELLWING,
MONS_SMOKE_DEMON,
MONS_YNOXINUL,
MONS_EXECUTIONER, // 230
MONS_GREEN_DEATH,
MONS_BLUE_DEATH,
MONS_BALRUG,
MONS_CACODEMON,
MONS_DEMONIC_CRAWLER, // 235
MONS_SUN_DEMON,
MONS_SHADOW_IMP,
MONS_SHADOW_DEMON,
MONS_LOROCYPROCA,
MONS_SHADOW_WRAITH, // 240
MONS_GIANT_AMOEBA,
MONS_GIANT_SLUG,
MONS_GIANT_SNAIL,
MONS_SPATIAL_VORTEX,
MONS_PIT_FIEND, // 245
MONS_BORING_BEETLE,
MONS_GARGOYLE,
MONS_METAL_GARGOYLE,
MONS_MOLTEN_GARGOYLE,
MONS_PROGRAM_BUG, // 250
// BCR - begin first batch of uniques.
MONS_MNOLEG,
MONS_LOM_LOBON,
MONS_CEREBOV,
MONS_GLOORX_VLOQ, // 254
MONS_MOLLUSC_LORD, // XXX: not used
// 256
// 257
// 258
// 259
// BCR - End first batch of uniques.
MONS_NAGA_MAGE = 260, // 260
MONS_NAGA_WARRIOR,
MONS_ORC_WARLORD,
MONS_DEEP_ELF_SOLDIER,
MONS_DEEP_ELF_FIGHTER,
MONS_DEEP_ELF_KNIGHT, // 265
MONS_DEEP_ELF_MAGE,
MONS_DEEP_ELF_SUMMONER,
MONS_DEEP_ELF_CONJURER,
MONS_DEEP_ELF_PRIEST,
MONS_DEEP_ELF_HIGH_PRIEST, // 270
MONS_DEEP_ELF_DEMONOLOGIST,
MONS_DEEP_ELF_ANNIHILATOR,
MONS_DEEP_ELF_SORCERER,
MONS_DEEP_ELF_DEATH_MAGE,
MONS_BROWN_OOZE, // 275
MONS_AZURE_JELLY,
MONS_DEATH_OOZE,
MONS_ACID_BLOB,
MONS_ROYAL_JELLY,
// BCR - begin second batch of uniques.
MONS_TERENCE, // 280
MONS_JESSICA,
MONS_IJYB,
MONS_SIGMUND,
MONS_BLORK_THE_ORC,
MONS_EDMUND, // 285
MONS_PSYCHE,
MONS_EROLCHA,
MONS_DONALD,
MONS_URUG,
MONS_UNUSED_UNIQUE, // 290
MONS_JOSEPH,
MONS_SNORG, // was Anita - Snorg is correct 16jan2000 {dlb}
MONS_ERICA,
MONS_JOSEPHINE,
MONS_HAROLD, // 295
MONS_NORBERT,
MONS_JOZEF,
MONS_AGNES,
MONS_MAUD,
MONS_LOUISE, // 300
MONS_FRANCIS,
MONS_FRANCES,
MONS_RUPERT,
MONS_WAYNE,
MONS_DUANE, // 305
MONS_XTAHUA,
MONS_NORRIS,
MONS_FREDERICK,
MONS_MARGERY,
MONS_BORIS, // 310
MONS_POLYPHEMUS,
// BCR - end second batch of uniques.
MONS_DRACONIAN,
MONS_FIRST_DRACONIAN = MONS_DRACONIAN,
// If adding more drac colours, sync up colour names in
// mon-util.cc.
MONS_BLACK_DRACONIAN, // Should always be first colour.
MONS_MOTTLED_DRACONIAN,
MONS_YELLOW_DRACONIAN, // 315
MONS_GREEN_DRACONIAN,
MONS_PURPLE_DRACONIAN,
MONS_RED_DRACONIAN,
MONS_WHITE_DRACONIAN,
MONS_PALE_DRACONIAN, // 320 Should always be last colour.
// Sync up with mon-place.cc's draconian selection if adding more.
MONS_DRACONIAN_CALLER,
MONS_DRACONIAN_MONK,
MONS_DRACONIAN_ZEALOT,
MONS_DRACONIAN_SHIFTER,
MONS_DRACONIAN_ANNIHILATOR, // 325
MONS_DRACONIAN_KNIGHT,
MONS_DRACONIAN_SCORCHER,
MONS_LAST_DRACONIAN = MONS_DRACONIAN_SCORCHER,
MONS_MURRAY,
MONS_TIAMAT,
MONS_DEEP_ELF_BLADEMASTER, // 330
MONS_DEEP_ELF_MASTER_ARCHER,
// The Lords of Hell (also unique):
MONS_GERYON = 340, // 340
MONS_DISPATER,
MONS_ASMODEUS,
MONS_ANTAEUS,
MONS_ERESHKIGAL, // 344
MONS_ANCIENT_LICH = 356, // 356
MONS_OOZE,
MONS_KRAKEN,
MONS_KRAKEN_TENTACLE,
MONS_VAULT_GUARD, // 360
MONS_CURSE_SKULL,
MONS_VAMPIRE_KNIGHT,
MONS_VAMPIRE_MAGE,
MONS_SHINING_EYE,
MONS_ORB_GUARDIAN, // 365
MONS_DAEVA,
MONS_SPECTRAL_THING,
MONS_GREATER_NAGA,
MONS_SKELETAL_DRAGON,
MONS_TENTACLED_MONSTROSITY, // 370
MONS_SPHINX,
MONS_ROTTING_HULK,
MONS_GUARDIAN_MUMMY,
MONS_GREATER_MUMMY,
MONS_MUMMY_PRIEST, // 375
MONS_CENTAUR_WARRIOR,
MONS_YAKTAUR_CAPTAIN,
MONS_KILLER_KLOWN,
MONS_ELECTRIC_GOLEM, // replacing the guardian robot -- bwr
MONS_BALL_LIGHTNING, // replacing the dorgi -- bwr 380
MONS_ORB_OF_FIRE, // Swords renamed to fit -- bwr
MONS_QUOKKA, // Quokka are a type of wallaby, returned -- bwr 382
MONS_TRAPDOOR_SPIDER,
MONS_CHAOS_SPAWN,
MONS_EYE_OF_DEVASTATION = 385, // 385
MONS_MOTH_OF_WRATH,
MONS_DEATH_COB,
MONS_CURSE_TOE,
MONS_GOLD_MIMIC,
MONS_WEAPON_MIMIC, // 390
MONS_ARMOUR_MIMIC,
MONS_SCROLL_MIMIC,
MONS_POTION_MIMIC,
MONS_HELL_HOG,
MONS_SERPENT_OF_HELL, // 395
MONS_BOGGART,
MONS_QUICKSILVER_DRAGON,
MONS_IRON_DRAGON,
MONS_SKELETAL_WARRIOR, // 399
MONS_PLAYER_GHOST, // 400
MONS_PANDEMONIUM_DEMON, // 401
MONS_GIANT_NEWT, // 402
MONS_GIANT_GECKO, // 403
MONS_GIANT_IGUANA, // 404
MONS_GILA_MONSTER, // 405
MONS_KOMODO_DRAGON, // 406
// Lava monsters:
MONS_LAVA_WORM = 420, // 420
MONS_LAVA_FISH,
MONS_LAVA_SNAKE,
MONS_SALAMANDER, // 423 mv: was another lava thing
// Water monsters:
MONS_BIG_FISH = 430, // 430
MONS_GIANT_GOLDFISH,
MONS_ELECTRIC_EEL,
MONS_JELLYFISH,
MONS_WATER_ELEMENTAL,
MONS_SWAMP_WORM, // 435
MONS_SHARK,
// Monsters which move through rock:
MONS_ROCK_WORM = 440,
// Statuary
MONS_ORANGE_STATUE,
MONS_SILVER_STATUE,
MONS_ICE_STATUE,
MONS_STATUE,
// Third batch of uniques
MONS_ROXANNE = 450, // -- statue, too!
MONS_SONJA,
MONS_EUSTACHIO,
MONS_AZRAEL,
MONS_ILSUIW,
MONS_PRINCE_RIBBIT, // 455
MONS_NERGALLE,
MONS_SAINT_ROKA,
MONS_NESSOS,
MONS_LERNAEAN_HYDRA,
MONS_DISSOLUTION, // 460
MONS_KIRKE,
MONS_GRUM,
MONS_PURGY,
MONS_MENKAURE,
MONS_DUVESSA, // 465
MONS_DOWAN,
MONS_GASTRONOK,
MONS_MAURICE,
MONS_KHUFU,
MONS_NIKOLA, // 470
// New set of monsters {november, 2009}
MONS_GOLDEN_EYE,
MONS_AIZUL,
MONS_PIKEL,
MONS_CRAZY_YIUF,
MONS_SLAVE,
MONS_GIANT_LEECH,
MONS_MARA,
MONS_MARA_FAKE,
// Testing monsters
MONS_TEST_SPAWNER,
NUM_MONSTERS, // used for polymorph
// MONS_NO_MONSTER can get put in savefiles, so it shouldn't change
// when NUM_MONSTERS increases.
MONS_NO_MONSTER = 1000,
MONS_PLAYER,
RANDOM_MONSTER = 2000, // used to distinguish between a random monster and using program bugs for error trapping {dlb}
// A random draconian, either base coloured drac or specialised.
RANDOM_DRACONIAN,
// Any random base draconian colour.
RANDOM_BASE_DRACONIAN,
// Any random specialised draconian, such as a draconian knight.
RANDOM_NONBASE_DRACONIAN,
WANDERING_MONSTER = 3500 // only used in monster placement routines - forced limit checks {dlb}
};
enum beh_type
{
BEH_SLEEP, // 0
BEH_WANDER,
BEH_SEEK,
BEH_FLEE,
BEH_CORNERED,
BEH_PANIC, // like flee but without running away
BEH_LURK, // stay still until discovered or
// enemy close by
NUM_BEHAVIOURS, // max # of legal states
BEH_CHARMED, // hostile-but-charmed; creation only
BEH_FRIENDLY, // used during creation only
BEH_GOOD_NEUTRAL, // creation only
BEH_STRICT_NEUTRAL,
BEH_NEUTRAL, // creation only
BEH_HOSTILE, // creation only
BEH_GUARD, // creation only - monster is guard
BEH_COPY // creation only - copy from summoner
};
enum mon_attitude_type
{
ATT_HOSTILE, // 0, default in most cases
ATT_NEUTRAL, // neutral
ATT_GOOD_NEUTRAL, // neutral, but won't attack friendlies
ATT_STRICT_NEUTRAL, // neutral, won't attack player. Used by Jiyva.
ATT_FRIENDLY // created friendly (or tamed?)
};
// These are now saved in an unsigned long in the monsters struct.
enum monster_flag_type
{
MF_NO_REWARD = 0x01, // no benefit from killing
MF_JUST_SUMMONED = 0x02, // monster skips next available action
MF_TAKING_STAIRS = 0x04, // is following player through stairs
MF_INTERESTING = 0x08, // Player finds monster interesting
MF_SEEN = 0x10, // Player has already seen monster
MF_DIVINE_PROTECTION = 0x20, // Monster has divine protection.
MF_KNOWN_MIMIC = 0x40, // Mimic that has taken a swing at the PC,
// or that the player has inspected with ?
MF_BANISHED = 0x80, // Monster that has been banished.
MF_HARD_RESET = 0x100, // Summoned, should not drop gear on reset
MF_WAS_NEUTRAL = 0x200, // mirror to CREATED_FRIENDLY for neutrals
MF_ATT_CHANGE_ATTEMPT = 0x400, // Saw player and attitude changed (or
// not); currently used for holy beings
// (good god worshippers -> neutral)
// orcs (Beogh worshippers -> friendly),
// and slimes (Jiyva worshippers -> neutral)
MF_WAS_IN_VIEW = 0x800, // Was in view during previous turn.
MF_BAND_MEMBER = 0x1000, // Created as a member of a band
MF_GOT_HALF_XP = 0x2000, // Player already got half xp value earlier
MF_HONORARY_UNDEAD = 0x4000, // Consider this monster to have MH_UNDEAD
// holiness, regardless of its actual type;
// currently used for abominations created
// via Twisted Resurrection
MF_ENSLAVED_SOUL = 0x8000, // An undead monster soul enslaved by
// Yredelemnul's power
MF_NAME_SUFFIX = 0x10000, // mname is a suffix.
MF_NAME_ADJECTIVE = 0x20000, // mname is an adjective.
// between it and the monster type name.
MF_NAME_REPLACE = 0x30000, // mname entirely replaces normal monster
// name.
MF_NAME_MASK = 0x30000,
MF_GOD_GIFT = 0x40000, // Is a god gift.
MF_FLEEING_FROM_SANCTUARY = 0x80000, // Is running away from player sanctuary
MF_EXPLODE_KILL = 0x100000, // Is being killed with disintegration
// These are based on the flags in monster class, but can be set for
// monsters that are not normally spellcasters (in vaults).
MF_SPELLCASTER = 0x200000,
MF_ACTUAL_SPELLS = 0x400000, // Can use spells and is a spellcaster for
// Trog purposes.
MF_PRIEST = 0x800000, // Is a priest (divine spells)
// for the conduct.
MF_GOING_BERSERK = 0x1000000,// Is about to go berserk!
MF_NAME_DESCRIPTOR = 0x2000000,// mname should be treated with normal
// grammar, ie, prevent "You hit red rat"
// and other such constructs.
MF_NAME_DEFINITE = 0x4000000 // give this monster the definite "the"
// article, instead of the indefinite "a"
// article.
};
// Adding slots breaks saves. YHBW.
enum mon_inv_type // (int) menv[].inv[]
{
MSLOT_WEAPON, // Primary weapon (melee)
MSLOT_ALT_WEAPON, // Alternate weapon, ranged or second melee weapon
// for monsters that can use two weapons.
MSLOT_MISSILE,
MSLOT_ARMOUR,
MSLOT_SHIELD,
MSLOT_MISCELLANY,
MSLOT_POTION,
MSLOT_WAND,
MSLOT_SCROLL,
MSLOT_GOLD,
NUM_MONSTER_SLOTS
};
// XXX: These still need to be applied in mon-data.h
enum mon_spellbook_type
{
MST_ORC_WIZARD_I = 0,
MST_ORC_WIZARD_II,
MST_ORC_WIZARD_III,
MST_GUARDIAN_SERPENT = 10,
MST_LICH_I = 20,
MST_LICH_II,
MST_LICH_III,
MST_LICH_IV,
MST_HELLION = 30,
MST_VAMPIRE = 40,
MST_VAMPIRE_KNIGHT,
MST_VAMPIRE_MAGE,
MST_EFREET = 50,
MST_KILLER_KLOWN,
MST_BRAIN_WORM,
MST_GIANT_ORANGE_BRAIN,
MST_RAKSHASA,
MST_GREAT_ORB_OF_EYES, // 55
MST_KRAKEN,
MST_ORC_SORCERER,
MST_STEAM_DRAGON,
MST_HELL_KNIGHT_I = 60,
MST_HELL_KNIGHT_II,
MST_NECROMANCER_I = 65,
MST_NECROMANCER_II,
MST_WIZARD_I = 70,
MST_WIZARD_II,
MST_WIZARD_III,
MST_WIZARD_IV,
MST_WIZARD_V,
MST_ORC_PRIEST = 80,
MST_ORC_HIGH_PRIEST,
MST_MOTTLED_DRAGON,
MST_ICE_FIEND,
MST_SHADOW_FIEND,
MST_TORMENTOR, // 85
MST_STORM_DRAGON,
MST_WHITE_IMP,
MST_YNOXINUL,
MST_NEQOXEC,
MST_HELLWING, // 90
MST_SMOKE_DEMON,
MST_CACODEMON,
MST_GREEN_DEATH,
MST_BALRUG,
MST_BLUE_DEATH, // 95
MST_TITAN,
MST_GOLDEN_DRAGON,
MST_DEEP_ELF_SUMMONER,
MST_DEEP_ELF_CONJURER_I,
MST_DEEP_ELF_CONJURER_II, // 100
MST_DEEP_ELF_PRIEST,
MST_DEEP_ELF_HIGH_PRIEST,
MST_DEEP_ELF_DEMONOLOGIST,
MST_DEEP_ELF_ANNIHILATOR,
MST_DEEP_ELF_SORCERER, // 105
MST_DEEP_ELF_DEATH_MAGE,
MST_KOBOLD_DEMONOLOGIST,
MST_NAGA,
MST_NAGA_MAGE,
MST_CURSE_SKULL, // 110
MST_SHINING_EYE,
MST_FROST_GIANT,
MST_ANGEL,
MST_DAEVA,
MST_SHADOW_DRAGON, // 115
MST_SPHINX,
MST_MUMMY,
MST_ELECTRIC_GOLEM,
MST_ORB_OF_FIRE,
MST_SHADOW_IMP, // 120
MST_GHOST,
MST_HELL_HOG,
MST_SWAMP_DRAGON,
MST_SWAMP_DRAKE,
MST_SERPENT_OF_HELL, // 125
MST_BOGGART,
MST_EYE_OF_DEVASTATION,
MST_QUICKSILVER_DRAGON,
MST_IRON_DRAGON,
MST_SKELETAL_WARRIOR, // 130
MST_MYSTIC,
MST_DEATH_DRAKE,
MST_DRAC_SCORCHER, // As Bioster would say.. pig*s
MST_DRAC_CALLER,
MST_DRAC_SHIFTER, // 135
MST_CURSE_TOE,
MST_ICE_STATUE,
// unique monsters' "spellbooks"
MST_RUPERT = 140,
MST_ROXANNE,
MST_SONJA,
MST_EUSTACHIO,
MST_ILSUIW,
MST_PRINCE_RIBBIT, // 145
MST_NESSOS,
MST_KIRKE,
MST_MENKAURE,
MST_DOWAN,
MST_GERYON,
MST_DISPATER,
MST_ASMODEUS,
MST_ERESHKIGAL,
MST_ANTAEUS,
MST_MNOLEG = 160,
MST_LOM_LOBON,
MST_CEREBOV,
MST_GLOORX_VLOQ,
MST_JESSICA,
MST_BERSERK_ESCAPE, // 165
MST_GASTRONOK,
MST_MAURICE,
MST_KHUFU,
MST_NIKOLA,
MST_DISSOLUTION, // 170
MST_AIZUL,
MST_EXECUTIONER,
MST_HAROLD,
MST_MARA,
MST_MARA_FAKE,
MST_MERFOLK_AQUAMANCER,
MST_TEST_SPAWNER = 200,
NUM_MSTYPES,
MST_NO_SPELLS = 250
};
enum mutation_type
{
MUT_TOUGH_SKIN,
MUT_STRONG,
MUT_CLEVER,
MUT_AGILE,
MUT_GREEN_SCALES,
MUT_BLACK_SCALES,
MUT_GREY_SCALES,
MUT_BONEY_PLATES,
MUT_REPULSION_FIELD,
MUT_PASSIVE_MAPPING,
MUT_POISON_RESISTANCE,
MUT_CARNIVOROUS,
MUT_HERBIVOROUS,
MUT_HEAT_RESISTANCE,
MUT_COLD_RESISTANCE,
MUT_SHOCK_RESISTANCE,
MUT_REGENERATION,
MUT_SLOW_HEALING,
MUT_FAST_METABOLISM,
MUT_SLOW_METABOLISM,
MUT_WEAK,
MUT_DOPEY,
MUT_CLUMSY,
MUT_TELEPORT_CONTROL,
MUT_TELEPORT,
MUT_MAGIC_RESISTANCE,
MUT_FAST,
MUT_ACUTE_VISION,
MUT_DEFORMED,
MUT_TELEPORT_AT_WILL,
MUT_SPIT_POISON,
MUT_BREATHE_FLAMES,
MUT_BLINK,
MUT_HORNS,
MUT_BEAK,
MUT_STRONG_STIFF,
MUT_FLEXIBLE_WEAK,
MUT_SCREAM,
MUT_CLARITY,
MUT_BERSERK,
MUT_DETERIORATION,
MUT_BLURRY_VISION,
MUT_MUTATION_RESISTANCE,
MUT_FRAIL,
MUT_ROBUST,
MUT_TORMENT_RESISTANCE,
MUT_NEGATIVE_ENERGY_RESISTANCE,
MUT_STOCHASTIC_TORMENT_RESISTANCE,
MUT_ICEMAIL,
MUT_CONSERVE_SCROLLS,
MUT_CONSERVE_POTIONS,
MUT_PASSIVE_FREEZE,
MUT_SUMMON_MINOR_DEMONS,
MUT_SUMMON_DEMONS,
MUT_HURL_HELLFIRE,
MUT_CALL_TORMENT,
MUT_RAISE_DEAD,
MUT_CONTROL_DEMONS,
MUT_DEATH_STRENGTH,
MUT_CHANNEL_HELL,
MUT_DRAIN_LIFE,
MUT_THROW_FLAMES,
MUT_THROW_FROST,
MUT_SMITE,
MUT_CLAWS,
MUT_FANGS,
// hooves and talons can replace feet
MUT_HOOVES,
MUT_TALONS,
MUT_BREATHE_POISON,
MUT_STINGER,
MUT_BIG_WINGS,
MUT_SAPROVOROUS,
MUT_GOURMAND,
MUT_SHAGGY_FUR,
MUT_HIGH_MAGIC,
MUT_LOW_MAGIC,
// several types of scales (affect AC and sometimes more)
MUT_RED_SCALES,
MUT_NACREOUS_SCALES,
MUT_GREY2_SCALES,
MUT_METALLIC_SCALES,
MUT_BLACK2_SCALES,
MUT_WHITE_SCALES,
MUT_YELLOW_SCALES,
MUT_BROWN_SCALES,
MUT_BLUE_SCALES,
MUT_PURPLE_SCALES,
MUT_SPECKLED_SCALES,
MUT_ORANGE_SCALES,
MUT_INDIGO_SCALES,
MUT_RED2_SCALES,
MUT_IRIDESCENT_SCALES,
MUT_PATTERNED_SCALES,
NUM_MUTATIONS,
RANDOM_MUTATION = 100,
RANDOM_XOM_MUTATION = 101,
RANDOM_GOOD_MUTATION = 102,
RANDOM_BAD_MUTATION = 103
};
enum object_class_type // mitm[].base_type
{
OBJ_WEAPONS, // 0
OBJ_MISSILES,
OBJ_ARMOUR,
OBJ_WANDS,
OBJ_FOOD, // 4
OBJ_UNKNOWN_I = 5, // (use unknown) labeled as books in invent.cc {dlb}
OBJ_SCROLLS = 6, // 6
OBJ_JEWELLERY,
OBJ_POTIONS, // 8
OBJ_UNKNOWN_II = 9, // (use unknown, stackable) labeled as gems in invent.cc {dlb}
OBJ_BOOKS = 10, // 10
OBJ_STAVES,
OBJ_ORBS,
OBJ_MISCELLANY,
OBJ_CORPSES,
OBJ_GOLD, // important role as upper limit to chardump::dump_inventory() {dlb}
OBJ_GEMSTONES, // found in itemname.cc, labeled as miscellaneous in invent.cc {dlb}
NUM_OBJECT_CLASSES,
OBJ_UNASSIGNED = 100, // must remain set to 100 {dlb}
OBJ_RANDOM = 255 // must remain set to 255 {dlb} - also used
// for blanket random sub_type .. see dungeon::items()
};
enum 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_EXAMINE = 'x',
OPER_FIRE = 'f',
OPER_PRAY = 'p',
OPER_EVOKE = 'v',
OPER_DESTROY = 'D',
OPER_QUIVER = 'Q',
OPER_ATTACK = 'a',
OPER_ANY = 0
};
enum orb_type
{
ORB_ZOT // 0
};
enum size_part_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)
};
enum potion_type
{
POT_HEALING, // 0
POT_HEAL_WOUNDS,
POT_SPEED,
POT_MIGHT,
POT_BRILLIANCE,
POT_AGILITY,
POT_GAIN_STRENGTH,
POT_GAIN_DEXTERITY, // 5
POT_GAIN_INTELLIGENCE,
POT_LEVITATION,
POT_POISON,
POT_SLOWING,
POT_PARALYSIS, // 10
POT_CONFUSION,
POT_INVISIBILITY,
POT_PORRIDGE,
POT_DEGENERATION,
POT_DECAY, // 15
POT_WATER,
POT_EXPERIENCE,
POT_MAGIC,
POT_RESTORE_ABILITIES,
POT_STRONG_POISON, // 20
POT_BERSERK_RAGE,
POT_CURE_MUTATION,
POT_MUTATION,
POT_RESISTANCE,
POT_BLOOD, // 25
POT_BLOOD_COAGULATED,
NUM_POTIONS // 27
};
enum pronoun_type
{
PRONOUN_CAP, // 0
PRONOUN_NOCAP, // 1
PRONOUN_CAP_POSSESSIVE, // 2
PRONOUN_NOCAP_POSSESSIVE, // 3
PRONOUN_REFLEXIVE, // 4 (reflexive is always lowercase)
PRONOUN_OBJECTIVE // 5 (objective is always lowercase)
};
enum artefact_prop_type
{
ARTP_BRAND, // 0
ARTP_AC,
ARTP_EVASION,
ARTP_STRENGTH,
ARTP_INTELLIGENCE,
ARTP_DEXTERITY, // 5
ARTP_FIRE,
ARTP_COLD,
ARTP_ELECTRICITY,
ARTP_POISON,
ARTP_NEGATIVE_ENERGY, // 10
ARTP_MAGIC,
ARTP_EYESIGHT,
ARTP_INVISIBLE,
ARTP_LEVITATE,
ARTP_BLINK, // 15
ARTP_BERSERK,
ARTP_NOISES,
ARTP_PREVENT_SPELLCASTING,
ARTP_CAUSE_TELEPORTATION,
ARTP_PREVENT_TELEPORTATION, // 20
ARTP_ANGRY,
ARTP_METABOLISM,
ARTP_MUTAGENIC,
ARTP_ACCURACY,
ARTP_DAMAGE, // 25
ARTP_CURSED,
ARTP_STEALTH,
ARTP_MAGICAL_POWER,
ARTP_NUM_PROPERTIES // 30
};
enum score_format_type
{
SCORE_TERSE, // one line
SCORE_REGULAR, // two lines (name, cause, blank)
SCORE_VERBOSE // everything (dates, times, god, etc.)
};
enum shop_type // (unsigned char) env.sh_type[], item_in_shop(), in_a_shop()
{
SHOP_WEAPON, // 0
SHOP_ARMOUR,
SHOP_WEAPON_ANTIQUE,
SHOP_ARMOUR_ANTIQUE,
SHOP_GENERAL_ANTIQUE,
SHOP_JEWELLERY, // 5
SHOP_WAND,
SHOP_BOOK,
SHOP_FOOD,
SHOP_DISTILLERY,
SHOP_SCROLL, // 10
SHOP_GENERAL,
NUM_SHOPS, // must remain last 'regular' member {dlb}
SHOP_UNASSIGNED = 100, // keep set at 100 for now {dlb}
SHOP_RANDOM = 255 // keep set at 255 for now {dlb}
};
// These are often addressed relative to each other (esp. delta SIZE_MEDIUM).
enum size_type
{
SIZE_TINY, // rats/bats
SIZE_LITTLE, // spriggans
SIZE_SMALL, // halflings/kobolds
SIZE_MEDIUM, // humans/elves/dwarves
SIZE_LARGE, // trolls/ogres/centaurs/nagas
SIZE_BIG, // large quadrupeds
SIZE_GIANT, // giants
SIZE_HUGE, // dragons
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,
SK_SHORT_BLADES,
SK_LONG_BLADES,
SK_AXES,
SK_MACES_FLAILS,
SK_POLEARMS,
SK_STAVES,
SK_SLINGS,
SK_BOWS,
SK_CROSSBOWS,
SK_THROWING,
SK_ARMOUR,
SK_DODGING,
SK_STEALTH,
SK_STABBING,
SK_SHIELDS,
SK_TRAPS_DOORS,
SK_UNARMED_COMBAT,
// 20
// 21
// 22
// 23
// 24
SK_SPELLCASTING = 25,
SK_CONJURATIONS,
SK_ENCHANTMENTS,
SK_SUMMONINGS,
SK_NECROMANCY,
SK_TRANSLOCATIONS,
SK_TRANSMUTATIONS,
SK_FIRE_MAGIC,
SK_ICE_MAGIC,
SK_AIR_MAGIC,
SK_EARTH_MAGIC,
SK_POISON_MAGIC,
SK_INVOCATIONS,
SK_EVOCATIONS,
NUM_SKILLS, // must remain last regular member
SK_BLANK_LINE, // used for skill output
SK_COLUMN_BREAK, // used for skill output
SK_NONE
};
// order is important on these (see player_speed())
enum speed_type
{
SPEED_SLOWED,
SPEED_NORMAL,
SPEED_HASTED
};
enum species_type
{
SP_HUMAN,
SP_HIGH_ELF,
SP_DEEP_ELF,
SP_SLUDGE_ELF,
SP_MOUNTAIN_DWARF,
SP_HALFLING,
SP_HILL_ORC,
SP_KOBOLD,
SP_MUMMY,
SP_NAGA,
SP_OGRE,
SP_TROLL,
SP_RED_DRACONIAN,
SP_WHITE_DRACONIAN,
SP_GREEN_DRACONIAN,
SP_YELLOW_DRACONIAN,
SP_GREY_DRACONIAN,
SP_BLACK_DRACONIAN,
SP_PURPLE_DRACONIAN,
SP_MOTTLED_DRACONIAN,
SP_PALE_DRACONIAN,
SP_BASE_DRACONIAN,
SP_CENTAUR,
SP_DEMIGOD,
SP_SPRIGGAN,
SP_MINOTAUR,
SP_DEMONSPAWN,
SP_GHOUL,
SP_KENKU,
SP_MERFOLK,
SP_VAMPIRE,
SP_DEEP_DWARF,
SP_ELF, // (placeholder)
SP_HILL_DWARF, // (placeholder)
SP_OGRE_MAGE, // (placeholder)
SP_GREY_ELF, // (placeholder)
SP_GNOME, // (placeholder)
NUM_SPECIES, // always after the last species
SP_UNKNOWN = 100
};
enum spell_type
{
SPELL_NO_SPELL,
SPELL_TELEPORT_SELF,
SPELL_CAUSE_FEAR,
SPELL_MAGIC_DART,
SPELL_FIREBALL,
SPELL_APPORTATION,
SPELL_DELAYED_FIREBALL,
SPELL_STRIKING,
SPELL_CONJURE_FLAME,
SPELL_DIG,
SPELL_BOLT_OF_FIRE,
SPELL_BOLT_OF_COLD,
SPELL_LIGHTNING_BOLT,
SPELL_BOLT_OF_MAGMA,
SPELL_POLYMORPH_OTHER,
SPELL_SLOW,
SPELL_HASTE,
SPELL_PARALYSE,
SPELL_CONFUSE,
SPELL_INVISIBILITY,
SPELL_THROW_FLAME,
SPELL_THROW_FROST,
SPELL_CONTROLLED_BLINK,
SPELL_FREEZING_CLOUD,
SPELL_MEPHITIC_CLOUD,
SPELL_RING_OF_FLAMES,
SPELL_VENOM_BOLT,
SPELL_OLGREBS_TOXIC_RADIANCE,
SPELL_TELEPORT_OTHER,
SPELL_MINOR_HEALING,
SPELL_MAJOR_HEALING,
SPELL_DEATHS_DOOR,
SPELL_SELECTIVE_AMNESIA,
SPELL_MASS_CONFUSION,
SPELL_SMITING,
SPELL_SUMMON_SMALL_MAMMALS,
SPELL_ABJURATION,
SPELL_SUMMON_SCORPIONS,
SPELL_LEVITATION,
SPELL_BOLT_OF_DRAINING,
SPELL_LEHUDIBS_CRYSTAL_SPEAR,
SPELL_BOLT_OF_INACCURACY,
SPELL_POISONOUS_CLOUD,
SPELL_FIRE_STORM,
SPELL_DETECT_TRAPS,
SPELL_BLINK,
SPELL_ISKENDERUNS_MYSTIC_BLAST,
SPELL_SUMMON_SWARM,
SPELL_SUMMON_HORRIBLE_THINGS,
SPELL_ENSLAVEMENT,
SPELL_ANIMATE_DEAD,
SPELL_PAIN,
SPELL_EXTENSION,
SPELL_CONTROL_UNDEAD,
SPELL_ANIMATE_SKELETON,
SPELL_VAMPIRIC_DRAINING,
SPELL_HAUNT,
SPELL_DETECT_ITEMS,
SPELL_BORGNJORS_REVIVIFICATION,
SPELL_FREEZE,
SPELL_SUMMON_ELEMENTAL,
SPELL_OZOCUBUS_REFRIGERATION,
SPELL_STICKY_FLAME,
SPELL_SUMMON_ICE_BEAST,
SPELL_OZOCUBUS_ARMOUR,
SPELL_CALL_IMP,
SPELL_REPEL_MISSILES,
SPELL_BERSERKER_RAGE,
SPELL_DISPEL_UNDEAD,
SPELL_FULSOME_DISTILLATION,
SPELL_POISON_ARROW,
SPELL_TWISTED_RESURRECTION,
SPELL_REGENERATION,
SPELL_BONE_SHARDS,
SPELL_BANISHMENT,
SPELL_CIGOTUVIS_DEGENERATION,
SPELL_STING,
SPELL_SUBLIMATION_OF_BLOOD,
SPELL_TUKIMAS_DANCE,
SPELL_HELLFIRE,
SPELL_SUMMON_DEMON,
SPELL_DEMONIC_HORDE,
SPELL_SUMMON_GREATER_DEMON,
SPELL_CORPSE_ROT,
SPELL_TUKIMAS_VORPAL_BLADE,
SPELL_FIRE_BRAND,
SPELL_FREEZING_AURA,
SPELL_LETHAL_INFUSION,
SPELL_IRON_SHOT,
SPELL_STONE_ARROW,
SPELL_STONEMAIL,
SPELL_SHOCK,
SPELL_SWIFTNESS,
SPELL_FLY,
SPELL_INSULATION,
SPELL_DETECT_CREATURES,
SPELL_CURE_POISON,
SPELL_CONTROL_TELEPORT,
SPELL_POISON_WEAPON,
SPELL_RESIST_POISON,
SPELL_PROJECTED_NOISE,
SPELL_ALTER_SELF,
SPELL_DEBUGGING_RAY,
SPELL_RECALL,
SPELL_PORTAL,
SPELL_AGONY,
SPELL_SPIDER_FORM,
SPELL_DISINTEGRATE,
SPELL_BLADE_HANDS,
SPELL_STATUE_FORM,
SPELL_ICE_FORM,
SPELL_DRAGON_FORM,
SPELL_NECROMUTATION,
SPELL_DEATH_CHANNEL,
SPELL_SYMBOL_OF_TORMENT,
SPELL_DEFLECT_MISSILES,
SPELL_THROW_ICICLE,
SPELL_ICE_STORM,
SPELL_AIRSTRIKE,
SPELL_SHADOW_CREATURES,
SPELL_CONFUSING_TOUCH,
SPELL_SURE_BLADE,
SPELL_FLAME_TONGUE,
SPELL_PASSWALL,
SPELL_IGNITE_POISON,
SPELL_STICKS_TO_SNAKES,
SPELL_CALL_CANINE_FAMILIAR,
SPELL_SUMMON_DRAGON,
SPELL_TAME_BEASTS,
SPELL_HIBERNATION,
SPELL_ENGLACIATION,
SPELL_DETECT_SECRET_DOORS,
SPELL_SEE_INVISIBLE,
SPELL_PHASE_SHIFT,
SPELL_SUMMON_BUTTERFLIES,
SPELL_WARP_BRAND,
SPELL_SILENCE,
SPELL_SHATTER,
SPELL_DISPERSAL,
SPELL_DISCHARGE,
SPELL_CORONA,
SPELL_INTOXICATE,
SPELL_EVAPORATE,
SPELL_FRAGMENTATION,
SPELL_SANDBLAST,
SPELL_MAXWELLS_SILVER_HAMMER,
SPELL_CONDENSATION_SHIELD,
SPELL_STONESKIN,
SPELL_SIMULACRUM,
SPELL_CONJURE_BALL_LIGHTNING,
SPELL_CHAIN_LIGHTNING,
SPELL_EXCRUCIATING_WOUNDS,
SPELL_PORTAL_PROJECTILE,
SPELL_SUMMON_UGLY_THING,
SPELL_PETRIFY,
// Mostly monster-only spells after this point:
SPELL_HELLFIRE_BURST = 155,
SPELL_VAMPIRE_SUMMON,
SPELL_BRAIN_FEED,
SPELL_FAKE_RAKSHASA_SUMMON,
SPELL_STEAM_BALL,
SPELL_SUMMON_UFETUBUS,
SPELL_SUMMON_BEAST,
SPELL_ENERGY_BOLT,
SPELL_POISON_SPLASH,
SPELL_SUMMON_UNDEAD,
SPELL_CANTRIP,
SPELL_QUICKSILVER_BOLT,
SPELL_METAL_SPLINTERS,
SPELL_MIASMA,
SPELL_SUMMON_DRAKES,
SPELL_BLINK_OTHER,
SPELL_SUMMON_MUSHROOMS,
SPELL_ACID_SPLASH,
SPELL_STICKY_FLAME_SPLASH,
SPELL_FIRE_BREATH,
SPELL_COLD_BREATH,
SPELL_DRACONIAN_BREATH,
SPELL_WATER_ELEMENTALS,
SPELL_PORKALATOR,
SPELL_KRAKEN_TENTACLES,
SPELL_TOMB_OF_DOROKLOHE,
SPELL_SUMMON_EYEBALLS,
SPELL_HASTE_OTHER,
SPELL_FIRE_ELEMENTALS,
SPELL_EARTH_ELEMENTALS,
SPELL_AIR_ELEMENTALS,
SPELL_SLEEP,
SPELL_BLINK_OTHER_CLOSE,
SPELL_BLINK_CLOSE,
SPELL_BLINK_RANGE,
SPELL_BLINK_AWAY,
SPELL_MISLEAD,
SPELL_FAKE_MARA_SUMMON,
SPELL_SUMMON_RAKSHASA,
SPELL_SUMMON_PLAYER_GHOST,
SPELL_PRIMAL_WAVE,
SPELL_CALL_TIDE,
SPELL_IOOD,
NUM_SPELLS
};
enum slot_select_mode
{
SS_FORWARD = 0,
SS_BACKWARD = 1
};
enum stat_type
{
STAT_STRENGTH, // 0
STAT_INTELLIGENCE,
STAT_DEXTERITY,
NUM_STATS, // added for increase_stats() {dlb}
STAT_ALL, // must remain after NUM_STATS -- added to handle royal jelly, etc. {dlb}
STAT_RANDOM = 255 // leave at 255, added for increase_stats() handling {dlb}
};
enum targetting_type
{
DIR_NONE,
DIR_TARGET,
DIR_DIR,
DIR_TARGET_OBJECT // New as of 27-August-2009, for item-targetting spells
};
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
TORMENT_XOM = -6, // Xom effect
TORMENT_KIKUBAAQUDGHA = -7 // Kikubaaqudgha effect
};
enum trap_type // env.trap_type[]
{
TRAP_DART, // 0
TRAP_ARROW,
TRAP_SPEAR,
TRAP_AXE,
TRAP_TELEPORT,
TRAP_ALARM, // 5
TRAP_BLADE,
TRAP_BOLT,
TRAP_NET,
TRAP_ZOT,
TRAP_NEEDLE, // 10
TRAP_SHAFT,
NUM_TRAPS, // must remain last 'regular' member {dlb}
TRAP_UNASSIGNED = 100, // keep set at 100 for now {dlb}
TRAP_INDEPTH = 253, // Level-appropriate trap.
TRAP_NONTELEPORT = 254,
TRAP_RANDOM = 255 // set at 255 to avoid potential conflicts {dlb}
};
// Any change in this list warrants an increase in the version number in
// tutorial.cc.
enum tutorial_event_type
{
TUT_SEEN_FIRST_OBJECT, // 0
// seen certain items
TUT_SEEN_POTION,
TUT_SEEN_SCROLL,
TUT_SEEN_WAND,
TUT_SEEN_SPBOOK,
TUT_SEEN_JEWELLERY, // 5
TUT_SEEN_MISC,
TUT_SEEN_STAFF,
TUT_SEEN_WEAPON,
TUT_SEEN_MISSILES,
TUT_SEEN_ARMOUR, // 10
TUT_SEEN_RANDART,
TUT_SEEN_FOOD,
TUT_SEEN_CARRION,
TUT_SEEN_GOLD,
// encountered dungeon features
TUT_SEEN_STAIRS, // 15
TUT_SEEN_ESCAPE_HATCH,
TUT_SEEN_BRANCH,
TUT_SEEN_PORTAL,
TUT_SEEN_TRAP,
TUT_SEEN_ALTAR, // 20
TUT_SEEN_SHOP,
TUT_SEEN_DOOR,
TUT_SEEN_SECRET_DOOR,
// other 'first events'
TUT_SEEN_MONSTER,
TUT_SEEN_ZERO_EXP_MON, // 25
TUT_SEEN_TOADSTOOL,
TUT_MONSTER_BRAND,
TUT_MONSTER_FRIENDLY,
TUT_MONSTER_SHOUT,
TUT_MONSTER_LEFT_LOS, // 30
TUT_KILLED_MONSTER,
TUT_NEW_LEVEL,
TUT_SKILL_RAISE,
TUT_GAINED_MAGICAL_SKILL,
TUT_GAINED_MELEE_SKILL, // 35
TUT_GAINED_RANGED_SKILL,
TUT_CHOOSE_STAT,
TUT_MAKE_CHUNKS,
TUT_OFFER_CORPSE,
TUT_NEW_ABILITY_GOD, // 40
TUT_NEW_ABILITY_MUT,
TUT_NEW_ABILITY_ITEM,
TUT_FLEEING_MONSTER,
TUT_ROTTEN_FOOD,
TUT_CONVERT, // 45
TUT_GOD_DISPLEASED,
TUT_EXCOMMUNICATE,
TUT_SPELL_MISCAST,
TUT_SPELL_HUNGER,
TUT_GLOWING, // 50
TUT_YOU_RESIST,
// status changes
TUT_YOU_ENCHANTED,
TUT_YOU_SICK,
TUT_YOU_POISON,
TUT_YOU_ROTTING, // 55
TUT_YOU_CURSED,
TUT_YOU_HUNGRY,
TUT_YOU_STARVING,
TUT_YOU_MUTATED,
TUT_CAN_BERSERK, // 60
TUT_POSTBERSERK,
TUT_CAUGHT_IN_NET,
// warning
TUT_RUN_AWAY,
TUT_RETREAT_CASTER,
TUT_WIELD_WEAPON, // 65
TUT_NEED_HEALING,
TUT_NEED_POISON_HEALING,
TUT_INVISIBLE_DANGER,
TUT_NEED_HEALING_INVIS,
TUT_ABYSS, // 70
// interface
TUT_MULTI_PICKUP,
TUT_HEAVY_LOAD,
TUT_SHIFT_RUN,
TUT_MAP_VIEW,
TUT_AUTO_EXPLORE, // 75
TUT_DONE_EXPLORE,
TUT_AUTO_EXCLUSION,
TUT_STAIR_BRAND,
TUT_HEAP_BRAND,
TUT_TRAP_BRAND, // 80
TUT_LOAD_SAVED_GAME,
TUT_EVENTS_NUM // 82
};
// NOTE: For numbers higher than 85 change size of tutorial_events in externs.h.
enum undead_state_type // you.is_undead
{
US_ALIVE = 0,
US_HUNGRY_DEAD, // Ghouls
US_UNDEAD, // Mummies
US_SEMI_UNDEAD // Vampires
};
enum unique_item_status_type
{
UNIQ_NOT_EXISTS = 0,
UNIQ_EXISTS = 1,
UNIQ_LOST_IN_ABYSS = 2
};
enum friendly_pickup_type
{
FRIENDLY_PICKUP_NONE = 0,
FRIENDLY_PICKUP_FRIEND,
FRIENDLY_PICKUP_PLAYER,
FRIENDLY_PICKUP_ALL
};
enum zap_type
{
ZAP_FLAME,
ZAP_FROST,
ZAP_SLOWING,
ZAP_HASTING,
ZAP_MAGIC_DARTS,
ZAP_HEALING,
ZAP_PARALYSIS,
ZAP_FIRE,
ZAP_COLD,
ZAP_CONFUSION,
ZAP_INVISIBILITY,
ZAP_DIGGING,
ZAP_FIREBALL,
ZAP_TELEPORTATION,
ZAP_LIGHTNING,
ZAP_POLYMORPH_OTHER,
ZAP_LAST_RANDOM = ZAP_POLYMORPH_OTHER, // maximal random_effects beam
ZAP_VENOM_BOLT,
ZAP_NEGATIVE_ENERGY,
ZAP_CRYSTAL_SPEAR,
ZAP_BEAM_OF_ENERGY,
ZAP_MYSTIC_BLAST,
ZAP_ENSLAVEMENT,
ZAP_PAIN,
ZAP_STICKY_FLAME,
ZAP_DISPEL_UNDEAD,
ZAP_BONE_SHARDS,
ZAP_BANISHMENT,
ZAP_DEGENERATION,
ZAP_STING,
ZAP_HELLFIRE,
ZAP_IRON_SHOT,
ZAP_STRIKING,
ZAP_STONE_ARROW,
ZAP_ELECTRICITY,
ZAP_ORB_OF_ELECTRICITY,
ZAP_SPIT_POISON,
ZAP_DEBUGGING_RAY,
ZAP_BREATHE_FIRE,
ZAP_BREATHE_FROST,
ZAP_BREATHE_ACID,
ZAP_BREATHE_POISON,
ZAP_BREATHE_POWER,
ZAP_ENSLAVE_UNDEAD,
ZAP_AGONY,
ZAP_DISINTEGRATION,
ZAP_BREATHE_STEAM,
ZAP_CONTROL_DEMON,
ZAP_ORB_OF_FRAGMENTATION,
ZAP_THROW_ICICLE,
ZAP_ICE_STORM,
ZAP_CORONA,
ZAP_HIBERNATION,
ZAP_FLAME_TONGUE,
ZAP_SANDBLAST,
ZAP_SMALL_SANDBLAST,
ZAP_MAGMA,
ZAP_POISON_ARROW,
ZAP_BREATHE_STICKY_FLAME,
ZAP_BREATHE_LIGHTNING,
ZAP_PETRIFY,
ZAP_ENSLAVE_SOUL,
ZAP_CHAOS,
ZAP_SLIME,
ZAP_PORKALATOR,
ZAP_SLEEP,
ZAP_PRIMAL_WAVE,
ZAP_IOOD,
NUM_ZAPS
};
enum montravel_target_type
{
MTRAV_NONE = 0,
MTRAV_PLAYER, // Travelling to reach the player.
MTRAV_PATROL, // Travelling to reach the patrol point.
MTRAV_SIREN, // Sirens travelling towards deep water.
MTRAV_WALL, // Rock worms travelling towards a wall.
MTRAV_UNREACHABLE, // Not travelling because target is unreachable.
MTRAV_KNOWN_UNREACHABLE // As above, and the player knows this.
};
enum maybe_bool
{
B_FALSE,
B_MAYBE,
B_TRUE
};
#ifdef USE_TILE
enum screen_mode
{
SCREENMODE_WINDOW = 0,
SCREENMODE_FULL = 1,
SCREENMODE_AUTO = 2
};
enum cursor_type
{
CURSOR_MOUSE,
CURSOR_TUTORIAL,
CURSOR_MAX
};
// Ordering of tags is important: higher values cover up lower ones.
enum text_tag_type
{
TAG_NAMED_MONSTER = 0,
TAG_TUTORIAL = 1,
TAG_CELL_DESC = 2,
TAG_MAX
};
enum tag_pref
{
TAGPREF_NONE, // never display text tags
TAGPREF_TUTORIAL, // display text tags on "new" monsters
TAGPREF_NAMED, // display text tags on named monsters (incl. friendlies)
TAGPREF_ENEMY, // display text tags on enemy named monsters
TAGPREF_MAX
};
enum tile_display_type
{
TDSP_INVENT = 0,
TDSP_SPELLS,
TDSP_MEMORISE
};
#endif
#ifdef WIZARD
enum wizard_option_type
{
WIZ_NEVER, // protect player from accidental wiz
WIZ_NO, // don't start character in wiz mode
WIZ_YES // start character in wiz mode
};
#endif
#endif // ENUM_H