Merge pull request #5 from Yepoleb/stringtable

Stringtable parsing improvements
This commit is contained in:
Jordan Cristiano 2016-04-25 23:21:38 -04:00
commit 30ec1169f6

View File

@ -21,16 +21,15 @@ static void StringTable_BitRead(NetHandlers::BitRead& bitbuf, SourceGameContext&
{
const size_t numEncodeBits = math::log2(data->maxEntries);
std::vector<StringHistoryEntry> history;
int lastEntry = -1;
int entryIndex = -1;
for (uint i = 0; i < data->numEntries; ++i)
{
int entryIndex = lastEntry + 1;
entryIndex++;
if (bitbuf.ReadOneBit() == 0)
{
entryIndex = bitbuf.ReadUBitLong(numEncodeBits);
}
lastEntry = entryIndex;
const char *pEntry = NULL;
char entry[1024];
@ -57,18 +56,15 @@ static void StringTable_BitRead(NetHandlers::BitRead& bitbuf, SourceGameContext&
const int MAX_USERDATA_BITS = 14;
unsigned char tempbuf[(1 << MAX_USERDATA_BITS)] = { 0 };
const void *pUserData = NULL;
int nBytes = 0;
if (bitbuf.ReadOneBit() != 0)
{
if (data->isUserDataFixedSize)
{
nBytes = data->userDataSize;
tempbuf[nBytes - 1] = 0;
bitbuf.ReadBits(tempbuf, data->userDataSizeBits);
}
else
{
nBytes = bitbuf.ReadUBitLong(MAX_USERDATA_BITS);
int nBytes = bitbuf.ReadUBitLong(MAX_USERDATA_BITS);
bitbuf.ReadBytes(tempbuf, nBytes);
}
pUserData = tempbuf;