diff --git a/include/decl.h b/include/decl.h index 69eeddb7f..571a77653 100644 --- a/include/decl.h +++ b/include/decl.h @@ -767,6 +767,7 @@ struct instance_globals_o { boolean opt_reset_customcolors; boolean opt_reset_customsymbols; boolean opt_update_basic_palette; + boolean opt_symset_changed; /* pickup.c */ int oldcap; /* last encumbrance */ diff --git a/src/decl.c b/src/decl.c index e4f8289e0..27ba6bb70 100644 --- a/src/decl.c +++ b/src/decl.c @@ -668,6 +668,7 @@ static const struct instance_globals_o g_init_o = { FALSE, /* opt_reset_customcolors */ FALSE, /* opt_reset_customsymbols */ FALSE, /* opt_update_basic_palette */ + FALSE, /* opt_symset_changed */ /* pickup.c */ 0, /* oldcap */ /* restore.c */ diff --git a/src/options.c b/src/options.c index 47414d33e..117278205 100644 --- a/src/options.c +++ b/src/options.c @@ -3449,7 +3449,8 @@ optfn_roguesymset( } else { if (!go.opt_initial && Is_rogue_level(&u.uz)) assign_graphics(ROGUESET); - go.opt_need_redraw = TRUE; + go.opt_need_redraw = go.opt_need_glyph_reset = TRUE; + go.opt_symset_changed = TRUE; } } else return optn_err; @@ -4072,6 +4073,7 @@ optfn_symset( } switch_symbols(gs.symset[PRIMARYSET].name != (char *) 0); go.opt_need_redraw = go.opt_need_glyph_reset = TRUE; + go.opt_symset_changed = TRUE; } } else return optn_err; @@ -8508,6 +8510,8 @@ doset_simple(void) if (go.opt_need_redraw) { check_gold_symbol(); reglyph_darkroom(); + if (go.opt_symset_changed) + opt_crt_flags &= ~docrtRefresh; docrt_flags(opt_crt_flags); flush_screen(1); }