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

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
-----------------------------------------
win32tty: honour the use_inverse option and default to ATR_BOLD if disabled

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 */
/* NetHack may be freely redistributed. See license for details. */
@@ -753,52 +753,60 @@ has_color(int color)
# 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
term_start_attr(int 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_BOLD:
case ATR_BLINK:
standoutbeg();
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:
/* 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;
if (iflags.wc_inverse) {
if (currentcolor == 0)
currentcolor = FOREGROUND_GREEN|FOREGROUND_BLUE|FOREGROUND_RED;
currentbackground = 0;
colorchange = TRUE;
break;
} /* else */
/*FALLTHRU*/
case ATR_ULINE:
case ATR_BOLD:
case ATR_BLINK:
default:
standoutend();
if (currentcolor == 0)
currentcolor = FOREGROUND_GREEN|FOREGROUND_BLUE|FOREGROUND_RED;
currentbackground = 0;
break;
}
}