From: cohrs Date: Thu, 30 Oct 2003 04:31:05 +0000 (+0000) Subject: sleeping shopkeeper X-Git-Tag: MOVE2GIT~1616 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=64f2d8a37b213ff0ab5f98e3b38176a434bed981;p=nethack sleeping shopkeeper Pat verified something I had wondered about, that various tests of mcanmove in shk.c should have also been testing mcanmove. There may well be other tests of mcanmove in other files that need fixing. --- diff --git a/doc/fixes34.3 b/doc/fixes34.3 index c9f0e157d..94c00fcf5 100644 --- a/doc/fixes34.3 +++ b/doc/fixes34.3 @@ -84,6 +84,7 @@ prefer herbivorous stone-to-flesh message when hero is a vegitarian try even harder to avoid incorrect map display while changing levels no "freaked" message by exploding black light, unless you really are sleeping monster could respond to attacks by other monsters +sleeping shopkeeper responds to various events without waking Platform- and/or Interface-Specific Fixes diff --git a/src/shk.c b/src/shk.c index ecaf783ba..e0fc11f11 100644 --- a/src/shk.c +++ b/src/shk.c @@ -939,7 +939,7 @@ rouse_shk(shkp, verbosely) struct monst *shkp; boolean verbosely; { - if (!shkp->mcanmove) { + if (!shkp->mcanmove || shkp->msleeping) { /* greed induced recovery... */ if (verbosely && canspotmon(shkp)) pline("%s %s.", Monnam(shkp), @@ -1168,7 +1168,7 @@ proceed: if (ltmp || eshkp->billct || eshkp->debit) rouse_shk(shkp, TRUE); - if (!shkp->mcanmove) { /* still asleep or paralyzed */ + if (!shkp->mcanmove || shkp->msleeping) { /* still asleep/paralyzed */ pline("%s %s.", Monnam(shkp), rn2(2) ? "seems to be napping" : "doesn't respond"); return 0; @@ -1617,7 +1617,7 @@ int croaked; if (cansee(shkp->mx, shkp->my && croaked)) pline("%s %slooks at your corpse%s and %s.", Monnam(shkp), - !shkp->mcanmove ? "wakes up, " : "", + (!shkp->mcanmove || shkp->msleeping) ? "wakes up, " : "", !rn2(2) ? (shkp->female ? ", shakes her head," : ", shakes his head,") : "", !inhishop(shkp) ? "disappears" : "sighs"); @@ -1653,7 +1653,7 @@ int croaked; umoney = money_cnt(invent); #endif takes[0] = '\0'; - if (!shkp->mcanmove) + if (!shkp->mcanmove || shkp->msleeping) Strcat(takes, "wakes up and "); if (distu(shkp->mx, shkp->my) > 2) Strcat(takes, "comes and ");