engine: common: faster and simpler MSG_WriteString
This commit is contained in:
parent
8fcaf18897
commit
6bfa525080
1 changed files with 17 additions and 14 deletions
|
@ -395,15 +395,11 @@ qboolean MSG_WriteBytes( sizebuf_t *sb, const void *pBuf, int nBytes )
|
||||||
|
|
||||||
qboolean MSG_WriteString( sizebuf_t *sb, const char *pStr )
|
qboolean MSG_WriteString( sizebuf_t *sb, const char *pStr )
|
||||||
{
|
{
|
||||||
if( pStr )
|
int len = Q_strlen( pStr );
|
||||||
{
|
|
||||||
do
|
if( len )
|
||||||
{
|
MSG_WriteBytes( sb, pStr, len + 1 );
|
||||||
MSG_WriteChar( sb, (signed char)*pStr );
|
else MSG_WriteByte( sb, 0 );
|
||||||
pStr++;
|
|
||||||
} while( *( pStr - 1 ));
|
|
||||||
}
|
|
||||||
else MSG_WriteChar( sb, 0 );
|
|
||||||
|
|
||||||
return !sb->bOverflow;
|
return !sb->bOverflow;
|
||||||
}
|
}
|
||||||
|
@ -411,13 +407,22 @@ qboolean MSG_WriteString( sizebuf_t *sb, const char *pStr )
|
||||||
qboolean MSG_WriteStringf( sizebuf_t *sb, const char *format, ... )
|
qboolean MSG_WriteStringf( sizebuf_t *sb, const char *format, ... )
|
||||||
{
|
{
|
||||||
va_list va;
|
va_list va;
|
||||||
|
int len;
|
||||||
char buf[MAX_VA_STRING];
|
char buf[MAX_VA_STRING];
|
||||||
|
|
||||||
va_start( va, format );
|
va_start( va, format );
|
||||||
Q_vsnprintf( buf, sizeof( buf ), format, va );
|
len = Q_vsnprintf( buf, sizeof( buf ), format, va );
|
||||||
va_end( va );
|
va_end( va );
|
||||||
|
|
||||||
return MSG_WriteString( sb, buf );
|
if( len < 0 )
|
||||||
|
{
|
||||||
|
Host_Error( "%s: snprintf overflow!\n", __func__ );
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
MSG_WriteBytes( sb, buf, len + 1 );
|
||||||
|
|
||||||
|
return !sb->bOverflow;
|
||||||
}
|
}
|
||||||
|
|
||||||
int MSG_ReadOneBit( sizebuf_t *sb )
|
int MSG_ReadOneBit( sizebuf_t *sb )
|
||||||
|
@ -629,9 +634,7 @@ float MSG_ReadFloat( sizebuf_t *sb )
|
||||||
{
|
{
|
||||||
float ret;
|
float ret;
|
||||||
|
|
||||||
Assert( sizeof( ret ) == 4 );
|
MSG_ReadBits( sb, &ret, sizeof( ret ) << 3 );
|
||||||
|
|
||||||
MSG_ReadBits( sb, &ret, 32 );
|
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue