Lines Matching refs:mtmp
91 struct monst *mtmp; in movemon() local
103 for (mtmp = fmon; mtmp; mtmp = mtmp->nmon) in movemon()
104 if (mtmp->mlstmv < moves) in movemon()
110 mtmp->mlstmv = moves; in movemon()
116 inpool = (levl[mtmp->mx][mtmp->my].typ == POOL); in movemon()
117 iseel = (mtmp->data->mlet == ';'); in movemon()
119 if (cansee(mtmp->mx, mtmp->my)) in movemon()
120 pline("%s drowns.", Monnam(mtmp)); in movemon()
121 mondead(mtmp); in movemon()
126 if (mtmp->mhp > 1) in movemon()
127 mtmp->mhp--; in movemon()
128 mtmp->mflee = 1; in movemon()
129 mtmp->mfleetim += 2; in movemon()
132 if (mtmp->mblinded && !--mtmp->mblinded) in movemon()
133 mtmp->mcansee = 1; in movemon()
134 if (mtmp->mfleetim && !--mtmp->mfleetim) in movemon()
135 mtmp->mflee = 0; in movemon()
136 if (mtmp->mimic) in movemon()
138 if (mtmp->mspeed != MSLOW || !(moves % 2)) { in movemon()
141 if (Conflict && cansee(mtmp->mx, mtmp->my) in movemon()
142 && (fr = fightm(mtmp)) == 2) in movemon()
144 if (fr < 0 && dochugw(mtmp)) in movemon()
147 if (mtmp->mspeed == MFAST && dochugw(mtmp)) in movemon()
179 justswld(struct monst *mtmp, const char *name) in justswld() argument
182 mtmp->mx = u.ux; in justswld()
183 mtmp->my = u.uy; in justswld()
184 u.ustuck = mtmp; in justswld()
185 pmon(mtmp); in justswld()
195 youswld(struct monst *mtmp, int dam, unsigned int die, const char *name) in youswld() argument
197 if (mtmp != u.ustuck) in youswld()
206 done_in_by(mtmp); in youswld()
213 dochugw(struct monst *mtmp) in dochugw() argument
215 int x = mtmp->mx; in dochugw()
216 int y = mtmp->my; in dochugw()
217 int dead = dochug(mtmp); in dochugw()
222 if (!mtmp->mpeaceful) in dochugw()
223 if (mtmp->data->mlevel > warnlevel) in dochugw()
224 if ((dd = dist(mtmp->mx, mtmp->my)) < dist(x, y)) in dochugw()
226 if (!canseemon(mtmp)) in dochugw()
227 warnlevel = mtmp->data->mlevel; in dochugw()
233 dochug(struct monst *mtmp) in dochug() argument
238 if (mtmp->cham && !rn2(6)) in dochug()
239 (void) newcham(mtmp, &mons[dlevel + 14 + rn2(CMNUM - 14 - dlevel)]); in dochug()
240 mdat = mtmp->data; in dochug()
246 mtmp->mhp < mtmp->mhpmax) in dochug()
247 mtmp->mhp++; in dochug()
249 if (mtmp->mfroz) in dochug()
252 if (mtmp->msleep) { in dochug()
256 if (cansee(mtmp->mx, mtmp->my) && in dochug()
260 || (!rn2(7) && !mtmp->mimic))) in dochug()
261 mtmp->msleep = 0; in dochug()
266 wipe_engr_at(mtmp->mx, mtmp->my, 1); in dochug()
269 if (mtmp->mconf && !rn2(50)) in dochug()
270 mtmp->mconf = 0; in dochug()
273 if (mtmp->mflee && strchr("tNL", mdat->mlet) && !rn2(40)) { in dochug()
274 rloc(mtmp); in dochug()
281 if (mtmp->mflee && !mtmp->mfleetim in dochug()
282 && mtmp->mhp == mtmp->mhpmax && !rn2(25)) in dochug()
283 mtmp->mflee = 0; in dochug()
285 nearby = (dist(mtmp->mx, mtmp->my) < 3); in dochug()
288 if (scared && !mtmp->mflee) { in dochug()
289 mtmp->mflee = 1; in dochug()
290 mtmp->mfleetim = (rn2(7) ? rnd(10) : rnd(100)); in dochug()
293 mtmp->mflee || in dochug()
294 mtmp->mconf || in dochug()
295 (mtmp->minvis && !rn2(3)) || in dochug()
297 (mdat->mlet == 'L' && !u.ugold && (mtmp->mgold || rn2(2))) || in dochug()
298 (!mtmp->mcansee && !rn2(4)) || in dochug()
299 mtmp->mpeaceful in dochug()
301 tmp = m_move(mtmp, 0); /* 2: monster died moving */ in dochug()
306 !mtmp->mpeaceful && u.uhp > 0 && !scared) { in dochug()
307 if (mhitu(mtmp)) in dochug()
312 tmp = m_move(mtmp, 1); in dochug()
317 m_move(struct monst *mtmp, int after) in m_move() argument
324 char msym = mtmp->data->mlet; in m_move()
330 if (mtmp->mfroz || mtmp->msleep) in m_move()
332 if (mtmp->mtrapped) { in m_move()
333 i = mintrap(mtmp); in m_move()
339 if (mtmp->mhide && o_at(mtmp->mx, mtmp->my) && rn2(10)) in m_move()
343 if (mtmp->wormno) in m_move()
348 if (mtmp->mtame) { in m_move()
349 return (dog_move(mtmp, after)); in m_move()
352 if (mtmp->isshk) { in m_move()
353 mmoved = shk_move(mtmp); in m_move()
359 if (mtmp->isgd) { in m_move()
368 || (msym == '1' && (mtmp->mhp < 7 || (!xdnstair && !rn2(5)) in m_move()
370 if (mtmp->mhp < 7 || (msym == 't' && rn2(2))) in m_move()
371 rloc(mtmp); in m_move()
373 mnexto(mtmp); in m_move()
379 inrange(mtmp); in m_move()
381 if (msym == 'U' && !mtmp->mcan && canseemon(mtmp) && in m_move()
382 mtmp->mcansee && rn2(5)) { in m_move()
384 pline("%s's gaze has confused you!", Monnam(mtmp)); in m_move()
388 mtmp->mcan = 1; in m_move()
392 if (!mtmp->mflee && u.uswallow && u.ustuck != mtmp) in m_move()
395 if (mtmp->mflee) in m_move()
397 if (mtmp->mconf || Invis || !mtmp->mcansee || in m_move()
400 omx = mtmp->mx; in m_move()
401 omy = mtmp->my; in m_move()
404 if (msym == 'L' && appr == 1 && mtmp->mgold > u.ugold) in m_move()
427 likeobjs = mtmp->mhide; in m_move()
463 cnt = mfndpos(mtmp, poss, info, in m_move()
474 if (nx == mtmp->mtrack[j].x && ny == mtmp->mtrack[j].y) in m_move()
502 if (hitmm(mtmp, mtmp2) == 1 && rn2(4) && in m_move()
503 hitmm(mtmp2, mtmp) == 2) in m_move()
508 (void) hitu(mtmp, d(mtmp->data->damn, mtmp->data->damd) + 1); in m_move()
511 mtmp->mx = nix; in m_move()
512 mtmp->my = niy; in m_move()
514 mtmp->mtrack[j] = mtmp->mtrack[j - 1]; in m_move()
515 mtmp->mtrack[0].x = omx; in m_move()
516 mtmp->mtrack[0].y = omy; in m_move()
518 if (mtmp->wormno) in m_move()
519 worm_move(mtmp); in m_move()
523 rloc(mtmp); in m_move()
527 if (mtmp->wormno) in m_move()
528 worm_nomove(mtmp); in m_move()
533 if (mintrap(mtmp) == 2) /* he died */ in m_move()
536 mpickgold(mtmp); in m_move()
538 mpickgems(mtmp); in m_move()
539 if (mtmp->mhide) in m_move()
540 mtmp->mundetected = 1; in m_move()
542 pmon(mtmp); in m_move()
547 mpickgold(struct monst *mtmp) in mpickgold() argument
550 while ((gold = g_at(mtmp->mx, mtmp->my)) != NULL) { in mpickgold()
551 mtmp->mgold += gold->amount; in mpickgold()
553 if (levl[mtmp->mx][mtmp->my].scrsym == '$') in mpickgold()
554 newsym(mtmp->mx, mtmp->my); in mpickgold()
559 mpickgems(struct monst *mtmp) in mpickgems() argument
564 if (otmp->ox == mtmp->mx && otmp->oy == mtmp->my) in mpickgems()
565 if (mtmp->data->mlet != 'u' || objects[otmp->otyp].g_val != 0) { in mpickgems()
567 mpickobj(mtmp, otmp); in mpickgems()
568 if (levl[mtmp->mx][mtmp->my].scrsym == GEM_SYM) in mpickgems()
569 newsym(mtmp->mx, mtmp->my); /* %% */ in mpickgems()
579 struct monst *mtmp; in mfndpos() local
606 } else if ((mtmp = m_at(nx, ny)) != NULL) { in mfndpos()
610 if (mtmp->mtame) { in mfndpos()
702 mondead(struct monst *mtmp) in mondead() argument
704 relobj(mtmp, 1); in mondead()
705 unpmon(mtmp); in mondead()
706 relmon(mtmp); in mondead()
707 unstuck(mtmp); in mondead()
708 if (mtmp->isshk) in mondead()
709 shkdead(mtmp); in mondead()
710 if (mtmp->isgd) in mondead()
713 if (mtmp->wormno) in mondead()
714 wormdead(mtmp); in mondead()
716 monfree(mtmp); in mondead()
721 replmon(struct monst *mtmp, struct monst *mtmp2) in replmon() argument
723 relmon(mtmp); in replmon()
724 monfree(mtmp); in replmon()
727 if (u.ustuck == mtmp) in replmon()
730 replshk(mtmp, mtmp2); in replmon()
732 replgd(mtmp, mtmp2); in replmon()
738 struct monst *mtmp; in relmon() local
743 for (mtmp = fmon; mtmp->nmon != mon; mtmp = mtmp->nmon); in relmon()
744 mtmp->nmon = mon->nmon; in relmon()
756 monfree(struct monst *mtmp) in monfree() argument
758 mtmp->nmon = fdmon; in monfree()
759 fdmon = mtmp; in monfree()
765 struct monst *mtmp; in dmonsfree() local
766 while ((mtmp = fdmon) != NULL) { in dmonsfree()
767 fdmon = mtmp->nmon; in dmonsfree()
768 free(mtmp); in dmonsfree()
773 unstuck(struct monst *mtmp) in unstuck() argument
775 if (u.ustuck == mtmp) { in unstuck()
777 u.ux = mtmp->mx; in unstuck()
778 u.uy = mtmp->my; in unstuck()
788 killed(struct monst *mtmp) in killed() argument
796 if (mtmp->cham) in killed()
797 mtmp->data = PM_CHAMELEON; in killed()
798 mdat = mtmp->data; in killed()
803 mtmp->mtame ? amonnam(mtmp, "poor") : monnam(mtmp)); in killed()
823 if (mtmp->mpeaceful || mtmp->mtame) in killed()
883 x = mtmp->mx; in killed()
884 y = mtmp->my; in killed()
885 mondead(mtmp); in killed()
929 struct monst *mtmp; in rescham() local
931 for (mtmp = fmon; mtmp; mtmp = mtmp->nmon) in rescham()
932 if (mtmp->cham) { in rescham()
933 mtmp->cham = 0; in rescham()
934 (void) newcham(mtmp, PM_CHAMELEON); in rescham()
941 newcham(struct monst *mtmp, const struct permonst *mdat) in newcham() argument
945 if (mdat == mtmp->data) in newcham()
948 if (mtmp->wormno) in newcham()
949 wormdead(mtmp); /* throw tail away */ in newcham()
951 if (u.ustuck == mtmp) { in newcham()
955 mnexto(mtmp); in newcham()
961 hpn = mtmp->mhp; in newcham()
962 hpd = (mtmp->data->mlevel) * 8; in newcham()
965 mtmp->data = mdat; in newcham()
968 mtmp->mhp = 2 + (hpn * mhp) / hpd; in newcham()
969 hpn = mtmp->mhpmax; in newcham()
970 mtmp->mhpmax = 2 + (hpn * mhp) / hpd; in newcham()
971 mtmp->minvis = (mdat->mlet == 'I') ? 1 : 0; in newcham()
973 if (mdat->mlet == 'w' && getwn(mtmp)) in newcham()
974 initworm(mtmp); in newcham()
977 unpmon(mtmp); /* necessary for 'I' and to force pmon */ in newcham()
978 pmon(mtmp); in newcham()
984 mnexto(struct monst *mtmp) in mnexto() argument
988 mtmp->mx = mm.x; in mnexto()
989 mtmp->my = mm.y; in mnexto()
990 pmon(mtmp); in mnexto()
994 ishuman(struct monst *mtmp) in ishuman() argument
996 return (mtmp->data->mlet == '@'); in ishuman()
1000 setmangry(struct monst *mtmp) in setmangry() argument
1002 if (!mtmp->mpeaceful) in setmangry()
1004 if (mtmp->mtame) in setmangry()
1006 mtmp->mpeaceful = 0; in setmangry()
1007 if (ishuman(mtmp)) in setmangry()
1008 pline("%s gets angry!", Monnam(mtmp)); in setmangry()
1016 canseemon(struct monst *mtmp) in canseemon() argument
1018 return ((!mtmp->minvis || See_invisible) in canseemon()
1019 && (!mtmp->mhide || !o_at(mtmp->mx, mtmp->my)) in canseemon()
1020 && cansee(mtmp->mx, mtmp->my)); in canseemon()