From 414ade94db4f4c13c8b8b2f95ca0eb9a238cc559 Mon Sep 17 00:00:00 2001 From: dshaligram Date: Thu, 9 Nov 2006 16:00:27 +0000 Subject: Removed M_ON_FIRE (unused) and added M_UNIQUE to identify unique monsters. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/branches/stone_soup@376 c06c8d41-db1a-0410-9941-cceddc491573 --- crawl-ref/source/enum.h | 2 +- crawl-ref/source/mon-data.h | 96 ++++++++++++++++++++++++-------------------- crawl-ref/source/mon-util.cc | 18 ++++----- 3 files changed, 61 insertions(+), 55 deletions(-) diff --git a/crawl-ref/source/enum.h b/crawl-ref/source/enum.h index 2b4ef5daec..3e49122b01 100644 --- a/crawl-ref/source/enum.h +++ b/crawl-ref/source/enum.h @@ -1822,7 +1822,7 @@ enum mons_class_flags M_BURROWS = (1<<18), // monster digs through rock M_EVIL = (1<<19), // monster vulnerable to holy spells - M_ON_FIRE = (1<<20), // XXX: Potentially ditchable + M_UNIQUE = (1<<20), // monster is a unique M_FROZEN = (1<<21), // XXX: Potentially ditchable diff --git a/crawl-ref/source/mon-data.h b/crawl-ref/source/mon-data.h index f21d0f897d..c7ff09a8ea 100644 --- a/crawl-ref/source/mon-data.h +++ b/crawl-ref/source/mon-data.h @@ -1101,7 +1101,7 @@ { MONS_HELLION, '3', EC_FIRE, "hellion", - M_SPELLCASTER | M_ON_FIRE | M_EVIL, + M_SPELLCASTER | M_EVIL, MR_RES_POISON | MR_RES_HELLFIRE | MR_VUL_COLD, 0, 11, MONS_HELLION, MONS_HELLION, MH_DEMONIC, -7, { 10, 0, 0, 0 }, @@ -2639,7 +2639,7 @@ { MONS_MNOLEG, '&', LIGHTGREEN, "Mnoleg", - M_SEE_INVIS | M_SPELLCASTER | M_SPEAKS | M_EVIL, + M_SEE_INVIS | M_SPELLCASTER | M_SPEAKS | M_EVIL | M_UNIQUE, MR_RES_ELEC | MR_RES_POISON | MR_RES_FIRE, 0, 25, MONS_MNOLEG, MONS_MNOLEG, MH_DEMONIC, 5000, { 23, 23, 0, 0 }, @@ -2651,7 +2651,7 @@ { MONS_LOM_LOBON, '&', LIGHTBLUE, "Lom Lobon", - M_LEVITATE | M_SEE_INVIS | M_SPELLCASTER | M_SPEAKS | M_EVIL, + M_LEVITATE | M_SEE_INVIS | M_SPELLCASTER | M_SPEAKS | M_EVIL | M_UNIQUE, MR_RES_POISON | MR_RES_FIRE | MR_RES_COLD | MR_RES_ELEC, 0, 25, MONS_LOM_LOBON, MONS_LOM_LOBON, MH_DEMONIC, 5000, { 40, 0, 0, 0 }, @@ -2663,7 +2663,7 @@ { MONS_CEREBOV, '&', RED, "Cerebov", - M_SPELLCASTER | M_SEE_INVIS | M_SPEAKS | M_EVIL, + M_SPELLCASTER | M_SEE_INVIS | M_SPEAKS | M_EVIL | M_UNIQUE, MR_RES_ELEC | MR_RES_POISON | MR_RES_HELLFIRE, 0, 25, MONS_CEREBOV, MONS_CEREBOV, MH_DEMONIC, -6, { 50, 0, 0, 0 }, @@ -2675,7 +2675,7 @@ { MONS_GLOORX_VLOQ, '&', DARKGREY, "Gloorx Vloq", - M_LEVITATE | M_SEE_INVIS | M_SPELLCASTER | M_SPEAKS | M_EVIL, + M_LEVITATE | M_SEE_INVIS | M_SPELLCASTER | M_SPEAKS | M_EVIL | M_UNIQUE, MR_RES_POISON | MR_RES_COLD | MR_RES_ELEC, 0, 25, MONS_GLOORX_VLOQ, MONS_GLOORX_VLOQ, MH_DEMONIC, -14, { 20, 0, 0, 0 }, @@ -2934,7 +2934,7 @@ { MONS_TERENCE, '@', LIGHTCYAN, "Terence", - M_WARM_BLOOD | M_SPEAKS, + M_WARM_BLOOD | M_SPEAKS | M_UNIQUE, MR_NO_FLAGS, 0, 20, MONS_HUMAN, MONS_HUMAN, MH_NATURAL, -3, { 3, 0, 0, 0 }, @@ -2946,7 +2946,7 @@ { MONS_JESSICA, '@', LIGHTGREY, "Jessica", - M_SPELLCASTER | M_ACTUAL_SPELLS | M_SPEAKS | M_WARM_BLOOD, + M_SPELLCASTER | M_ACTUAL_SPELLS | M_SPEAKS | M_WARM_BLOOD | M_UNIQUE, MR_NO_FLAGS, 0, 20, MONS_HUMAN, MONS_HUMAN, MH_NATURAL, -3, { 4, 0, 0, 0 }, @@ -2958,7 +2958,7 @@ { MONS_IJYB, 'g', BLUE, "Ijyb", - M_WARM_BLOOD | M_SPEAKS, + M_WARM_BLOOD | M_SPEAKS | M_UNIQUE, MR_NO_FLAGS, 0, 5, MONS_GOBLIN, MONS_GOBLIN, MH_NATURAL, -3, { 4, 0, 0, 0 }, @@ -2970,7 +2970,7 @@ { MONS_SIGMUND, '@', YELLOW, "Sigmund", - M_SPELLCASTER | M_ACTUAL_SPELLS | M_SPEAKS | M_WARM_BLOOD, + M_SPELLCASTER | M_ACTUAL_SPELLS | M_SPEAKS | M_WARM_BLOOD | M_UNIQUE, MR_NO_FLAGS, 0, 20, MONS_HUMAN, MONS_HUMAN, MH_NATURAL, -3, { 5, 0, 0, 0 }, @@ -2982,7 +2982,7 @@ { MONS_BLORK_THE_ORC, 'o', BROWN, "Blork the orc", - M_SPELLCASTER | M_ACTUAL_SPELLS | M_SPEAKS | M_WARM_BLOOD, + M_SPELLCASTER | M_ACTUAL_SPELLS | M_SPEAKS | M_WARM_BLOOD | M_UNIQUE, MR_NO_FLAGS, 0, 20, MONS_ORC, MONS_ORC, MH_NATURAL, -4, { 7, 0, 0, 0 }, @@ -2994,7 +2994,7 @@ { MONS_EDMUND, '@', RED, "Edmund", - M_WARM_BLOOD | M_SPEAKS, + M_WARM_BLOOD | M_SPEAKS | M_UNIQUE, MR_NO_FLAGS, 0, 20, MONS_HUMAN, MONS_HUMAN, MH_NATURAL, -4, { 6, 0, 0, 0 }, @@ -3006,7 +3006,7 @@ { MONS_PSYCHE, '@', LIGHTMAGENTA, "Psyche", - M_SPELLCASTER | M_ACTUAL_SPELLS | M_SPEAKS | M_WARM_BLOOD, + M_SPELLCASTER | M_ACTUAL_SPELLS | M_SPEAKS | M_WARM_BLOOD | M_UNIQUE, MR_NO_FLAGS, 0, 20, MONS_HUMAN, MONS_HUMAN, MH_NATURAL, -4, { 7, 0, 0, 0 }, @@ -3018,7 +3018,8 @@ { MONS_EROLCHA, 'O', LIGHTBLUE, "Erolcha", - M_SPELLCASTER | M_ACTUAL_SPELLS | M_SEE_INVIS | M_WARM_BLOOD | M_SPEAKS | M_EVIL, + M_SPELLCASTER | M_ACTUAL_SPELLS | M_SEE_INVIS | M_WARM_BLOOD + | M_SPEAKS | M_EVIL | M_UNIQUE, MR_RES_ELEC, 0, 20, MONS_OGRE, MONS_OGRE, MH_NATURAL, -7, { 20, 0, 0, 0 }, @@ -3030,7 +3031,7 @@ { MONS_DONALD, '@', BLUE, "Donald", - M_WARM_BLOOD | M_SPEAKS, + M_WARM_BLOOD | M_SPEAKS | M_UNIQUE, MR_NO_FLAGS, 0, 20, MONS_HUMAN, MONS_HUMAN, MH_NATURAL, -5, { 8, 0, 0, 0 }, @@ -3042,7 +3043,7 @@ { MONS_URUG, 'o', RED, "Urug", - M_WARM_BLOOD | M_SPEAKS, + M_WARM_BLOOD | M_SPEAKS | M_UNIQUE, MR_NO_FLAGS, 0, 20, MONS_ORC, MONS_ORC, MH_NATURAL, -5, { 12, 0, 0, 0 }, @@ -3054,7 +3055,7 @@ { MONS_MICHAEL, '@', LIGHTGREY, "Michael", - M_SPELLCASTER | M_ACTUAL_SPELLS | M_SPEAKS | M_WARM_BLOOD, + M_SPELLCASTER | M_ACTUAL_SPELLS | M_SPEAKS | M_WARM_BLOOD | M_UNIQUE, MR_NO_FLAGS, 0, 20, MONS_HUMAN, MONS_HUMAN, MH_NATURAL, -5, { 9, 0, 0, 0 }, @@ -3066,7 +3067,7 @@ { MONS_JOSEPH, '@', CYAN, "Joseph", - M_WARM_BLOOD | M_SPEAKS, + M_WARM_BLOOD | M_SPEAKS | M_UNIQUE, MR_NO_FLAGS, 0, 20, MONS_HUMAN, MONS_HUMAN, MH_NATURAL, -5, { 9, 0, 0, 0 }, @@ -3078,7 +3079,7 @@ { MONS_SNORG, 'T', GREEN, "Snorg", - M_WARM_BLOOD | M_SPEAKS | M_EVIL, + M_WARM_BLOOD | M_SPEAKS | M_EVIL | M_UNIQUE, MR_NO_FLAGS, 0, 20, MONS_TROLL, MONS_TROLL, MH_NATURAL, -6, { 20, 15, 15, 0 }, @@ -3090,7 +3091,7 @@ { MONS_ERICA, '@', MAGENTA, "Erica", - M_SPELLCASTER | M_ACTUAL_SPELLS | M_SPEAKS | M_WARM_BLOOD, + M_SPELLCASTER | M_ACTUAL_SPELLS | M_SPEAKS | M_WARM_BLOOD | M_UNIQUE, MR_NO_FLAGS, 0, 20, MONS_HUMAN, MONS_HUMAN, MH_NATURAL, -5, { 10, 0, 0, 0 }, @@ -3102,7 +3103,7 @@ { MONS_JOSEPHINE, '@', WHITE, "Josephine", - M_SPELLCASTER | M_ACTUAL_SPELLS | M_SPEAKS | M_WARM_BLOOD, + M_SPELLCASTER | M_ACTUAL_SPELLS | M_SPEAKS | M_WARM_BLOOD | M_UNIQUE, MR_NO_FLAGS, 0, 20, MONS_HUMAN, MONS_HUMAN, MH_NATURAL, -5, { 11, 0, 0, 0 }, @@ -3114,7 +3115,7 @@ { MONS_HAROLD, '@', LIGHTGREEN, "Harold", - M_SPELLCASTER | M_ACTUAL_SPELLS | M_SPEAKS | M_WARM_BLOOD, + M_SPELLCASTER | M_ACTUAL_SPELLS | M_SPEAKS | M_WARM_BLOOD | M_UNIQUE, MR_NO_FLAGS, 0, 20, MONS_HUMAN, MONS_HUMAN, MH_NATURAL, -5, { 12, 0, 0, 0 }, @@ -3126,7 +3127,7 @@ { MONS_NORBERT, '@', BROWN, "Norbert", - M_WARM_BLOOD | M_SPEAKS, + M_WARM_BLOOD | M_SPEAKS | M_UNIQUE, MR_NO_FLAGS, 0, 20, MONS_HUMAN, MONS_HUMAN, MH_NATURAL, -5, { 14, 0, 0, 0 }, @@ -3138,7 +3139,7 @@ { MONS_JOZEF, '@', LIGHTMAGENTA, "Jozef", - M_SPELLCASTER | M_ACTUAL_SPELLS | M_SPEAKS | M_WARM_BLOOD, + M_SPELLCASTER | M_ACTUAL_SPELLS | M_SPEAKS | M_WARM_BLOOD | M_UNIQUE, MR_NO_FLAGS, 0, 20, MONS_HUMAN, MONS_HUMAN, MH_NATURAL, -5, { 14, 0, 0, 0 }, @@ -3150,7 +3151,7 @@ { MONS_AGNES, '@', LIGHTBLUE, "Agnes", - M_WARM_BLOOD | M_SPEAKS, + M_WARM_BLOOD | M_SPEAKS | M_UNIQUE, MR_NO_FLAGS, 0, 20, MONS_HUMAN, MONS_HUMAN, MH_NATURAL, -5, { 11, 0, 0, 0 }, @@ -3162,7 +3163,7 @@ { MONS_MAUD, '@', RED, "Maud", - M_WARM_BLOOD | M_SPEAKS, + M_WARM_BLOOD | M_SPEAKS | M_UNIQUE, MR_NO_FLAGS, 0, 20, MONS_HUMAN, MONS_HUMAN, MH_NATURAL, -5, { 14, 0, 0, 0 }, @@ -3174,7 +3175,7 @@ { MONS_LOUISE, '@', BLUE, "Louise", - M_SPELLCASTER | M_ACTUAL_SPELLS | M_SPEAKS | M_WARM_BLOOD, + M_SPELLCASTER | M_ACTUAL_SPELLS | M_SPEAKS | M_WARM_BLOOD | M_UNIQUE, MR_RES_ELEC, 0, 20, MONS_HUMAN, MONS_HUMAN, MH_NATURAL, -5, { 12, 0, 0, 0 }, @@ -3186,7 +3187,8 @@ { MONS_FRANCIS, '@', YELLOW, "Francis", - M_SPELLCASTER | M_ACTUAL_SPELLS | M_SPEAKS | M_WARM_BLOOD | M_SEE_INVIS | M_EVIL, + M_SPELLCASTER | M_ACTUAL_SPELLS | M_SPEAKS | M_WARM_BLOOD + | M_SEE_INVIS | M_EVIL | M_UNIQUE, MR_NO_FLAGS, 0, 20, MONS_HUMAN, MONS_HUMAN, MH_NATURAL, -5, { 12, 0, 0, 0 }, @@ -3198,7 +3200,8 @@ { MONS_FRANCES, '@', YELLOW, "Frances", - M_SPELLCASTER | M_ACTUAL_SPELLS | M_SPEAKS | M_WARM_BLOOD | M_SEE_INVIS | M_EVIL, + M_SPELLCASTER | M_ACTUAL_SPELLS | M_SPEAKS | M_WARM_BLOOD + | M_SEE_INVIS | M_EVIL | M_UNIQUE, MR_NO_FLAGS, 0, 20, MONS_HUMAN, MONS_HUMAN, MH_NATURAL, -5, { 11, 0, 0, 0 }, @@ -3210,7 +3213,8 @@ { MONS_RUPERT, '@', RED, "Rupert", - M_SPELLCASTER | M_ACTUAL_SPELLS | M_SPEAKS | M_WARM_BLOOD | M_SEE_INVIS, + M_SPELLCASTER | M_ACTUAL_SPELLS | M_SPEAKS | M_WARM_BLOOD + | M_SEE_INVIS | M_UNIQUE, MR_RES_ELEC, 0, 20, MONS_HUMAN, MONS_HUMAN, MH_NATURAL, -5, { 13, 0, 0, 0 }, @@ -3222,7 +3226,8 @@ { MONS_WAYNE, '@', YELLOW, "Wayne", - M_SPELLCASTER | M_ACTUAL_SPELLS | M_SPEAKS | M_WARM_BLOOD | M_SEE_INVIS, + M_SPELLCASTER | M_ACTUAL_SPELLS | M_SPEAKS | M_WARM_BLOOD + | M_SEE_INVIS | M_UNIQUE, MR_NO_FLAGS, 0, 20, MONS_HUMAN, MONS_HUMAN, MH_NATURAL, -5, { 14, 0, 0, 0 }, @@ -3234,7 +3239,8 @@ { MONS_DUANE, '@', YELLOW, "Duane", - M_SPELLCASTER | M_ACTUAL_SPELLS | M_SPEAKS | M_WARM_BLOOD | M_SEE_INVIS, + M_SPELLCASTER | M_ACTUAL_SPELLS | M_SPEAKS | M_WARM_BLOOD + | M_SEE_INVIS | M_UNIQUE, MR_NO_FLAGS, 0, 20, MONS_HUMAN, MONS_HUMAN, MH_NATURAL, -5, { 14, 0, 0, 0 }, @@ -3246,7 +3252,7 @@ { MONS_XTAHUA, 'D', RED, "Xtahua", - M_SPEAKS | M_SEE_INVIS | M_FLIES | M_SPECIAL_ABILITY, + M_SPEAKS | M_SEE_INVIS | M_FLIES | M_SPECIAL_ABILITY | M_UNIQUE, MR_RES_POISON | MR_RES_FIRE | MR_VUL_COLD, 0, 20, MONS_DRAGON, MONS_DRAGON, MH_NATURAL, -7, { 29, 17, 17, 0 }, @@ -3258,7 +3264,8 @@ { MONS_NORRIS, '@', LIGHTRED, "Norris", - M_SPELLCASTER | M_ACTUAL_SPELLS | M_SPEAKS | M_WARM_BLOOD | M_SEE_INVIS | M_EVIL, + M_SPELLCASTER | M_ACTUAL_SPELLS | M_SPEAKS | M_WARM_BLOOD + | M_SEE_INVIS | M_EVIL | M_UNIQUE, MR_NO_FLAGS, 0, 20, MONS_HUMAN, MONS_HUMAN, MH_NATURAL, -5, { 16, 0, 0, 0 }, @@ -3270,7 +3277,8 @@ { MONS_ADOLF, '@', DARKGREY, "Adolf", - M_SPELLCASTER | M_ACTUAL_SPELLS | M_SPEAKS | M_WARM_BLOOD | M_SEE_INVIS | M_EVIL, + M_SPELLCASTER | M_ACTUAL_SPELLS | M_SPEAKS | M_WARM_BLOOD + | M_SEE_INVIS | M_EVIL | M_UNIQUE, MR_NO_FLAGS, 0, 20, MONS_HUMAN, MONS_HUMAN, MH_NATURAL, -5, { 17, 0, 0, 0 }, @@ -3282,7 +3290,8 @@ { MONS_MARGERY, '@', RED, "Margery", - M_SPELLCASTER | M_ACTUAL_SPELLS | M_SPEAKS | M_WARM_BLOOD | M_SEE_INVIS, + M_SPELLCASTER | M_ACTUAL_SPELLS | M_SPEAKS | M_WARM_BLOOD + | M_SEE_INVIS | M_UNIQUE, MR_NO_FLAGS, 0, 20, MONS_HUMAN, MONS_HUMAN, MH_NATURAL, -5, { 18, 0, 0, 0 }, @@ -3294,7 +3303,8 @@ { MONS_BORIS, 'L', RED, "Boris", - M_SPELLCASTER | M_ACTUAL_SPELLS | M_SEE_INVIS | M_SPEAKS | M_EVIL, + M_SPELLCASTER | M_ACTUAL_SPELLS | M_SEE_INVIS | M_SPEAKS | M_EVIL + | M_UNIQUE, MR_RES_POISON | MR_RES_COLD | MR_RES_ELEC, 0, 23, MONS_LICH, MONS_LICH, MH_UNDEAD, -11, { 15, 0, 0, 0 }, @@ -3307,7 +3317,7 @@ { MONS_GERYON, '&', GREEN, "Geryon", - M_SPELLCASTER | M_SEE_INVIS | M_SPEAKS | M_EVIL, + M_SPELLCASTER | M_SEE_INVIS | M_SPEAKS | M_EVIL | M_UNIQUE, MR_NO_FLAGS, 0, 25, MONS_GERYON, MONS_GERYON, MH_DEMONIC, -6, { 30, 0, 0, 0 }, @@ -3319,7 +3329,7 @@ { MONS_DISPATER, '&', MAGENTA, "Dispater", - M_SPELLCASTER | M_SEE_INVIS | M_SPEAKS | M_EVIL, + M_SPELLCASTER | M_SEE_INVIS | M_SPEAKS | M_EVIL | M_UNIQUE, MR_RES_ELEC | MR_RES_POISON | MR_RES_HELLFIRE | MR_RES_COLD, 0, 25, MONS_DISPATER, MONS_DISPATER, MH_DEMONIC, -10, { 15, 0, 0, 0 }, @@ -3331,7 +3341,7 @@ { MONS_ASMODEUS, '&', LIGHTMAGENTA, "Asmodeus", - M_SPELLCASTER | M_FLIES | M_SEE_INVIS | M_SPEAKS | M_EVIL, + M_SPELLCASTER | M_FLIES | M_SEE_INVIS | M_SPEAKS | M_EVIL | M_UNIQUE, MR_RES_ELEC | MR_RES_POISON | MR_RES_HELLFIRE, 0, 25, MONS_ASMODEUS, MONS_ASMODEUS, MH_DEMONIC, -12, { 20, 0, 0, 0 }, @@ -3344,7 +3354,7 @@ // Antaeus is now demonic so that he'll resist torment. -- bwr { MONS_ANTAEUS, 'C', LIGHTCYAN, "Antaeus", - M_SPELLCASTER | M_SPEAKS, + M_SPELLCASTER | M_SPEAKS | M_UNIQUE, MR_RES_ELEC | MR_VUL_FIRE | MR_RES_COLD, 0, 25, MONS_HILL_GIANT, MONS_ANTAEUS, MH_DEMONIC, -9, { 30, 0, 0, 0 }, @@ -3356,7 +3366,7 @@ { MONS_ERESHKIGAL, '&', WHITE, "Ereshkigal", - M_SPELLCASTER | M_SEE_INVIS | M_SPEAKS | M_EVIL, + M_SPELLCASTER | M_SEE_INVIS | M_SPEAKS | M_EVIL | M_UNIQUE, MR_RES_ELEC | MR_RES_POISON | MR_RES_COLD, 0, 25, MONS_ERESHKIGAL, MONS_ERESHKIGAL, MH_DEMONIC, -10, { 20, 0, 0, 0 }, @@ -4049,7 +4059,7 @@ /* player ghost - only one per level. stats are stored in ghost struct */ { MONS_PLAYER_GHOST, 'p', DARKGREY, "", - M_SPEAKS | M_SPELLCASTER | M_ACTUAL_SPELLS | M_FLIES, + M_SPEAKS | M_SPELLCASTER | M_ACTUAL_SPELLS | M_FLIES | M_UNIQUE, MR_RES_POISON, 0, 15, MONS_PHANTOM, MONS_PLAYER_GHOST, MH_UNDEAD, -5, { 5, 0, 0, 0 }, @@ -4062,7 +4072,7 @@ /* random demon in pan - only one per level. stats are stored in ghost struct */ { MONS_PANDEMONIUM_DEMON, '&', BLACK, "&", - M_SPELLCASTER | M_SPEAKS | M_EVIL, + M_SPELLCASTER | M_SPEAKS | M_EVIL | M_UNIQUE, MR_RES_POISON, 0, 14, MONS_PANDEMONIUM_DEMON, MONS_PANDEMONIUM_DEMON, MH_DEMONIC, -5, { 5, 0, 0, 0 }, diff --git a/crawl-ref/source/mon-util.cc b/crawl-ref/source/mon-util.cc index 2007337d43..5aa8142652 100644 --- a/crawl-ref/source/mon-util.cc +++ b/crawl-ref/source/mon-util.cc @@ -260,7 +260,12 @@ unsigned long mons_resist(const monsters *mon, unsigned long flags) bool mons_class_flag(int mc, int bf) { - return ((smc->bitfields & bf) != 0); + const monsterentry *me = smc; + + if (!me) + return (false); + + return ((me->bitfields & bf) != 0); } // end mons_class_flag() static int scan_mon_inv_randarts( const monsters *mon, int ra_prop ) @@ -434,16 +439,7 @@ int mons_shouts(int mc) bool mons_is_unique( int mc ) { - if (mc <= MONS_PROGRAM_BUG - || (mc >= MONS_NAGA_MAGE && mc <= MONS_ROYAL_JELLY) - || (mc >= MONS_DRACONIAN && mc <= MONS_DRACONIAN_SCORCHER) - || (mc >= MONS_ANCIENT_LICH - && (mc != MONS_PLAYER_GHOST && mc != MONS_PANDEMONIUM_DEMON))) - { - return (false); - } - - return (true); + return (mons_class_flag(mc, M_UNIQUE)); } char mons_see_invis( struct monsters *mon ) -- cgit v1.2.3-54-g00ecf