1 #define TRED FOREGROUND_RED | FOREGROUND_INTENSITY
\r
2 #define TGREEN FOREGROUND_GREEN | FOREGROUND_INTENSITY
\r
3 #define TYELLOW FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_INTENSITY
\r
4 #define TNORMAL FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_BLUE
\r
5 #define TWHITE TNORMAL | FOREGROUND_INTENSITY
\r
6 #define TBLUE FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_INTENSITY
\r
8 inline void sc(WORD color) { SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), color); }
\r
10 /* Handles colors in printf */
\r
11 int printf_c(const char * format, ...)
\r
13 // Better hope we're not multithreaded, otherwise we'll have chickens crossing the road other side to get the to :P
\r
14 static char message[500];
\r
15 static char temp[10];
\r
18 /* parse arguments */
\r
20 va_start(ap, format);
\r
21 vsprintf(message, format, ap);
\r
24 /* search for unix-style escape sequences */
\r
27 const char * p = message;
\r
32 // Escape sequence -> copy into the temp buffer, and parse the color.
\r
43 if(!_stricmp(temp, "[0"))
\r
45 // Returning to normal colour.
\r
46 SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);
\r
48 else if(!_stricmp(temp, "[1"))
\r
51 SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), TWHITE);
\r
53 else if(sscanf(temp, "[%u;%u", &color1, &color2) == 2)
\r
58 SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_GREEN | FOREGROUND_INTENSITY); // Yellow
\r
63 SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE | FOREGROUND_INTENSITY);
\r
70 sprintf(message, "Unknown color code: %s", temp);
\r
71 MessageBox(0, message, message, MB_OK);
\r