TTY: add support for the palette config option
For now, terminal colors are not reset back when exiting NetHack. Depends on CHANGE_COLOR compile-time option.
This commit is contained in:
@@ -2337,7 +2337,7 @@ curses: if user's terminal was set to 'application keypad mode' (DEC VTxxx
|
|||||||
"ESC SPC G"), nethack wasn't recognizing number pad keys
|
"ESC SPC G"), nethack wasn't recognizing number pad keys
|
||||||
curses: change petattr attributes, dropping support for curses-only ones
|
curses: change petattr attributes, dropping support for curses-only ones
|
||||||
curses: swap the grey and no-color color initialization
|
curses: swap the grey and no-color color initialization
|
||||||
curses+Qt: allow changing default colors with the 'palette' config option
|
curses+tty+Qt: allow changing default colors with the 'palette' config option
|
||||||
(only if compiled with CHANGE_COLOR)
|
(only if compiled with CHANGE_COLOR)
|
||||||
curses: if messages have been issued during start-up (for instance, warnings
|
curses: if messages have been issued during start-up (for instance, warnings
|
||||||
about issues in run-time config file), prompt user to press <return>
|
about issues in run-time config file), prompt user to press <return>
|
||||||
|
|||||||
@@ -39,6 +39,7 @@ struct tc_lcl_data tc_lcl_data = { 0, 0, 0, 0, 0, 0, 0, FALSE };
|
|||||||
static char *nh_VI = (char *) 0; /* cursor_invisible */
|
static char *nh_VI = (char *) 0; /* cursor_invisible */
|
||||||
static char *nh_VE = (char *) 0; /* cursor_normal */
|
static char *nh_VE = (char *) 0; /* cursor_normal */
|
||||||
/*static char *nh_VS = (char *) 0;*/ /* cursor_visible (highlighted cursor) */
|
/*static char *nh_VS = (char *) 0;*/ /* cursor_visible (highlighted cursor) */
|
||||||
|
static char *nh_Ic = (char *) 0; /* initialize_color */
|
||||||
|
|
||||||
static char *HO, *CL, *CE, *UP, *XD, *BC, *SO, *SE, *TI, *TE;
|
static char *HO, *CL, *CE, *UP, *XD, *BC, *SO, *SE, *TI, *TE;
|
||||||
static char *VS, *VE;
|
static char *VS, *VE;
|
||||||
@@ -290,6 +291,8 @@ term_startup(int *wid, int *hgt)
|
|||||||
if (!nh_VI || !nh_VE /*|| !nh_VS*/ )
|
if (!nh_VI || !nh_VE /*|| !nh_VS*/ )
|
||||||
nh_VI = nh_VE = /*nh_VS =*/ (char *) 0;
|
nh_VI = nh_VE = /*nh_VS =*/ (char *) 0;
|
||||||
|
|
||||||
|
nh_Ic = Tgetstr(nhStr("Ic"));
|
||||||
|
|
||||||
/* Get rid of padding numbers for nh_HI and nh_HE. Hope they
|
/* Get rid of padding numbers for nh_HI and nh_HE. Hope they
|
||||||
* aren't really needed!!! nh_HI and nh_HE are outputted to the
|
* aren't really needed!!! nh_HI and nh_HE are outputted to the
|
||||||
* pager as a string - so how can you send it NULs???
|
* pager as a string - so how can you send it NULs???
|
||||||
@@ -1508,9 +1511,40 @@ term_curs_set(int visibility)
|
|||||||
|
|
||||||
#ifdef CHANGE_COLOR
|
#ifdef CHANGE_COLOR
|
||||||
void
|
void
|
||||||
tty_change_color(int color UNUSED, long rgb UNUSED, int reverse UNUSED)
|
tty_change_color(int color, long rgb, int reverse UNUSED)
|
||||||
{
|
{
|
||||||
return;
|
char buf[BUFSZ];
|
||||||
|
int i;
|
||||||
|
char *c, *fmt;
|
||||||
|
|
||||||
|
/* FIXME: colors are not reset back when exiting NetHack */
|
||||||
|
if (nh_Ic && *nh_Ic) {
|
||||||
|
long clr = color, r, g, b;
|
||||||
|
|
||||||
|
/* color * 3 seems to work correctly? */
|
||||||
|
/* this probably depends on the termcap definition */
|
||||||
|
r = ((rgb >> 16) & 0xFF) * 3;
|
||||||
|
g = ((rgb >> 8) & 0xFF) * 3;
|
||||||
|
b = (rgb & 0xFF) * 3;
|
||||||
|
|
||||||
|
|
||||||
|
fmt = tparm(nh_Ic, clr, r, g, b);
|
||||||
|
|
||||||
|
c = fmt;
|
||||||
|
|
||||||
|
i = 0;
|
||||||
|
while (*c) {
|
||||||
|
if (*c == '\033') {
|
||||||
|
buf[i++] = '\\';
|
||||||
|
buf[i++] = 'E';
|
||||||
|
} else {
|
||||||
|
buf[i++] = *c;
|
||||||
|
}
|
||||||
|
c++;
|
||||||
|
}
|
||||||
|
buf[i++] = '\0';
|
||||||
|
xputs(fmt);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
#endif /* CHANGE_COLOR */
|
#endif /* CHANGE_COLOR */
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user