Make status hilites use same color string matching as menucolors

This commit is contained in:
Pasi Kallinen
2016-01-13 20:24:40 +02:00
parent c49490dfd4
commit 1dd37b7fca
4 changed files with 26 additions and 26 deletions

View File

@@ -111,6 +111,7 @@ do allow globs with same curse/bless state to merge even when that state is
fix pile mark after killing a monster carrying a potion which is destroyed
only list known blank scrolls and known blank spellbooks as likely candidates
when choosing an item to write on for applied magic marker
make status hilites use same color names as menucolors
Platform- and/or Interface-Specific Fixes

View File

@@ -1659,6 +1659,7 @@ E struct symparse *FDECL(match_sym, (char *));
E void NDECL(set_playmode);
E int FDECL(sym_val, (char *));
E const char *FDECL(clr2colorname, (int));
E int FDECL(match_str2clr, (char *));
E boolean FDECL(add_menu_coloring, (char *));
E boolean FDECL(get_menu_coloring, (char *, int *, int *));
E void NDECL(free_menu_coloring);

View File

@@ -1214,21 +1214,10 @@ boolean from_configfile;
} else if (strcmpi(how, "normal") == 0) {
normal[i] = TRUE;
} else {
int k;
char colorname[BUFSZ];
for (k = 0; k < CLR_MAX; ++k) {
/* we have to make a copy to change space to dash */
(void) strcpy(colorname, c_obj_colors[k]);
for (tmp = index(colorname, ' '); tmp;
tmp = index(colorname, ' '))
*tmp = '-';
if (strcmpi(how, colorname) == 0) {
coloridx[i] = k;
break;
}
}
int k = match_str2clr(how);
if (k >= CLR_MAX)
return FALSE;
coloridx[i] = k;
}
}

View File

@@ -1274,6 +1274,26 @@ int clr;
return (char *) 0;
}
int
match_str2clr(str)
char *str;
{
int i, c = NO_COLOR;
/* allow "lightblue", "light blue", and "light-blue" to match "light blue"
(also junk like "_l i-gh_t---b l u e" but we won't worry about that);
also copes with trailing space; mungspaces removed any leading space */
for (i = 0; i < SIZE(colornames); i++)
if (colornames[i].name
&& fuzzymatch(str, colornames[i].name, " -_", TRUE)) {
c = colornames[i].color;
break;
}
if (i == SIZE(colornames) && (*str >= '0' && *str <= '9'))
c = atoi(str);
return c;
}
const char *
attr2attrname(attr)
int attr;
@@ -1563,19 +1583,8 @@ char *str;
if ((amp = index(tmps, '&')) != 0)
*amp = '\0';
/* allow "lightblue", "light blue", and "light-blue" to match "light blue"
(also junk like "_l i-gh_t---b l u e" but we won't worry about that);
also copes with trailing space; mungspaces removed any leading space */
for (i = 0; i < SIZE(colornames); i++)
if (colornames[i].name
&& fuzzymatch(tmps, colornames[i].name, " -_", TRUE)) {
c = colornames[i].color;
break;
}
if (i == SIZE(colornames) && (*tmps >= '0' && *tmps <= '9'))
c = atoi(tmps);
if (c > 15)
c = match_str2clr(tmps);
if (c >= CLR_MAX)
return FALSE;
if (amp) {