#include "hack.h"
#include "mfndpos.h"
#include "edog.h"
#include <ctype.h>
Defines | |
#define | LEVEL_SPECIFIC_NOCORPSE(mdat) (level.flags.graveyard && is_undead(mdat) && rn2(3)) |
#define | KEEPTRAITS(mon) |
#define | mstoning(obj) |
#define | BREEDER_EGG (!rn2(77)) |
Functions | |
STATIC_DCL boolean | FDECL (restrap,(struct monst *)) |
STATIC_DCL long | FDECL (mm_aggression,(struct monst *, struct monst *)) |
STATIC_DCL int | NDECL (pick_animal) |
STATIC_DCL int | FDECL (select_newcham_form,(struct monst *)) |
STATIC_DCL void | FDECL (kill_eggs,(struct obj *)) |
STATIC_DCL struct obj * | FDECL (make_corpse,(struct monst *)) |
STATIC_DCL void | FDECL (m_detach,(struct monst *, struct permonst *)) |
STATIC_DCL void | FDECL (lifesaved_monster,(struct monst *)) |
void | remove_monster (int x, int y) |
int | undead_to_corpse (int mndx) |
int | genus (int mndx, int mode) |
int | pm_to_cham (int mndx) |
STATIC_OVL struct obj * | make_corpse (struct monst *mtmp) |
int | minliquid (struct monst *mtmp) |
int | mcalcmove (struct monst *mon) |
void | mcalcdistress () |
int | movemon () |
int | meatmetal (struct monst *mtmp) |
int | meatobj (struct monst *mtmp) |
void | mpickgold (struct monst *mtmp) |
boolean | mpickstuff (struct monst *mtmp, const char *str) |
int | curr_mon_load (struct monst *mtmp) |
int | max_mon_load (struct monst *mtmp) |
boolean | can_carry (struct monst *mtmp, struct obj *otmp) |
int | mfndpos (struct monst *mon, coord *poss, long *info, long flag) |
STATIC_OVL long | mm_aggression (struct monst *magr, struct monst *mdef) |
boolean | monnear (struct monst *mon, int x, int y) |
void | dmonsfree () |
void | replmon (struct monst *mtmp, struct monst *mtmp2) |
void | relmon (struct monst *mon) |
STATIC_OVL void | m_detach (struct monst *mtmp, struct permonst *mptr) |
struct obj * | mlifesaver (struct monst *mon) |
STATIC_OVL void | lifesaved_monster (struct monst *mtmp) |
void | mondead (struct monst *mtmp) |
boolean | corpse_chance (struct monst *mon, struct monst *magr, boolean was_swallowed) |
void | cthulhu_dies (struct monst *mon) |
void | mondied (struct monst *mdef) |
void | mongone (struct monst *mdef) |
void | monstone (struct monst *mdef) |
void | monkilled (struct monst *mdef, const char *fltxt, int how) |
void | unstuck (struct monst *mtmp) |
void | killed (struct monst *mtmp) |
void | xkilled (struct monst *mtmp, int dest) |
void | mon_to_stone (struct monst *mtmp) |
void | mnexto (struct monst *mtmp) |
boolean | mnearto (struct monst *mtmp, xchar x, xchar y, boolean move_other) |
void | poisontell (int typ) |
void | poisoned (char *string, int typ, char *pname, int fatal) const |
void | m_respond (struct monst *mtmp) |
void | setmangry (struct monst *mtmp) |
void | wakeup (struct monst *mtmp) |
void | wake_nearby () |
void | wake_nearto (int x, int y, int distance) |
void | seemimic (struct monst *mtmp) |
void | rescham () |
void | restartcham () |
void | restore_cham (struct monst *mon) |
STATIC_OVL boolean | restrap (struct monst *mtmp) |
void | mon_animal_list (boolean construct) |
STATIC_OVL int | pick_animal () |
STATIC_OVL int | select_newcham_form (struct monst *mon) |
int | newcham (struct monst *mtmp, struct permonst *mdat, boolean polyspot, boolean msg) |
int | can_be_hatched (int mnum) |
int | egg_type_from_parent (int mnum, boolean force_ordinary) |
boolean | dead_species (int m_idx, boolean egg) |
STATIC_OVL void | kill_eggs (struct obj *obj_list) |
void | kill_genocided_monsters () |
void | kill_monster_on_level (int mndx) |
void | golemeffects (struct monst *mon, int damtype, int dam) |
boolean | angry_guards (boolean silent) |
void | pacify_guards () |
void | mimic_hit_msg (struct monst *mtmp, short otyp) |
Variables | |
STATIC_VAR short | cham_to_pm [] |
static const char * | poiseff [] |
short * | animal_list = 0 |
int | animal_list_count |
#define BREEDER_EGG (!rn2(77)) |
Referenced by can_be_hatched(), and egg_type_from_parent().
#define KEEPTRAITS | ( | mon ) |
((mon)->isshk || (mon)->mtame || \ ((mon)->data->geno & G_UNIQ) || \ is_reviver((mon)->data) || \ /* normally leader the will be unique, */ \ /* but he might have been polymorphed */ \ (mon)->m_id == quest_status.leader_m_id || \ /* special cancellation handling for these */ \ (dmgtype((mon)->data, AD_SEDU) || \ dmgtype((mon)->data, AD_SSEX)))
Referenced by make_corpse(), and monstone().
#define LEVEL_SPECIFIC_NOCORPSE | ( | mdat ) | (level.flags.graveyard && is_undead(mdat) && rn2(3)) |
Referenced by corpse_chance(), and xkilled().
#define mstoning | ( | obj ) |
Referenced by meatmetal().
References Blind, cansee, monst::data, DEADMONSTER, distu, FALSE, flags, fmon, mons, monst::mx, monst::my, monst::nmon, PM_WATCH_CAPTAIN, PM_WATCHMAN, flag::soundok, and TRUE.
Referenced by dipfountain(), dokick(), dryup(), hmon(), impact_drop(), prisoner_speaks(), remote_burglary(), stolen_value(), u_left_shop(), watch_dig(), and watch_on_duty().
int can_be_hatched | ( | int | mnum ) |
References BREEDER_EGG, lays_eggs, little_to_big(), mons, NON_PM, PM_GARGOYLE, PM_KILLER_BEE, PM_QUEEN_BEE, PM_SCORPION, PM_SCORPIUS, and PM_WINGED_GARGOYLE.
Referenced by mksobj(), poly_obj(), and readobjnam().
References BELL_OF_OPENING, BOULDER, CORPSE, obj::corpsenm, curr_mon_load(), FALSE, hates_silver(), is_covetous, is_rider, max_mon_load(), permonst::mlet, mons, notake, objects, obj::oclass, obj::otyp, obj::owt, resists_ston, ROCK_CLASS, S_NYMPH, SILVER, throws_rocks, touch_petrifies, TRUE, u, and W_ARMG.
Referenced by dog_goal(), dog_invent(), m_move(), mpickstuff(), and steal().
TRUE if corpse might be dropped, magr may die if mon was swallowed
References attack::aatyp, AT_BOOM, bigmonst, body_part(), cansee, canseemon, canspotmon, d(), attack::damd, attack::damn, EXPL_NOXIOUS, explode(), FALSE, flags, G_FREQ, permonst::geno, Half_physical_damage, is_golem, is_mplayer, is_rider, KILLED_BY_AN, killer, killer_buf, killer_format, LEVEL_SPECIFIC_NOCORPSE, losehp(), permonst::mattk, monst::mhp, permonst::mlet, permonst::mlevel, permonst::mname, MON_EXPLODE, mondied(), Monnam(), mons, NATTK, pline(), PM_DISINTEGRATOR, PM_LIZARD, PM_VLAD_THE_IMPALER, rn2(), S_LICH, s_suffix(), flag::soundok, Sprintf, STOMACH, TRUE, verysmall, WEBB_DISINT, and youmonst.
Referenced by gulpum(), mdamagem(), mondied(), and xkilled().
void cthulhu_dies | ( | struct monst * | mon ) |
Creates Cthulhu's death message and death cloud.
mon | Creates Cthulhu's death message and death cloud. Cthulhu's struct |
References cansee, create_cthulhu_death_cloud(), distu, Monnam(), pline(), PM_CTHULHU, rn1, rnd(), and s_suffix().
Referenced by monkilled(), and xkilled().
int curr_mon_load | ( | struct monst * | mtmp ) |
References BOULDER, obj::nobj, obj::otyp, obj::owt, and throws_rocks.
Referenced by can_carry(), domove(), m_move(), and mfndpos().
References big_to_little(), G_GENOD, LOW_PM, and mvitals::mvflags.
Referenced by carry_obj_effects(), create_object(), curse(), kill_eggs(), mksobj(), poly_obj(), readobjnam(), and revive_egg().
void dmonsfree | ( | ) |
References dealloc_monst, fmon, iflags, monst::nmon, and instance_flags::purge_monsters.
Referenced by freedynamicdata(), makemaz(), movemon(), savebones(), and savelev().
int egg_type_from_parent | ( | int | mnum, |
boolean | force_ordinary | ||
) |
References BREEDER_EGG, PM_GARGOYLE, PM_KILLER_BEE, PM_QUEEN_BEE, and PM_WINGED_GARGOYLE.
Referenced by dosit(), and polymon().
STATIC_DCL int FDECL | ( | select_newcham_form | , |
(struct monst *) | |||
) |
STATIC_DCL void FDECL | ( | lifesaved_monster | , |
(struct monst *) | |||
) |
STATIC_DCL void FDECL | ( | kill_eggs | , |
(struct obj *) | |||
) |
int genus | ( | int | mndx, |
int | mode | ||
) |
References is_dwarf, is_elf, is_gnome, is_human, is_orc, LOW_PM, mons, NUMMONS, PM_ABBOT, PM_ACOLYTE, PM_APPRENTICE, PM_ARCHEOLOGIST, PM_ATTENDANT, PM_BARBARIAN, PM_CAVEMAN, PM_CHIEFTAIN, PM_DWARF, PM_ELF, PM_GNOME, PM_GUIDE, PM_HEALER, PM_HUMAN, PM_HUNTER, PM_KNIGHT, PM_MONK, PM_NEANDERTHAL, PM_ORC, PM_PAGE, PM_PRIEST, PM_RANGER, PM_ROGUE, PM_ROSHI, PM_SAMURAI, PM_STUDENT, PM_THUG, PM_TOURIST, PM_VALKYRIE, PM_WARRIOR, and PM_WIZARD.
Referenced by domonnoise(), and readobjnam().
void golemeffects | ( | struct monst * | mon, |
int | damtype, | ||
int | dam | ||
) |
References AD_COLD, AD_ELEC, AD_FIRE, cansee, mon_adjust_speed(), Monnam(), mons, MSLOW, pline(), PM_FLESH_GOLEM, and PM_IRON_GOLEM.
Referenced by damageum(), explode(), explum(), gulpum(), mdamagem(), passivemm(), and passiveum().
STATIC_OVL void kill_eggs | ( | struct obj * | obj_list ) |
References obj::cobj, CORPSE, obj::corpsenm, dead_species(), EGG, FALSE, Has_contents, kill_egg(), obj::nobj, NON_PM, otmp, obj::otyp, TIN, and TRUE.
Referenced by kill_genocided_monsters().
void kill_genocided_monsters | ( | ) |
kill all members of genocided species
References dlevel_t::buriedobjlist, CHAM_MAX_INDX, CHAM_ORDINARY, monst::data, DEADMONSTER, FALSE, fmon, fobj, invent, kill_eggs(), level, monst::minvent, mondead(), monsndx(), newcham(), and monst::nmon.
Referenced by do_class_genocide(), do_genocide(), and goto_level().
void kill_monster_on_level | ( | int | mndx ) |
Kills every member of the specified monster species on the current level.
mndx | Kills every member of the specified monster species on the current level. Monster index number |
References monst::data, DEADMONSTER, fmon, mondead(), monsndx(), and monst::nmon.
Referenced by do_genocide().
void killed | ( | struct monst * | mtmp ) |
References xkilled().
Referenced by buzz(), cancel_monst(), damageum(), dogaze(), domindblast(), doturn(), explode(), explum(), flash_hits_mon(), gazemu(), gulpum(), hmon_hitmon(), inside_gas_cloud(), kickdmg(), mattacku(), potionhit(), resist(), try_disarm(), and use_mirror().
STATIC_OVL void lifesaved_monster | ( | struct monst * | mtmp ) |
References AD_DISN, AMULET_OF_LIFE_SAVING, AT_BOOM, AT_EXPL, attacktype(), cansee, FALSE, G_GENOD, m_useup(), makeknown, mlifesaver(), mon_nam(), Monnam(), monsndx(), mvitals::mvflags, pline(), s_suffix(), wary_dog(), and WEBB_DISINT.
Referenced by monstone().
References del_light_source(), emits_light, FALSE, fill_pit(), iflags, LS_MONSTER, m_unleash(), newsym(), instance_flags::purge_monsters, relobj(), remove_monster(), shkgone(), unstuck(), and wormgone().
Referenced by mongone().
void m_respond | ( | struct monst * | mtmp ) |
References aggravate(), AT_GAZE, flags, gazemu(), makemon(), Monnam(), mons, MS_SHRIEK, NATTK, NO_MM_FLAGS, pline(), PM_PURPLE_WORM, rn2(), flag::soundok, and stop_occupation().
Referenced by bhitm(), boomhit(), and dochug().
References obj::age, Blind, bypass_obj(), flag::bypasses, canseemon, CORPSE, d(), FALSE, flags, G_NOCORPSE, GRAY_DRAGON_SCALES, IRON_CHAIN, KEEPTRAITS, LAST_GEM, LEATHER_ARMOR, mkcorpstat(), mkgold(), mksobj_at(), Monnam(), mons, monsndx(), NAME, newsym(), oname(), obj::owt, pline(), PM_BLACK_DRAGON, PM_BLACK_UNICORN, PM_BLUE_DRAGON, PM_CLAY_GOLEM, PM_DWARF_MUMMY, PM_DWARF_ZOMBIE, PM_ELF_MUMMY, PM_ELF_ZOMBIE, PM_ETTIN_MUMMY, PM_ETTIN_ZOMBIE, PM_GIANT_MUMMY, PM_GIANT_ZOMBIE, PM_GLASS_GOLEM, PM_GNOME_MUMMY, PM_GNOME_ZOMBIE, PM_GOLD_DRAGON, PM_GOLD_GOLEM, PM_GRAY_DRAGON, PM_GRAY_UNICORN, PM_GREEN_DRAGON, PM_HUMAN_MUMMY, PM_HUMAN_ZOMBIE, PM_IRON_GOLEM, PM_KOBOLD_MUMMY, PM_KOBOLD_ZOMBIE, PM_LEATHER_GOLEM, PM_LONG_WORM, PM_ORANGE_DRAGON, PM_ORC_MUMMY, PM_ORC_ZOMBIE, PM_PAPER_GOLEM, PM_RED_DRAGON, PM_SILVER_DRAGON, PM_STONE_GOLEM, PM_VAMPIRE, PM_VAMPIRE_LORD, PM_WHITE_DRAGON, PM_WHITE_UNICORN, PM_WOOD_GOLEM, PM_YELLOW_DRAGON, obj::quan, QUARTERSTAFF, rn2(), rnd(), rnl(), ROCK, s_suffix(), SCR_BLANK_PAPER, sensemon, obj::spe, stackobj(), STATUE, TRUE, undead_to_corpse(), UNICORN_HORN, weight(), and WORM_TOOTH.
Referenced by mondied(), and xkilled().
int max_mon_load | ( | struct monst * | mtmp ) |
References MAX_CARR_CAP, MZ_HUMAN, strongmonst, and WT_HUMAN.
Referenced by can_carry(), and m_move().
void mcalcdistress | ( | ) |
References monst::data, DEADMONSTER, FALSE, fmon, minliquid(), permonst::mmove, mon_regen(), newcham(), monst::nmon, rn2(), vision_full_recalc, vision_recalc(), and were_change().
Referenced by moveloop().
int mcalcmove | ( | struct monst * | mon ) |
References monst::data, flags, MFAST, permonst::mmove, MSLOW, flag::mv, rn2(), and u.
Referenced by moveloop().
int meatmetal | ( | struct monst * | mtmp ) |
References AMULET_OF_STRANGULATION, cansee, canseemon, delobj(), distant_name(), doname(), FALSE, flags, grow_up(), is_metallic, is_rustprone, level, mhealup, mksobj_at(), mlevelgain, mon_to_stone(), Monnam(), mons, monstone(), mstoning, newcham(), newsym(), obj_resists(), objects, dlevel_t::objects, objclass::oc_weight, otmp, obj::otyp, obj::owt, pline(), PM_RUST_MONSTER, poly_when_stoned(), polyfodder, resists_ston, RIN_SLOW_DIGESTION, rnd(), ROCK, flag::soundok, touch_artifact(), TRUE, uball, uchain, unpunish(), and flag::verbose.
Referenced by m_move().
int meatobj | ( | struct monst * | mtmp ) |
References obj::age, AMULET_OF_STRANGULATION, BUFSZ, cansee, obj::cobj, CORPSE, obj::corpsenm, delobj(), distant_name(), doname(), FALSE, flags, grow_up(), Has_contents, ICE_BOX, is_organic, Is_sokoprize, level, mhealup, mlevelgain, Monnam(), mons, monstermoves, mpickobj(), newcham(), newsym(), obj_extract_self(), obj_resists(), objects, dlevel_t::objects, objclass::oc_weight, obj::oclass, otmp, obj::otyp, pline(), PM_GELATINOUS_CUBE, polyfodder, resists_ston, RIN_SLOW_DIGESTION, ROCK_CLASS, flag::soundok, Sprintf, start_corpse_timeout(), touch_artifact(), touch_petrifies, uball, uchain, and flag::verbose.
Referenced by m_move().
References ALLOW_ALL, ALLOW_BARS, ALLOW_DIG, ALLOW_M, ALLOW_ROCK, ALLOW_SANCT, ALLOW_SSM, ALLOW_TM, ALLOW_TRAPS, ALLOW_U, ALLOW_WALL, amorphous, AXE, bad_rock(), BATTLE_AXE, BEAR_TRAP, bigmonst, BOULDER, BUSTDOOR, CLOVE_OF_GARLIC, COLNO, curr_mon_load(), D_BROKEN, D_CLOSED, D_LOCKED, Displaced, doormask, DWARVISH_MATTOCK, FALSE, FIRE_TRAP, dlevel_t::flags, HOLE, in_rooms(), In_sokoban, in_your_sanctuary(), Invis, IRONBARS, is_axe, is_clinger, IS_DOOR, is_floater, is_flyer, is_lava(), is_pick, is_pool(), IS_ROCK, Is_rogue_level, is_swimmer, IS_TREE, level, levl, likes_lava, m_at, m_carrying(), max, may_dig(), may_passwall(), min, permonst::mlet, mm_aggression(), MON_AT, MON_WEP, mons, permonst::msize, monst::mtame, MZ_SMALL, needspick, NO_WEAPON_WANTED, NOGARLIC, NOTONL, OBJ_AT, onlineu, onscary(), OPENDOOR, perceives, PICK_AXE, PIT, PM_GRID_BUG, PM_IRON_GOLEM, REINCARNATION, resists_fire, resists_sleep, ROWNO, RUST_TRAP, S_EEL, SLP_GAS_TRAP, sobj_at(), SPIKED_PIT, SQKY_BOARD, STATUE_TRAP, t_at(), TEMPLE, TRAPDOOR, TRAPNUM, TRUE, u, UNLOCKDOOR, you::ux, you::uy, you::uz, W_ARMS, WEB, webmaker, which_armor(), nhcoord::x, and nhcoord::y.
Referenced by dog_move(), m_move(), and move_special().
void mimic_hit_msg | ( | struct monst * | mtmp, |
short | otyp | ||
) |
References c_obj_colors, M_AP_FURNITURE, M_AP_MONSTER, M_AP_NOTHING, M_AP_OBJECT, monst::mappearance, objects, pline(), simple_typename(), SPE_EXTRA_HEALING, SPE_HEALING, and The().
Referenced by bhitm().
int minliquid | ( | struct monst * | mtmp ) |
References amphibious, cansee, d(), dryup(), FALSE, fire_damage(), Flying, is_clinger, is_floater, is_flyer, IS_FOUNTAIN, is_lava(), is_pool(), is_swimmer, Is_waterlevel, Levitation, levl, likes_lava, mondead(), monflee(), Monnam(), mons, pline(), PM_GREMLIN, PM_IRON_GOLEM, PM_WATER_ELEMENTAL, resists_fire, rloc(), rn2(), S_EEL, split_mon(), u, you::ustuck, you::uz, and water_damage().
Referenced by do_flood(), domove(), gush(), make_familiar(), mcalcdistress(), and movemon().
References AMULET_OF_LIFE_SAVING, nonliving, otmp, obj::otyp, W_AMUL, and which_armor().
Referenced by buzz(), gulpum(), lifesaved_monster(), and mdamagem().
References ALLOW_M, ALLOW_TM, mons, PM_PURPLE_WORM, and PM_SHRIEKER.
Referenced by mfndpos().
References enexto(), FALSE, goodpos(), m_at, monst::mx, monst::my, remove_monster(), remove_worm(), rloc_to(), TRUE, nhcoord::x, and nhcoord::y.
Referenced by home_shk(), mon_arrive(), mv_bubble(), pay_for_damage(), shkcatch(), and tactics().
void mnexto | ( | struct monst * | mtmp ) |
References enexto(), rloc_to(), u, you::ux, you::uy, nhcoord::x, and nhcoord::y.
Referenced by expels(), gd_move(), goto_level(), kick_monster(), m_move(), mon_arrive(), mv_bubble(), newgame(), next_to_u(), pay_for_damage(), paygd(), shopdig(), spoteffects(), tactics(), and use_magic_whistle().
void mon_animal_list | ( | boolean | construct ) |
References animal_list, is_animal, LOW_PM, mons, and SPECIAL_PM.
Referenced by pick_animal().
void mon_to_stone | ( | struct monst * | mtmp ) |
References a_monnam(), an(), canseemon, FALSE, Monnam(), mons, newcham(), pline(), PM_STONE_GOLEM, and S_GOLEM.
Referenced by mdamagem(), meatmetal(), minstapetrify(), and passiveum().
void mondead | ( | struct monst * | mtmp ) |
Referenced by explmm(), explmu(), kill_genocided_monsters(), kill_monster_on_level(), minliquid(), mon_consume_unstone(), mondied(), monkilled(), monstone(), revive(), and xkilled().
void mondied | ( | struct monst * | mdef ) |
drop (perhaps) a cadaver and remove monster
References accessible(), corpse_chance(), FALSE, is_pool(), make_corpse(), and mondead().
Referenced by corpse_chance(), dog_hunger(), drop_boulder_on_monster(), grow_up(), mb_trapped(), mdamagem(), mintrap(), monkilled(), ohitmon(), and use_offensive().
void mongone | ( | struct monst * | mdef ) |
monster disappears, not dies
References discard_minvent(), m_detach(), mdrop_special_objs(), monst::mhp, and u.
Referenced by clearpriests(), create_object(), demon_talk(), djinni_from_bottle(), do_class_genocide(), do_genocide(), dog_move(), dowaterdemon(), fixup_special(), getbones(), hitmu(), invault(), m_move(), maketrap(), mon_arrive(), paybill(), paygd(), precheck(), restfakecorr(), savebones(), and use_defensive().
void monkilled | ( | struct monst * | mdef, |
const char * | fltxt, | ||
int | how | ||
) |
References AD_DGST, AD_DISN, AD_RBRE, cansee, cthulhu_dies(), FALSE, Hallucination, m_monnam(), mondead(), mondied(), Monnam(), mons, nonliving, pline(), PM_CTHULHU, rn2(), WEBB_DISINT, and worm_known().
Referenced by buzz(), cancel_monst(), dochug(), e_died(), explode(), flash_hits_mon(), inside_gas_cloud(), mdamagem(), passivemm(), potionhit(), precheck(), resist(), and thitm().
References dist2(), mons, and PM_GRID_BUG.
Referenced by distfleeck(), dochug(), dog_move(), fightm(), keepdogs(), mattacku(), passive(), pri_move(), quest_stat_check(), steal(), and thitmonst().
void monstone | ( | struct monst * | mdef ) |
drop a statue or rock and remove monster
References AD_STON, add_to_container(), BOULDER, cansee, obj::corpsenm, monst::data, end_burn(), FALSE, flooreffects(), G_FREQ, G_UNIQ, glyph_is_invisible, GOLD_PIECE, is_animal, KEEPTRAITS, levl, lifesaved_monster(), locomotion(), mkcorpstat(), mksobj(), mksobj_at(), mondead(), mons, permonst::msize, MZ_TINY, NAME, newsym(), obj::nobj, obj_extract_self(), obj_no_longer_held(), obj_resists(), oname(), otmp, obj::otyp, obj::owornmask, obj::owt, place_object(), obj::quan, rn2(), ROCK, setmnotwielded(), obj::spe, stackobj(), STATUE, TRUE, u, unmap_object(), update_mon_intrinsics(), you::ustuck, W_WEP, weight(), xname(), and youmonst.
Referenced by gazemm(), mdamagem(), meatmetal(), minstapetrify(), and xkilled().
int movemon | ( | ) |
References any_light_source(), BOLT_LIM, Conflict, couldsee, monst::data, DEADMONSTER, deferred_goto(), distu, dmonsfree(), dochugw(), FALSE, fightm(), fmon, is_hider, M_AP_FURNITURE, M_AP_OBJECT, monst::m_ap_type, minliquid(), monst::movement, monst::mx, monst::my, monst::nmon, NORMAL_SPEED, restrap(), TRUE, u, you::utotype, vision_full_recalc, and vision_recalc().
Referenced by moveloop().
void mpickgold | ( | struct monst * | mtmp ) |
References acidic, BOULDER, can_carry(), cansee, CORPSE, obj::corpsenm, distant_name(), distu, doname(), FALSE, flags, index, inhishop(), is_pool(), Is_sokoprize, level, m_dowear(), Monnam(), mons, mpickobj(), newsym(), obj_extract_self(), dlevel_t::objects, obj::oclass, otmp, obj::otyp, obj::ox, obj::oy, perceives, pline(), PM_LIZARD, S_NYMPH, searches_for_item(), touch_artifact(), touch_petrifies, TRUE, unblock_point(), and flag::verbose.
Referenced by m_move().
STATIC_DCL int NDECL | ( | pick_animal | ) |
References adj_lev(), amorphous, ARTICLE_A, ARTICLE_THE, AT_ENGL, attacktype(), BOULDER, BUFSZ, bypass_obj(), count_wsegs(), monst::data, del_light_source(), emits_light, expels(), FALSE, flags, flooreffects(), G_GENOD, get_wormno(), hides_under, highc(), In_endgame, index, initworm(), is_animal, is_female, is_human, is_male, is_mplayer, is_neuter, is_placeholder, is_pool(), is_whirly, LS_MONSTER, m_dowear(), permonst::mlet, permonst::mlevel, mon_break_armor(), flag::mon_moving, mon_nam(), mons, monsndx(), mselftouch(), NAME, new_light_source(), newsym(), obj::nobj, noncorporeal, OBJ_AT, obj_extract_self(), otmp, obj::otyp, place_object(), place_worm_tail_randomly(), pline(), PM_GREEN_SLIME, pm_invisible, PM_LONG_WORM, PM_YELLOW_LIGHT, polyok, possibly_unwield(), rn2(), S_EEL, select_newcham_form(), set_mon_data(), sticks(), Strcpy, SUPPRESS_SADDLE, swallowed(), throws_rocks, TRUE, u, unstuck(), you::ustuck, you::uz, W_ARMG, wormgone(), x_monnam(), and youmonst.
Referenced by animate_statue(), bhitm(), damageum(), dog_eat(), dropy(), kill_genocided_monsters(), makemon(), mcalcdistress(), mdamagem(), meatmetal(), meatobj(), mintrap(), mon_to_stone(), rescham(), restore_cham(), and use_misc().
void pacify_guards | ( | ) |
References monst::data, DEADMONSTER, fmon, mons, monst::nmon, PM_WATCH_CAPTAIN, and PM_WATCHMAN.
Referenced by home_shk(), and make_happy_shk().
STATIC_OVL int pick_animal | ( | ) |
References mon_animal_list(), rn2(), and TRUE.
Referenced by select_newcham_form().
int pm_to_cham | ( | int | mndx ) |
References CHAM_CHAMELEON, CHAM_DOPPELGANGER, CHAM_ORDINARY, CHAM_SANDESTIN, PM_CHAMELEON, PM_DOPPELGANGER, and PM_SANDESTIN.
Referenced by makemon(), restartcham(), and restore_cham().
void poisoned | ( | char * | string, |
int | typ, | ||
char * | pname, | ||
int | fatal | ||
) | const |
References A_CHA, adjattrib(), d(), DIED, done(), encumber_msg(), G_UNIQ, Half_physical_damage, KILLED_BY, KILLED_BY_AN, killer, killer_format, losehp(), losehp_how(), LOW_PM, mons, name_to_mon(), pline(), Poison_resistance, POISONING, rn1, rn2(), rnd(), shieldeff(), strncmpi(), strstri(), the(), type_is_pname, u, you::uhp, you::uhpmax, you::ux, and you::uy.
Referenced by chest_trap(), dotrap(), hitmu(), m_throw(), and zhitu().
void poisontell | ( | int | typ ) |
References pline().
Referenced by peffects().
void relmon | ( | struct monst * | mon ) |
References fmon, mon, monst::nmon, and remove_monster().
Referenced by keepdogs(), migrate_to_level(), and replmon().
void remove_monster | ( | int | x, |
int | y | ||
) |
References monst::data, level, mons, dlevel_t::monsters, PM_GIANT_TURTLE, See_invisible, and unblock_point().
Referenced by cutworm(), do_entity(), dog_move(), domove(), gd_move(), grddead(), gulpmm(), gulpmu(), kickdmg(), m_detach(), m_move(), mattacku(), mdamagem(), mhurtle_step(), mnearto(), move_special(), movebubbles(), relmon(), remove_worm(), restlevelstate(), rloc_to(), toss_wsegs(), use_defensive(), and use_misc().
References dealloc_monst, del_light_source(), emits_light, fmon, LS_MONSTER, new_light_source(), obj::nobj, OBJ_MINVENT, otmp, place_wsegs(), relmon(), replshk(), u, you::ustuck, and obj::where.
Referenced by christen_monst(), clone_mon(), montraits(), and tamedog().
void rescham | ( | ) |
References cansee, CHAM_ORDINARY, monst::data, DEADMONSTER, FALSE, fmon, if(), is_were, monst::m_ap_type, permonst::mlet, mons, monst::mx, monst::my, new_were(), newcham(), monst::nmon, S_HUMAN, and seemimic().
Referenced by eataccessory(), and Ring_on().
void restartcham | ( | ) |
References cansee, monst::data, DEADMONSTER, fmon, permonst::mlet, monsndx(), monst::mx, monst::my, newsym(), monst::nmon, pm_to_cham(), S_MIMIC, and set_mimic_sym().
Referenced by Ring_off_or_gone().
void restore_cham | ( | struct monst * | mon ) |
References CHAM_ORDINARY, FALSE, if(), is_human, is_were, mons, monsndx(), new_were(), newcham(), pm_to_cham(), and Protection_from_shape_changers.
Referenced by getlev().
void seemimic | ( | struct monst * | mtmp ) |
References BOULDER, does_block(), levl, M_AP_FURNITURE, M_AP_NOTHING, M_AP_OBJECT, monst::mappearance, newsym(), S_hcdoor, S_vcdoor, and unblock_point().
Referenced by animate_statue(), attack_checks(), bhitm(), domove(), dosearch0(), explode(), findone(), hitmm(), kickdmg(), mbhitm(), missmm(), ohitmon(), rescham(), wakeup(), and zap_over_floor().
STATIC_OVL int select_newcham_form | ( | struct monst * | mon ) |
References BUFSZ, CHAM_CHAMELEON, CHAM_DOPPELGANGER, CHAM_ORDINARY, CHAM_SANDESTIN, Dragon_mail_to_pm, Dragon_scales_to_pm, getlin, iflags, Is_dragon_mail, Is_dragon_scales, LOW_PM, mon_nam(), mons, name_to_mon(), NON_PM, obj::otyp, pick_animal(), pick_nasty(), pline(), PM_ARCHEOLOGIST, PM_WIZARD, rn1, rn2(), SPECIAL_PM, Sprintf, thats_enough_tries, W_ARM, which_armor(), and wizard.
Referenced by newcham().
void setmangry | ( | struct monst * | mtmp ) |
References adjalign(), canseemon, couldsee, monst::data, DEADMONSTER, flags, fmon, growl(), Hallucination, humanoid, inside_shop(), makeplural(), permonst::mname, mon, flag::mon_moving, Monnam(), mons, MS_GUARDIAN, MS_LEADER, monst::mstrategy, NAME, monst::nmon, p_coaligned(), pline(), quest_info(), shop_keeper(), flag::soundok, STRAT_WAITMASK, u, you::uz, flag::verbose, and wakeup().
Referenced by dogaze(), explode(), flash_hits_mon(), ghitm(), hmon_hitmon(), inside_gas_cloud(), invault(), kick_monster(), maybe_tame(), mintrap(), wakeup(), and zap_over_floor().
int undead_to_corpse | ( | int | mndx ) |
References PM_DWARF, PM_DWARF_MUMMY, PM_DWARF_ZOMBIE, PM_ELF, PM_ELF_MUMMY, PM_ELF_ZOMBIE, PM_ETTIN, PM_ETTIN_MUMMY, PM_ETTIN_ZOMBIE, PM_GIANT, PM_GIANT_MUMMY, PM_GIANT_ZOMBIE, PM_GNOME, PM_GNOME_MUMMY, PM_GNOME_ZOMBIE, PM_HUMAN, PM_HUMAN_MUMMY, PM_HUMAN_ZOMBIE, PM_KOBOLD, PM_KOBOLD_MUMMY, PM_KOBOLD_ZOMBIE, PM_ORC, PM_ORC_MUMMY, PM_ORC_ZOMBIE, PM_VAMPIRE, and PM_VAMPIRE_LORD.
Referenced by make_corpse(), and mksobj().
void unstuck | ( | struct monst * | mtmp ) |
References docrt(), placebc(), Punished, u, you::ustuck, you::uswldtim, you::ux, you::uy, and vision_full_recalc.
Referenced by dog_move(), expels(), m_detach(), monflee(), newcham(), slept_monst(), tamedog(), and u_teleport_mon().
void wake_nearby | ( | ) |
References DEADMONSTER, distu, EDOG, fmon, moves, monst::mtame, monst::mx, monst::my, monst::nmon, u, and you::ulevel.
Referenced by b_trapped(), chest_trap(), dighole(), dokick(), dotrap(), forcelock(), nh_timeout(), use_bell(), use_magic_whistle(), use_pick_axe2(), and use_whistle().
void wake_nearto | ( | int | x, |
int | y, | ||
int | distance | ||
) |
References DEADMONSTER, dist2(), fmon, monst::mx, monst::my, and monst::nmon.
Referenced by blow_up_landmine(), boulder_hits_pool(), destroy_drawbridge(), domonnoise(), doorlock(), explmu(), explode(), growl(), launch_obj(), mb_trapped(), mintrap(), openone(), whimper(), and yelp().
void wakeup | ( | struct monst * | mtmp ) |
References flags, flag::forcefight, monst::meating, flag::mon_moving, newsym(), seemimic(), and setmangry().
Referenced by angry_priest(), attack_checks(), bhitm(), do_earthquake(), ghitm(), hmon_hitmon(), hmonas(), hurtle_step(), missum(), potionhit(), revive_cthulhu(), setmangry(), stumble_onto_mimic(), thitmonst(), tmiss(), and use_whip().
void xkilled | ( | struct monst * | mtmp, |
int | dest | ||
) |
References A_CHAOTIC, A_NONE, accessible(), adjalign(), ALIGNLIM, always_hostile, ARTICLE_NONE, ARTICLE_THE, Blind, Blind_telepat, BOULDER, cansee, canspotmon, change_luck(), CONDUCT_PACIFISM, corpse_chance(), cthulhu_dies(), delobj(), EDOG, experience(), FALSE, FIGURINE, FOOD_RATION, G_NOCORPSE, Hallucination, HTelepat, INTRINSIC, is_human, is_pole, is_pool(), is_spear, is_unicorn, KOPS, q_score::leader_m_id, LEASH, LEVEL_SPECIFIC_NOCORPSE, make_corpse(), permonst::maligntyp, max, mkobj_at(), mksobj_at(), permonst::mlet, mon_nam(), mondead(), mons, monsndx(), monstone(), more_experienced(), MORNING_STAR, MS_GUARDIAN, MS_NEMESIS, permonst::msize, permonst::msound, monst::mx, MZ_HUMAN, newexplevel(), newsym(), nonliving, objects, otmp, obj::otyp, obj::owt, p_coaligned(), PIT, pline(), PM_CTHULHU, PM_MAIL_DAEMON, PM_WIZARD, quest_status, RANDOM_CLASS, align::record, rn2(), S_KOP, S_PUDDING, SCR_MAIL, see_monsters(), sgn(), sobj_at(), SPIKED_PIT, spoteffects(), stackobj(), stoned, SUPPRESS_SADDLE, t_at(), TRUE, align::type, u, you::ualign, you::ublessed, you::uevent, you::ustuck, you::ux, you::uy, violated(), x_monnam(), and trap::y.
Referenced by bhitm(), buzz(), check_leash(), damageum(), do_earthquake(), drop_boulder_on_monster(), e_died(), god_zaps_you(), gulpum(), hmon_hitmon(), killed(), minstapetrify(), mon_consume_unstone(), ohitmon(), and passiveum().
short* animal_list = 0 |
Referenced by mon_animal_list().
STATIC_VAR short cham_to_pm[] |
const char* poiseff[] [static] |
{ " feel weaker", "r brain is on fire", "r judgement is impaired", "r muscles won't obey you", " feel very sick", " break out in hives" }