From 9e170baecc766553a89ff413f95161a572881892 Mon Sep 17 00:00:00 2001 From: PatR Date: Fri, 7 Dec 2018 00:36:38 -0800 Subject: [PATCH 1/2] fix #H7655 - highlighting gold With options along the line of OPTIONS=statushilites:4 HILITE_STATUS=gold/always/yellow gold started out unhighlighted (unhighlit?). I didn't try to figure out why, just changed things to force a full status update when gold requires internal changes (different \G encoding or different glyph) which is something that happens when session first enters moveloop(). --- doc/fixes36.2 | 1 + src/botl.c | 13 ++++++------- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/doc/fixes36.2 b/doc/fixes36.2 index 421792d38..68d6c3229 100644 --- a/doc/fixes36.2 +++ b/doc/fixes36.2 @@ -252,6 +252,7 @@ hero hit by something that causes inventory items to be destroyed with loss of similar problem with more obvious symptom, an "object lost" panic when the unholy water was wielded; the fix for that wasn't general enough] add MM_ASLEEP makemon() flag and honor it when creating group for fill_zoo +at start of session (new game or restore), HILITE_STATUS for gold was ignored Fixes to Post-3.6.1 Problems that Were Exposed Via git Repository diff --git a/src/botl.c b/src/botl.c index 4af749105..e0008d2b5 100644 --- a/src/botl.c +++ b/src/botl.c @@ -1,4 +1,4 @@ -/* NetHack 3.6 botl.c $NHDT-Date: 1527042178 2018/05/23 02:22:58 $ $NHDT-Branch: NetHack-3.6.2 $:$NHDT-Revision: 1.101 $ */ +/* NetHack 3.6 botl.c $NHDT-Date: 1544171789 2018/12/07 08:36:29 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.128 $ */ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /*-Copyright (c) Michael Allison, 2006. */ /* NetHack may be freely redistributed. See license for details. */ @@ -732,15 +732,14 @@ boolean *valsetlist; * NNNN = the glyph portion * 25 = the gold amount * + * Setting 'chg = 2' is enough to render the field properly, but + * not to honor an initial highlight, so force 'update_all = 1'. */ - if (fld == BL_GOLD) { - if (context.rndencode != oldrndencode) { - chg = 2; + if (context.rndencode != oldrndencode + || showsyms[COIN_CLASS + SYM_OFF_O] != oldgoldsym) { + update_all = 1; /* chg = 2; */ oldrndencode = context.rndencode; - } - if (oldgoldsym != showsyms[COIN_CLASS + SYM_OFF_O]) { - chg = 2; oldgoldsym = showsyms[COIN_CLASS + SYM_OFF_O]; } } From f3c4a52e36ffb4736aac198964fabf575a00d921 Mon Sep 17 00:00:00 2001 From: PatR Date: Fri, 7 Dec 2018 01:20:20 -0800 Subject: [PATCH 2/2] menucolors In the 'special options' section at the end of 'O's menu, change the spelling for the menucolors entry to "menu colors" so that it isn't spelled exactly the same as the 'menucolors' boolean option. Only affects what the player sees when reading that menu. If player uses 'O' to add any menu colors and 'menucolors' boolean is Off at the time, give a reminder to toggle it to On in order to have those menu colorings become active. (Adding hilite_status entries has a similar reminder for 'statushilites' if done while that is 0.) --- doc/fixes36.2 | 2 ++ src/options.c | 14 +++++++++----- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/doc/fixes36.2 b/doc/fixes36.2 index 68d6c3229..aaff66ca0 100644 --- a/doc/fixes36.2 +++ b/doc/fixes36.2 @@ -253,6 +253,8 @@ hero hit by something that causes inventory items to be destroyed with loss of the unholy water was wielded; the fix for that wasn't general enough] add MM_ASLEEP makemon() flag and honor it when creating group for fill_zoo at start of session (new game or restore), HILITE_STATUS for gold was ignored +if player creates any menu colors via 'O' while menucolors is off, issue a + reminder that it needs to be on in order for those to become effective Fixes to Post-3.6.1 Problems that Were Exposed Via git Repository diff --git a/src/options.c b/src/options.c index 7dc622687..b3595a6ad 100644 --- a/src/options.c +++ b/src/options.c @@ -1,4 +1,4 @@ -/* NetHack 3.6 options.c $NHDT-Date: 1543972192 2018/12/05 01:09:52 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.335 $ */ +/* NetHack 3.6 options.c $NHDT-Date: 1544174413 2018/12/07 09:20:13 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.339 $ */ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /*-Copyright (c) Michael Allison, 2008. */ /* NetHack may be freely redistributed. See license for details. */ @@ -4283,7 +4283,7 @@ static struct other_opts { int NDECL((*othr_count_func)); } othropt[] = { { "autopickup exceptions", SET_IN_GAME, OPT_OTHER_APEXC, count_apes }, - { "menucolors", SET_IN_GAME, OPT_OTHER_MENUCOLOR, count_menucolors }, + { "menu colors", SET_IN_GAME, OPT_OTHER_MENUCOLOR, count_menucolors }, { "message types", SET_IN_GAME, OPT_OTHER_MSGTYPE, msgtype_count }, #ifdef STATUS_HILITES { "status hilite rules", SET_IN_GAME, OPT_OTHER_STATHILITE, @@ -4457,7 +4457,7 @@ doset() /* changing options via menu by Per Liboriussen */ } #endif } else if (opt_indx == OPT_OTHER_MENUCOLOR) { - (void) special_handling("menucolors", setinitial, + (void) special_handling("menu_colors", setinitial, fromfile); } else if (opt_indx == OPT_OTHER_MSGTYPE) { (void) special_handling("msgtype", setinitial, fromfile); @@ -5036,7 +5036,7 @@ boolean setinitial, setfromfile; if (pick_cnt >= 0) goto msgtypes_again; } - } else if (!strcmp("menucolors", optname)) { + } else if (!strcmp("menu_colors", optname)) { int opt_idx, nmc, mcclr, mcattr; char mcbuf[BUFSZ] = DUMMY; @@ -5044,11 +5044,15 @@ boolean setinitial, setfromfile; nmc = count_menucolors(); opt_idx = handle_add_list_remove("menucolor", nmc); if (opt_idx == 3) { /* done */ + menucolors_done: + if (nmc > 0 && !iflags.use_menu_color) + pline( + "To have menu colors become active, toggle 'menucolors' option to True."); return TRUE; } else if (opt_idx == 0) { /* add new */ getlin("What new menucolor pattern?", mcbuf); if (*mcbuf == '\033') - return TRUE; + goto menucolors_done; if (*mcbuf && test_regex_pattern(mcbuf, (const char *)0) && (mcclr = query_color((char *) 0)) != -1