Go to the source code of this file.
Defines | |
#define | verysmall(ptr) ((ptr)->msize < MZ_SMALL) |
#define | bigmonst(ptr) ((ptr)->msize >= MZ_LARGE) |
#define | hugemonst(ptr) ((ptr)->msize >= MZ_HUGE) |
#define | pm_resistance(ptr, typ) (((ptr)->mresists & (typ)) != 0) |
#define | resists_fire(mon) (((mon)->mintrinsics & MR_FIRE) != 0) |
#define | resists_cold(mon) (((mon)->mintrinsics & MR_COLD) != 0) |
#define | resists_sleep(mon) (((mon)->mintrinsics & MR_SLEEP) != 0) |
#define | resists_disint(mon) (((mon)->mintrinsics & MR_DISINT) != 0) |
#define | resists_elec(mon) (((mon)->mintrinsics & MR_ELEC) != 0) |
#define | resists_poison(mon) (((mon)->mintrinsics & MR_POISON) != 0) |
#define | resists_acid(mon) (((mon)->mintrinsics & MR_ACID) != 0) |
#define | resists_ston(mon) (((mon)->mintrinsics & MR_STONE) != 0) |
#define | is_lminion(mon) |
#define | is_flyer(ptr) (((ptr)->mflags1 & M1_FLY) != 0L) |
#define | is_floater(ptr) ((ptr)->mlet == S_EYE) |
#define | is_clinger(ptr) (((ptr)->mflags1 & M1_CLING) != 0L) |
#define | is_swimmer(ptr) (((ptr)->mflags1 & M1_SWIM) != 0L) |
#define | breathless(ptr) (((ptr)->mflags1 & M1_BREATHLESS) != 0L) |
#define | amphibious(ptr) (((ptr)->mflags1 & (M1_AMPHIBIOUS | M1_BREATHLESS)) != 0L) |
#define | passes_walls(ptr) (((ptr)->mflags1 & M1_WALLWALK) != 0L) |
#define | amorphous(ptr) (((ptr)->mflags1 & M1_AMORPHOUS) != 0L) |
#define | noncorporeal(ptr) ((ptr)->mlet == S_GHOST) |
#define | tunnels(ptr) (((ptr)->mflags1 & M1_TUNNEL) != 0L) |
#define | needspick(ptr) (((ptr)->mflags1 & M1_NEEDPICK) != 0L) |
#define | hides_under(ptr) (((ptr)->mflags1 & M1_CONCEAL) != 0L) |
#define | is_hider(ptr) (((ptr)->mflags1 & M1_HIDE) != 0L) |
#define | haseyes(ptr) (((ptr)->mflags1 & M1_NOEYES) == 0L) |
#define | eyecount(ptr) |
#define | nohands(ptr) (((ptr)->mflags1 & M1_NOHANDS) != 0L) |
#define | nolimbs(ptr) (((ptr)->mflags1 & M1_NOLIMBS) == M1_NOLIMBS) |
#define | notake(ptr) (((ptr)->mflags1 & M1_NOTAKE) != 0L) |
#define | has_head(ptr) (((ptr)->mflags1 & M1_NOHEAD) == 0L) |
#define | has_horns(ptr) (num_horns(ptr) > 0) |
#define | is_whirly(ptr) |
#define | flaming(ptr) |
#define | is_silent(ptr) ((ptr)->msound == MS_SILENT) |
#define | unsolid(ptr) (((ptr)->mflags1 & M1_UNSOLID) != 0L) |
#define | mindless(ptr) (((ptr)->mflags1 & M1_MINDLESS) != 0L) |
#define | humanoid(ptr) (((ptr)->mflags1 & M1_HUMANOID) != 0L) |
#define | is_animal(ptr) (((ptr)->mflags1 & M1_ANIMAL) != 0L) |
#define | slithy(ptr) (((ptr)->mflags1 & M1_SLITHY) != 0L) |
#define | is_wooden(ptr) ((ptr) == &mons[PM_WOOD_GOLEM]) |
#define | thick_skinned(ptr) (((ptr)->mflags1 & M1_THICK_HIDE) != 0L) |
#define | lays_eggs(ptr) (((ptr)->mflags1 & M1_OVIPAROUS) != 0L) |
#define | regenerates(ptr) (((ptr)->mflags1 & M1_REGEN) != 0L) |
#define | perceives(ptr) (((ptr)->mflags1 & M1_SEE_INVIS) != 0L) |
#define | can_teleport(ptr) (((ptr)->mflags1 & M1_TPORT) != 0L) |
#define | control_teleport(ptr) (((ptr)->mflags1 & M1_TPORT_CNTRL) != 0L) |
#define | telepathic(ptr) |
#define | is_armed(ptr) attacktype(ptr, AT_WEAP) |
#define | acidic(ptr) (((ptr)->mflags1 & M1_ACID) != 0L) |
#define | poisonous(ptr) (((ptr)->mflags1 & M1_POIS) != 0L) |
#define | carnivorous(ptr) (((ptr)->mflags1 & M1_CARNIVORE) != 0L) |
#define | herbivorous(ptr) (((ptr)->mflags1 & M1_HERBIVORE) != 0L) |
#define | metallivorous(ptr) (((ptr)->mflags1 & M1_METALLIVORE) != 0L) |
#define | polyok(ptr) (((ptr)->mflags2 & M2_NOPOLY) == 0L) |
#define | is_undead(ptr) (((ptr)->mflags2 & M2_UNDEAD) != 0L) |
#define | is_were(ptr) (((ptr)->mflags2 & M2_WERE) != 0L) |
#define | is_vampire(ptr) |
#define | is_vampiric(ptr) |
#define | is_elf(ptr) (((ptr)->mflags2 & M2_ELF) != 0L) |
#define | is_dwarf(ptr) (((ptr)->mflags2 & M2_DWARF) != 0L) |
#define | is_gnome(ptr) (((ptr)->mflags2 & M2_GNOME) != 0L) |
#define | is_orc(ptr) (((ptr)->mflags2 & M2_ORC) != 0L) |
#define | is_human(ptr) (((ptr)->mflags2 & M2_HUMAN) != 0L) |
#define | your_race(ptr) (((ptr)->mflags2 & urace.selfmask) != 0L) |
#define | is_bat(ptr) |
#define | is_bird(ptr) ((ptr)->mlet == S_BAT && !is_bat(ptr)) |
#define | is_giant(ptr) (((ptr)->mflags2 & M2_GIANT) != 0L) |
#define | is_golem(ptr) ((ptr)->mlet == S_GOLEM) |
#define | is_domestic(ptr) (((ptr)->mflags2 & M2_DOMESTIC) != 0L) |
#define | is_demon(ptr) (((ptr)->mflags2 & M2_DEMON) != 0L) |
#define | is_mercenary(ptr) (((ptr)->mflags2 & M2_MERC) != 0L) |
#define | is_male(ptr) (((ptr)->mflags2 & M2_MALE) != 0L) |
#define | is_female(ptr) (((ptr)->mflags2 & M2_FEMALE) != 0L) |
#define | is_neuter(ptr) (((ptr)->mflags2 & M2_NEUTER) != 0L) |
#define | is_wanderer(ptr) (((ptr)->mflags2 & M2_WANDER) != 0L) |
#define | always_hostile(ptr) (((ptr)->mflags2 & M2_HOSTILE) != 0L) |
#define | always_peaceful(ptr) (((ptr)->mflags2 & M2_PEACEFUL) != 0L) |
#define | race_hostile(ptr) (((ptr)->mflags2 & urace.hatemask) != 0L) |
#define | race_peaceful(ptr) (((ptr)->mflags2 & urace.lovemask) != 0L) |
#define | extra_nasty(ptr) (((ptr)->mflags2 & M2_NASTY) != 0L) |
#define | strongmonst(ptr) (((ptr)->mflags2 & M2_STRONG) != 0L) |
#define | can_breathe(ptr) attacktype(ptr, AT_BREA) |
#define | cantwield(ptr) (nohands(ptr) || verysmall(ptr)) |
#define | could_twoweap(ptr) ((ptr)->mattk[1].aatyp == AT_WEAP) |
#define | cantweararm(ptr) (breakarm(ptr) || sliparm(ptr)) |
#define | throws_rocks(ptr) (((ptr)->mflags2 & M2_ROCKTHROW) != 0L) |
#define | type_is_pname(ptr) (((ptr)->mflags2 & M2_PNAME) != 0L) |
#define | is_lord(ptr) (((ptr)->mflags2 & M2_LORD) != 0L) |
#define | is_prince(ptr) (((ptr)->mflags2 & M2_PRINCE) != 0L) |
#define | is_ndemon(ptr) |
#define | is_dlord(ptr) (is_demon(ptr) && is_lord(ptr)) |
#define | is_dprince(ptr) (is_demon(ptr) && is_prince(ptr)) |
#define | is_minion(ptr) ((ptr)->mflags2 & M2_MINION) |
#define | likes_gold(ptr) (((ptr)->mflags2 & M2_GREEDY) != 0L) |
#define | likes_gems(ptr) (((ptr)->mflags2 & M2_JEWELS) != 0L) |
#define | likes_objs(ptr) |
#define | likes_magic(ptr) (((ptr)->mflags2 & M2_MAGIC) != 0L) |
#define | webmaker(ptr) |
#define | is_unicorn(ptr) ((ptr)->mlet == S_UNICORN && likes_gems(ptr)) |
#define | is_longworm(ptr) |
#define | is_covetous(ptr) ((ptr->mflags3 & M3_COVETOUS)) |
#define | infravision(ptr) ((ptr->mflags3 & M3_INFRAVISION)) |
#define | infravisible(ptr) ((ptr->mflags3 & M3_INFRAVISIBLE)) |
#define | is_mplayer(ptr) |
#define | is_rider(ptr) |
#define | is_guardian(ptr) |
#define | is_placeholder(ptr) |
#define | is_reviver(ptr) (is_rider(ptr) || (ptr)->mlet == S_TROLL) |
#define | emits_light(ptr) |
#define | likes_lava(ptr) |
#define | pm_invisible(ptr) |
#define | likes_fire(ptr) |
#define | touch_petrifies(ptr) |
#define | is_mind_flayer(ptr) |
#define | nonliving(ptr) |
#define | vegan(ptr) |
#define | vegetarian(ptr) |
#define | has_blood(ptr) |
#define | befriend_with_obj(ptr, obj) |
#define acidic | ( | ptr ) | (((ptr)->mflags1 & M1_ACID) != 0L) |
Referenced by bite_monster(), cprefx(), dogfood(), dotrap(), eatcorpse(), edibility_prompts(), mintrap(), mon_consume_unstone(), mpickstuff(), munstone(), and searches_for_item().
#define always_hostile | ( | ptr ) | (((ptr)->mflags2 & M2_HOSTILE) != 0L) |
Referenced by peace_minded(), set_malign(), and xkilled().
#define always_peaceful | ( | ptr ) | (((ptr)->mflags2 & M2_PEACEFUL) != 0L) |
Referenced by peace_minded(), and set_malign().
#define amorphous | ( | ptr ) | (((ptr)->mflags1 & M1_AMORPHOUS) != 0L) |
Referenced by artifact_hit(), badpos(), can_ooze(), damageum(), dotrap(), drop_boulder_on_monster(), drop_boulder_on_player(), eatcorpse(), find_offensive(), goodpos(), hitmu(), locomotion(), m_move(), mdamagem(), mfndpos(), mintrap(), newcham(), passes_bars(), polymon(), punish(), rnd_offensive_item(), stagger(), test_move(), and wrong_elem_type().
#define amphibious | ( | ptr ) | (((ptr)->mflags1 & (M1_AMPHIBIOUS | M1_BREATHLESS)) != 0L) |
Referenced by Amulet_off(), damageum(), gulpmu(), gulpum(), m_move(), minliquid(), and polyself().
#define befriend_with_obj | ( | ptr, | |
obj | |||
) |
((obj)->oclass == FOOD_CLASS && \ is_domestic(ptr))
Referenced by thitmonst().
#define bigmonst | ( | ptr ) | ((ptr)->msize >= MZ_LARGE) |
Referenced by artifact_hit(), breakarm(), corpse_chance(), dmgval(), domove(), hmon_hitmon(), hurtle_step(), in_container(), kick_monster(), kickdmg(), m_throw(), mfndpos(), passes_bars(), scatter(), test_move(), thrwmu(), try_disarm(), use_grapple(), and use_whip().
#define breathless | ( | ptr ) | (((ptr)->mflags1 & M1_BREATHLESS) != 0L) |
Referenced by Amulet_off(), bagotricks(), breakobj(), check_leash(), chest_shatter_msg(), destroy_item(), dip(), dotrap(), inside_gas_cloud(), mintrap(), polyself(), potionbreathe(), and potionhit().
#define can_breathe | ( | ptr ) | attacktype(ptr, AT_BREA) |
Referenced by domonability(), and polymon().
#define can_teleport | ( | ptr ) | (((ptr)->mflags1 & M1_TPORT) != 0L) |
Referenced by dochug(), dotele(), drown(), intrinsic_possible(), kick_monster(), and stealamulet().
#define cantweararm | ( | ptr ) | (breakarm(ptr) || sliparm(ptr)) |
Referenced by canwearobj(), and m_dowear().
#define cantwield | ( | ptr ) | (nohands(ptr) || verysmall(ptr)) |
Referenced by attack(), can_twoweapon(), doswapweapon(), dowield(), drop_weapon(), engrave(), hmonas(), and wield_tool().
#define carnivorous | ( | ptr ) | (((ptr)->mflags1 & M1_CARNIVORE) != 0L) |
Referenced by beg(), bhito(), dog_hunger(), dogfood(), eatcorpse(), fprefx(), gethungry(), and mon_catchup_elapsed_time().
#define control_teleport | ( | ptr ) | (((ptr)->mflags1 & M1_TPORT_CNTRL) != 0L) |
Referenced by intrinsic_possible().
#define could_twoweap | ( | ptr ) | ((ptr)->mattk[1].aatyp == AT_WEAP) |
Referenced by can_twoweapon(), drop_weapon(), enhance_skill(), and polyman().
#define emits_light | ( | ptr ) |
(((ptr)->mlet == S_LIGHT || \ (ptr) == &mons[PM_FLAMING_SPHERE] || \ (ptr) == &mons[PM_SHOCKING_SPHERE] || \ (!strcmp((ptr)->mname, "gold dragon")) || \ (!strcmp((ptr)->mname, "baby gold dragon")) || \ (ptr) == &mons[PM_FIRE_VORTEX]) ? 1 : \ ((ptr) == &mons[PM_FIRE_ELEMENTAL]) ? 1 : 0)
Referenced by clone_mon(), m_detach(), makemon(), newcham(), polyself(), rehumanize(), and replmon().
#define extra_nasty | ( | ptr ) | (((ptr)->mflags2 & M2_NASTY) != 0L) |
Referenced by experience(), m_initweap(), and mintrap().
#define eyecount | ( | ptr ) |
(!haseyes(ptr) ? 0 : \ ((ptr) == &mons[PM_CYCLOPS] || \ (ptr) == &mons[PM_FLOATING_EYE]) ? 1 : 2)
Referenced by breakobj(), buzz(), cast_cleric_spell(), fix_worst_trouble(), m_throw(), make_blinded(), make_hallucinated(), and potionbreathe().
#define flaming | ( | ptr ) |
((ptr) == &mons[PM_FIRE_VORTEX] || \ (ptr) == &mons[PM_FLAMING_SPHERE] || \ (ptr) == &mons[PM_FIRE_ELEMENTAL] || \ (ptr) == &mons[PM_SALAMANDER])
Referenced by cprefx(), damageum(), edibility_prompts(), gulpmu(), gulpum(), hitmu(), mdamagem(), and polymon().
#define has_blood | ( | ptr ) |
(!vegetarian(ptr) && \ (ptr)->mlet != S_GOLEM && \ (!is_undead(ptr) || is_vampire(ptr)))
Referenced by damageum(), dogfood(), hitmu(), is_edible(), and mdamagem().
#define has_head | ( | ptr ) | (((ptr)->mflags1 & M1_NOHEAD) == 0L) |
Referenced by artifact_hit(), damageum(), hitmu(), mdamagem(), and potionhit().
#define has_horns | ( | ptr ) | (num_horns(ptr) > 0) |
Referenced by break_armor(), canwearobj(), m_dowear_type(), and mon_break_armor().
#define haseyes | ( | ptr ) | (((ptr)->mflags1 & M1_NOEYES) == 0L) |
Referenced by breakobj(), can_blnd(), can_track(), chest_shatter_msg(), destroy_item(), dip(), dog_move(), dogaze(), explum(), find_defensive(), find_offensive(), hmon_hitmon(), hmonas(), in_trouble(), inside_gas_cloud(), kick_monster(), make_blinded(), make_hallucinated(), mdamagem(), passivemm(), passiveum(), potionbreathe(), potionhit(), resists_blnd(), use_mirror(), ustatusline(), and wary_dog().
#define herbivorous | ( | ptr ) | (((ptr)->mflags1 & M1_HERBIVORE) != 0L) |
Referenced by beg(), bhito(), dog_hunger(), dogfood(), eatcorpse(), gethungry(), and mon_catchup_elapsed_time().
#define hides_under | ( | ptr ) | (((ptr)->mflags1 & M1_CONCEAL) != 0L) |
Referenced by animate_statue(), attack_checks(), domove(), hitmu(), m_move(), makemon(), newcham(), polymon(), teleds(), and useupf().
#define hugemonst | ( | ptr ) | ((ptr)->msize >= MZ_HUGE) |
Referenced by close_drawbridge().
#define humanoid | ( | ptr ) | (((ptr)->mflags1 & M1_HUMANOID) != 0L) |
Referenced by breakarm(), do_earthquake(), doputon(), dosit(), fprefx(), keepdogs(), mbodypart(), poly_gender(), pronoun_gender(), setmangry(), and use_mirror().
#define infravisible | ( | ptr ) | ((ptr->mflags3 & M3_INFRAVISIBLE)) |
#define infravision | ( | ptr ) | ((ptr->mflags3 & M3_INFRAVISION)) |
#define is_animal | ( | ptr ) | (((ptr)->mflags1 & M1_ANIMAL) != 0L) |
Referenced by bhitm(), could_seduce(), dodown(), dokick(), dopickup(), dosounds(), dospinweb(), doup(), dropy(), engrave(), expels(), explode(), find_defensive(), find_misc(), find_offensive(), float_down(), float_up(), gulpmu(), gulpum(), hitmu(), litroom(), m_dowear(), m_move(), mattacku(), mon_animal_list(), monstone(), mstatusline(), newcham(), openit(), relobj(), rnd_defensive_item(), rnd_misc_item(), rnd_offensive_item(), searches_for_item(), steal(), surface(), thitmonst(), throw_gold(), use_trap(), and zap_dig().
#define is_armed | ( | ptr ) | attacktype(ptr, AT_WEAP) |
Referenced by makemon().
#define is_bat | ( | ptr ) |
((ptr) == &mons[PM_BAT] || \ (ptr) == &mons[PM_GIANT_BAT] || \ (ptr) == &mons[PM_VAMPIRE_BAT])
Referenced by makemon().
#define is_bird | ( | ptr ) | ((ptr)->mlet == S_BAT && !is_bat(ptr)) |
#define is_clinger | ( | ptr ) | (((ptr)->mflags1 & M1_CLING) != 0L) |
Referenced by badpos(), Boots_off(), do_earthquake(), domove(), dopickup(), dotrap(), fall_through(), floorfood(), goodpos(), lookaround(), mfndpos(), minliquid(), mintrap(), spoteffects(), and test_move().
#define is_covetous | ( | ptr ) | ((ptr->mflags3 & M3_COVETOUS)) |
Referenced by can_carry(), dochug(), m_move(), strategy(), tamedog(), and touch_artifact().
#define is_demon | ( | ptr ) | (((ptr)->mflags2 & M2_DEMON) != 0L) |
Referenced by can_pray(), cast_wizard_spell(), damageum(), dmgval(), do_genocide(), dochug(), dosacrifice(), doturn(), engrave(), explode(), hates_silver(), hitmu(), hitval(), hmon_hitmon(), kickdmg(), m_initweap(), mattacku(), onscary(), peffects(), potionhit(), resists_drli(), tamedog(), zapyourself(), zhitm(), and zhitu().
#define is_dlord | ( | ptr ) | (is_demon(ptr) && is_lord(ptr)) |
Referenced by msummon().
#define is_domestic | ( | ptr ) | (((ptr)->mflags2 & M2_DOMESTIC) != 0L) |
Referenced by initedog(), and rndmonst().
#define is_dprince | ( | ptr ) | (is_demon(ptr) && is_prince(ptr)) |
Referenced by demon_talk(), makemon(), and msummon().
#define is_dwarf | ( | ptr ) | (((ptr)->mflags2 & M2_DWARF) != 0L) |
Referenced by domonnoise(), genus(), and m_initweap().
#define is_elf | ( | ptr ) | (((ptr)->mflags2 & M2_ELF) != 0L) |
Referenced by domonnoise(), find_roll_to_hit(), genus(), m_initweap(), m_throw(), mattackm(), thitmonst(), and thrwmu().
#define is_female | ( | ptr ) | (((ptr)->mflags2 & M2_FEMALE) != 0L) |
Referenced by change_sex(), get_mplname(), makemon(), newcham(), and polymon().
#define is_floater | ( | ptr ) | ((ptr)->mlet == S_EYE) |
#define is_flyer | ( | ptr ) | (((ptr)->mflags1 & M1_FLY) != 0L) |
Referenced by badpos(), digactualhole(), do_earthquake(), do_entity(), dosounds(), e_missed(), e_survives_at(), float_up(), goodpos(), kick_monster(), locomotion(), mfndpos(), minliquid(), mintrap(), spoteffects(), stagger(), use_defensive(), and wrong_elem_type().
#define is_giant | ( | ptr ) | (((ptr)->mflags2 & M2_GIANT) != 0L) |
Referenced by cpostfx(), dog_move(), m_initinv(), m_move(), move_special(), and select_hwep().
#define is_gnome | ( | ptr ) | (((ptr)->mflags2 & M2_GNOME) != 0L) |
Referenced by genus().
#define is_golem | ( | ptr ) | ((ptr)->mlet == S_GOLEM) |
Referenced by animate_statue(), corpse_chance(), explum(), grow_up(), makemon(), poly_when_stoned(), and polymon().
#define is_guardian | ( | ptr ) |
(((ptr) == &mons[PM_VLAD_THE_IMPALER]) || \ ((ptr) == &mons[PM_WIZARD_OF_YENDOR]) || \ (ptr->msound == MS_NEMESIS) || \ ((ptr) == &mons[PM_HIGH_PRIEST] && Is_sanctum(&u.uz)))
#define is_hider | ( | ptr ) | (((ptr)->mflags1 & M1_HIDE) != 0L) |
Referenced by do_earthquake(), domonability(), domove(), dosearch0(), findone(), mattacku(), monster_nearby(), movemon(), and polymon().
#define is_human | ( | ptr ) | (((ptr)->mflags2 & M2_HUMAN) != 0L) |
Referenced by addtobill(), do_genocide(), genus(), m_move(), mattacku(), mksobj(), new_were(), newcham(), potionhit(), readobjnam(), restore_cham(), tamedog(), were_change(), and xkilled().
#define is_lminion | ( | mon ) |
#define is_longworm | ( | ptr ) |
(((ptr) == &mons[PM_BABY_LONG_WORM]) || \ ((ptr) == &mons[PM_LONG_WORM]) || \ ((ptr) == &mons[PM_LONG_WORM_TAIL]))
Referenced by attack().
#define is_lord | ( | ptr ) | (((ptr)->mflags2 & M2_LORD) != 0L) |
Referenced by dosounds(), lminion(), m_initweap(), msummon(), and thrwmu().
#define is_male | ( | ptr ) | (((ptr)->mflags2 & M2_MALE) != 0L) |
Referenced by change_sex(), makemon(), newcham(), and polymon().
#define is_mercenary | ( | ptr ) | (((ptr)->mflags2 & M2_MERC) != 0L) |
Referenced by awaken_soldiers(), dosounds(), find_defensive(), ghitm(), m_initinv(), m_initweap(), and m_move().
#define is_mind_flayer | ( | ptr ) |
((ptr) == &mons[PM_MIND_FLAYER] || \ (ptr) == &mons[PM_MASTER_MIND_FLAYER])
Referenced by dochug(), domonability(), and polymon().
#define is_minion | ( | ptr ) | ((ptr)->mflags2 & M2_MINION) |
Referenced by in_your_sanctuary(), m_move(), and peace_minded().
#define is_mplayer | ( | ptr ) |
(((ptr) >= &mons[PM_ARCHEOLOGIST]) && \ ((ptr) <= &mons[PM_WIZARD]))
Referenced by corpse_chance(), dev_name(), domonnoise(), grow_up(), mk_mplayer(), mongets(), newcham(), resist(), touch_artifact(), and x_monnam().
#define is_ndemon | ( | ptr ) |
#define is_neuter | ( | ptr ) | (((ptr)->mflags2 & M2_NEUTER) != 0L) |
Referenced by change_sex(), domagictrap(), gender(), minimal_enlightenment(), newcham(), poly_gender(), polymon(), and pronoun_gender().
#define is_orc | ( | ptr ) | (((ptr)->mflags2 & M2_ORC) != 0L) |
Referenced by find_roll_to_hit(), fprefx(), genus(), mattackm(), mattacku(), thitmonst(), and thrwmu().
#define is_placeholder | ( | ptr ) |
#define is_prince | ( | ptr ) | (((ptr)->mflags2 & M2_PRINCE) != 0L) |
Referenced by dosit(), dosounds(), m_initweap(), mongets(), and thrwmu().
#define is_reviver | ( | ptr ) | (is_rider(ptr) || (ptr)->mlet == S_TROLL) |
Referenced by mergable().
#define is_rider | ( | ptr ) |
Referenced by buzz(), can_carry(), corpse_chance(), dogfood(), gulpum(), hmonas(), in_your_sanctuary(), m_move(), makemon(), mdamagem(), montraits(), obj_resists(), onscary(), pickup_object(), revive_mon(), revive_nasty(), rloco(), start_corpse_timeout(), u_teleport_mon(), use_tinning_kit(), and x_monnam().
#define is_silent | ( | ptr ) | ((ptr)->msound == MS_SILENT) |
Referenced by beg(), dochat(), domonnoise(), doread(), invault(), level_tele(), potionhit(), and shopdig().
#define is_swimmer | ( | ptr ) | (((ptr)->mflags1 & M1_SWIM) != 0L) |
Referenced by badpos(), could_reach_item(), create_monster(), damageum(), dodip(), e_survives_at(), goodpos(), hitval(), m_move(), mattacku(), mfndpos(), minliquid(), wrong_elem_type(), and zap_over_floor().
#define is_undead | ( | ptr ) | (((ptr)->mflags2 & M2_UNDEAD) != 0L) |
Referenced by bhitm(), can_pray(), deadbook(), dmgval(), dogfood(), dosacrifice(), dosounds(), doturn(), fprefx(), hitmu(), hitval(), hmon_hitmon(), kickdmg(), m_move(), peffects(), potionhit(), resists_drli(), and zapyourself().
#define is_unicorn | ( | ptr ) | ((ptr)->mlet == S_UNICORN && likes_gems(ptr)) |
Referenced by domonability(), dosacrifice(), find_defensive(), m_move(), m_throw(), makemon(), polymon(), searches_for_item(), thitmonst(), use_mirror(), and xkilled().
#define is_vampire | ( | ptr ) |
((ptr)->mlet == S_VAMPIRE || \ ((ptr)->mflags2 & M2_VAMPIRE) != 0)
Referenced by done_in_by(), find_defensive(), gethungry(), hates_silver(), hitmu(), hmonas(), mdamagem(), onscary(), peffects(), polyself(), potionbreathe(), searches_for_item(), and use_mirror().
#define is_vampiric | ( | ptr ) |
((is_vampire(ptr)) || \ (ptr) == &mons[PM_VAMPIRE_BAT])
feeds on blood
Referenced by damageum(), doeat(), dog_eat(), dogfood(), eatcorpse(), eatfood(), is_edible(), and passive().
#define is_wanderer | ( | ptr ) | (((ptr)->mflags2 & M2_WANDER) != 0L) |
#define is_were | ( | ptr ) | (((ptr)->mflags2 & M2_WERE) != 0L) |
Referenced by cancel_monst(), domonability(), fpostfx(), hates_silver(), mattacku(), mdamagem(), polymon(), polyself(), potionhit(), rescham(), resists_drli(), restore_cham(), were_change(), and you_unwere().
#define is_whirly | ( | ptr ) |
((ptr)->mlet == S_VORTEX || \ (ptr) == &mons[PM_AIR_ELEMENTAL])
Referenced by bhitm(), break_armor(), domove(), dospinweb(), dotrap(), engrave(), expels(), flooreffects(), litroom(), mattacku(), mintrap(), mon_break_armor(), newcham(), passes_bars(), polymon(), punish(), sliparm(), use_stethoscope(), wrong_elem_type(), and zap_dig().
#define lays_eggs | ( | ptr ) | (((ptr)->mflags1 & M1_OVIPAROUS) != 0L) |
Referenced by can_be_hatched(), dosit(), and polymon().
#define likes_fire | ( | ptr ) |
((ptr) == &mons[PM_FIRE_VORTEX] || \ (ptr) == &mons[PM_FLAMING_SPHERE] || \ likes_lava(ptr))
Referenced by peffects().
#define likes_gems | ( | ptr ) | (((ptr)->mflags2 & M2_JEWELS) != 0L) |
Referenced by m_move(), and select_rwep().
#define likes_gold | ( | ptr ) | (((ptr)->mflags2 & M2_GREEDY) != 0L) |
Referenced by ghitm(), m_initinv(), m_move(), and mattacku().
#define likes_lava | ( | ptr ) |
(ptr == &mons[PM_FIRE_ELEMENTAL] || \ ptr == &mons[PM_SALAMANDER])
Referenced by badpos(), could_reach_item(), dopickup(), dosit(), e_survives_at(), goodpos(), lava_effects(), mfndpos(), minliquid(), and polymon().
#define likes_magic | ( | ptr ) | (((ptr)->mflags2 & M2_MAGIC) != 0L) |
Referenced by domonnoise(), and m_move().
#define likes_objs | ( | ptr ) |
(((ptr)->mflags2 & M2_COLLECT) != 0L || \ is_armed(ptr))
Referenced by m_move().
#define metallivorous | ( | ptr ) | (((ptr)->mflags1 & M1_METALLIVORE) != 0L) |
Referenced by dogfood(), floorfood(), getobj(), is_edible(), m_move(), mintrap(), and start_tin().
#define mindless | ( | ptr ) | (((ptr)->mflags1 & M1_MINDLESS) != 0L) |
#define needspick | ( | ptr ) | (((ptr)->mflags1 & M1_NEEDPICK) != 0L) |
Referenced by bad_rock(), dog_move(), m_move(), mfndpos(), relobj(), searches_for_item(), and test_move().
#define nohands | ( | ptr ) | (((ptr)->mflags1 & M1_NOHANDS) != 0L) |
Referenced by badpos(), break_armor(), do_break_wand(), doclose(), dog_move(), doloot(), dountrap(), dowear(), dowrite(), find_defensive(), find_misc(), find_offensive(), fix_worst_trouble(), forcelock(), in_trouble(), kick_monster(), m_dowear(), m_move(), mon_break_armor(), move_special(), pick_lock(), picklock(), polymon(), use_container(), use_grease(), use_stethoscope(), and use_trap().
#define nolimbs | ( | ptr ) | (((ptr)->mflags1 & M1_NOLIMBS) == M1_NOLIMBS) |
Referenced by able_to_loot(), dokick(), doputon(), glibr(), jump(), kick_monster(), locomotion(), loot_mon(), select_off(), shopdig(), stagger(), start_tin(), stuck_ring(), and wildmiss().
#define noncorporeal | ( | ptr ) | ((ptr)->mlet == S_GHOST) |
#define nonliving | ( | ptr ) |
Referenced by animate_statue(), cast_wizard_spell(), explode(), grow_up(), inside_gas_cloud(), mlifesaver(), monkilled(), ohitmon(), rnd_misc_item(), searches_for_item(), xkilled(), zapyourself(), zhitm(), and zhitu().
#define notake | ( | ptr ) | (((ptr)->mflags1 & M1_NOTAKE) != 0L) |
Referenced by can_carry(), dofire(), dothrow(), and pickup().
#define passes_walls | ( | ptr ) | (((ptr)->mflags1 & M1_WALLWALK) != 0L) |
Referenced by attack(), automiss(), bad_rock(), badpos(), can_reach_location(), dog_move(), drop_boulder_on_monster(), e_survives_at(), figurine_location_checks(), find_defensive(), find_misc(), find_offensive(), flooreffects(), goodpos(), hitval(), m_move(), mintrap(), mkcavepos(), move_special(), passes_bars(), repair_damage(), rnd_offensive_item(), and set_apparxy().
#define perceives | ( | ptr ) | (((ptr)->mflags1 & M1_SEE_INVIS) != 0L) |
Referenced by cast_cleric_spell(), cast_wizard_spell(), castmu(), could_seduce(), cursetxt(), distfleeck(), dog_move(), dogaze(), eataccessory(), gazemm(), hitval(), m_move(), mattacku(), mfndpos(), mpickstuff(), passivemm(), passiveum(), Ring_on(), set_apparxy(), steal(), use_mirror(), and wildmiss().
#define pm_invisible | ( | ptr ) |
((ptr) == &mons[PM_STALKER] || \ (ptr) == &mons[PM_BLACK_LIGHT])
Referenced by Cloak_on(), enlightenment(), and newcham().
#define pm_resistance | ( | ptr, | |
typ | |||
) | (((ptr)->mresists & (typ)) != 0) |
Referenced by fixup_special(), and wrong_elem_type().
#define poisonous | ( | ptr ) | (((ptr)->mflags1 & M1_POIS) != 0L) |
Referenced by dogfood(), eatcorpse(), and edibility_prompts().
#define polyok | ( | ptr ) | (((ptr)->mflags2 & M2_NOPOLY) == 0L) |
Referenced by newcham(), and polyself().
#define race_hostile | ( | ptr ) | (((ptr)->mflags2 & urace.hatemask) != 0L) |
Referenced by mk_artifact(), and peace_minded().
#define race_peaceful | ( | ptr ) | (((ptr)->mflags2 & urace.lovemask) != 0L) |
Referenced by peace_minded().
#define regenerates | ( | ptr ) | (((ptr)->mflags1 & M1_REGEN) != 0L) |
Referenced by mon_catchup_elapsed_time(), mon_regen(), and Ring_on().
Referenced by damageum(), dogfood(), explode(), gulpum(), hmon_hitmon(), max_passive_dmg(), mdamagem(), mon_consume_unstone(), ohitmon(), passivemm(), passiveum(), potionhit(), and zhitm().
Referenced by damageum(), domove(), explode(), explum(), gulpum(), max_passive_dmg(), mdamagem(), passivemm(), passiveum(), spec_applies(), use_offensive(), and zhitm().
Referenced by dog_move(), explode(), god_zaps_you(), mattackm(), and zhitm().
Referenced by damageum(), explode(), explum(), god_zaps_you(), gulpum(), max_passive_dmg(), mdamagem(), passivemm(), passiveum(), spec_applies(), and zhitm().
Referenced by damageum(), dogaze(), explode(), explum(), find_offensive(), gulpum(), max_passive_dmg(), mdamagem(), mfndpos(), minliquid(), mintrap(), passivemm(), passiveum(), spec_applies(), use_offensive(), and zhitm().
Referenced by damageum(), dogfood(), explode(), hmon_hitmon(), inside_gas_cloud(), mdamagem(), ohitmon(), potionhit(), spec_applies(), and zhitm().
Referenced by mfndpos(), mintrap(), and sleep_monst().
Referenced by can_carry(), create_object(), dog_move(), dogfood(), gulpmu(), hmon_hitmon(), mdamagem(), meatmetal(), meatobj(), minstapetrify(), munstone(), passiveum(), searches_for_item(), and spec_applies().
#define slithy | ( | ptr ) | (((ptr)->mflags1 & M1_SLITHY) != 0L) |
Referenced by break_armor(), canwearobj(), dokick(), eatcorpse(), jump(), kick_monster(), locomotion(), m_dowear(), mbodypart(), mon_break_armor(), passes_bars(), and stagger().
#define strongmonst | ( | ptr ) | (((ptr)->mflags2 & M2_STRONG) != 0L) |
Referenced by dotrap(), m_initweap(), max_mon_load(), polymon(), select_hwep(), select_rwep(), use_grapple(), and weight_cap().
#define telepathic | ( | ptr ) |
((ptr) == &mons[PM_FLOATING_EYE] || \ (ptr) == &mons[PM_MIND_FLAYER] || \ (ptr) == &mons[PM_MASTER_MIND_FLAYER])
Referenced by dochug(), domindblast(), and intrinsic_possible().
#define thick_skinned | ( | ptr ) | (((ptr)->mflags1 & M1_THICK_HIDE) != 0L) |
Referenced by damageum(), dmgval(), hitmsg(), hitval(), hmon_hitmon(), kick_monster(), kickdmg(), mattacku(), and mdamagem().
#define throws_rocks | ( | ptr ) | (((ptr)->mflags2 & M2_ROCKTHROW) != 0L) |
Referenced by badpos(), can_carry(), could_reach_item(), curr_mon_load(), dog_move(), figurine_location_checks(), find_defensive(), find_misc(), flooreffects(), getobj(), goodpos(), in_trouble(), inv_weight(), launch_obj(), lift_object(), m_move(), move_special(), moverock(), newcham(), select_rwep(), and throw_obj().
#define touch_petrifies | ( | ptr ) |
((ptr) == &mons[PM_COCKATRICE] || \ (ptr) == &mons[PM_CHICKATRICE])
Referenced by can_carry(), can_twoweapon(), cprefx(), damageum(), dog_move(), dogfood(), done_in_by(), dropy(), eatcorpse(), edibility_prompts(), fpostfx(), Gloves_off(), gulpmu(), gulpum(), help_monster_out(), hitmu(), hmon_hitmon(), hmonas(), in_container(), kick_object(), m_move(), m_throw(), mattackm(), mattacku(), mdamagem(), meatobj(), mon_break_armor(), mpickstuff(), mselftouch(), oselect(), out_container(), pickup_object(), polymon(), ready_weapon(), searches_for_item(), selftouch(), steal(), steal_it(), thitmonst(), throw_obj(), toss_up(), use_tinning_kit(), use_whip(), and will_feel_cockatrice().
#define tunnels | ( | ptr ) | (((ptr)->mflags1 & M1_TUNNEL) != 0L) |
Referenced by bad_rock(), can_reach_location(), dog_move(), m_move(), move_special(), relobj(), and test_move().
#define type_is_pname | ( | ptr ) | (((ptr)->mflags2 & M2_PNAME) != 0L) |
Referenced by choke(), do_class_genocide(), do_genocide(), doname_base(), done_in_by(), eatcorpse(), food_xname(), hitmu(), ldrname(), list_genocided(), neminame(), nh_timeout(), opentin(), otransit_msg(), poisoned(), pronoun_gender(), rndmonnam(), x_monnam(), and xname().
#define unsolid | ( | ptr ) | (((ptr)->mflags1 & M1_UNSOLID) != 0L) |
Referenced by dotrap(), drop_boulder_on_monster(), drop_boulder_on_player(), find_offensive(), joust(), mintrap(), polymon(), punish(), and rnd_offensive_item().
#define vegan | ( | ptr ) |
((ptr)->mlet == S_BLOB || \ (ptr)->mlet == S_JELLY || \ (ptr)->mlet == S_FUNGUS || \ (ptr)->mlet == S_VORTEX || \ (ptr)->mlet == S_LIGHT || \ ((ptr)->mlet == S_ELEMENTAL && \ (ptr) != &mons[PM_STALKER]) || \ ((ptr)->mlet == S_GOLEM && \ (ptr) != &mons[PM_FLESH_GOLEM] && \ (ptr) != &mons[PM_LEATHER_GOLEM]) || \ noncorporeal(ptr))
Referenced by damageum(), dogfood(), eatcorpse(), edibility_prompts(), gulpum(), and opentin().
#define vegetarian | ( | ptr ) |
(vegan(ptr) || \ ((ptr)->mlet == S_PUDDING && \ (ptr) != &mons[PM_BLACK_PUDDING]))
Referenced by bhito(), damageum(), eatcorpse(), edibility_prompts(), gulpum(), opentin(), and xname().
#define verysmall | ( | ptr ) | ((ptr)->msize < MZ_SMALL) |
Referenced by badpos(), break_armor(), can_ooze(), corpse_chance(), doclose(), dog_move(), dokick(), dowear(), find_defensive(), find_misc(), kick_monster(), m_dowear(), m_move(), mksobj(), mon_break_armor(), move_special(), moverock(), passes_bars(), readobjnam(), and use_grapple().
#define webmaker | ( | ptr ) |
((ptr) == &mons[PM_CAVE_SPIDER] || \ (ptr) == &mons[PM_GIANT_SPIDER])
Referenced by domonability(), dotrap(), dountrap(), mfndpos(), mintrap(), polymon(), try_disarm(), and untrap_prob().
#define your_race | ( | ptr ) | (((ptr)->mflags2 & urace.selfmask) != 0L) |
Referenced by create_monster(), dosacrifice(), maybe_cannibal(), polyself(), and thitmonst().