diff options
author | Andrey Nazarov <skuller@skuller.net> | 2008-06-29 12:32:32 +0000 |
---|---|---|
committer | Andrey Nazarov <skuller@skuller.net> | 2008-06-29 12:32:32 +0000 |
commit | e826e5f176f21cd18b3bbc22887a266835ada57c (patch) | |
tree | d25a84a84f9168b16a77fe4ed8b169c9611bbb02 /source/cl_parse.c | |
parent | 491f1c100e860c45a5d2aa358d58f777cd1cf895 (diff) |
Added client and server side support for 32-bit solids.
New R1Q2 and Q2PRO minor protocol versions, 1905 and 1014.
Use environment variables for game and server features negotiation.
Relax restrictions on quake paths when searching inside pak files.
Made OSS subsystem cvar names consistent with core sound system conventions.
Misc latched cvar handling changes.
Diffstat (limited to 'source/cl_parse.c')
-rw-r--r-- | source/cl_parse.c | 24 |
1 files changed, 18 insertions, 6 deletions
diff --git a/source/cl_parse.c b/source/cl_parse.c index 20df0b3..28d52bb 100644 --- a/source/cl_parse.c +++ b/source/cl_parse.c @@ -271,6 +271,9 @@ 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 ); } @@ -744,9 +747,12 @@ static void CL_ParseGamestate( void ) { break; } if( index < 1 || index >= MAX_EDICTS ) { - Com_Error( ERR_DROP, "%s: bad baseline index: %d", + Com_Error( ERR_DROP, "%s: bad entity number: %d", __func__, index ); } + if( LONG_SOLID_SUPPORTED( cls.serverProtocol, cls.protocolVersion ) ) { + bits |= U_SOLID32; + } MSG_ParseDeltaEntity( NULL, &cl.baselines[index], index, bits ); } } @@ -817,7 +823,6 @@ static void CL_ParseServerData( void ) { cl.pmp.waterfriction = 1; cl.pmp.flyfriction = 9; cl.pmp.airaccelerate = 0; - cl.gametype = GT_DEATHMATCH; #ifdef PMOVE_HACK cl.pmp.highprec = qtrue; #endif @@ -853,7 +858,7 @@ static void CL_ParseServerData( void ) { "Current client version is %d.", i, PROTOCOL_VERSION_Q2PRO_CURRENT ); } cls.protocolVersion = i; - cl.gametype = MSG_ReadByte(); + MSG_ReadByte(); // used to be gametype cl.pmp.strafeHack = MSG_ReadByte(); cl.pmp.qwmod = MSG_ReadByte(); //atu QWMod cl.pmp.speedMultiplier = 2; @@ -903,7 +908,14 @@ static void CL_ParseBaseline( void ) { newnum = MSG_ParseEntityBits( &bits ); if( newnum < 1 || newnum >= MAX_EDICTS ) { - Com_Error( ERR_DROP, "CL_ParseBaseline: bad entity number %i", newnum ); + Com_Error( ERR_DROP, "%s: bad entity number: %d", __func__, newnum ); + } + if( cl_shownet->integer > 2 ) { + MSG_ShowDeltaEntityBits( bits ); + Com_Printf( "\n" ); + } + if( LONG_SOLID_SUPPORTED( cls.serverProtocol, cls.protocolVersion ) ) { + bits |= U_SOLID32; } MSG_ParseDeltaEntity( NULL, &cl.baselines[newnum], newnum, bits ); } @@ -1135,7 +1147,7 @@ static void CL_ParseStartSoundPacket( void ) { Com_DPrintf( "SERVER BUG: sound on entity %d last seen %d frames ago\n", ent, cl.frame.number - cl_entities[ent].serverframe ); } else { - Com_DPrintf( "SERVER BUG: sound on entity %d we have never seen\n", ent ); + Com_DPrintf( "SERVER BUG: sound on entity %d never seen before\n", ent ); } } // use entity number @@ -1478,7 +1490,7 @@ void CL_ParseServerMessage( void ) { case svc_serverdata: CL_ParseServerData(); - break; + continue; case svc_configstring: CL_ParseConfigString(); |