paranoid:swim to prevent accidental dunking into dangerous liquids
looking at a monster will indicate whether it is asleep, and waking up a
monster yields a message
+extend farlook's "<mon>, asleep" to "<mon>, can't move (paralyzed or sleeping
+ or busy)" for timed sleep and also "<mon>, meditating" for monster
+ that is waiting for hero to approach
Platform- and/or Interface-Specific New Features
Strcat(info, ", stunned");
if (mtmp->msleeping)
Strcat(info, ", asleep");
-#if 0 /* unfortunately mfrozen covers temporary sleep and being busy \
- (donning armor, for instance) as well as paralysis */
+#if 0 /* unfortunately mfrozen covers temporary sleep and being busy
+ * (donning armor, for instance) as well as paralysis */
else if (mtmp->mfrozen)
Strcat(info, ", paralyzed");
#else
Sprintf(eos(info), ", injured %s", what);
}
}
+ if (mtmp->mleashed)
+ Strcat(info, ", leashed");
/* avoid "Status of the invisible newt ..., invisible" */
/* and unlike a normal mon_nam, use "saddled" even if it has a name */
Strcat(buf, (Upolyd && sticks(g.youmonst.data))
? ", being held" : ", holding you");
}
- if (mtmp->msleeping)
+ /* if mtmp isn't able to move (other than because it is a type of
+ monster that never moves), say so [excerpt from mstatusline() for
+ stethoscope or wand of probing] */
+ if (mtmp->mfrozen)
+ /* unfortunately mfrozen covers temporary sleep and being busy
+ (donning armor, for instance) as well as paralysis */
+ Strcat(buf, ", can't move (paralyzed or sleeping or busy)");
+ else if (mtmp->msleeping)
+ /* sleeping for an indeterminate duration */
Strcat(buf, ", asleep");
+ else if ((mtmp->mstrategy & STRAT_WAITMASK) != 0)
+ /* arbitrary reason why it isn't moving */
+ Strcat(buf, ", meditating");
+
if (mtmp->mleashed)
Strcat(buf, ", leashed to you");
-
if (mtmp->mtrapped && cansee(mtmp->mx, mtmp->my)) {
struct trap *t = t_at(mtmp->mx, mtmp->my);
int tt = t ? t->ttyp : NO_TRAP;