Accessibility: give a message when teleporting a monster

Teleporting a monster only updated the map. Give a message
so blind players can get the same information.
Making a monster invisible gives the same message, if you
cannot detect invisible.
Several other places where monsters teleported themselves
now also give the same message.
This commit is contained in:
Pasi Kallinen
2021-12-07 00:06:17 +02:00
parent e25f8ec6e3
commit f6b7be49f4
27 changed files with 146 additions and 92 deletions

View File

@@ -1046,7 +1046,7 @@ home_shk(register struct monst* shkp, register boolean killkops)
{
register xchar x = ESHK(shkp)->shk.x, y = ESHK(shkp)->shk.y;
(void) mnearto(shkp, x, y, TRUE);
(void) mnearto(shkp, x, y, TRUE, RLOC_MSG);
g.level.flags.has_shop = 1;
if (killkops) {
kops_gone(TRUE);
@@ -3440,7 +3440,8 @@ shkcatch(register struct obj* obj, register xchar x, register xchar y)
&& dist2(shkp->mx, shkp->my, x, y) < 3
/* if it is the shk's pos, you hit and anger him */
&& (shkp->mx != x || shkp->my != y)) {
if (mnearto(shkp, x, y, TRUE) == 2 && !Deaf && !muteshk(shkp))
if (mnearto(shkp, x, y, TRUE, RLOC_NOMSG) == 2
&& !Deaf && !muteshk(shkp))
verbalize("Out of my way, scum!");
if (cansee(x, y)) {
pline("%s nimbly%s catches %s.", Shknam(shkp),
@@ -4053,7 +4054,7 @@ shopdig(register int fall)
#endif
}
if (distu(shkp->mx, shkp->my) > 2) {
mnexto(shkp);
mnexto(shkp, RLOC_MSG);
/* for some reason the shopkeeper can't come next to you */
if (distu(shkp->mx, shkp->my) > 2) {
if (lang == 2)
@@ -4197,7 +4198,7 @@ pay_for_damage(const char* dmgstr, boolean cant_mollify)
if (um_dist(shkp->mx, shkp->my, 1)
&& !um_dist(shkp->mx, shkp->my, 3)) {
pline("%s leaps towards you!", Shknam(shkp));
mnexto(shkp);
mnexto(shkp, RLOC_NOMSG);
}
pursue = um_dist(shkp->mx, shkp->my, 1);
if (pursue)
@@ -4226,7 +4227,7 @@ pay_for_damage(const char* dmgstr, boolean cant_mollify)
growl(shkp);
}
}
(void) mnearto(shkp, x, y, TRUE);
(void) mnearto(shkp, x, y, TRUE, RLOC_MSG);
}
if ((um_dist(x, y, 1) && !uinshp) || cant_mollify