void set_color_pair(int clr) { int bg = -1; char bold = '1'; if (_MONOCHROME) { if (clr == MAGENTA_FG) setattr_bold(); return; } switch (clr) { case 7: if (_WHITE_BG) clr = 0; bg = clr; break; case 0x17: printf("\033[m\033[1m"); return; case MAGENTA_FG: clr = 5; break; case WHITE_ON_BLUE: clr = 7; bg = 4; break; case BOARD_BG_COLOR: clr = _WHITE_BG ? 6 : 4; bold = '0'; break; case BOARD_FRAME_COLOR: clr = 4; bold = '0'; break; case RED_FG: clr = 1; break; case YELLOW_ON_BLUE: clr = 3; bg = 4; break; case YELLOW_ON_GREEN: clr = 3; bg = 2; break; default: if (clr & 16) clr &= 7; else bg = clr; } set_ansi_color(bg, clr, bold); }
void setcolorpair(int clr) { int bg; if (clr != PANEL_LABEL_COLOR) set_color_pair(clr); else if (!_MONOCHROME) { clr = 3; if (TWOPLAYER_MODE) bg = 4; else { bg = (player1.level % 6)+1; if (bg==6) clr = 7; } set_ansi_color(bg, clr, '1'); } }
void set_ansi_color(int bg, int fg, char bold) { if (textgfx_flags & BLACK_BRACKETS) { if (bg == fg) { set_ansi_color(-1, fg, '0'); printf("\033[7m"); return; } if (bg >= 0) printf("\033[m"); } if (!_TT_BLOCKS) { if (bg >= 0) printf("\033[4%cm", bg+'0'); else printf("\033[m"); } printf("\033[%c;3%cm", bold, fg+'0'); }