list of objects, so changing it to 'n'one will get the original order
back and having a persistent inventory window open when performing
full-pack identify won't result in possibly skipping some items
+give vault guards a cursed tin whistle since there is a shrill whistling
+ sound if hero teleports out of vault while being confronted by guard
Fixes to Post-3.6.1 Problems that Were Exposed Via git Repository
nhUse(mac); /* suppress 'dead increment' from static analyzer */
- if (ptr != &mons[PM_GUARD] && ptr != &mons[PM_WATCHMAN]
- && ptr != &mons[PM_WATCH_CAPTAIN]) {
+ if (ptr == &mons[PM_WATCH_CAPTAIN]) {
+ ; /* better weapon rather than extra gear here */
+ } else if (ptr == &mons[PM_WATCHMAN]) {
+ if (rn2(3)) /* most watchmen carry a whistle */
+ (void) mongets(mtmp, TIN_WHISTLE);
+ } else if (ptr == &mons[PM_GUARD]) {
+ /* if hero teleports out of a vault while being confronted
+ by the vault's guard, there is a shrill whistling sound,
+ so guard evidently carries a cursed whistle */
+ otmp = mksobj(TIN_WHISTLE, TRUE, FALSE);
+ curse(otmp);
+ (void) mpickobj(mtmp, otmp);
+ } else { /* soldiers and their officers */
if (!rn2(3))
(void) mongets(mtmp, K_RATION);
if (!rn2(2))
(void) mongets(mtmp, C_RATION);
if (ptr != &mons[PM_SOLDIER] && !rn2(3))
(void) mongets(mtmp, BUGLE);
- } else if (ptr == &mons[PM_WATCHMAN] && rn2(3))
- (void) mongets(mtmp, TIN_WHISTLE);
+ }
} else if (ptr == &mons[PM_SHOPKEEPER]) {
(void) mongets(mtmp, SKELETON_KEY);
switch (rn2(4)) {
grd->mpeaceful = 0;
letknow:
if (!cansee(grd->mx, grd->my) || !mon_visible(grd))
- You_hear("the shrill sound of a guard's whistle.");
+ You_hear("%s.",
+ m_carrying(grd, TIN_WHISTLE)
+ ? "the shrill sound of a guard's whistle"
+ : "angry shouting");
else
You(um_dist(grd->mx, grd->my, 2)
? "see %s approaching."