improve Deaf messaging for minetown watch and shops
Changes to be committed: modified: doc/fixes36.1 modified: src/fountain.c modified: src/monmove.c modified: src/shk.c Fix for H4242, bz352
This commit is contained in:
@@ -152,6 +152,7 @@ vortexes and other unsolid monsters need not avoid webs
|
|||||||
barbarian and samurai can achieve basic in their special spell's skill
|
barbarian and samurai can achieve basic in their special spell's skill
|
||||||
scalpel and tsurugi can now split puddings; bashing with darts or arrows can't
|
scalpel and tsurugi can now split puddings; bashing with darts or arrows can't
|
||||||
jumping while punished could leave ball and chain in the wrong place
|
jumping while punished could leave ball and chain in the wrong place
|
||||||
|
improve Deaf message handling for the minetown watch and shops
|
||||||
|
|
||||||
|
|
||||||
Platform- and/or Interface-Specific Fixes
|
Platform- and/or Interface-Specific Fixes
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
/* NetHack 3.6 fountain.c $NHDT-Date: 1444937416 2015/10/15 19:30:16 $ $NHDT-Branch: master $:$NHDT-Revision: 1.55 $ */
|
/* NetHack 3.6 fountain.c $NHDT-Date: 1455402364 2016/02/13 22:26:04 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.56 $ */
|
||||||
/* Copyright Scott R. Turner, srt@ucla, 10/27/86 */
|
/* Copyright Scott R. Turner, srt@ucla, 10/27/86 */
|
||||||
/* NetHack may be freely redistributed. See license for details. */
|
/* NetHack may be freely redistributed. See license for details. */
|
||||||
|
|
||||||
@@ -180,8 +180,18 @@ boolean isyou;
|
|||||||
continue;
|
continue;
|
||||||
if (is_watch(mtmp->data) && couldsee(mtmp->mx, mtmp->my)
|
if (is_watch(mtmp->data) && couldsee(mtmp->mx, mtmp->my)
|
||||||
&& mtmp->mpeaceful) {
|
&& mtmp->mpeaceful) {
|
||||||
pline("%s yells:", Amonnam(mtmp));
|
if (!Deaf) {
|
||||||
verbalize("Hey, stop using that fountain!");
|
pline("%s yells:", Amonnam(mtmp));
|
||||||
|
verbalize("Hey, stop using that fountain!");
|
||||||
|
} else {
|
||||||
|
pline("%s earnestly %s %s %s!",
|
||||||
|
Amonnam(mtmp),
|
||||||
|
nolimbs(mtmp->data) ? "shakes" : "waves",
|
||||||
|
mhis(mtmp),
|
||||||
|
nolimbs(mtmp->data)
|
||||||
|
? mbodypart(mtmp, HEAD)
|
||||||
|
: makeplural(mbodypart(mtmp, ARM)));
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
/* NetHack 3.6 monmove.c $NHDT-Date: 1453371163 2016/01/21 10:12:43 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.83 $ */
|
/* NetHack 3.6 monmove.c $NHDT-Date: 1455402384 2016/02/13 22:26:24 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.84 $ */
|
||||||
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
||||||
/* NetHack may be freely redistributed. See license for details. */
|
/* NetHack may be freely redistributed. See license for details. */
|
||||||
|
|
||||||
@@ -56,11 +56,24 @@ mon_yells(mon, shout)
|
|||||||
struct monst *mon;
|
struct monst *mon;
|
||||||
const char *shout;
|
const char *shout;
|
||||||
{
|
{
|
||||||
if (canspotmon(mon))
|
if (Deaf) {
|
||||||
pline("%s yells:", Amonnam(mon));
|
if (canspotmon(mon))
|
||||||
else
|
/* Sidenote on "A watchman angrily waves her arms!"
|
||||||
You_hear("someone yell:");
|
* Female being called watchman is correct (career name).
|
||||||
verbalize1(shout);
|
*/
|
||||||
|
pline("%s angrily %s %s %s!",
|
||||||
|
Amonnam(mon),
|
||||||
|
nolimbs(mon->data) ? "shakes" : "waves",
|
||||||
|
mhis(mon),
|
||||||
|
nolimbs(mon->data) ? mbodypart(mon, HEAD)
|
||||||
|
: makeplural(mbodypart(mon, ARM)));
|
||||||
|
} else {
|
||||||
|
if (canspotmon(mon))
|
||||||
|
pline("%s yells:", Amonnam(mon));
|
||||||
|
else
|
||||||
|
You_hear("someone yell:");
|
||||||
|
verbalize1(shout);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
STATIC_OVL void
|
STATIC_OVL void
|
||||||
|
|||||||
265
src/shk.c
265
src/shk.c
@@ -1,4 +1,4 @@
|
|||||||
/* NetHack 3.6 shk.c $NHDT-Date: 1454485431 2016/02/03 07:43:51 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.122 $ */
|
/* NetHack 3.6 shk.c $NHDT-Date: 1455402387 2016/02/13 22:26:27 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.123 $ */
|
||||||
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
||||||
/* NetHack may be freely redistributed. See license for details. */
|
/* NetHack may be freely redistributed. See license for details. */
|
||||||
|
|
||||||
@@ -80,6 +80,8 @@ STATIC_DCL const char *FDECL(cad, (BOOLEAN_P));
|
|||||||
obj->quan <= bp->bquan
|
obj->quan <= bp->bquan
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
static const char *angrytexts[] = {"quite upset", "ticked off", "furious"};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Transfer money from inventory to monster when paying
|
* Transfer money from inventory to monster when paying
|
||||||
* shopkeepers, priests, oracle, succubus, and other demons.
|
* shopkeepers, priests, oracle, succubus, and other demons.
|
||||||
@@ -418,9 +420,15 @@ boolean newlev;
|
|||||||
* Player just stepped onto shop-boundary (known from above logic).
|
* Player just stepped onto shop-boundary (known from above logic).
|
||||||
* Try to intimidate him into paying his bill
|
* Try to intimidate him into paying his bill
|
||||||
*/
|
*/
|
||||||
verbalize(NOTANGRY(shkp) ? "%s! Please pay before leaving."
|
if (!Deaf && !muteshk(shkp))
|
||||||
|
verbalize(NOTANGRY(shkp) ? "%s! Please pay before leaving."
|
||||||
: "%s! Don't you leave without paying!",
|
: "%s! Don't you leave without paying!",
|
||||||
plname);
|
plname);
|
||||||
|
else
|
||||||
|
pline("%s %s that you need to pay before leaving%s",
|
||||||
|
Shknam(shkp),
|
||||||
|
NOTANGRY(shkp) ? "points out" : "makes it clear",
|
||||||
|
NOTANGRY(shkp) ? "." : "!");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -564,21 +572,42 @@ char *enterstring;
|
|||||||
|
|
||||||
if (Invis) {
|
if (Invis) {
|
||||||
pline("%s senses your presence.", shkname(shkp));
|
pline("%s senses your presence.", shkname(shkp));
|
||||||
verbalize("Invisible customers are not welcome!");
|
if (!Deaf && !muteshk(shkp))
|
||||||
|
verbalize("Invisible customers are not welcome!");
|
||||||
|
else
|
||||||
|
pline("%s stands firm as if he knows you are there.", Shknam(shkp));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
rt = rooms[*enterstring - ROOMOFFSET].rtype;
|
rt = rooms[*enterstring - ROOMOFFSET].rtype;
|
||||||
|
|
||||||
if (ANGRY(shkp)) {
|
if (ANGRY(shkp)) {
|
||||||
verbalize("So, %s, you dare return to %s %s?!", plname,
|
if (!Deaf && !muteshk(shkp))
|
||||||
|
verbalize("So, %s, you dare return to %s %s?!", plname,
|
||||||
s_suffix(shkname(shkp)), shtypes[rt - SHOPBASE].name);
|
s_suffix(shkname(shkp)), shtypes[rt - SHOPBASE].name);
|
||||||
|
else
|
||||||
|
pline("%s seems %s over your return to %s %s!",
|
||||||
|
Shknam(shkp),
|
||||||
|
angrytexts[rn2(SIZE(angrytexts))],
|
||||||
|
mhis(shkp),
|
||||||
|
shtypes[rt - SHOPBASE].name);
|
||||||
} else if (eshkp->robbed) {
|
} else if (eshkp->robbed) {
|
||||||
pline("%s mutters imprecations against shoplifters.", shkname(shkp));
|
if (!Deaf)
|
||||||
|
pline("%s mutters imprecations against shoplifters.", shkname(shkp));
|
||||||
|
else
|
||||||
|
pline("%s is combing through %s inventory list.",
|
||||||
|
Shknam(shkp),
|
||||||
|
mhis(shkp));
|
||||||
} else {
|
} else {
|
||||||
verbalize("%s, %s! Welcome%s to %s %s!", Hello(shkp), plname,
|
if (!Deaf && !muteshk(shkp))
|
||||||
eshkp->visitct++ ? " again" : "", s_suffix(shkname(shkp)),
|
verbalize("%s, %s! Welcome%s to %s %s!", Hello(shkp), plname,
|
||||||
shtypes[rt - SHOPBASE].name);
|
eshkp->visitct++ ? " again" : "", s_suffix(shkname(shkp)),
|
||||||
|
shtypes[rt - SHOPBASE].name);
|
||||||
|
else
|
||||||
|
You("enter %s %s%s!",
|
||||||
|
s_suffix(shkname(shkp)),
|
||||||
|
shtypes[rt - SHOPBASE].name,
|
||||||
|
eshkp->visitct++ ? " again" : "");
|
||||||
}
|
}
|
||||||
/* can't do anything about blocking if teleported in */
|
/* can't do anything about blocking if teleported in */
|
||||||
if (!inside_shop(u.ux, u.uy)) {
|
if (!inside_shop(u.ux, u.uy)) {
|
||||||
@@ -608,15 +637,27 @@ char *enterstring;
|
|||||||
if (!Blind)
|
if (!Blind)
|
||||||
makeknown(DWARVISH_MATTOCK);
|
makeknown(DWARVISH_MATTOCK);
|
||||||
}
|
}
|
||||||
verbalize(NOTANGRY(shkp)
|
if (!Deaf && !muteshk(shkp))
|
||||||
? "Will you please leave your %s%s outside?"
|
verbalize(NOTANGRY(shkp)
|
||||||
: "Leave the %s%s outside.",
|
? "Will you please leave your %s%s outside?"
|
||||||
tool, plur(cnt));
|
: "Leave the %s%s outside.",
|
||||||
|
tool, plur(cnt));
|
||||||
|
else
|
||||||
|
pline("%s %s to let you in with a %s%s.",
|
||||||
|
Shknam(shkp),
|
||||||
|
NOTANGRY(shkp) ? "is hesitant" : "refuses",
|
||||||
|
tool, plur(cnt));
|
||||||
should_block = TRUE;
|
should_block = TRUE;
|
||||||
} else if (u.usteed) {
|
} else if (u.usteed) {
|
||||||
verbalize(NOTANGRY(shkp) ? "Will you please leave %s outside?"
|
if (!Deaf && !muteshk(shkp))
|
||||||
|
verbalize(NOTANGRY(shkp) ? "Will you please leave %s outside?"
|
||||||
: "Leave %s outside.",
|
: "Leave %s outside.",
|
||||||
y_monnam(u.usteed));
|
y_monnam(u.usteed));
|
||||||
|
else
|
||||||
|
pline("%s %s to let you in while you're riding %s.",
|
||||||
|
Shknam(shkp),
|
||||||
|
NOTANGRY(shkp) ? "doesn't want" : "refuses",
|
||||||
|
y_monnam(u.usteed));
|
||||||
should_block = TRUE;
|
should_block = TRUE;
|
||||||
} else {
|
} else {
|
||||||
should_block =
|
should_block =
|
||||||
@@ -639,14 +680,21 @@ struct obj *obj;
|
|||||||
if (obj->unpaid || !is_pick(obj))
|
if (obj->unpaid || !is_pick(obj))
|
||||||
return;
|
return;
|
||||||
shkp = shop_keeper(*u.ushops);
|
shkp = shop_keeper(*u.ushops);
|
||||||
if (shkp && inhishop(shkp) && !muteshk(shkp)) {
|
if (shkp && inhishop(shkp)) {
|
||||||
static NEARDATA long pickmovetime = 0L;
|
static NEARDATA long pickmovetime = 0L;
|
||||||
|
|
||||||
/* if you bring a sack of N picks into a shop to sell,
|
/* if you bring a sack of N picks into a shop to sell,
|
||||||
don't repeat this N times when they're taken out */
|
don't repeat this N times when they're taken out */
|
||||||
if (moves != pickmovetime)
|
if (moves != pickmovetime) {
|
||||||
verbalize("You sneaky %s! Get out of here with that pick!",
|
if (!Deaf && !muteshk(shkp))
|
||||||
|
verbalize("You sneaky %s! Get out of here with that pick!",
|
||||||
cad(FALSE));
|
cad(FALSE));
|
||||||
|
else
|
||||||
|
pline("%s %s your pick!",
|
||||||
|
Shknam(shkp),
|
||||||
|
haseyes(shkp->data) ? "glares at"
|
||||||
|
: "is dismayed because of");
|
||||||
|
}
|
||||||
pickmovetime = moves;
|
pickmovetime = moves;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1475,9 +1523,16 @@ proceed:
|
|||||||
if (!itemize)
|
if (!itemize)
|
||||||
update_inventory(); /* Done in dopayobj() if itemize. */
|
update_inventory(); /* Done in dopayobj() if itemize. */
|
||||||
}
|
}
|
||||||
if (!ANGRY(shkp) && paid && !muteshk(shkp))
|
if (!ANGRY(shkp) && paid) {
|
||||||
verbalize("Thank you for shopping in %s %s!", s_suffix(shkname(shkp)),
|
if (!Deaf && !muteshk(shkp))
|
||||||
|
verbalize("Thank you for shopping in %s %s!", s_suffix(shkname(shkp)),
|
||||||
shtypes[eshkp->shoptype - SHOPBASE].name);
|
shtypes[eshkp->shoptype - SHOPBASE].name);
|
||||||
|
else
|
||||||
|
pline("%s nods appreciatively at you for shopping in %s %s!",
|
||||||
|
Shknam(shkp),
|
||||||
|
mhis(shkp),
|
||||||
|
shtypes[eshkp->shoptype - SHOPBASE].name);
|
||||||
|
}
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1539,10 +1594,18 @@ boolean itemize;
|
|||||||
buy = PAY_SKIP; /* don't want to buy */
|
buy = PAY_SKIP; /* don't want to buy */
|
||||||
} else if (quan < bp->bquan && !consumed) { /* partly used goods */
|
} else if (quan < bp->bquan && !consumed) { /* partly used goods */
|
||||||
obj->quan = bp->bquan - save_quan; /* used up amount */
|
obj->quan = bp->bquan - save_quan; /* used up amount */
|
||||||
verbalize("%s for the other %s before buying %s.",
|
if (!Deaf && !muteshk(shkp)) {
|
||||||
|
verbalize("%s for the other %s before buying %s.",
|
||||||
ANGRY(shkp) ? "Pay" : "Please pay",
|
ANGRY(shkp) ? "Pay" : "Please pay",
|
||||||
simpleonames(obj), /* short name suffices */
|
simpleonames(obj), /* short name suffices */
|
||||||
save_quan > 1L ? "these" : "this one");
|
save_quan > 1L ? "these" : "this one");
|
||||||
|
} else {
|
||||||
|
pline("%s %s%s your bill for the other %s first.",
|
||||||
|
Shknam(shkp),
|
||||||
|
ANGRY(shkp) ? "angrily " : "",
|
||||||
|
nolimbs(shkp->data) ? "motions to" : "points out",
|
||||||
|
simpleonames(obj));
|
||||||
|
}
|
||||||
buy = PAY_SKIP; /* shk won't sell */
|
buy = PAY_SKIP; /* shk won't sell */
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2122,16 +2185,28 @@ boolean quietly;
|
|||||||
&& obj->otyp == CANDELABRUM_OF_INVOCATION) {
|
&& obj->otyp == CANDELABRUM_OF_INVOCATION) {
|
||||||
if (!quietly) {
|
if (!quietly) {
|
||||||
if (is_izchak(shkp, TRUE) && !u.uevent.invoked) {
|
if (is_izchak(shkp, TRUE) && !u.uevent.invoked) {
|
||||||
verbalize("No thanks, I'd hang onto that if I were you.");
|
if (Deaf || muteshk(shkp)) {
|
||||||
if (obj->spe < 7)
|
pline("%s seems %s that you want to sell that.",
|
||||||
verbalize(
|
Shknam(shkp),
|
||||||
"You'll need %d%s candle%s to go along with it.",
|
(obj->spe < 7) ? "horrified" : "concerned");
|
||||||
(7 - obj->spe), (obj->spe > 0) ? " more" : "",
|
} else {
|
||||||
plur(7 - obj->spe));
|
verbalize("No thanks, I'd hang onto that if I were you.");
|
||||||
/* [what if hero is already carrying enough candles?
|
if (obj->spe < 7)
|
||||||
should Izchak explain how to attach them instead?] */
|
verbalize(
|
||||||
|
"You'll need %d%s candle%s to go along with it.",
|
||||||
|
(7 - obj->spe), (obj->spe > 0) ? " more" : "",
|
||||||
|
plur(7 - obj->spe));
|
||||||
|
/* [what if hero is already carrying enough candles?
|
||||||
|
should Izchak explain how to attach them instead?] */
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
verbalize("I won't stock that. Take it out of here!");
|
if (!Deaf && !muteshk(shkp))
|
||||||
|
verbalize("I won't stock that. Take it out of here!");
|
||||||
|
else
|
||||||
|
pline("%s shakes %s %s in refusal.",
|
||||||
|
Shknam(shkp),
|
||||||
|
mhis(shkp),
|
||||||
|
mbodypart(shkp, HEAD));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return TRUE;
|
return TRUE;
|
||||||
@@ -2449,7 +2524,7 @@ boolean ininv, dummy, silent;
|
|||||||
contentscount = 0;
|
contentscount = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!muteshk(shkp) && !silent) {
|
if (!Deaf && !muteshk(shkp) && !silent) {
|
||||||
char buf[BUFSZ];
|
char buf[BUFSZ];
|
||||||
|
|
||||||
if (!ltmp) {
|
if (!ltmp) {
|
||||||
@@ -2827,8 +2902,10 @@ xchar x, y;
|
|||||||
eshkp = ESHK(shkp);
|
eshkp = ESHK(shkp);
|
||||||
|
|
||||||
if (ANGRY(shkp)) { /* they become shop-objects, no pay */
|
if (ANGRY(shkp)) { /* they become shop-objects, no pay */
|
||||||
if (!muteshk(shkp))
|
if (!Deaf && !muteshk(shkp))
|
||||||
verbalize("Thank you, scum!");
|
verbalize("Thank you, scum!");
|
||||||
|
else
|
||||||
|
pline("%s smirks with satisfaction.", Shknam(shkp));
|
||||||
subfrombill(obj, shkp);
|
subfrombill(obj, shkp);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -2840,7 +2917,7 @@ xchar x, y;
|
|||||||
offer += cgold;
|
offer += cgold;
|
||||||
if ((eshkp->robbed -= offer < 0L))
|
if ((eshkp->robbed -= offer < 0L))
|
||||||
eshkp->robbed = 0L;
|
eshkp->robbed = 0L;
|
||||||
if (offer && !muteshk(shkp))
|
if (offer && !Deaf && !muteshk(shkp))
|
||||||
verbalize(
|
verbalize(
|
||||||
"Thank you for your contribution to restock this recently plundered shop.");
|
"Thank you for your contribution to restock this recently plundered shop.");
|
||||||
subfrombill(obj, shkp);
|
subfrombill(obj, shkp);
|
||||||
@@ -3171,7 +3248,7 @@ register xchar x, y;
|
|||||||
&& dist2(shkp->mx, shkp->my, x, y) < 3
|
&& dist2(shkp->mx, shkp->my, x, y) < 3
|
||||||
/* if it is the shk's pos, you hit and anger him */
|
/* if it is the shk's pos, you hit and anger him */
|
||||||
&& (shkp->mx != x || shkp->my != y)) {
|
&& (shkp->mx != x || shkp->my != y)) {
|
||||||
if (mnearto(shkp, x, y, TRUE) && !muteshk(shkp))
|
if (mnearto(shkp, x, y, TRUE) && !Deaf && !muteshk(shkp))
|
||||||
verbalize("Out of my way, scum!");
|
verbalize("Out of my way, scum!");
|
||||||
if (cansee(x, y)) {
|
if (cansee(x, y)) {
|
||||||
pline("%s nimbly%s catches %s.", Shknam(shkp),
|
pline("%s nimbly%s catches %s.", Shknam(shkp),
|
||||||
@@ -3440,7 +3517,7 @@ boolean catchup; /* restoring a level */
|
|||||||
*
|
*
|
||||||
* Take the easy way out and put ball&chain under hero.
|
* Take the easy way out and put ball&chain under hero.
|
||||||
*/
|
*/
|
||||||
if (!muteshk(shkp))
|
if (!Deaf && !muteshk(shkp))
|
||||||
verbalize("Get your junk out of my wall!");
|
verbalize("Get your junk out of my wall!");
|
||||||
unplacebc(); /* pick 'em up */
|
unplacebc(); /* pick 'em up */
|
||||||
placebc(); /* put 'em down */
|
placebc(); /* put 'em down */
|
||||||
@@ -3518,16 +3595,21 @@ register struct monst *shkp;
|
|||||||
}
|
}
|
||||||
if (eshkp->following) {
|
if (eshkp->following) {
|
||||||
if (strncmp(eshkp->customer, plname, PL_NSIZ)) {
|
if (strncmp(eshkp->customer, plname, PL_NSIZ)) {
|
||||||
if (!muteshk(shkp))
|
if (!Deaf && !muteshk(shkp))
|
||||||
verbalize("%s, %s! I was looking for %s.", Hello(shkp),
|
verbalize("%s, %s! I was looking for %s.", Hello(shkp),
|
||||||
plname, eshkp->customer);
|
plname, eshkp->customer);
|
||||||
eshkp->following = 0;
|
eshkp->following = 0;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
if (moves > followmsg + 4) {
|
if (moves > followmsg + 4) {
|
||||||
if (!muteshk(shkp))
|
if (!Deaf && !muteshk(shkp))
|
||||||
verbalize("%s, %s! Didn't you forget to pay?",
|
verbalize("%s, %s! Didn't you forget to pay?",
|
||||||
Hello(shkp), plname);
|
Hello(shkp), plname);
|
||||||
|
else
|
||||||
|
pline("%s holds out %s upturned %s.",
|
||||||
|
Shknam(shkp),
|
||||||
|
mhis(shkp),
|
||||||
|
mbodypart(shkp, HAND));
|
||||||
followmsg = moves;
|
followmsg = moves;
|
||||||
if (!rn2(9)) {
|
if (!rn2(9)) {
|
||||||
pline("%s doesn't like customers who don't pay.",
|
pline("%s doesn't like customers who don't pay.",
|
||||||
@@ -3653,13 +3735,15 @@ register int fall;
|
|||||||
|
|
||||||
if (!fall) {
|
if (!fall) {
|
||||||
if (lang == 2) {
|
if (lang == 2) {
|
||||||
if (u.utraptype == TT_PIT)
|
if (!Deaf && !muteshk(shkp)) {
|
||||||
verbalize(
|
if (u.utraptype == TT_PIT)
|
||||||
"Be careful, %s, or you might fall through the floor.",
|
verbalize(
|
||||||
flags.female ? "madam" : "sir");
|
"Be careful, %s, or you might fall through the floor.",
|
||||||
else
|
flags.female ? "madam" : "sir");
|
||||||
verbalize("%s, do not damage the floor here!",
|
else
|
||||||
flags.female ? "Madam" : "Sir");
|
verbalize("%s, do not damage the floor here!",
|
||||||
|
flags.female ? "Madam" : "Sir");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (Role_if(PM_KNIGHT)) {
|
if (Role_if(PM_KNIGHT)) {
|
||||||
You_feel("like a common thief.");
|
You_feel("like a common thief.");
|
||||||
@@ -3846,9 +3930,11 @@ boolean cant_mollify;
|
|||||||
* yanked the hapless critter out of the way.
|
* yanked the hapless critter out of the way.
|
||||||
*/
|
*/
|
||||||
if (MON_AT(x, y)) {
|
if (MON_AT(x, y)) {
|
||||||
if (!Deaf && !animal) {
|
if (!animal) {
|
||||||
You_hear("an angry voice:");
|
if (!Deaf && !muteshk(shkp)) {
|
||||||
verbalize("Out of my way, scum!");
|
You_hear("an angry voice:");
|
||||||
|
verbalize("Out of my way, scum!");
|
||||||
|
}
|
||||||
wait_synch();
|
wait_synch();
|
||||||
#if defined(UNIX) || defined(VMS)
|
#if defined(UNIX) || defined(VMS)
|
||||||
#if defined(SYSV) || defined(ULTRIX) || defined(VMS)
|
#if defined(SYSV) || defined(ULTRIX) || defined(VMS)
|
||||||
@@ -3871,12 +3957,28 @@ boolean cant_mollify;
|
|||||||
if (animal && shkp->mcanmove && !shkp->msleeping)
|
if (animal && shkp->mcanmove && !shkp->msleeping)
|
||||||
yelp(shkp);
|
yelp(shkp);
|
||||||
} else if (pursue || uinshp || !um_dist(x, y, 1)) {
|
} else if (pursue || uinshp || !um_dist(x, y, 1)) {
|
||||||
verbalize("How dare you %s my %s?", dmgstr,
|
if (!Deaf)
|
||||||
|
verbalize("How dare you %s my %s?", dmgstr,
|
||||||
dugwall ? "shop" : "door");
|
dugwall ? "shop" : "door");
|
||||||
|
else
|
||||||
|
pline("%s is %s that you decided to %s %s %s!",
|
||||||
|
Shknam(shkp),
|
||||||
|
angrytexts[rn2(SIZE(angrytexts))],
|
||||||
|
dmgstr, mhis(shkp),
|
||||||
|
dugwall ? "shop" : "door");
|
||||||
} else {
|
} else {
|
||||||
pline("%s shouts:", shkname(shkp));
|
if (!Deaf) {
|
||||||
verbalize("Who dared %s my %s?", dmgstr,
|
pline("%s shouts:", shkname(shkp));
|
||||||
dugwall ? "shop" : "door");
|
verbalize("Who dared %s my %s?", dmgstr,
|
||||||
|
dugwall ? "shop" : "door");
|
||||||
|
} else {
|
||||||
|
pline("%s is %s that someone decided to %s %s %s!",
|
||||||
|
Shknam(shkp),
|
||||||
|
angrytexts[rn2(SIZE(angrytexts))],
|
||||||
|
dmgstr,
|
||||||
|
mhis(shkp),
|
||||||
|
dugwall ? "shop" : "door");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
hot_pursuit(shkp);
|
hot_pursuit(shkp);
|
||||||
return;
|
return;
|
||||||
@@ -3896,9 +3998,16 @@ boolean cant_mollify;
|
|||||||
home_shk(shkp, FALSE);
|
home_shk(shkp, FALSE);
|
||||||
pacify_shk(shkp);
|
pacify_shk(shkp);
|
||||||
} else {
|
} else {
|
||||||
if (!animal)
|
if (!animal) {
|
||||||
verbalize("Oh, yes! You'll pay!");
|
if (!Deaf && !muteshk(shkp))
|
||||||
else
|
verbalize("Oh, yes! You'll pay!");
|
||||||
|
else
|
||||||
|
pline("%s lunges %s %s toward your %s!",
|
||||||
|
Shknam(shkp),
|
||||||
|
mhis(shkp),
|
||||||
|
mbodypart(shkp, HAND),
|
||||||
|
body_part(NECK));
|
||||||
|
} else
|
||||||
growl(shkp);
|
growl(shkp);
|
||||||
hot_pursuit(shkp);
|
hot_pursuit(shkp);
|
||||||
adjalign(-sgn(u.ualign.type));
|
adjalign(-sgn(u.ualign.type));
|
||||||
@@ -4074,38 +4183,58 @@ struct monst *shkp;
|
|||||||
|
|
||||||
eshk = ESHK(shkp);
|
eshk = ESHK(shkp);
|
||||||
if (ANGRY(shkp)) {
|
if (ANGRY(shkp)) {
|
||||||
pline("%s mentions how much %s dislikes %s customers.",
|
pline("%s %s how much %s dislikes %s customers.",
|
||||||
shkname(shkp), mhe(shkp), eshk->robbed ? "non-paying" : "rude");
|
shkname(shkp),
|
||||||
|
(!Deaf && !muteshk(shkp)) ? "mentions" : "indicates",
|
||||||
|
mhe(shkp), eshk->robbed ? "non-paying" : "rude");
|
||||||
} else if (eshk->following) {
|
} else if (eshk->following) {
|
||||||
if (strncmp(eshk->customer, plname, PL_NSIZ)) {
|
if (strncmp(eshk->customer, plname, PL_NSIZ)) {
|
||||||
verbalize("%s %s! I was looking for %s.",
|
if (!Deaf && !muteshk(shkp))
|
||||||
|
verbalize("%s %s! I was looking for %s.",
|
||||||
Hello(shkp), plname, eshk->customer);
|
Hello(shkp), plname, eshk->customer);
|
||||||
eshk->following = 0;
|
eshk->following = 0;
|
||||||
} else {
|
} else {
|
||||||
verbalize("%s %s! Didn't you forget to pay?",
|
if (!Deaf && !muteshk(shkp))
|
||||||
Hello(shkp), plname);
|
verbalize("%s %s! Didn't you forget to pay?",
|
||||||
|
Hello(shkp), plname);
|
||||||
|
else
|
||||||
|
pline("%s taps you on the %s.",
|
||||||
|
Shknam(shkp), body_part(ARM));
|
||||||
|
|
||||||
}
|
}
|
||||||
} else if (eshk->billct) {
|
} else if (eshk->billct) {
|
||||||
register long total = addupbill(shkp) + eshk->debit;
|
register long total = addupbill(shkp) + eshk->debit;
|
||||||
|
|
||||||
pline("%s says that your bill comes to %ld %s.",
|
pline("%s %s that your bill comes to %ld %s.",
|
||||||
shkname(shkp), total, currency(total));
|
shkname(shkp),
|
||||||
|
(!Deaf && !muteshk(shkp)) ? "says" : "indicates",
|
||||||
|
total, currency(total));
|
||||||
} else if (eshk->debit) {
|
} else if (eshk->debit) {
|
||||||
pline("%s reminds you that you owe %s %ld %s.",
|
pline("%s %s that you owe %s %ld %s.",
|
||||||
shkname(shkp), mhim(shkp), eshk->debit, currency(eshk->debit));
|
shkname(shkp),
|
||||||
|
(!Deaf && !muteshk(shkp)) ? "reminds you" : "indicates",
|
||||||
|
mhim(shkp), eshk->debit, currency(eshk->debit));
|
||||||
} else if (eshk->credit) {
|
} else if (eshk->credit) {
|
||||||
pline("%s encourages you to use your %ld %s of credit.",
|
pline("%s encourages you to use your %ld %s of credit.",
|
||||||
shkname(shkp), eshk->credit, currency(eshk->credit));
|
shkname(shkp), eshk->credit, currency(eshk->credit));
|
||||||
} else if (eshk->robbed) {
|
} else if (eshk->robbed) {
|
||||||
pline("%s complains about a recent robbery.", shkname(shkp));
|
pline("%s %s about a recent robbery.",
|
||||||
|
Shknam(shkp),
|
||||||
|
(!Deaf && !muteshk(shkp)) ? "complains" : "indicates concern");
|
||||||
} else if ((shkmoney = money_cnt(shkp->minvent)) < 50) {
|
} else if ((shkmoney = money_cnt(shkp->minvent)) < 50) {
|
||||||
pline("%s complains that business is bad.", shkname(shkp));
|
pline("%s %s that business is bad.",
|
||||||
|
shkname(shkp),
|
||||||
|
(!Deaf && !muteshk(shkp)) ? "complains" : "indicates");
|
||||||
} else if (shkmoney > 4000) {
|
} else if (shkmoney > 4000) {
|
||||||
pline("%s says that business is good.", shkname(shkp));
|
pline("%s %s that business is good.",
|
||||||
|
shkname(shkp),
|
||||||
|
(!Deaf && !muteshk(shkp)) ? "says" : "indicates");
|
||||||
} else if (is_izchak(shkp, FALSE)) {
|
} else if (is_izchak(shkp, FALSE)) {
|
||||||
pline(Izchak_speaks[rn2(SIZE(Izchak_speaks))], shkname(shkp));
|
if (!Deaf && !muteshk(shkp))
|
||||||
|
pline(Izchak_speaks[rn2(SIZE(Izchak_speaks))], shkname(shkp));
|
||||||
} else {
|
} else {
|
||||||
pline("%s talks about the problem of shoplifters.", shkname(shkp));
|
if (!Deaf && !muteshk(shkp))
|
||||||
|
pline("%s talks about the problem of shoplifters.", shkname(shkp));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -4229,7 +4358,7 @@ boolean altusage;
|
|||||||
arg2 = "Ahem. ";
|
arg2 = "Ahem. ";
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!muteshk(shkp)) {
|
if (!Deaf && !muteshk(shkp)) {
|
||||||
verbalize(fmt, arg1, arg2, tmp, currency(tmp));
|
verbalize(fmt, arg1, arg2, tmp, currency(tmp));
|
||||||
exercise(A_WIS, TRUE); /* you just got info */
|
exercise(A_WIS, TRUE); /* you just got info */
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user