From c0c85e61cdaa1dbe7fb8990cea0938413c1568a2 Mon Sep 17 00:00:00 2001 From: Andrey Nazarov Date: Fri, 19 Jun 2009 21:49:15 +0000 Subject: New minor Q2PRO protocol version 1016. Write entity angles as shorts for Q2PRO clients for smooth ‘func_rotating’ movement. Got rid of U_SOLID32/U_MASK, use msgEsFlags_t exclusively. Always draw ‘paused’ pic when paused. Fixed server side game pausing. Use extended ‘solid’ field when creating baselines for clients with MSG_ES_LONGSOLID bit set. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- source/cl_parse.c | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) (limited to 'source/cl_parse.c') diff --git a/source/cl_parse.c b/source/cl_parse.c index 697d555..40f421f 100644 --- a/source/cl_parse.c +++ b/source/cl_parse.c @@ -258,10 +258,7 @@ static inline void CL_ParseDeltaEntity( server_frame_t *frame, MSG_ShowDeltaEntityBits( bits ); } - if( LONG_SOLID_SUPPORTED( cls.serverProtocol, cls.protocolVersion ) ) { - bits |= U_SOLID32; - } - MSG_ParseDeltaEntity( old, state, newnum, bits ); + MSG_ParseDeltaEntity( old, state, newnum, bits, cl.esFlags ); } /* @@ -725,10 +722,7 @@ static void CL_ParseBaseline( int index, int bits ) { MSG_ShowDeltaEntityBits( bits ); Com_Printf( "\n" ); } - if( LONG_SOLID_SUPPORTED( cls.serverProtocol, cls.protocolVersion ) ) { - bits |= U_SOLID32; - } - MSG_ParseDeltaEntity( NULL, &cl.baselines[index], index, bits ); + MSG_ParseDeltaEntity( NULL, &cl.baselines[index], index, bits, cl.esFlags ); } /* @@ -852,6 +846,9 @@ static void CL_ParseServerData( void ) { Com_DPrintf( "R1Q2 strafejump hack enabled\n" ); cl.pmp.strafehack = qtrue; } + if( cls.protocolVersion >= PROTOCOL_VERSION_R1Q2_LONG_SOLID ) { + cl.esFlags |= MSG_ES_LONGSOLID; + } cl.pmp.speedmult = 2; } else if( cls.serverProtocol == PROTOCOL_VERSION_Q2PRO ) { i = MSG_ReadShort(); @@ -873,6 +870,9 @@ static void CL_ParseServerData( void ) { Com_DPrintf( "Q2PRO QW mode enabled\n" ); PmoveEnableQW( &cl.pmp ); } + if( cls.protocolVersion >= PROTOCOL_VERSION_Q2PRO_LONG_SOLID ) { + cl.esFlags |= MSG_ES_LONGSOLID; + } if( cls.protocolVersion >= PROTOCOL_VERSION_Q2PRO_WATERJUMP_HACK ) { i = MSG_ReadByte(); if( i ) { @@ -880,6 +880,9 @@ static void CL_ParseServerData( void ) { cl.pmp.waterhack = qtrue; } } + if( cls.protocolVersion >= PROTOCOL_VERSION_Q2PRO_ANGLES16 ) { + cl.esFlags |= MSG_ES_ANGLES16; + } cl.pmp.speedmult = 2; cl.pmp.flyhack = qtrue; // fly hack is unconditionally enabled cl.pmp.flyfriction = 4; -- cgit v1.2.3