summaryrefslogtreecommitdiff
path: root/source/cl_parse.c
diff options
context:
space:
mode:
authorAndrey Nazarov <skuller@skuller.net>2008-06-29 12:32:32 +0000
committerAndrey Nazarov <skuller@skuller.net>2008-06-29 12:32:32 +0000
commite826e5f176f21cd18b3bbc22887a266835ada57c (patch)
treed25a84a84f9168b16a77fe4ed8b169c9611bbb02 /source/cl_parse.c
parent491f1c100e860c45a5d2aa358d58f777cd1cf895 (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.c24
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();