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

@@ -264,6 +264,8 @@ struct instance_flags {
int getloc_filter; /* GFILTER_foo */
int in_lava_effects; /* hack for Boots_off() */
int last_msg; /* indicator of last message player saw */
int menuobjsyms; /* value of 'menu_objsyms' option;
* ought to be in flags rather than iflags */
int override_ID; /* true to force full identification of objects */
int parse_config_file_src; /* hack for parse_config_line() */
int purge_monsters; /* # of dead monsters still on fmon list */
@@ -300,13 +302,13 @@ struct instance_flags {
*/
unsigned msg_history; /* hint: # of top lines to save */
int getpos_coords; /* show coordinates when getting cursor position */
int menuinvertmode; /* 0 = invert toggles every item;
1 = invert skips 'all items' item */
int menuinvertmode; /* 0 = invert toggles every item;
* 1 = invert skips 'all items' item */
color_attr menu_headings; /* CLR_ and ATR_ for menu headings */
uint32_t colorcount; /* store how many colors terminal is capable of */
boolean use_truecolor; /* force use of truecolor */
#ifdef ALTMETA
boolean altmeta; /* Alt-c sends ESC c rather than M-c */
boolean altmeta; /* Alt+c sends ESC c rather than M-c */
#endif
boolean autodescribe; /* autodescribe mode in getpos() */
boolean cbreak; /* in cbreak mode, rogue format */
@@ -315,7 +317,8 @@ struct instance_flags {
boolean echo; /* 1 to echo characters */
boolean force_invmenu; /* always menu when handling inventory */
boolean hilite_pile; /* mark piles of objects with a hilite */
boolean menu_head_objsym; /* Show obj symbol in menu headings */
boolean menu_head_objsym; /* Show obj symbol in menu headings; controlled
* by 'menuobjsyms' */
boolean menu_overlay; /* Draw menus over the map */
boolean menu_requested; /* Flag for overloaded use of 'm' prefix
* on some non-move commands */
@@ -334,7 +337,8 @@ struct instance_flags {
boolean tux_penalty; /* True iff hero is a monk and wearing a suit */
boolean use_background_glyph; /* use background glyph when appropriate */
boolean use_menu_color; /* use color in menus; only if wc_color */
boolean use_menu_glyphs; /* use object glyphs in menus, if the port supports it */
boolean use_menu_glyphs; /* use object glyphs in menus, if the port
* supports it; controlled by 'menuobjsyms' */
#ifdef STATUS_HILITES
long hilite_delta; /* number of moves to leave a temp hilite lit */
long unhilite_deadline; /* time when oldest temp hilite should be unlit */

View File

@@ -442,9 +442,9 @@ static int optfn_##a(int, int, boolean, char *, char *);
No, Yes, No, No, NoAlias, "jump to the last page in a menu")
NHOPTC(menu_next_page, Advanced, 4, opt_in, set_in_config,
No, Yes, No, No, NoAlias, "go to the next menu page")
NHOPTB(menu_objsyms, Advanced, 0, opt_in, set_in_game,
Off, Yes, No, No, NoAlias, &iflags.menu_head_objsym,
Term_False, "show object symbols in menus")
NHOPTC(menu_objsyms, Advanced, 12, opt_in, set_in_game,
Yes, Yes, No, Yes, "use_menu_glyphs",
"show object symbols in menus")
#ifdef TTY_GRAPHICS
NHOPTB(menu_overlay, Advanced, 0, opt_in, set_in_game,
On, Yes, No, No, NoAlias, &iflags.menu_overlay, Term_False,
@@ -789,9 +789,6 @@ static int optfn_##a(int, int, boolean, char *, char *);
NHOPTB(use_inverse, Advanced, 0, opt_out, set_in_game,
On, Yes, No, No, NoAlias, &iflags.wc_inverse, Term_False,
"display detected monsters in inverse")
NHOPTB(use_menu_glyphs, Advanced, 0, opt_out, set_in_game,
On, Yes, No, No, NoAlias, &iflags.use_menu_glyphs,
Term_False, "show object glyphs in menu items")
NHOPTB(use_truecolor, Advanced, 0, opt_in, set_in_config,
Off, Yes, No, No, "use_truecolour",
&iflags.use_truecolor, Term_False,