X-Git-Url: https://de.git.xonotic.org/?p=xonotic%2Fdarkplaces.git;a=blobdiff_plain;f=cl_screen.c;h=5519df6e7a1349371480ddc31246fbcea8605b50;hp=94f685e0656389e3bd17724e4363590eb0bf6f65;hb=95e0893e5dec7501a4ff07d7522dd4ce24b645aa;hpb=381ae4f397934e0f91155896460976ceefa026f7 diff --git a/cl_screen.c b/cl_screen.c index 94f685e0..5519df6e 100644 --- a/cl_screen.c +++ b/cl_screen.c @@ -46,7 +46,7 @@ static void R_Envmap_f (void); void R_ClearScreen(void); // color tag printing -static vec4_t _draw_colors[] = +static vec4_t string_colors[] = { // Quake3 colors // LordHavoc: why on earth is cyan before magenta in Quake3? @@ -58,7 +58,10 @@ static vec4_t _draw_colors[] = {0.0, 0.0, 1.0, 1.0}, // blue {0.0, 1.0, 1.0, 1.0}, // cyan {1.0, 0.0, 1.0, 1.0}, // magenta - {1.0, 1.0, 1.0, 1.0} // white + {1.0, 1.0, 1.0, 1.0}, // white + // [515]'s BX_COLOREDTEXT extension + {1.0, 1.0, 1.0, 0.5}, // half transparent + {0.5, 0.5, 0.5, 1.0} // half brightness // Black's color table //{1.0, 1.0, 1.0, 1.0}, //{1.0, 0.0, 0.0, 1.0}, @@ -70,9 +73,7 @@ static vec4_t _draw_colors[] = //{0.1, 0.1, 0.1, 1.0} }; -#define _draw_colors_count (sizeof(_draw_colors) / sizeof(vec4_t)) -#define _draw_color_tag '^' -#define _draw_color_default 7 +#define STRING_COLORS_COUNT (sizeof(string_colors) / sizeof(vec4_t)) // color is read and changed in the end void DrawQ_ColoredString( float x, float y, const char *text, int maxlen, float scalex, float scaley, float basered, float basegreen, float baseblue, float basealpha, int flags, int *outcolor ) @@ -83,11 +84,11 @@ void DrawQ_ColoredString( float x, float y, const char *text, int maxlen, float const char *start, *current; if( !outcolor || *outcolor == -1 ) { - colorindex = _draw_color_default; + colorindex = STRING_COLOR_DEFAULT; } else { colorindex = *outcolor; } - color = _draw_colors[colorindex]; + color = string_colors[colorindex]; if( maxlen < 1) len = strlen( text ); @@ -97,7 +98,7 @@ void DrawQ_ColoredString( float x, float y, const char *text, int maxlen, float start = current = text; while( len > 0 ) { // check for color control char - if( *current == _draw_color_tag ) { + if( *current == STRING_COLOR_TAG ) { // get next char current++; len--; @@ -105,7 +106,7 @@ void DrawQ_ColoredString( float x, float y, const char *text, int maxlen, float break; } // display the tag char? - if( *current == _draw_color_tag ) { + if( *current == STRING_COLOR_TAG ) { // only display one of the two start = current; // get the next char @@ -116,22 +117,22 @@ void DrawQ_ColoredString( float x, float y, const char *text, int maxlen, float do { colorindex = colorindex * 10 + (*current - '0'); // only read as long as it makes a valid index - if( colorindex >= _draw_colors_count ) { + if( colorindex >= STRING_COLORS_COUNT ) { // undo the last operation colorindex /= 10; break; } current++; len--; - } while( len > 0 && '0' <= *current && *current <= '9' ) + } while( len > 0 && '0' <= *current && *current <= '9' ); // set the color - color = _draw_colors[colorindex]; + color = string_colors[colorindex]; // we jump over the color tag start = current; } } // go on and read normal text in until the next control char - while( len > 0 && *current != _draw_color_tag ) { + while( len > 0 && *current != STRING_COLOR_TAG ) { current++; len--; }