Skip to content

Commit

Permalink
Netcode: fix non-byte-multiple signed integers
Browse files Browse the repository at this point in the history
  • Loading branch information
slipher committed Jun 21, 2020
1 parent 83fda04 commit 1c0b6e5
Showing 1 changed file with 6 additions and 18 deletions.
24 changes: 6 additions & 18 deletions src/engine/qcommon/msg.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -224,7 +224,7 @@ int MSG_ReadBits( msg_t *msg, int bits )
int value;
int get;
bool sgn;
int i, nbits;
int i;

value = 0;

Expand Down Expand Up @@ -269,27 +269,15 @@ int MSG_ReadBits( msg_t *msg, int bits )
}
else
{
nbits = 0;

if ( bits & 7 )
for ( i = 0; i < ( bits & 7 ); i++ )
{
nbits = bits & 7;

for ( i = 0; i < nbits; i++ )
{
value |= ( Huff_getBit( msg->data, &msg->bit ) << i );
}

bits = bits - nbits;
value |= ( Huff_getBit( msg->data, &msg->bit ) << i );
}

if ( bits )
for ( ; i < bits; i += 8 )
{
for ( i = 0; i < bits; i += 8 )
{
Huff_offsetReceive( msgHuff.decompressor.tree, &get, msg->data, &msg->bit );
value |= ( get << ( i + nbits ) );
}
Huff_offsetReceive( msgHuff.decompressor.tree, &get, msg->data, &msg->bit );
value |= get << i;
}

msg->readcount = ( msg->bit >> 3 ) + 1;
Expand Down

0 comments on commit 1c0b6e5

Please sign in to comment.