fix #H4094 - shopkeeper "it" message

Most shop messages use shkname() to give the shopkeeper's accurate
name (or hallucinatory substitute) even if he or she can't be seen.
stolen_value() was using mon_nam(), which calls shkname() if the
monster is a shopkeeper who can be seen, but produces "it" when not
seen.  Change it to use shkname() like the rest of the shop routines.
Also, replace Monnam() (quite a few instances) with new Shknam() to
do the same duty when the name is at the start of a sentence.

There was also a very obscure bug where if you could see two
shopkeepers at the same time, you could probe the map one spot at
a time with repeated use of the 'p' command to locate monsters in
general and other shopkeepers in particular.  Very tedious and not
very useful, but now fixed.
This commit is contained in:
PatR
2016-02-02 23:44:58 -08:00
parent 207ad50ae8
commit 6591f8beb1
4 changed files with 98 additions and 68 deletions

View File

@@ -144,6 +144,10 @@ if a non-cursed spellbook being read becomes cursed and hero recognizes that
if a non-cursed spellbook being read becomes cursed and hero doesn't notice,
don't leave it flagged as in-use (hence to be deleted during the
next save/restore cycle) if contact-poison cursed book effect occurs
stolen_value, used when breaking shop items from outside the shop among other
times, could describe the shopkeeper as "it" when not seen
when two or more shopkeepers were visible at once, 'p' command could be used
to probe map for locations of other shopkeepers and arbitrary monsters
Platform- and/or Interface-Specific Fixes