style='color:green;mso-ansi-language:EN-US'>/*
style='color:green;mso-ansi-language:EN-US'>============
style='color:green;mso-ansi-language:EN-US'>MSG_GetSpace
style='color:green;mso-ansi-language:EN-US'>============
style='color:green;mso-ansi-language:EN-US'>*/
style='color:blue;mso-ansi-language:EN-US'>static void
lang=EN-US style='mso-ansi-language:EN-US'> *MSG_GetSpace( sizebuf_t *msg,
style='color:blue'>int length ) {
style='mso-ansi-language:EN-US'>
style='color:blue'>void *data;
style='mso-ansi-language:EN-US'>
style='mso-ansi-language:EN-US'>
style='color:blue'>if( msg->cursize + length > msg->maxsize )
{
style='mso-ansi-language:EN-US'>
style='color:blue'>if( !msg->allowoverflow ) {
style='mso-ansi-language:EN-US'> Com_Error(
ERR_FATAL, "MSG_GetSpace: overflow without allowoverflow set" );
style='mso-ansi-language:EN-US'> }
style='mso-ansi-language:EN-US'>
style='mso-ansi-language:EN-US'>
style='color:blue'>if( length > msg->maxsize ) {
style='mso-ansi-language:EN-US'> Com_Error(
ERR_FATAL, "MSG_GetSpace: %i is > full buffer size", length );
style='mso-ansi-language:EN-US'> }
style='mso-ansi-language:EN-US'>
style='mso-ansi-language:EN-US'> MSG_Clear(
msg );
style='mso-ansi-language:EN-US'> msg->overflowed
= qtrue;
style='mso-ansi-language:EN-US'> }
style='mso-ansi-language:EN-US'>
style='mso-ansi-language:EN-US'> data
= msg->data + msg->cursize;
style='mso-ansi-language:EN-US'> msg->cursize
+= length;
style='mso-ansi-language:EN-US'> msg->bit
+= length << 3;
style='mso-ansi-language:EN-US'>
style='mso-ansi-language:EN-US'>
style='color:blue'>return data;
style='mso-ansi-language:EN-US'>}
style='mso-ansi-language:EN-US'>
style='color:green;mso-ansi-language:EN-US'>/*
style='color:green;mso-ansi-language:EN-US'>============
style='color:green;mso-ansi-language:EN-US'>MSG_Init
style='color:green;mso-ansi-language:EN-US'>============
style='color:green;mso-ansi-language:EN-US'>*/
style='color:blue;mso-ansi-language:EN-US'>void
style='mso-ansi-language:EN-US'> MSG_Init( sizebuf_t *msg, byte *buffer,
style='color:blue'>int size ) {
style='mso-ansi-language:EN-US'> memset(
msg, 0, sizeof( *msg ) );
style='mso-ansi-language:EN-US'> msg->data
= buffer;
style='mso-ansi-language:EN-US'> msg->maxsize
= size;
style='mso-ansi-language:EN-US'>}
style='mso-ansi-language:EN-US'>
style='color:green;mso-ansi-language:EN-US'>/*
style='color:green;mso-ansi-language:EN-US'>============
style='color:green;mso-ansi-language:EN-US'>MSG_InitRaw
style='color:green;mso-ansi-language:EN-US'>============
style='color:green;mso-ansi-language:EN-US'>*/
style='color:blue;mso-ansi-language:EN-US'>void
style='mso-ansi-language:EN-US'> MSG_InitRaw( sizebuf_t *msg, byte *buffer,
style='color:blue'>int size ) {
style='mso-ansi-language:EN-US'> memset(
msg, 0, sizeof( *msg ) );
style='mso-ansi-language:EN-US'> msg->data
= buffer;
style='mso-ansi-language:EN-US'> msg->maxsize
= size;
style='mso-ansi-language:EN-US'> msg->uncompressed
= qtrue;
style='mso-ansi-language:EN-US'>}
style='mso-ansi-language:EN-US'>
style='color:green;mso-ansi-language:EN-US'>/*
style='color:green;mso-ansi-language:EN-US'>============
style='color:green;mso-ansi-language:EN-US'>MSG_Clear
style='color:green;mso-ansi-language:EN-US'>============
style='color:green;mso-ansi-language:EN-US'>*/
style='color:blue;mso-ansi-language:EN-US'>void
style='mso-ansi-language:EN-US'> MSG_Clear( sizebuf_t *msg ) {
style='mso-ansi-language:EN-US'> msg->cursize
= 0;
style='mso-ansi-language:EN-US'> msg->overflowed
= qfalse;
style='mso-ansi-language:EN-US'> msg->uncompressed
= qfalse;
style='mso-ansi-language:EN-US'> msg->bit
= 0;
style='mso-ansi-language:EN-US'>}
style='mso-ansi-language:EN-US'>
style='color:green;mso-ansi-language:EN-US'>/*
style='color:green;mso-ansi-language:EN-US'>============
style='color:green;mso-ansi-language:EN-US'>MSG_SetBitstream
style='color:green;mso-ansi-language:EN-US'>============
style='color:green;mso-ansi-language:EN-US'>*/
style='color:blue;mso-ansi-language:EN-US'>void
style='mso-ansi-language:EN-US'> MSG_SetBitstream( sizebuf_t *msg ) {
style='mso-ansi-language:EN-US'> msg->uncompressed
= qfalse;
style='mso-ansi-language:EN-US'>}
style='mso-ansi-language:EN-US'>
style='color:green;mso-ansi-language:EN-US'>/*
style='color:green;mso-ansi-language:EN-US'>============
style='color:green;mso-ansi-language:EN-US'>MSG_WriteRawData
style='color:green;mso-ansi-language:EN-US'>============
style='color:green;mso-ansi-language:EN-US'>*/
style='color:blue;mso-ansi-language:EN-US'>void
style='mso-ansi-language:EN-US'> MSG_WriteRawData( sizebuf_t *msg,
style='color:blue'>const void *data, int
length ) {
style='mso-ansi-language:EN-US'>
style='color:blue'>if( length > 0 ) {
style='mso-ansi-language:EN-US'> memcpy(
MSG_GetSpace( msg, length ), data, length );
style='mso-ansi-language:EN-US'> }
style='mso-ansi-language:EN-US'>}
style='mso-ansi-language:EN-US'>
style='color:green;mso-ansi-language:EN-US'>/*
style='color:green;mso-ansi-language:EN-US'>============
style='color:green;mso-ansi-language:EN-US'>MSG_BeginWriting
style='color:green;mso-ansi-language:EN-US'>============
style='color:green;mso-ansi-language:EN-US'>*/
style='color:blue;mso-ansi-language:EN-US'>void
style='mso-ansi-language:EN-US'> MSG_BeginWriting( sizebuf_t *msg ) {
style='mso-ansi-language:EN-US'> msg->uncompressed
= qtrue;
style='mso-ansi-language:EN-US'> msg->overflowed
= 0;
style='mso-ansi-language:EN-US'> msg->cursize
= 0;
style='mso-ansi-language:EN-US'> msg->bit
= 0;
style='mso-ansi-language:EN-US'>}
style='mso-ansi-language:EN-US'>
style='color:green;mso-ansi-language:EN-US'>/*
style='color:green;mso-ansi-language:EN-US'>============
style='color:green;mso-ansi-language:EN-US'>MSG_WriteData
style='color:green;mso-ansi-language:EN-US'>============
style='color:green;mso-ansi-language:EN-US'>*/
style='color:blue;mso-ansi-language:EN-US'>void
style='mso-ansi-language:EN-US'> MSG_WriteData( sizebuf_t *msg,
style='color:blue'>const void *data, int
length ) {
style='mso-ansi-language:EN-US'>
style='color:blue'>int i;
style='mso-ansi-language:EN-US'>
style='mso-ansi-language:EN-US'>
style='color:blue'>for( i=0 ; i<length ; i++ ) {
style='mso-ansi-language:EN-US'> MSG_WriteByte(
msg, ((byte *)data)[i] );
style='mso-ansi-language:EN-US'> }
style='mso-ansi-language:EN-US'>}
style='mso-ansi-language:EN-US'>
style='color:green;mso-ansi-language:EN-US'>/*
style='color:green;mso-ansi-language:EN-US'>============
style='color:green;mso-ansi-language:EN-US'>MSG_WriteString
style='color:green;mso-ansi-language:EN-US'>============
style='color:green;mso-ansi-language:EN-US'>*/
style='color:blue;mso-ansi-language:EN-US'>void
style='mso-ansi-language:EN-US'> MSG_WriteString( sizebuf_t *msg,
style='color:blue'>const char *string ) {
style='mso-ansi-language:EN-US'>
style='color:blue'>char buffer[MAX_STRING_CHARS];
style='mso-ansi-language:EN-US'>
style='color:blue'>int i;
style='mso-ansi-language:EN-US'>
style='color:blue'>int len;
style='mso-ansi-language:EN-US'>
style='mso-ansi-language:EN-US'>
style='color:blue'>if( !string ) {
style='mso-ansi-language:EN-US'> MSG_WriteByte(
msg, 0 );
style='mso-ansi-language:EN-US'>
style='color:blue'>return;
style='mso-ansi-language:EN-US'> }
style='mso-ansi-language:EN-US'>
style='mso-ansi-language:EN-US'> len
= strlen( string );
style='mso-ansi-language:EN-US'>
style='mso-ansi-language:EN-US'>
style='color:blue'>if( len >= sizeof(
buffer ) ) {
style='mso-ansi-language:EN-US'> Com_Printf(
"MSG_WriteString: MAX_STRING_CHARS\n" );
style='mso-ansi-language:EN-US'> MSG_WriteByte(
msg, 0 );
style='mso-ansi-language:EN-US'>
style='color:blue'>return;
style='mso-ansi-language:EN-US'> }
style='mso-ansi-language:EN-US'>
style='mso-ansi-language:EN-US'> Q_strncpyz(
buffer, string, sizeof( buffer ) );
style='mso-ansi-language:EN-US'>
style='mso-ansi-language:EN-US'>
style='color:blue'>for( i=0 ; i<len ; i++ ) {
style='mso-ansi-language:EN-US'>
style='color:blue'>if( buffer[i] > 127 ) {
style='mso-ansi-language:EN-US'> buffer[i]
= ‘.’;
style='mso-ansi-language:EN-US'> }
style='mso-ansi-language:EN-US'> }
style='mso-ansi-language:EN-US'>
style='mso-ansi-language:EN-US'>
style='color:blue'>for( i=0 ; i<=len ; i++ ) {
style='mso-ansi-language:EN-US'> MSG_WriteByte(
msg, buffer[i] );
style='mso-ansi-language:EN-US'> }
style='mso-ansi-language:EN-US'>}
style='mso-ansi-language:EN-US'>
style='color:green;mso-ansi-language:EN-US'>/*
style='color:green;mso-ansi-language:EN-US'>============
style='color:green;mso-ansi-language:EN-US'>MSG_WriteString
style='color:green;mso-ansi-language:EN-US'>============
style='color:green;mso-ansi-language:EN-US'>*/
style='color:blue;mso-ansi-language:EN-US'>void
style='mso-ansi-language:EN-US'> MSG_WriteBigString( sizebuf_t *msg,
style='color:blue'>const char *string ) {
style='mso-ansi-language:EN-US'>
style='color:blue'>char buffer[BIG_INFO_STRING];
style='mso-ansi-language:EN-US'>
style='color:blue'>int i;
style='mso-ansi-language:EN-US'>
style='color:blue'>int len;
style='mso-ansi-language:EN-US'>
style='mso-ansi-language:EN-US'>
style='color:blue'>if( !string ) {
style='mso-ansi-language:EN-US'> MSG_WriteByte(
msg, 0 );
style='mso-ansi-language:EN-US'>
style='color:blue'>return;
style='mso-ansi-language:EN-US'> }
style='mso-ansi-language:EN-US'>
style='mso-ansi-language:EN-US'> len
= strlen( string );
style='mso-ansi-language:EN-US'>
style='mso-ansi-language:EN-US'>
style='color:blue'>if( len >= sizeof(
buffer ) ) {
style='mso-ansi-language:EN-US'> Com_Printf(
"MSG_WriteString: BIG_INFO_STRING\n" );
style='mso-ansi-language:EN-US'> MSG_WriteByte(
msg, 0 );
style='mso-ansi-language:EN-US'>
style='color:blue'>return;
style='mso-ansi-language:EN-US'> }
style='mso-ansi-language:EN-US'>
style='mso-ansi-language:EN-US'> Q_strncpyz(
buffer, string, sizeof( buffer ) );
style='mso-ansi-language:EN-US'>
style='mso-ansi-language:EN-US'>
style='color:blue'>for( i=0 ; i<len ; i++ ) {
style='mso-ansi-language:EN-US'>
style='color:blue'>if( buffer[i] > 127 ) {
style='mso-ansi-language:EN-US'> buffer[i]
= ‘.’;
style='mso-ansi-language:EN-US'> }
style='mso-ansi-language:EN-US'> }
style='mso-ansi-language:EN-US'>
style='mso-ansi-language:EN-US'>
style='color:blue'>for( i=0 ; i<=len ; i++ ) {
style='mso-ansi-language:EN-US'> MSG_WriteByte(
msg, buffer[i] );
style='mso-ansi-language:EN-US'> }
style='mso-ansi-language:EN-US'>}
style='mso-ansi-language:EN-US'>
style='color:green;mso-ansi-language:EN-US'>/*
style='color:green;mso-ansi-language:EN-US'>============
style='color:green;mso-ansi-language:EN-US'>MSG_BeginReading
style='color:green;mso-ansi-language:EN-US'>============
style='color:green;mso-ansi-language:EN-US'>*/
style='color:blue;mso-ansi-language:EN-US'>void
style='mso-ansi-language:EN-US'> MSG_BeginReading( sizebuf_t *msg ) {
style='mso-ansi-language:EN-US'> msg->readcount
= 0;
style='mso-ansi-language:EN-US'> msg->bit
= 0;
style='mso-ansi-language:EN-US'> msg->uncompressed
= qtrue;
style='mso-ansi-language:EN-US'>}
style='mso-ansi-language:EN-US'>
style='color:green;mso-ansi-language:EN-US'>/*
style='color:green;mso-ansi-language:EN-US'>============
style='color:green;mso-ansi-language:EN-US'>MSG_ReadData
style='color:green;mso-ansi-language:EN-US'>============
style='color:green;mso-ansi-language:EN-US'>*/
style='color:blue;mso-ansi-language:EN-US'>void
style='mso-ansi-language:EN-US'> MSG_ReadData( sizebuf_t *msg,
style='color:blue'>void *data, int len
) {
style='mso-ansi-language:EN-US'>
style='color:blue'>int i;
style='mso-ansi-language:EN-US'>
style='color:blue'>int c;
style='mso-ansi-language:EN-US'>
style='mso-ansi-language:EN-US'>
style='color:blue'>for( i=0 ; i<len ; i++ ) {
style='mso-ansi-language:EN-US'> c
= MSG_ReadByte( msg );
style='mso-ansi-language:EN-US'>
style='color:blue'>if( c == -1 ) {
style='mso-ansi-language:EN-US'>
style='color:blue'>break;
style='mso-ansi-language:EN-US'> }
style='mso-ansi-language:EN-US'>
style='color:blue'>if( data ) {
style='mso-ansi-language:EN-US'> ((byte
*)data)[i] = c;
style='mso-ansi-language:EN-US'> }
style='mso-ansi-language:EN-US'> }
style='mso-ansi-language:EN-US'>}
style='mso-ansi-language:EN-US'>
style='color:green;mso-ansi-language:EN-US'>/*
style='color:green;mso-ansi-language:EN-US'>============
style='color:green;mso-ansi-language:EN-US'>MSG_ReadString
style='color:green;mso-ansi-language:EN-US'>============
style='color:green;mso-ansi-language:EN-US'>*/
style='color:blue;mso-ansi-language:EN-US'>char
style='mso-ansi-language:EN-US'> *MSG_ReadString( sizebuf_t *msg ) {
style='mso-ansi-language:EN-US'>
style='color:blue'>static char string[MAX_STRING_CHARS];
style='mso-ansi-language:EN-US'>
style='color:blue'>int i;
style='mso-ansi-language:EN-US'>
style='color:blue'>int c;
style='mso-ansi-language:EN-US'>
style='mso-ansi-language:EN-US'>
style='color:blue'>for( i=0 ; i<sizeof(
string )-1; i++ ) {
style='mso-ansi-language:EN-US'> c
= MSG_ReadByte( msg );
style='mso-ansi-language:EN-US'>
style='color:blue'>if( c == -1 || c == 0 ) {
style='mso-ansi-language:EN-US'>
style='color:blue'>break;
style='mso-ansi-language:EN-US'> }
style='mso-ansi-language:EN-US'>
style='color:blue'>if( c == ‘%’ || c > 127 ) {
style='mso-ansi-language:EN-US'> c
= ‘.’;
style='mso-ansi-language:EN-US'> }
style='mso-ansi-language:EN-US'> string[i]
= c;
style='mso-ansi-language:EN-US'> }
style='mso-ansi-language:EN-US'>
style='mso-ansi-language:EN-US'> string[i]
= 0;
style='mso-ansi-language:EN-US'>
style='mso-ansi-language:EN-US'>
style='color:blue'>return string;
style='mso-ansi-language:EN-US'>}
style='mso-ansi-language:EN-US'>
style='color:green;mso-ansi-language:EN-US'>/*
style='color:green;mso-ansi-language:EN-US'>============
lang=EN-US style='color:blue;mso-ansi-language:EN-US'>
style='color:green;mso-ansi-language:EN-US'>MSG_ReadBigString
style='color:green;mso-ansi-language:EN-US'>============
style='color:green;mso-ansi-language:EN-US'>*/
style='color:blue;mso-ansi-language:EN-US'>char
style='mso-ansi-language:EN-US'> *MSG_ReadBigString( sizebuf_t *msg ) {
style='mso-ansi-language:EN-US'>
style='color:blue'>static char string[BIG_INFO_STRING];
style='mso-ansi-language:EN-US'>
style='color:blue'>int i;
style='mso-ansi-language:EN-US'>
style='color:blue'>int c;
style='mso-ansi-language:EN-US'>
style='mso-ansi-language:EN-US'>
style='color:blue'>for( i=0 ; i<sizeof(
string )-1; i++ ) {
style='mso-ansi-language:EN-US'> c
= MSG_ReadByte( msg );
style='mso-ansi-language:EN-US'>
style='color:blue'>if( c == -1 || c == 0 ) {
style='mso-ansi-language:EN-US'>
style='color:blue'>break;
style='mso-ansi-language:EN-US'> }
style='mso-ansi-language:EN-US'>
style='color:blue'>if( c == ‘%’ || c > 127 ) {
style='mso-ansi-language:EN-US'> c
= ‘.’;
style='mso-ansi-language:EN-US'> }
style='mso-ansi-language:EN-US'> string[i]
= c;
style='mso-ansi-language:EN-US'> }
style='mso-ansi-language:EN-US'>
style='mso-ansi-language:EN-US'> string[i]
= 0;
style='mso-ansi-language:EN-US'>
style='mso-ansi-language:EN-US'>
style='color:blue'>return string;
style='mso-ansi-language:EN-US'>}