win32tty: use_inverse option

respect use_inverse and default to ATR_BOLD if disabled
This commit is contained in:
nethack.allison
2002-03-23 19:49:07 +00:00
parent 399b801315
commit 3041cea5c8
2 changed files with 44 additions and 36 deletions
+1 -1
View File
@@ -17,4 +17,4 @@ two bad wizkit items in a row shouldn't make the user hit space many times
Platform- and/or Interface-Specific Fixes Platform- and/or Interface-Specific Fixes
----------------------------------------- -----------------------------------------
win32tty: honour the use_inverse option and default to ATR_BOLD if disabled
+43 -35
View File
@@ -1,4 +1,4 @@
/* SCCS Id: @(#)nttty.c 3.4 2000/08/02 /* SCCS Id: @(#)nttty.c 3.4 2002/03/23 */
/* Copyright (c) NetHack PC Development Team 1993 */ /* Copyright (c) NetHack PC Development Team 1993 */
/* NetHack may be freely redistributed. See license for details. */ /* NetHack may be freely redistributed. See license for details. */
@@ -753,52 +753,60 @@ has_color(int color)
# endif # endif
} }
void
term_end_attr(int attr)
{
switch(attr){
case ATR_ULINE:
case ATR_BOLD:
case ATR_BLINK:
standoutend();
break;
case ATR_INVERSE:
if (currentcolor == 0)
currentcolor = FOREGROUND_GREEN|FOREGROUND_BLUE|FOREGROUND_RED;
currentbackground = 0;
colorchange = TRUE;
break;
default:
standoutend();
if (currentcolor == 0)
currentcolor = FOREGROUND_GREEN|FOREGROUND_BLUE|FOREGROUND_RED;
currentbackground = 0;
currenthilite = 0;
break;
}
}
void void
term_start_attr(int attr) term_start_attr(int attr)
{ {
switch(attr){ switch(attr){
case ATR_INVERSE:
if (iflags.wc_inverse) {
/* Suggestion by Lee Berger */
if ((currentcolor & (FOREGROUND_GREEN|FOREGROUND_BLUE|FOREGROUND_RED)) ==
(FOREGROUND_GREEN|FOREGROUND_BLUE|FOREGROUND_RED))
currentcolor = 0;
currentbackground = (BACKGROUND_RED|BACKGROUND_BLUE|BACKGROUND_GREEN);
colorchange = TRUE;
break;
} /* else */
/*FALLTHRU*/
case ATR_ULINE: case ATR_ULINE:
case ATR_BOLD: case ATR_BOLD:
case ATR_BLINK: case ATR_BLINK:
standoutbeg(); standoutbeg();
break; break;
default:
#ifdef DEBUG
impossible("term_start_attr: strange attribute %d", attr);
#endif
standoutend();
if (currentcolor == 0)
currentcolor = FOREGROUND_GREEN|FOREGROUND_BLUE|FOREGROUND_RED;
currentbackground = 0;
break;
}
}
void
term_end_attr(int attr)
{
switch(attr){
case ATR_INVERSE: case ATR_INVERSE:
/* Suggestion by Lee Berger */ if (iflags.wc_inverse) {
if ((currentcolor & (FOREGROUND_GREEN|FOREGROUND_BLUE|FOREGROUND_RED)) == if (currentcolor == 0)
(FOREGROUND_GREEN|FOREGROUND_BLUE|FOREGROUND_RED)) currentcolor = FOREGROUND_GREEN|FOREGROUND_BLUE|FOREGROUND_RED;
currentcolor = 0; currentbackground = 0;
currentbackground = (BACKGROUND_RED|BACKGROUND_BLUE|BACKGROUND_GREEN); colorchange = TRUE;
colorchange = TRUE; break;
break; } /* else */
/*FALLTHRU*/
case ATR_ULINE:
case ATR_BOLD:
case ATR_BLINK:
default: default:
standoutend(); standoutend();
if (currentcolor == 0)
currentcolor = FOREGROUND_GREEN|FOREGROUND_BLUE|FOREGROUND_RED;
currentbackground = 0;
break; break;
} }
} }