merge new use_menu_glyphs option with menu_objsyms

The two options are very similar but probably mutually exclusive
except when using look-here and look-into-container (both via ':')
with the default setting for 'sortloot', or with inventory when
'sortpack' has been toggled off.

This removes 'use_menu_glyphs' and changes 'menu_objsyms' from a
boolean to a compound taking six possible values:
| 0: no object symbols in menus,
| 1: append object class symbol to object header lines (same as old
|menu_objsyms boolean),
| 2: include object symbol in menu entry lines for objects (same as
|recently added use_menu_glyphs),
| 3: both 1 and 2,
| 4: display as #2 but only if the menu lacks class header lines,
| 5: if header lines are present, display as #1; if headers are not
|present, then display as #4 (which will implicitly be #2).
Default is #4.

Effectively replaces the options portion of pull request #1406 and
retains the functionality, but not as default for normal menus.

Guidebook.tex is only partially updated.  Someone else will need to
finish that.
This commit is contained in:
PatR
2025-04-28 18:12:02 -07:00
parent ba4f90eefb
commit a587ccaa26
8 changed files with 281 additions and 33 deletions

View File

@@ -4169,8 +4169,38 @@ Default \(oq|\(cq.
Key to go to the next menu page.
Default \(oq>\(cq.
.lp menu_objsyms
Show object symbols in menu headings in menus where
the object symbols act as menu accelerators (default off).
." [originally menu_objsyms was a boolean]
." Show object symbols in menu headings in menus where
." the object symbols act as menu accelerators (default off).
Inventory and other object menus are normally separated by object class
(weapons, armor, and so forth), with a menu header line at the beginning
of each group.
You can have menus add the display symbol for the class of objects for
each header line.
You can also add the display symbol for the individual item in each menu
entry.
For a tiles map, that would be a small rendition of an object's tile.
For a text map, it is the same character as is used for the object's
class, which would be most useful when there are no headers separating
objects among classes.
Possible values are
.PS "5\ -\ One-or-other"
.PL "0\ -\ None"
no symbols for either header lines or menu entries;
.PL "1\ -\ Headers"
show symbols on header lines but not entries;
.PL "2\ -\ Entries"
show symbols on menu entry lines but not headers;
.PL "3\ -\ Both"
show symbols on headers and entries;
.PL "4\ -\ Conditional"
only show symbols for entries if there are no headers;
.PL "5\ -\ One-or-other"
show symbols on headers, or on entries if no headers.
.PE
Supported by tty and curses.
When setting the value, it can be specified by digit or keyword.
The default value is \f(CRConditional\fP (4).
.lp menu_overlay
Do not clear the screen before drawing menus, and align
menus to the right edge of the screen. Only for the tty port.
@@ -4988,9 +5018,6 @@ to be \fIFalse\fP.
Use bold black instead of blue for black glyphs (TTY only).
.lp use_inverse
If NetHack can, it should display inverse when the game specifies it.
.lp use_menu_glyphs
If NetHack can, it should display glyphs next to objects in the
inventory.
.lp vary_msgcount
If NetHack can, it should display this number of messages at a time in
the message window.