fix to sw colormaps (MSVC is stupid)

fixed clear command from crashing
added ^h for toggleable half-alpha (still not rendered yet)
added ^&?? for extended fg/bg colors: (poosibly temporary?)
- first ? corresponds to foreground
- second ? corresponds to background
- valid characters for ? are 0-9, A-F and -
- hexadecimal number represents a color from CGA RGBI colors
- -(dash) represents default color for FG, clear for BG


git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@1838 fc73d0e0-1445-4013-8a0c-d673dee63da5
This commit is contained in:
TimeServ 2006-01-11 07:23:31 +00:00
parent 4fa4d18341
commit 664467e41c
8 changed files with 241 additions and 6 deletions

View file

@ -194,6 +194,28 @@ void CopyAndMarkup(conchar_t *dest, qbyte *src, int maxlength)
ext = q3codemasks[*src - '0'] | (ext&~CON_Q3MASK);
continue;
}
else if (*src == '&') // extended code
{
if (isextendedcode(*src+1) && isextendedcode(*src+2))
{
src++; // foreground char
if (*src == '-') // default for FG
ext = (COLOR_WHITE << CON_FGSHIFT) | (ext&~CON_FGMASK);
else if (*src >= 'A')
ext = ((*src - ('A' - 10)) << CON_FGSHIFT) | (ext&~CON_FGMASK);
else
ext = ((*src - '0') << CON_FGSHIFT) | (ext&~CON_FGMASK);
src++; // background char
if (*src == '-') // default (clear) for BG
ext &= ~CON_BGMASK & ~CON_NONCLEARBG;
else if (*src >= 'A')
ext = ((*src - ('A' - 10)) << CON_BGSHIFT) | (ext&~CON_BGMASK) | CON_NONCLEARBG;
else
ext = ((*src - '0') << CON_BGSHIFT) | (ext&~CON_BGMASK) | CON_NONCLEARBG;
continue;
}
src--; // else invalid code
}
else if (*src == 'b') // toggle blink bit
{
src++;
@ -206,6 +228,12 @@ void CopyAndMarkup(conchar_t *dest, qbyte *src, int maxlength)
ext ^= CON_2NDCHARSETTEXT;
continue;
}
else if (*src == 'h')
{
src++;
ext ^= CON_HALFALPHA;
continue;
}
else if (*src == 's')
{
src++;