Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
/*
|
2000-02-03 10:56:46 +00:00
|
|
|
cl_parse.c - parse a message received from the server
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
Copyright (C) 1996-1997 Id Software, Inc.
|
2000-02-19 15:43:42 +00:00
|
|
|
Copyright (C) 1999,2000 contributors of the QuakeForge project
|
|
|
|
Please see the file "AUTHORS" for a list of contributors
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
|
|
|
|
This program is free software; you can redistribute it and/or
|
|
|
|
modify it under the terms of the GNU General Public License
|
|
|
|
as published by the Free Software Foundation; either version 2
|
|
|
|
of the License, or (at your option) any later version.
|
|
|
|
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
2000-03-19 15:59:51 +00:00
|
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
|
|
|
|
See the GNU General Public License for more details.
|
|
|
|
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
|
|
along with this program; if not, write to the Free Software
|
|
|
|
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
2000-02-19 15:43:42 +00:00
|
|
|
#include <qtypes.h>
|
2000-02-03 10:56:46 +00:00
|
|
|
#include <quakedef.h>
|
2000-02-19 15:43:42 +00:00
|
|
|
#include <model.h>
|
|
|
|
#include <pmove.h>
|
2000-01-29 18:46:26 +00:00
|
|
|
#include <console.h>
|
|
|
|
#include <mathlib.h>
|
2000-02-19 15:43:42 +00:00
|
|
|
#include <sound.h>
|
2000-01-29 18:46:26 +00:00
|
|
|
#include <cdaudio.h>
|
2000-02-19 15:43:42 +00:00
|
|
|
#include <sbar.h>
|
2000-01-29 18:46:26 +00:00
|
|
|
#include <screen.h>
|
2000-02-19 15:43:42 +00:00
|
|
|
#include <cvars.h>
|
2000-02-04 13:40:04 +00:00
|
|
|
#include <client.h>
|
|
|
|
#include <server.h>
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
|
2000-01-22 12:54:51 +00:00
|
|
|
void CL_ParseUpdate (int bits);
|
|
|
|
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
char *svc_strings[] =
|
|
|
|
{
|
|
|
|
"svc_bad",
|
|
|
|
"svc_nop",
|
|
|
|
"svc_disconnect",
|
|
|
|
"svc_updatestat",
|
|
|
|
"svc_version", // [long] server version
|
|
|
|
"svc_setview", // [short] entity number
|
|
|
|
"svc_sound", // <see code>
|
|
|
|
"svc_time", // [float] server time
|
|
|
|
"svc_print", // [string] null terminated string
|
|
|
|
"svc_stufftext", // [string] stuffed into client's console buffer
|
|
|
|
// the string should be \n terminated
|
|
|
|
"svc_setangle", // [vec3] set the view angle to this absolute value
|
2000-03-19 15:59:51 +00:00
|
|
|
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
"svc_serverinfo", // [long] version
|
|
|
|
// [string] signon string
|
|
|
|
// [string]..[0]model cache [string]...[0]sounds cache
|
|
|
|
// [string]..[0]item cache
|
|
|
|
"svc_lightstyle", // [byte] [string]
|
|
|
|
"svc_updatename", // [byte] [string]
|
|
|
|
"svc_updatefrags", // [byte] [short]
|
|
|
|
"svc_clientdata", // <shortbits + data>
|
|
|
|
"svc_stopsound", // <see code>
|
|
|
|
"svc_updatecolors", // [byte] [byte]
|
|
|
|
"svc_particle", // [vec3] <variable>
|
|
|
|
"svc_damage", // [byte] impact [byte] blood [vec3] from
|
2000-03-19 15:59:51 +00:00
|
|
|
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
"svc_spawnstatic",
|
|
|
|
"OBSOLETE svc_spawnbinary",
|
|
|
|
"svc_spawnbaseline",
|
2000-03-19 15:59:51 +00:00
|
|
|
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
"svc_temp_entity", // <variable>
|
|
|
|
"svc_setpause",
|
|
|
|
"svc_signonnum",
|
|
|
|
"svc_centerprint",
|
|
|
|
"svc_killedmonster",
|
|
|
|
"svc_foundsecret",
|
|
|
|
"svc_spawnstaticsound",
|
|
|
|
"svc_intermission",
|
|
|
|
"svc_finale", // [string] music [string] text
|
|
|
|
"svc_cdtrack", // [byte] track [byte] looptrack
|
|
|
|
"svc_sellscreen",
|
|
|
|
"svc_cutscene"
|
|
|
|
};
|
|
|
|
|
2000-02-12 05:08:37 +00:00
|
|
|
int parsecountmod;
|
|
|
|
double parsecounttime;
|
2000-02-19 15:43:42 +00:00
|
|
|
int cl_spikeindex, cl_playerindex, cl_flagindex;
|
2000-02-12 05:08:37 +00:00
|
|
|
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
//=============================================================================
|
|
|
|
|
|
|
|
/*
|
|
|
|
===============
|
|
|
|
CL_EntityNum
|
|
|
|
|
|
|
|
This error checks and tracks the total number of entities
|
|
|
|
===============
|
|
|
|
*/
|
2000-08-20 13:33:48 +00:00
|
|
|
entity_t *
|
|
|
|
CL_EntityNum ( int num )
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
{
|
|
|
|
if (num >= cl.num_entities)
|
|
|
|
{
|
|
|
|
if (num >= MAX_EDICTS)
|
|
|
|
Host_Error ("CL_EntityNum: %i is an invalid number",num);
|
|
|
|
while (cl.num_entities<=num)
|
|
|
|
{
|
|
|
|
cl_entities[cl.num_entities].colormap = vid.colormap;
|
|
|
|
cl.num_entities++;
|
|
|
|
}
|
|
|
|
}
|
2000-03-19 15:59:51 +00:00
|
|
|
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
return &cl_entities[num];
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
==================
|
|
|
|
CL_ParseStartSoundPacket
|
|
|
|
==================
|
|
|
|
*/
|
2000-08-20 13:33:48 +00:00
|
|
|
void
|
|
|
|
CL_ParseStartSoundPacket ( void )
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
{
|
2000-08-20 13:33:48 +00:00
|
|
|
vec3_t pos;
|
|
|
|
int channel, ent;
|
|
|
|
int sound_num;
|
|
|
|
int volume;
|
|
|
|
int field_mask;
|
|
|
|
float attenuation;
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
int i;
|
2000-03-19 15:59:51 +00:00
|
|
|
|
2000-08-20 13:33:48 +00:00
|
|
|
field_mask = MSG_ReadByte();
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
|
2000-08-20 13:33:48 +00:00
|
|
|
if (field_mask & SND_VOLUME)
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
volume = MSG_ReadByte ();
|
|
|
|
else
|
|
|
|
volume = DEFAULT_SOUND_PACKET_VOLUME;
|
2000-03-19 15:59:51 +00:00
|
|
|
|
2000-08-20 13:33:48 +00:00
|
|
|
if (field_mask & SND_ATTENUATION)
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
attenuation = MSG_ReadByte () / 64.0;
|
|
|
|
else
|
|
|
|
attenuation = DEFAULT_SOUND_PACKET_ATTENUATION;
|
2000-03-19 15:59:51 +00:00
|
|
|
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
channel = MSG_ReadShort ();
|
|
|
|
sound_num = MSG_ReadByte ();
|
|
|
|
|
|
|
|
ent = channel >> 3;
|
|
|
|
channel &= 7;
|
|
|
|
|
|
|
|
if (ent > MAX_EDICTS)
|
|
|
|
Host_Error ("CL_ParseStartSoundPacket: ent = %i", ent);
|
2000-03-19 15:59:51 +00:00
|
|
|
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
for (i=0 ; i<3 ; i++)
|
|
|
|
pos[i] = MSG_ReadCoord ();
|
2000-03-19 15:59:51 +00:00
|
|
|
|
2000-08-20 13:33:48 +00:00
|
|
|
S_StartSound (ent, channel, cl.sound_precache[sound_num], pos, volume/255.0, attenuation);
|
2000-03-19 15:59:51 +00:00
|
|
|
}
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
|
|
|
|
/*
|
|
|
|
==================
|
|
|
|
CL_KeepaliveMessage
|
|
|
|
|
|
|
|
When the client is taking a long time to load stuff, send keepalive messages
|
|
|
|
so the server doesn't disconnect.
|
|
|
|
==================
|
|
|
|
*/
|
2000-08-20 13:33:48 +00:00
|
|
|
void
|
|
|
|
CL_KeepaliveMessage ( void )
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
{
|
|
|
|
float time;
|
|
|
|
static float lastmsg;
|
|
|
|
int ret;
|
|
|
|
sizebuf_t old;
|
|
|
|
byte olddata[8192];
|
2000-03-19 15:59:51 +00:00
|
|
|
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
if (sv.active)
|
|
|
|
return; // no need if server is local
|
|
|
|
if (cls.demoplayback)
|
|
|
|
return;
|
|
|
|
|
|
|
|
// read messages from server, should just be nops
|
|
|
|
old = net_message;
|
|
|
|
memcpy (olddata, net_message.data, net_message.cursize);
|
2000-03-19 15:59:51 +00:00
|
|
|
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
do
|
|
|
|
{
|
|
|
|
ret = CL_GetMessage ();
|
|
|
|
switch (ret)
|
|
|
|
{
|
|
|
|
default:
|
2000-03-19 15:59:51 +00:00
|
|
|
Host_Error ("CL_KeepaliveMessage: CL_GetMessage failed");
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
case 0:
|
|
|
|
break; // nothing waiting
|
|
|
|
case 1:
|
|
|
|
Host_Error ("CL_KeepaliveMessage: received a message");
|
|
|
|
break;
|
|
|
|
case 2:
|
|
|
|
if (MSG_ReadByte() != svc_nop)
|
|
|
|
Host_Error ("CL_KeepaliveMessage: datagram wasn't a nop");
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
} while (ret);
|
|
|
|
|
|
|
|
net_message = old;
|
|
|
|
memcpy (net_message.data, olddata, net_message.cursize);
|
|
|
|
|
|
|
|
// check time
|
|
|
|
time = Sys_DoubleTime ();
|
|
|
|
if (time - lastmsg < 5)
|
|
|
|
return;
|
|
|
|
lastmsg = time;
|
|
|
|
|
|
|
|
// write out a nop
|
|
|
|
Con_Printf ("--> client to server keepalive\n");
|
|
|
|
|
2000-02-04 13:40:04 +00:00
|
|
|
MSG_WriteByte (&cls.netchan.message, clc_nop);
|
|
|
|
NET_SendMessage (cls.netcon, &cls.netchan.message);
|
|
|
|
SZ_Clear (&cls.netchan.message);
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
|
|
==================
|
|
|
|
CL_ParseServerInfo
|
|
|
|
==================
|
|
|
|
*/
|
2000-08-20 13:33:48 +00:00
|
|
|
void
|
|
|
|
CL_ParseServerInfo ( void )
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
{
|
|
|
|
char *str;
|
|
|
|
int i;
|
|
|
|
int nummodels, numsounds;
|
|
|
|
char model_precache[MAX_MODELS][MAX_QPATH];
|
|
|
|
char sound_precache[MAX_SOUNDS][MAX_QPATH];
|
2000-03-19 15:59:51 +00:00
|
|
|
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
Con_DPrintf ("Serverinfo packet received.\n");
|
|
|
|
//
|
|
|
|
// wipe the client_state_t struct
|
|
|
|
//
|
|
|
|
CL_ClearState ();
|
|
|
|
|
|
|
|
// parse protocol version number
|
|
|
|
i = MSG_ReadLong ();
|
|
|
|
if (i != PROTOCOL_VERSION)
|
|
|
|
{
|
|
|
|
Con_Printf ("Server returned version %i, not %i", i, PROTOCOL_VERSION);
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
// parse maxclients
|
|
|
|
cl.maxclients = MSG_ReadByte ();
|
|
|
|
if (cl.maxclients < 1 || cl.maxclients > MAX_SCOREBOARD)
|
|
|
|
{
|
|
|
|
Con_Printf("Bad maxclients (%u) from server\n", cl.maxclients);
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
cl.scores = Hunk_AllocName (cl.maxclients*sizeof(*cl.scores), "scores");
|
|
|
|
|
|
|
|
// parse gametype
|
|
|
|
cl.gametype = MSG_ReadByte ();
|
|
|
|
|
|
|
|
// parse signon message
|
|
|
|
str = MSG_ReadString ();
|
|
|
|
strncpy (cl.levelname, str, sizeof(cl.levelname)-1);
|
|
|
|
|
|
|
|
// seperate the printfs so the server message can have a color
|
|
|
|
Con_Printf("\n\n\35\36\36\36\36\36\36\36\36\36\36\36\36\36\36\36\36\36\36\36\36\36\36\36\36\36\36\36\36\36\36\36\36\36\36\36\37\n\n");
|
|
|
|
Con_Printf ("%c%s\n", 2, str);
|
|
|
|
|
|
|
|
//
|
|
|
|
// first we go through and touch all of the precache data that still
|
|
|
|
// happens to be in the cache, so precaching something else doesn't
|
|
|
|
// needlessly purge it
|
|
|
|
//
|
|
|
|
|
|
|
|
// precache models
|
|
|
|
memset (cl.model_precache, 0, sizeof(cl.model_precache));
|
|
|
|
for (nummodels=1 ; ; nummodels++)
|
|
|
|
{
|
|
|
|
str = MSG_ReadString ();
|
|
|
|
if (!str[0])
|
|
|
|
break;
|
|
|
|
if (nummodels==MAX_MODELS)
|
|
|
|
{
|
|
|
|
Con_Printf ("Server sent too many model precaches\n");
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
strcpy (model_precache[nummodels], str);
|
|
|
|
Mod_TouchModel (str);
|
|
|
|
}
|
|
|
|
|
|
|
|
// precache sounds
|
|
|
|
memset (cl.sound_precache, 0, sizeof(cl.sound_precache));
|
|
|
|
for (numsounds=1 ; ; numsounds++)
|
|
|
|
{
|
|
|
|
str = MSG_ReadString ();
|
|
|
|
if (!str[0])
|
|
|
|
break;
|
|
|
|
if (numsounds==MAX_SOUNDS)
|
|
|
|
{
|
|
|
|
Con_Printf ("Server sent too many sound precaches\n");
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
strcpy (sound_precache[numsounds], str);
|
|
|
|
S_TouchSound (str);
|
|
|
|
}
|
|
|
|
|
|
|
|
//
|
|
|
|
// now we try to load everything else until a cache allocation fails
|
|
|
|
//
|
|
|
|
|
|
|
|
for (i=1 ; i<nummodels ; i++)
|
|
|
|
{
|
|
|
|
cl.model_precache[i] = Mod_ForName (model_precache[i], false);
|
|
|
|
if (cl.model_precache[i] == NULL)
|
|
|
|
{
|
|
|
|
Con_Printf("Model %s not found\n", model_precache[i]);
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
CL_KeepaliveMessage ();
|
|
|
|
}
|
|
|
|
|
|
|
|
S_BeginPrecaching ();
|
|
|
|
for (i=1 ; i<numsounds ; i++)
|
|
|
|
{
|
|
|
|
cl.sound_precache[i] = S_PrecacheSound (sound_precache[i]);
|
|
|
|
CL_KeepaliveMessage ();
|
|
|
|
}
|
|
|
|
S_EndPrecaching ();
|
|
|
|
|
|
|
|
|
|
|
|
// local state
|
2000-02-07 01:32:12 +00:00
|
|
|
cl_entities[0].model = cl.worldmodel = cl.model_precache[1];
|
2000-03-19 15:59:51 +00:00
|
|
|
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
R_NewMap ();
|
|
|
|
|
|
|
|
Hunk_Check (); // make sure nothing is hurt
|
2000-03-19 15:59:51 +00:00
|
|
|
|
|
|
|
noclip_anglehack = false; // noclip is turned off at start
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
==================
|
|
|
|
CL_ParseBaseline
|
|
|
|
==================
|
|
|
|
*/
|
2000-08-20 13:33:48 +00:00
|
|
|
void
|
|
|
|
CL_ParseBaseline ( entity_t *ent )
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
{
|
|
|
|
int i;
|
2000-03-19 15:59:51 +00:00
|
|
|
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
ent->baseline.modelindex = MSG_ReadByte ();
|
|
|
|
ent->baseline.frame = MSG_ReadByte ();
|
|
|
|
ent->baseline.colormap = MSG_ReadByte();
|
2000-01-29 18:46:26 +00:00
|
|
|
ent->baseline.skinnum = MSG_ReadByte();
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
for (i=0 ; i<3 ; i++)
|
|
|
|
{
|
|
|
|
ent->baseline.origin[i] = MSG_ReadCoord ();
|
|
|
|
ent->baseline.angles[i] = MSG_ReadAngle ();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
==================
|
|
|
|
CL_ParseClientdata
|
|
|
|
|
|
|
|
Server information pertaining to this client only
|
|
|
|
==================
|
|
|
|
*/
|
2000-08-20 13:33:48 +00:00
|
|
|
void
|
|
|
|
CL_ParseClientdata ( int bits )
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
{
|
|
|
|
int i, j;
|
2000-03-19 15:59:51 +00:00
|
|
|
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
if (bits & SU_VIEWHEIGHT)
|
|
|
|
cl.viewheight = MSG_ReadChar ();
|
|
|
|
else
|
|
|
|
cl.viewheight = DEFAULT_VIEWHEIGHT;
|
|
|
|
|
|
|
|
if (bits & SU_IDEALPITCH)
|
|
|
|
cl.idealpitch = MSG_ReadChar ();
|
|
|
|
else
|
|
|
|
cl.idealpitch = 0;
|
2000-03-19 15:59:51 +00:00
|
|
|
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
VectorCopy (cl.mvelocity[0], cl.mvelocity[1]);
|
|
|
|
for (i=0 ; i<3 ; i++)
|
|
|
|
{
|
2000-01-29 18:46:26 +00:00
|
|
|
if (bits & (SU_PUNCH1<<i) ) {
|
|
|
|
if (PITCH == i)
|
|
|
|
cl.punchangle = MSG_ReadChar();
|
|
|
|
else
|
|
|
|
MSG_ReadChar();
|
|
|
|
}
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
if (bits & (SU_VELOCITY1<<i) )
|
|
|
|
cl.mvelocity[0][i] = MSG_ReadChar()*16;
|
|
|
|
else
|
|
|
|
cl.mvelocity[0][i] = 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
// [always sent] if (bits & SU_ITEMS)
|
|
|
|
i = MSG_ReadLong ();
|
|
|
|
|
2000-03-06 14:28:53 +00:00
|
|
|
if (cl.stats[STAT_ITEMS] != i)
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
{ // set flash times
|
|
|
|
Sbar_Changed ();
|
|
|
|
for (j=0 ; j<32 ; j++)
|
2000-03-06 14:28:53 +00:00
|
|
|
if ( (i & (1<<j)) && !(cl.stats[STAT_ITEMS] & (1<<j)))
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
cl.item_gettime[j] = cl.time;
|
2000-03-06 14:28:53 +00:00
|
|
|
cl.stats[STAT_ITEMS] = i;
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
}
|
2000-03-19 15:59:51 +00:00
|
|
|
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
cl.onground = (bits & SU_ONGROUND) != 0;
|
|
|
|
cl.inwater = (bits & SU_INWATER) != 0;
|
|
|
|
|
|
|
|
if (bits & SU_WEAPONFRAME)
|
|
|
|
cl.stats[STAT_WEAPONFRAME] = MSG_ReadByte ();
|
|
|
|
else
|
|
|
|
cl.stats[STAT_WEAPONFRAME] = 0;
|
|
|
|
|
|
|
|
if (bits & SU_ARMOR)
|
|
|
|
i = MSG_ReadByte ();
|
|
|
|
else
|
|
|
|
i = 0;
|
|
|
|
if (cl.stats[STAT_ARMOR] != i)
|
|
|
|
{
|
|
|
|
cl.stats[STAT_ARMOR] = i;
|
|
|
|
Sbar_Changed ();
|
|
|
|
}
|
|
|
|
|
|
|
|
if (bits & SU_WEAPON)
|
|
|
|
i = MSG_ReadByte ();
|
|
|
|
else
|
|
|
|
i = 0;
|
|
|
|
if (cl.stats[STAT_WEAPON] != i)
|
|
|
|
{
|
|
|
|
cl.stats[STAT_WEAPON] = i;
|
|
|
|
Sbar_Changed ();
|
|
|
|
}
|
2000-03-19 15:59:51 +00:00
|
|
|
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
i = MSG_ReadShort ();
|
|
|
|
if (cl.stats[STAT_HEALTH] != i)
|
|
|
|
{
|
|
|
|
cl.stats[STAT_HEALTH] = i;
|
|
|
|
Sbar_Changed ();
|
|
|
|
}
|
|
|
|
|
|
|
|
i = MSG_ReadByte ();
|
|
|
|
if (cl.stats[STAT_AMMO] != i)
|
|
|
|
{
|
|
|
|
cl.stats[STAT_AMMO] = i;
|
|
|
|
Sbar_Changed ();
|
|
|
|
}
|
|
|
|
|
|
|
|
for (i=0 ; i<4 ; i++)
|
|
|
|
{
|
|
|
|
j = MSG_ReadByte ();
|
|
|
|
if (cl.stats[STAT_SHELLS+i] != j)
|
|
|
|
{
|
|
|
|
cl.stats[STAT_SHELLS+i] = j;
|
|
|
|
Sbar_Changed ();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
i = MSG_ReadByte ();
|
|
|
|
|
|
|
|
if (standard_quake)
|
|
|
|
{
|
|
|
|
if (cl.stats[STAT_ACTIVEWEAPON] != i)
|
|
|
|
{
|
|
|
|
cl.stats[STAT_ACTIVEWEAPON] = i;
|
|
|
|
Sbar_Changed ();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
if (cl.stats[STAT_ACTIVEWEAPON] != (1<<i))
|
|
|
|
{
|
|
|
|
cl.stats[STAT_ACTIVEWEAPON] = (1<<i);
|
|
|
|
Sbar_Changed ();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
=====================
|
|
|
|
CL_ParseStatic
|
|
|
|
=====================
|
|
|
|
*/
|
2000-08-20 13:33:48 +00:00
|
|
|
void
|
|
|
|
CL_ParseStatic ( void )
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
{
|
|
|
|
entity_t *ent;
|
|
|
|
int i;
|
2000-03-19 15:59:51 +00:00
|
|
|
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
i = cl.num_statics;
|
|
|
|
if (i >= MAX_STATIC_ENTITIES)
|
|
|
|
Host_Error ("Too many static entities");
|
|
|
|
ent = &cl_static_entities[i];
|
|
|
|
cl.num_statics++;
|
|
|
|
CL_ParseBaseline (ent);
|
|
|
|
|
|
|
|
// copy it to the current state
|
|
|
|
ent->model = cl.model_precache[ent->baseline.modelindex];
|
|
|
|
ent->frame = ent->baseline.frame;
|
|
|
|
ent->colormap = vid.colormap;
|
2000-01-29 18:46:26 +00:00
|
|
|
ent->skinnum = ent->baseline.skinnum;
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
ent->effects = ent->baseline.effects;
|
|
|
|
|
|
|
|
VectorCopy (ent->baseline.origin, ent->origin);
|
2000-03-19 15:59:51 +00:00
|
|
|
VectorCopy (ent->baseline.angles, ent->angles);
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
R_AddEfrags (ent);
|
|
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
|
|
===================
|
|
|
|
CL_ParseStaticSound
|
|
|
|
===================
|
|
|
|
*/
|
2000-08-20 13:33:48 +00:00
|
|
|
void
|
|
|
|
CL_ParseStaticSound ( void )
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
{
|
|
|
|
vec3_t org;
|
|
|
|
int sound_num, vol, atten;
|
|
|
|
int i;
|
2000-03-19 15:59:51 +00:00
|
|
|
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
for (i=0 ; i<3 ; i++)
|
|
|
|
org[i] = MSG_ReadCoord ();
|
|
|
|
sound_num = MSG_ReadByte ();
|
|
|
|
vol = MSG_ReadByte ();
|
|
|
|
atten = MSG_ReadByte ();
|
2000-03-19 15:59:51 +00:00
|
|
|
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
S_StaticSound (cl.sound_precache[sound_num], org, vol, atten);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2000-02-27 07:13:32 +00:00
|
|
|
#define SHOWNET(x) if(cl_shownet->value==2)Con_Printf ("%3i:%s\n", msg_readcount-1, x);
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
|
|
|
|
/*
|
|
|
|
=====================
|
|
|
|
CL_ParseServerMessage
|
|
|
|
=====================
|
|
|
|
*/
|
2000-08-20 13:33:48 +00:00
|
|
|
void
|
|
|
|
CL_ParseServerMessage ( void )
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
{
|
2000-08-20 13:33:48 +00:00
|
|
|
int cmd;
|
|
|
|
int i;
|
|
|
|
char ch;
|
2000-03-19 15:59:51 +00:00
|
|
|
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
//
|
|
|
|
// if recording demos, copy the message out
|
|
|
|
//
|
2000-02-27 07:13:32 +00:00
|
|
|
if (cl_shownet->value == 1)
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
Con_Printf ("%i ",net_message.cursize);
|
2000-02-27 07:13:32 +00:00
|
|
|
else if (cl_shownet->value == 2)
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
Con_Printf ("------------------\n");
|
2000-03-19 15:59:51 +00:00
|
|
|
|
|
|
|
cl.onground = false; // unless the server says otherwise
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
//
|
|
|
|
// parse the message
|
|
|
|
//
|
|
|
|
MSG_BeginReading ();
|
2000-03-19 15:59:51 +00:00
|
|
|
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
while (1)
|
|
|
|
{
|
|
|
|
if (msg_badread)
|
|
|
|
Host_Error ("CL_ParseServerMessage: Bad server message");
|
|
|
|
|
|
|
|
cmd = MSG_ReadByte ();
|
|
|
|
|
|
|
|
if (cmd == -1)
|
|
|
|
{
|
|
|
|
SHOWNET("END OF MESSAGE");
|
|
|
|
return; // end of message
|
|
|
|
}
|
|
|
|
|
|
|
|
// if the high bit of the command byte is set, it is a fast update
|
|
|
|
if (cmd & 128)
|
|
|
|
{
|
|
|
|
SHOWNET("fast update");
|
|
|
|
CL_ParseUpdate (cmd&127);
|
|
|
|
continue;
|
|
|
|
}
|
|
|
|
|
|
|
|
SHOWNET(svc_strings[cmd]);
|
2000-03-19 15:59:51 +00:00
|
|
|
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
// other commands
|
|
|
|
switch (cmd)
|
|
|
|
{
|
|
|
|
default:
|
|
|
|
Host_Error ("CL_ParseServerMessage: Illegible server message\n");
|
|
|
|
break;
|
2000-03-19 15:59:51 +00:00
|
|
|
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
case svc_nop:
|
|
|
|
// Con_Printf ("svc_nop\n");
|
|
|
|
break;
|
2000-03-19 15:59:51 +00:00
|
|
|
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
case svc_time:
|
|
|
|
cl.mtime[1] = cl.mtime[0];
|
2000-03-19 15:59:51 +00:00
|
|
|
cl.mtime[0] = MSG_ReadFloat ();
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
break;
|
2000-03-19 15:59:51 +00:00
|
|
|
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
case svc_clientdata:
|
|
|
|
i = MSG_ReadShort ();
|
|
|
|
CL_ParseClientdata (i);
|
|
|
|
break;
|
2000-03-19 15:59:51 +00:00
|
|
|
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
case svc_version:
|
|
|
|
i = MSG_ReadLong ();
|
|
|
|
if (i != PROTOCOL_VERSION)
|
|
|
|
Host_Error ("CL_ParseServerMessage: Server is protocol %i instead of %i\n", i, PROTOCOL_VERSION);
|
|
|
|
break;
|
2000-03-19 15:59:51 +00:00
|
|
|
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
case svc_disconnect:
|
|
|
|
Host_EndGame ("Server disconnected\n");
|
|
|
|
|
|
|
|
case svc_print:
|
2000-02-03 12:46:08 +00:00
|
|
|
ch = MSG_ReadChar ();
|
|
|
|
if (ch == '\x01') {
|
2000-03-26 11:49:29 +00:00
|
|
|
S_LocalSound (cl_talksound->string);
|
2000-02-03 10:56:46 +00:00
|
|
|
con_ormask = 128;
|
|
|
|
}
|
2000-02-03 12:46:08 +00:00
|
|
|
Con_Printf ("%c%s", ch, MSG_ReadString ());
|
2000-02-03 10:56:46 +00:00
|
|
|
con_ormask = 0;
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
break;
|
2000-03-19 15:59:51 +00:00
|
|
|
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
case svc_centerprint:
|
|
|
|
SCR_CenterPrint (MSG_ReadString ());
|
|
|
|
break;
|
2000-03-19 15:59:51 +00:00
|
|
|
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
case svc_stufftext:
|
|
|
|
Cbuf_AddText (MSG_ReadString ());
|
|
|
|
break;
|
2000-03-19 15:59:51 +00:00
|
|
|
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
case svc_damage:
|
|
|
|
V_ParseDamage ();
|
|
|
|
break;
|
2000-03-19 15:59:51 +00:00
|
|
|
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
case svc_serverinfo:
|
|
|
|
CL_ParseServerInfo ();
|
|
|
|
vid.recalc_refdef = true; // leave intermission full screen
|
|
|
|
break;
|
2000-03-19 15:59:51 +00:00
|
|
|
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
case svc_setangle:
|
|
|
|
for (i=0 ; i<3 ; i++)
|
|
|
|
cl.viewangles[i] = MSG_ReadAngle ();
|
|
|
|
break;
|
2000-03-19 15:59:51 +00:00
|
|
|
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
case svc_setview:
|
2000-02-07 01:32:12 +00:00
|
|
|
cl.playernum = MSG_ReadShort ();
|
2000-04-12 08:49:37 +00:00
|
|
|
cl.playernum--;
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
break;
|
2000-03-19 15:59:51 +00:00
|
|
|
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
case svc_lightstyle:
|
|
|
|
i = MSG_ReadByte ();
|
|
|
|
if (i >= MAX_LIGHTSTYLES)
|
|
|
|
Sys_Error ("svc_lightstyle > MAX_LIGHTSTYLES");
|
2000-08-20 13:33:48 +00:00
|
|
|
Q_strcpy (cl_lightstyle[i].map, MSG_ReadString());
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
cl_lightstyle[i].length = Q_strlen(cl_lightstyle[i].map);
|
|
|
|
break;
|
2000-03-19 15:59:51 +00:00
|
|
|
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
case svc_sound:
|
|
|
|
CL_ParseStartSoundPacket();
|
|
|
|
break;
|
2000-03-19 15:59:51 +00:00
|
|
|
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
case svc_stopsound:
|
|
|
|
i = MSG_ReadShort();
|
|
|
|
S_StopSound(i>>3, i&7);
|
|
|
|
break;
|
2000-03-19 15:59:51 +00:00
|
|
|
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
case svc_updatename:
|
|
|
|
Sbar_Changed ();
|
|
|
|
i = MSG_ReadByte ();
|
|
|
|
if (i >= cl.maxclients)
|
|
|
|
Host_Error ("CL_ParseServerMessage: svc_updatename > MAX_SCOREBOARD");
|
|
|
|
strcpy (cl.scores[i].name, MSG_ReadString ());
|
|
|
|
break;
|
2000-03-19 15:59:51 +00:00
|
|
|
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
case svc_updatefrags:
|
|
|
|
Sbar_Changed ();
|
|
|
|
i = MSG_ReadByte ();
|
|
|
|
if (i >= cl.maxclients)
|
|
|
|
Host_Error ("CL_ParseServerMessage: svc_updatefrags > MAX_SCOREBOARD");
|
|
|
|
cl.scores[i].frags = MSG_ReadShort ();
|
2000-03-19 15:59:51 +00:00
|
|
|
break;
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
|
|
|
|
case svc_updatecolors:
|
|
|
|
Sbar_Changed ();
|
|
|
|
i = MSG_ReadByte ();
|
|
|
|
if (i >= cl.maxclients)
|
|
|
|
Host_Error ("CL_ParseServerMessage: svc_updatecolors > MAX_SCOREBOARD");
|
|
|
|
cl.scores[i].colors = MSG_ReadByte ();
|
|
|
|
CL_NewTranslation (i);
|
|
|
|
break;
|
2000-03-19 15:59:51 +00:00
|
|
|
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
case svc_particle:
|
|
|
|
R_ParseParticleEffect ();
|
|
|
|
break;
|
|
|
|
|
|
|
|
case svc_spawnbaseline:
|
|
|
|
i = MSG_ReadShort ();
|
|
|
|
// must use CL_EntityNum() to force cl.num_entities up
|
|
|
|
CL_ParseBaseline (CL_EntityNum(i));
|
|
|
|
break;
|
|
|
|
case svc_spawnstatic:
|
|
|
|
CL_ParseStatic ();
|
2000-03-19 15:59:51 +00:00
|
|
|
break;
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
case svc_temp_entity:
|
|
|
|
CL_ParseTEnt ();
|
|
|
|
break;
|
|
|
|
|
|
|
|
case svc_setpause:
|
|
|
|
{
|
|
|
|
cl.paused = MSG_ReadByte ();
|
|
|
|
|
|
|
|
if (cl.paused)
|
|
|
|
{
|
|
|
|
CDAudio_Pause ();
|
|
|
|
#ifdef _WIN32
|
|
|
|
VID_HandlePause (true);
|
|
|
|
#endif
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
CDAudio_Resume ();
|
|
|
|
#ifdef _WIN32
|
|
|
|
VID_HandlePause (false);
|
|
|
|
#endif
|
|
|
|
}
|
|
|
|
}
|
|
|
|
break;
|
2000-03-19 15:59:51 +00:00
|
|
|
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
case svc_signonnum:
|
|
|
|
i = MSG_ReadByte ();
|
|
|
|
if (i <= cls.signon)
|
|
|
|
Host_Error ("Received signon %i when at %i", i, cls.signon);
|
|
|
|
cls.signon = i;
|
|
|
|
CL_SignonReply ();
|
|
|
|
break;
|
|
|
|
|
|
|
|
case svc_killedmonster:
|
|
|
|
cl.stats[STAT_MONSTERS]++;
|
|
|
|
break;
|
|
|
|
|
|
|
|
case svc_foundsecret:
|
|
|
|
cl.stats[STAT_SECRETS]++;
|
|
|
|
break;
|
|
|
|
|
|
|
|
case svc_updatestat:
|
|
|
|
i = MSG_ReadByte ();
|
|
|
|
if (i < 0 || i >= MAX_CL_STATS)
|
|
|
|
Sys_Error ("svc_updatestat: %i is invalid", i);
|
|
|
|
cl.stats[i] = MSG_ReadLong ();;
|
|
|
|
break;
|
2000-03-19 15:59:51 +00:00
|
|
|
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
case svc_spawnstaticsound:
|
|
|
|
CL_ParseStaticSound ();
|
|
|
|
break;
|
|
|
|
|
|
|
|
case svc_cdtrack:
|
|
|
|
cl.cdtrack = MSG_ReadByte ();
|
2000-08-20 13:33:48 +00:00
|
|
|
// cl.looptrack = MSG_ReadByte ();
|
2000-01-29 18:46:26 +00:00
|
|
|
MSG_ReadByte ();
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
if ( (cls.demoplayback || cls.demorecording) && (cls.forcetrack != -1) )
|
|
|
|
CDAudio_Play ((byte)cls.forcetrack, true);
|
|
|
|
else
|
|
|
|
CDAudio_Play ((byte)cl.cdtrack, true);
|
|
|
|
break;
|
|
|
|
|
|
|
|
case svc_intermission:
|
|
|
|
cl.intermission = 1;
|
|
|
|
cl.completed_time = cl.time;
|
|
|
|
vid.recalc_refdef = true; // go to full screen
|
|
|
|
break;
|
|
|
|
|
|
|
|
case svc_finale:
|
|
|
|
cl.intermission = 2;
|
|
|
|
cl.completed_time = cl.time;
|
|
|
|
vid.recalc_refdef = true; // go to full screen
|
2000-03-19 15:59:51 +00:00
|
|
|
SCR_CenterPrint (MSG_ReadString ());
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
break;
|
|
|
|
|
|
|
|
case svc_cutscene:
|
|
|
|
cl.intermission = 3;
|
|
|
|
cl.completed_time = cl.time;
|
|
|
|
vid.recalc_refdef = true; // go to full screen
|
2000-03-19 15:59:51 +00:00
|
|
|
SCR_CenterPrint (MSG_ReadString ());
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
break;
|
|
|
|
|
|
|
|
case svc_sellscreen:
|
|
|
|
Cmd_ExecuteString ("help", src_command);
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|