Colored walls and floor patch (mapcolors)

Coloured Walls and Floor v1 patch by L (Leon Arnott).

http://bilious.alt.org/?296

http://l.j-factor.com/nethack/glyphcolor.diff

Recolours the walls and floor of the special dungeon regions in TTY
mode:

 - Beehive walls and floors are yellow.
 - The walls of the Wizard's Tower are magenta.
 - Other walls in Gehennom (except the Valley) are red, and the floor is
   orange, except in Juiblex's Lair, where it's green.
 - The Mines' walls are brown, except for room walls.
 - The Astral Plane's walls are white.
 - Altars are white, gray, black or red depending on alignment, except
   for Astral altars, which are bright magenta.
 - The Valley of the Dead is drained of colour - it appears in
   grayscale. (Note: This isn't the same as the Rogue Level's
   monochrome.)

Modified to operate based on the new 'mapcolors' option, and also to
make the walls of Sokoban bright blue.

Preserves save compatibility.
Autopickup ignores dropped items (pickup_dropped)

Ported from UnNetHack, adapted for NAO; pickup_dropped boolean goes in
iflags instead of flags.

May break save compatibility; was_dropped bit is added to struct obj,
but it occupies a free bit that may already exist in the struct layout.
Autopickup exceptions can exclude shop objects

Autopickup exceptions now considers the unpaid price of objects as part
of the object's name, allowing exceptions like ">*zorkmid*" to never
automatically pick up any shop object.

Preserves save compatibility.
Patch: Auto open doors by Stefano Busti

Ported from UnNetHack with a bug fix to prevent getting stuck waiting
thousands of turns after failing to auto-open a door.

Preserves save compatibility.
Auto-unlock for doors

Ported from UnNetHack, tweaked for save compatibility.

Preserves save compatibility.
Auto-unlock for containers

Ported from UnNetHack, with minor fix to turn usage.

Depends on `iflags.autounlock` from auto-unlock doors commit.

Preserves save compatibility.
Follow container auto-unlock with auto-loot

Ported from DynaHack.

Successfully auto-unlocking a container auto-loots it too, so #loot acts
like a single smooth action, whether the container is locked or not.

Preserves save compatibility.
safe_peaceful option: chat when moving into peaceful monsters

Adapted from NetHack4.

This commit also shows a message when chatting to a monster gives no
response.

Preserves save compatibility.
Patch: pilesize option (by Glyn Kennington)

Ported from UnNetHack.

Sets the maximum number of items that will show "Things that are here";
larger piles will instead show "There are several/many things here."
Minimum value is 1, which suppresses the "Things that are here" list.

Preserves save compatibility.
Fix travel command inside Sokoban

Ported from DynaHack.

This makes travel treat Sokoban boulders like walls so it walks around
them.  This also sets `flags.run` to `0` for single space move commands
so travelling next to a boulder and immediately trying to push it
succeeds rather than eating an input and doing nothing.

Preserves save compatibility.
Allow 'W'ear and 'T'ake off to work on rings/amulets/blindfolds (wear_unified)

Wear and Take off commands can now work on rings, amulets and
blindfolds i.e. they appear in the object selection prompts for these
commands, and are put on or removed respectively, allowing 'W' and 'T'
to substitute for 'P'ut on and 'R'emove.

This behavior can be toggled with the new 'wear_unified' boolean option
(default on).

Preserves save compatibility.
Allow TTY text windows to be scrolled backwards

The following keys now work in multi-page text windows:

 - '<' previous page
 - '>' next page
 - '^' first page
 - '|' last page

This means that text windows can be scrolled backwards in the TTY
windowport, for the first time ever, meaning help screens are actually
helpful now... at least for players who are aware of these menu-style
page controls to begin with (an issue of its own right).

Preserves save compatibility.
Interrupt multi-turn actions when HP/Pw is restored, enhanced

Ported from UnNetHack.

e.g. If you're hurt, do '100.' and heal to full in 20 turns, you'll be
stopped after 20 turns instead of waiting the full 100.  Enhancements
compared to UnNetHack:

 - Can be toggled with the new 'interrupt_hp_pw' option.
 - Will never interrupt running or travel.

Preserves save compatibility.
Stop running/travel when becoming hungry/weak from hunger

Ported from DynaHack.

Preserves save compatibility.
Fix the infinite travel bug

See comment in code for details.

Preserves save compatibility.