diff --git a/engine/client/cl_events.c b/engine/client/cl_events.c index 75c0516b..3dff5921 100644 --- a/engine/client/cl_events.c +++ b/engine/client/cl_events.c @@ -393,7 +393,7 @@ void CL_ParseEvent( sizebuf_t *msg ) event_index = MSG_ReadUBitLong( msg, MAX_EVENT_BITS ); if( MSG_ReadOneBit( msg )) - packet_index = MSG_ReadUBitLong( msg, cls.legacymode?MAX_LEGACY_ENTITY_BITS:MAX_ENTITY_BITS ); + packet_index = MSG_ReadUBitLong( msg, cls.legacymode ? MAX_LEGACY_ENTITY_BITS : MAX_ENTITY_BITS ); else packet_index = -1; if( MSG_ReadOneBit( msg )) diff --git a/engine/client/cl_frame.c b/engine/client/cl_frame.c index 2d2f4e70..bf964fc6 100644 --- a/engine/client/cl_frame.c +++ b/engine/client/cl_frame.c @@ -721,7 +721,10 @@ int CL_ParsePacketEntities( sizebuf_t *msg, qboolean delta ) CL_WriteDemoJumpTime(); // sentinel count. save it for debug checking - count = cls.legacymode?MSG_ReadWord( msg ) : ( MSG_ReadUBitLong( msg, MAX_VISIBLE_PACKET_BITS ) + 1 ); + if( cls.legacymode ) + count = MSG_ReadWord( msg ); + else count = MSG_ReadUBitLong( msg, MAX_VISIBLE_PACKET_BITS ) + 1; + newframe = &cl.frames[cl.parsecountmod]; // allocate parse entities @@ -795,8 +798,19 @@ int CL_ParsePacketEntities( sizebuf_t *msg, qboolean delta ) while( 1 ) { - newnum = cls.legacymode ? MSG_ReadWord( msg ) : MSG_ReadUBitLong( msg, MAX_ENTITY_BITS ); - if( newnum == (cls.legacymode?0:LAST_EDICT) ) break; // end of packet entities + int lastedict; + if( cls.legacymode ) + { + newnum = MSG_ReadWord( msg ); + lastedict = 0; + } + else + { + newnum = MSG_ReadUBitLong( msg, MAX_ENTITY_BITS ); + lastedict = LAST_EDICT; + } + + if( newnum == lastedict ) break; // end of packet entities if( MSG_CheckOverflow( msg )) Host_Error( "CL_ParsePacketEntities: overflow\n" ); player = CL_IsPlayerIndex( newnum ); diff --git a/engine/client/cl_parse.c b/engine/client/cl_parse.c index d4f2e8c4..f864ac16 100644 --- a/engine/client/cl_parse.c +++ b/engine/client/cl_parse.c @@ -1128,7 +1128,7 @@ void CL_ParseClientData( sizebuf_t *msg ) if( !MSG_ReadOneBit( msg )) break; // read the weapon idx - idx = MSG_ReadUBitLong( msg, cls.legacymode?MAX_LEGACY_WEAPON_BITS:MAX_WEAPON_BITS ); + idx = MSG_ReadUBitLong( msg, cls.legacymode ? MAX_LEGACY_WEAPON_BITS : MAX_WEAPON_BITS ); MSG_ReadWeaponData( msg, &from_wd[idx], &to_wd[idx], cl.mtime[0] ); } @@ -1295,14 +1295,26 @@ register new user message or update existing void CL_RegisterUserMessage( sizebuf_t *msg ) { char *pszName; - int svc_num, size; + int svc_num, size, bits; svc_num = MSG_ReadByte( msg ); - size = cls.legacymode?MSG_ReadByte( msg ):MSG_ReadWord( msg ); + + if( cls.legacymode ) + { + size = MSG_ReadByte( msg ); + bits = 8; + } + else + { + size = MSG_ReadWord( msg ); + bits = 16; + } + pszName = MSG_ReadString( msg ); // important stuff - if( size == (cls.legacymode?0xFF:0xFFFF) ) size = -1; + if( size == ( BIT( bits ) - 1 ) ) + size = -1; svc_num = bound( 0, svc_num, 255 ); CL_LinkUserMessage( pszName, svc_num, size ); @@ -1958,7 +1970,13 @@ void CL_ParseUserMessage( sizebuf_t *msg, int svc_num ) iSize = clgame.msg[i].size; // message with variable sizes receive an actual size as first byte - if( iSize == -1 ) iSize = cls.legacymode?MSG_ReadByte( msg ):MSG_ReadWord( msg ); + if( iSize == -1 ) + { + if( cls.legacymode ) + iSize = MSG_ReadByte( msg ); + else iSize = MSG_ReadWord( msg ); + } + if( iSize >= MAX_USERMSG_LENGTH ) { Msg("WTF??? %d %d\n", i, svc_num ); diff --git a/engine/client/cl_tent.c b/engine/client/cl_tent.c index d9314195..53529be9 100644 --- a/engine/client/cl_tent.c +++ b/engine/client/cl_tent.c @@ -2024,7 +2024,7 @@ void CL_ParseTempEntity( sizebuf_t *msg ) { sizebuf_t buf; byte pbuf[256]; - int iSize = cls.legacymode?MSG_ReadByte( msg ):MSG_ReadWord( msg ); + int iSize; int type, color, count, flags; int decalIndex, modelIndex, entityIndex; float scale, life, frameRate, vel, random; @@ -2035,6 +2035,10 @@ void CL_ParseTempEntity( sizebuf_t *msg ) cl_entity_t *pEnt; dlight_t *dl; + if( cls.legacymode ) + iSize = MSG_ReadByte( msg ); + else iSize = MSG_ReadWord( msg ); + decalIndex = modelIndex = entityIndex = 0; // parse user message into buffer diff --git a/engine/common/net_encode.c b/engine/common/net_encode.c index 5cbedf89..5cdac1e6 100644 --- a/engine/common/net_encode.c +++ b/engine/common/net_encode.c @@ -1890,7 +1890,7 @@ qboolean MSG_ReadDeltaEntity( sizebuf_t *msg, entity_state_t *from, entity_state to->entityType = MSG_ReadUBitLong( msg, 2 ); to->number = number; - if( cls.legacymode?(to->entityType == ENTITY_BEAM):FBitSet(to->entityType, ENTITY_BEAM) ) + if( cls.legacymode ? ( to->entityType == ENTITY_BEAM ) : FBitSet( to->entityType, ENTITY_BEAM )) { dt = Delta_FindStruct( "custom_entity_state_t" ); }