From 21f0e185959392f391ba01f1b2f6558ee9778aa8 Mon Sep 17 00:00:00 2001 From: Pasi Kallinen Date: Thu, 23 Apr 2026 15:51:32 +0300 Subject: [PATCH] Fix visual reset in simple options Switching symset in simple options menu did not reset the map glyphs corectly. Just call the same routine for resetting visuals as in the #optionsfull command. --- src/options.c | 39 ++++++--------------------------------- 1 file changed, 6 insertions(+), 33 deletions(-) diff --git a/src/options.c b/src/options.c index 02606b509..55a4ad0bc 100644 --- a/src/options.c +++ b/src/options.c @@ -8697,8 +8697,8 @@ doset_simple_menu(void) int doset_simple(void) { - int pickedone = 0, - opt_crt_flags = docrtNocls; + int pickedone = 0; + boolean flush = FALSE; if (iflags.menu_requested) { /* doset() checks for 'm' and calls doset_simple(); clear the @@ -8713,40 +8713,13 @@ doset_simple(void) give_opt_msg = FALSE; do { pickedone = doset_simple_menu(); + flush = go.opt_need_redraw; - /* some option choices warrant immediate updating beyond the - option value itself */ - if (go.opt_need_glyph_reset) { - reset_glyphmap(gm_optionchange); - } - if (go.opt_need_redraw) { - check_gold_symbol(); - reglyph_darkroom(); - if (go.opt_symset_changed) - opt_crt_flags &= ~docrtRefresh; - docrt_flags(opt_crt_flags); + reset_needed_visuals(); + if (flush) { flush_screen(1); + flush = FALSE; } - if (go.opt_need_promptstyle) - adjust_menu_promptstyle(WIN_INVEN, &iflags.menu_headings); - if (go.opt_update_basic_palette) { -#ifdef CHANGE_COLOR - change_palette(); -#endif - go.opt_update_basic_palette = FALSE; - } - if (go.opt_reset_customcolors || go.opt_reset_customsymbols) { - if (go.opt_reset_customcolors) - reset_customcolors(); - if (go.opt_reset_customsymbols) - reset_customsymbols(); - docrt_flags(opt_crt_flags); - } - /* status may need updating if terminal is tall enough that - doset_simple menu doesn't cover up status or wide enough for - curses to honor player's choice of align_status:Right|Left */ - if (disp.botl || disp.botlx) - bot(); } while (pickedone > 0); give_opt_msg = TRUE; return ECMD_OK;