/* These were from the webwho snippet, but I did clip them out if you don't have it installed.
* If you need these functions add them into the end of the webhelp.c file. Compliments of Odis.
* -Lajos
*/
int html_colour( char type, char *string )
{
char code[ 25 ];
char *p = '\0';
char colorcode[17] = "xbcgprwOBCGPRWYz";
#ifdef DEBUG
Debug ("html_colour");
#endif
if(type == '.')
{
type = colorcode[number_range(0, 16)];
}
switch( type )
{
default:
case '\0':
code[0] = '\0';
break;
case ' ':
sprintf( code, " " );
break;
case 'x':
sprintf( code, "<font color=""#006400"">" );
break;
case 'b':
sprintf( code, "<font color=""#00008B"">" );
break;
case 'c':
sprintf( code, "<font color=""#008B8B"">" );
break;
case 'g':
sprintf( code, "<font color=""#006400"">" );
break;
case 'm':
sprintf( code, "<font color=""#8B008B"">" );
break;
case 'r':
sprintf( code, "<font color=""#8B0000"">" );
break;
case 'w':
sprintf( code, "<font color=""#808080"">" );
break;
case 'O':
sprintf( code, "<font color=""#808000"">" );
break;
case 'B':
sprintf( code, "<font color=""#0000FF"">" );
break;
case 'C':
sprintf( code, "<font color=""#OOFFFF"">" );
break;
case 'G':
sprintf( code, "<font color=""#00FF00"">" );
break;
case 'P':
sprintf( code, "<font color=""#FF00FF"">" );
break;
case 'R':
sprintf( code, "<font color=""#FF0000"">" );
break;
case 'W':
sprintf( code, "<font color=""#FFFFFF"">" );
break;
case 'Y':
sprintf( code, "<font color=""#FFFF00"">" );
break;
case 'z':
sprintf( code, "<font color=""#4F4F4F"">" );
break;
}
p = code;
while( *p != '\0' )
{
*string = *p++;
*++string = '\0';
}
return( strlen( code ) );
}
/*
* Note: Background colors were never tested on here because my mud doesn't use them
*/
void html_colourconv( char *buffer, const char *txt, CHAR_DATA *ch )
{
const char *point;
int skip = 0;
#ifdef DEBUG
Debug ("html_colourconv");
#endif
for( point = txt ; *point ; point++ )
{
if( *point == '&' )
{
point++;
if( *point == '\0' )
point--;
else
skip = html_colour( *point, buffer );
while( skip-- > 0 )
++buffer;
continue;
}
/* Following is put in to prevent adding HTML tags to titles,
even for IMMS who know what they're doing. */
if( (*point == '<') )
{
/* &ls to recreate the character in html */
/* *buffer = '&';
*++buffer = 'l';
*++buffer = 's';
*/ *buffer = '[';
*++buffer = '\0';
continue;
}
if( (*point == '>') )
{
/* &gs to recreate the character in html */
/* *buffer = '&';
*++buffer = 'g';
*++buffer = 's';
*/ *buffer = ']';
*++buffer = '\0';
continue;
}
*buffer = *point;
*++buffer = '\0';
}
*buffer = '\0';
return;
}