mirror of
https://github.com/nzp-team/glquake.git
synced 2024-11-10 06:31:35 +00:00
Match cl_parse.c with dquakeplus
This commit is contained in:
parent
648170fd26
commit
44600071d6
1 changed files with 208 additions and 131 deletions
|
@ -21,8 +21,10 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
|
|
||||||
#include "quakedef.h"
|
#include "quakedef.h"
|
||||||
|
|
||||||
extern qboolean domaxammo;
|
extern qboolean domaxammo;
|
||||||
qboolean crosshair_pulse_grenade;
|
qboolean crosshair_pulse_grenade;
|
||||||
|
|
||||||
|
extern int EN_Find(int num,char *string);
|
||||||
|
|
||||||
char *svc_strings[] =
|
char *svc_strings[] =
|
||||||
{
|
{
|
||||||
|
@ -75,9 +77,8 @@ char *svc_strings[] =
|
||||||
"svc_fog", // 41 // [byte] start [byte] end [byte] red [byte] green [byte] blue [float] time
|
"svc_fog", // 41 // [byte] start [byte] end [byte] red [byte] green [byte] blue [float] time
|
||||||
"svc_bspdecal", //42 // [string] name [byte] decal_size [coords] pos
|
"svc_bspdecal", //42 // [string] name [byte] decal_size [coords] pos
|
||||||
"svc_achievement", //43
|
"svc_achievement", //43
|
||||||
"svc_songegg", //44 [string] track name
|
"svc_maxammo" //44
|
||||||
"svc_maxammo", //45
|
//"svc_pulse" //45
|
||||||
"svc_pulse" //46
|
|
||||||
};
|
};
|
||||||
|
|
||||||
//=============================================================================
|
//=============================================================================
|
||||||
|
@ -148,6 +149,36 @@ void CL_ParseStartSoundPacket(void)
|
||||||
S_StartSound (ent, channel, cl.sound_precache[sound_num], pos, volume/255.0, attenuation);
|
S_StartSound (ent, channel, cl.sound_precache[sound_num], pos, volume/255.0, attenuation);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
==================
|
||||||
|
CL_ParseBSPDecal
|
||||||
|
|
||||||
|
Spawn decals on map
|
||||||
|
Crow_bar.
|
||||||
|
==================
|
||||||
|
*/
|
||||||
|
void CL_ParseBSPDecal (void)
|
||||||
|
{
|
||||||
|
#ifdef __PSP__
|
||||||
|
vec3_t pos;
|
||||||
|
int decal_size;
|
||||||
|
char *texname;
|
||||||
|
|
||||||
|
texname = MSG_ReadString ();
|
||||||
|
decal_size = MSG_ReadByte ();
|
||||||
|
pos[0] = MSG_ReadCoord ();
|
||||||
|
pos[1] = MSG_ReadCoord ();
|
||||||
|
pos[2] = MSG_ReadCoord ();
|
||||||
|
|
||||||
|
if(!texname)
|
||||||
|
return;
|
||||||
|
|
||||||
|
Con_Printf("BSPDECAL[tex: %s size: %i pos: %f %f %f]\n", texname, decal_size, pos[0], pos[1], pos[2]);
|
||||||
|
|
||||||
|
R_SpawnDecalBSP(pos, texname, decal_size);
|
||||||
|
#endif // __PSP__
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
==================
|
==================
|
||||||
CL_KeepaliveMessage
|
CL_KeepaliveMessage
|
||||||
|
@ -158,20 +189,30 @@ so the server doesn't disconnect.
|
||||||
*/
|
*/
|
||||||
void CL_KeepaliveMessage (void)
|
void CL_KeepaliveMessage (void)
|
||||||
{
|
{
|
||||||
float time;
|
double time;
|
||||||
static float lastmsg;
|
static double lastmsg;//BLUBSFIX, this was a float
|
||||||
int ret;
|
int ret;
|
||||||
sizebuf_t old;
|
sizebuf_t old;
|
||||||
byte olddata[8192];
|
byte olddata[8192];
|
||||||
|
|
||||||
if (sv.active)
|
if (sv.active)
|
||||||
|
{
|
||||||
|
//Con_Printf("Active Server...exit keepalive\n");
|
||||||
return; // no need if server is local
|
return; // no need if server is local
|
||||||
|
}
|
||||||
if (cls.demoplayback)
|
if (cls.demoplayback)
|
||||||
|
{
|
||||||
|
//Con_Printf("Demo Playback...exit keepalive\n");
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// read messages from server, should just be nops
|
// read messages from server, should just be nops
|
||||||
old = net_message;
|
old = net_message;
|
||||||
memcpy (olddata, net_message.data, net_message.cursize);
|
#ifdef PSP_VFPU
|
||||||
|
memcpy_vfpu(olddata, net_message.data, net_message.cursize);
|
||||||
|
#else
|
||||||
|
memcpy(olddata, net_message.data, net_message.cursize);
|
||||||
|
#endif // PSP_VFPU
|
||||||
|
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
|
@ -193,12 +234,18 @@ void CL_KeepaliveMessage (void)
|
||||||
} while (ret);
|
} while (ret);
|
||||||
|
|
||||||
net_message = old;
|
net_message = old;
|
||||||
memcpy (net_message.data, olddata, net_message.cursize);
|
#ifdef PSP_VFPU
|
||||||
|
memcpy_vfpu(net_message.data, olddata, net_message.cursize);
|
||||||
|
#else
|
||||||
|
memcpy(net_message.data, olddata, net_message.cursize);
|
||||||
|
#endif // PSP_VFPU
|
||||||
|
|
||||||
// check time
|
// check time
|
||||||
time = Sys_FloatTime ();
|
time = Sys_FloatTime ();
|
||||||
if (time - lastmsg < 5)
|
if (time - lastmsg < 5)
|
||||||
return;
|
return;
|
||||||
|
//Con_Printf("Time since last keepAlive msg = %f\n",time - lastmsg);
|
||||||
|
|
||||||
lastmsg = time;
|
lastmsg = time;
|
||||||
|
|
||||||
// write out a nop
|
// write out a nop
|
||||||
|
@ -214,15 +261,29 @@ void CL_KeepaliveMessage (void)
|
||||||
CL_ParseServerInfo
|
CL_ParseServerInfo
|
||||||
==================
|
==================
|
||||||
*/
|
*/
|
||||||
|
int has_pap;
|
||||||
|
int has_perk_revive;
|
||||||
|
int has_perk_juggernog;
|
||||||
|
int has_perk_speedcola;
|
||||||
|
int has_perk_doubletap;
|
||||||
|
int has_perk_staminup;
|
||||||
|
int has_perk_flopper;
|
||||||
|
int has_perk_deadshot;
|
||||||
|
int has_perk_mulekick;
|
||||||
void CL_ParseServerInfo (void)
|
void CL_ParseServerInfo (void)
|
||||||
{
|
{
|
||||||
char *str;
|
char *str, tempname[MAX_QPATH];;
|
||||||
int i;
|
int i;
|
||||||
int nummodels, numsounds;
|
int nummodels, numsounds;
|
||||||
char model_precache[MAX_MODELS][MAX_QPATH];
|
char model_precache[MAX_MODELS][MAX_QPATH];
|
||||||
char sound_precache[MAX_SOUNDS][MAX_QPATH];
|
char sound_precache[MAX_SOUNDS][MAX_QPATH];
|
||||||
|
|
||||||
|
//void R_PreMapLoad (char *);
|
||||||
|
|
||||||
|
//char mapname[MAX_QPATH];
|
||||||
|
|
||||||
Con_DPrintf ("Serverinfo packet received.\n");
|
Con_DPrintf ("Serverinfo packet received.\n");
|
||||||
|
//Con_Printf ("Serverinfo packet received.\n");
|
||||||
//
|
//
|
||||||
// wipe the client_state_t struct
|
// wipe the client_state_t struct
|
||||||
//
|
//
|
||||||
|
@ -266,19 +327,36 @@ void CL_ParseServerInfo (void)
|
||||||
for (i=0 ; i<NUM_MODELINDEX ; i++)
|
for (i=0 ; i<NUM_MODELINDEX ; i++)
|
||||||
cl_modelindex[i] = -1;
|
cl_modelindex[i] = -1;
|
||||||
|
|
||||||
|
has_pap = EN_Find(0,"perk_pap");
|
||||||
|
has_perk_revive = EN_Find(0, "perk_revive");
|
||||||
|
has_perk_juggernog = EN_Find(0, "perk_juggernog");
|
||||||
|
has_perk_speedcola = EN_Find(0, "perk_speed");
|
||||||
|
has_perk_doubletap = EN_Find(0, "perk_double");
|
||||||
|
has_perk_staminup = EN_Find(0, "perk_staminup");
|
||||||
|
has_perk_flopper = EN_Find(0, "perk_flopper");
|
||||||
|
has_perk_deadshot = EN_Find(0, "perk_deadshot");
|
||||||
|
has_perk_mulekick = EN_Find(0, "perk_mule");
|
||||||
|
|
||||||
|
|
||||||
// precache models
|
// precache models
|
||||||
memset (cl.model_precache, 0, sizeof(cl.model_precache));
|
memset (cl.model_precache, 0, sizeof(cl.model_precache));
|
||||||
|
//Con_Printf("GotModelsToLoad: ");
|
||||||
for (nummodels=1 ; ; nummodels++)
|
for (nummodels=1 ; ; nummodels++)
|
||||||
{
|
{
|
||||||
str = MSG_ReadString ();
|
str = MSG_ReadString ();
|
||||||
|
|
||||||
if (!str[0])
|
if (!str[0])
|
||||||
break;
|
break;
|
||||||
|
|
||||||
if (nummodels==MAX_MODELS)
|
if (nummodels==MAX_MODELS)
|
||||||
{
|
{
|
||||||
Con_Printf ("Server sent too many model precaches\n");
|
Con_Printf ("Server sent too many model precaches\n");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
strcpy (model_precache[nummodels], str);
|
|
||||||
|
Q_strncpyz (model_precache[nummodels], str, sizeof(model_precache[nummodels]));
|
||||||
|
//Con_Printf("%i,",nummodels);
|
||||||
|
|
||||||
Mod_TouchModel (str);
|
Mod_TouchModel (str);
|
||||||
|
|
||||||
if (!strcmp(model_precache[nummodels], "models/player.mdl"))
|
if (!strcmp(model_precache[nummodels], "models/player.mdl"))
|
||||||
|
@ -287,12 +365,14 @@ void CL_ParseServerInfo (void)
|
||||||
cl_modelindex[mi_flame1] = nummodels;
|
cl_modelindex[mi_flame1] = nummodels;
|
||||||
else if (!strcmp(model_precache[nummodels], "progs/flame2.mdl"))
|
else if (!strcmp(model_precache[nummodels], "progs/flame2.mdl"))
|
||||||
cl_modelindex[mi_flame2] = nummodels;
|
cl_modelindex[mi_flame2] = nummodels;
|
||||||
}
|
}
|
||||||
|
|
||||||
// precache sounds
|
// precache sounds
|
||||||
|
//Con_Printf("Got Sounds to load: ");
|
||||||
memset (cl.sound_precache, 0, sizeof(cl.sound_precache));
|
memset (cl.sound_precache, 0, sizeof(cl.sound_precache));
|
||||||
for (numsounds=1 ; ; numsounds++)
|
for (numsounds=1 ; ; numsounds++)
|
||||||
{
|
{
|
||||||
|
|
||||||
str = MSG_ReadString ();
|
str = MSG_ReadString ();
|
||||||
if (!str[0])
|
if (!str[0])
|
||||||
break;
|
break;
|
||||||
|
@ -303,7 +383,11 @@ void CL_ParseServerInfo (void)
|
||||||
}
|
}
|
||||||
strcpy (sound_precache[numsounds], str);
|
strcpy (sound_precache[numsounds], str);
|
||||||
S_TouchSound (str);
|
S_TouchSound (str);
|
||||||
|
//Con_Printf("%i,",numsounds);
|
||||||
}
|
}
|
||||||
|
//Con_Printf("\n");
|
||||||
|
//COM_StripExtension (COM_SkipPath(model_precache[1]), mapname);
|
||||||
|
//R_PreMapLoad (mapname);
|
||||||
|
|
||||||
//
|
//
|
||||||
// now we try to load everything else until a cache allocation fails
|
// now we try to load everything else until a cache allocation fails
|
||||||
|
@ -312,35 +396,49 @@ void CL_ParseServerInfo (void)
|
||||||
loading_num_step = loading_num_step +nummodels + numsounds;
|
loading_num_step = loading_num_step +nummodels + numsounds;
|
||||||
loading_step = 1;
|
loading_step = 1;
|
||||||
|
|
||||||
for (i=1 ; i<nummodels ; i++)
|
//Con_Printf("Loaded Model: ");
|
||||||
|
|
||||||
|
for (i=1 ; i<nummodels ; i++)
|
||||||
{
|
{
|
||||||
cl.model_precache[i] = Mod_ForName (model_precache[i], false);
|
cl.model_precache[i] = Mod_ForName (model_precache[i], false);
|
||||||
if (cl.model_precache[i] == NULL)
|
if (cl.model_precache[i] == NULL)
|
||||||
{
|
{
|
||||||
Con_Printf("Model %s not found\n", model_precache[i]);
|
Con_Printf("Model %s not found\n", model_precache[i]);
|
||||||
loading_cur_step++;
|
loading_cur_step++;
|
||||||
//return;
|
return;
|
||||||
}
|
}
|
||||||
CL_KeepaliveMessage ();
|
CL_KeepaliveMessage ();
|
||||||
loading_cur_step++;
|
loading_cur_step++;
|
||||||
strcpy(loading_name, model_precache[i]);
|
strcpy(loading_name, model_precache[i]);
|
||||||
|
//Con_Printf("%i,",i);
|
||||||
SCR_UpdateScreen ();
|
SCR_UpdateScreen ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Con_Printf("\n");
|
||||||
|
//Con_Printf("Total Models loaded: %i\n",nummodels);
|
||||||
SCR_UpdateScreen ();
|
SCR_UpdateScreen ();
|
||||||
|
|
||||||
|
// load the extra "no-flamed-torch" model
|
||||||
|
//cl.model_precache[nummodels] = Mod_ForName ("progs/flame0.mdl", false);
|
||||||
|
//cl_modelindex[mi_flame0] = nummodels++;
|
||||||
|
|
||||||
loading_step = 4;
|
loading_step = 4;
|
||||||
|
|
||||||
S_BeginPrecaching ();
|
S_BeginPrecaching ();
|
||||||
|
//Con_Printf("Loaded Sounds: ");
|
||||||
for (i=1 ; i<numsounds ; i++)
|
for (i=1 ; i<numsounds ; i++)
|
||||||
{
|
{
|
||||||
cl.sound_precache[i] = S_PrecacheSound (sound_precache[i]);
|
cl.sound_precache[i] = S_PrecacheSound (sound_precache[i]);
|
||||||
CL_KeepaliveMessage ();
|
CL_KeepaliveMessage ();
|
||||||
loading_cur_step++;
|
loading_cur_step++;
|
||||||
|
//Con_Printf("%i,",i);
|
||||||
strcpy(loading_name, sound_precache[i]);
|
strcpy(loading_name, sound_precache[i]);
|
||||||
SCR_UpdateScreen ();
|
SCR_UpdateScreen ();
|
||||||
}
|
}
|
||||||
S_EndPrecaching ();
|
S_EndPrecaching ();
|
||||||
|
|
||||||
|
//Con_Printf("...\n");
|
||||||
|
//Con_Printf("Total Sounds Loaded: %i\n",numsounds);
|
||||||
SCR_UpdateScreen ();
|
SCR_UpdateScreen ();
|
||||||
|
|
||||||
Clear_LoadingFill ();
|
Clear_LoadingFill ();
|
||||||
|
@ -376,13 +474,16 @@ void CL_ParseUpdate (int bits)
|
||||||
qboolean forcelink;
|
qboolean forcelink;
|
||||||
entity_t *ent;
|
entity_t *ent;
|
||||||
int num;
|
int num;
|
||||||
int skin;
|
//int skin;
|
||||||
|
|
||||||
if (cls.signon == SIGNONS - 1)
|
if (cls.signon == SIGNONS - 1)
|
||||||
{ // first update is the final signon stage
|
{ // first update is the final signon stage
|
||||||
|
Con_DPrintf("First Update\n");
|
||||||
cls.signon = SIGNONS;
|
cls.signon = SIGNONS;
|
||||||
CL_SignonReply ();
|
CL_SignonReply (); //disabling this temp-mortem
|
||||||
}
|
}
|
||||||
|
//Con_Printf("2\n");
|
||||||
|
|
||||||
|
|
||||||
if (bits & U_MOREBITS)
|
if (bits & U_MOREBITS)
|
||||||
{
|
{
|
||||||
|
@ -409,9 +510,9 @@ void CL_ParseUpdate (int bits)
|
||||||
|
|
||||||
ent = CL_EntityNum (num);
|
ent = CL_EntityNum (num);
|
||||||
|
|
||||||
for (i=0 ; i<16 ; i++)
|
for (i=0 ; i<16 ; i++)
|
||||||
if (bits&(1<<i))
|
if (bits&(1<<i))
|
||||||
bitcounts[i]++;
|
bitcounts[i]++;
|
||||||
|
|
||||||
if (ent->msgtime != cl.mtime[1])
|
if (ent->msgtime != cl.mtime[1])
|
||||||
forcelink = true; // no previous frame to lerp from
|
forcelink = true; // no previous frame to lerp from
|
||||||
|
@ -444,10 +545,6 @@ if (bits&(1<<i))
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
forcelink = true; // hack to make null model players work
|
forcelink = true; // hack to make null model players work
|
||||||
#ifdef GLQUAKE
|
|
||||||
if (num > 0 && num <= cl.maxclients)
|
|
||||||
R_TranslatePlayerSkin (num - 1);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (bits & U_FRAME)
|
if (bits & U_FRAME)
|
||||||
|
@ -480,7 +577,6 @@ if (bits&(1<<i))
|
||||||
// shift the known values for interpolation
|
// shift the known values for interpolation
|
||||||
VectorCopy (ent->msg_origins[0], ent->msg_origins[1]);
|
VectorCopy (ent->msg_origins[0], ent->msg_origins[1]);
|
||||||
VectorCopy (ent->msg_angles[0], ent->msg_angles[1]);
|
VectorCopy (ent->msg_angles[0], ent->msg_angles[1]);
|
||||||
|
|
||||||
if (bits & U_ORIGIN1)
|
if (bits & U_ORIGIN1)
|
||||||
ent->msg_origins[0][0] = MSG_ReadCoord ();
|
ent->msg_origins[0][0] = MSG_ReadCoord ();
|
||||||
else
|
else
|
||||||
|
@ -507,7 +603,6 @@ if (bits&(1<<i))
|
||||||
ent->msg_angles[0][2] = MSG_ReadAngle();
|
ent->msg_angles[0][2] = MSG_ReadAngle();
|
||||||
else
|
else
|
||||||
ent->msg_angles[0][2] = ent->baseline.angles[2];
|
ent->msg_angles[0][2] = ent->baseline.angles[2];
|
||||||
|
|
||||||
// Tomaz - QC Alpha Scale Glow Begin
|
// Tomaz - QC Alpha Scale Glow Begin
|
||||||
if (bits & U_RENDERAMT)
|
if (bits & U_RENDERAMT)
|
||||||
ent->renderamt = MSG_ReadFloat();
|
ent->renderamt = MSG_ReadFloat();
|
||||||
|
@ -540,7 +635,7 @@ if (bits&(1<<i))
|
||||||
else
|
else
|
||||||
ent->scale = ENTSCALE_DEFAULT;
|
ent->scale = ENTSCALE_DEFAULT;
|
||||||
|
|
||||||
if ( bits & U_NOLERP )
|
if ( bits & U_NOLERP )//there's no data for nolerp, it is the value itself
|
||||||
ent->forcelink = true;
|
ent->forcelink = true;
|
||||||
|
|
||||||
if ( forcelink )
|
if ( forcelink )
|
||||||
|
@ -573,7 +668,6 @@ void CL_ParseBaseline (entity_t *ent)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
==================
|
==================
|
||||||
CL_ParseClientdata
|
CL_ParseClientdata
|
||||||
|
@ -957,7 +1051,6 @@ void CL_ParseStaticSound (void)
|
||||||
S_StaticSound (cl.sound_precache[sound_num], org, vol, atten);
|
S_StaticSound (cl.sound_precache[sound_num], org, vol, atten);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
extern double Hitmark_Time;
|
extern double Hitmark_Time;
|
||||||
extern int crosshair_spread;
|
extern int crosshair_spread;
|
||||||
extern double crosshair_spread_time;
|
extern double crosshair_spread_time;
|
||||||
|
@ -980,8 +1073,8 @@ void CL_ParseWeaponFire (void)
|
||||||
cl.gun_kick[0] += kick[0];
|
cl.gun_kick[0] += kick[0];
|
||||||
cl.gun_kick[1] += kick[1];
|
cl.gun_kick[1] += kick[1];
|
||||||
cl.gun_kick[2] += kick[2];
|
cl.gun_kick[2] += kick[2];
|
||||||
}
|
|
||||||
|
|
||||||
|
}
|
||||||
/*
|
/*
|
||||||
===================
|
===================
|
||||||
CL_ParseLimbUpdate
|
CL_ParseLimbUpdate
|
||||||
|
@ -1007,15 +1100,20 @@ void CL_ParseLimbUpdate (void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#define SHOWNET(x) if(cl_shownet.value==2)Con_Printf ("%3i:%s\n", msg_readcount-1, x);
|
#define SHOWNET(x) if(cl_shownet.value==2)Con_Printf ("%3i:%s\n", msg_readcount-1, x);
|
||||||
|
|
||||||
|
/*
|
||||||
|
=====================
|
||||||
|
CL_ParseServerMessage
|
||||||
|
=====================
|
||||||
|
*/
|
||||||
extern double bettyprompt_time;
|
extern double bettyprompt_time;
|
||||||
extern qboolean doubletap_has_damage_buff;
|
extern qboolean doubletap_has_damage_buff;
|
||||||
void CL_ParseServerMessage (void)
|
void CL_ParseServerMessage (void)
|
||||||
{
|
{
|
||||||
int cmd;
|
int cmd;
|
||||||
int i;
|
int i;
|
||||||
int total, j, lastcmd; //johnfitz
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// if recording demos, copy the message out
|
// if recording demos, copy the message out
|
||||||
|
@ -1045,10 +1143,10 @@ void CL_ParseServerMessage (void)
|
||||||
}
|
}
|
||||||
|
|
||||||
// if the high bit of the command byte is set, it is a fast update
|
// if the high bit of the command byte is set, it is a fast update
|
||||||
if (cmd & 128)
|
if (cmd & 128)//checking if it's an entity update, if it is the 7th bit will be on, this is checking for that
|
||||||
{
|
{
|
||||||
SHOWNET("fast update");
|
SHOWNET("fast update");
|
||||||
CL_ParseUpdate (cmd&127);
|
CL_ParseUpdate (cmd&127);//here we strip the cmd from the value of the 7th (128) bit, to only give the rest of the commands
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1058,11 +1156,10 @@ void CL_ParseServerMessage (void)
|
||||||
switch (cmd)
|
switch (cmd)
|
||||||
{
|
{
|
||||||
default:
|
default:
|
||||||
Host_Error ("CL_ParseServerMessage: Illegible server message: cmd = %d\n", cmd);
|
Host_Error ("CL_ParseServerMessage: Illegible server message (%i)\n", cmd);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case svc_nop:
|
case svc_nop:
|
||||||
// Con_Printf ("svc_nop\n");
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case svc_time:
|
case svc_time:
|
||||||
|
@ -1095,7 +1192,6 @@ void CL_ParseServerMessage (void)
|
||||||
case svc_useprint:
|
case svc_useprint:
|
||||||
SCR_UsePrint (MSG_ReadByte (),MSG_ReadShort (),MSG_ReadByte ());
|
SCR_UsePrint (MSG_ReadByte (),MSG_ReadShort (),MSG_ReadByte ());
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case svc_maxammo:
|
case svc_maxammo:
|
||||||
domaxammo = true;
|
domaxammo = true;
|
||||||
break;
|
break;
|
||||||
|
@ -1140,11 +1236,6 @@ void CL_ParseServerMessage (void)
|
||||||
case svc_stufftext:
|
case svc_stufftext:
|
||||||
Cbuf_AddText (MSG_ReadString ());
|
Cbuf_AddText (MSG_ReadString ());
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case svc_damage:
|
|
||||||
V_ParseDamage ();
|
|
||||||
break;
|
|
||||||
|
|
||||||
case svc_serverinfo:
|
case svc_serverinfo:
|
||||||
CL_ParseServerInfo ();
|
CL_ParseServerInfo ();
|
||||||
vid.recalc_refdef = true; // leave intermission full screen
|
vid.recalc_refdef = true; // leave intermission full screen
|
||||||
|
@ -1163,23 +1254,8 @@ void CL_ParseServerMessage (void)
|
||||||
i = MSG_ReadByte ();
|
i = MSG_ReadByte ();
|
||||||
if (i >= MAX_LIGHTSTYLES)
|
if (i >= MAX_LIGHTSTYLES)
|
||||||
Sys_Error ("svc_lightstyle > MAX_LIGHTSTYLES");
|
Sys_Error ("svc_lightstyle > MAX_LIGHTSTYLES");
|
||||||
q_strlcpy (cl_lightstyle[i].map, MSG_ReadString(), MAX_STYLESTRING);
|
Q_strcpy (cl_lightstyle[i].map, MSG_ReadString());
|
||||||
cl_lightstyle[i].length = Q_strlen(cl_lightstyle[i].map);
|
cl_lightstyle[i].length = Q_strlen(cl_lightstyle[i].map);
|
||||||
//johnfitz -- save extra info
|
|
||||||
if (cl_lightstyle[i].length)
|
|
||||||
{
|
|
||||||
total = 0;
|
|
||||||
cl_lightstyle[i].peak = 'a';
|
|
||||||
for (j=0; j<cl_lightstyle[i].length; j++)
|
|
||||||
{
|
|
||||||
total += cl_lightstyle[i].map[j] - 'a';
|
|
||||||
cl_lightstyle[i].peak = fmax(cl_lightstyle[i].peak, cl_lightstyle[i].map[j]);
|
|
||||||
}
|
|
||||||
cl_lightstyle[i].average = total / cl_lightstyle[i].length + 'a';
|
|
||||||
}
|
|
||||||
else
|
|
||||||
cl_lightstyle[i].average = cl_lightstyle[i].peak = 'm';
|
|
||||||
//johnfitz
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case svc_sound:
|
case svc_sound:
|
||||||
|
@ -1192,13 +1268,27 @@ void CL_ParseServerMessage (void)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case svc_updatename:
|
case svc_updatename:
|
||||||
Sbar_Changed ();
|
|
||||||
i = MSG_ReadByte ();
|
i = MSG_ReadByte ();
|
||||||
if (i >= cl.maxclients)
|
if (i >= cl.maxclients)
|
||||||
Host_Error ("CL_ParseServerMessage: svc_updatename > MAX_SCOREBOARD");
|
Host_Error ("CL_ParseServerMessage: svc_updatename > MAX_SCOREBOARD");
|
||||||
strcpy (cl.scores[i].name, MSG_ReadString ());
|
strcpy (cl.scores[i].name, MSG_ReadString ());
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case svc_updatepoints:
|
||||||
|
i = MSG_ReadByte ();
|
||||||
|
if (i >= cl.maxclients)
|
||||||
|
Host_Error ("CL_ParseServerMessage: svc_updatepoints > MAX_SCOREBOARD");
|
||||||
|
cl.scores[i].points = MSG_ReadLong ();
|
||||||
|
break;
|
||||||
|
|
||||||
|
case svc_updatekills:
|
||||||
|
i = MSG_ReadByte ();
|
||||||
|
if (i >= cl.maxclients)
|
||||||
|
Host_Error ("CL_ParseServerMessage: svc_updatepoints > MAX_SCOREBOARD");
|
||||||
|
cl.scores[i].kills = MSG_ReadShort ();
|
||||||
|
break;
|
||||||
|
|
||||||
|
|
||||||
case svc_particle:
|
case svc_particle:
|
||||||
R_ParseParticleEffect ();
|
R_ParseParticleEffect ();
|
||||||
break;
|
break;
|
||||||
|
@ -1222,16 +1312,10 @@ void CL_ParseServerMessage (void)
|
||||||
if (cl.paused)
|
if (cl.paused)
|
||||||
{
|
{
|
||||||
CDAudio_Pause ();
|
CDAudio_Pause ();
|
||||||
#ifdef _WIN32
|
|
||||||
VID_HandlePause (true);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
CDAudio_Resume ();
|
CDAudio_Resume ();
|
||||||
#ifdef _WIN32
|
|
||||||
VID_HandlePause (false);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -1241,6 +1325,7 @@ void CL_ParseServerMessage (void)
|
||||||
if (i <= cls.signon)
|
if (i <= cls.signon)
|
||||||
Host_Error ("Received signon %i when at %i", i, cls.signon);
|
Host_Error ("Received signon %i when at %i", i, cls.signon);
|
||||||
cls.signon = i;
|
cls.signon = i;
|
||||||
|
Con_DPrintf("Signon: %i \n",i);
|
||||||
CL_SignonReply ();
|
CL_SignonReply ();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -1248,7 +1333,7 @@ void CL_ParseServerMessage (void)
|
||||||
i = MSG_ReadByte ();
|
i = MSG_ReadByte ();
|
||||||
if (i < 0 || i >= MAX_CL_STATS)
|
if (i < 0 || i >= MAX_CL_STATS)
|
||||||
Sys_Error ("svc_updatestat: %i is invalid", i);
|
Sys_Error ("svc_updatestat: %i is invalid", i);
|
||||||
cl.stats[i] = MSG_ReadLong ();;
|
cl.stats[i] = MSG_ReadLong ();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case svc_spawnstaticsound:
|
case svc_spawnstaticsound:
|
||||||
|
@ -1258,10 +1343,6 @@ void CL_ParseServerMessage (void)
|
||||||
case svc_cdtrack:
|
case svc_cdtrack:
|
||||||
cl.cdtrack = MSG_ReadByte ();
|
cl.cdtrack = MSG_ReadByte ();
|
||||||
cl.looptrack = MSG_ReadByte ();
|
cl.looptrack = MSG_ReadByte ();
|
||||||
if ( (cls.demoplayback || cls.demorecording) && (cls.forcetrack != -1) )
|
|
||||||
CDAudio_Play ((byte)cls.forcetrack, true);
|
|
||||||
else
|
|
||||||
CDAudio_Play ((byte)cl.cdtrack, true);
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case svc_intermission:
|
case svc_intermission:
|
||||||
|
@ -1288,6 +1369,13 @@ void CL_ParseServerMessage (void)
|
||||||
Cmd_ExecuteString ("help", src_command);
|
Cmd_ExecuteString ("help", src_command);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case svc_skybox:
|
||||||
|
Sky_LoadSkyBox(MSG_ReadString());
|
||||||
|
break;
|
||||||
|
case svc_fog:
|
||||||
|
Fog_ParseServerMessage ();
|
||||||
|
break;
|
||||||
|
|
||||||
case svc_achievement:
|
case svc_achievement:
|
||||||
HUD_Parse_Achievement (MSG_ReadByte());
|
HUD_Parse_Achievement (MSG_ReadByte());
|
||||||
break;
|
break;
|
||||||
|
@ -1304,19 +1392,8 @@ void CL_ParseServerMessage (void)
|
||||||
CL_ParseLimbUpdate();
|
CL_ParseLimbUpdate();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case svc_updatepoints:
|
case svc_bspdecal:
|
||||||
i = MSG_ReadByte ();
|
CL_ParseBSPDecal ();
|
||||||
if (i >= cl.maxclients)
|
|
||||||
Host_Error ("CL_ParseServerMessage: svc_updatepoints > MAX_SCOREBOARD");
|
|
||||||
cl.scores[i].points = MSG_ReadLong ();
|
|
||||||
|
|
||||||
break;
|
|
||||||
|
|
||||||
case svc_updatekills:
|
|
||||||
i = MSG_ReadByte ();
|
|
||||||
if (i >= cl.maxclients)
|
|
||||||
Host_Error ("CL_ParseServerMessage: svc_updatekills > MAX_SCOREBOARD");
|
|
||||||
cl.scores[i].kills = MSG_ReadShort ();
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue