1 /* 2 * File: enum.h 3 * Summary: Global (ick) enums. 4 * Written by: Daniel Ligon 5 * 6 * Change History (most recent first): 7 * 8 * <11> 7 Aug 01 MV Changed MSLOT_UNASSIGNED_I to MSLOT_MISCELLANY 9 * added NUM_MISCELLANY, changed MONS_ANOTHER_ 10 * LAVA_THING to MONS_SALAMANDER 11 * <10> 7/29/00 JDJ Changed NUM_SPELL_TYPES to 14 (from 32767!). 12 * 24jun2000 jmf Changed comment spacing so stuff fit in 80 13 * columns; deleted some leading numbers in 14 * comments (reasoning as above). 15 * Also removed many "must be last" comments, 16 * esp. where less-than-accurate. 17 * <9> 10jan2000 dlb extensive - see changes.340 S 18 * <8> 04nov1999 cdl added killed_by 19 * <7> 29sep1999 BCR Added comments showing where uniques are 20 * <6> 25sep1999 CDL Added commands 21 * <5> 09sep1999 BWR Removed Great Swords skill 22 * <4> 06aug1999 BWR added branch and level types 23 * <3> 02jun1999 DML beams, clouds, ench, ms, kill, 24 * other minor changes 25 * <2> 26may1999 JDJ Added a header guard. 26 * <1> --/--/-- CDL Created 27 */ 28 29 30 #ifndef ENUM_H 31 #define ENUM_H 32 33 enum ABILITIES 34 { 35 ABIL_NON_ABILITY = -1, 36 ABIL_SPIT_POISON = 1, // 1 37 ABIL_GLAMOUR, 38 ABIL_MAPPING, 39 ABIL_TELEPORTATION, 40 ABIL_BREATHE_FIRE, // 5 41 ABIL_BLINK, 42 ABIL_BREATHE_FROST, 43 ABIL_BREATHE_POISON, 44 ABIL_BREATHE_LIGHTNING, 45 ABIL_SPIT_ACID, // 10 46 ABIL_BREATHE_POWER, 47 ABIL_EVOKE_BERSERK, 48 ABIL_BREATHE_STICKY_FLAME, 49 ABIL_BREATHE_STEAM, 50 ABIL_FLY, // 15 51 ABIL_SUMMON_MINOR_DEMON, 52 ABIL_SUMMON_DEMON, 53 ABIL_HELLFIRE, 54 ABIL_TORMENT, 55 ABIL_RAISE_DEAD, // 20 56 ABIL_CONTROL_DEMON, 57 ABIL_TO_PANDEMONIUM, 58 ABIL_CHANNELING, 59 ABIL_THROW_FLAME, 60 ABIL_THROW_FROST, // 25 61 ABIL_BOLT_OF_DRAINING, 62 ABIL_BREATHE_HELLFIRE, 63 ABIL_FLY_II, 64 ABIL_DELAYED_FIREBALL, 65 ABIL_MUMMY_RESTORATION, // 30 66 ABIL_EVOKE_MAPPING, 67 ABIL_EVOKE_TELEPORTATION, 68 ABIL_EVOKE_BLINK, // 33 69 ABIL_EVOKE_TURN_INVISIBLE = 51, // 51 70 ABIL_EVOKE_TURN_VISIBLE, 71 ABIL_EVOKE_LEVITATE, 72 ABIL_EVOKE_STOP_LEVITATING, 73 ABIL_END_TRANSFORMATION, // 55 74 ABIL_ZIN_REPEL_UNDEAD = 110, // 110 75 ABIL_ZIN_HEALING, 76 ABIL_ZIN_PESTILENCE, 77 ABIL_ZIN_HOLY_WORD, 78 ABIL_ZIN_SUMMON_GUARDIAN, // 114 79 ABIL_TSO_REPEL_UNDEAD = 120, // 120 80 ABIL_TSO_SMITING, 81 ABIL_TSO_ANNIHILATE_UNDEAD, 82 ABIL_TSO_THUNDERBOLT, 83 ABIL_TSO_SUMMON_DAEVA, // 124 84 ABIL_KIKU_RECALL_UNDEAD_SLAVES = 130, // 130 85 ABIL_KIKU_ENSLAVE_UNDEAD = 132, // 132 86 ABIL_KIKU_INVOKE_DEATH, // 133 87 ABIL_YRED_ANIMATE_CORPSE = 140, // 140 88 ABIL_YRED_RECALL_UNDEAD, 89 ABIL_YRED_ANIMATE_DEAD, 90 ABIL_YRED_DRAIN_LIFE, 91 ABIL_YRED_CONTROL_UNDEAD, // 144 92 ABIL_VEHUMET_CHANNEL_ENERGY = 160, // 160 93 ABIL_OKAWARU_MIGHT = 170, // 170 94 ABIL_OKAWARU_HEALING, 95 ABIL_OKAWARU_HASTE, // 172 96 ABIL_MAKHLEB_MINOR_DESTRUCTION = 180, // 180 97 ABIL_MAKHLEB_LESSER_SERVANT_OF_MAKHLEB, 98 ABIL_MAKHLEB_MAJOR_DESTRUCTION, 99 ABIL_MAKHLEB_GREATER_SERVANT_OF_MAKHLEB, // 183 100 ABIL_SIF_MUNA_FORGET_SPELL = 190, // 190 101 ABIL_TROG_BERSERK = 200, // 200 102 ABIL_TROG_MIGHT, 103 ABIL_TROG_HASTE_SELF, // 202 104 ABIL_ELYVILON_LESSER_HEALING = 220, // 220 105 ABIL_ELYVILON_PURIFICATION, 106 ABIL_ELYVILON_HEALING, 107 ABIL_ELYVILON_RESTORATION, 108 ABIL_ELYVILON_GREATER_HEALING, // 224 109 ABIL_CHARM_SNAKE, 110 ABIL_TRAN_SERPENT_OF_HELL, 111 ABIL_ROTTING, 112 ABIL_TORMENT_II, 113 ABIL_SHUGGOTH_SEED, 114 ABIL_RENOUNCE_RELIGION = 250 // 250 115 }; 116 117 enum ABILITY_FLAGS 118 { 119 ABFLAG_NONE = 0x00000000, 120 ABFLAG_BREATH = 0x00000001, // ability uses DUR_BREATH_WEAPON 121 ABFLAG_DELAY = 0x00000002, // ability has its own delay (ie glamour) 122 ABFLAG_PAIN = 0x00000004, // ability must hurt player (ie torment) 123 ABFLAG_EXHAUSTION = 0x00000008, // fails if you.exhausted 124 ABFLAG_INSTANT = 0x00000010, // doesn't take time to use 125 ABFLAG_PERMANENT_HP = 0x00000020, // costs permanent HPs 126 ABFLAG_PERMANENT_MP = 0x00000040 // costs permanent MPs 127 }; 128 129 enum AMMUNITION_DESCRIPTIONS 130 { 131 DAMMO_ORCISH = 3, // 3 132 DAMMO_ELVEN, 133 DAMMO_DWARVEN // 5 134 }; 135 136 enum ARMOUR 137 { 138 ARM_ROBE, // 0 139 ARM_LEATHER_ARMOUR, 140 ARM_RING_MAIL, 141 ARM_SCALE_MAIL, 142 ARM_CHAIN_MAIL, 143 ARM_SPLINT_MAIL, // 5 144 ARM_BANDED_MAIL, 145 ARM_PLATE_MAIL, 146 ARM_SHIELD, 147 ARM_CLOAK, 148 ARM_HELMET, // 10 149 ARM_GLOVES, 150 ARM_BOOTS, 151 ARM_BUCKLER, 152 ARM_LARGE_SHIELD, 153 ARM_DRAGON_HIDE, // 15 154 ARM_TROLL_HIDE, 155 ARM_CRYSTAL_PLATE_MAIL, 156 ARM_DRAGON_ARMOUR, 157 ARM_TROLL_LEATHER_ARMOUR, 158 ARM_ICE_DRAGON_HIDE, // 20 159 ARM_ICE_DRAGON_ARMOUR, 160 ARM_STEAM_DRAGON_HIDE, 161 ARM_STEAM_DRAGON_ARMOUR, 162 ARM_MOTTLED_DRAGON_HIDE, 163 ARM_MOTTLED_DRAGON_ARMOUR, // 25 164 ARM_STORM_DRAGON_HIDE, 165 ARM_STORM_DRAGON_ARMOUR, 166 ARM_GOLD_DRAGON_HIDE, 167 ARM_GOLD_DRAGON_ARMOUR, 168 ARM_ANIMAL_SKIN, // 30 169 ARM_SWAMP_DRAGON_HIDE, 170 ARM_SWAMP_DRAGON_ARMOUR, 171 NUM_ARMOURS 172 }; 173 174 enum ARMOUR_DESCRIPTIONS 175 { 176 DARM_PLAIN, // added for the heck of it, 15 Apr 2000 {dlb} 177 DARM_EMBROIDERED_SHINY = 1, // which it is dependent upon armour subtype {dlb} 178 DARM_RUNED, 179 DARM_GLOWING, 180 DARM_ELVEN, 181 DARM_DWARVEN, // 5 182 DARM_ORCISH 183 }; 184 185 enum ARMOUR_PROPERTIES 186 { 187 PARM_AC, // 0 188 PARM_EVASION 189 }; 190 191 // Note: currently the size of the attr array is hard coded at 30! ick! -- bwr 192 enum ATTRIBUTES 193 { 194 ATTR_DIVINE_LIGHTNING_PROTECTION, // 0 195 // ATTR_SPEC_AIR, // don't use this! 196 // ATTR_SPEC_EARTH, 197 ATTR_CONTROL_TELEPORT = 3, 198 ATTR_WALK_SLOWLY, 199 ATTR_TRANSFORMATION, // 5 200 ATTR_CARD_COUNTDOWN, 201 ATTR_CARD_TABLE, 202 ATTR_NUM_DEMONIC_POWERS, 203 ATTR_WAS_SILENCED, //jmf: added for silenced messages 204 ATTR_GOD_GIFT_COUNT, //jmf: added to help manage god gift giving 205 ATTR_EXPENSIVE_FLIGHT, //jmf: flag for "manual flight" (ie wings) 206 ATTR_DEMONIC_SCALES, //jmf: remember which kind of scales to improve 207 ATTR_WALLS, 208 ATTR_LAST_WALLS, 209 ATTR_DELAYED_FIREBALL, // bwr: reserve fireballs 210 NUM_ATTRIBUTES // must always remain last member {dlb} 211 }; 212 213 enum BANDS 214 { 215 BAND_NO_BAND = 0, 216 BAND_KOBOLDS = 1, 217 BAND_ORCS, 218 BAND_ORC_KNIGHT, 219 BAND_KILLER_BEES, 220 BAND_FLYING_SKULLS, // 5 221 BAND_SLIME_CREATURES, 222 BAND_YAKS, 223 BAND_UGLY_THINGS, 224 BAND_HELL_HOUNDS, 225 BAND_JACKALS, // 10 226 BAND_HELL_KNIGHTS, 227 BAND_ORC_HIGH_PRIEST, 228 BAND_GNOLLS, // 13 229 BAND_BUMBLEBEES = 16, 230 BAND_CENTAURS, 231 BAND_YAKTAURS, 232 BAND_INSUBSTANTIAL_WISPS, 233 BAND_OGRE_MAGE, // 20 234 BAND_DEATH_YAKS, 235 BAND_NECROMANCER, 236 BAND_BALRUG, 237 BAND_CACODEMON, 238 BAND_EXECUTIONER, // 25 239 BAND_HELLWING, 240 BAND_DEEP_ELF_FIGHTER, 241 BAND_DEEP_ELF_KNIGHT, 242 BAND_DEEP_ELF_HIGH_PRIEST, 243 BAND_KOBOLD_DEMONOLOGIST, // 30 244 BAND_NAGAS, 245 BAND_WAR_DOGS, 246 BAND_GREY_RATS, 247 BAND_GREEN_RATS, 248 BAND_ORANGE_RATS, // 35 249 BAND_SHEEP, 250 BAND_GHOULS, 251 BAND_DEEP_TROLLS, 252 BAND_HOGS, 253 BAND_HELL_HOGS, // 40 254 BAND_GIANT_MOSQUITOES, 255 BAND_BOGGARTS, 256 BAND_BLINK_FROGS, 257 BAND_SKELETAL_WARRIORS, // 44 258 NUM_BANDS // always last 259 }; 260 261 enum BEAMS // beam[].flavour 262 { 263 BEAM_MISSILE, // 0 264 BEAM_MMISSILE, // 1 - and similarly unresistable things 265 BEAM_FIRE, 266 BEAM_COLD, 267 BEAM_MAGIC, 268 BEAM_ELECTRICITY, // 5 269 BEAM_POISON, 270 BEAM_NEG, 271 BEAM_ACID, // 8 272 BEAM_EXPLOSION = 10, // 10 273 BEAM_SPORE, // 11 274 BEAM_POISON_ARROW, // 12 275 BEAM_HELLFIRE, // 13 - found 11jan2000 {dlb} 276 BEAM_ENERGY = 17, 277 BEAM_HOLY = 18, // 18 - aka beam of cleansing, golden flame 278 BEAM_FRAG, 279 BEAM_LAVA, // 20 280 BEAM_BACKLIGHT, 281 BEAM_SLEEP, 282 BEAM_ICE, // 23 283 BEAM_NUKE = 27, // 27 284 BEAM_RANDOM, // currently translates into FIRE..ACID 285 286 // These used to be handled in the colour field: 287 BEAM_SLOW, // BLACK 288 BEAM_HASTE, // BLUE 289 BEAM_HEALING, // GREEN 290 BEAM_PARALYSIS, // CYAN 291 BEAM_CONFUSION, // RED 292 BEAM_INVISIBILITY, // MAGENTA 293 BEAM_DIGGING, // BROWN 294 BEAM_TELEPORT, // LIGHTGREY 295 BEAM_POLYMORPH, // DARKGREY 296 BEAM_CHARM, // LIGHTBLUE 297 BEAM_BANISH, // LIGHTGREEN 298 BEAM_DEGENERATE, // LIGHTCYAN 299 BEAM_ENSLAVE_UNDEAD, // LIGHTRED 300 BEAM_PAIN, // LIGHTMAGENTA 301 BEAM_DISPEL_UNDEAD, // YELLOW 302 BEAM_DISINTEGRATION, // WHITE 303 BEAM_ENSLAVE_DEMON, // colour "16" 304 305 // new beams for evaporate 306 BEAM_POTION_STINKING_CLOUD, 307 BEAM_POTION_POISON, 308 BEAM_POTION_MIASMA, 309 BEAM_POTION_STEAM, 310 BEAM_POTION_FIRE, 311 BEAM_POTION_COLD, 312 BEAM_POTION_BLACK_SMOKE, 313 BEAM_POTION_BLUE_SMOKE, 314 BEAM_POTION_PURP_SMOKE, 315 BEAM_POTION_RANDOM 316 }; 317 318 enum BOOKS 319 { 320 BOOK_MINOR_MAGIC_I, // 0 321 BOOK_MINOR_MAGIC_II, 322 BOOK_MINOR_MAGIC_III, 323 BOOK_CONJURATIONS_I, 324 BOOK_CONJURATIONS_II, 325 BOOK_FLAMES, // 5 326 BOOK_FROST, 327 BOOK_SUMMONINGS, 328 BOOK_FIRE, 329 BOOK_ICE, 330 BOOK_SURVEYANCES, // 10 331 BOOK_SPATIAL_TRANSLOCATIONS, 332 BOOK_ENCHANTMENTS, 333 BOOK_YOUNG_POISONERS, 334 BOOK_TEMPESTS, 335 BOOK_DEATH, // 15 336 BOOK_HINDERANCE, 337 BOOK_CHANGES, 338 BOOK_TRANSFIGURATIONS, 339 BOOK_PRACTICAL_MAGIC, 340 BOOK_WAR_CHANTS, // 20 341 BOOK_CLOUDS, 342 BOOK_HEALING, 343 BOOK_NECROMANCY, 344 BOOK_NECRONOMICON, 345 BOOK_CALLINGS, // 25 346 BOOK_CHARMS, 347 BOOK_DEMONOLOGY, 348 BOOK_AIR, 349 BOOK_SKY, 350 BOOK_DIVINATIONS, // 30 351 BOOK_WARP, 352 BOOK_ENVENOMATIONS, 353 BOOK_ANNIHILATIONS, 354 BOOK_UNLIFE, 355 BOOK_DESTRUCTION, // 35 356 BOOK_CONTROL, 357 BOOK_MUTATIONS, 358 BOOK_TUKIMA, 359 BOOK_GEOMANCY, 360 BOOK_EARTH, // 40 361 BOOK_MANUAL, 362 BOOK_WIZARDRY, 363 BOOK_POWER, 364 BOOK_CANTRIPS, //jmf: 04jan2000 365 BOOK_PARTY_TRICKS, // 45 //jmf: 04jan2000 366 BOOK_BEASTS, 367 BOOK_STALKING, // renamed -- assassination was confusing -- bwr 368 NUM_BOOKS 369 }; 370 371 enum BRANCHES // you.where_are_you 372 { 373 BRANCH_MAIN_DUNGEON, // 0 374 BRANCH_DIS, 375 BRANCH_GEHENNA, 376 BRANCH_VESTIBULE_OF_HELL, 377 BRANCH_COCYTUS, 378 BRANCH_TARTARUS, // 5 379 BRANCH_INFERNO, // unimplemented 380 BRANCH_THE_PIT, // 7 // unimplemented 381 BRANCH_ORCISH_MINES = 10, // 10 382 BRANCH_HIVE, 383 BRANCH_LAIR, 384 BRANCH_SLIME_PITS, 385 BRANCH_VAULTS, 386 BRANCH_CRYPT, // 15 387 BRANCH_HALL_OF_BLADES, 388 BRANCH_HALL_OF_ZOT, 389 BRANCH_ECUMENICAL_TEMPLE, 390 BRANCH_SNAKE_PIT, 391 BRANCH_ELVEN_HALLS, // 20 392 BRANCH_TOMB, 393 BRANCH_SWAMP 394 }; 395 396 enum BRANCH_STAIRS // you.branch_stairs[] - 10 less than BRANCHES {dlb} 397 { 398 STAIRS_ORCISH_MINES, // 0 399 STAIRS_HIVE, 400 STAIRS_LAIR, 401 STAIRS_SLIME_PITS, 402 STAIRS_VAULTS, 403 STAIRS_CRYPT, // 5 404 STAIRS_HALL_OF_BLADES, 405 STAIRS_HALL_OF_ZOT, 406 STAIRS_ECUMENICAL_TEMPLE, 407 STAIRS_SNAKE_PIT, 408 STAIRS_ELVEN_HALLS, // 10 409 STAIRS_TOMB, 410 STAIRS_SWAMP 411 }; 412 413 enum BURDEN_STATES // you.burden_state 414 { 415 BS_UNENCUMBERED, // 0 416 BS_ENCUMBERED = 2, // 2 417 BS_OVERLOADED = 5 // 5 418 }; 419 420 enum CANNED_MESSAGES // canned_msg() - unsigned char 421 { 422 MSG_SOMETHING_APPEARS, // 0 423 MSG_NOTHING_HAPPENS, 424 MSG_YOU_RESIST, 425 MSG_TOO_BERSERK, 426 MSG_NOTHING_CARRIED, 427 MSG_CANNOT_DO_YET, 428 MSG_OK, 429 MSG_UNTHINKING_ACT, 430 MSG_SPELL_FIZZLES, 431 MSG_HUH, 432 MSG_EMPTY_HANDED 433 }; 434 435 enum CLOUD_TYPES // cloud_type[], place_cloud(), big_cloud() 436 { 437 CLOUD_NONE, // 0 438 CLOUD_FIRE, // 1 439 CLOUD_STINK, // 2 440 CLOUD_COLD, // 3 441 CLOUD_POISON, // 4 442 CLOUD_GREY_SMOKE = 5, // 5: found 11jan2000 {dlb} 443 CLOUD_BLUE_SMOKE = 6, // 6: found 11jan2000 {dlb} 444 CLOUD_PURP_SMOKE = 7, // was: CLOUD_ENERGY and wrong 19jan2000 {dlb} 445 CLOUD_STEAM, // 8 446 CLOUD_MIASMA = 9, // 9: found 11jan2000 {dlb} 447 CLOUD_BLACK_SMOKE = 10, //was: CLOUD_STICKY_FLAME and wrong 19jan2000 {dlb} 448 CLOUD_DEBUGGING = 99, // 99: used once as 'nonexistent cloud' {dlb} 449 // if env.cloud_type > 100, it is a monster's cloud {dlb} 450 CLOUD_FIRE_MON = 101, // 101: found 11jan2000 {dlb} 451 CLOUD_STINK_MON = 102, // 102: found 11jan2000 {dlb} 452 CLOUD_COLD_MON = 103, // 103: added 11jan2000 {dlb} 453 CLOUD_POISON_MON = 104, // 104 454 CLOUD_GREY_SMOKE_MON = 105, // 105: found 11jan2000 {dlb} 455 CLOUD_BLUE_SMOKE_MON = 106, // 106: found 11jan2000 {dlb} 456 CLOUD_PURP_SMOKE_MON = 107, // 107: 457 CLOUD_STEAM_MON = 108, // 108: added 11jan2000 {dlb} 458 CLOUD_MIASMA_MON = 109, // 109: added 11jan2000 {dlb} 459 CLOUD_BLACK_SMOKE_MON = 110 // 110: added 19jan2000 {dlb} 460 }; 461 462 enum COMMANDS 463 { 464 CMD_NO_CMD = 1000, // 1000 465 CMD_MOVE_NOWHERE, 466 CMD_MOVE_LEFT, 467 CMD_MOVE_DOWN, 468 CMD_MOVE_UP, 469 CMD_MOVE_RIGHT, 470 CMD_MOVE_UP_LEFT, 471 CMD_MOVE_DOWN_LEFT, 472 CMD_MOVE_UP_RIGHT, 473 CMD_MOVE_DOWN_RIGHT, 474 CMD_RUN_LEFT, // 1000 + 10 475 CMD_RUN_DOWN, 476 CMD_RUN_UP, 477 CMD_RUN_RIGHT, 478 CMD_RUN_UP_LEFT, 479 CMD_RUN_DOWN_LEFT, 480 CMD_RUN_UP_RIGHT, 481 CMD_RUN_DOWN_RIGHT, 482 CMD_OPEN_DOOR_LEFT, 483 CMD_OPEN_DOOR_DOWN, 484 CMD_OPEN_DOOR_UP, // 1000 + 20 485 CMD_OPEN_DOOR_RIGHT, 486 CMD_OPEN_DOOR_UP_LEFT, 487 CMD_OPEN_DOOR_DOWN_LEFT, 488 CMD_OPEN_DOOR_UP_RIGHT, 489 CMD_OPEN_DOOR_DOWN_RIGHT, 490 CMD_OPEN_DOOR, 491 CMD_CLOSE_DOOR, 492 CMD_REST, 493 CMD_GO_UPSTAIRS, 494 CMD_GO_DOWNSTAIRS, // 1000 + 30 495 CMD_TOGGLE_AUTOPICKUP, 496 CMD_PICKUP, 497 CMD_DROP, 498 CMD_BUTCHER, 499 CMD_INSPECT_FLOOR, 500 CMD_EXAMINE_OBJECT, 501 CMD_EVOKE, 502 CMD_WIELD_WEAPON, 503 CMD_WEAPON_SWAP, 504 CMD_THROW, // 1000 + 40 505 CMD_FIRE, 506 CMD_WEAR_ARMOUR, 507 CMD_REMOVE_ARMOUR, 508 CMD_WEAR_JEWELLERY, 509 CMD_REMOVE_JEWELLERY, 510 CMD_LIST_WEAPONS, 511 CMD_LIST_ARMOUR, 512 CMD_LIST_JEWELLERY, 513 CMD_ZAP_WAND, 514 CMD_CAST_SPELL, // 1000 + 50 515 CMD_MEMORISE_SPELL, 516 CMD_USE_ABILITY, 517 CMD_PRAY, 518 CMD_EAT, 519 CMD_QUAFF, 520 CMD_READ, 521 CMD_LOOK_AROUND, 522 CMD_SEARCH, 523 CMD_SHOUT, 524 CMD_DISARM_TRAP, // 1000 + 60 525 CMD_CHARACTER_DUMP, 526 CMD_DISPLAY_COMMANDS, 527 CMD_DISPLAY_INVENTORY, 528 CMD_DISPLAY_KNOWN_OBJECTS, 529 CMD_DISPLAY_MUTATIONS, 530 CMD_DISPLAY_SKILLS, 531 CMD_DISPLAY_MAP, 532 CMD_DISPLAY_OVERMAP, 533 CMD_DISPLAY_RELIGION, 534 CMD_DISPLAY_CHARACTER_STATUS, // 1000 + 70 535 CMD_EXPERIENCE_CHECK, 536 CMD_GET_VERSION, 537 CMD_ADJUST_INVENTORY, 538 CMD_REPLAY_MESSAGES, 539 CMD_REDRAW_SCREEN, 540 CMD_MACRO_ADD, 541 CMD_MACRO_SAVE, 542 CMD_SAVE_GAME, 543 CMD_SAVE_GAME_NOW, 544 CMD_SUSPEND_GAME, // 1000 + 80 545 CMD_QUIT, 546 CMD_WIZARD, 547 CMD_DESTROY_ITEM, 548 CMD_OBSOLETE_INVOKE 549 }; 550 551 enum CONFIRM_LEVEL 552 { 553 CONFIRM_NONE_EASY, 554 CONFIRM_SAFE_EASY, 555 CONFIRM_ALL_EASY 556 }; 557 558 enum CORPSE_EFFECTS 559 { 560 CE_NOCORPSE, // 0 561 CE_CLEAN, // 1 562 CE_CONTAMINATED, // 2 563 CE_POISONOUS, // 3 564 CE_HCL, // 4 565 CE_MUTAGEN_RANDOM, // 5 566 CE_MUTAGEN_GOOD, // 6 - may be worth implementing {dlb} 567 CE_MUTAGEN_BAD, // 7 - may be worth implementing {dlb} 568 CE_RANDOM, // 8 - not used, but may be worth implementing {dlb} 569 CE_ROTTEN = 50 // 50 - must remain at 50 for now {dlb} 570 }; 571 572 enum CORPSES 573 { 574 CORPSE_BODY, // 0 575 CORPSE_SKELETON 576 }; 577 578 enum DEATH_KNIGHT_CHOICES 579 { 580 DK_NO_SELECTION, 581 DK_NECROMANCY, 582 DK_YREDELEMNUL, 583 DK_RANDOM 584 }; 585 586 enum DECKS 587 { 588 DECK_OF_WONDERS, // 0 589 DECK_OF_SUMMONING, 590 DECK_OF_TRICKS, 591 DECK_OF_POWER, 592 DECK_OF_PUNISHMENT 593 }; 594 595 enum DELAY 596 { 597 DELAY_NOT_DELAYED, 598 DELAY_EAT, 599 DELAY_ARMOUR_ON, 600 DELAY_ARMOUR_OFF, 601 DELAY_MEMORIZE, 602 DELAY_BUTCHER, 603 DELAY_AUTOPICKUP, 604 DELAY_WEAPON_SWAP, // for easy_butcher 605 DELAY_PASSWALL, 606 DELAY_DROP_ITEM, 607 DELAY_ASCENDING_STAIRS, 608 DELAY_DESCENDING_STAIRS, 609 DELAY_INTERUPTABLE = 100, // simple interuptable delay 610 DELAY_UNINTERUPTABLE // simple uninteruptable delay 611 }; 612 613 enum DEMON_BEAMS 614 { 615 DMNBM_HELLFIRE, // 0 616 DMNBM_SMITING, 617 DMNBM_BRAIN_FEED, 618 DMNBM_MUTATION 619 }; 620 621 enum DEMON_CLASSES // summon_any_demon() 622 { 623 DEMON_LESSER, // 0: Class V 624 DEMON_COMMON, // 1: Class II-IV 625 DEMON_GREATER // 2: Class I 626 }; 627 628 enum DESCRIPTION_LEVEL 629 { 630 DESC_CAP_THE, // 0 631 DESC_NOCAP_THE, // 1 632 DESC_CAP_A, // 2 633 DESC_NOCAP_A, // 3 634 DESC_CAP_YOUR, // 4 635 DESC_NOCAP_YOUR, // 5 636 DESC_PLAIN, // 6 637 DESC_NOCAP_ITS, // 7 638 DESC_INVENTORY_EQUIP, // 8 639 DESC_INVENTORY // 8 640 }; 641 642 enum DIRECTION // (unsigned char) you.char_direction 643 { 644 DIR_DESCENDING = 0, // 0 - change and lose savefile compatibility (!!!) 645 DIR_ASCENDING = 1 // 1 - change and lose savefile compatibility (!!!) 646 }; 647 648 enum DUNGEON_FEATURES // (unsigned char) grd[][] 649 { 650 DNGN_UNSEEN, // 0 651 DNGN_ROCK_WALL, 652 DNGN_STONE_WALL, 653 DNGN_CLOSED_DOOR, 654 DNGN_METAL_WALL, 655 DNGN_SECRET_DOOR, // 5 656 DNGN_GREEN_CRYSTAL_WALL, 657 DNGN_ORCISH_IDOL, 658 DNGN_WAX_WALL, // 8 659 DNGN_PERMAROCK_WALL, // 9 - for undiggable walls 660 DNGN_LAST_SOLID_TILE = 10, // 10 - just here temporarily {dlb} 661 662 DNGN_LAVA_X = 11, // 11 663 DNGN_WATER_X, // 12 664 DNGN_SILVER_STATUE = 21, // 21 665 DNGN_GRANITE_STATUE, 666 DNGN_ORANGE_CRYSTAL_STATUE, // 23 667 DNGN_STATUE_39 = 39, // 39 668 669 DNGN_LAVA = 61, // 61 670 DNGN_DEEP_WATER, // 62 671 DNGN_SHALLOW_WATER = 65, // 65 672 DNGN_WATER_STUCK, 673 674 DNGN_FLOOR, // 67 675 DNGN_ENTER_HELL = 69, // 69 676 DNGN_OPEN_DOOR, // 70 677 DNGN_BRANCH_STAIRS, // 71 678 DNGN_TRAP_MECHANICAL = 75, // 75 679 DNGN_TRAP_MAGICAL, 680 DNGN_TRAP_III, 681 DNGN_UNDISCOVERED_TRAP, // 78 682 683 DNGN_ENTER_SHOP = 80, // 80 684 DNGN_ENTER_LABYRINTH, 685 686 DNGN_STONE_STAIRS_DOWN_I, 687 DNGN_STONE_STAIRS_DOWN_II, 688 DNGN_STONE_STAIRS_DOWN_III, 689 DNGN_ROCK_STAIRS_DOWN, // 85 - was this supposed to be a ladder? {dlb} 690 691 DNGN_STONE_STAIRS_UP_I, 692 DNGN_STONE_STAIRS_UP_II, 693 DNGN_STONE_STAIRS_UP_III, 694 DNGN_ROCK_STAIRS_UP, // 89 - was this supposed to be a ladder? {dlb} 695 696 DNGN_ENTER_DIS = 92, // 92 697 DNGN_ENTER_GEHENNA, 698 DNGN_ENTER_COCYTUS, 699 DNGN_ENTER_TARTARUS, // 95 700 DNGN_ENTER_ABYSS, 701 DNGN_EXIT_ABYSS, 702 DNGN_STONE_ARCH, 703 DNGN_ENTER_PANDEMONIUM, 704 DNGN_EXIT_PANDEMONIUM, // 100 705 DNGN_TRANSIT_PANDEMONIUM, // 101 706 707 DNGN_BUILDER_SPECIAL_WALL = 105, // 105; builder() only 708 DNGN_BUILDER_SPECIAL_FLOOR, // 106; builder() only 709 710 DNGN_ENTER_ORCISH_MINES = 110, // 110 711 DNGN_ENTER_HIVE, 712 DNGN_ENTER_LAIR, 713 DNGN_ENTER_SLIME_PITS, 714 DNGN_ENTER_VAULTS, 715 DNGN_ENTER_CRYPT, // 115 716 DNGN_ENTER_HALL_OF_BLADES, 717 DNGN_ENTER_ZOT, 718 DNGN_ENTER_TEMPLE, 719 DNGN_ENTER_SNAKE_PIT, 720 DNGN_ENTER_ELVEN_HALLS, // 120 721 DNGN_ENTER_TOMB, 722 DNGN_ENTER_SWAMP, // 122 723 724 DNGN_RETURN_FROM_ORCISH_MINES = 130, // 130 725 DNGN_RETURN_FROM_HIVE, 726 DNGN_RETURN_FROM_LAIR, 727 DNGN_RETURN_FROM_SLIME_PITS, 728 DNGN_RETURN_FROM_VAULTS, 729 DNGN_RETURN_FROM_CRYPT, // 135 730 DNGN_RETURN_FROM_HALL_OF_BLADES, 731 DNGN_RETURN_FROM_ZOT, 732 DNGN_RETURN_FROM_TEMPLE, 733 DNGN_RETURN_FROM_SNAKE_PIT, 734 DNGN_RETURN_FROM_ELVEN_HALLS, // 140 735 DNGN_RETURN_FROM_TOMB, 736 DNGN_RETURN_FROM_SWAMP, // 142 737 738 DNGN_ALTAR_ZIN = 180, // 180 739 DNGN_ALTAR_SHINING_ONE, 740 DNGN_ALTAR_KIKUBAAQUDGHA, 741 DNGN_ALTAR_YREDELEMNUL, 742 DNGN_ALTAR_XOM, 743 DNGN_ALTAR_VEHUMET, // 185 744 DNGN_ALTAR_OKAWARU, 745 DNGN_ALTAR_MAKHLEB, 746 DNGN_ALTAR_SIF_MUNA, 747 DNGN_ALTAR_TROG, 748 DNGN_ALTAR_NEMELEX_XOBEH, // 190 749 DNGN_ALTAR_ELYVILON, // 191 750 751 DNGN_BLUE_FOUNTAIN = 200, // 200 752 DNGN_DRY_FOUNTAIN_I, 753 DNGN_SPARKLING_FOUNTAIN, // aka 'Magic Fountain' {dlb} 754 DNGN_DRY_FOUNTAIN_II, 755 DNGN_DRY_FOUNTAIN_III, 756 DNGN_DRY_FOUNTAIN_IV, // 205 757 DNGN_DRY_FOUNTAIN_V, 758 DNGN_DRY_FOUNTAIN_VI, 759 DNGN_DRY_FOUNTAIN_VII, 760 DNGN_DRY_FOUNTAIN_VIII, 761 DNGN_PERMADRY_FOUNTAIN = 210 // added (from dungeon.cc/maps.cc) 22jan2000 {dlb} 762 }; 763 764 enum DURATIONS // you.duration[] 765 { 766 DUR_LIQUID_FLAMES, // 0 767 DUR_ICY_ARMOUR, 768 DUR_REPEL_MISSILES, 769 DUR_PRAYER, 770 DUR_REGENERATION, 771 DUR_SWIFTNESS, // 5 772 DUR_INSULATION, 773 DUR_STONEMAIL, 774 DUR_CONTROLLED_FLIGHT, 775 DUR_TELEPORT, 776 DUR_CONTROL_TELEPORT, // 10 777 DUR_RESIST_POISON, 778 DUR_BREATH_WEAPON, 779 DUR_TRANSFORMATION, 780 DUR_DEATH_CHANNEL, 781 DUR_DEFLECT_MISSILES, // 15 782 //jmf: new durations: 783 DUR_FORESCRY, 784 DUR_SEE_INVISIBLE, 785 DUR_WEAPON_BRAND, // general "branding" spell counter 786 DUR_SILENCE, 787 DUR_GLAMOUR, // 20 788 DUR_SHUGGOTH_SEED_RELOAD, 789 DUR_INFECTED_SHUGGOTH_SEED, 790 DUR_CONDENSATION_SHIELD, // 23 791 DUR_STONESKIN, 792 DUR_REPEL_UNDEAD, // 25 793 DUR_LAST_DUR, //jmf: for asserts 794 NUM_DURATIONS = 30 795 // set at 30 to prevent savefile incompatibilities 12mar2000{dlb} 796 }; 797 798 enum ENCHANTMENT // menv[].enchantment[] 799 { 800 ENCH_NONE = 0, // 0 801 ENCH_SLOW, 802 ENCH_HASTE, // 2 803 ENCH_FEAR = 4, // 4 804 ENCH_CONFUSION, // 5 805 ENCH_INVIS, 806 ENCH_YOUR_POISON_I, 807 ENCH_YOUR_POISON_II, 808 ENCH_YOUR_POISON_III, 809 ENCH_YOUR_POISON_IV, // 10 810 ENCH_YOUR_SHUGGOTH_I, //jmf: Shuggothim! 811 ENCH_YOUR_SHUGGOTH_II, 812 ENCH_YOUR_SHUGGOTH_III, 813 ENCH_YOUR_SHUGGOTH_IV, 814 ENCH_YOUR_ROT_I, // 15 //jmf: rotting effect for monsters 815 ENCH_YOUR_ROT_II, 816 ENCH_YOUR_ROT_III, 817 ENCH_YOUR_ROT_IV, 818 ENCH_SUMMON = 19, // 19 819 ENCH_ABJ_I, // 20 820 ENCH_ABJ_II, 821 ENCH_ABJ_III, 822 ENCH_ABJ_IV, 823 ENCH_ABJ_V, 824 ENCH_ABJ_VI, // 25 825 ENCH_BACKLIGHT_I, //jmf: backlight for Corona spell 826 ENCH_BACKLIGHT_II, 827 ENCH_BACKLIGHT_III, 828 ENCH_BACKLIGHT_IV, 829 ENCH_CHARM = 30, // 30 830 ENCH_YOUR_STICKY_FLAME_I, 831 ENCH_YOUR_STICKY_FLAME_II, 832 ENCH_YOUR_STICKY_FLAME_III, 833 ENCH_YOUR_STICKY_FLAME_IV, // 34 834 ENCH_GLOWING_SHAPESHIFTER = 38, // 38 835 ENCH_SHAPESHIFTER, 836 ENCH_TP_I, // 40 837 ENCH_TP_II, 838 ENCH_TP_III, 839 ENCH_TP_IV, // 43 840 ENCH_POISON_I = 57, // 57 841 ENCH_POISON_II, 842 ENCH_POISON_III, 843 ENCH_POISON_IV, // 60 844 ENCH_STICKY_FLAME_I, 845 ENCH_STICKY_FLAME_II, 846 ENCH_STICKY_FLAME_III, 847 ENCH_STICKY_FLAME_IV, 848 ENCH_FRIEND_ABJ_I, // no longer used 849 ENCH_FRIEND_ABJ_II, // no longer used 850 ENCH_FRIEND_ABJ_III, // no longer used 851 ENCH_FRIEND_ABJ_IV, // no longer used 852 ENCH_FRIEND_ABJ_V, // no longer used 853 ENCH_FRIEND_ABJ_VI, // no longer used 854 ENCH_CREATED_FRIENDLY, // no longer used 855 ENCH_SLEEP_WARY, 856 ENCH_SUBMERGED, // 73 (includes air elementals in air) 857 ENCH_SHORT_LIVED, // 74 for ball lightning 858 NUM_ENCHANTMENTS 859 }; 860 861 enum ENCHANT_STATS 862 { 863 ENCHANT_TO_HIT, 864 ENCHANT_TO_DAM 865 }; 866 867 enum EQUIPMENT 868 { 869 EQ_WEAPON, // 0 870 EQ_CLOAK, 871 EQ_HELMET, 872 EQ_GLOVES, 873 EQ_BOOTS, 874 EQ_SHIELD, // 5 875 EQ_BODY_ARMOUR, 876 EQ_LEFT_RING, 877 EQ_RIGHT_RING, 878 EQ_AMULET, 879 NUM_EQUIP, 880 881 // these aren't actual equipment slots, they're categories for functions 882 EQ_STAFF = 100, // weapon with base_type OBJ_STAVES 883 EQ_RINGS, // check both rings 884 EQ_RINGS_PLUS, // check both rings and sum plus 885 EQ_RINGS_PLUS2, // check both rings and sum plus2 886 EQ_ALL_ARMOUR // check all armour types 887 }; 888 889 enum FIRE_TYPES 890 { 891 FIRE_NONE, 892 FIRE_LAUNCHER, 893 FIRE_DART, 894 FIRE_STONE, 895 FIRE_DAGGER, 896 FIRE_SPEAR, 897 FIRE_HAND_AXE, 898 FIRE_CLUB, 899 NUM_FIRE_TYPES 900 }; 901 902 enum FLUSH_REASONS 903 { 904 FLUSH_ON_FAILURE, // spell/ability failed to cast 905 FLUSH_BEFORE_COMMAND, // flush before getting a command 906 FLUSH_ON_MESSAGE, // flush when printing a message 907 NUM_FLUSH_REASONS 908 }; 909 910 enum FOODS // mitm[].sub_type[] 911 { 912 FOOD_MEAT_RATION, // 0 913 FOOD_BREAD_RATION, 914 FOOD_PEAR, 915 FOOD_APPLE, 916 FOOD_CHOKO, 917 FOOD_HONEYCOMB, // 5 918 FOOD_ROYAL_JELLY, 919 FOOD_SNOZZCUMBER, 920 FOOD_PIZZA, 921 FOOD_APRICOT, 922 FOOD_ORANGE, // 10 923 FOOD_BANANA, 924 FOOD_STRAWBERRY, 925 FOOD_RAMBUTAN, 926 FOOD_LEMON, 927 FOOD_GRAPE, // 15 928 FOOD_SULTANA, 929 FOOD_LYCHEE, 930 FOOD_BEEF_JERKY, 931 FOOD_CHEESE, 932 FOOD_SAUSAGE, // 20 933 FOOD_CHUNK, 934 NUM_FOODS 935 }; 936 937 enum GENUS_PLAYER // see player::player_genus() 938 { 939 GENPC_DRACONIAN, // 0 940 GENPC_ELVEN, // 1 941 GENPC_DWARVEN // 2 942 }; 943 944 enum GENDER 945 { 946 GENDER_NEUTER, 947 GENDER_MALE, 948 GENDER_FEMALE 949 }; 950 951 enum GHOST_VALUES 952 { 953 GVAL_MAX_HP, // 0 954 GVAL_EV, 955 GVAL_AC, 956 GVAL_SEE_INVIS, 957 GVAL_RES_FIRE, 958 GVAL_RES_COLD, // 5 959 GVAL_RES_ELEC, 960 GVAL_DAMAGE, 961 GVAL_BRAND, 962 GVAL_SPECIES, 963 GVAL_BEST_SKILL, // 10 964 GVAL_SKILL_LEVEL, 965 GVAL_EXP_LEVEL, 966 GVAL_CLASS, 967 GVAL_SPELL_1, // 14 968 GVAL_SPELL_2, 969 GVAL_SPELL_3, 970 GVAL_SPELL_4, 971 GVAL_SPELL_5, 972 GVAL_SPELL_6, // 19 973 NUM_GHOST_VALUES, // should always be last value 974 975 // these values are for demonlords, which override the above: 976 GVAL_DEMONLORD_SPELLCASTER = 9, 977 GVAL_DEMONLORD_FLY, // 10 978 GVAL_DEMONLORD_UNUSED, // 11 979 GVAL_DEMONLORD_HIT_DICE, // 12 980 GVAL_DEMONLORD_CYCLE_COLOUR // 13 981 }; 982 983 enum GODS // you.religion 984 { 985 GOD_NO_GOD, // 0 986 GOD_ZIN, 987 GOD_SHINING_ONE, 988 GOD_KIKUBAAQUDGHA, 989 GOD_YREDELEMNUL, 990 GOD_XOM, // 5 991 GOD_VEHUMET, 992 GOD_OKAWARU, 993 GOD_MAKHLEB, 994 GOD_SIF_MUNA, 995 GOD_TROG, // 10 996 GOD_NEMELEX_XOBEH, 997 GOD_ELYVILON, 998 NUM_GODS, // always after last god 999 1000 GOD_RANDOM = 100 1001 }; 1002 1003 enum GOOD_THINGS 1004 { 1005 GOOD_KILLED_LIVING = 1, // 1 - killed a living monster in god's name 1006 GOOD_KILLED_UNDEAD, // 2 - killed an undead in god's name 1007 GOOD_KILLED_DEMON, // 3 - killed a demon in god's name 1008 GOOD_KILLED_ANGEL_I, // 4 - killed an angel (any time) 1009 GOOD_KILLED_ANGEL_II, // 5 - killed an angel in god's name 1010 // (all above pass HD of monster as pgain) 1011 GOOD_HACKED_CORPSE, // 6 - hacked up a corpse in god's name 1012 GOOD_OFFER_STUFF, // 7 - offered inanimate stuff at an altar 1013 GOOD_OFFER_CORPSE, // as above,including at least one corpse 1014 GOOD_SLAVES_KILL_LIVING,// 9 - undead slaves killed a living thing 1015 GOOD_SERVANTS_KILL, // 10 - any servants kill anything 1016 GOOD_CARDS, // 11 - cards (Nemelex) 1017 GOOD_KILLED_WIZARD, 1018 GOOD_KILLED_PRIEST, 1019 GOOD_POISON, 1020 GOOD_ATTACKED_FRIEND, 1021 NUM_GOOD_THINGS 1022 }; 1023 1024 enum HANDS_REQUIRED 1025 { 1026 HANDS_ONE_HANDED = 1, // 1 1027 HANDS_TWO_HANDED, 1028 HANDS_ONE_OR_TWO_HANDED 1029 }; 1030 1031 enum HELMET_TYPES // used in pluses2 1032 { 1033 THELM_HELMET = 0x0000, 1034 THELM_HELM = 0x0001, 1035 THELM_CAP = 0x0002, 1036 THELM_WIZARD_HAT = 0x0003, 1037 THELM_NUM_TYPES = 4, 1038 1039 THELM_SPECIAL = 0x0004, // type used only for artefacts (mask, hat) 1040 THELM_TYPE_MASK = 0x00ff, 1041 1042 1043 THELM_DESC_PLAIN = 0x0000, 1044 THELM_DESC_WINGED = 0x0100, 1045 THELM_DESC_HORNED = 0x0200, 1046 THELM_DESC_CRESTED = 0x0300, 1047 THELM_DESC_PLUMED = 0x0400, 1048 THELM_DESC_SPIKED = 0x0500, 1049 THELM_DESC_VISORED = 0x0600, 1050 THELM_DESC_JEWELLED = 0x0700, 1051 1052 THELM_DESC_MASK = 0xff00 1053 }; 1054 1055 #if 0 1056 enum HELMET_DESCRIPTIONS 1057 { 1058 DHELM_WINGED = 1, // 1 1059 DHELM_HORNED, 1060 DHELM_CRESTED, 1061 DHELM_PLUMED, 1062 DHELM_SPIKED, // 5 1063 DHELM_VISORED, 1064 DHELM_JEWELLED 1065 }; 1066 1067 enum HELMET_TYPES // used in pluses2 1068 { 1069 THELM_HELMET = 0, 1070 THELM_HELM, 1071 THELM_CAP, 1072 THELM_WIZARD_HAT, 1073 NUM_HELMET_TYPES, 1074 THELM_SPECIAL // type used only for artefacts (mask, hat) 1075 }; 1076 #endif 1077 1078 enum BOOT_TYPES // used in pluses2 1079 { 1080 TBOOT_BOOTS = 0, 1081 TBOOT_NAGA_BARDING, 1082 TBOOT_CENTAUR_BARDING, 1083 NUM_BOOT_TYPES 1084 }; 1085 1086 1087 enum HUNGER_STATES // you.hunger_state 1088 { 1089 HS_RAVENOUS, // 0: not used within code, really 1090 HS_STARVING, 1091 HS_HUNGRY, 1092 HS_SATIATED, // "not hungry" state 1093 HS_FULL, 1094 HS_ENGORGED // 5 1095 }; 1096 1097 enum ITEM_STATUS_FLAGS // per item flags: ie. ident status, cursed status 1098 { 1099 ISFLAG_KNOW_CURSE = 0x00000001, // curse status 1100 ISFLAG_KNOW_TYPE = 0x00000002, // artefact name, sub/special types 1101 ISFLAG_KNOW_PLUSES = 0x00000004, // to hit/to dam/to AC/charges 1102 ISFLAG_KNOW_PROPERTIES = 0x00000008, // know special artefact properties 1103 ISFLAG_IDENT_MASK = 0x0000000F, // mask of all id related flags 1104 1105 // these three masks are of the minimal flags set upon using equipment: 1106 ISFLAG_EQ_WEAPON_MASK = 0x0000000B, // mask of flags for weapon equip 1107 ISFLAG_EQ_ARMOUR_MASK = 0x0000000F, // mask of flags for armour equip 1108 ISFLAG_EQ_JEWELLERY_MASK = 0x0000000F, // mask of flags for known jewellery 1109 1110 ISFLAG_CURSED = 0x00000100, // cursed 1111 ISFLAG_RESERVED_1 = 0x00000200, // reserved (re-curses on wield?) 1112 ISFLAG_RESERVED_2 = 0x00000400, // reserved (heavy cursed?) 1113 ISFLAG_RESERVED_3 = 0x00000800, // reserved (perma-cursed?) 1114 ISFLAG_CURSE_MASK = 0x00000F00, // mask of all curse related flags 1115 1116 ISFLAG_RANDART = 0x00001000, // special value is seed 1117 ISFLAG_UNRANDART = 0x00002000, // is an unrandart 1118 ISFLAG_ARTEFACT_MASK = 0x00003000, // randart or unrandart 1119 1120 ISFLAG_NO_DESC = 0x00000000, // used for clearing these flags 1121 ISFLAG_GLOWING = 0x00010000, // weapons or armour 1122 ISFLAG_RUNED = 0x00020000, // weapons or armour 1123 ISFLAG_EMBROIDERED_SHINY = 0x00040000, // armour: depends on sub-type 1124 ISFLAG_COSMETIC_MASK = 0x00070000, // mask of cosmetic descriptions 1125 1126 ISFLAG_NO_RACE = 0x00000000, // used for clearing these flags 1127 ISFLAG_ORCISH = 0x01000000, // low quality items 1128 ISFLAG_DWARVEN = 0x02000000, // strong and robust items 1129 ISFLAG_ELVEN = 0x04000000, // light and accurate items 1130 ISFLAG_RACIAL_MASK = 0x07000000, // mask of racial equipment types 1131 1132 ISFLAG_DEBUG_MARK = 0x80000000 // used for testing item structure 1133 }; 1134 1135 enum ITEM_DESCRIPTIONS 1136 { 1137 IDESC_WANDS, 1138 IDESC_POTIONS, 1139 IDESC_SCROLLS, // special field (like the others) 1140 IDESC_RINGS, 1141 IDESC_SCROLLS_II // pluses field 1142 }; 1143 1144 enum ITEM_MAKE_SPECIES // used only for race during creation 1145 { 1146 MAKE_ITEM_ELVEN = 1, 1147 MAKE_ITEM_DWARVEN = 2, 1148 MAKE_ITEM_ORCISH = 3, 1149 1150 MAKE_ITEM_NO_RACE = 100, 1151 MAKE_ITEM_RANDOM_RACE = 250 1152 }; 1153 1154 enum ITEM_TYPE_ID // used for first index of id[4][50] 1155 { 1156 IDTYPE_WANDS = 0, 1157 IDTYPE_SCROLLS, 1158 IDTYPE_JEWELLERY, 1159 IDTYPE_POTIONS 1160 }; 1161 1162 enum ITEM_TYPE_ID_STATE // used for values in id[4][50] 1163 { 1164 ID_UNKNOWN_TYPE = 0, 1165 ID_KNOWN_TYPE, 1166 ID_TRIED_TYPE 1167 }; 1168 1169 enum JEWELLERY 1170 { 1171 RING_REGENERATION, // 0 1172 RING_PROTECTION, 1173 RING_PROTECTION_FROM_FIRE, 1174 RING_POISON_RESISTANCE, 1175 RING_PROTECTION_FROM_COLD, 1176 RING_STRENGTH, // 5 1177 RING_SLAYING, 1178 RING_SEE_INVISIBLE, 1179 RING_INVISIBILITY, 1180 RING_HUNGER, 1181 RING_TELEPORTATION, // 10 1182 RING_EVASION, 1183 RING_SUSTAIN_ABILITIES, 1184 RING_SUSTENANCE, 1185 RING_DEXTERITY, 1186 RING_INTELLIGENCE, // 15 1187 RING_WIZARDRY, 1188 RING_MAGICAL_POWER, 1189 RING_LEVITATION, 1190 RING_LIFE_PROTECTION, 1191 RING_PROTECTION_FROM_MAGIC, // 20 1192 RING_FIRE, 1193 RING_ICE, 1194 RING_TELEPORT_CONTROL, // 23 1195 AMU_RAGE = 35, // 35 1196 AMU_RESIST_SLOW, 1197 AMU_CLARITY, 1198 AMU_WARDING, 1199 AMU_RESIST_CORROSION, 1200 AMU_THE_GOURMAND, // 40 1201 AMU_CONSERVATION, 1202 AMU_CONTROLLED_FLIGHT, 1203 AMU_INACCURACY, 1204 AMU_RESIST_MUTATION, 1205 NUM_JEWELLERY 1206 }; 1207 1208 enum JOB 1209 { 1210 JOB_FIGHTER, // 0 1211 JOB_WIZARD, 1212 JOB_PRIEST, 1213 JOB_THIEF, 1214 JOB_GLADIATOR, 1215 JOB_NECROMANCER, // 5 1216 JOB_PALADIN, 1217 JOB_ASSASSIN, 1218 JOB_BERSERKER, 1219 JOB_HUNTER, 1220 JOB_CONJURER, // 10 1221 JOB_ENCHANTER, 1222 JOB_FIRE_ELEMENTALIST, 1223 JOB_ICE_ELEMENTALIST, 1224 JOB_SUMMONER, 1225 JOB_AIR_ELEMENTALIST, // 15 1226 JOB_EARTH_ELEMENTALIST, 1227 JOB_CRUSADER, 1228 JOB_DEATH_KNIGHT, 1229 JOB_VENOM_MAGE, 1230 JOB_CHAOS_KNIGHT, // 20 1231 JOB_TRANSMUTER, 1232 JOB_HEALER, // 22 1233 JOB_QUITTER, // 23 -- this is job 'x', don't use 1234 JOB_REAVER, // 24 1235 JOB_STALKER, // 25 1236 JOB_MONK, 1237 JOB_WARPER, 1238 JOB_WANDERER, // 23 1239 NUM_JOBS, // always after the last job 1240 1241 JOB_UNKNOWN = 100 1242 }; 1243 1244 enum KILLBY 1245 { 1246 KILLED_BY_MONSTER, // 0 1247 KILLED_BY_POISON, 1248 KILLED_BY_CLOUD, 1249 KILLED_BY_BEAM, // 3 1250 KILLED_BY_DEATHS_DOOR, // should be deprecated, but you never know {dlb} 1251 KILLED_BY_LAVA, // 5 1252 KILLED_BY_WATER, 1253 KILLED_BY_STUPIDITY, 1254 KILLED_BY_WEAKNESS, 1255 KILLED_BY_CLUMSINESS, 1256 KILLED_BY_TRAP, // 10 1257 KILLED_BY_LEAVING, 1258 KILLED_BY_WINNING, 1259 KILLED_BY_QUITTING, 1260 KILLED_BY_DRAINING, 1261 KILLED_BY_STARVATION, // 15 1262 KILLED_BY_FREEZING, 1263 KILLED_BY_BURNING, 1264 KILLED_BY_WILD_MAGIC, 1265 KILLED_BY_XOM, 1266 KILLED_BY_STATUE, // 20 1267 KILLED_BY_ROTTING, 1268 KILLED_BY_TARGETTING, 1269 KILLED_BY_SPORE, 1270 KILLED_BY_TSO_SMITING, 1271 KILLED_BY_PETRIFICATION, // 25 1272 KILLED_BY_SHUGGOTH, 1273 KILLED_BY_SOMETHING, 1274 KILLED_BY_FALLING_DOWN_STAIRS, 1275 KILLED_BY_ACID, 1276 NUM_KILLBY 1277 }; 1278 1279 enum KILLER // monster_die(), thing_thrown 1280 { 1281 KILL_YOU = 1, // 1 1282 KILL_MON, 1283 KILL_YOU_MISSILE, 1284 KILL_MON_MISSILE, 1285 KILL_MISC, // 5 1286 KILL_RESET // abjuration, etc. 1287 }; 1288 1289 #define YOU_KILL(x) ((x) == KILL_YOU || (x) == KILL_YOU_MISSILE) 1290 #define MON_KILL(x) ((x) == KILL_MON || (x) == KILL_MON_MISSILE) 1291 1292 enum LEVEL_TYPES // you.level_type 1293 { 1294 LEVEL_DUNGEON, // 0 1295 LEVEL_LABYRINTH, 1296 LEVEL_ABYSS, 1297 LEVEL_PANDEMONIUM 1298 }; 1299 1300 enum LOAD_MODE 1301 { 1302 LOAD_START_GAME, 1303 LOAD_RESTART_GAME, 1304 LOAD_ENTER_LEVEL 1305 }; 1306 1307 enum MAP_SECTIONS // see maps.cc and dungeon.cc {dlb} 1308 { 1309 MAP_NORTH = 1, // 1 1310 MAP_NORTHWEST, 1311 MAP_NORTHEAST, 1312 MAP_SOUTHWEST, 1313 MAP_SOUTHEAST, // 5 1314 MAP_ENCOMPASS, 1315 MAP_NORTH_DIS 1316 }; 1317 1318 // if you mess with this list, you'll need to make changes in initfile.cc 1319 enum MESSAGE_CHANNEL 1320 { 1321 MSGCH_PLAIN, // regular text 1322 MSGCH_PROMPT, // various prompts 1323 MSGCH_GOD, // god/religion (param is god) 1324 MSGCH_DURATION, // effect down/warnings 1325 MSGCH_DANGER, // serious life threats (ie very large HP attacks) 1326 MSGCH_WARN, // much less serious threats 1327 MSGCH_FOOD, // hunger notices 1328 MSGCH_RECOVERY, // recovery from disease/stat/poison condition 1329 MSGCH_TALK, // monster talk (param is monster type) 1330 MSGCH_INTRINSIC_GAIN, // player level/stat/species-power gains 1331 MSGCH_MUTATION, // player gain/lose mutations 1332 MSGCH_MONSTER_SPELL, // monsters casting spells 1333 MSGCH_MONSTER_ENCHANT,// monsters enchantments up and down 1334 MSGCH_MONSTER_DAMAGE, // monster damage reports (param is level) 1335 MSGCH_ROTTEN_MEAT, // messages about chunks/corpses becoming rotten 1336 MSGCH_EQUIPMENT, // equipment listing messages 1337 MSGCH_DIAGNOSTICS, // various diagnostic messages 1338 NUM_MESSAGE_CHANNELS // always last 1339 }; 1340 1341 enum MESSAGE_COLOURS 1342 { 1343 MSGCOL_BLACK = 0, // the order of these colours is important 1344 MSGCOL_BLUE, 1345 MSGCOL_GREEN, 1346 MSGCOL_CYAN, 1347 MSGCOL_RED, 1348 MSGCOL_MAGENTA, 1349 MSGCOL_BROWN, 1350 MSGCOL_LIGHTGRAY, 1351 MSGCOL_DARKGRAY, 1352 MSGCOL_LIGHTBLUE, 1353 MSGCOL_LIGHTGREEN, 1354 MSGCOL_LIGHTCYAN, 1355 MSGCOL_LIGHTMAGENTA, 1356 MSGCOL_YELLOW, 1357 MSGCOL_WHITE, 1358 MSGCOL_DEFAULT, // use default colour 1359 MSGCOL_ALTERNATE, // use secondary default colour scheme 1360 MSGCOL_MUTED, // don't print messages 1361 MSGCOL_PLAIN // same as plain channel 1362 }; 1363 1364 enum MISCELLANY // mitm[].sub_type 1365 { 1366 MISC_BOTTLED_EFREET, // 0 1367 MISC_CRYSTAL_BALL_OF_SEEING, 1368 MISC_AIR_ELEMENTAL_FAN, 1369 MISC_LAMP_OF_FIRE, 1370 MISC_STONE_OF_EARTH_ELEMENTALS, 1371 MISC_LANTERN_OF_SHADOWS, // 5 1372 MISC_HORN_OF_GERYON, 1373 MISC_BOX_OF_BEASTS, 1374 MISC_DECK_OF_WONDERS, 1375 MISC_DECK_OF_SUMMONINGS, 1376 MISC_CRYSTAL_BALL_OF_ENERGY, // 10 1377 MISC_EMPTY_EBONY_CASKET, 1378 MISC_CRYSTAL_BALL_OF_FIXATION, 1379 MISC_DISC_OF_STORMS, 1380 MISC_RUNE_OF_ZOT, 1381 MISC_DECK_OF_TRICKS, // 15 1382 MISC_DECK_OF_POWER, 1383 MISC_PORTABLE_ALTAR_OF_NEMELEX, 1384 NUM_MISCELLANY // mv: used for random generation 1385 }; 1386 1387 enum MISSILES // (unsigned char) 1388 { 1389 MI_STONE, // 0 1390 MI_ARROW, 1391 MI_BOLT, 1392 MI_DART, 1393 MI_NEEDLE, 1394 MI_LARGE_ROCK, //jmf: it'd be nice to move MI_LARGE_ROCK to DEBRIS_ROCK 1395 NUM_MISSILES, 1396 MI_EGGPLANT 1397 }; 1398 1399 enum MON_TARG_MODE 1400 { 1401 TARG_ANY, 1402 TARG_ENEMY, 1403 TARG_FRIEND, 1404 TARG_NUM_MODES 1405 }; 1406 1407 enum MONSTERS // (int) menv[].type 1408 { 1409 MONS_GIANT_ANT, // 0 1410 MONS_GIANT_BAT, 1411 MONS_CENTAUR, 1412 MONS_RED_DEVIL, 1413 MONS_ETTIN, 1414 MONS_FUNGUS, // 5 1415 MONS_GOBLIN, 1416 MONS_HOUND, 1417 MONS_IMP, 1418 MONS_JACKAL, 1419 MONS_KILLER_BEE, // 10 1420 MONS_KILLER_BEE_LARVA, 1421 MONS_MANTICORE, 1422 MONS_NECROPHAGE, 1423 MONS_ORC, 1424 MONS_PHANTOM, // 15 1425 MONS_QUASIT, 1426 MONS_RAT, 1427 MONS_SCORPION, // 18 1428 //MONS_TUNNELING_WORM, // deprecated and now officially removed {dlb} 1429 MONS_UGLY_THING = 20, // 20 1430 MONS_FIRE_VORTEX, 1431 MONS_WORM, 1432 MONS_ABOMINATION_SMALL, 1433 MONS_YELLOW_WASP, 1434 MONS_ZOMBIE_SMALL, // 25 1435 MONS_ANGEL, 1436 MONS_GIANT_BEETLE, 1437 MONS_CYCLOPS, 1438 MONS_DRAGON, 1439 MONS_TWO_HEADED_OGRE, // 30 1440 MONS_FIEND, 1441 MONS_GIANT_SPORE, 1442 MONS_HOBGOBLIN, 1443 MONS_ICE_BEAST, 1444 MONS_JELLY, // 35 1445 MONS_KOBOLD, 1446 MONS_LICH, 1447 MONS_MUMMY, 1448 MONS_GUARDIAN_NAGA, 1449 MONS_OGRE, // 40 1450 MONS_PLANT, 1451 MONS_QUEEN_BEE, 1452 MONS_RAKSHASA, 1453 MONS_SNAKE, 1454 MONS_TROLL, // 45 1455 MONS_UNSEEN_HORROR, 1456 MONS_VAMPIRE, 1457 MONS_WRAITH, 1458 MONS_ABOMINATION_LARGE, 1459 MONS_YAK, // 50 1460 MONS_ZOMBIE_LARGE, 1461 MONS_ORC_WARRIOR, 1462 MONS_KOBOLD_DEMONOLOGIST, 1463 MONS_ORC_WIZARD, 1464 MONS_ORC_KNIGHT, // 55 1465 //MONS_WORM_TAIL = 56, // deprecated and now officially removed {dlb} 1466 MONS_WYVERN = 57, // 57 1467 MONS_BIG_KOBOLD, 1468 MONS_GIANT_EYEBALL, 1469 MONS_WIGHT, // 60 1470 MONS_OKLOB_PLANT, 1471 MONS_WOLF_SPIDER, 1472 MONS_SHADOW, 1473 MONS_HUNGRY_GHOST, 1474 MONS_EYE_OF_DRAINING, // 65 1475 MONS_BUTTERFLY, 1476 MONS_WANDERING_MUSHROOM, 1477 MONS_EFREET, 1478 MONS_BRAIN_WORM, 1479 MONS_GIANT_ORANGE_BRAIN, // 70 1480 MONS_BOULDER_BEETLE, 1481 MONS_FLYING_SKULL, 1482 MONS_HELL_HOUND, 1483 MONS_MINOTAUR, 1484 MONS_ICE_DRAGON, // 75 1485 MONS_SLIME_CREATURE, 1486 MONS_FREEZING_WRAITH, 1487 MONS_RAKSHASA_FAKE, 1488 MONS_GREAT_ORB_OF_EYES, 1489 MONS_HELLION, // 80 1490 MONS_ROTTING_DEVIL, 1491 MONS_TORMENTOR, 1492 MONS_REAPER, 1493 MONS_SOUL_EATER, 1494 MONS_HAIRY_DEVIL, // 85 1495 MONS_ICE_DEVIL, 1496 MONS_BLUE_DEVIL, 1497 MONS_BEAST, 1498 MONS_IRON_DEVIL, // 89 1499 MONS_GLOWING_SHAPESHIFTER = 98, // 98 1500 MONS_SHAPESHIFTER, 1501 MONS_GIANT_MITE, // 100 1502 MONS_STEAM_DRAGON, 1503 MONS_VERY_UGLY_THING, 1504 MONS_ORC_SORCERER, 1505 MONS_HIPPOGRIFF, 1506 MONS_GRIFFON, // 105 1507 MONS_HYDRA, 1508 MONS_SKELETON_SMALL, 1509 MONS_SKELETON_LARGE, 1510 MONS_HELL_KNIGHT, 1511 MONS_NECROMANCER, // 110 1512 MONS_WIZARD, 1513 MONS_ORC_PRIEST, 1514 MONS_ORC_HIGH_PRIEST, 1515 MONS_HUMAN, 1516 MONS_GNOLL, // 115 1517 MONS_CLAY_GOLEM, 1518 MONS_WOOD_GOLEM, 1519 MONS_STONE_GOLEM, 1520 MONS_IRON_GOLEM, 1521 MONS_CRYSTAL_GOLEM, // 120 1522 MONS_TOENAIL_GOLEM, 1523 MONS_MOTTLED_DRAGON, 1524 MONS_EARTH_ELEMENTAL, 1525 MONS_FIRE_ELEMENTAL, 1526 MONS_AIR_ELEMENTAL, // 125 1527 MONS_ICE_FIEND, 1528 MONS_SHADOW_FIEND, 1529 MONS_BROWN_SNAKE, 1530 MONS_GIANT_LIZARD, 1531 MONS_SPECTRAL_WARRIOR, // 130 1532 MONS_PULSATING_LUMP, 1533 MONS_STORM_DRAGON, 1534 MONS_YAKTAUR, 1535 MONS_DEATH_YAK, 1536 MONS_ROCK_TROLL, // 135 1537 MONS_STONE_GIANT, 1538 MONS_FLAYED_GHOST, 1539 MONS_BUMBLEBEE, 1540 MONS_REDBACK, 1541 MONS_INSUBSTANTIAL_WISP, // 140 1542 MONS_VAPOUR, 1543 MONS_OGRE_MAGE, 1544 MONS_SPINY_WORM, 1545 MONS_DANCING_WEAPON, 1546 MONS_TITAN, // 145 1547 MONS_GOLDEN_DRAGON, 1548 MONS_ELF, 1549 MONS_LINDWURM, 1550 MONS_ELEPHANT_SLUG, 1551 MONS_WAR_DOG, // 150 1552 MONS_GREY_RAT, 1553 MONS_GREEN_RAT, 1554 MONS_ORANGE_RAT, 1555 MONS_BLACK_SNAKE, 1556 MONS_SHEEP, // 155 1557 MONS_GHOUL, 1558 MONS_HOG, 1559 MONS_GIANT_MOSQUITO, 1560 MONS_GIANT_CENTIPEDE, 1561 MONS_IRON_TROLL, // 160 1562 MONS_NAGA, 1563 MONS_FIRE_GIANT, 1564 MONS_FROST_GIANT, 1565 MONS_FIREDRAKE, 1566 MONS_SHADOW_DRAGON, // 165 1567 MONS_YELLOW_SNAKE, 1568 MONS_GREY_SNAKE, 1569 MONS_DEEP_TROLL, 1570 MONS_GIANT_BLOWFLY, 1571 MONS_RED_WASP, // 170 1572 MONS_SWAMP_DRAGON, 1573 MONS_SWAMP_DRAKE, 1574 MONS_SOLDIER_ANT, 1575 MONS_HILL_GIANT, 1576 MONS_QUEEN_ANT, // 175 1577 MONS_ANT_LARVA, 1578 MONS_GIANT_FROG, 1579 MONS_GIANT_BROWN_FROG, 1580 MONS_SPINY_FROG, 1581 MONS_BLINK_FROG, // 180 1582 MONS_GIANT_COCKROACH, 1583 MONS_SMALL_SNAKE, // 182 1584 //jmf: new monsters 1585 MONS_SHUGGOTH, //jmf: added for evil spells 1586 MONS_WOLF, //jmf: added 1587 MONS_WARG, //jmf: added for orc mines 1588 MONS_BEAR, //jmf: added bears! 1589 MONS_GRIZZLY_BEAR, 1590 MONS_POLAR_BEAR, 1591 MONS_BLACK_BEAR, // 189 1592 MONS_SIMULACRUM_SMALL, 1593 MONS_SIMULACRUM_LARGE, 1594 //jmf: end new monsters 1595 MONS_WHITE_IMP = 220, // 220 1596 MONS_LEMURE, 1597 MONS_UFETUBUS, 1598 MONS_MANES, 1599 MONS_MIDGE, 1600 MONS_NEQOXEC, // 225 1601 MONS_ORANGE_DEMON, 1602 MONS_HELLWING, 1603 MONS_SMOKE_DEMON, 1604 MONS_YNOXINUL, 1605 MONS_EXECUTIONER, // 230 1606 MONS_GREEN_DEATH, 1607 MONS_BLUE_DEATH, 1608 MONS_BALRUG, 1609 MONS_CACODEMON, 1610 MONS_DEMONIC_CRAWLER, // 235 1611 MONS_SUN_DEMON, 1612 MONS_SHADOW_IMP, 1613 MONS_SHADOW_DEMON, 1614 MONS_LOROCYPROCA, 1615 MONS_SHADOW_WRAITH, // 240 1616 MONS_GIANT_AMOEBA, 1617 MONS_GIANT_SLUG, 1618 MONS_GIANT_SNAIL, 1619 MONS_SPATIAL_VORTEX, 1620 MONS_PIT_FIEND, // 245 1621 MONS_BORING_BEETLE, 1622 MONS_GARGOYLE, 1623 MONS_METAL_GARGOYLE, 1624 MONS_MOLTEN_GARGOYLE, 1625 MONS_PROGRAM_BUG, // 250 1626 // BCR - begin first batch of uniques. 1627 MONS_MNOLEG, 1628 MONS_LOM_LOBON, 1629 MONS_CEREBOV, 1630 MONS_GLOORX_VLOQ, // 254 1631 MONS_MOLLUSC_LORD, // 255 - deprecated, but still referenced in code {dlb} 1632 // BCR - End first batch of uniques. 1633 MONS_NAGA_MAGE = 260, // 260 1634 MONS_NAGA_WARRIOR, 1635 MONS_ORC_WARLORD, 1636 MONS_DEEP_ELF_SOLDIER, 1637 MONS_DEEP_ELF_FIGHTER, 1638 MONS_DEEP_ELF_KNIGHT, // 265 1639 MONS_DEEP_ELF_MAGE, 1640 MONS_DEEP_ELF_SUMMONER, 1641 MONS_DEEP_ELF_CONJURER, 1642 MONS_DEEP_ELF_PRIEST, 1643 MONS_DEEP_ELF_HIGH_PRIEST, // 270 1644 MONS_DEEP_ELF_DEMONOLOGIST, 1645 MONS_DEEP_ELF_ANNIHILATOR, 1646 MONS_DEEP_ELF_SORCERER, 1647 MONS_DEEP_ELF_DEATH_MAGE, 1648 MONS_BROWN_OOZE, // 275 1649 MONS_AZURE_JELLY, 1650 MONS_DEATH_OOZE, 1651 MONS_ACID_BLOB, 1652 MONS_ROYAL_JELLY, 1653 // BCR - begin second batch of uniques. 1654 MONS_TERENCE, // 280 1655 MONS_JESSICA, 1656 MONS_IJYB, 1657 MONS_SIGMUND, 1658 MONS_BLORK_THE_ORC, 1659 MONS_EDMUND, // 285 1660 MONS_PSYCHE, 1661 MONS_EROLCHA, 1662 MONS_DONALD, 1663 MONS_URUG, 1664 MONS_MICHAEL, // 290 1665 MONS_JOSEPH, 1666 MONS_SNORG, // was Anita - Snorg is correct 16jan2000 {dlb} 1667 MONS_ERICA, 1668 MONS_JOSEPHINE, 1669 MONS_HAROLD, // 295 1670 MONS_NORBERT, 1671 MONS_JOZEF, 1672 MONS_AGNES, 1673 MONS_MAUD, 1674 MONS_LOUISE, // 300 1675 MONS_FRANCIS, 1676 MONS_FRANCES, 1677 MONS_RUPERT, 1678 MONS_WAYNE, 1679 MONS_DUANE, // 305 1680 MONS_XTAHUA, 1681 MONS_NORRIS, 1682 MONS_ADOLF, 1683 MONS_MARGERY, 1684 MONS_BORIS, // 310 1685 // BCR - end second batch of uniques. 1686 1687 // The Lords of Hell: 1688 MONS_GERYON = 340, // 340 1689 MONS_DISPATER, 1690 MONS_ASMODEUS, 1691 MONS_ANTAEUS, 1692 MONS_ERESHKIGAL, // 344 1693 1694 MONS_ANCIENT_LICH = 356, // 356 1695 MONS_OOZE, // 357 1696 1697 MONS_VAULT_GUARD = 360, // 360 1698 MONS_CURSE_SKULL, 1699 MONS_VAMPIRE_KNIGHT, 1700 MONS_VAMPIRE_MAGE, 1701 MONS_SHINING_EYE, 1702 MONS_ORB_GUARDIAN, // 365 1703 MONS_DAEVA, 1704 MONS_SPECTRAL_THING, 1705 MONS_GREATER_NAGA, 1706 MONS_SKELETAL_DRAGON, 1707 MONS_TENTACLED_MONSTROSITY, // 370 1708 MONS_SPHINX, 1709 MONS_ROTTING_HULK, 1710 MONS_GUARDIAN_MUMMY, 1711 MONS_GREATER_MUMMY, 1712 MONS_MUMMY_PRIEST, // 375 1713 MONS_CENTAUR_WARRIOR, 1714 MONS_YAKTAUR_CAPTAIN, 1715 MONS_KILLER_KLOWN, 1716 MONS_ELECTRIC_GOLEM, // replacing the guardian robot -- bwr 1717 MONS_BALL_LIGHTNING, // replacing the dorgi -- bwr 1718 MONS_ORB_OF_FIRE, // Swords renamed to fit -- bwr 1719 MONS_QUOKKA, // Quokka are a type of wallaby, returned -- bwr 382 1720 1721 1722 MONS_EYE_OF_DEVASTATION = 385, // 385 1723 MONS_MOTH_OF_WRATH, 1724 MONS_DEATH_COB, 1725 MONS_CURSE_TOE, 1726 MONS_GOLD_MIMIC, 1727 MONS_WEAPON_MIMIC, // 390 1728 MONS_ARMOUR_MIMIC, 1729 MONS_SCROLL_MIMIC, 1730 MONS_POTION_MIMIC, 1731 MONS_HELL_HOG, 1732 MONS_SERPENT_OF_HELL, // 395 1733 MONS_BOGGART, 1734 MONS_QUICKSILVER_DRAGON, 1735 MONS_IRON_DRAGON, 1736 MONS_SKELETAL_WARRIOR, // 399 1737 MONS_PLAYER_GHOST, // 400 1738 MONS_PANDEMONIUM_DEMON, // 401 1739 1740 MONS_GIANT_NEWT, // 402 1741 MONS_GIANT_GECKO, // 403 1742 MONS_GIANT_IGUANA, // 404 1743 MONS_GILA_MONSTER, // 405 1744 MONS_KOMODO_DRAGON, // 406 1745 1746 // Lava monsters: 1747 MONS_LAVA_WORM = 420, // 420 1748 MONS_LAVA_FISH, 1749 MONS_LAVA_SNAKE, 1750 MONS_SALAMANDER, // 423 mv: was another lava thing 1751 1752 // Water monsters: 1753 MONS_BIG_FISH = 430, // 430 1754 MONS_GIANT_GOLDFISH, 1755 MONS_ELECTRICAL_EEL, 1756 MONS_JELLYFISH, 1757 MONS_WATER_ELEMENTAL, 1758 MONS_SWAMP_WORM, // 435 1759 1760 NUM_MONSTERS, // used for polymorph 1761 RANDOM_MONSTER = 1000, // used to distinguish between a random monster and using program bugs for error trapping {dlb} 1762 WANDERING_MONSTER = 2500 // only used in monster placement routines - forced limit checks {dlb} 1763 1764 }; 1765 1766 enum MONSTER_BEHAVIOUR // create_monster() 1767 { 1768 BEH_SLEEP, // 0 1769 BEH_WANDER, 1770 BEH_SEEK, 1771 BEH_FLEE, 1772 BEH_CORNERED, 1773 NUM_BEHAVIOURS, // max # of legal states 1774 BEH_CHARMED, // hostile-but-charmed; create only 1775 BEH_FRIENDLY, // used during creation only 1776 BEH_HOSTILE, // creation only 1777 BEH_GOD_GIFT // creation only 1778 }; 1779 1780 enum MONSTER_ATTITUDES 1781 { 1782 ATT_HOSTILE, // 0, default in most cases 1783 ATT_FRIENDLY, // created friendly (or tamed?) 1784 ATT_NEUTRAL 1785 }; 1786 1787 enum MONSTER_EVENTS 1788 { 1789 ME_EVAL, // 0, evaluate monster AI state 1790 ME_DISTURB, // noisy 1791 ME_ANNOY, // annoy at range 1792 ME_ALERT, // alert to presence 1793 ME_WHACK, // physical attack 1794 ME_SCARE, // frighten monster 1795 ME_CORNERED // cannot flee 1796 }; 1797 1798 #if 0 1799 // Obsolete... use mons_charclass() 1800 enum MONSTER_CATEGORIES 1801 { 1802 MC_MIMIC, // 0 1803 NUM_MC, 1804 MC_UNSPECIFIED = 255 // keep at end !!! mind the upper limit of 255 {dlb} 1805 }; 1806 #endif 1807 1808 // Note: These are currently stored in chars!!! 1809 // Need to fix struct monsters and the savefile if you want more. 1810 enum MONSTER_FLAGS 1811 { 1812 MF_CREATED_FRIENDLY = 0x01, // no benefit from killing 1813 MF_GOD_GIFT = 0x02, // player not penalized by its death 1814 MF_BATTY = 0x04, // flutters like a bat 1815 MF_JUST_SUMMONED = 0x08, // monster skips next available action 1816 MF_TAKING_STAIRS = 0x10, // is following player through stairs 1817 1818 MF_UNUSED_I = 0x20, 1819 MF_UNUSED_II = 0x40, 1820 MF_UNUSED_III = 0x80 1821 }; 1822 1823 enum MONSTER_DAMAGE 1824 { 1825 MDAM_OKAY, 1826 MDAM_LIGHTLY_DAMAGED, 1827 MDAM_MODERATELY_DAMAGED, 1828 MDAM_HEAVILY_DAMAGED, 1829 MDAM_HORRIBLY_DAMAGED, 1830 MDAM_ALMOST_DEAD, 1831 MDAM_DEAD 1832 }; 1833 1834 enum MONSTER_DESCRIPTORS // things that cross categorical lines {dlb} 1835 { 1836 MDSC_LEAVES_HIDE, // 0 1837 MDSC_REGENERATES, 1838 MDSC_NOMSG_WOUNDS 1839 }; 1840 1841 enum MONSTER_HOLINESS // matches (char) H_foo in mon-util.h, see: monster_holiness() 1842 { 1843 MH_HOLY, // 0 - was -1 1844 MH_NATURAL, // 1 - was 0 1845 MH_UNDEAD, // 2 - was 1 1846 MH_DEMONIC, // 3 - was 2 1847 MH_NONLIVING, // golems and other constructs 1848 MH_PLANT // plants 1849 }; 1850 1851 enum MONSTER_INVENTORY_SLOTS // (int) menv[].inv[] 1852 { 1853 MSLOT_WEAPON, 1854 MSLOT_MISSILE, // although it is a second weapon for MONS_TWO_HEADED_OGRE - how to reconcile cleanly? {dlb} 1855 MSLOT_ARMOUR, 1856 MSLOT_MISCELLANY, //mv: used for misc. obj. (7 Aug 2001) 1857 MSLOT_POTION, // mv: now used only for potions (7 Aug 2001) 1858 MSLOT_WAND, // 1859 MSLOT_SCROLL, 1860 MSLOT_GOLD, //mv: used for money :) (7 Aug 2001) 1861 NUM_MONSTER_SLOTS = 8 // value must remain 8 for savefile compatibility {dlb} 1862 }; 1863 1864 enum MONSTER_ITEM_USE 1865 { 1866 MONUSE_NOTHING, 1867 MONUSE_EATS_ITEMS, 1868 MONUSE_OPEN_DOORS, 1869 MONUSE_STARTING_EQUIPMENT, 1870 MONUSE_WEAPONS_ARMOUR 1871 }; 1872 1873 enum MONSTER_SPELLS // mons_cast(), mspell_list[], mons_spells() 1874 { 1875 MS_MMISSILE, // 0 1876 MS_FLAME, 1877 MS_FROST, 1878 MS_PARALYSIS, 1879 MS_SLOW, 1880 MS_HASTE, // 5 1881 MS_CONFUSE, // 6 - do not deprecate!!! 13jan2000 {dlb} 1882 MS_VENOM_BOLT, 1883 MS_FIRE_BOLT, 1884 MS_COLD_BOLT, 1885 MS_LIGHTNING_BOLT, // 10 1886 MS_INVIS, 1887 MS_FIREBALL, 1888 MS_HEAL, 1889 MS_TELEPORT, 1890 MS_TELEPORT_OTHER, // 15 1891 MS_BLINK, 1892 MS_CRYSTAL_SPEAR, 1893 MS_DIG, 1894 MS_NEGATIVE_BOLT, 1895 MS_HELLFIRE_BURST, // 20 1896 MS_VAMPIRE_SUMMON, 1897 MS_ORB_ENERGY, 1898 MS_BRAIN_FEED, 1899 MS_LEVEL_SUMMON, 1900 MS_FAKE_RAKSHASA_SUMMON, // 25 1901 MS_STEAM_BALL, 1902 MS_SUMMON_DEMON, 1903 MS_ANIMATE_DEAD, 1904 MS_PAIN, 1905 MS_SMITE, // 30 1906 MS_STICKY_FLAME, 1907 MS_POISON_BLAST, 1908 MS_SUMMON_DEMON_LESSER, 1909 MS_SUMMON_UFETUBUS, 1910 MS_PURPLE_BLAST, // 35 1911 MS_SUMMON_BEAST, // MS_GERYON was not descriptive - renamed 13jan2000 {dlb} 1912 MS_ENERGY_BOLT, 1913 MS_STING, 1914 MS_IRON_BOLT, 1915 MS_STONE_ARROW, // 40 1916 MS_POISON_SPLASH, 1917 MS_SUMMON_UNDEAD, 1918 MS_MUTATION, // 43 1919 MS_CANTRIP, 1920 MS_DISINTEGRATE, // 45 1921 MS_MARSH_GAS, 1922 MS_QUICKSILVER_BOLT, 1923 MS_TORMENT, 1924 MS_HELLFIRE, 1925 MS_METAL_SPLINTERS, // 50 1926 MS_SUMMON_DEMON_GREATER, // [foo]_1 was confusing - renamed 13jan2000 {dlb} 1927 MS_BANISHMENT, 1928 NUM_MONSTER_SPELLS, 1929 MS_NO_SPELL = 100 1930 }; 1931 1932 // XXX: These still need to be applied in mon-data.h 1933 enum MONSTER_SPELL_TEMPLATES 1934 { 1935 MST_ORC_WIZARD_I = 0, 1936 MST_ORC_WIZARD_II, 1937 MST_ORC_WIZARD_III, 1938 MST_GUARDIAN_NAGA = 10, 1939 MST_LICH_I = 20, 1940 MST_LICH_II, 1941 MST_LICH_III, 1942 MST_LICH_IV, 1943 MST_BURNING_DEVIL = 30, 1944 MST_VAMPIRE = 40, 1945 MST_VAMPIRE_KNIGHT, 1946 MST_VAMPIRE_MAGE, 1947 MST_EFREET = 50, 1948 MST_BRAIN_WORM = 52, 1949 MST_GIANT_ORANGE_BRAIN, 1950 MST_RAKSHASA, 1951 MST_GREAT_ORB_OF_EYES, // 55 1952 MST_ORC_SORCERER, 1953 MST_STEAM_DRAGON, 1954 MST_HELL_KNIGHT_I, 1955 MST_HELL_KNIGHT_II, 1956 MST_NECROMANCER_I, // 60 1957 MST_NECROMANCER_II, 1958 MST_WIZARD_I, 1959 MST_WIZARD_II, 1960 MST_WIZARD_III, 1961 MST_WIZARD_IV, // 65 1962 MST_WIZARD_V, 1963 MST_ORC_PRIEST, 1964 MST_ORC_HIGH_PRIEST, 1965 MST_MOTTLED_DRAGON, 1966 MST_ICE_FIEND, // 70 1967 MST_SHADOW_FIEND, 1968 MST_TORMENTOR, 1969 MST_STORM_DRAGON, 1970 MST_WHITE_IMP, 1971 MST_YNOXINUL, // 75 1972 MST_NEQOXEC, 1973 MST_HELLWING, 1974 MST_SMOKE_DEMON, 1975 MST_CACODEMON, 1976 MST_GREEN_DEATH, // 80 1977 MST_BALRUG, 1978 MST_BLUE_DEATH, 1979 MST_GERYON, 1980 MST_DISPATER, 1981 MST_ASMODEUS, // 85 1982 MST_ERESHKIGAL, 1983 MST_ANTAEUS, // 87 1984 MST_MNOLEG = 90, 1985 MST_LOM_LOBON, 1986 MST_CEREBOV, 1987 MST_GLOORX_VLOQ, 1988 MST_TITAN, 1989 MST_GOLDEN_DRAGON, // 95 1990 MST_DEEP_ELF_SUMMONER, 1991 MST_DEEP_ELF_CONJURER_I, 1992 MST_DEEP_ELF_CONJURER_II, 1993 MST_DEEP_ELF_PRIEST, 1994 MST_DEEP_ELF_HIGH_PRIEST, // 100 1995 MST_DEEP_ELF_DEMONOLOGIST, 1996 MST_DEEP_ELF_ANNIHILATOR, 1997 MST_DEEP_ELF_SORCERER, 1998 MST_DEEP_ELF_DEATH_MAGE, 1999 MST_KOBOLD_DEMONOLOGIST, // 105 2000 MST_NAGA, 2001 MST_NAGA_MAGE, 2002 MST_CURSE_SKULL, 2003 MST_SHINING_EYE, 2004 MST_FROST_GIANT, // 110 2005 MST_ANGEL, 2006 MST_DAEVA, 2007 MST_SHADOW_DRAGON, 2008 MST_SPHINX, 2009 MST_MUMMY, // 115 2010 MST_ELECTRIC_GOLEM, 2011 MST_ORB_OF_FIRE, 2012 MST_SHADOW_IMP, 2013 MST_GHOST, 2014 MST_HELL_HOG, // 120 2015 MST_SWAMP_DRAGON, 2016 MST_SWAMP_DRAKE, 2017 MST_SERPENT_OF_HELL, 2018 MST_BOGGART, 2019 MST_EYE_OF_DEVASTATION, // 125 2020 MST_QUICKSILVER_DRAGON, 2021 MST_IRON_DRAGON, // 127 2022 MST_SKELETAL_WARRIOR, 2023 NUM_MSTYPES, 2024 MST_NO_SPELLS = 250 2025 }; 2026 2027 enum MUTATIONS 2028 { 2029 MUT_TOUGH_SKIN, // 0 2030 MUT_STRONG, 2031 MUT_CLEVER, 2032 MUT_AGILE, 2033 MUT_GREEN_SCALES, 2034 MUT_BLACK_SCALES, // 5 2035 MUT_GREY_SCALES, 2036 MUT_BONEY_PLATES, 2037 MUT_REPULSION_FIELD, 2038 MUT_POISON_RESISTANCE, 2039 MUT_CARNIVOROUS, // 10 2040 MUT_HERBIVOROUS, 2041 MUT_HEAT_RESISTANCE, 2042 MUT_COLD_RESISTANCE, 2043 MUT_SHOCK_RESISTANCE, 2044 MUT_REGENERATION, // 15 2045 MUT_FAST_METABOLISM, 2046 MUT_SLOW_METABOLISM, 2047 MUT_WEAK, 2048 MUT_DOPEY, 2049 MUT_CLUMSY, // 20 2050 MUT_TELEPORT_CONTROL, 2051 MUT_TELEPORT, 2052 MUT_MAGIC_RESISTANCE, 2053 MUT_FAST, 2054 MUT_ACUTE_VISION, // 25 2055 MUT_DEFORMED, 2056 MUT_TELEPORT_AT_WILL, 2057 MUT_SPIT_POISON, 2058 MUT_MAPPING, 2059 MUT_BREATHE_FLAMES, // 30 2060 MUT_BLINK, 2061 MUT_HORNS, 2062 MUT_STRONG_STIFF, 2063 MUT_FLEXIBLE_WEAK, 2064 MUT_LOST, // 35 2065 MUT_CLARITY, 2066 MUT_BERSERK, 2067 MUT_DETERIORATION, 2068 MUT_BLURRY_VISION, 2069 MUT_MUTATION_RESISTANCE, // 40 2070 MUT_FRAIL, 2071 MUT_ROBUST, 2072 MUT_TORMENT_RESISTANCE, 2073 MUT_NEGATIVE_ENERGY_RESISTANCE, 2074 MUT_SUMMON_MINOR_DEMONS, // 45 2075 MUT_SUMMON_DEMONS, 2076 MUT_HURL_HELLFIRE, 2077 MUT_CALL_TORMENT, 2078 MUT_RAISE_DEAD, 2079 MUT_CONTROL_DEMONS, // 50 2080 MUT_PANDEMONIUM, 2081 MUT_DEATH_STRENGTH, 2082 MUT_CHANNEL_HELL, 2083 MUT_DRAIN_LIFE, 2084 MUT_THROW_FLAMES, // 55 2085 MUT_THROW_FROST, 2086 MUT_SMITE, // 57 2087 MUT_CLAWS, //jmf: added 2088 MUT_HOOVES, //jmf: etc. 2089 MUT_BREATHE_POISON, // 60 2090 MUT_STINGER, 2091 MUT_BIG_WINGS, 2092 MUT_BLUE_MARKS, // 63 - decorative, as in "mark of the devil" 2093 MUT_GREEN_MARKS, // 64 2094 MUT_RED_SCALES = 70, // 70 2095 MUT_NACREOUS_SCALES, 2096 MUT_GREY2_SCALES, 2097 MUT_METALLIC_SCALES, 2098 MUT_BLACK2_SCALES, 2099 MUT_WHITE_SCALES, // 75 2100 MUT_YELLOW_SCALES, 2101 MUT_BROWN_SCALES, 2102 MUT_BLUE_SCALES, 2103 MUT_PURPLE_SCALES, 2104 MUT_SPECKLED_SCALES, // 80 2105 MUT_ORANGE_SCALES, 2106 MUT_INDIGO_SCALES, 2107 MUT_RED2_SCALES, 2108 MUT_IRIDESCENT_SCALES, 2109 MUT_PATTERNED_SCALES, // 85 2110 NUM_MUTATIONS 2111 }; 2112 2113 enum NAUGHTY_THINGS 2114 { 2115 NAUGHTY_NECROMANCY = 1, // 1 - using necromancy (spell or device) 2116 NAUGHTY_UNHOLY, // 2 - using unholy stuff (call imp, summon things) 2117 NAUGHTY_KILLING, // 3 - killing in the name of a peaceful deity 2118 NAUGHTY_ATTACK_HOLY, // 4 - attacking holy things 2119 NAUGHTY_ATTACK_FRIEND, // 5 - attacking friendly things 2120 NAUGHTY_FRIEND_DIES, // 6 - allowing friendly things to die 2121 NAUGHTY_BUTCHER, // 7 - butchering in the name of a peaceful deity 2122 NAUGHTY_STABBING, // 8 - stabbing 2123 NAUGHTY_SPELLCASTING, // 9 - spellcasting 2124 NAUGHTY_POISON, // 10 - poisoning 2125 NAUGHTY_STIMULANTS, //jmf: next three new, some not yet used 2126 NAUGHTY_ATE_MEAT, 2127 NAUGHTY_CREATED_LIFE, 2128 NUM_NAUGHTY_THINGS 2129 }; 2130 2131 enum OBJECT_CLASSES // (unsigned char) mitm[].base_type 2132 { 2133 OBJ_WEAPONS, // 0 2134 OBJ_MISSILES, 2135 OBJ_ARMOUR, 2136 OBJ_WANDS, 2137 OBJ_FOOD, // 4 2138 OBJ_UNKNOWN_I = 5, // (use unknown) labeled as books in invent.cc {dlb} 2139 OBJ_SCROLLS = 6, // 6 2140 OBJ_JEWELLERY, 2141 OBJ_POTIONS, // 8 2142 OBJ_UNKNOWN_II = 9, // (use unknown, stackable) labeled as gems in invent.cc {dlb} 2143 OBJ_BOOKS = 10, // 10 2144 OBJ_STAVES, 2145 OBJ_ORBS, 2146 OBJ_MISCELLANY, 2147 OBJ_CORPSES, 2148 OBJ_GOLD, // important role as upper limit to chardump::dump_inventory() {dlb} 2149 OBJ_GEMSTONES, // found in itemname.cc, labeled as miscellaneous in invent.cc {dlb} 2150 NUM_OBJECT_CLASSES, 2151 OBJ_UNASSIGNED = 100, // must remain set to 100 {dlb} 2152 OBJ_RANDOM = 255 // must remain set to 255 {dlb} - also used 2153 // for blanket random sub_type .. see dungeon::items() 2154 }; 2155 2156 enum ORBS 2157 { 2158 ORB_ZOT // 0 2159 }; 2160 2161 enum POTIONS 2162 { 2163 POT_HEALING, // 0 2164 POT_HEAL_WOUNDS, 2165 POT_SPEED, 2166 POT_MIGHT, 2167 POT_GAIN_STRENGTH, 2168 POT_GAIN_DEXTERITY, // 5 2169 POT_GAIN_INTELLIGENCE, 2170 POT_LEVITATION, 2171 POT_POISON, 2172 POT_SLOWING, 2173 POT_PARALYSIS, // 10 2174 POT_CONFUSION, 2175 POT_INVISIBILITY, 2176 POT_PORRIDGE, 2177 POT_DEGENERATION, 2178 POT_DECAY, // 15 2179 POT_WATER, 2180 POT_EXPERIENCE, 2181 POT_MAGIC, 2182 POT_RESTORE_ABILITIES, 2183 POT_STRONG_POISON, // 20 2184 POT_BERSERK_RAGE, 2185 POT_CURE_MUTATION, 2186 POT_MUTATION, 2187 NUM_POTIONS 2188 }; 2189 2190 enum PRONOUN_TYPE 2191 { 2192 PRONOUN_CAP, // 0 2193 PRONOUN_NOCAP, // 1 2194 PRONOUN_CAP_POSSESSIVE, // 2 2195 PRONOUN_NOCAP_POSSESSIVE, // 3 2196 PRONOUN_REFLEXIVE // 4 (reflexive is always lowercase) 2197 }; 2198 2199 enum PROXIMITY // proximity to player to create monster 2200 { 2201 PROX_ANYWHERE, 2202 PROX_CLOSE_TO_PLAYER, 2203 PROX_AWAY_FROM_PLAYER, 2204 PROX_NEAR_STAIRS 2205 }; 2206 2207 enum RANDART_PROP 2208 { 2209 RAP_BRAND, // 0 2210 RAP_AC, 2211 RAP_EVASION, 2212 RAP_STRENGTH, 2213 RAP_INTELLIGENCE, 2214 RAP_DEXTERITY, // 5 2215 RAP_FIRE, 2216 RAP_COLD, 2217 RAP_ELECTRICITY, 2218 RAP_POISON, 2219 RAP_NEGATIVE_ENERGY, // 10 2220 RAP_MAGIC, 2221 RAP_EYESIGHT, 2222 RAP_INVISIBLE, 2223 RAP_LEVITATE, 2224 RAP_BLINK, // 15 2225 RAP_CAN_TELEPORT, 2226 RAP_BERSERK, 2227 RAP_MAPPING, 2228 RAP_NOISES, 2229 RAP_PREVENT_SPELLCASTING, // 20 2230 RAP_CAUSE_TELEPORTATION, 2231 RAP_PREVENT_TELEPORTATION, 2232 RAP_ANGRY, 2233 RAP_METABOLISM, 2234 RAP_MUTAGENIC, // 25 2235 RAP_ACCURACY, 2236 RAP_DAMAGE, 2237 RAP_CURSED, 2238 RAP_STEALTH 2239 }; 2240 2241 enum READ_BOOK_ACTION 2242 { 2243 RBOOK_USE_STAFF, 2244 RBOOK_MEMORIZE, 2245 RBOOK_READ_SPELL 2246 }; 2247 2248 enum RUN_DIR 2249 { 2250 RDIR_UP = 0, 2251 RDIR_UP_RIGHT, 2252 RDIR_RIGHT, 2253 RDIR_DOWN_RIGHT, 2254 RDIR_DOWN, 2255 RDIR_DOWN_LEFT, 2256 RDIR_LEFT, 2257 RDIR_UP_LEFT, 2258 RDIR_REST 2259 }; 2260 2261 enum RUNE_TYPES 2262 { 2263 // Note: that runes DIS-SWAMP have the same numberic value as the branch 2264 RUNE_DIS = 1, 2265 RUNE_GEHENNA, 2266 RUNE_COCYTUS = 4, 2267 RUNE_TARTARUS, 2268 RUNE_SLIME_PITS = 13, 2269 RUNE_VAULTS, 2270 RUNE_SNAKE_PIT = 19, 2271 RUNE_ELVEN_HALLS, // unused 2272 RUNE_TOMB, 2273 RUNE_SWAMP, 2274 2275 // Runes 50 and 51 are for Pandemonium (general demon) and the Abyss 2276 RUNE_DEMONIC = 50, 2277 RUNE_ABYSSAL, 2278 2279 // Runes 60-63 correspond to the Pandemonium demonlords, 2280 // and are equal to the corresponding vault. 2281 RUNE_MNOLEG = 60, 2282 RUNE_LOM_LOBON, 2283 RUNE_CEREBOV, 2284 RUNE_GLOORX_VLOQ, 2285 NUM_RUNE_TYPES // should always be last 2286 }; 2287 2288 enum SCORE_FORMAT 2289 { 2290 SCORE_TERSE, // one line 2291 SCORE_REGULAR, // two lines (name, cause, blank) 2292 SCORE_VERBOSE // everything (dates, times, god, etc) 2293 }; 2294 2295 enum SCROLLS 2296 { 2297 SCR_IDENTIFY, // 0 2298 SCR_TELEPORTATION, 2299 SCR_FEAR, 2300 SCR_NOISE, 2301 SCR_REMOVE_CURSE, 2302 SCR_DETECT_CURSE, // 5 2303 SCR_SUMMONING, 2304 SCR_ENCHANT_WEAPON_I, 2305 SCR_ENCHANT_ARMOUR, 2306 SCR_TORMENT, 2307 SCR_RANDOM_USELESSNESS, // 10 2308 SCR_CURSE_WEAPON, 2309 SCR_CURSE_ARMOUR, 2310 SCR_IMMOLATION, 2311 SCR_BLINKING, 2312 SCR_PAPER, // 15 2313 SCR_MAGIC_MAPPING, 2314 SCR_FORGETFULNESS, 2315 SCR_ACQUIREMENT, 2316 SCR_ENCHANT_WEAPON_II, 2317 SCR_VORPALISE_WEAPON, // 20 2318 SCR_RECHARGING, 2319 SCR_ENCHANT_WEAPON_III, 2320 NUM_SCROLLS 2321 }; 2322 2323 enum SHOPS // (unsigned char) env.sh_type[], item_in_shop(), in_a_shop() 2324 { 2325 SHOP_WEAPON, // 0 2326 SHOP_ARMOUR, 2327 SHOP_WEAPON_ANTIQUE, 2328 SHOP_ARMOUR_ANTIQUE, 2329 SHOP_GENERAL_ANTIQUE, 2330 SHOP_JEWELLERY, // 5 2331 SHOP_WAND, 2332 SHOP_BOOK, 2333 SHOP_FOOD, 2334 SHOP_DISTILLERY, 2335 SHOP_SCROLL, // 10 2336 SHOP_GENERAL, 2337 NUM_SHOPS, // must remain last 'regular' member {dlb} 2338 SHOP_UNASSIGNED = 100, // keep set at 100 for now {dlb} 2339 SHOP_RANDOM = 255 // keep set at 255 for now {dlb} 2340 }; 2341 2342 enum SKILLS 2343 { 2344 SK_FIGHTING, // 0 2345 SK_SHORT_BLADES, 2346 SK_LONG_SWORDS, 2347 SK_UNUSED_1, // SK_GREAT_SWORDS - now unused 2348 SK_AXES, 2349 SK_MACES_FLAILS, // 5 2350 SK_POLEARMS, 2351 SK_STAVES, 2352 SK_SLINGS, 2353 SK_BOWS, 2354 SK_CROSSBOWS, // 10 2355 SK_DARTS, 2356 SK_THROWING, 2357 SK_ARMOUR, 2358 SK_DODGING, 2359 SK_STEALTH, // 15 2360 SK_STABBING, 2361 SK_SHIELDS, 2362 SK_TRAPS_DOORS, 2363 SK_UNARMED_COMBAT, // 19 2364 SK_SPELLCASTING = 25, // 25 2365 SK_CONJURATIONS, 2366 SK_ENCHANTMENTS, 2367 SK_SUMMONINGS, 2368 SK_NECROMANCY, 2369 SK_TRANSLOCATIONS, // 30 2370 SK_TRANSMIGRATION, 2371 SK_DIVINATIONS, 2372 SK_FIRE_MAGIC, 2373 SK_ICE_MAGIC, 2374 SK_AIR_MAGIC, // 35 2375 SK_EARTH_MAGIC, 2376 SK_POISON_MAGIC, 2377 SK_INVOCATIONS, 2378 SK_EVOCATIONS, 2379 NUM_SKILLS // must remain last member {dlb} 2380 }; 2381 2382 enum SPECIAL_ARMOR 2383 { 2384 SPARM_NORMAL, // 0 2385 SPARM_RUNNING, 2386 SPARM_FIRE_RESISTANCE, 2387 SPARM_COLD_RESISTANCE, 2388 SPARM_POISON_RESISTANCE, 2389 SPARM_SEE_INVISIBLE, // 5 2390 SPARM_DARKNESS, 2391 SPARM_STRENGTH, 2392 SPARM_DEXTERITY, 2393 SPARM_INTELLIGENCE, 2394 SPARM_PONDEROUSNESS, // 10 2395 SPARM_LEVITATION, 2396 SPARM_MAGIC_RESISTANCE, 2397 SPARM_PROTECTION, 2398 SPARM_STEALTH, 2399 SPARM_RESISTANCE, // 15 2400 SPARM_POSITIVE_ENERGY, 2401 SPARM_ARCHMAGI, 2402 SPARM_PRESERVATION, // 18 2403 SPARM_RANDART_I = 25, // must remain at 25 for now - how high do they go? {dlb} 2404 SPARM_RANDART_II = 26, // 26 2405 SPARM_RANDART_III = 27, // 27 2406 SPARM_RANDART_IV = 28, // 28 2407 SPARM_RANDART_V = 29 // 29 - highest value found thus far {dlb} 2408 }; 2409 2410 enum SPECIAL_MISSILES // to separate from weapons in general {dlb} 2411 { 2412 SPMSL_NORMAL, // 0 2413 SPMSL_FLAME, // 1 2414 SPMSL_ICE, // 2 2415 SPMSL_POISONED, // 3 - from poison_ammo() enchantment {dlb} 2416 SPMSL_POISONED_II, // 4 2417 }; 2418 2419 enum SPECIAL_ROOMS 2420 { 2421 SROOM_LAIR_ORC, // 0 2422 SROOM_LAIR_KOBOLD, 2423 SROOM_TREASURY, 2424 SROOM_BEEHIVE, 2425 SROOM_MORGUE, 2426 NUM_SPECIAL_ROOMS // 5 - must remain final member {dlb} 2427 }; 2428 2429 enum SPECIAL_RINGS // jewellery mitm[].special values 2430 { 2431 SPRING_RANDART = 200, 2432 SPRING_UNRANDART = 201 2433 }; 2434 2435 enum SPECIAL_WEAPONS // equivalent to (you.inv[].special or mitm[].special) % 30 2436 { 2437 SPWPN_NORMAL, // 0 2438 SPWPN_FLAMING, 2439 SPWPN_FREEZING, 2440 SPWPN_HOLY_WRATH, 2441 SPWPN_ELECTROCUTION, 2442 SPWPN_ORC_SLAYING, // 5 2443 SPWPN_VENOM, 2444 SPWPN_PROTECTION, 2445 SPWPN_DRAINING, 2446 SPWPN_SPEED, 2447 SPWPN_VORPAL, // 10 2448 SPWPN_FLAME, 2449 SPWPN_FROST, 2450 SPWPN_VAMPIRICISM, 2451 SPWPN_DISRUPTION, 2452 SPWPN_PAIN, // 15 2453 SPWPN_DISTORTION, 2454 SPWPN_REACHING, // 17 2455 SPWPN_CONFUSE, 2456 SPWPN_RANDART_I = 25, // 25 2457 SPWPN_RANDART_II, 2458 SPWPN_RANDART_III, 2459 SPWPN_RANDART_IV, 2460 SPWPN_RANDART_V, 2461 NUM_SPECIAL_WEAPONS, 2462 SPWPN_DUMMY_CRUSHING, // ONLY TEMPORARY USAGE -- converts to VORPAL 2463 2464 // everything above this point is a special artefact wield: 2465 SPWPN_SINGING_SWORD = 181, // 181 2466 SPWPN_WRATH_OF_TROG, 2467 SPWPN_SCYTHE_OF_CURSES, 2468 SPWPN_MACE_OF_VARIABILITY, 2469 SPWPN_GLAIVE_OF_PRUNE, // 185 2470 SPWPN_SCEPTRE_OF_TORMENT, 2471 SPWPN_SWORD_OF_ZONGULDROK, 2472 2473 // these three are not generated randomly {dlb} 2474 SPWPN_SWORD_OF_CEREBOV, 2475 SPWPN_STAFF_OF_DISPATER, 2476 SPWPN_SCEPTRE_OF_ASMODEUS, // 190 2477 2478 SPWPN_SWORD_OF_POWER, 2479 SPWPN_KNIFE_OF_ACCURACY, 2480 SPWPN_STAFF_OF_OLGREB, 2481 SPWPN_VAMPIRES_TOOTH, 2482 SPWPN_STAFF_OF_WUCAD_MU // 195 2483 }; 2484 2485 enum SPECIAL_WIELD // you.special_wield 2486 { 2487 SPWLD_NONE, // 0 2488 SPWLD_SING, 2489 SPWLD_TROG, 2490 SPWLD_CURSE, 2491 SPWLD_VARIABLE, // 4 2492 SPWLD_PRUNE, // 5 - implicit in it_use3::special_wielded() {dlb} 2493 SPWLD_TORMENT, // 6 2494 SPWLD_ZONGULDROK, 2495 SPWLD_POWER, 2496 SPWLD_WUCAD_MU, // 9 2497 SPWLD_OLGREB, // 10 2498 SPWLD_SHADOW = 50, // 50 2499 SPWLD_HUM, // 51 - see it_use3::special_wielded() {dlb} 2500 SPWLD_CHIME, // 52 - see it_use3::special_wielded() {dlb} 2501 SPWLD_BECKON, // 53 - see it_use3::special_wielded() {dlb} 2502 SPWLD_SHOUT // 54 - see it_use3::special_wielded() {dlb} 2503 }; 2504 2505 enum SPECIES 2506 { 2507 SP_HUMAN = 1, // 1 2508 SP_ELF, 2509 SP_HIGH_ELF, 2510 SP_GREY_ELF, 2511 SP_DEEP_ELF, // 5 2512 SP_SLUDGE_ELF, 2513 SP_HILL_DWARF, 2514 SP_MOUNTAIN_DWARF, 2515 SP_HALFLING, 2516 SP_HILL_ORC, // 10 2517 SP_KOBOLD, 2518 SP_MUMMY, 2519 SP_NAGA, 2520 SP_GNOME, 2521 SP_OGRE, // 15 2522 SP_TROLL, 2523 SP_OGRE_MAGE, 2524 SP_RED_DRACONIAN, 2525 SP_WHITE_DRACONIAN, 2526 SP_GREEN_DRACONIAN, // 20 2527 SP_GOLDEN_DRACONIAN, 2528 SP_GREY_DRACONIAN, 2529 SP_BLACK_DRACONIAN, 2530 SP_PURPLE_DRACONIAN, 2531 SP_MOTTLED_DRACONIAN, // 25 2532 SP_PALE_DRACONIAN, 2533 SP_UNK0_DRACONIAN, 2534 SP_UNK1_DRACONIAN, 2535 SP_UNK2_DRACONIAN, 2536 SP_CENTAUR, // 30 2537 SP_DEMIGOD, 2538 SP_SPRIGGAN, 2539 SP_MINOTAUR, 2540 SP_DEMONSPAWN, 2541 SP_GHOUL, // 35 2542 SP_KENKU, 2543 SP_MERFOLK, 2544 NUM_SPECIES, // always after the last species 2545 2546 SP_UNKNOWN = 100 2547 }; 2548 2549 enum SPELLS 2550 { 2551 SPELL_IDENTIFY, // 0 2552 SPELL_TELEPORT_SELF, 2553 SPELL_CAUSE_FEAR, 2554 SPELL_CREATE_NOISE, 2555 SPELL_REMOVE_CURSE, 2556 SPELL_MAGIC_DART, // 5 2557 SPELL_FIREBALL, 2558 SPELL_SWAP, 2559 SPELL_APPORTATION, 2560 SPELL_TWIST, 2561 SPELL_FAR_STRIKE, // 10 2562 SPELL_DELAYED_FIREBALL, 2563 SPELL_STRIKING, 2564 SPELL_CONJURE_FLAME, 2565 SPELL_DIG, 2566 SPELL_BOLT_OF_FIRE, // 15 2567 SPELL_BOLT_OF_COLD, 2568 SPELL_LIGHTNING_BOLT, 2569 SPELL_BOLT_OF_MAGMA, // 18 2570 SPELL_POLYMORPH_OTHER = 20, // 20 2571 SPELL_SLOW, 2572 SPELL_HASTE, 2573 SPELL_PARALYZE, 2574 SPELL_CONFUSE, 2575 SPELL_INVISIBILITY, // 25 2576 SPELL_THROW_FLAME, 2577 SPELL_THROW_FROST, 2578 SPELL_CONTROLLED_BLINK, 2579 SPELL_FREEZING_CLOUD, 2580 SPELL_MEPHITIC_CLOUD, // 30 2581 SPELL_RING_OF_FLAMES, 2582 SPELL_RESTORE_STRENGTH, 2583 SPELL_RESTORE_INTELLIGENCE, 2584 SPELL_RESTORE_DEXTERITY, 2585 SPELL_VENOM_BOLT, // 35 2586 SPELL_OLGREBS_TOXIC_RADIANCE, 2587 SPELL_TELEPORT_OTHER, 2588 SPELL_LESSER_HEALING, 2589 SPELL_GREATER_HEALING, 2590 SPELL_CURE_POISON_I, // 40 2591 SPELL_PURIFICATION, 2592 SPELL_DEATHS_DOOR, 2593 SPELL_SELECTIVE_AMNESIA, 2594 SPELL_MASS_CONFUSION, 2595 SPELL_SMITING, // 45 2596 SPELL_REPEL_UNDEAD, 2597 SPELL_HOLY_WORD, 2598 SPELL_DETECT_CURSE, 2599 SPELL_SUMMON_SMALL_MAMMAL, 2600 SPELL_ABJURATION_I, // 50 2601 SPELL_SUMMON_SCORPIONS, 2602 SPELL_LEVITATION, 2603 SPELL_BOLT_OF_DRAINING, 2604 SPELL_LEHUDIBS_CRYSTAL_SPEAR, 2605 SPELL_BOLT_OF_INACCURACY, // 55 2606 SPELL_POISONOUS_CLOUD, 2607 SPELL_FIRE_STORM, 2608 SPELL_DETECT_TRAPS, 2609 SPELL_BLINK, 2610 SPELL_ISKENDERUNS_MYSTIC_BLAST, // 60 2611 SPELL_SWARM, 2612 SPELL_SUMMON_HORRIBLE_THINGS, 2613 SPELL_ENSLAVEMENT, 2614 SPELL_MAGIC_MAPPING, 2615 SPELL_HEAL_OTHER, // 65 2616 SPELL_ANIMATE_DEAD, 2617 SPELL_PAIN, 2618 SPELL_EXTENSION, 2619 SPELL_CONTROL_UNDEAD, 2620 SPELL_ANIMATE_SKELETON, // 70 2621 SPELL_VAMPIRIC_DRAINING, 2622 SPELL_SUMMON_WRAITHS, 2623 SPELL_DETECT_ITEMS, 2624 SPELL_BORGNJORS_REVIVIFICATION, 2625 SPELL_BURN, // 75 2626 SPELL_FREEZE, 2627 SPELL_SUMMON_ELEMENTAL, 2628 SPELL_OZOCUBUS_REFRIGERATION, 2629 SPELL_STICKY_FLAME, 2630 SPELL_SUMMON_ICE_BEAST, // 80 2631 SPELL_OZOCUBUS_ARMOUR, 2632 SPELL_CALL_IMP, 2633 SPELL_REPEL_MISSILES, 2634 SPELL_BERSERKER_RAGE, 2635 SPELL_DISPEL_UNDEAD, // 85 2636 SPELL_GUARDIAN, 2637 SPELL_PESTILENCE, 2638 SPELL_THUNDERBOLT, 2639 SPELL_FLAME_OF_CLEANSING, 2640 SPELL_SHINING_LIGHT, // 90 2641 SPELL_SUMMON_DAEVA, 2642 SPELL_ABJURATION_II, 2643 SPELL_FULSOME_DISTILLATION, // 93 2644 SPELL_POISON_ARROW, // 94 2645 SPELL_TWISTED_RESURRECTION = 110, // 110 2646 SPELL_REGENERATION, 2647 SPELL_BONE_SHARDS, 2648 SPELL_BANISHMENT, 2649 SPELL_CIGOTUVIS_DEGENERATION, 2650 SPELL_STING, // 115 2651 SPELL_SUBLIMATION_OF_BLOOD, 2652 SPELL_TUKIMAS_DANCE, 2653 SPELL_HELLFIRE, 2654 SPELL_SUMMON_DEMON, 2655 SPELL_DEMONIC_HORDE, // 120 2656 SPELL_SUMMON_GREATER_DEMON, 2657 SPELL_CORPSE_ROT, 2658 SPELL_TUKIMAS_VORPAL_BLADE, 2659 SPELL_FIRE_BRAND, 2660 SPELL_FREEZING_AURA, // 125 2661 SPELL_LETHAL_INFUSION, 2662 SPELL_CRUSH, 2663 SPELL_BOLT_OF_IRON, 2664 SPELL_STONE_ARROW, 2665 SPELL_TOMB_OF_DOROKLOHE, // 130 2666 SPELL_STONEMAIL, 2667 SPELL_SHOCK, 2668 SPELL_SWIFTNESS, 2669 SPELL_FLY, 2670 SPELL_INSULATION, // 135 2671 SPELL_ORB_OF_ELECTROCUTION, 2672 SPELL_DETECT_CREATURES, 2673 SPELL_CURE_POISON_II, 2674 SPELL_CONTROL_TELEPORT, 2675 SPELL_POISON_AMMUNITION, // 140 2676 SPELL_POISON_WEAPON, 2677 SPELL_RESIST_POISON, 2678 SPELL_PROJECTED_NOISE, 2679 SPELL_ALTER_SELF, 2680 SPELL_DEBUGGING_RAY, // 145 2681 SPELL_RECALL, 2682 SPELL_PORTAL, 2683 SPELL_AGONY, 2684 SPELL_SPIDER_FORM, 2685 SPELL_DISRUPT, // 150 2686 SPELL_DISINTEGRATE, 2687 SPELL_BLADE_HANDS, 2688 SPELL_STATUE_FORM, 2689 SPELL_ICE_FORM, 2690 SPELL_DRAGON_FORM, // 155 2691 SPELL_NECROMUTATION, 2692 SPELL_DEATH_CHANNEL, 2693 SPELL_SYMBOL_OF_TORMENT, 2694 SPELL_DEFLECT_MISSILES, 2695 SPELL_ORB_OF_FRAGMENTATION, // 160 2696 SPELL_ICE_BOLT, 2697 SPELL_ICE_STORM, 2698 SPELL_ARC, 2699 SPELL_AIRSTRIKE, 2700 SPELL_SHADOW_CREATURES, // 165 2701 SPELL_CONFUSING_TOUCH, 2702 SPELL_SURE_BLADE, 2703 //jmf: new spells 2704 SPELL_FLAME_TONGUE, 2705 SPELL_PASSWALL, 2706 SPELL_IGNITE_POISON, // 170 2707 SPELL_STICKS_TO_SNAKES, 2708 SPELL_SUMMON_LARGE_MAMMAL, // e.g. hound 2709 SPELL_SUMMON_DRAGON, 2710 SPELL_TAME_BEASTS, // charm/enslave but only animals 2711 SPELL_SLEEP, // 175 2712 SPELL_MASS_SLEEP, 2713 SPELL_DETECT_MAGIC, //jmf: unfinished, perhaps useless 2714 SPELL_DETECT_SECRET_DOORS, 2715 SPELL_SEE_INVISIBLE, 2716 SPELL_FORESCRY, // 180 2717 SPELL_SUMMON_BUTTERFLIES, 2718 SPELL_WARP_BRAND, 2719 SPELL_SILENCE, 2720 SPELL_SHATTER, 2721 SPELL_DISPERSAL, // 185 2722 SPELL_DISCHARGE, 2723 SPELL_BEND, 2724 SPELL_BACKLIGHT, 2725 SPELL_INTOXICATE, // confusion but only "smart" creatures 2726 SPELL_GLAMOUR, // charm/confuse/sleep but only "smart" creatures 190 2727 SPELL_EVAPORATE, // turn a potion into a cloud 2728 SPELL_ERINGYAS_SURPRISING_BOUQUET, // turn sticks into herbivore food 2729 SPELL_FRAGMENTATION, // replacement for "orb of frag" 2730 SPELL_AIR_WALK, // "dematerialize" (air/transmigration) 2731 SPELL_SANDBLAST, // mini-frag; can use stones for material comp 195 2732 SPELL_ROTTING, // evil god power or necromantic transmigration 2733 SPELL_SHUGGOTH_SEED, // evil god power or necromantic summoning 2734 SPELL_MAXWELLS_SILVER_HAMMER, // vorpal-brand maces etc. 2735 SPELL_CONDENSATION_SHIELD, // "shield" of icy vapour 2736 SPELL_SEMI_CONTROLLED_BLINK, //jmf: to test effect 200 2737 SPELL_STONESKIN, 2738 SPELL_SIMULACRUM, 2739 SPELL_CONJURE_BALL_LIGHTNING, // 203 (be wary of 210, see below) 2740 NUM_SPELLS, 2741 SPELL_NO_SPELL = 210 // 210 - added 22jan2000 {dlb} 2742 }; 2743 2744 enum SPELL_TYPES //jmf: 24jul2000: changed from integer-list to bitfield 2745 { 2746 SPTYP_NONE = 0, // "0" is reserved for no type at all {dlb} 2747 SPTYP_CONJURATION = 1, // was 11, but only for old typematch routine {dlb} 2748 SPTYP_ENCHANTMENT = 1<<1, 2749 SPTYP_FIRE = 1<<2, 2750 SPTYP_ICE = 1<<3, 2751 SPTYP_TRANSMIGRATION = 1<<4, 2752 SPTYP_NECROMANCY = 1<<5, 2753 SPTYP_SUMMONING = 1<<6, 2754 SPTYP_DIVINATION = 1<<7, 2755 SPTYP_TRANSLOCATION = 1<<8, 2756 SPTYP_POISON = 1<<9, 2757 SPTYP_EARTH = 1<<10, 2758 SPTYP_AIR = 1<<11, 2759 SPTYP_HOLY = 1<<12, //jmf: moved to accomodate "random" miscast f/x 2760 SPTYP_LAST_EXPONENT = 12, //jmf: ``NUM_SPELL_TYPES'' kinda useless 2761 NUM_SPELL_TYPES = 14, 2762 SPTYP_RANDOM = 1<<14 2763 }; 2764 2765 enum STATS 2766 { 2767 STAT_STRENGTH, // 0 2768 STAT_DEXTERITY, 2769 STAT_INTELLIGENCE, 2770 NUM_STATS, // added for increase_stats() {dlb} 2771 STAT_ALL, // must remain after NUM_STATS -- added to handle royal jelly, etc. {dlb} 2772 STAT_RANDOM = 255 // leave at 255, added for increase_stats() handling {dlb} 2773 }; 2774 2775 enum STATUE_TYPES 2776 { 2777 STATUE_SILVER, 2778 STATUE_ORANGE_CRYSTAL, 2779 NUM_STATUE_TYPES 2780 }; 2781 2782 enum STATUS_REDRAW_FLAGS 2783 { 2784 REDRAW_HUNGER = 0x00000001, 2785 REDRAW_BURDEN = 0x00000002, 2786 REDRAW_LINE_1_MASK = 0x00000003, 2787 2788 REDRAW_PRAYER = 0x00000100, 2789 REDRAW_REPEL_UNDEAD = 0x00000200, 2790 REDRAW_BREATH = 0x00000400, 2791 REDRAW_REPEL_MISSILES = 0x00000800, 2792 REDRAW_REGENERATION = 0x00001000, 2793 REDRAW_INSULATION = 0x00002000, 2794 REDRAW_FLY = 0x00004000, 2795 REDRAW_INVISIBILITY = 0x00008000, 2796 REDRAW_LINE_2_MASK = 0x0000ff00, 2797 2798 REDRAW_CONFUSION = 0x00010000, 2799 REDRAW_POISONED = 0x00020000, 2800 REDRAW_LIQUID_FLAMES = 0x00040000, 2801 REDRAW_DISEASED = 0x00080000, 2802 REDRAW_CONTAMINATED = 0x00100000, 2803 REDRAW_SWIFTNESS = 0x00200000, 2804 REDRAW_SPEED = 0x00400000, 2805 REDRAW_LINE_3_MASK = 0x007f0000 2806 }; 2807 2808 enum STAVES 2809 { 2810 STAFF_WIZARDRY, // 0 2811 STAFF_POWER, 2812 STAFF_FIRE, 2813 STAFF_COLD, 2814 STAFF_POISON, 2815 STAFF_ENERGY, // 5 2816 STAFF_DEATH, 2817 STAFF_CONJURATION, 2818 STAFF_ENCHANTMENT, 2819 STAFF_SUMMONING, 2820 STAFF_SMITING, // 10 2821 STAFF_SPELL_SUMMONING, 2822 STAFF_DESTRUCTION_I, 2823 STAFF_DESTRUCTION_II, 2824 STAFF_DESTRUCTION_III, 2825 STAFF_DESTRUCTION_IV, // 15 2826 STAFF_WARDING, 2827 STAFF_DISCOVERY, 2828 STAFF_DEMONOLOGY, // 18 2829 STAFF_STRIKING, // 19 2830 STAFF_AIR = 25, // 25 2831 STAFF_EARTH, 2832 STAFF_CHANNELING, 2833 NUM_STAVES // must remain last member {dlb} 2834 }; 2835 2836 enum SYMBOLS // beam[].type - note that this (and its variants) also accepts values from other enums - confusing {dlb} 2837 { 2838 SYM_SPACE = ' ', // 32 2839 SYM_FLASK = '!', // 33 2840 SYM_BOLT = '#', // 35 2841 SYM_CHUNK = '%', // 37 2842 SYM_OBJECT = '(', // 40 - actually used for books, but... {dlb} 2843 SYM_WEAPON = ')', // 41 2844 SYM_ZAP = '*', // 42 2845 SYM_BURST = '+', // 43 2846 SYM_STICK = '/', // 47 2847 SYM_TRINKET = '=', // 61 2848 SYM_SCROLL = '?', // 63 2849 SYM_DEBUG = 'X', // 88 2850 SYM_ARMOUR = '[', // 91 2851 SYM_MISSILE = '`' // 96 2852 }; 2853 2854 enum TAGS // used during save/load process to identify data blocks 2855 { 2856 TAG_VERSION = 0, // should NEVER be read in! 2857 TAG_YOU = 1, // 'you' structure 2858 TAG_YOU_ITEMS, // your items 2859 TAG_YOU_DUNGEON, // dungeon specs (stairs, branches, features) 2860 TAG_LEVEL, // various grids & clouds 2861 TAG_LEVEL_ITEMS, // items/traps 2862 TAG_LEVEL_MONSTERS, // monsters 2863 TAG_GHOST, // ghost 2864 TAG_LEVEL_ATTITUDE, // monster attitudes 2865 NUM_TAGS 2866 }; 2867 2868 enum TAGTYPES // file types supported by tag system 2869 { 2870 TAGTYPE_PLAYER=0, // Foo.sav 2871 TAGTYPE_LEVEL, // Foo.00a, .01a, etc. 2872 TAGTYPE_GHOST // bones.xxx 2873 }; 2874 2875 2876 enum TRANSFORMATIONS 2877 { 2878 TRAN_NONE, // 0 2879 TRAN_SPIDER, 2880 TRAN_BLADE_HANDS, 2881 TRAN_STATUE, 2882 TRAN_ICE_BEAST, 2883 TRAN_DRAGON, // 5 2884 TRAN_LICH, 2885 TRAN_SERPENT_OF_HELL, 2886 TRAN_AIR, 2887 NUM_TRANSFORMATIONS // must remain last member {dlb} 2888 }; 2889 2890 enum TRAPS // env.trap_type[] 2891 { 2892 TRAP_DART, // 0 2893 TRAP_ARROW, 2894 TRAP_SPEAR, 2895 TRAP_AXE, 2896 TRAP_TELEPORT, 2897 TRAP_AMNESIA, // 5 2898 TRAP_BLADE, 2899 TRAP_BOLT, 2900 TRAP_ZOT, 2901 TRAP_NEEDLE, 2902 NUM_TRAPS, // must remain last 'regular' member {dlb} 2903 TRAP_UNASSIGNED = 100, // keep set at 100 for now {dlb} 2904 TRAP_RANDOM = 255 // set at 255 to avoid potential conflicts {dlb} 2905 }; 2906 2907 enum UNARMED_ATTACKS 2908 { 2909 UNAT_NO_ATTACK, // 0 2910 UNAT_KICK, 2911 UNAT_HEADBUTT, 2912 UNAT_TAILSLAP, 2913 UNAT_PUNCH 2914 }; 2915 2916 enum UNDEAD_STATES // you.is_undead 2917 { 2918 US_ALIVE, // 0 2919 US_HUNGRY_DEAD, 2920 US_UNDEAD 2921 }; 2922 2923 enum UNIQUE_ITEM_STATUS 2924 { 2925 UNIQ_NOT_EXISTS = 0, 2926 UNIQ_EXISTS = 1, 2927 UNIQ_LOST_IN_ABYSS = 2 2928 }; 2929 2930 enum VORPAL_DESCRIPTIONS 2931 { 2932 DVORP_CRUSHING, // 0 2933 DVORP_SLICING, 2934 DVORP_PIERCING, 2935 DVORP_CHOPPING 2936 }; 2937 2938 // NOTE: This order is very special! Its basically the same as ZAP_*, 2939 // and there are bits of the code that still use that fact.. see zap_wand(). 2940 enum WANDS // mitm[].subtype 2941 { 2942 WAND_FLAME, // 0 2943 WAND_FROST, 2944 WAND_SLOWING, 2945 WAND_HASTING, 2946 WAND_MAGIC_DARTS, 2947 WAND_HEALING, // 5 2948 WAND_PARALYSIS, 2949 WAND_FIRE, 2950 WAND_COLD, 2951 WAND_CONFUSION, 2952 WAND_INVISIBILITY, // 10 2953 WAND_DIGGING, 2954 WAND_FIREBALL, 2955 WAND_TELEPORTATION, 2956 WAND_LIGHTNING, 2957 WAND_POLYMORPH_OTHER, // 15 2958 WAND_ENSLAVEMENT, 2959 WAND_DRAINING, 2960 WAND_RANDOM_EFFECTS, 2961 WAND_DISINTEGRATION, 2962 NUM_WANDS // must remain last member {dlb} 2963 }; 2964 2965 enum WEAPONS 2966 { 2967 // Base weapons 2968 WPN_CLUB, // 0 2969 WPN_MACE, 2970 WPN_FLAIL, 2971 WPN_DAGGER, 2972 WPN_MORNINGSTAR, 2973 WPN_SHORT_SWORD, // 5 2974 WPN_LONG_SWORD, 2975 WPN_GREAT_SWORD, 2976 WPN_SCIMITAR, 2977 WPN_HAND_AXE, 2978 WPN_BATTLEAXE, // 10 2979 WPN_SPEAR, 2980 WPN_HALBERD, 2981 WPN_SLING, 2982 WPN_BOW, 2983 WPN_CROSSBOW, // 15 2984 WPN_HAND_CROSSBOW, 2985 WPN_GLAIVE, 2986 WPN_QUARTERSTAFF, 2987 // these three not created ordinarily 2988 WPN_SCYTHE, 2989 WPN_GIANT_CLUB, // 20 2990 WPN_GIANT_SPIKED_CLUB, 2991 // "rare" weapons - some have special cases and are uncommon 2992 WPN_EVENINGSTAR, 2993 WPN_QUICK_BLADE, 2994 WPN_KATANA, 2995 WPN_EXECUTIONERS_AXE, // 25 2996 WPN_DOUBLE_SWORD, 2997 WPN_TRIPLE_SWORD, 2998 WPN_HAMMER, 2999 WPN_ANCUS, 3000 WPN_WHIP, // 30 3001 WPN_SABRE, 3002 WPN_DEMON_BLADE, 3003 WPN_DEMON_WHIP, 3004 WPN_DEMON_TRIDENT, 3005 WPN_BROAD_AXE, // 35 3006 // base items (continued) 3007 WPN_WAR_AXE, 3008 WPN_TRIDENT, 3009 WPN_SPIKED_FLAIL, 3010 WPN_GREAT_MACE, 3011 WPN_GREAT_FLAIL, // 40 3012 WPN_KNIFE, 3013 WPN_BLOWGUN, 3014 WPN_FALCHION, 3015 NUM_WEAPONS, // 44 - must remain last regular member {dlb} 3016 // special cases 3017 WPN_UNARMED = 500, // 500 3018 WPN_UNKNOWN = 1000, // 1000 3019 WPN_RANDOM 3020 }; 3021 3022 enum WEAPON_DESCRIPTIONS 3023 { 3024 DWPN_PLAIN = 0, // 0 - added to round out enum {dlb} 3025 DWPN_RUNED = 1, // 1 3026 DWPN_GLOWING, 3027 DWPN_ORCISH, 3028 DWPN_ELVEN, 3029 DWPN_DWARVEN // 5 3030 }; 3031 3032 enum WEAPON_PROPERTIES 3033 { 3034 PWPN_DAMAGE, // 0 3035 PWPN_HIT, 3036 PWPN_SPEED 3037 }; 3038 3039 #ifdef WIZARD 3040 3041 enum WIZARD_OPTIONS 3042 { 3043 WIZ_NEVER, // protect player from accidental wiz 3044 WIZ_NO, // don't start character in wiz mode 3045 WIZ_YES // start character in wiz mode 3046 }; 3047 3048 #endif 3049 3050 enum ZAPS // zapping(), zappy() 3051 { 3052 ZAP_FLAME, // 0 3053 ZAP_FROST, 3054 ZAP_SLOWING, 3055 ZAP_HASTING, 3056 ZAP_MAGIC_DARTS, 3057 ZAP_HEALING, // 5 3058 ZAP_PARALYSIS, 3059 ZAP_FIRE, 3060 ZAP_COLD, 3061 ZAP_CONFUSION, 3062 ZAP_INVISIBILITY, // 10 3063 ZAP_DIGGING, 3064 ZAP_FIREBALL, 3065 ZAP_TELEPORTATION, 3066 ZAP_LIGHTNING, 3067 ZAP_POLYMORPH_OTHER, // 15 3068 ZAP_VENOM_BOLT, 3069 ZAP_NEGATIVE_ENERGY, 3070 ZAP_CRYSTAL_SPEAR, 3071 ZAP_BEAM_OF_ENERGY, 3072 ZAP_MYSTIC_BLAST, // 20 3073 ZAP_ENSLAVEMENT, 3074 ZAP_PAIN, 3075 ZAP_STICKY_FLAME, 3076 ZAP_DISPEL_UNDEAD, 3077 ZAP_CLEANSING_FLAME, // 25 3078 ZAP_BONE_SHARDS, 3079 ZAP_BANISHMENT, 3080 ZAP_DEGENERATION, 3081 ZAP_STING, 3082 ZAP_HELLFIRE, // 30 3083 ZAP_IRON_BOLT, 3084 ZAP_STRIKING, 3085 ZAP_STONE_ARROW, 3086 ZAP_ELECTRICITY, 3087 ZAP_ORB_OF_ELECTRICITY, // 35 3088 ZAP_SPIT_POISON, 3089 ZAP_DEBUGGING_RAY, 3090 ZAP_BREATHE_FIRE, 3091 ZAP_BREATHE_FROST, 3092 ZAP_BREATHE_ACID, // 40 3093 ZAP_BREATHE_POISON, 3094 ZAP_BREATHE_POWER, 3095 ZAP_ENSLAVE_UNDEAD, 3096 ZAP_AGONY, 3097 ZAP_DISRUPTION, // 45 3098 ZAP_DISINTEGRATION, // 46 3099 ZAP_ISKS_CROSS, // 47: Isk's Cross -- commented out, deprecated {dlb} 3100 ZAP_BREATHE_STEAM = 48, // 48 3101 ZAP_CONTROL_DEMON, 3102 ZAP_ORB_OF_FRAGMENTATION, // 50 3103 ZAP_ICE_BOLT, 3104 ZAP_ICE_STORM, 3105 ZAP_BACKLIGHT, //jmf: added next bunch 19mar2000 3106 ZAP_SLEEP, 3107 ZAP_FLAME_TONGUE, 3108 ZAP_SANDBLAST, 3109 ZAP_SMALL_SANDBLAST, 3110 ZAP_MAGMA, 3111 ZAP_POISON_ARROW, 3112 NUM_ZAPS // must remain last member {dlb} 3113 }; 3114 3115 3116 #endif // ENUM_H 3117