NH4: Fix off-by-one in color map

Fix off-by-one in color map
Alex Smith <ais523@nethack4.org>
cf85ae9154a7b27cb95e3907049e17b48fb99198
Revert "Fix position descriptions on the Plane of Water"

This reverts commit ef24a8ae0b57dbbc68a28c3b9ebec93dcfe770c8.

This commit was causing objects with a randomized appearance to be
double obfuscated, so they'd have different descriptions when viewed
from afar and in the inventory.  This also broke the special description
logic for Sokoban prizes, i.e. true object name when seen and "a sokoban
foo" when not seen.

The problem that this reverted commit was trying to fix is that
nh_describe_pos() needs level memory to do its job, but the Plane of
Water doesn't have it.  I tried using the dbuf (display buffer) for this
no-level-memory case instead, but the dbuf is post-object-obfuscation,
and describe_object() used by nh_describe_pos() needs
pre-object-obfuscation data, otherwise the visible and actual object
types mismatch, causing describe_object() to create a fake object based
on the visible object type and use that to get the object name, which in
this case produces a completely incorrect name.

The real fix for this problem is not trivial, since nh_describe_pos()
and friends need (struct rm *) data, but for the Plane of Water that
data is created temporarily and disposed of once it's been used to
populate the dbuf, which is too late in the display pipeline to use.
The map_foo() functions compile this info and would be usable if they
didn't also reveal info, which is bad for a player-controllable cursor.
They could still be used if cansee() is identical to the vision rules on
the Plane of Water.
oprops: Fix artifact beheading, Mjollnir message

The beheading (and slicing) effect of Vorpal Blade and Thiefbane (and
the Tsurugi of Muramasa) was broken by the artifact_hit() refactoring.
Mjollnir was doing its damage, but the special hit message wasn't being
shown.

This is meant to go with commit d7d07e4d60 (oprops: magical object
properties from GruntHack).

This fixes #84 on GitHub.
CS319:Let One-eyed Sam wield Thiefbane with shield

I made a mistake last time and didn't realize that bhaak had
special-cased the two-handed Thiefbane for the Black Marketeer to wield
even with a shield, so her load-out is now the same as in UnNetHack
again:

 * Thiefbane
 * shield of reflection
 * magic dragon scale mail
 * speed boots
 * amulet of life saving
 * skeleton key

Compared to UnNetHack, this also handles the inverse case to permit
One-eyed Sam to wear a shield even when wielding a two-handed weapon.

This reverts commit 5522c346ee (change inv to let Black Marketeer wield
Thiefbane).

This is meant to go with commit 9dd9382aa9 (CS11-13,314,695: Black
Market by M. Campostrini).

This fixes #80 on GitHub.
oprops:Thiefbane decapitates 10% of the time again

The early check for a two-handed beheading artifact was eating the case
where the d20 hit roll was 1, so Thiefbane only decapitated on a roll
less than 3 and not 1, in other words only on 2.  This fix makes it
trigger on 1 and 2 again, like it should.

This is meant to go with commit d7d07e4d60 (oprops: magical object
properties from GruntHack).
Allow kick with prompt when safe_peaceful is 'yes'

Without this fix, there was no way to kick a peaceful monster without
changing the safe_peaceful option.

This is meant to go with commit cb31cadcfc (replace 'confirm' with new
'safe_peaceful' option).

This fixes #85 on GitHub.
Allow '^' for traps in targeting mode

They're technically not background elements, but it's strange to have
shortcuts for stairs and ladders but not magic portals.

I hard-coded the key because the alternative would be ten times more
complicated, and the targeting logic is already getting out of control
without adding more to it.

This closes #86 on GitHub.