vkQuake2 doxygen  1.0 dev
client.h File Reference
#include <math.h>
#include <string.h>
#include <stdarg.h>
#include <stdio.h>
#include <stdlib.h>
#include "ref.h"
#include "vid.h"
#include "screen.h"
#include "sound.h"
#include "input.h"
#include "keys.h"
#include "console.h"
#include "cdaudio.h"
#include "snd_miniaudio.h"

Go to the source code of this file.

Classes

struct  frame_t
 
struct  centity_t
 
struct  clientinfo_t
 
struct  client_state_t
 
struct  client_static_t
 
struct  cdlight_t
 
struct  cl_sustain
 
struct  particle_s
 
struct  kbutton_t
 

Macros

#define MAX_CLIENTWEAPONMODELS   20
 
#define CMD_BACKUP   64
 
#define MAX_PARSE_ENTITIES   1024
 
#define MAX_SUSTAINS   32
 
#define PARTICLE_GRAVITY   40
 
#define BLASTER_PARTICLE_COLOR   0xe0
 
#define INSTANT_PARTICLE   -10000.0
 

Typedefs

typedef struct cl_sustain cl_sustain_t
 
typedef struct particle_s cparticle_t
 

Enumerations

enum  connstate_t {
  ca_uninitialized, ca_disconnected, ca_connecting, ca_connected,
  ca_active
}
 
enum  dltype_t {
  dl_none, dl_model, dl_sound, dl_skin,
  dl_single
}
 
enum  keydest_t { key_game, key_console, key_message, key_menu }
 

Functions

void DrawString (int x, int y, char *s)
 
void DrawAltString (int x, int y, char *s)
 
qboolean CL_CheckOrDownloadFile (char *filename)
 
void CL_AddNetgraph (void)
 
void CL_ParticleSteamEffect2 (cl_sustain_t *self)
 
void CL_TeleporterParticles (entity_state_t *ent)
 
void CL_ParticleEffect (vec3_t org, vec3_t dir, int color, int count)
 
void CL_ParticleEffect2 (vec3_t org, vec3_t dir, int color, int count)
 
void CL_ParticleEffect3 (vec3_t org, vec3_t dir, int color, int count)
 
void CL_ClearEffects (void)
 
void CL_ClearTEnts (void)
 
void CL_BlasterTrail (vec3_t start, vec3_t end)
 
void CL_QuadTrail (vec3_t start, vec3_t end)
 
void CL_RailTrail (vec3_t start, vec3_t end)
 
void CL_BubbleTrail (vec3_t start, vec3_t end)
 
void CL_FlagTrail (vec3_t start, vec3_t end, float color)
 
void CL_IonripperTrail (vec3_t start, vec3_t end)
 
void CL_BlasterParticles2 (vec3_t org, vec3_t dir, unsigned int color)
 
void CL_BlasterTrail2 (vec3_t start, vec3_t end)
 
void CL_DebugTrail (vec3_t start, vec3_t end)
 
void CL_SmokeTrail (vec3_t start, vec3_t end, int colorStart, int colorRun, int spacing)
 
void CL_Flashlight (int ent, vec3_t pos)
 
void CL_ForceWall (vec3_t start, vec3_t end, int color)
 
void CL_FlameEffects (centity_t *ent, vec3_t origin)
 
void CL_GenericParticleEffect (vec3_t org, vec3_t dir, int color, int count, int numcolors, int dirspread, float alphavel)
 
void CL_BubbleTrail2 (vec3_t start, vec3_t end, int dist)
 
void CL_Heatbeam (vec3_t start, vec3_t end)
 
void CL_ParticleSteamEffect (vec3_t org, vec3_t dir, int color, int count, int magnitude)
 
void CL_TrackerTrail (vec3_t start, vec3_t end, int particleColor)
 
void CL_Tracker_Explode (vec3_t origin)
 
void CL_TagTrail (vec3_t start, vec3_t end, float color)
 
void CL_ColorFlash (vec3_t pos, int ent, int intensity, float r, float g, float b)
 
void CL_Tracker_Shell (vec3_t origin)
 
void CL_MonsterPlasma_Shell (vec3_t origin)
 
void CL_ColorExplosionParticles (vec3_t org, int color, int run)
 
void CL_ParticleSmokeEffect (vec3_t org, vec3_t dir, int color, int count, int magnitude)
 
void CL_Widowbeamout (cl_sustain_t *self)
 
void CL_Nukeblast (cl_sustain_t *self)
 
void CL_WidowSplash (vec3_t org)
 
int CL_ParseEntityBits (unsigned *bits)
 just for protocol profiling More...
 
void CL_ParseDelta (entity_state_t *from, entity_state_t *to, int number, int bits)
 
void CL_ParseFrame (void)
 
void CL_ParseTEnt (void)
 
void CL_ParseConfigString (void)
 
void CL_ParseMuzzleFlash (void)
 
void CL_ParseMuzzleFlash2 (void)
 
void SmokeAndFlash (vec3_t origin)
 
void CL_SetLightstyle (int i)
 
void CL_RunParticles (void)
 
void CL_RunDLights (void)
 
void CL_RunLightStyles (void)
 
void CL_AddEntities (void)
 
void CL_AddDLights (void)
 
void CL_AddTEnts (void)
 
void CL_AddLightStyles (void)
 
void CL_PrepRefresh (void)
 
void CL_RegisterSounds (void)
 
void CL_Quit_f (void)
 
void IN_Accumulate (void)
 
void CL_ParseLayout (void)
 
void CL_Init (void)
 
void CL_FixUpGender (void)
 
void CL_Disconnect (void)
 
void CL_Disconnect_f (void)
 
void CL_GetChallengePacket (void)
 
void CL_PingServers_f (void)
 
void CL_Snd_Restart_f (void)
 
void CL_RequestNextDownload (void)
 
void CL_InitInput (void)
 
void CL_SendCmd (void)
 
void CL_SendMove (usercmd_t *cmd)
 
void CL_ClearState (void)
 
void CL_ReadPackets (void)
 
int CL_ReadFromServer (void)
 
void CL_WriteToServer (usercmd_t *cmd)
 
void CL_BaseMove (usercmd_t *cmd)
 
void IN_CenterView (void)
 
float CL_KeyState (kbutton_t *key)
 
char * Key_KeynumToString (int keynum)
 
void CL_WriteDemoMessage (void)
 
void CL_Stop_f (void)
 
void CL_Record_f (void)
 
void CL_ParseServerMessage (void)
 
void CL_LoadClientinfo (clientinfo_t *ci, char *s)
 
void SHOWNET (char *s)
 
void CL_ParseClientinfo (int player)
 
void CL_Download_f (void)
 
void V_Init (void)
 
void V_RenderView (float stereo_separation)
 
void V_AddEntity (entity_t *ent)
 
void V_AddParticle (vec3_t org, int color, float alpha)
 
void V_AddLight (vec3_t org, float intensity, float r, float g, float b)
 
void V_AddLightStyle (int style, float r, float g, float b)
 
void CL_RegisterTEntSounds (void)
 
void CL_RegisterTEntModels (void)
 
void CL_SmokeAndFlash (vec3_t origin)
 
void CL_InitPrediction (void)
 
void CL_PredictMove (void)
 
void CL_CheckPredictionError (void)
 
cdlight_tCL_AllocDlight (int key)
 
void CL_BigTeleportParticles (vec3_t org)
 
void CL_RocketTrail (vec3_t start, vec3_t end, centity_t *old)
 
void CL_DiminishingTrail (vec3_t start, vec3_t end, centity_t *old, int flags)
 
void CL_FlyEffect (centity_t *ent, vec3_t origin)
 
void CL_BfgParticles (entity_t *ent)
 
void CL_AddParticles (void)
 
void CL_EntityEvent (entity_state_t *ent)
 
void CL_TrapParticles (entity_t *ent)
 
void M_Init (void)
 
void M_Keydown (int key)
 
void M_Draw (void)
 
void M_Menu_Main_f (void)
 
void M_ForceMenuOff (void)
 
void M_AddToServerList (netadr_t adr, char *info)
 
void CL_ParseInventory (void)
 
void CL_KeyInventory (int key)
 
void CL_DrawInventory (void)
 
void CL_PredictMovement (void)
 

Variables

char cl_weaponmodels [MAX_CLIENTWEAPONMODELS][MAX_QPATH]
 
int num_cl_weaponmodels
 
client_state_t cl
 
client_static_t cls
 
cvar_tcl_stereo_separation
 
cvar_tcl_stereo
 
cvar_tcl_gun
 
cvar_tcl_add_blend
 
cvar_tcl_add_lights
 
cvar_tcl_add_particles
 
cvar_tcl_add_entities
 
cvar_tcl_predict
 
cvar_tcl_footsteps
 
cvar_tcl_noskins
 
cvar_tcl_autoskins
 
cvar_tcl_upspeed
 
cvar_tcl_forwardspeed
 
cvar_tcl_sidespeed
 
cvar_tcl_yawspeed
 
cvar_tcl_pitchspeed
 
cvar_tcl_run
 
cvar_tcl_anglespeedkey
 
cvar_tcl_shownet
 
cvar_tcl_showmiss
 
cvar_tcl_showclamp
 
cvar_tlookspring
 
cvar_tlookstrafe
 
cvar_tsensitivity
 
cvar_tm_pitch
 
cvar_tm_yaw
 
cvar_tm_forward
 
cvar_tm_side
 
cvar_tfreelook
 
cvar_tcl_lightlevel
 
cvar_tcl_paused
 
cvar_tcl_timedemo
 
cvar_tcl_vwep
 
centity_t cl_entities [MAX_EDICTS]
 
cdlight_t cl_dlights [MAX_DLIGHTS]
 
entity_state_t cl_parse_entities [MAX_PARSE_ENTITIES]
 
netadr_t net_from
 
sizebuf_t net_message
 
refexport_t re
 
kbutton_t in_mlook
 
kbutton_t in_klook
 
kbutton_t in_strafe
 
kbutton_t in_speed
 
char * svc_strings [256]
 
int gun_frame
 
struct model_sgun_model
 

Macro Definition Documentation

◆ BLASTER_PARTICLE_COLOR

#define BLASTER_PARTICLE_COLOR   0xe0

Definition at line 374 of file client.h.

◆ CMD_BACKUP

#define CMD_BACKUP   64

Definition at line 85 of file client.h.

◆ INSTANT_PARTICLE

#define INSTANT_PARTICLE   -10000.0

Definition at line 376 of file client.h.

◆ MAX_CLIENTWEAPONMODELS

#define MAX_CLIENTWEAPONMODELS   20

Definition at line 69 of file client.h.

◆ MAX_PARSE_ENTITIES

#define MAX_PARSE_ENTITIES   1024

Definition at line 312 of file client.h.

◆ MAX_SUSTAINS

#define MAX_SUSTAINS   32

Definition at line 342 of file client.h.

◆ PARTICLE_GRAVITY

#define PARTICLE_GRAVITY   40

Definition at line 373 of file client.h.

Typedef Documentation

◆ cl_sustain_t

typedef struct cl_sustain cl_sustain_t

◆ cparticle_t

typedef struct particle_s cparticle_t

Enumeration Type Documentation

◆ connstate_t

Enumerator
ca_uninitialized 
ca_disconnected 
ca_connecting 
ca_connected 
ca_active 

Definition at line 184 of file client.h.

184  {
186  ca_disconnected, // not talking to a server
187  ca_connecting, // sending request packets to the server
188  ca_connected, // netchan_t established, waiting for svc_serverdata
189  ca_active // game views should be displayed
190 } connstate_t;

◆ dltype_t

enum dltype_t
Enumerator
dl_none 
dl_model 
dl_sound 
dl_skin 
dl_single 

Definition at line 192 of file client.h.

192  {
193  dl_none,
194  dl_model,
195  dl_sound,
196  dl_skin,
197  dl_single
198 } dltype_t; // download type

◆ keydest_t

enum keydest_t
Enumerator
key_game 
key_console 
key_message 
key_menu 

Definition at line 200 of file client.h.

Function Documentation

◆ CL_AddDLights()

void CL_AddDLights ( void  )

Definition at line 812 of file cl_fx.c.

813 {
814  int i;
815  cdlight_t *dl;
816 
817  dl = cl_dlights;
818 
819 //=====
820 //PGM
821  if(vidref_val == VIDREF_GL)
822  {
823  for (i=0 ; i<MAX_DLIGHTS ; i++, dl++)
824  {
825  if (!dl->radius)
826  continue;
827  V_AddLight (dl->origin, dl->radius,
828  dl->color[0], dl->color[1], dl->color[2]);
829  }
830  }
831  else
832  {
833  for (i=0 ; i<MAX_DLIGHTS ; i++, dl++)
834  {
835  if (!dl->radius)
836  continue;
837 
838  // negative light in software. only black allowed
839  if ((dl->color[0] < 0) || (dl->color[1] < 0) || (dl->color[2] < 0))
840  {
841  dl->radius = -(dl->radius);
842  dl->color[0] = 1;
843  dl->color[1] = 1;
844  dl->color[2] = 1;
845  }
846  V_AddLight (dl->origin, dl->radius,
847  dl->color[0], dl->color[1], dl->color[2]);
848  }
849  }
850 //PGM
851 //=====
852 }

Referenced by CL_AddEntities().

◆ CL_AddEntities()

void CL_AddEntities ( void  )

Definition at line 1477 of file cl_ents.c.

1478 {
1479  if (cls.state != ca_active)
1480  return;
1481 
1482  if (cl.time > cl.frame.servertime)
1483  {
1484  if (cl_showclamp->value)
1485  Com_Printf ("high clamp %i\n", cl.time - cl.frame.servertime);
1487  cl.lerpfrac = 1.0;
1488  }
1489  else if (cl.time < cl.frame.servertime - 100)
1490  {
1491  if (cl_showclamp->value)
1492  Com_Printf ("low clamp %i\n", cl.frame.servertime-100 - cl.time);
1493  cl.time = cl.frame.servertime - 100;
1494  cl.lerpfrac = 0;
1495  }
1496  else
1497  cl.lerpfrac = 1.0 - (cl.frame.servertime - cl.time) * 0.01;
1498 
1499  if (cl_timedemo->value)
1500  cl.lerpfrac = 1.0;
1501 
1502 // CL_AddPacketEntities (&cl.frame);
1503 // CL_AddTEnts ();
1504 // CL_AddParticles ();
1505 // CL_AddDLights ();
1506 // CL_AddLightStyles ();
1507 
1508  CL_CalcViewValues ();
1509  // PMM - moved this here so the heat beam has the right values for the vieworg, and can lock the beam to the gun
1511 #if 0
1512  CL_AddProjectiles ();
1513 #endif
1514  CL_AddTEnts ();
1515  CL_AddParticles ();
1516  CL_AddDLights ();
1517  CL_AddLightStyles ();
1518 }

Referenced by V_RenderView().

◆ CL_AddLightStyles()

void CL_AddLightStyles ( void  )

Definition at line 114 of file cl_fx.c.

115 {
116  int i;
117  clightstyle_t *ls;
118 
119  for (i=0,ls=cl_lightstyle ; i<MAX_LIGHTSTYLES ; i++, ls++)
120  V_AddLightStyle (i, ls->value[0], ls->value[1], ls->value[2]);
121 }

Referenced by CL_AddEntities().

◆ CL_AddNetgraph()

void CL_AddNetgraph ( void  )

Definition at line 96 of file cl_scrn.c.

97 {
98  int i;
99  int in;
100  int ping;
101 
102  // if using the debuggraph for something else, don't
103  // add the net lines
105  return;
106 
107  for (i=0 ; i<cls.netchan.dropped ; i++)
108  SCR_DebugGraph (30, 0x40);
109 
110  for (i=0 ; i<cl.surpressCount ; i++)
111  SCR_DebugGraph (30, 0xdf);
112 
113  // see what the latency was on this packet
115  ping = cls.realtime - cl.cmd_time[in];
116  ping /= 30;
117  if (ping > 30)
118  ping = 30;
119  SCR_DebugGraph (ping, 0xd0);
120 }

Referenced by CL_ParseServerMessage().

◆ CL_AddParticles()

void CL_AddParticles ( void  )

Definition at line 2190 of file cl_fx.c.

2191 {
2192  cparticle_t *p, *next;
2193  float alpha;
2194  float time = 0, time2;
2195  vec3_t org;
2196  int color;
2197  cparticle_t *active, *tail;
2198 
2199  active = NULL;
2200  tail = NULL;
2201 
2202  for (p=active_particles ; p ; p=next)
2203  {
2204  next = p->next;
2205 
2206  // PMM - added INSTANT_PARTICLE handling for heat beam
2207  if (p->alphavel != INSTANT_PARTICLE)
2208  {
2209  time = (cl.time - p->time)*0.001;
2210  alpha = p->alpha + time*p->alphavel;
2211  if (alpha <= 0)
2212  { // faded out
2213  p->next = free_particles;
2214  free_particles = p;
2215  continue;
2216  }
2217  }
2218  else
2219  {
2220  alpha = p->alpha;
2221  }
2222 
2223  p->next = NULL;
2224  if (!tail)
2225  active = tail = p;
2226  else
2227  {
2228  tail->next = p;
2229  tail = p;
2230  }
2231 
2232  if (alpha > 1.0)
2233  alpha = 1;
2234  color = p->color;
2235 
2236  time2 = time*time;
2237 
2238  org[0] = p->org[0] + p->vel[0]*time + p->accel[0]*time2;
2239  org[1] = p->org[1] + p->vel[1]*time + p->accel[1]*time2;
2240  org[2] = p->org[2] + p->vel[2]*time + p->accel[2]*time2;
2241 
2242  V_AddParticle (org, color, alpha);
2243  // PMM
2244  if (p->alphavel == INSTANT_PARTICLE)
2245  {
2246  p->alphavel = 0.0;
2247  p->alpha = 0.0;
2248  }
2249  }
2250 
2251  active_particles = active;
2252 }

Referenced by CL_AddEntities().

◆ CL_AddTEnts()

void CL_AddTEnts ( void  )

Definition at line 1738 of file cl_tent.c.

1739 {
1740  CL_AddBeams ();
1741  // PMM - draw plasma beams
1742  CL_AddPlayerBeams ();
1743  CL_AddExplosions ();
1744  CL_AddLasers ();
1745  // PMM - set up sustain
1747 }

Referenced by CL_AddEntities().

◆ CL_AllocDlight()

cdlight_t* CL_AllocDlight ( int  key)

Definition at line 149 of file cl_fx.c.

150 {
151  int i;
152  cdlight_t *dl;
153 
154 // first look for an exact key match
155  if (key)
156  {
157  dl = cl_dlights;
158  for (i=0 ; i<MAX_DLIGHTS ; i++, dl++)
159  {
160  if (dl->key == key)
161  {
162  memset (dl, 0, sizeof(*dl));
163  dl->key = key;
164  return dl;
165  }
166  }
167  }
168 
169 // then look for anything else
170  dl = cl_dlights;
171  for (i=0 ; i<MAX_DLIGHTS ; i++, dl++)
172  {
173  if (dl->die < cl.time)
174  {
175  memset (dl, 0, sizeof(*dl));
176  dl->key = key;
177  return dl;
178  }
179  }
180 
181  dl = &cl_dlights[0];
182  memset (dl, 0, sizeof(*dl));
183  dl->key = key;
184  return dl;
185 }

Referenced by CL_ColorFlash(), CL_Flashlight(), CL_NewDlight(), CL_ParseMuzzleFlash(), and CL_ParseMuzzleFlash2().

◆ CL_BaseMove()

void CL_BaseMove ( usercmd_t cmd)

Definition at line 277 of file cl_input.c.

278 {
279  CL_AdjustAngles ();
280 
281  memset (cmd, 0, sizeof(*cmd));
282 
283  VectorCopy (cl.viewangles, cmd->angles);
284  if (in_strafe.state & 1)
285  {
288  }
289 
292 
293  cmd->upmove += cl_upspeed->value * CL_KeyState (&in_up);
294  cmd->upmove -= cl_upspeed->value * CL_KeyState (&in_down);
295 
296  if (! (in_klook.state & 1) )
297  {
300  }
301 
302 //
303 // adjust for speed key / running
304 //
305  if ( (in_speed.state & 1) ^ (int)(cl_run->value) )
306  {
307  cmd->forwardmove *= 2;
308  cmd->sidemove *= 2;
309  cmd->upmove *= 2;
310  }
311 }

Referenced by CL_CreateCmd().

◆ CL_BfgParticles()

void CL_BfgParticles ( entity_t ent)

Definition at line 1925 of file cl_fx.c.

1926 {
1927  int i;
1928  cparticle_t *p;
1929  float angle;
1930  float sr, sp, sy, cr, cp, cy;
1931  vec3_t forward;
1932  float dist = 64;
1933  vec3_t v;
1934  float ltime;
1935 
1936  if (!avelocities[0][0])
1937  {
1938  for (i=0 ; i<NUMVERTEXNORMALS ; i++)
1939  {
1940  avelocities[i][0] = (rand()&255) * 0.01;
1941  avelocities[i][1] = (rand()&255) * 0.01;
1942  avelocities[i][2] = (rand()&255) * 0.01;
1943  }
1944  }
1945 
1946 
1947  ltime = (float)cl.time / 1000.0;
1948  for (i=0 ; i<NUMVERTEXNORMALS ; i++)
1949  {
1950  angle = ltime * avelocities[i][0];
1951  sy = sin(angle);
1952  cy = cos(angle);
1953  angle = ltime * avelocities[i][1];
1954  sp = sin(angle);
1955  cp = cos(angle);
1956  angle = ltime * avelocities[i][2];
1957  sr = sin(angle);
1958  cr = cos(angle);
1959 
1960  forward[0] = cp*cy;
1961  forward[1] = cp*sy;
1962  forward[2] = -sp;
1963 
1964  if (!free_particles)
1965  return;
1966  p = free_particles;
1967  free_particles = p->next;
1968  p->next = active_particles;
1969  active_particles = p;
1970 
1971  p->time = cl.time;
1972 
1973  dist = sin(ltime + i)*64;
1974  p->org[0] = ent->origin[0] + bytedirs[i][0]*dist + forward[0]*BEAMLENGTH;
1975  p->org[1] = ent->origin[1] + bytedirs[i][1]*dist + forward[1]*BEAMLENGTH;
1976  p->org[2] = ent->origin[2] + bytedirs[i][2]*dist + forward[2]*BEAMLENGTH;
1977 
1978  VectorClear (p->vel);
1979  VectorClear (p->accel);
1980 
1981  VectorSubtract (p->org, ent->origin, v);
1982  dist = VectorLength(v) / 90.0;
1983  p->color = floor (0xd0 + dist * 7);
1984  p->colorvel = 0;
1985 
1986  p->alpha = 1.0 - dist;
1987  p->alphavel = -100;
1988  }
1989 }

Referenced by CL_AddPacketEntities().

◆ CL_BigTeleportParticles()

void CL_BigTeleportParticles ( vec3_t  org)

Definition at line 1195 of file cl_fx.c.

1196 {
1197  int i;
1198  cparticle_t *p;
1199  float angle, dist;
1200  static int colortable[4] = {2*8,13*8,21*8,18*8};
1201 
1202  for (i=0 ; i<4096 ; i++)
1203  {
1204  if (!free_particles)
1205  return;
1206  p = free_particles;
1207  free_particles = p->next;
1208  p->next = active_particles;
1209  active_particles = p;
1210 
1211  p->time = cl.time;
1212 
1213  p->color = colortable[rand()&3];
1214 
1215  angle = M_PI*2*(rand()&1023)/1023.0;
1216  dist = rand()&31;
1217  p->org[0] = org[0] + cos(angle)*dist;
1218  p->vel[0] = cos(angle)*(70+(rand()&63));
1219  p->accel[0] = -cos(angle)*100;
1220 
1221  p->org[1] = org[1] + sin(angle)*dist;
1222  p->vel[1] = sin(angle)*(70+(rand()&63));
1223  p->accel[1] = -sin(angle)*100;
1224 
1225  p->org[2] = org[2] + 8 + (rand()%90);
1226  p->vel[2] = -100 + (rand()&31);
1227  p->accel[2] = PARTICLE_GRAVITY*4;
1228  p->alpha = 1.0;
1229 
1230  p->alphavel = -0.3 / (0.5 + frand()*0.3);
1231  }
1232 }

Referenced by CL_ParseTEnt().

◆ CL_BlasterParticles2()

void CL_BlasterParticles2 ( vec3_t  org,
vec3_t  dir,
unsigned int  color 
)

Definition at line 1238 of file cl_newfx.c.

1239 {
1240  int i, j;
1241  cparticle_t *p;
1242  float d;
1243  int count;
1244 
1245  count = 40;
1246  for (i=0 ; i<count ; i++)
1247  {
1248  if (!free_particles)
1249  return;
1250  p = free_particles;
1251  free_particles = p->next;
1252  p->next = active_particles;
1253  active_particles = p;
1254 
1255  p->time = cl.time;
1256  p->color = color + (rand()&7);
1257 
1258  d = rand()&15;
1259  for (j=0 ; j<3 ; j++)
1260  {
1261  p->org[j] = org[j] + ((rand()&7)-4) + d*dir[j];
1262  p->vel[j] = dir[j] * 30 + crand()*40;
1263  }
1264 
1265  p->accel[0] = p->accel[1] = 0;
1266  p->accel[2] = -PARTICLE_GRAVITY;
1267  p->alpha = 1.0;
1268 
1269  p->alphavel = -1.0 / (0.5 + frand()*0.3);
1270  }
1271 }

Referenced by CL_ParseTEnt().

◆ CL_BlasterTrail()

void CL_BlasterTrail ( vec3_t  start,
vec3_t  end 
)

Definition at line 1284 of file cl_fx.c.

1285 {
1286  vec3_t move;
1287  vec3_t vec;
1288  float len;
1289  int j;
1290  cparticle_t *p;
1291  int dec;
1292 
1293  VectorCopy (start, move);
1294  VectorSubtract (end, start, vec);
1295  len = VectorNormalize (vec);
1296 
1297  dec = 5;
1298  VectorScale (vec, 5, vec);
1299 
1300  // FIXME: this is a really silly way to have a loop
1301  while (len > 0)
1302  {
1303  len -= dec;
1304 
1305  if (!free_particles)
1306  return;
1307  p = free_particles;
1308  free_particles = p->next;
1309  p->next = active_particles;
1310  active_particles = p;
1311  VectorClear (p->accel);
1312 
1313  p->time = cl.time;
1314 
1315  p->alpha = 1.0;
1316  p->alphavel = -1.0 / (0.3+frand()*0.2);
1317  p->color = 0xe0;
1318  for (j=0 ; j<3 ; j++)
1319  {
1320  p->org[j] = move[j] + crand();
1321  p->vel[j] = crand()*5;
1322  p->accel[j] = 0;
1323  }
1324 
1325  VectorAdd (move, vec, move);
1326  }
1327 }

Referenced by CL_AddPacketEntities().

◆ CL_BlasterTrail2()

void CL_BlasterTrail2 ( vec3_t  start,
vec3_t  end 
)

Definition at line 1280 of file cl_newfx.c.

1281 {
1282  vec3_t move;
1283  vec3_t vec;
1284  float len;
1285  int j;
1286  cparticle_t *p;
1287  int dec;
1288 
1289  VectorCopy (start, move);
1290  VectorSubtract (end, start, vec);
1291  len = VectorNormalize (vec);
1292 
1293  dec = 5;
1294  VectorScale (vec, 5, vec);
1295 
1296  // FIXME: this is a really silly way to have a loop
1297  while (len > 0)
1298  {
1299  len -= dec;
1300 
1301  if (!free_particles)
1302  return;
1303  p = free_particles;
1304  free_particles = p->next;
1305  p->next = active_particles;
1306  active_particles = p;
1307  VectorClear (p->accel);
1308 
1309  p->time = cl.time;
1310 
1311  p->alpha = 1.0;
1312  p->alphavel = -1.0 / (0.3+frand()*0.2);
1313  p->color = 0xd0;
1314  for (j=0 ; j<3 ; j++)
1315  {
1316  p->org[j] = move[j] + crand();
1317  p->vel[j] = crand()*5;
1318  p->accel[j] = 0;
1319  }
1320 
1321  VectorAdd (move, vec, move);
1322  }
1323 }

Referenced by CL_AddPacketEntities().

◆ CL_BubbleTrail()

void CL_BubbleTrail ( vec3_t  start,
vec3_t  end 
)

Definition at line 1768 of file cl_fx.c.

1769 {
1770  vec3_t move;
1771  vec3_t vec;
1772  float len;
1773  int i, j;
1774  cparticle_t *p;
1775  float dec;
1776 
1777  VectorCopy (start, move);
1778  VectorSubtract (end, start, vec);
1779  len = VectorNormalize (vec);
1780 
1781  dec = 32;
1782  VectorScale (vec, dec, vec);
1783 
1784  for (i=0 ; i<len ; i+=dec)
1785  {
1786  if (!free_particles)
1787  return;
1788 
1789  p = free_particles;
1790  free_particles = p->next;
1791  p->next = active_particles;
1792  active_particles = p;
1793 
1794  VectorClear (p->accel);
1795  p->time = cl.time;
1796 
1797  p->alpha = 1.0;
1798  p->alphavel = -1.0 / (1+frand()*0.2);
1799  p->color = 4 + (rand()&7);
1800  for (j=0 ; j<3 ; j++)
1801  {
1802  p->org[j] = move[j] + crand()*2;
1803  p->vel[j] = crand()*5;
1804  }
1805  p->vel[2] += 6;
1806 
1807  VectorAdd (move, vec, move);
1808  }
1809 }

Referenced by CL_ParseTEnt().

◆ CL_BubbleTrail2()

void CL_BubbleTrail2 ( vec3_t  start,
vec3_t  end,
int  dist 
)

Definition at line 388 of file cl_newfx.c.

389 {
390  vec3_t move;
391  vec3_t vec;
392  float len;
393  int i, j;
394  cparticle_t *p;
395  float dec;
396 
397  VectorCopy (start, move);
398  VectorSubtract (end, start, vec);
399  len = VectorNormalize (vec);
400 
401  dec = dist;
402  VectorScale (vec, dec, vec);
403 
404  for (i=0 ; i<len ; i+=dec)
405  {
406  if (!free_particles)
407  return;
408 
409  p = free_particles;
410  free_particles = p->next;
411  p->next = active_particles;
412  active_particles = p;
413 
414  VectorClear (p->accel);
415  p->time = cl.time;
416 
417  p->alpha = 1.0;
418  p->alphavel = -1.0 / (1+frand()*0.1);
419  p->color = 4 + (rand()&7);
420  for (j=0 ; j<3 ; j++)
421  {
422  p->org[j] = move[j] + crand()*2;
423  p->vel[j] = crand()*10;
424  }
425  p->org[2] -= 4;
426 // p->vel[2] += 6;
427  p->vel[2] += 20;
428 
429  VectorAdd (move, vec, move);
430  }
431 }

Referenced by CL_ParseTEnt().

◆ CL_CheckOrDownloadFile()

qboolean CL_CheckOrDownloadFile ( char *  filename)

Definition at line 69 of file cl_parse.c.

70 {
71  FILE *fp;
72  char name[MAX_OSPATH];
73 
74  if (strstr (filename, ".."))
75  {
76  Com_Printf ("Refusing to download a path with ..\n");
77  return true;
78  }
79 
80  if (FS_LoadFile (filename, NULL) != -1)
81  { // it exists, no need to download
82  return true;
83  }
84 
85  strcpy (cls.downloadname, filename);
86 
87  // download to a temp name, and only rename
88  // to the real name when done, so if interrupted
89  // a runt file wont be left
91  strcat (cls.downloadtempname, ".tmp");
92 
93 //ZOID
94  // check to see if we already have a tmp for this file, if so, try to resume
95  // open the file if not opened yet
97 
98 // FS_CreatePath (name);
99 
100  fp = fopen (name, "r+b");
101  if (fp) { // it exists
102  int len;
103  fseek(fp, 0, SEEK_END);
104  len = ftell(fp);
105 
106  cls.download = fp;
107 
108  // give the server an offset to start the download
109  Com_Printf ("Resuming %s\n", cls.downloadname);
112  va("download %s %i", cls.downloadname, len));
113  } else {
114  Com_Printf ("Downloading %s\n", cls.downloadname);
117  va("download %s", cls.downloadname));
118  }
119 
121 
122  return false;
123 }

Referenced by CL_RequestNextDownload().

◆ CL_CheckPredictionError()

void CL_CheckPredictionError ( void  )

Definition at line 29 of file cl_pred.c.

30 {
31  int frame;
32  int delta[3];
33  int i;
34  int len;
35 
37  return;
38 
39  // calculate the last usercmd_t we sent that the server has processed
41  frame &= (CMD_BACKUP-1);
42 
43  // compare what the server returned with what we had predicted it to be
45 
46  // save the prediction error for interpolation
47  len = abs(delta[0]) + abs(delta[1]) + abs(delta[2]);
48  if (len > 640) // 80 world units
49  { // a teleport or something
51  }
52  else
53  {
54  if (cl_showmiss->value && (delta[0] || delta[1] || delta[2]) )
55  Com_Printf ("prediction miss on %i: %i\n", cl.frame.serverframe,
56  delta[0] + delta[1] + delta[2]);
57 
59 
60  // save for error itnerpolation
61  for (i=0 ; i<3 ; i++)
62  cl.prediction_error[i] = delta[i]*0.125;
63  }
64 }

Referenced by CL_ParseFrame().

◆ CL_ClearEffects()

void CL_ClearEffects ( void  )

Definition at line 2301 of file cl_fx.c.

2302 {
2303  CL_ClearParticles ();
2304  CL_ClearDlights ();
2306 }

Referenced by CL_ClearState().

◆ CL_ClearState()

void CL_ClearState ( void  )

Definition at line 595 of file cl_main.c.

596 {
597  S_StopAllSounds ();
598  CL_ClearEffects ();
599  CL_ClearTEnts ();
600 
601 // wipe the entire cl structure
602  memset (&cl, 0, sizeof(cl));
603  memset (&cl_entities, 0, sizeof(cl_entities));
604 
606 
607 }

Referenced by CL_Disconnect(), and CL_ParseServerData().

◆ CL_ClearTEnts()

void CL_ClearTEnts ( void  )

Definition at line 213 of file cl_tent.c.

214 {
215  memset (cl_beams, 0, sizeof(cl_beams));
216  memset (cl_explosions, 0, sizeof(cl_explosions));
217  memset (cl_lasers, 0, sizeof(cl_lasers));
218 
219 //ROGUE
220  memset (cl_playerbeams, 0, sizeof(cl_playerbeams));
221  memset (cl_sustains, 0, sizeof(cl_sustains));
222 //ROGUE
223 }

Referenced by CL_ClearState().

◆ CL_ColorExplosionParticles()

void CL_ColorExplosionParticles ( vec3_t  org,
int  color,
int  run 
)

Definition at line 1156 of file cl_newfx.c.

1157 {
1158  int i, j;
1159  cparticle_t *p;
1160 
1161  for (i=0 ; i<128 ; i++)
1162  {
1163  if (!free_particles)
1164  return;
1165  p = free_particles;
1166  free_particles = p->next;
1167  p->next = active_particles;
1168  active_particles = p;
1169 
1170  p->time = cl.time;
1171  p->color = color + (rand() % run);
1172 
1173  for (j=0 ; j<3 ; j++)
1174  {
1175  p->org[j] = org[j] + ((rand()%32)-16);
1176  p->vel[j] = (rand()%256)-128;
1177  }
1178 
1179  p->accel[0] = p->accel[1] = 0;
1180  p->accel[2] = -PARTICLE_GRAVITY;
1181  p->alpha = 1.0;
1182 
1183  p->alphavel = -0.4 / (0.6 + frand()*0.2);
1184  }
1185 }

Referenced by CL_ParseTEnt().

◆ CL_ColorFlash()

void CL_ColorFlash ( vec3_t  pos,
int  ent,
int  intensity,
float  r,
float  g,
float  b 
)

Definition at line 95 of file cl_newfx.c.

96 {
97  cdlight_t *dl;
98 
99  if((vidref_val == VIDREF_SOFT) && ((r < 0) || (g<0) || (b<0)))
100  {
101  intensity = -intensity;
102  r = -r;
103  g = -g;
104  b = -b;
105  }
106 
107  dl = CL_AllocDlight (ent);
108  VectorCopy (pos, dl->origin);
109  dl->radius = intensity;
110  dl->minlight = 250;
111  dl->die = cl.time + 100;
112  dl->color[0] = r;
113  dl->color[1] = g;
114  dl->color[2] = b;
115 }

Referenced by CL_ParseTEnt().

◆ CL_DebugTrail()

void CL_DebugTrail ( vec3_t  start,
vec3_t  end 
)

Definition at line 123 of file cl_newfx.c.

124 {
125  vec3_t move;
126  vec3_t vec;
127  float len;
128 // int j;
129  cparticle_t *p;
130  float dec;
131  vec3_t right, up;
132 // int i;
133 // float d, c, s;
134 // vec3_t dir;
135 
136  VectorCopy (start, move);
137  VectorSubtract (end, start, vec);
138  len = VectorNormalize (vec);
139 
140  MakeNormalVectors (vec, right, up);
141 
142 // VectorScale(vec, RT2_SKIP, vec);
143 
144 // dec = 1.0;
145 // dec = 0.75;
146  dec = 3;
147  VectorScale (vec, dec, vec);
148  VectorCopy (start, move);
149 
150  while (len > 0)
151  {
152  len -= dec;
153 
154  if (!free_particles)
155  return;
156  p = free_particles;
157  free_particles = p->next;
158  p->next = active_particles;
159  active_particles = p;
160 
161  p->time = cl.time;
162  VectorClear (p->accel);
163  VectorClear (p->vel);
164  p->alpha = 1.0;
165  p->alphavel = -0.1;
166 // p->alphavel = 0;
167  p->color = 0x74 + (rand()&7);
168  VectorCopy (move, p->org);
169 /*
170  for (j=0 ; j<3 ; j++)
171  {
172  p->org[j] = move[j] + crand()*2;
173  p->vel[j] = crand()*3;
174  p->accel[j] = 0;
175  }
176 */
177  VectorAdd (move, vec, move);
178  }
179 
180 }

Referenced by CL_ParseTEnt().

◆ CL_DiminishingTrail()

void CL_DiminishingTrail ( vec3_t  start,
vec3_t  end,
centity_t old,
int  flags 
)

Definition at line 1435 of file cl_fx.c.

1436 {
1437  vec3_t move;
1438  vec3_t vec;
1439  float len;
1440  int j;
1441  cparticle_t *p;
1442  float dec;
1443  float orgscale;
1444  float velscale;
1445 
1446  VectorCopy (start, move);
1447  VectorSubtract (end, start, vec);
1448  len = VectorNormalize (vec);
1449 
1450  dec = 0.5;
1451  VectorScale (vec, dec, vec);
1452 
1453  if (old->trailcount > 900)
1454  {
1455  orgscale = 4;
1456  velscale = 15;
1457  }
1458  else if (old->trailcount > 800)
1459  {
1460  orgscale = 2;
1461  velscale = 10;
1462  }
1463  else
1464  {
1465  orgscale = 1;
1466  velscale = 5;
1467  }
1468 
1469  while (len > 0)
1470  {
1471  len -= dec;
1472 
1473  if (!free_particles)
1474  return;
1475 
1476  // drop less particles as it flies
1477  if ((rand()&1023) < old->trailcount)
1478  {
1479  p = free_particles;
1480  free_particles = p->next;
1481  p->next = active_particles;
1482  active_particles = p;
1483  VectorClear (p->accel);
1484 
1485  p->time = cl.time;
1486 
1487  if (flags & EF_GIB)
1488  {
1489  p->alpha = 1.0;
1490  p->alphavel = -1.0 / (1+frand()*0.4);
1491  p->color = 0xe8 + (rand()&7);
1492  for (j=0 ; j<3 ; j++)
1493  {
1494  p->org[j] = move[j] + crand()*orgscale;
1495  p->vel[j] = crand()*velscale;
1496  p->accel[j] = 0;
1497  }
1498  p->vel[2] -= PARTICLE_GRAVITY;
1499  }
1500  else if (flags & EF_GREENGIB)
1501  {
1502  p->alpha = 1.0;
1503  p->alphavel = -1.0 / (1+frand()*0.4);
1504  p->color = 0xdb + (rand()&7);
1505  for (j=0; j< 3; j++)
1506  {
1507  p->org[j] = move[j] + crand()*orgscale;
1508  p->vel[j] = crand()*velscale;
1509  p->accel[j] = 0;
1510  }
1511  p->vel[2] -= PARTICLE_GRAVITY;
1512  }
1513  else
1514  {
1515  p->alpha = 1.0;
1516  p->alphavel = -1.0 / (1+frand()*0.2);
1517  p->color = 4 + (rand()&7);
1518  for (j=0 ; j<3 ; j++)
1519  {
1520  p->org[j] = move[j] + crand()*orgscale;
1521  p->vel[j] = crand()*velscale;
1522  }
1523  p->accel[2] = 20;
1524  }
1525  }
1526 
1527  old->trailcount -= 5;
1528  if (old->trailcount < 100)
1529  old->trailcount = 100;
1530  VectorAdd (move, vec, move);
1531  }
1532 }

Referenced by CL_AddPacketEntities(), and CL_RocketTrail().

◆ CL_Disconnect()

void CL_Disconnect ( void  )

Definition at line 618 of file cl_main.c.

619 {
620  byte final[32];
621 
622  if (cls.state == ca_disconnected)
623  return;
624 
625  if (cl_timedemo && cl_timedemo->value)
626  {
627  int time;
628 
629  time = Sys_Milliseconds () - cl.timedemo_start;
630  if (time > 0)
631  Com_Printf ("%i frames, %3.1f seconds: %3.1f fps\n", cl.timedemo_frames,
632  time/1000.0, cl.timedemo_frames*1000.0 / time);
633  }
634 
637 
638  M_ForceMenuOff ();
639 
640  cls.connect_time = 0;
641 
643 
644  if (cls.demorecording)
645  CL_Stop_f ();
646 
647  // send a disconnect message to the server
648  final[0] = clc_stringcmd;
649  strcpy ((char *)final+1, "disconnect");
650  Netchan_Transmit (&cls.netchan, (int)strlen(final), final);
651  Netchan_Transmit (&cls.netchan, (int)strlen(final), final);
652  Netchan_Transmit (&cls.netchan, (int)strlen(final), final);
653 
654  CL_ClearState ();
655 
656  // stop download
657  if (cls.download) {
658  fclose(cls.download);
659  cls.download = NULL;
660  }
661 
663 }

Referenced by CL_Connect_f(), CL_Drop(), CL_Quit_f(), CL_ReadPackets(), CL_Reconnect_f(), and MainWndProc().

◆ CL_Disconnect_f()

void CL_Disconnect_f ( void  )

Definition at line 665 of file cl_main.c.

666 {
667  Com_Error (ERR_DROP, "Disconnected from server");
668 }

Referenced by CL_InitLocal().

◆ CL_Download_f()

void CL_Download_f ( void  )

Definition at line 132 of file cl_parse.c.

133 {
134  char filename[MAX_OSPATH];
135 
136  if (Cmd_Argc() != 2) {
137  Com_Printf("Usage: download <filename>\n");
138  return;
139  }
140 
141  Com_sprintf(filename, sizeof(filename), "%s", Cmd_Argv(1));
142 
143  if (strstr (filename, ".."))
144  {
145  Com_Printf ("Refusing to download a path with ..\n");
146  return;
147  }
148 
149  if (FS_LoadFile (filename, NULL) != -1)
150  { // it exists, no need to download
151  Com_Printf("File already exists.\n");
152  return;
153  }
154 
155  strcpy (cls.downloadname, filename);
156  Com_Printf ("Downloading %s\n", cls.downloadname);
157 
158  // download to a temp name, and only rename
159  // to the real name when done, so if interrupted
160  // a runt file wont be left
162  strcat (cls.downloadtempname, ".tmp");
163 
166  va("download %s", cls.downloadname));
167 
169 }

Referenced by CL_InitLocal().

◆ CL_DrawInventory()

void CL_DrawInventory ( void  )

Definition at line 68 of file cl_inv.c.

69 {
70  int i, j;
71  int num, selected_num, item;
72  int index[MAX_ITEMS];
73  char string[1024];
74  int x, y;
75  char binding[1024];
76  char *bind;
77  int selected;
78  int top;
79 
81 
82  num = 0;
83  selected_num = 0;
84  for (i=0 ; i<MAX_ITEMS ; i++)
85  {
86  if (i==selected)
87  selected_num = num;
88  if (cl.inventory[i])
89  {
90  index[num] = i;
91  num++;
92  }
93  }
94 
95  // determine scroll point
96  top = selected_num - DISPLAY_ITEMS/2;
97  if (num - top < DISPLAY_ITEMS)
98  top = num - DISPLAY_ITEMS;
99  if (top < 0)
100  top = 0;
101 
102  x = (viddef.width-256 * vid_hudscale->value)/2;
103  y = (viddef.height-240 * vid_hudscale->value)/2;
104 
105  // repaint everything next frame
106  SCR_DirtyScreen ();
107 
108  re.DrawPic (x, y + 8 * vid_hudscale->value, "inventory");
109 
110  y += 24 * vid_hudscale->value;
111  x += 24 * vid_hudscale->value;
112  Inv_DrawString (x, y, "hotkey ### item");
113  Inv_DrawString (x, y+8*vid_hudscale->value, "------ --- ----");
114  y += 16 * vid_hudscale->value;
115  for (i=top ; i<num && i < top+DISPLAY_ITEMS ; i++)
116  {
117  item = index[i];
118  // search for a binding
119  Com_sprintf (binding, sizeof(binding), "use %s", cl.configstrings[CS_ITEMS+item]);
120  bind = "";
121  for (j=0 ; j<256 ; j++)
122  if (keybindings[j] && !Q_stricmp (keybindings[j], binding))
123  {
124  bind = Key_KeynumToString(j);
125  break;
126  }
127 
128  Com_sprintf (string, sizeof(string), "%6s %3i %s", bind, cl.inventory[item],
130  if (item != selected)
131  SetStringHighBit (string);
132  else // draw a blinky cursor by the selected item
133  {
134  if ( (int)(cls.realtime*10) & 1)
135  re.DrawChar (x - 8 * vid_hudscale->value, y * vid_hudscale->value, 15);
136  }
137  Inv_DrawString (x, y, string);
138  y += 8 * vid_hudscale->value;
139  }
140 
141 
142 }

Referenced by SCR_UpdateScreen().

◆ CL_EntityEvent()

void CL_EntityEvent ( entity_state_t ent)

Definition at line 2266 of file cl_fx.c.

2267 {
2268  switch (ent->event)
2269  {
2270  case EV_ITEM_RESPAWN:
2271  S_StartSound (NULL, ent->number, CHAN_WEAPON, S_RegisterSound("items/respawn1.wav"), 1, ATTN_IDLE, 0);
2273  break;
2274  case EV_PLAYER_TELEPORT:
2275  S_StartSound (NULL, ent->number, CHAN_WEAPON, S_RegisterSound("misc/tele1.wav"), 1, ATTN_IDLE, 0);
2277  break;
2278  case EV_FOOTSTEP:
2279  if (cl_footsteps->value)
2280  S_StartSound (NULL, ent->number, CHAN_BODY, cl_sfx_footsteps[rand()&3], 1, ATTN_NORM, 0);
2281  break;
2282  case EV_FALLSHORT:
2283  S_StartSound (NULL, ent->number, CHAN_AUTO, S_RegisterSound ("player/land1.wav"), 1, ATTN_NORM, 0);
2284  break;
2285  case EV_FALL:
2286  S_StartSound (NULL, ent->number, CHAN_AUTO, S_RegisterSound ("*fall2.wav"), 1, ATTN_NORM, 0);
2287  break;
2288  case EV_FALLFAR:
2289  S_StartSound (NULL, ent->number, CHAN_AUTO, S_RegisterSound ("*fall1.wav"), 1, ATTN_NORM, 0);
2290  break;
2291  }
2292 }

Referenced by CL_FireEntityEvents().

◆ CL_FixUpGender()

void CL_FixUpGender ( void  )

Definition at line 1053 of file cl_main.c.

1054 {
1055  char *p;
1056  char sk[80];
1057 
1058  if (gender_auto->value) {
1059 
1060  if (gender->modified) {
1061  // was set directly, don't override the user
1062  gender->modified = false;
1063  return;
1064  }
1065 
1066  strncpy(sk, skin->string, sizeof(sk) - 1);
1067  if ((p = strchr(sk, '/')) != NULL)
1068  *p = 0;
1069  if (Q_stricmp(sk, "male") == 0 || Q_stricmp(sk, "cyborg") == 0)
1070  Cvar_Set ("gender", "male");
1071  else if (Q_stricmp(sk, "female") == 0 || Q_stricmp(sk, "crackhor") == 0)
1072  Cvar_Set ("gender", "female");
1073  else
1074  Cvar_Set ("gender", "none");
1075  gender->modified = false;
1076  }
1077 }

Referenced by CL_SendCmd().

◆ CL_FlagTrail()

void CL_FlagTrail ( vec3_t  start,
vec3_t  end,
float  color 
)

Definition at line 1385 of file cl_fx.c.

1386 {
1387  vec3_t move;
1388  vec3_t vec;
1389  float len;
1390  int j;
1391  cparticle_t *p;
1392  int dec;
1393 
1394  VectorCopy (start, move);
1395  VectorSubtract (end, start, vec);
1396  len = VectorNormalize (vec);
1397 
1398  dec = 5;
1399  VectorScale (vec, 5, vec);
1400 
1401  while (len > 0)
1402  {
1403  len -= dec;
1404 
1405  if (!free_particles)
1406  return;
1407  p = free_particles;
1408  free_particles = p->next;
1409  p->next = active_particles;
1410  active_particles = p;
1411  VectorClear (p->accel);
1412 
1413  p->time = cl.time;
1414 
1415  p->alpha = 1.0;
1416  p->alphavel = -1.0 / (0.8+frand()*0.2);
1417  p->color = color;
1418  for (j=0 ; j<3 ; j++)
1419  {
1420  p->org[j] = move[j] + crand()*16;
1421  p->vel[j] = crand()*5;
1422  p->accel[j] = 0;
1423  }
1424 
1425  VectorAdd (move, vec, move);
1426  }
1427 }

Referenced by CL_AddPacketEntities().

◆ CL_FlameEffects()

void CL_FlameEffects ( centity_t ent,
vec3_t  origin 
)

Definition at line 279 of file cl_newfx.c.

280 {
281  int n, count;
282  int j;
283  cparticle_t *p;
284 
285  count = rand() & 0xF;
286 
287  for(n=0;n<count;n++)
288  {
289  if (!free_particles)
290  return;
291 
292  p = free_particles;
293  free_particles = p->next;
294  p->next = active_particles;
295  active_particles = p;
296 
297  VectorClear (p->accel);
298  p->time = cl.time;
299 
300  p->alpha = 1.0;
301  p->alphavel = -1.0 / (1+frand()*0.2);
302  p->color = 226 + (rand() % 4);
303  for (j=0 ; j<3 ; j++)
304  {
305  p->org[j] = origin[j] + crand()*5;
306  p->vel[j] = crand()*5;
307  }
308  p->vel[2] = crand() * -10;
309  p->accel[2] = -PARTICLE_GRAVITY;
310  }
311 
312  count = rand() & 0x7;
313 
314  for(n=0;n<count;n++)
315  {
316  if (!free_particles)
317  return;
318  p = free_particles;
319  free_particles = p->next;
320  p->next = active_particles;
321  active_particles = p;
322  VectorClear (p->accel);
323 
324  p->time = cl.time;
325 
326  p->alpha = 1.0;
327  p->alphavel = -1.0 / (1+frand()*0.5);
328  p->color = 0 + (rand() % 4);
329  for (j=0 ; j<3 ; j++)
330  {
331  p->org[j] = origin[j] + crand()*3;
332  }
333  p->vel[2] = 20 + crand()*5;
334  }
335 
336 }

◆ CL_Flashlight()

void CL_Flashlight ( int  ent,
vec3_t  pos 
)

Definition at line 76 of file cl_newfx.c.

77 {
78  cdlight_t *dl;
79 
80  dl = CL_AllocDlight (ent);
81  VectorCopy (pos, dl->origin);
82  dl->radius = 400;
83  dl->minlight = 250;
84  dl->die = cl.time + 100;
85  dl->color[0] = 1;
86  dl->color[1] = 1;
87  dl->color[2] = 1;
88 }

Referenced by CL_ParseTEnt().

◆ CL_FlyEffect()

void CL_FlyEffect ( centity_t ent,
vec3_t  origin 
)

Definition at line 1886 of file cl_fx.c.

1887 {
1888  int n;
1889  int count;
1890  int starttime;
1891 
1892  if (ent->fly_stoptime < cl.time)
1893  {
1894  starttime = cl.time;
1895  ent->fly_stoptime = cl.time + 60000;
1896  }
1897  else
1898  {
1899  starttime = ent->fly_stoptime - 60000;
1900  }
1901 
1902  n = cl.time - starttime;
1903  if (n < 20000)
1904  count = n * 162 / 20000.0;
1905  else
1906  {
1907  n = ent->fly_stoptime - cl.time;
1908  if (n < 20000)
1909  count = n * 162 / 20000.0;
1910  else
1911  count = 162;
1912  }
1913 
1914  CL_FlyParticles (origin, count);
1915 }

Referenced by CL_AddPacketEntities().

◆ CL_ForceWall()

void CL_ForceWall ( vec3_t  start,
vec3_t  end,
int  color 
)

Definition at line 230 of file cl_newfx.c.

231 {
232  vec3_t move;
233  vec3_t vec;
234  float len;
235  int j;
236  cparticle_t *p;
237 
238  VectorCopy (start, move);
239  VectorSubtract (end, start, vec);
240  len = VectorNormalize (vec);
241 
242  VectorScale (vec, 4, vec);
243 
244  // FIXME: this is a really silly way to have a loop
245  while (len > 0)
246  {
247  len -= 4;
248 
249  if (!free_particles)
250  return;
251 
252  if (frand() > 0.3)
253  {
254  p = free_particles;
255  free_particles = p->next;
256  p->next = active_particles;
257  active_particles = p;
258  VectorClear (p->accel);
259 
260  p->time = cl.time;
261 
262  p->alpha = 1.0;
263  p->alphavel = -1.0 / (3.0+frand()*0.5);
264  p->color = color;
265  for (j=0 ; j<3 ; j++)
266  {
267  p->org[j] = move[j] + crand()*3;
268  p->accel[j] = 0;
269  }
270  p->vel[0] = 0;
271  p->vel[1] = 0;
272  p->vel[2] = -40 - (crand()*10);
273  }
274 
275  VectorAdd (move, vec, move);
276  }
277 }

Referenced by CL_ParseTEnt().

◆ CL_GenericParticleEffect()

void CL_GenericParticleEffect ( vec3_t  org,
vec3_t  dir,
int  color,
int  count,
int  numcolors,
int  dirspread,
float  alphavel 
)

Definition at line 344 of file cl_newfx.c.

345 {
346  int i, j;
347  cparticle_t *p;
348  float d;
349 
350  for (i=0 ; i<count ; i++)
351  {
352  if (!free_particles)
353  return;
354  p = free_particles;
355  free_particles = p->next;
356  p->next = active_particles;
357  active_particles = p;
358 
359  p->time = cl.time;
360  if (numcolors > 1)
361  p->color = color + (rand() & numcolors);
362  else
363  p->color = color;
364 
365  d = rand() & dirspread;
366  for (j=0 ; j<3 ; j++)
367  {
368  p->org[j] = org[j] + ((rand()&7)-4) + d*dir[j];
369  p->vel[j] = crand()*20;
370  }
371 
372  p->accel[0] = p->accel[1] = 0;
373  p->accel[2] = -PARTICLE_GRAVITY;
374 // VectorCopy (accel, p->accel);
375  p->alpha = 1.0;
376 
377  p->alphavel = -1.0 / (0.5 + frand()*alphavel);
378 // p->alphavel = alphavel;
379  }
380 }

◆ CL_GetChallengePacket()

void CL_GetChallengePacket ( void  )

◆ CL_Heatbeam()

void CL_Heatbeam ( vec3_t  start,
vec3_t  end 
)

Definition at line 525 of file cl_newfx.c.

526 {
527  vec3_t move;
528  vec3_t vec;
529  float len;
530  int j;
531  cparticle_t *p;
532  vec3_t right, up;
533  int i;
534  float c, s;
535  vec3_t dir;
536  float ltime;
537  float step = 32.0, rstep;
538  float start_pt;
539  float rot;
540  float variance;
541  vec3_t end;
542 
543  VectorMA (start, 4096, forward, end);
544 
545  VectorCopy (start, move);
546  VectorSubtract (end, start, vec);
547  len = VectorNormalize (vec);
548 
549  // FIXME - pmm - these might end up using old values?
550 // MakeNormalVectors (vec, right, up);
552  VectorCopy (cl.v_up, up);
553  if (vidref_val == VIDREF_GL)
554  { // GL mode
555  VectorMA (move, -0.5, right, move);
556  VectorMA (move, -0.5, up, move);
557  }
558  // otherwise assume SOFT
559 
560  ltime = (float) cl.time/1000.0;
561  start_pt = fmod(ltime*96.0,step);
562  VectorMA (move, start_pt, vec, move);
563 
564  VectorScale (vec, step, vec);
565 
566 // Com_Printf ("%f\n", ltime);
567  rstep = M_PI/10.0;
568  for (i=start_pt ; i<len ; i+=step)
569  {
570  if (i>step*5) // don't bother after the 5th ring
571  break;
572 
573  for (rot = 0; rot < M_PI*2; rot += rstep)
574  {
575 
576  if (!free_particles)
577  return;
578 
579  p = free_particles;
580  free_particles = p->next;
581  p->next = active_particles;
582  active_particles = p;
583 
584  p->time = cl.time;
585  VectorClear (p->accel);
586 // rot+= fmod(ltime, 12.0)*M_PI;
587 // c = cos(rot)/2.0;
588 // s = sin(rot)/2.0;
589 // variance = 0.4 + ((float)rand()/(float)RAND_MAX) *0.2;
590  variance = 0.5;
591  c = cos(rot)*variance;
592  s = sin(rot)*variance;
593 
594  // trim it so it looks like it's starting at the origin
595  if (i < 10)
596  {
597  VectorScale (right, c*(i/10.0), dir);
598  VectorMA (dir, s*(i/10.0), up, dir);
599  }
600  else
601  {
602  VectorScale (right, c, dir);
603  VectorMA (dir, s, up, dir);
604  }
605 
606  p->alpha = 0.5;
607  // p->alphavel = -1.0 / (1+frand()*0.2);
608  p->alphavel = -1000.0;
609  // p->color = 0x74 + (rand()&7);
610  p->color = 223 - (rand()&7);
611  for (j=0 ; j<3 ; j++)
612  {
613  p->org[j] = move[j] + dir[j]*3;
614  // p->vel[j] = dir[j]*6;
615  p->vel[j] = 0;
616  }
617  }
618  VectorAdd (move, vec, move);
619  }
620 }

Referenced by CL_AddPlayerBeams().

◆ CL_Init()

void CL_Init ( void  )

Definition at line 1785 of file cl_main.c.

1786 {
1787  if (dedicated->value)
1788  return; // nothing running on the client
1789 
1790  // all archived variables will now be loaded
1791 
1792  Con_Init ();
1793 #if defined __linux__ || defined __sgi
1794  S_Init ();
1795  VID_Init ();
1796 #else
1797  VID_Init ();
1798  S_Init (); // sound must be initialized after window is created
1799 #endif
1800 
1801  V_Init ();
1802 
1805 
1806  M_Init ();
1807 
1808  SCR_Init ();
1809  cls.disable_screen = true; // don't draw yet
1810 
1811  CDAudio_Init ();
1812  Miniaudio_Init ();
1813  CL_InitLocal ();
1814  IN_Init ();
1815 
1816 // Cbuf_AddText ("exec autoexec.cfg\n");
1817  FS_ExecAutoexec ();
1818  Cbuf_Execute ();
1819 
1820 }

◆ CL_InitInput()

void CL_InitInput ( void  )

Definition at line 414 of file cl_input.c.

415 {
416  Cmd_AddCommand ("centerview",IN_CenterView);
417 
418  Cmd_AddCommand ("+moveup",IN_UpDown);
419  Cmd_AddCommand ("-moveup",IN_UpUp);
420  Cmd_AddCommand ("+movedown",IN_DownDown);
421  Cmd_AddCommand ("-movedown",IN_DownUp);
422  Cmd_AddCommand ("+left",IN_LeftDown);
423  Cmd_AddCommand ("-left",IN_LeftUp);
424  Cmd_AddCommand ("+right",IN_RightDown);
425  Cmd_AddCommand ("-right",IN_RightUp);
426  Cmd_AddCommand ("+forward",IN_ForwardDown);
427  Cmd_AddCommand ("-forward",IN_ForwardUp);
428  Cmd_AddCommand ("+back",IN_BackDown);
429  Cmd_AddCommand ("-back",IN_BackUp);
430  Cmd_AddCommand ("+lookup", IN_LookupDown);
431  Cmd_AddCommand ("-lookup", IN_LookupUp);
432  Cmd_AddCommand ("+lookdown", IN_LookdownDown);
433  Cmd_AddCommand ("-lookdown", IN_LookdownUp);
434  Cmd_AddCommand ("+strafe", IN_StrafeDown);
435  Cmd_AddCommand ("-strafe", IN_StrafeUp);
436  Cmd_AddCommand ("+moveleft", IN_MoveleftDown);
437  Cmd_AddCommand ("-moveleft", IN_MoveleftUp);
438  Cmd_AddCommand ("+moveright", IN_MoverightDown);
439  Cmd_AddCommand ("-moveright", IN_MoverightUp);
440  Cmd_AddCommand ("+speed", IN_SpeedDown);
441  Cmd_AddCommand ("-speed", IN_SpeedUp);
442  Cmd_AddCommand ("+attack", IN_AttackDown);
443  Cmd_AddCommand ("-attack", IN_AttackUp);
444  Cmd_AddCommand ("+use", IN_UseDown);
445  Cmd_AddCommand ("-use", IN_UseUp);
446  Cmd_AddCommand ("impulse", IN_Impulse);
447  Cmd_AddCommand ("+klook", IN_KLookDown);
448  Cmd_AddCommand ("-klook", IN_KLookUp);
449 
450  cl_nodelta = Cvar_Get ("cl_nodelta", "0", 0);
451 }

Referenced by CL_InitLocal().

◆ CL_InitPrediction()

void CL_InitPrediction ( void  )

◆ CL_IonripperTrail()

void CL_IonripperTrail ( vec3_t  start,
vec3_t  end 
)

Definition at line 1704 of file cl_fx.c.

1705 {
1706  vec3_t move;
1707  vec3_t vec;
1708  float len;
1709  int j;
1710  cparticle_t *p;
1711  int dec;
1712  int left = 0;
1713 
1714  VectorCopy (start, move);
1715  VectorSubtract (ent, start, vec);
1716  len = VectorNormalize (vec);
1717 
1718  dec = 5;
1719  VectorScale (vec, 5, vec);
1720 
1721  while (len > 0)
1722  {
1723  len -= dec;
1724 
1725  if (!free_particles)
1726  return;
1727  p = free_particles;
1728  free_particles = p->next;
1729  p->next = active_particles;
1730  active_particles = p;
1731  VectorClear (p->accel);
1732 
1733  p->time = cl.time;
1734  p->alpha = 0.5;
1735  p->alphavel = -1.0 / (0.3 + frand() * 0.2);
1736  p->color = 0xe4 + (rand()&3);
1737 
1738  for (j=0; j<3; j++)
1739  {
1740  p->org[j] = move[j];
1741  p->accel[j] = 0;
1742  }
1743  if (left)
1744  {
1745  left = 0;
1746  p->vel[0] = 10;
1747  }
1748  else
1749  {
1750  left = 1;
1751  p->vel[0] = -10;
1752  }
1753 
1754  p->vel[1] = 0;
1755  p->vel[2] = 0;
1756 
1757  VectorAdd (move, vec, move);
1758  }
1759 }

Referenced by CL_AddPacketEntities().

◆ CL_KeyInventory()

void CL_KeyInventory ( int  key)

◆ CL_KeyState()

float CL_KeyState ( kbutton_t key)

Definition at line 186 of file cl_input.c.

187 {
188  float val;
189  int msec;
190 
191  key->state &= 1; // clear impulses
192 
193  msec = key->msec;
194  key->msec = 0;
195 
196  if (key->state)
197  { // still down
198  msec += sys_frame_time - key->downtime;
199  key->downtime = sys_frame_time;
200  }
201 
202 #if 0
203  if (msec)
204  {
205  Com_Printf ("%i ", msec);
206  }
207 #endif
208 
209  val = (float)msec / frame_msec;
210  if (val < 0)
211  val = 0;
212  if (val > 1)
213  val = 1;
214 
215  return val;
216 }

Referenced by CL_AdjustAngles(), and CL_BaseMove().

◆ CL_LoadClientinfo()

void CL_LoadClientinfo ( clientinfo_t ci,
char *  s 
)

Definition at line 380 of file cl_parse.c.

381 {
382  int i;
383  char *t;
384  char model_name[MAX_QPATH];
385  char skin_name[MAX_QPATH];
386  char model_filename[MAX_QPATH];
387  char skin_filename[MAX_QPATH];
388  char weapon_filename[MAX_QPATH];
389 
390  strncpy(ci->cinfo, s, sizeof(ci->cinfo));
391  ci->cinfo[sizeof(ci->cinfo)-1] = 0;
392 
393  // isolate the player's name
394  strncpy(ci->name, s, sizeof(ci->name));
395  ci->name[sizeof(ci->name)-1] = 0;
396  t = strstr (s, "\\");
397  if (t)
398  {
399  ci->name[t-s] = 0;
400  s = t+1;
401  }
402 
403  if (cl_noskins->value || *s == 0)
404  {
405  Com_sprintf (model_filename, sizeof(model_filename), "players/male/tris.md2");
406  Com_sprintf (weapon_filename, sizeof(weapon_filename), "players/male/weapon.md2");
407  Com_sprintf (skin_filename, sizeof(skin_filename), "players/male/grunt.pcx");
408  Com_sprintf (ci->iconname, sizeof(ci->iconname), "/players/male/grunt_i.pcx");
409  ci->model = re.RegisterModel (model_filename);
410  memset(ci->weaponmodel, 0, sizeof(ci->weaponmodel));
411  ci->weaponmodel[0] = re.RegisterModel (weapon_filename);
412  ci->skin = re.RegisterSkin (skin_filename);
413  ci->icon = re.RegisterPic (ci->iconname);
414  }
415  else
416  {
417  // isolate the model name
418  strcpy (model_name, s);
419  t = strstr(model_name, "/");
420  if (!t)
421  t = strstr(model_name, "\\");
422  if (!t)
423  t = model_name;
424  *t = 0;
425 
426  // isolate the skin name
427  strcpy (skin_name, s + strlen(model_name) + 1);
428 
429  // model file
430  Com_sprintf (model_filename, sizeof(model_filename), "players/%s/tris.md2", model_name);
431  ci->model = re.RegisterModel (model_filename);
432  if (!ci->model)
433  {
434  strcpy(model_name, "male");
435  Com_sprintf (model_filename, sizeof(model_filename), "players/male/tris.md2");
436  ci->model = re.RegisterModel (model_filename);
437  }
438 
439  // skin file
440  Com_sprintf (skin_filename, sizeof(skin_filename), "players/%s/%s.pcx", model_name, skin_name);
441  ci->skin = re.RegisterSkin (skin_filename);
442 
443  // if we don't have the skin and the model wasn't male,
444  // see if the male has it (this is for CTF's skins)
445  if (!ci->skin && Q_stricmp(model_name, "male"))
446  {
447  // change model to male
448  strcpy(model_name, "male");
449  Com_sprintf (model_filename, sizeof(model_filename), "players/male/tris.md2");
450  ci->model = re.RegisterModel (model_filename);
451 
452  // see if the skin exists for the male model
453  Com_sprintf (skin_filename, sizeof(skin_filename), "players/%s/%s.pcx", model_name, skin_name);
454  ci->skin = re.RegisterSkin (skin_filename);
455  }
456 
457  // if we still don't have a skin, it means that the male model didn't have
458  // it, so default to grunt
459  if (!ci->skin) {
460  // see if the skin exists for the male model
461  Com_sprintf (skin_filename, sizeof(skin_filename), "players/%s/grunt.pcx", model_name, skin_name);
462  ci->skin = re.RegisterSkin (skin_filename);
463  }
464 
465  // weapon file
466  for (i = 0; i < num_cl_weaponmodels; i++) {
467  Com_sprintf (weapon_filename, sizeof(weapon_filename), "players/%s/%s", model_name, cl_weaponmodels[i]);
468  ci->weaponmodel[i] = re.RegisterModel(weapon_filename);
469  if (!ci->weaponmodel[i] && strcmp(model_name, "cyborg") == 0) {
470  // try male
471  Com_sprintf (weapon_filename, sizeof(weapon_filename), "players/male/%s", cl_weaponmodels[i]);
472  ci->weaponmodel[i] = re.RegisterModel(weapon_filename);
473  }
474  if (!cl_vwep->value)
475  break; // only one when vwep is off
476  }
477 
478  // icon file
479  Com_sprintf (ci->iconname, sizeof(ci->iconname), "/players/%s/%s_i.pcx", model_name, skin_name);
480  ci->icon = re.RegisterPic (ci->iconname);
481  }
482 
483  // must have loaded all data types to be valud
484  if (!ci->skin || !ci->icon || !ci->model || !ci->weaponmodel[0])
485  {
486  ci->skin = NULL;
487  ci->icon = NULL;
488  ci->model = NULL;
489  ci->weaponmodel[0] = NULL;
490  return;
491  }
492 }

Referenced by CL_ParseClientinfo(), and CL_PrepRefresh().

◆ CL_MonsterPlasma_Shell()

void CL_MonsterPlasma_Shell ( vec3_t  origin)

Definition at line 929 of file cl_newfx.c.

930 {
931  vec3_t dir;
932  int i;
933  cparticle_t *p;
934 
935  for(i=0;i<40;i++)
936  {
937  if (!free_particles)
938  return;
939  p = free_particles;
940  free_particles = p->next;
941  p->next = active_particles;
942  active_particles = p;
943  VectorClear (p->accel);
944 
945  p->time = cl.time;
946 
947  p->alpha = 1.0;
949  p->color = 0xe0;
950 
951  dir[0] = crand();
952  dir[1] = crand();
953  dir[2] = crand();
954  VectorNormalize(dir);
955 
956  VectorMA(origin, 10, dir, p->org);
957 // VectorMA(origin, 10*(((rand () & 0x7fff) / ((float)0x7fff))), dir, p->org);
958  }
959 }

Referenced by CL_AddPlayerBeams().

◆ CL_Nukeblast()

void CL_Nukeblast ( cl_sustain_t self)

Definition at line 997 of file cl_newfx.c.

998 {
999  vec3_t dir;
1000  int i;
1001  cparticle_t *p;
1002  static int colortable[4] = {110, 112, 114, 116};
1003  float ratio;
1004 
1005  ratio = 1.0 - (((float)self->endtime - (float)cl.time)/1000.0);
1006 
1007  for(i=0;i<700;i++)
1008  {
1009  if (!free_particles)
1010  return;
1011  p = free_particles;
1012  free_particles = p->next;
1013  p->next = active_particles;
1014  active_particles = p;
1015  VectorClear (p->accel);
1016 
1017  p->time = cl.time;
1018 
1019  p->alpha = 1.0;
1021  p->color = colortable[rand()&3];
1022 
1023  dir[0] = crand();
1024  dir[1] = crand();
1025  dir[2] = crand();
1026  VectorNormalize(dir);
1027 
1028  VectorMA(self->org, (200.0 * ratio), dir, p->org);
1029 // VectorMA(origin, 10*(((rand () & 0x7fff) / ((float)0x7fff))), dir, p->org);
1030  }
1031 }

Referenced by CL_ParseNuke().

◆ CL_ParseClientinfo()

void CL_ParseClientinfo ( int  player)

Definition at line 501 of file cl_parse.c.

502 {
503  char *s;
504  clientinfo_t *ci;
505 
506  s = cl.configstrings[player+CS_PLAYERSKINS];
507 
508  ci = &cl.clientinfo[player];
509 
510  CL_LoadClientinfo (ci, s);
511 }

Referenced by CL_ParseConfigString(), CL_PrepRefresh(), and CL_Skins_f().

◆ CL_ParseConfigString()

void CL_ParseConfigString ( void  )

Definition at line 519 of file cl_parse.c.

520 {
521  int i;
522  char *s;
523  char olds[MAX_QPATH];
524 
526  if (i < 0 || i >= MAX_CONFIGSTRINGS)
527  Com_Error (ERR_DROP, "configstring > MAX_CONFIGSTRINGS");
529 
530  strncpy (olds, cl.configstrings[i], sizeof(olds));
531  olds[sizeof(olds) - 1] = 0;
532 
533  strcpy (cl.configstrings[i], s);
534 
535  // do something apropriate
536 
537  if (i >= CS_LIGHTS && i < CS_LIGHTS+MAX_LIGHTSTYLES)
539  else if (i == CS_CDTRACK)
540  {
541  if (cl.refresh_prepped)
542  {
543  int track = atoi(cl.configstrings[CS_CDTRACK]);
544  if (!CDAudio_Play(track, true))
545  Miniaudio_Play(track, true);
546  }
547  }
548  else if (i >= CS_MODELS && i < CS_MODELS+MAX_MODELS)
549  {
550  if (cl.refresh_prepped)
551  {
553  if (cl.configstrings[i][0] == '*')
555  else
557  }
558  }
559  else if (i >= CS_SOUNDS && i < CS_SOUNDS+MAX_MODELS)
560  {
561  if (cl.refresh_prepped)
563  }
564  else if (i >= CS_IMAGES && i < CS_IMAGES+MAX_MODELS)
565  {
566  if (cl.refresh_prepped)
568  }
569  else if (i >= CS_PLAYERSKINS && i < CS_PLAYERSKINS+MAX_CLIENTS)
570  {
571  if (cl.refresh_prepped && strcmp(olds, s))
573  }
574 }

Referenced by CL_ParseServerMessage().

◆ CL_ParseDelta()

void CL_ParseDelta ( entity_state_t from,
entity_state_t to,
int  number,
int  bits 
)

Definition at line 247 of file cl_ents.c.

248 {
249  // set everything to the state we are delta'ing from
250  *to = *from;
251 
252  VectorCopy (from->origin, to->old_origin);
253  to->number = number;
254 
255  if (bits & U_MODEL)
257  if (bits & U_MODEL2)
259  if (bits & U_MODEL3)
261  if (bits & U_MODEL4)
263 
264  if (bits & U_FRAME8)
265  to->frame = MSG_ReadByte (&net_message);
266  if (bits & U_FRAME16)
268 
269  if ((bits & U_SKIN8) && (bits & U_SKIN16)) //used for laser colors
271  else if (bits & U_SKIN8)
273  else if (bits & U_SKIN16)
275 
276  if ( (bits & (U_EFFECTS8|U_EFFECTS16)) == (U_EFFECTS8|U_EFFECTS16) )
278  else if (bits & U_EFFECTS8)
280  else if (bits & U_EFFECTS16)
282 
283  if ( (bits & (U_RENDERFX8|U_RENDERFX16)) == (U_RENDERFX8|U_RENDERFX16) )
285  else if (bits & U_RENDERFX8)
287  else if (bits & U_RENDERFX16)
289 
290  if (bits & U_ORIGIN1)
291  to->origin[0] = MSG_ReadCoord (&net_message);
292  if (bits & U_ORIGIN2)
293  to->origin[1] = MSG_ReadCoord (&net_message);
294  if (bits & U_ORIGIN3)
295  to->origin[2] = MSG_ReadCoord (&net_message);
296 
297  if (bits & U_ANGLE1)
298  to->angles[0] = MSG_ReadAngle(&net_message);
299  if (bits & U_ANGLE2)
300  to->angles[1] = MSG_ReadAngle(&net_message);
301  if (bits & U_ANGLE3)
302  to->angles[2] = MSG_ReadAngle(&net_message);
303 
304  if (bits & U_OLDORIGIN)
306 
307  if (bits & U_SOUND)
308  to->sound = MSG_ReadByte (&net_message);
309 
310  if (bits & U_EVENT)
311  to->event = MSG_ReadByte (&net_message);
312  else
313  to->event = 0;
314 
315  if (bits & U_SOLID)
317 }

Referenced by CL_DeltaEntity(), and CL_ParseBaseline().

◆ CL_ParseEntityBits()

int CL_ParseEntityBits ( unsigned *  bits)

just for protocol profiling

Definition at line 202 of file cl_ents.c.

203 {
204  unsigned b, total;
205  int i;
206  int number;
207 
208  total = MSG_ReadByte (&net_message);
209  if (total & U_MOREBITS1)
210  {
211  b = MSG_ReadByte (&net_message);
212  total |= b<<8;
213  }
214  if (total & U_MOREBITS2)
215  {
216  b = MSG_ReadByte (&net_message);
217  total |= b<<16;
218  }
219  if (total & U_MOREBITS3)
220  {
221  b = MSG_ReadByte (&net_message);
222  total |= b<<24;
223  }
224 
225  // count the bits for net profiling
226  for (i=0 ; i<32 ; i++)
227  if (total&(1<<i))
228  bitcounts[i]++;
229 
230  if (total & U_NUMBER16)
231  number = MSG_ReadShort (&net_message);
232  else
233  number = MSG_ReadByte (&net_message);
234 
235  *bits = total;
236 
237  return number;
238 }

Referenced by CL_ParseBaseline(), and CL_ParsePacketEntities().

◆ CL_ParseFrame()

void CL_ParseFrame ( void  )

Definition at line 663 of file cl_ents.c.

664 {
665  int cmd;
666  int len;
667  frame_t *old;
668 
669  memset (&cl.frame, 0, sizeof(cl.frame));
670 
671 #if 0
672  CL_ClearProjectiles(); // clear projectiles for new frame
673 #endif
674 
678 
679  // BIG HACK to let old demos continue to work
680  if (cls.serverProtocol != 26)
682 
683  if (cl_shownet->value == 3)
684  Com_Printf (" frame:%i delta:%i\n", cl.frame.serverframe,
686 
687  // If the frame is delta compressed from data that we
688  // no longer have available, we must suck up the rest of
689  // the frame, but not use it, then ask for a non-compressed
690  // message
691  if (cl.frame.deltaframe <= 0)
692  {
693  cl.frame.valid = true; // uncompressed frame
694  old = NULL;
695  cls.demowaiting = false; // we can start recording now
696  }
697  else
698  {
700  if (!old->valid)
701  { // should never happen
702  Com_Printf ("Delta from invalid frame (not supposed to happen!).\n");
703  }
704  if (old->serverframe != cl.frame.deltaframe)
705  { // The frame that the server did the delta from
706  // is too old, so we can't reconstruct it properly.
707  Com_Printf ("Delta frame too old.\n");
708  }
709  else if (cl.parse_entities - old->parse_entities > MAX_PARSE_ENTITIES-128)
710  {
711  Com_Printf ("Delta parse_entities too old.\n");
712  }
713  else
714  cl.frame.valid = true; // valid delta parse
715  }
716 
717  // clamp time
718  if (cl.time > cl.frame.servertime)
720  else if (cl.time < cl.frame.servertime - 100)
721  cl.time = cl.frame.servertime - 100;
722 
723  // read areabits
724  len = MSG_ReadByte (&net_message);
726 
727  // read playerinfo
728  cmd = MSG_ReadByte (&net_message);
729  SHOWNET(svc_strings[cmd]);
730  if (cmd != svc_playerinfo)
731  Com_Error (ERR_DROP, "CL_ParseFrame: not playerinfo");
732  CL_ParsePlayerstate (old, &cl.frame);
733 
734  // read packet entities
735  cmd = MSG_ReadByte (&net_message);
736  SHOWNET(svc_strings[cmd]);
737  if (cmd != svc_packetentities)
738  Com_Error (ERR_DROP, "CL_ParseFrame: not packetentities");
740 
741 #if 0
742  if (cmd == svc_packetentities2)
743  CL_ParseProjectiles();
744 #endif
745 
746  // save the frame off in the backup array for later delta comparisons
748 
749  if (cl.frame.valid)
750  {
751  // getting a valid frame message ends the connection process
752  if (cls.state != ca_active)
753  {
754  cls.state = ca_active;
755  cl.force_refdef = true;
761  && cl.refresh_prepped)
762  SCR_EndLoadingPlaque (); // get rid of loading plaque
763  }
764  cl.sound_prepped = true; // can start mixing ambient sounds
765 
766  // fire entity events
769  }
770 }

Referenced by CL_ParseServerMessage().

◆ CL_ParseInventory()

void CL_ParseInventory ( void  )

Definition at line 31 of file cl_inv.c.

32 {
33  int i;
34 
35  for (i=0 ; i<MAX_ITEMS ; i++)
37 }

Referenced by CL_ParseServerMessage().

◆ CL_ParseLayout()

void CL_ParseLayout ( void  )

◆ CL_ParseMuzzleFlash()

void CL_ParseMuzzleFlash ( void  )

Definition at line 238 of file cl_fx.c.

239 {
240  vec3_t fv, rv;
241  cdlight_t *dl;
242  int i, weapon;
243  centity_t *pl;
244  int silenced;
245  float volume;
246  char soundname[64];
247 
249  if (i < 1 || i >= MAX_EDICTS)
250  Com_Error (ERR_DROP, "CL_ParseMuzzleFlash: bad entity");
251 
252  weapon = MSG_ReadByte (&net_message);
253  silenced = weapon & MZ_SILENCED;
254  weapon &= ~MZ_SILENCED;
255 
256  pl = &cl_entities[i];
257 
258  dl = CL_AllocDlight (i);
259  VectorCopy (pl->current.origin, dl->origin);
260  AngleVectors (pl->current.angles, fv, rv, NULL);
261  VectorMA (dl->origin, 18, fv, dl->origin);
262  VectorMA (dl->origin, 16, rv, dl->origin);
263  if (silenced)
264  dl->radius = 100 + (rand()&31);
265  else
266  dl->radius = 200 + (rand()&31);
267  dl->minlight = 32;
268  dl->die = cl.time; // + 0.1;
269 
270  if (silenced)
271  volume = 0.2;
272  else
273  volume = 1;
274 
275  switch (weapon)
276  {
277  case MZ_BLASTER:
278  dl->color[0] = 1;dl->color[1] = 1;dl->color[2] = 0;
279  S_StartSound (NULL, i, CHAN_WEAPON, S_RegisterSound("weapons/blastf1a.wav"), volume, ATTN_NORM, 0);
280  break;
281  case MZ_BLUEHYPERBLASTER:
282  dl->color[0] = 0;dl->color[1] = 0;dl->color[2] = 1;
283  S_StartSound (NULL, i, CHAN_WEAPON, S_RegisterSound("weapons/hyprbf1a.wav"), volume, ATTN_NORM, 0);
284  break;
285  case MZ_HYPERBLASTER:
286  dl->color[0] = 1;dl->color[1] = 1;dl->color[2] = 0;
287  S_StartSound (NULL, i, CHAN_WEAPON, S_RegisterSound("weapons/hyprbf1a.wav"), volume, ATTN_NORM, 0);
288  break;
289  case MZ_MACHINEGUN:
290  dl->color[0] = 1;dl->color[1] = 1;dl->color[2] = 0;
291  Com_sprintf(soundname, sizeof(soundname), "weapons/machgf%ib.wav", (rand() % 5) + 1);
293  break;
294  case MZ_SHOTGUN:
295  dl->color[0] = 1;dl->color[1] = 1;dl->color[2] = 0;
296  S_StartSound (NULL, i, CHAN_WEAPON, S_RegisterSound("weapons/shotgf1b.wav"), volume, ATTN_NORM, 0);
297  S_StartSound (NULL, i, CHAN_AUTO, S_RegisterSound("weapons/shotgr1b.wav"), volume, ATTN_NORM, 0.1);
298  break;
299  case MZ_SSHOTGUN:
300  dl->color[0] = 1;dl->color[1] = 1;dl->color[2] = 0;
301  S_StartSound (NULL, i, CHAN_WEAPON, S_RegisterSound("weapons/sshotf1b.wav"), volume, ATTN_NORM, 0);
302  break;
303  case MZ_CHAINGUN1:
304  dl->radius = 200 + (rand()&31);
305  dl->color[0] = 1;dl->color[1] = 0.25;dl->color[2] = 0;
306  Com_sprintf(soundname, sizeof(soundname), "weapons/machgf%ib.wav", (rand() % 5) + 1);
308  break;
309  case MZ_CHAINGUN2:
310  dl->radius = 225 + (rand()&31);
311  dl->color[0] = 1;dl->color[1] = 0.5;dl->color[2] = 0;
312  dl->die = cl.time + 0.1; // long delay
313  Com_sprintf(soundname, sizeof(soundname), "weapons/machgf%ib.wav", (rand() % 5) + 1);
315  Com_sprintf(soundname, sizeof(soundname), "weapons/machgf%ib.wav", (rand() % 5) + 1);
317  break;
318  case MZ_CHAINGUN3:
319  dl->radius = 250 + (rand()&31);
320  dl->color[0] = 1;dl->color[1] = 1;dl->color[2] = 0;
321  dl->die = cl.time + 0.1; // long delay
322  Com_sprintf(soundname, sizeof(soundname), "weapons/machgf%ib.wav", (rand() % 5) + 1);
324  Com_sprintf(soundname, sizeof(soundname), "weapons/machgf%ib.wav", (rand() % 5) + 1);
325  S_StartSound (NULL, i, CHAN_WEAPON, S_RegisterSound(soundname), volume, ATTN_NORM, 0.033);
326  Com_sprintf(soundname, sizeof(soundname), "weapons/machgf%ib.wav", (rand() % 5) + 1);
327  S_StartSound (NULL, i, CHAN_WEAPON, S_RegisterSound(soundname), volume, ATTN_NORM, 0.066);
328  break;
329  case MZ_RAILGUN:
330  dl->color[0] = 0.5;dl->color[1] = 0.5;dl->color[2] = 1.0;
331  S_StartSound (NULL, i, CHAN_WEAPON, S_RegisterSound("weapons/railgf1a.wav"), volume, ATTN_NORM, 0);
332  break;
333  case MZ_ROCKET:
334  dl->color[0] = 1;dl->color[1] = 0.5;dl->color[2] = 0.2;
335  S_StartSound (NULL, i, CHAN_WEAPON, S_RegisterSound("weapons/rocklf1a.wav"), volume, ATTN_NORM, 0);
336  S_StartSound (NULL, i, CHAN_AUTO, S_RegisterSound("weapons/rocklr1b.wav"), volume, ATTN_NORM, 0.1);
337  break;
338  case MZ_GRENADE:
339  dl->color[0] = 1;dl->color[1] = 0.5;dl->color[2] = 0;
340  S_StartSound (NULL, i, CHAN_WEAPON, S_RegisterSound("weapons/grenlf1a.wav"), volume, ATTN_NORM, 0);
341  S_StartSound (NULL, i, CHAN_AUTO, S_RegisterSound("weapons/grenlr1b.wav"), volume, ATTN_NORM, 0.1);
342  break;
343  case MZ_BFG:
344  dl->color[0] = 0;dl->color[1] = 1;dl->color[2] = 0;
345  S_StartSound (NULL, i, CHAN_WEAPON, S_RegisterSound("weapons/bfg__f1y.wav"), volume, ATTN_NORM, 0);
346  break;
347 
348  case MZ_LOGIN:
349  dl->color[0] = 0;dl->color[1] = 1; dl->color[2] = 0;
350  dl->die = cl.time + 1.0;
351  S_StartSound (NULL, i, CHAN_WEAPON, S_RegisterSound("weapons/grenlf1a.wav"), 1, ATTN_NORM, 0);
352  CL_LogoutEffect (pl->current.origin, weapon);
353  break;
354  case MZ_LOGOUT:
355  dl->color[0] = 1;dl->color[1] = 0; dl->color[2] = 0;
356  dl->die = cl.time + 1.0;
357  S_StartSound (NULL, i, CHAN_WEAPON, S_RegisterSound("weapons/grenlf1a.wav"), 1, ATTN_NORM, 0);
358  CL_LogoutEffect (pl->current.origin, weapon);
359  break;
360  case MZ_RESPAWN:
361  dl->color[0] = 1;dl->color[1] = 1; dl->color[2] = 0;
362  dl->die = cl.time + 1.0;
363  S_StartSound (NULL, i, CHAN_WEAPON, S_RegisterSound("weapons/grenlf1a.wav"), 1, ATTN_NORM, 0);
364  CL_LogoutEffect (pl->current.origin, weapon);
365  break;
366  // RAFAEL
367  case MZ_PHALANX:
368  dl->color[0] = 1;dl->color[1] = 0.5; dl->color[2] = 0.5;
369  S_StartSound (NULL, i, CHAN_WEAPON, S_RegisterSound("weapons/plasshot.wav"), volume, ATTN_NORM, 0);
370  break;
371  // RAFAEL
372  case MZ_IONRIPPER:
373  dl->color[0] = 1;dl->color[1] = 0.5; dl->color[2] = 0.5;
374  S_StartSound (NULL, i, CHAN_WEAPON, S_RegisterSound("weapons/rippfire.wav"), volume, ATTN_NORM, 0);
375  break;
376 
377 // ======================
378 // PGM
379  case MZ_ETF_RIFLE:
380  dl->color[0] = 0.9;dl->color[1] = 0.7;dl->color[2] = 0;
381  S_StartSound (NULL, i, CHAN_WEAPON, S_RegisterSound("weapons/nail1.wav"), volume, ATTN_NORM, 0);
382  break;
383  case MZ_SHOTGUN2:
384  dl->color[0] = 1;dl->color[1] = 1;dl->color[2] = 0;
385  S_StartSound (NULL, i, CHAN_WEAPON, S_RegisterSound("weapons/shotg2.wav"), volume, ATTN_NORM, 0);
386  break;
387  case MZ_HEATBEAM:
388  dl->color[0] = 1;dl->color[1] = 1;dl->color[2] = 0;
389  dl->die = cl.time + 100;
390 // S_StartSound (NULL, i, CHAN_WEAPON, S_RegisterSound("weapons/bfg__l1a.wav"), volume, ATTN_NORM, 0);
391  break;
392  case MZ_BLASTER2:
393  dl->color[0] = 0;dl->color[1] = 1;dl->color[2] = 0;
394  // FIXME - different sound for blaster2 ??
395  S_StartSound (NULL, i, CHAN_WEAPON, S_RegisterSound("weapons/blastf1a.wav"), volume, ATTN_NORM, 0);
396  break;
397  case MZ_TRACKER:
398  // negative flashes handled the same in gl/soft until CL_AddDLights
399  dl->color[0] = -1;dl->color[1] = -1;dl->color[2] = -1;
400  S_StartSound (NULL, i, CHAN_WEAPON, S_RegisterSound("weapons/disint2.wav"), volume, ATTN_NORM, 0);
401  break;
402  case MZ_NUKE1:
403  dl->color[0] = 1;dl->color[1] = 0;dl->color[2] = 0;
404  dl->die = cl.time + 100;
405  break;
406  case MZ_NUKE2:
407  dl->color[0] = 1;dl->color[1] = 1;dl->color[2] = 0;
408  dl->die = cl.time + 100;
409  break;
410  case MZ_NUKE4:
411  dl->color[0] = 0;dl->color[1] = 0;dl->color[2] = 1;
412  dl->die = cl.time + 100;
413  break;
414  case MZ_NUKE8:
415  dl->color[0] = 0;dl->color[1] = 1;dl->color[2] = 1;
416  dl->die = cl.time + 100;
417  break;
418 // PGM
419 // ======================
420  }
421 }

Referenced by CL_ParseServerMessage().

◆ CL_ParseMuzzleFlash2()

void CL_ParseMuzzleFlash2 ( void  )

Definition at line 429 of file cl_fx.c.

430 {
431  int ent;
432  vec3_t origin;
433  int flash_number;
434  cdlight_t *dl;
436  char soundname[64];
437 
438  ent = MSG_ReadShort (&net_message);
439  if (ent < 1 || ent >= MAX_EDICTS)
440  Com_Error (ERR_DROP, "CL_ParseMuzzleFlash2: bad entity");
441 
442  flash_number = MSG_ReadByte (&net_message);
443 
444  // locate the origin
446  origin[0] = cl_entities[ent].current.origin[0] + forward[0] * monster_flash_offset[flash_number][0] + right[0] * monster_flash_offset[flash_number][1];
447  origin[1] = cl_entities[ent].current.origin[1] + forward[1] * monster_flash_offset[flash_number][0] + right[1] * monster_flash_offset[flash_number][1];
448  origin[2] = cl_entities[ent].current.origin[2] + forward[2] * monster_flash_offset[flash_number][0] + right[2] * monster_flash_offset[flash_number][1] + monster_flash_offset[flash_number][2];
449 
450  dl = CL_AllocDlight (ent);
451  VectorCopy (origin, dl->origin);
452  dl->radius = 200 + (rand()&31);
453  dl->minlight = 32;
454  dl->die = cl.time; // + 0.1;
455 
456  switch (flash_number)
457  {
471  dl->color[0] = 1;dl->color[1] = 1;dl->color[2] = 0;
472  CL_ParticleEffect (origin, vec3_origin, 0, 40);
473  CL_SmokeAndFlash(origin);
474  S_StartSound (NULL, ent, CHAN_WEAPON, S_RegisterSound("infantry/infatck1.wav"), 1, ATTN_NORM, 0);
475  break;
476 
485  dl->color[0] = 1;dl->color[1] = 1;dl->color[2] = 0;
486  CL_ParticleEffect (origin, vec3_origin, 0, 40);
487  CL_SmokeAndFlash(origin);
488  S_StartSound (NULL, ent, CHAN_WEAPON, S_RegisterSound("soldier/solatck3.wav"), 1, ATTN_NORM, 0);
489  break;
490 
499  dl->color[0] = 1;dl->color[1] = 1;dl->color[2] = 0;
500  CL_ParticleEffect (origin, vec3_origin, 0, 40);
501  CL_SmokeAndFlash(origin);
502  S_StartSound (NULL, ent, CHAN_WEAPON, S_RegisterSound("gunner/gunatck2.wav"), 1, ATTN_NORM, 0);
503  break;
504 
512  case MZ2_TURRET_MACHINEGUN: // PGM
513  dl->color[0] = 1;dl->color[1] = 1;dl->color[2] = 0;
514 
515  CL_ParticleEffect (origin, vec3_origin, 0, 40);
516  CL_SmokeAndFlash(origin);
517  S_StartSound (NULL, ent, CHAN_WEAPON, S_RegisterSound("infantry/infatck1.wav"), 1, ATTN_NORM, 0);
518  break;
519 
525  case MZ2_CARRIER_MACHINEGUN_L1: // PMM
526  case MZ2_CARRIER_MACHINEGUN_L2: // PMM
527  dl->color[0] = 1;dl->color[1] = 1;dl->color[2] = 0;
528 
529  CL_ParticleEffect (origin, vec3_origin, 0, 40);
530  CL_SmokeAndFlash(origin);
531  S_StartSound (NULL, ent, CHAN_WEAPON, S_RegisterSound("infantry/infatck1.wav"), 1, ATTN_NONE, 0);
532  break;
533 
542  case MZ2_TURRET_BLASTER: // PGM
543  dl->color[0] = 1;dl->color[1] = 1;dl->color[2] = 0;
544  S_StartSound (NULL, ent, CHAN_WEAPON, S_RegisterSound("soldier/solatck2.wav"), 1, ATTN_NORM, 0);
545  break;
546 
547  case MZ2_FLYER_BLASTER_1:
548  case MZ2_FLYER_BLASTER_2:
549  dl->color[0] = 1;dl->color[1] = 1;dl->color[2] = 0;
550  S_StartSound (NULL, ent, CHAN_WEAPON, S_RegisterSound("flyer/flyatck3.wav"), 1, ATTN_NORM, 0);
551  break;
552 
553  case MZ2_MEDIC_BLASTER_1:
554  dl->color[0] = 1;dl->color[1] = 1;dl->color[2] = 0;
555  S_StartSound (NULL, ent, CHAN_WEAPON, S_RegisterSound("medic/medatck1.wav"), 1, ATTN_NORM, 0);
556  break;
557 
558  case MZ2_HOVER_BLASTER_1:
559  dl->color[0] = 1;dl->color[1] = 1;dl->color[2] = 0;
560  S_StartSound (NULL, ent, CHAN_WEAPON, S_RegisterSound("hover/hovatck1.wav"), 1, ATTN_NORM, 0);
561  break;
562 
563  case MZ2_FLOAT_BLASTER_1:
564  dl->color[0] = 1;dl->color[1] = 1;dl->color[2] = 0;
565  S_StartSound (NULL, ent, CHAN_WEAPON, S_RegisterSound("floater/fltatck1.wav"), 1, ATTN_NORM, 0);
566  break;
567 
576  dl->color[0] = 1;dl->color[1] = 1;dl->color[2] = 0;
577  CL_SmokeAndFlash(origin);
578  S_StartSound (NULL, ent, CHAN_WEAPON, S_RegisterSound("soldier/solatck1.wav"), 1, ATTN_NORM, 0);
579  break;
580 
581  case MZ2_TANK_BLASTER_1:
582  case MZ2_TANK_BLASTER_2:
583  case MZ2_TANK_BLASTER_3:
584  dl->color[0] = 1;dl->color[1] = 1;dl->color[2] = 0;
585  S_StartSound (NULL, ent, CHAN_WEAPON, S_RegisterSound("tank/tnkatck3.wav"), 1, ATTN_NORM, 0);
586  break;
587 
607  dl->color[0] = 1;dl->color[1] = 1;dl->color[2] = 0;
608  CL_ParticleEffect (origin, vec3_origin, 0, 40);
609  CL_SmokeAndFlash(origin);
610  Com_sprintf(soundname, sizeof(soundname), "tank/tnkatk2%c.wav", 'a' + rand() % 5);
611  S_StartSound (NULL, ent, CHAN_WEAPON, S_RegisterSound(soundname), 1, ATTN_NORM, 0);
612  break;
613 
614  case MZ2_CHICK_ROCKET_1:
615  case MZ2_TURRET_ROCKET: // PGM
616  dl->color[0] = 1;dl->color[1] = 0.5;dl->color[2] = 0.2;
617  S_StartSound (NULL, ent, CHAN_WEAPON, S_RegisterSound("chick/chkatck2.wav"), 1, ATTN_NORM, 0);
618  break;
619 
620  case MZ2_TANK_ROCKET_1:
621  case MZ2_TANK_ROCKET_2:
622  case MZ2_TANK_ROCKET_3:
623  dl->color[0] = 1;dl->color[1] = 0.5;dl->color[2] = 0.2;
624  S_StartSound (NULL, ent, CHAN_WEAPON, S_RegisterSound("tank/tnkatck1.wav"), 1, ATTN_NORM, 0);
625  break;
626 
630  case MZ2_BOSS2_ROCKET_1:
631  case MZ2_BOSS2_ROCKET_2:
632  case MZ2_BOSS2_ROCKET_3:
633  case MZ2_BOSS2_ROCKET_4:
635 // case MZ2_CARRIER_ROCKET_2:
636 // case MZ2_CARRIER_ROCKET_3:
637 // case MZ2_CARRIER_ROCKET_4:
638  dl->color[0] = 1;dl->color[1] = 0.5;dl->color[2] = 0.2;
639  S_StartSound (NULL, ent, CHAN_WEAPON, S_RegisterSound("tank/rocket.wav"), 1, ATTN_NORM, 0);
640  break;
641 
646  dl->color[0] = 1;dl->color[1] = 0.5;dl->color[2] = 0;
647  S_StartSound (NULL, ent, CHAN_WEAPON, S_RegisterSound("gunner/gunatck3.wav"), 1, ATTN_NORM, 0);
648  break;
649 
651  // PMM
652  case MZ2_CARRIER_RAILGUN:
653  case MZ2_WIDOW_RAIL:
654  // pmm
655  dl->color[0] = 0.5;dl->color[1] = 0.5;dl->color[2] = 1.0;
656  break;
657 
658 // --- Xian's shit starts ---
659  case MZ2_MAKRON_BFG:
660  dl->color[0] = 0.5;dl->color[1] = 1 ;dl->color[2] = 0.5;
661  //S_StartSound (NULL, ent, CHAN_WEAPON, S_RegisterSound("makron/bfg_fire.wav"), 1, ATTN_NORM, 0);
662  break;
663 
681  dl->color[0] = 1;dl->color[1] = 1;dl->color[2] = 0;
682  S_StartSound (NULL, ent, CHAN_WEAPON, S_RegisterSound("makron/blaster.wav"), 1, ATTN_NORM, 0);
683  break;
684 
691  dl->color[0] = 1;dl->color[1] = 1;dl->color[2] = 0;
692  CL_ParticleEffect (origin, vec3_origin, 0, 40);
693  CL_SmokeAndFlash(origin);
694  S_StartSound (NULL, ent, CHAN_WEAPON, S_RegisterSound("boss3/xfire.wav"), 1, ATTN_NORM, 0);
695  break;
696 
703  dl->color[0] = 1;dl->color[1] = 1;dl->color[2] = 0;
704  CL_ParticleEffect (origin, vec3_origin, 0, 40);
705  CL_SmokeAndFlash(origin);
706  break;
707 
708  case MZ2_JORG_BFG_1:
709  dl->color[0] = 0.5;dl->color[1] = 1 ;dl->color[2] = 0.5;
710  break;
711 
717  case MZ2_CARRIER_MACHINEGUN_R1: // PMM
718  case MZ2_CARRIER_MACHINEGUN_R2: // PMM
719 
720  dl->color[0] = 1;dl->color[1] = 1;dl->color[2] = 0;
721 
722  CL_ParticleEffect (origin, vec3_origin, 0, 40);
723  CL_SmokeAndFlash(origin);
724  break;
725 
726 // ======
727 // ROGUE
728  case MZ2_STALKER_BLASTER:
730  case MZ2_MEDIC_BLASTER_2:
731  case MZ2_WIDOW_BLASTER:
751  case MZ2_WIDOW_BLASTER_0:
759  case MZ2_WIDOW_RUN_1:
760  case MZ2_WIDOW_RUN_2:
761  case MZ2_WIDOW_RUN_3:
762  case MZ2_WIDOW_RUN_4:
763  case MZ2_WIDOW_RUN_5:
764  case MZ2_WIDOW_RUN_6:
765  case MZ2_WIDOW_RUN_7:
766  case MZ2_WIDOW_RUN_8:
767  dl->color[0] = 0;dl->color[1] = 1;dl->color[2] = 0;
768  S_StartSound (NULL, ent, CHAN_WEAPON, S_RegisterSound("tank/tnkatck3.wav"), 1, ATTN_NORM, 0);
769  break;
770 
771  case MZ2_WIDOW_DISRUPTOR:
772  dl->color[0] = -1;dl->color[1] = -1;dl->color[2] = -1;
773  S_StartSound (NULL, ent, CHAN_WEAPON, S_RegisterSound("weapons/disint2.wav"), 1, ATTN_NORM, 0);
774  break;
775 
777  case MZ2_WIDOW2_BEAMER_1:
778  case MZ2_WIDOW2_BEAMER_2:
779  case MZ2_WIDOW2_BEAMER_3:
780  case MZ2_WIDOW2_BEAMER_4:
781  case MZ2_WIDOW2_BEAMER_5:
793  dl->radius = 300 + (rand()&100);
794  dl->color[0] = 1;dl->color[1] = 1;dl->color[2] = 0;
795  dl->die = cl.time + 200;
796  break;
797 // ROGUE
798 // ======
799 
800 // --- Xian's shit ends ---
801 
802  }
803 }

Referenced by CL_ParseServerMessage().

◆ CL_ParseServerMessage()

void CL_ParseServerMessage ( void  )

Definition at line 661 of file cl_parse.c.

662 {
663  int cmd;
664  char *s;
665  int i;
666 
667 //
668 // if recording demos, copy the message out
669 //
670  if (cl_shownet->value == 1)
672  else if (cl_shownet->value >= 2)
673  Com_Printf ("------------------\n");
674 
675 
676 //
677 // parse the message
678 //
679  while (1)
680  {
682  {
683  Com_Error (ERR_DROP,"CL_ParseServerMessage: Bad server message");
684  break;
685  }
686 
687  cmd = MSG_ReadByte (&net_message);
688 
689  if (cmd == -1)
690  {
691  SHOWNET("END OF MESSAGE");
692  break;
693  }
694 
695  if (cl_shownet->value>=2)
696  {
697  if (!svc_strings[cmd])
698  Com_Printf ("%3i:BAD CMD %i\n", net_message.readcount-1,cmd);
699  else
700  SHOWNET(svc_strings[cmd]);
701  }
702 
703  // other commands
704  switch (cmd)
705  {
706  default:
707  Com_Error (ERR_DROP,"CL_ParseServerMessage: Illegible server message\n");
708  break;
709 
710  case svc_nop:
711 // Com_Printf ("svc_nop\n");
712  break;
713 
714  case svc_disconnect:
715  Com_Error (ERR_DISCONNECT,"Server disconnected\n");
716  break;
717 
718  case svc_reconnect:
719  Com_Printf ("Server disconnected, reconnecting\n");
720  if (cls.download) {
721  //ZOID, close download
722  fclose (cls.download);
723  cls.download = NULL;
724  }
726  cls.connect_time = -99999; // CL_CheckForResend() will fire immediately
727  break;
728 
729  case svc_print:
731  if (i == PRINT_CHAT)
732  {
733  S_StartLocalSound ("misc/talk.wav");
734  con.ormask = 128;
735  }
737  con.ormask = 0;
738  break;
739 
740  case svc_centerprint:
742  break;
743 
744  case svc_stufftext:
746  Com_DPrintf ("stufftext: %s\n", s);
747  Cbuf_AddText (s);
748  break;
749 
750  case svc_serverdata:
751  Cbuf_Execute (); // make sure any stuffed commands are done
753  break;
754 
755  case svc_configstring:
757  break;
758 
759  case svc_sound:
761  break;
762 
763  case svc_spawnbaseline:
764  CL_ParseBaseline ();
765  break;
766 
767  case svc_temp_entity:
768  CL_ParseTEnt ();
769  break;
770 
771  case svc_muzzleflash:
773  break;
774 
775  case svc_muzzleflash2:
777  break;
778 
779  case svc_download:
780  CL_ParseDownload ();
781  break;
782 
783  case svc_frame:
784  CL_ParseFrame ();
785  break;
786 
787  case svc_inventory:
789  break;
790 
791  case svc_layout:
793  strncpy (cl.layout, s, sizeof(cl.layout)-1);
794  break;
795 
796  case svc_playerinfo:
797  case svc_packetentities:
799  Com_Error (ERR_DROP, "Out of place frame data");
800  break;
801  }
802  }
803 
804  CL_AddNetgraph ();
805 
806  //
807  // we don't know if it is ok to save a demo message until
808  // after we have parsed the frame
809  //
812 
813 }

Referenced by CL_ReadPackets().

◆ CL_ParseTEnt()

void CL_ParseTEnt ( void  )

Definition at line 694 of file cl_tent.c.

695 {
696  int type;
697  vec3_t pos, pos2, dir;
698  explosion_t *ex;
699  int cnt;
700  int color;
701  int r;
702  int ent;
703  int magnitude;
704 
706 
707  switch (type)
708  {
709  case TE_BLOOD: // bullet hitting flesh
710  MSG_ReadPos (&net_message, pos);
711  MSG_ReadDir (&net_message, dir);
712  CL_ParticleEffect (pos, dir, 0xe8, 60);
713  break;
714 
715  case TE_GUNSHOT: // bullet hitting wall
716  case TE_SPARKS:
717  case TE_BULLET_SPARKS:
718  MSG_ReadPos (&net_message, pos);
719  MSG_ReadDir (&net_message, dir);
720  if (type == TE_GUNSHOT)
721  CL_ParticleEffect (pos, dir, 0, 40);
722  else
723  CL_ParticleEffect (pos, dir, 0xe0, 6);
724 
725  if (type != TE_SPARKS)
726  {
727  CL_SmokeAndFlash(pos);
728 
729  // impact sound
730  cnt = rand()&15;
731  if (cnt == 1)
732  S_StartSound (pos, 0, 0, cl_sfx_ric1, 1, ATTN_NORM, 0);
733  else if (cnt == 2)
734  S_StartSound (pos, 0, 0, cl_sfx_ric2, 1, ATTN_NORM, 0);
735  else if (cnt == 3)
736  S_StartSound (pos, 0, 0, cl_sfx_ric3, 1, ATTN_NORM, 0);
737  }
738 
739  break;
740 
741  case TE_SCREEN_SPARKS:
742  case TE_SHIELD_SPARKS:
743  MSG_ReadPos (&net_message, pos);
744  MSG_ReadDir (&net_message, dir);
745  if (type == TE_SCREEN_SPARKS)
746  CL_ParticleEffect (pos, dir, 0xd0, 40);
747  else
748  CL_ParticleEffect (pos, dir, 0xb0, 40);
749  //FIXME : replace or remove this sound
750  S_StartSound (pos, 0, 0, cl_sfx_lashit, 1, ATTN_NORM, 0);
751  break;
752 
753  case TE_SHOTGUN: // bullet hitting wall
754  MSG_ReadPos (&net_message, pos);
755  MSG_ReadDir (&net_message, dir);
756  CL_ParticleEffect (pos, dir, 0, 20);
757  CL_SmokeAndFlash(pos);
758  break;
759 
760  case TE_SPLASH: // bullet hitting water
761  cnt = MSG_ReadByte (&net_message);
762  MSG_ReadPos (&net_message, pos);
763  MSG_ReadDir (&net_message, dir);
765  if (r > 6)
766  color = 0x00;
767  else
768  color = splash_color[r];
769  CL_ParticleEffect (pos, dir, color, cnt);
770 
771  if (r == SPLASH_SPARKS)
772  {
773  r = rand() & 3;
774  if (r == 0)
775  S_StartSound (pos, 0, 0, cl_sfx_spark5, 1, ATTN_STATIC, 0);
776  else if (r == 1)
777  S_StartSound (pos, 0, 0, cl_sfx_spark6, 1, ATTN_STATIC, 0);
778  else
779  S_StartSound (pos, 0, 0, cl_sfx_spark7, 1, ATTN_STATIC, 0);
780  }
781  break;
782 
783  case TE_LASER_SPARKS:
784  cnt = MSG_ReadByte (&net_message);
785  MSG_ReadPos (&net_message, pos);
786  MSG_ReadDir (&net_message, dir);
787  color = MSG_ReadByte (&net_message);
788  CL_ParticleEffect2 (pos, dir, color, cnt);
789  break;
790 
791  // RAFAEL
792  case TE_BLUEHYPERBLASTER:
793  MSG_ReadPos (&net_message, pos);
794  MSG_ReadPos (&net_message, dir);
795  CL_BlasterParticles (pos, dir);
796  break;
797 
798  case TE_BLASTER: // blaster hitting wall
799  MSG_ReadPos (&net_message, pos);
800  MSG_ReadDir (&net_message, dir);
801  CL_BlasterParticles (pos, dir);
802 
803  ex = CL_AllocExplosion ();
804  VectorCopy (pos, ex->ent.origin);
805  ex->ent.angles[0] = acos(dir[2])/M_PI*180;
806  // PMM - fixed to correct for pitch of 0
807  if (dir[0])
808  ex->ent.angles[1] = atan2(dir[1], dir[0])/M_PI*180;
809  else if (dir[1] > 0)
810  ex->ent.angles[1] = 90;
811  else if (dir[1] < 0)
812  ex->ent.angles[1] = 270;
813  else
814  ex->ent.angles[1] = 0;
815 
816  ex->type = ex_misc;
818  ex->start = cl.frame.servertime - 100;
819  ex->light = 150;
820  ex->lightcolor[0] = 1;
821  ex->lightcolor[1] = 1;
822  ex->ent.model = cl_mod_explode;
823  ex->frames = 4;
824  S_StartSound (pos, 0, 0, cl_sfx_lashit, 1, ATTN_NORM, 0);
825  break;
826 
827  case TE_RAILTRAIL: // railgun effect
828  MSG_ReadPos (&net_message, pos);
830  CL_RailTrail (pos, pos2);
831  S_StartSound (pos2, 0, 0, cl_sfx_railg, 1, ATTN_NORM, 0);
832  break;
833 
834  case TE_EXPLOSION2:
837  MSG_ReadPos (&net_message, pos);
838 
839  ex = CL_AllocExplosion ();
840  VectorCopy (pos, ex->ent.origin);
841  ex->type = ex_poly;
842  ex->ent.flags = RF_FULLBRIGHT;
843  ex->start = cl.frame.servertime - 100;
844  ex->light = 350;
845  ex->lightcolor[0] = 1.0;
846  ex->lightcolor[1] = 0.5;
847  ex->lightcolor[2] = 0.5;
848  ex->ent.model = cl_mod_explo4;
849  ex->frames = 19;
850  ex->baseframe = 30;
851  ex->ent.angles[1] = rand() % 360;
852  CL_ExplosionParticles (pos);
854  S_StartSound (pos, 0, 0, cl_sfx_watrexp, 1, ATTN_NORM, 0);
855  else
856  S_StartSound (pos, 0, 0, cl_sfx_grenexp, 1, ATTN_NORM, 0);
857  break;
858 
859  // RAFAEL
860  case TE_PLASMA_EXPLOSION:
861  MSG_ReadPos (&net_message, pos);
862  ex = CL_AllocExplosion ();
863  VectorCopy (pos, ex->ent.origin);
864  ex->type = ex_poly;
865  ex->ent.flags = RF_FULLBRIGHT;
866  ex->start = cl.frame.servertime - 100;
867  ex->light = 350;
868  ex->lightcolor[0] = 1.0;
869  ex->lightcolor[1] = 0.5;
870  ex->lightcolor[2] = 0.5;
871  ex->ent.angles[1] = rand() % 360;
872  ex->ent.model = cl_mod_explo4;
873  if (frand() < 0.5)
874  ex->baseframe = 15;
875  ex->frames = 15;
876  CL_ExplosionParticles (pos);
877  S_StartSound (pos, 0, 0, cl_sfx_rockexp, 1, ATTN_NORM, 0);
878  break;
879 
880  case TE_EXPLOSION1:
881  case TE_EXPLOSION1_BIG: // PMM
882  case TE_ROCKET_EXPLOSION:
884  case TE_EXPLOSION1_NP: // PMM
885  MSG_ReadPos (&net_message, pos);
886 
887  ex = CL_AllocExplosion ();
888  VectorCopy (pos, ex->ent.origin);
889  ex->type = ex_poly;
890  ex->ent.flags = RF_FULLBRIGHT;
891  ex->start = cl.frame.servertime - 100;
892  ex->light = 350;
893  ex->lightcolor[0] = 1.0;
894  ex->lightcolor[1] = 0.5;
895  ex->lightcolor[2] = 0.5;
896  ex->ent.angles[1] = rand() % 360;
897  if (type != TE_EXPLOSION1_BIG) // PMM
898  ex->ent.model = cl_mod_explo4; // PMM
899  else
901  if (frand() < 0.5)
902  ex->baseframe = 15;
903  ex->frames = 15;
904  if ((type != TE_EXPLOSION1_BIG) && (type != TE_EXPLOSION1_NP)) // PMM
905  CL_ExplosionParticles (pos); // PMM
907  S_StartSound (pos, 0, 0, cl_sfx_watrexp, 1, ATTN_NORM, 0);
908  else
909  S_StartSound (pos, 0, 0, cl_sfx_rockexp, 1, ATTN_NORM, 0);
910  break;
911 
912  case TE_BFG_EXPLOSION:
913  MSG_ReadPos (&net_message, pos);
914  ex = CL_AllocExplosion ();
915  VectorCopy (pos, ex->ent.origin);
916  ex->type = ex_poly;
917  ex->ent.flags = RF_FULLBRIGHT;
918  ex->start = cl.frame.servertime - 100;
919  ex->light = 350;
920  ex->lightcolor[0] = 0.0;
921  ex->lightcolor[1] = 1.0;
922  ex->lightcolor[2] = 0.0;
923  ex->ent.model = cl_mod_bfg_explo;
924  ex->ent.flags |= RF_TRANSLUCENT;
925  ex->ent.alpha = 0.30;
926  ex->frames = 4;
927  break;
928 
929  case TE_BFG_BIGEXPLOSION:
930  MSG_ReadPos (&net_message, pos);
932  break;
933 
934  case TE_BFG_LASER:
935  CL_ParseLaser (0xd0d1d2d3);
936  break;
937 
938  case TE_BUBBLETRAIL:
939  MSG_ReadPos (&net_message, pos);
941  CL_BubbleTrail (pos, pos2);
942  break;
943 
944  case TE_PARASITE_ATTACK:
947  break;
948 
949  case TE_BOSSTPORT: // boss teleporting to station
950  MSG_ReadPos (&net_message, pos);
952  S_StartSound (pos, 0, 0, S_RegisterSound ("misc/bigtele.wav"), 1, ATTN_NONE, 0);
953  break;
954 
955  case TE_GRAPPLE_CABLE:
957  break;
958 
959  // RAFAEL
960  case TE_WELDING_SPARKS:
961  cnt = MSG_ReadByte (&net_message);
962  MSG_ReadPos (&net_message, pos);
963  MSG_ReadDir (&net_message, dir);
964  color = MSG_ReadByte (&net_message);
965  CL_ParticleEffect2 (pos, dir, color, cnt);
966 
967  ex = CL_AllocExplosion ();
968  VectorCopy (pos, ex->ent.origin);
969  ex->type = ex_flash;
970  // note to self
971  // we need a better no draw flag
972  ex->ent.flags = RF_BEAM;
973  ex->start = cl.frame.servertime - 0.1;
974  ex->light = 100 + (rand()%75);
975  ex->lightcolor[0] = 1.0;
976  ex->lightcolor[1] = 1.0;
977  ex->lightcolor[2] = 0.3;
978  ex->ent.model = cl_mod_flash;
979  ex->frames = 2;
980  break;
981 
982  case TE_GREENBLOOD:
983  MSG_ReadPos (&net_message, pos);
984  MSG_ReadDir (&net_message, dir);
985  CL_ParticleEffect2 (pos, dir, 0xdf, 30);
986  break;
987 
988  // RAFAEL
989  case TE_TUNNEL_SPARKS:
990  cnt = MSG_ReadByte (&net_message);
991  MSG_ReadPos (&net_message, pos);
992  MSG_ReadDir (&net_message, dir);
993  color = MSG_ReadByte (&net_message);
994  CL_ParticleEffect3 (pos, dir, color, cnt);
995  break;
996 
997 //=============
998 //PGM
999  // PMM -following code integrated for flechette (different color)
1000  case TE_BLASTER2: // green blaster hitting wall
1001  case TE_FLECHETTE: // flechette
1002  MSG_ReadPos (&net_message, pos);
1003  MSG_ReadDir (&net_message, dir);
1004 
1005  // PMM
1006  if (type == TE_BLASTER2)
1007  CL_BlasterParticles2 (pos, dir, 0xd0);
1008  else
1009  CL_BlasterParticles2 (pos, dir, 0x6f); // 75
1010 
1011  ex = CL_AllocExplosion ();
1012  VectorCopy (pos, ex->ent.origin);
1013  ex->ent.angles[0] = acos(dir[2])/M_PI*180;
1014  // PMM - fixed to correct for pitch of 0
1015  if (dir[0])
1016  ex->ent.angles[1] = atan2(dir[1], dir[0])/M_PI*180;
1017  else if (dir[1] > 0)
1018  ex->ent.angles[1] = 90;
1019  else if (dir[1] < 0)
1020  ex->ent.angles[1] = 270;
1021  else
1022  ex->ent.angles[1] = 0;
1023 
1024  ex->type = ex_misc;
1026 
1027  // PMM
1028  if (type == TE_BLASTER2)
1029  ex->ent.skinnum = 1;
1030  else // flechette
1031  ex->ent.skinnum = 2;
1032 
1033  ex->start = cl.frame.servertime - 100;
1034  ex->light = 150;
1035  // PMM
1036  if (type == TE_BLASTER2)
1037  ex->lightcolor[1] = 1;
1038  else // flechette
1039  {
1040  ex->lightcolor[0] = 0.19;
1041  ex->lightcolor[1] = 0.41;
1042  ex->lightcolor[2] = 0.75;
1043  }
1044  ex->ent.model = cl_mod_explode;
1045  ex->frames = 4;
1046  S_StartSound (pos, 0, 0, cl_sfx_lashit, 1, ATTN_NORM, 0);
1047  break;
1048 
1049 
1050  case TE_LIGHTNING:
1053  break;
1054 
1055  case TE_DEBUGTRAIL:
1056  MSG_ReadPos (&net_message, pos);
1058  CL_DebugTrail (pos, pos2);
1059  break;
1060 
1061  case TE_PLAIN_EXPLOSION:
1062  MSG_ReadPos (&net_message, pos);
1063 
1064  ex = CL_AllocExplosion ();
1065  VectorCopy (pos, ex->ent.origin);
1066  ex->type = ex_poly;
1067  ex->ent.flags = RF_FULLBRIGHT;
1068  ex->start = cl.frame.servertime - 100;
1069  ex->light = 350;
1070  ex->lightcolor[0] = 1.0;
1071  ex->lightcolor[1] = 0.5;
1072  ex->lightcolor[2] = 0.5;
1073  ex->ent.angles[1] = rand() % 360;
1074  ex->ent.model = cl_mod_explo4;
1075  if (frand() < 0.5)
1076  ex->baseframe = 15;
1077  ex->frames = 15;
1079  S_StartSound (pos, 0, 0, cl_sfx_watrexp, 1, ATTN_NORM, 0);
1080  else
1081  S_StartSound (pos, 0, 0, cl_sfx_rockexp, 1, ATTN_NORM, 0);
1082  break;
1083 
1084  case TE_FLASHLIGHT:
1085  MSG_ReadPos(&net_message, pos);
1086  ent = MSG_ReadShort(&net_message);
1087  CL_Flashlight(ent, pos);
1088  break;
1089 
1090  case TE_FORCEWALL:
1091  MSG_ReadPos(&net_message, pos);
1093  color = MSG_ReadByte (&net_message);
1094  CL_ForceWall(pos, pos2, color);
1095  break;
1096 
1097  case TE_HEATBEAM:
1099  break;
1100 
1101  case TE_MONSTER_HEATBEAM:
1103  break;
1104 
1105  case TE_HEATBEAM_SPARKS:
1106 // cnt = MSG_ReadByte (&net_message);
1107  cnt = 50;
1108  MSG_ReadPos (&net_message, pos);
1109  MSG_ReadDir (&net_message, dir);
1110 // r = MSG_ReadByte (&net_message);
1111 // magnitude = MSG_ReadShort (&net_message);
1112  r = 8;
1113  magnitude = 60;
1114  color = r & 0xff;
1115  CL_ParticleSteamEffect (pos, dir, color, cnt, magnitude);
1116  S_StartSound (pos, 0, 0, cl_sfx_lashit, 1, ATTN_NORM, 0);
1117  break;
1118 
1119  case TE_HEATBEAM_STEAM:
1120 // cnt = MSG_ReadByte (&net_message);
1121  cnt = 20;
1122  MSG_ReadPos (&net_message, pos);
1123  MSG_ReadDir (&net_message, dir);
1124 // r = MSG_ReadByte (&net_message);
1125 // magnitude = MSG_ReadShort (&net_message);
1126 // color = r & 0xff;
1127  color = 0xe0;
1128  magnitude = 60;
1129  CL_ParticleSteamEffect (pos, dir, color, cnt, magnitude);
1130  S_StartSound (pos, 0, 0, cl_sfx_lashit, 1, ATTN_NORM, 0);
1131  break;
1132 
1133  case TE_STEAM:
1134  CL_ParseSteam();
1135  break;
1136 
1137  case TE_BUBBLETRAIL2:
1138 // cnt = MSG_ReadByte (&net_message);
1139  cnt = 8;
1140  MSG_ReadPos (&net_message, pos);
1142  CL_BubbleTrail2 (pos, pos2, cnt);
1143  S_StartSound (pos, 0, 0, cl_sfx_lashit, 1, ATTN_NORM, 0);
1144  break;
1145 
1146  case TE_MOREBLOOD:
1147  MSG_ReadPos (&net_message, pos);
1148  MSG_ReadDir (&net_message, dir);
1149  CL_ParticleEffect (pos, dir, 0xe8, 250);
1150  break;
1151 
1152  case TE_CHAINFIST_SMOKE:
1153  dir[0]=0; dir[1]=0; dir[2]=1;
1154  MSG_ReadPos(&net_message, pos);
1155  CL_ParticleSmokeEffect (pos, dir, 0, 20, 20);
1156  break;
1157 
1158  case TE_ELECTRIC_SPARKS:
1159  MSG_ReadPos (&net_message, pos);
1160  MSG_ReadDir (&net_message, dir);
1161 // CL_ParticleEffect (pos, dir, 109, 40);
1162  CL_ParticleEffect (pos, dir, 0x75, 40);
1163  //FIXME : replace or remove this sound
1164  S_StartSound (pos, 0, 0, cl_sfx_lashit, 1, ATTN_NORM, 0);
1165  break;
1166 
1167  case TE_TRACKER_EXPLOSION:
1168  MSG_ReadPos (&net_message, pos);
1169  CL_ColorFlash (pos, 0, 150, -1, -1, -1);
1170  CL_ColorExplosionParticles (pos, 0, 1);
1171 // CL_Tracker_Explode (pos);
1172  S_StartSound (pos, 0, 0, cl_sfx_disrexp, 1, ATTN_NORM, 0);
1173  break;
1174 
1175  case TE_TELEPORT_EFFECT:
1176  case TE_DBALL_GOAL:
1177  MSG_ReadPos (&net_message, pos);
1178  CL_TeleportParticles (pos);
1179  break;
1180 
1181  case TE_WIDOWBEAMOUT:
1182  CL_ParseWidow ();
1183  break;
1184 
1185  case TE_NUKEBLAST:
1186  CL_ParseNuke ();
1187  break;
1188 
1189  case TE_WIDOWSPLASH:
1190  MSG_ReadPos (&net_message, pos);
1191  CL_WidowSplash (pos);
1192  break;
1193 //PGM
1194 //==============
1195 
1196  default:
1197  Com_Error (ERR_DROP, "CL_ParseTEnt: bad type");
1198  }
1199 }

Referenced by CL_ParseServerMessage().

◆ CL_ParticleEffect()

void CL_ParticleEffect ( vec3_t  org,
vec3_t  dir,
int  color,
int  count 
)

Definition at line 916 of file cl_fx.c.

917 {
918  int i, j;
919  cparticle_t *p;
920  float d;
921 
922  for (i=0 ; i<count ; i++)
923  {
924  if (!free_particles)
925  return;
926  p = free_particles;
927  free_particles = p->next;
928  p->next = active_particles;
929  active_particles = p;
930 
931  p->time = cl.time;
932  p->color = color + (rand()&7);
933 
934  d = rand()&31;
935  for (j=0 ; j<3 ; j++)
936  {
937  p->org[j] = org[j] + ((rand()&7)-4) + d*dir[j];
938  p->vel[j] = crand()*20;
939  }
940 
941  p->accel[0] = p->accel[1] = 0;
942  p->accel[2] = -PARTICLE_GRAVITY;
943  p->alpha = 1.0;
944 
945  p->alphavel = -1.0 / (0.5 + frand()*0.3);
946  }
947 }

Referenced by CL_ParseMuzzleFlash2(), CL_ParseParticles(), and CL_ParseTEnt().

◆ CL_ParticleEffect2()

void CL_ParticleEffect2 ( vec3_t  org,
vec3_t  dir,
int  color,
int  count 
)

Definition at line 955 of file cl_fx.c.

956 {
957  int i, j;
958  cparticle_t *p;
959  float d;
960 
961  for (i=0 ; i<count ; i++)
962  {
963  if (!free_particles)
964  return;
965  p = free_particles;
966  free_particles = p->next;
967  p->next = active_particles;
968  active_particles = p;
969 
970  p->time = cl.time;
971  p->color = color;
972 
973  d = rand()&7;
974  for (j=0 ; j<3 ; j++)
975  {
976  p->org[j] = org[j] + ((rand()&7)-4) + d*dir[j];
977  p->vel[j] = crand()*20;
978  }
979 
980  p->accel[0] = p->accel[1] = 0;
981  p->accel[2] = -PARTICLE_GRAVITY;
982  p->alpha = 1.0;
983 
984  p->alphavel = -1.0 / (0.5 + frand()*0.3);
985  }
986 }

Referenced by CL_ParseTEnt().

◆ CL_ParticleEffect3()

void CL_ParticleEffect3 ( vec3_t  org,
vec3_t  dir,
int  color,
int  count 
)

Definition at line 995 of file cl_fx.c.

996 {
997  int i, j;
998  cparticle_t *p;
999  float d;
1000 
1001  for (i=0 ; i<count ; i++)
1002  {
1003  if (!free_particles)
1004  return;
1005  p = free_particles;
1006  free_particles = p->next;
1007  p->next = active_particles;
1008  active_particles = p;
1009 
1010  p->time = cl.time;
1011  p->color = color;
1012 
1013  d = rand()&7;
1014  for (j=0 ; j<3 ; j++)
1015  {
1016  p->org[j] = org[j] + ((rand()&7)-4) + d*dir[j];
1017  p->vel[j] = crand()*20;
1018  }
1019 
1020  p->accel[0] = p->accel[1] = 0;
1021  p->accel[2] = PARTICLE_GRAVITY;
1022  p->alpha = 1.0;
1023 
1024  p->alphavel = -1.0 / (0.5 + frand()*0.3);
1025  }
1026 }

Referenced by CL_ParseTEnt().

◆ CL_ParticleSmokeEffect()

void CL_ParticleSmokeEffect ( vec3_t  org,
vec3_t  dir,
int  color,
int  count,
int  magnitude 
)

Definition at line 1192 of file cl_newfx.c.

1193 {
1194  int i, j;
1195  cparticle_t *p;
1196  float d;
1197  vec3_t r, u;
1198 
1199  MakeNormalVectors (dir, r, u);
1200 
1201  for (i=0 ; i<count ; i++)
1202  {
1203  if (!free_particles)
1204  return;
1205  p = free_particles;
1206  free_particles = p->next;
1207  p->next = active_particles;
1208  active_particles = p;
1209 
1210  p->time = cl.time;
1211  p->color = color + (rand()&7);
1212 
1213  for (j=0 ; j<3 ; j++)
1214  {
1215  p->org[j] = org[j] + magnitude*0.1*crand();
1216 // p->vel[j] = dir[j]*magnitude;
1217  }
1218  VectorScale (dir, magnitude, p->vel);
1219  d = crand()*magnitude/3;
1220  VectorMA (p->vel, d, r, p->vel);
1221  d = crand()*magnitude/3;
1222  VectorMA (p->vel, d, u, p->vel);
1223 
1224  p->accel[0] = p->accel[1] = p->accel[2] = 0;
1225  p->alpha = 1.0;
1226 
1227  p->alphavel = -1.0 / (0.5 + frand()*0.3);
1228  }
1229 }

Referenced by CL_ParseTEnt().

◆ CL_ParticleSteamEffect()

void CL_ParticleSteamEffect ( vec3_t  org,
vec3_t  dir,
int  color,
int  count,
int  magnitude 
)

Definition at line 749 of file cl_newfx.c.

750 {
751  int i, j;
752  cparticle_t *p;
753  float d;
754  vec3_t r, u;
755 
756 // vectoangles2 (dir, angle_dir);
757 // AngleVectors (angle_dir, f, r, u);
758 
759  MakeNormalVectors (dir, r, u);
760 
761  for (i=0 ; i<count ; i++)
762  {
763  if (!free_particles)
764  return;
765  p = free_particles;
766  free_particles = p->next;
767  p->next = active_particles;
768  active_particles = p;
769 
770  p->time = cl.time;
771  p->color = color + (rand()&7);
772 
773  for (j=0 ; j<3 ; j++)
774  {
775  p->org[j] = org[j] + magnitude*0.1*crand();
776 // p->vel[j] = dir[j]*magnitude;
777  }
778  VectorScale (dir, magnitude, p->vel);
779  d = crand()*magnitude/3;
780  VectorMA (p->vel, d, r, p->vel);
781  d = crand()*magnitude/3;
782  VectorMA (p->vel, d, u, p->vel);
783 
784  p->accel[0] = p->accel[1] = 0;
785  p->accel[2] = -PARTICLE_GRAVITY/2;
786  p->alpha = 1.0;
787 
788  p->alphavel = -1.0 / (0.5 + frand()*0.3);
789  }
790 }

Referenced by CL_ParseSteam(), and CL_ParseTEnt().

◆ CL_ParticleSteamEffect2()

void CL_ParticleSteamEffect2 ( cl_sustain_t self)

Definition at line 792 of file cl_newfx.c.

794 {
795  int i, j;
796  cparticle_t *p;
797  float d;
798  vec3_t r, u;
799  vec3_t dir;
800 
801 // vectoangles2 (dir, angle_dir);
802 // AngleVectors (angle_dir, f, r, u);
803 
804  VectorCopy (self->dir, dir);
805  MakeNormalVectors (dir, r, u);
806 
807  for (i=0 ; i<self->count ; i++)
808  {
809  if (!free_particles)
810  return;
811  p = free_particles;
812  free_particles = p->next;
813  p->next = active_particles;
814  active_particles = p;
815 
816  p->time = cl.time;
817  p->color = self->color + (rand()&7);
818 
819  for (j=0 ; j<3 ; j++)
820  {
821  p->org[j] = self->org[j] + self->magnitude*0.1*crand();
822 // p->vel[j] = dir[j]*magnitude;
823  }
824  VectorScale (dir, self->magnitude, p->vel);
825  d = crand()*self->magnitude/3;
826  VectorMA (p->vel, d, r, p->vel);
827  d = crand()*self->magnitude/3;
828  VectorMA (p->vel, d, u, p->vel);
829 
830  p->accel[0] = p->accel[1] = 0;
831  p->accel[2] = -PARTICLE_GRAVITY/2;
832  p->alpha = 1.0;
833 
834  p->alphavel = -1.0 / (0.5 + frand()*0.3);
835  }
836  self->nextthink += self->thinkinterval;
837 }

Referenced by CL_ParseSteam().

◆ CL_PingServers_f()

void CL_PingServers_f ( void  )

Definition at line 802 of file cl_main.c.

803 {
804  int i;
805  netadr_t adr;
806  char name[32];
807  char *adrstring;
808  cvar_t *noudp;
809  cvar_t *noipx;
810 
811  NET_Config (true); // allow remote
812 
813  // send a broadcast packet
814  Com_Printf ("pinging broadcast...\n");
815 
816  noudp = Cvar_Get ("noudp", "0", CVAR_NOSET);
817  if (!noudp->value)
818  {
819  adr.type = NA_BROADCAST;
820  adr.port = BigShort(PORT_SERVER);
822  }
823 
824  noipx = Cvar_Get ("noipx", "0", CVAR_NOSET);
825  if (!noipx->value)
826  {
827  adr.type = NA_BROADCAST_IPX;
828  adr.port = BigShort(PORT_SERVER);
830  }
831 
832  // send a packet to each address book entry
833  for (i=0 ; i<16 ; i++)
834  {
835  Com_sprintf (name, sizeof(name), "adr%i", i);
836  adrstring = Cvar_VariableString (name);
837  if (!adrstring || !adrstring[0])
838  continue;
839 
840  Com_Printf ("pinging %s...\n", adrstring);
841  if (!NET_StringToAdr (adrstring, &adr))
842  {
843  Com_Printf ("Bad address: %s\n", adrstring);
844  continue;
845  }
846  if (!adr.port)
847  adr.port = BigShort(PORT_SERVER);
849  }
850 }

Referenced by CL_InitLocal(), and JoinServer_MenuDraw().

◆ CL_PredictMove()

void CL_PredictMove ( void  )

◆ CL_PredictMovement()

void CL_PredictMovement ( void  )

Definition at line 199 of file cl_pred.c.

200 {
201  int ack, current;
202  int frame;
203  int oldframe;
204  usercmd_t *cmd;
205  pmove_t pm;
206  int i;
207  int step;
208  int oldz;
209 
210  if (cls.state != ca_active)
211  return;
212 
213  if (cl_paused->value)
214  return;
215 
217  { // just set angles
218  for (i=0 ; i<3 ; i++)
219  {
221  }
222  return;
223  }
224 
227 
228  // if we are too far out of date, just freeze
229  if (current - ack >= CMD_BACKUP)
230  {
231  if (cl_showmiss->value)
232  Com_Printf ("exceeded CMD_BACKUP\n");
233  return;
234  }
235 
236  // copy current state to pmove
237  memset (&pm, 0, sizeof(pm));
238  pm.trace = CL_PMTrace;
240 
242 
244 
245 // SCR_DebugGraph (current - ack - 1, 0);
246 
247  frame = 0;
248 
249  // run frames
250  while (++ack < current)
251  {
252  frame = ack & (CMD_BACKUP-1);
253  cmd = &cl.cmds[frame];
254 
255  pm.cmd = *cmd;
256  Pmove (&pm);
257 
258  // save for debug checking
260  }
261 
262  oldframe = (ack-2) & (CMD_BACKUP-1);
263  oldz = cl.predicted_origins[oldframe][2];
264  step = pm.s.origin[2] - oldz;
265  if (step > 63 && step < 160 && (pm.s.pm_flags & PMF_ON_GROUND) )
266  {
267  cl.predicted_step = step * 0.125;
269  }
270 
271 
272  // copy results out for rendering
273  cl.predicted_origin[0] = pm.s.origin[0]*0.125;
274  cl.predicted_origin[1] = pm.s.origin[1]*0.125;
275  cl.predicted_origin[2] = pm.s.origin[2]*0.125;
276 
278 }

Referenced by CL_Frame().

◆ CL_PrepRefresh()

void CL_PrepRefresh ( void  )

Definition at line 250 of file cl_view.c.

251 {
252  char mapname[32];
253  int i;
254  char name[MAX_QPATH];
255  float rotate;
256  vec3_t axis;
257 
258  if (!cl.configstrings[CS_MODELS+1][0])
259  return; // no map loaded
260 
261  SCR_AddDirtyPoint (0, 0);
263 
264  // let the render dll load the map
265  strcpy (mapname, cl.configstrings[CS_MODELS+1] + 5); // skip "maps/"
266  mapname[strlen(mapname)-4] = 0; // cut off ".bsp"
267 
268  // register models, pics, and skins
269  Com_Printf ("Map: %s\r", mapname);
270  SCR_UpdateScreen ();
271  re.BeginRegistration (mapname);
272  Com_Printf (" \r");
273 
274  // precache status bar pics
275  Com_Printf ("pics\r");
276  SCR_UpdateScreen ();
277  SCR_TouchPics ();
278  Com_Printf (" \r");
279 
281 
283  strcpy(cl_weaponmodels[0], "weapon.md2");
284 
285  for (i=1 ; i<MAX_MODELS && cl.configstrings[CS_MODELS+i][0] ; i++)
286  {
287  strcpy (name, cl.configstrings[CS_MODELS+i]);
288  name[37] = 0; // never go beyond one line
289  if (name[0] != '*')
290  Com_Printf ("%s\r", name);
291  SCR_UpdateScreen ();
292  Sys_SendKeyEvents (); // pump message loop
293  if (name[0] == '#')
294  {
295  // special player weapon model
297  {
299  sizeof(cl_weaponmodels[num_cl_weaponmodels]) - 1);
301  }
302  }
303  else
304  {
306  if (name[0] == '*')
308  else
309  cl.model_clip[i] = NULL;
310  }
311  if (name[0] != '*')
312  Com_Printf (" \r");
313  }
314 
315  Com_Printf ("images\r", i);
316  SCR_UpdateScreen ();
317  for (i=1 ; i<MAX_IMAGES && cl.configstrings[CS_IMAGES+i][0] ; i++)
318  {
320  Sys_SendKeyEvents (); // pump message loop
321  }
322 
323  Com_Printf (" \r");
324  for (i=0 ; i<MAX_CLIENTS ; i++)
325  {
326  if (!cl.configstrings[CS_PLAYERSKINS+i][0])
327  continue;
328  Com_Printf ("client %i\r", i);
329  SCR_UpdateScreen ();
330  Sys_SendKeyEvents (); // pump message loop
332  Com_Printf (" \r");
333  }
334 
335  CL_LoadClientinfo (&cl.baseclientinfo, "unnamed\\male/grunt");
336 
337  // set sky textures and speed
338  Com_Printf ("sky\r", i);
339  SCR_UpdateScreen ();
340  rotate = atof (cl.configstrings[CS_SKYROTATE]);
341  sscanf (cl.configstrings[CS_SKYAXIS], "%f %f %f",
342  &axis[0], &axis[1], &axis[2]);
343  re.SetSky (cl.configstrings[CS_SKY], rotate, axis);
344  Com_Printf (" \r");
345 
346  // the renderer can now free unneeded stuff
347  re.EndRegistration ();
348 
349  // clear any lines of console text
350  Con_ClearNotify ();
351 
352  SCR_UpdateScreen ();
353  cl.refresh_prepped = true;
354  cl.force_refdef = true; // make sure we have a valid refdef
355 
356  // start the cd track
357  int track = atoi(cl.configstrings[CS_CDTRACK]);
358  if (!CDAudio_Play(track, true))
359  Miniaudio_Play(track, true);
360 }

Referenced by CL_Frame(), CL_Precache_f(), and CL_RequestNextDownload().

◆ CL_QuadTrail()

void CL_QuadTrail ( vec3_t  start,
vec3_t  end 
)

Definition at line 1335 of file cl_fx.c.

1336 {
1337  vec3_t move;
1338  vec3_t vec;
1339  float len;
1340  int j;
1341  cparticle_t *p;
1342  int dec;
1343 
1344  VectorCopy (start, move);
1345  VectorSubtract (end, start, vec);
1346  len = VectorNormalize (vec);
1347 
1348  dec = 5;
1349  VectorScale (vec, 5, vec);
1350 
1351  while (len > 0)
1352  {
1353  len -= dec;
1354 
1355  if (!free_particles)
1356  return;
1357  p = free_particles;
1358  free_particles = p->next;
1359  p->next = active_particles;
1360  active_particles = p;
1361  VectorClear (p->accel);
1362 
1363  p->time = cl.time;
1364 
1365  p->alpha = 1.0;
1366  p->alphavel = -1.0 / (0.8+frand()*0.2);
1367  p->color = 115;
1368  for (j=0 ; j<3 ; j++)
1369  {
1370  p->org[j] = move[j] + crand()*16;
1371  p->vel[j] = crand()*5;
1372  p->accel[j] = 0;
1373  }
1374 
1375  VectorAdd (move, vec, move);
1376  }
1377 }

◆ CL_Quit_f()

void CL_Quit_f ( void  )

Definition at line 386 of file cl_main.c.

387 {
388  CL_Disconnect ();
389  Com_Quit ();
390 }

Referenced by CL_InitLocal(), Key_Event(), and M_Quit_Key().

◆ CL_RailTrail()

void CL_RailTrail ( vec3_t  start,
vec3_t  end 
)

Definition at line 1613 of file cl_fx.c.

1614 {
1615  vec3_t move;
1616  vec3_t vec;
1617  float len;
1618  int j;
1619  cparticle_t *p;
1620  float dec;
1621  vec3_t right, up;
1622  int i;
1623  float d, c, s;
1624  vec3_t dir;
1625  byte clr = 0x74;
1626 
1627  VectorCopy (start, move);
1628  VectorSubtract (end, start, vec);
1629  len = VectorNormalize (vec);
1630 
1631  MakeNormalVectors (vec, right, up);
1632 
1633  for (i=0 ; i<len ; i++)
1634  {
1635  if (!free_particles)
1636  return;
1637 
1638  p = free_particles;
1639  free_particles = p->next;
1640  p->next = active_particles;
1641  active_particles = p;
1642 
1643  p->time = cl.time;
1644  VectorClear (p->accel);
1645 
1646  d = i * 0.1;
1647  c = cos(d);
1648  s = sin(d);
1649 
1650  VectorScale (right, c, dir);
1651  VectorMA (dir, s, up, dir);
1652 
1653  p->alpha = 1.0;
1654  p->alphavel = -1.0 / (1+frand()*0.2);
1655  p->color = clr + (rand()&7);
1656  for (j=0 ; j<3 ; j++)
1657  {
1658  p->org[j] = move[j] + dir[j]*3;
1659  p->vel[j] = dir[j]*6;
1660  }
1661 
1662  VectorAdd (move, vec, move);
1663  }
1664 
1665  dec = 0.75;
1666  VectorScale (vec, dec, vec);
1667  VectorCopy (start, move);
1668 
1669  while (len > 0)
1670  {
1671  len -= dec;
1672 
1673  if (!free_particles)
1674  return;
1675  p = free_particles;
1676  free_particles = p->next;
1677  p->next = active_particles;
1678  active_particles = p;
1679 
1680  p->time = cl.time;
1681  VectorClear (p->accel);
1682 
1683  p->alpha = 1.0;
1684  p->alphavel = -1.0 / (0.6+frand()*0.2);
1685  p->color = 0x0 + rand()&15;
1686 
1687  for (j=0 ; j<3 ; j++)
1688  {
1689  p->org[j] = move[j] + crand()*3;
1690  p->vel[j] = crand()*3;
1691  p->accel[j] = 0;
1692  }
1693 
1694  VectorAdd (move, vec, move);
1695  }
1696 }

Referenced by CL_ParseTEnt().

◆ CL_ReadFromServer()

int CL_ReadFromServer ( void  )

◆ CL_ReadPackets()

void CL_ReadPackets ( void  )

Definition at line 990 of file cl_main.c.

991 {
993  {
994 // Com_Printf ("packet\n");
995  //
996  // remote command packet
997  //
998  if (*(int *)net_message.data == -1)
999  {
1001  continue;
1002  }
1003 
1005  continue; // dump it if not connected
1006 
1007  if (net_message.cursize < 8)
1008  {
1009  Com_Printf ("%s: Runt packet\n",NET_AdrToString(net_from));
1010  continue;
1011  }
1012 
1013  //
1014  // packet from server
1015  //
1017  {
1018  Com_DPrintf ("%s:sequenced packet without connection\n"
1020  continue;
1021  }
1023  continue; // wasn't accepted for some reason
1025  }
1026 
1027  //
1028  // check timeout
1029  //
1030  if (cls.state >= ca_connected
1032  {
1033  if (++cl.timeoutcount > 5) // timeoutcount saves debugger
1034  {
1035  Com_Printf ("\nServer connection timed out.\n");
1036  CL_Disconnect ();
1037  return;
1038  }
1039  }
1040  else
1041  cl.timeoutcount = 0;
1042 
1043 }

Referenced by CL_Frame().

◆ CL_Record_f()

void CL_Record_f ( void  )

Definition at line 162 of file cl_main.c.

163 {
164  char name[MAX_OSPATH];
165  char buf_data[MAX_MSGLEN];
166  sizebuf_t buf;
167  int i;
168  int len;
169  entity_state_t *ent;
170  entity_state_t nullstate;
171 
172  if (Cmd_Argc() != 2)
173  {
174  Com_Printf ("record <demoname>\n");
175  return;
176  }
177 
178  if (cls.demorecording)
179  {
180  Com_Printf ("Already recording.\n");
181  return;
182  }
183 
184  if (cls.state != ca_active)
185  {
186  Com_Printf ("You must be in a level to record.\n");
187  return;
188  }
189 
190  //
191  // open the demo file
192  //
193  Com_sprintf (name, sizeof(name), "%s/demos/%s.dm2", FS_Gamedir(), Cmd_Argv(1));
194 
195  Com_Printf ("recording to %s.\n", name);
197  cls.demofile = fopen (name, "wb");
198  if (!cls.demofile)
199  {
200  Com_Printf ("ERROR: couldn't open.\n");
201  return;
202  }
203  cls.demorecording = true;
204 
205  // don't start saving messages until a non-delta compressed message is received
206  cls.demowaiting = true;
207 
208  //
209  // write out messages to hold the startup information
210  //
211  SZ_Init (&buf, buf_data, sizeof(buf_data));
212 
213  // send the serverdata
216  MSG_WriteLong (&buf, 0x10000 + cl.servercount);
217  MSG_WriteByte (&buf, 1); // demos are always attract loops
218  MSG_WriteString (&buf, cl.gamedir);
219  MSG_WriteShort (&buf, cl.playernum);
220 
222 
223  // configstrings
224  for (i=0 ; i<MAX_CONFIGSTRINGS ; i++)
225  {
226  if (cl.configstrings[i][0])
227  {
228  if (buf.cursize + strlen (cl.configstrings[i]) + 32 > buf.maxsize)
229  { // write it out
230  len = LittleLong (buf.cursize);
231  fwrite (&len, 4, 1, cls.demofile);
232  fwrite (buf.data, buf.cursize, 1, cls.demofile);
233  buf.cursize = 0;
234  }
235 
237  MSG_WriteShort (&buf, i);
239  }
240 
241  }
242 
243  // baselines
244  memset (&nullstate, 0, sizeof(nullstate));
245  for (i=0; i<MAX_EDICTS ; i++)
246  {
247  ent = &cl_entities[i].baseline;
248  if (!ent->modelindex)
249  continue;
250 
251  if (buf.cursize + 64 > buf.maxsize)
252  { // write it out
253  len = LittleLong (buf.cursize);
254  fwrite (&len, 4, 1, cls.demofile);
255  fwrite (buf.data, buf.cursize, 1, cls.demofile);
256  buf.cursize = 0;
257  }
258 
260  MSG_WriteDeltaEntity (&nullstate, &cl_entities[i].baseline, &buf, true, true);
261  }
262 
264  MSG_WriteString (&buf, "precache\n");
265 
266  // write it to the demo file
267 
268  len = LittleLong (buf.cursize);
269  fwrite (&len, 4, 1, cls.demofile);
270  fwrite (buf.data, buf.cursize, 1, cls.demofile);
271 
272  // the rest of the demo file will be individual frames
273 }

Referenced by CL_InitLocal().

◆ CL_RegisterSounds()

void CL_RegisterSounds ( void  )

Definition at line 176 of file cl_parse.c.

177 {
178  int i;
179 
182  for (i=1 ; i<MAX_SOUNDS ; i++)
183  {
184  if (!cl.configstrings[CS_SOUNDS+i][0])
185  break;
187  Sys_SendKeyEvents (); // pump message loop
188  }
190 }

Referenced by CL_Precache_f(), CL_RequestNextDownload(), and CL_Snd_Restart_f().

◆ CL_RegisterTEntModels()

void CL_RegisterTEntModels ( void  )

Definition at line 172 of file cl_tent.c.

173 {
174  cl_mod_explode = re.RegisterModel ("models/objects/explode/tris.md2");
175  cl_mod_smoke = re.RegisterModel ("models/objects/smoke/tris.md2");
176  cl_mod_flash = re.RegisterModel ("models/objects/flash/tris.md2");
177  cl_mod_parasite_segment = re.RegisterModel ("models/monsters/parasite/segment/tris.md2");
178  cl_mod_grapple_cable = re.RegisterModel ("models/ctf/segment/tris.md2");
179  cl_mod_parasite_tip = re.RegisterModel ("models/monsters/parasite/tip/tris.md2");
180  cl_mod_explo4 = re.RegisterModel ("models/objects/r_explode/tris.md2");
181  cl_mod_bfg_explo = re.RegisterModel ("sprites/s_bfg2.sp2");
182  cl_mod_powerscreen = re.RegisterModel ("models/items/armor/effect/tris.md2");
183 
184 re.RegisterModel ("models/objects/laser/tris.md2");
185 re.RegisterModel ("models/objects/grenade2/tris.md2");
186 re.RegisterModel ("models/weapons/v_machn/tris.md2");
187 re.RegisterModel ("models/weapons/v_handgr/tris.md2");
188 re.RegisterModel ("models/weapons/v_shotg2/tris.md2");
189 re.RegisterModel ("models/objects/gibs/bone/tris.md2");
190 re.RegisterModel ("models/objects/gibs/sm_meat/tris.md2");
191 re.RegisterModel ("models/objects/gibs/bone2/tris.md2");
192 // RAFAEL
193 // re.RegisterModel ("models/objects/blaser/tris.md2");
194 
195 re.RegisterPic ("w_machinegun");
196 re.RegisterPic ("a_bullets");
197 re.RegisterPic ("i_health");
198 re.RegisterPic ("a_grenades");
199 
200 //ROGUE
201  cl_mod_explo4_big = re.RegisterModel ("models/objects/r_explode2/tris.md2");
202  cl_mod_lightning = re.RegisterModel ("models/proj/lightning/tris.md2");
203  cl_mod_heatbeam = re.RegisterModel ("models/proj/beam/tris.md2");
204  cl_mod_monster_heatbeam = re.RegisterModel ("models/proj/widowbeam/tris.md2");
205 //ROGUE
206 }

Referenced by CL_PrepRefresh().

◆ CL_RegisterTEntSounds()

void CL_RegisterTEntSounds ( void  )

Definition at line 125 of file cl_tent.c.

126 {
127  int i;
128  char name[MAX_QPATH];
129 
130  // PMM - version stuff
131 // Com_Printf ("%s\n", ROGUE_VERSION_STRING);
132  // PMM
133  cl_sfx_ric1 = S_RegisterSound ("world/ric1.wav");
134  cl_sfx_ric2 = S_RegisterSound ("world/ric2.wav");
135  cl_sfx_ric3 = S_RegisterSound ("world/ric3.wav");
136  cl_sfx_lashit = S_RegisterSound("weapons/lashit.wav");
137  cl_sfx_spark5 = S_RegisterSound ("world/spark5.wav");
138  cl_sfx_spark6 = S_RegisterSound ("world/spark6.wav");
139  cl_sfx_spark7 = S_RegisterSound ("world/spark7.wav");
140  cl_sfx_railg = S_RegisterSound ("weapons/railgf1a.wav");
141  cl_sfx_rockexp = S_RegisterSound ("weapons/rocklx1a.wav");
142  cl_sfx_grenexp = S_RegisterSound ("weapons/grenlx1a.wav");
143  cl_sfx_watrexp = S_RegisterSound ("weapons/xpld_wat.wav");
144  // RAFAEL
145  // cl_sfx_plasexp = S_RegisterSound ("weapons/plasexpl.wav");
146  S_RegisterSound ("player/land1.wav");
147 
148  S_RegisterSound ("player/fall2.wav");
149  S_RegisterSound ("player/fall1.wav");
150 
151  for (i=0 ; i<4 ; i++)
152  {
153  Com_sprintf (name, sizeof(name), "player/step%i.wav", i+1);
155  }
156 
157 //PGM
158  cl_sfx_lightning = S_RegisterSound ("weapons/tesla.wav");
159  cl_sfx_disrexp = S_RegisterSound ("weapons/disrupthit.wav");
160  // version stuff
161 // sprintf (name, "weapons/sound%d.wav", ROGUE_VERSION_ID);
162 // if (name[0] == 'w')
163 // name[0] = 'W';
164 //PGM
165 }

Referenced by CL_RegisterSounds().

◆ CL_RequestNextDownload()

void CL_RequestNextDownload ( void  )

Definition at line 1120 of file cl_main.c.

1121 {
1122  unsigned map_checksum; // for detecting cheater maps
1123  char fn[MAX_OSPATH];
1124  dmdl_t *pheader;
1125 
1126  if (cls.state != ca_connected)
1127  return;
1128 
1131 
1132 //ZOID
1133  if (precache_check == CS_MODELS) { // confirm map
1134  precache_check = CS_MODELS+2; // 0 isn't used
1137  return; // started a download
1138  }
1141  while (precache_check < CS_MODELS+MAX_MODELS &&
1143  if (cl.configstrings[precache_check][0] == '*' ||
1144  cl.configstrings[precache_check][0] == '#') {
1145  precache_check++;
1146  continue;
1147  }
1148  if (precache_model_skin == 0) {
1150  precache_model_skin = 1;
1151  return; // started a download
1152  }
1153  precache_model_skin = 1;
1154  }
1155 
1156  // checking for skins in the model
1157  if (!precache_model) {
1158 
1160  if (!precache_model) {
1161  precache_model_skin = 0;
1162  precache_check++;
1163  continue; // couldn't load it
1164  }
1165  if (LittleLong(*(unsigned *)precache_model) != IDALIASHEADER) {
1166  // not an alias model
1168  precache_model = 0;
1169  precache_model_skin = 0;
1170  precache_check++;
1171  continue;
1172  }
1173  pheader = (dmdl_t *)precache_model;
1174  if (LittleLong (pheader->version) != ALIAS_VERSION) {
1175  precache_check++;
1176  precache_model_skin = 0;
1177  continue; // couldn't load it
1178  }
1179  }
1180 
1181  pheader = (dmdl_t *)precache_model;
1182 
1183  while (precache_model_skin - 1 < LittleLong(pheader->num_skins)) {
1184  if (!CL_CheckOrDownloadFile((char *)precache_model +
1185  LittleLong(pheader->ofs_skins) +
1188  return; // started a download
1189  }
1191  }
1192  if (precache_model) {
1194  precache_model = 0;
1195  }
1196  precache_model_skin = 0;
1197  precache_check++;
1198  }
1199  }
1201  }
1204  if (precache_check == CS_SOUNDS)
1205  precache_check++; // zero is blank
1206  while (precache_check < CS_SOUNDS+MAX_SOUNDS &&
1208  if (cl.configstrings[precache_check][0] == '*') {
1209  precache_check++;
1210  continue;
1211  }
1212  Com_sprintf(fn, sizeof(fn), "sound/%s", cl.configstrings[precache_check++]);
1213  if (!CL_CheckOrDownloadFile(fn))
1214  return; // started a download
1215  }
1216  }
1218  }
1220  if (precache_check == CS_IMAGES)
1221  precache_check++; // zero is blank
1222  while (precache_check < CS_IMAGES+MAX_IMAGES &&
1224  Com_sprintf(fn, sizeof(fn), "pics/%s.pcx", cl.configstrings[precache_check++]);
1225  if (!CL_CheckOrDownloadFile(fn))
1226  return; // started a download
1227  }
1229  }
1230  // skins are special, since a player has three things to download:
1231  // model, weapon model and skin
1232  // so precache_check is now *3
1236  int i, n;
1237  char model[MAX_QPATH], skin[MAX_QPATH], *p;
1238 
1241 
1242  if (!cl.configstrings[CS_PLAYERSKINS+i][0]) {
1244  continue;
1245  }
1246 
1247  if ((p = strchr(cl.configstrings[CS_PLAYERSKINS+i], '\\')) != NULL)
1248  p++;
1249  else
1251  strcpy(model, p);
1252  p = strchr(model, '/');
1253  if (!p)
1254  p = strchr(model, '\\');
1255  if (p) {
1256  *p++ = 0;
1257  strcpy(skin, p);
1258  } else
1259  *skin = 0;
1260 
1261  switch (n) {
1262  case 0: // model
1263  Com_sprintf(fn, sizeof(fn), "players/%s/tris.md2", model);
1264  if (!CL_CheckOrDownloadFile(fn)) {
1266  return; // started a download
1267  }
1268  n++;
1269  /*FALL THROUGH*/
1270 
1271  case 1: // weapon model
1272  Com_sprintf(fn, sizeof(fn), "players/%s/weapon.md2", model);
1273  if (!CL_CheckOrDownloadFile(fn)) {
1275  return; // started a download
1276  }
1277  n++;
1278  /*FALL THROUGH*/
1279 
1280  case 2: // weapon skin
1281  Com_sprintf(fn, sizeof(fn), "players/%s/weapon.pcx", model);
1282  if (!CL_CheckOrDownloadFile(fn)) {
1284  return; // started a download
1285  }
1286  n++;
1287  /*FALL THROUGH*/
1288 
1289  case 3: // skin
1290  Com_sprintf(fn, sizeof(fn), "players/%s/%s.pcx", model, skin);
1291  if (!CL_CheckOrDownloadFile(fn)) {
1293  return; // started a download
1294  }
1295  n++;
1296  /*FALL THROUGH*/
1297 
1298  case 4: // skin_i
1299  Com_sprintf(fn, sizeof(fn), "players/%s/%s_i.pcx", model, skin);
1300  if (!CL_CheckOrDownloadFile(fn)) {
1302  return; // started a download
1303  }
1304  // move on to next model
1306  }
1307  }
1308  }
1309  // precache phase completed
1311  }
1312 
1313  if (precache_check == ENV_CNT) {
1314  precache_check = ENV_CNT + 1;
1315 
1316  CM_LoadMap (cl.configstrings[CS_MODELS+1], true, &map_checksum);
1317 
1318  if (map_checksum != atoi(cl.configstrings[CS_MAPCHECKSUM])) {
1319  Com_Error (ERR_DROP, "Local map version differs from server: %i != '%s'\n",
1320  map_checksum, cl.configstrings[CS_MAPCHECKSUM]);
1321  return;
1322  }
1323  }
1324 
1327  while (precache_check < TEXTURE_CNT) {
1328  int n = precache_check++ - ENV_CNT - 1;
1329 
1330  if (n & 1)
1331  Com_sprintf(fn, sizeof(fn), "env/%s%s.pcx",
1332  cl.configstrings[CS_SKY], env_suf[n/2]);
1333  else
1334  Com_sprintf(fn, sizeof(fn), "env/%s%s.tga",
1335  cl.configstrings[CS_SKY], env_suf[n/2]);
1336  if (!CL_CheckOrDownloadFile(fn))
1337  return; // started a download
1338  }
1339  }
1341  }
1342 
1343  if (precache_check == TEXTURE_CNT) {
1345  precache_tex = 0;
1346  }
1347 
1348  // confirm existance of textures, download any that don't exist
1349  if (precache_check == TEXTURE_CNT+1) {
1350  // from qcommon/cmodel.c
1351  extern int numtexinfo;
1352  extern mapsurface_t map_surfaces[];
1353 
1355  while (precache_tex < numtexinfo) {
1356  char fn[MAX_OSPATH];
1357 
1358  sprintf(fn, "textures/%s.wal", map_surfaces[precache_tex++].rname);
1359  if (!CL_CheckOrDownloadFile(fn))
1360  return; // started a download
1361  }
1362  }
1364  }
1365 
1366 //ZOID
1367  CL_RegisterSounds ();
1368  CL_PrepRefresh ();
1369 
1372 }

Referenced by CL_ParseDownload(), and CL_Precache_f().

◆ CL_RocketTrail()

void CL_RocketTrail ( vec3_t  start,
vec3_t  end,
centity_t old 
)

Definition at line 1556 of file cl_fx.c.

1557 {
1558  vec3_t move;
1559  vec3_t vec;
1560  float len;
1561  int j;
1562  cparticle_t *p;
1563  float dec;
1564 
1565  // smoke
1566  CL_DiminishingTrail (start, end, old, EF_ROCKET);
1567 
1568  // fire
1569  VectorCopy (start, move);
1570  VectorSubtract (end, start, vec);
1571  len = VectorNormalize (vec);
1572 
1573  dec = 1;
1574  VectorScale (vec, dec, vec);
1575 
1576  while (len > 0)
1577  {
1578  len -= dec;
1579 
1580  if (!free_particles)
1581  return;
1582 
1583  if ( (rand()&7) == 0)
1584  {
1585  p = free_particles;
1586  free_particles = p->next;
1587  p->next = active_particles;
1588  active_particles = p;
1589 
1590  VectorClear (p->accel);
1591  p->time = cl.time;
1592 
1593  p->alpha = 1.0;
1594  p->alphavel = -1.0 / (1+frand()*0.2);
1595  p->color = 0xdc + (rand()&3);
1596  for (j=0 ; j<3 ; j++)
1597  {
1598  p->org[j] = move[j] + crand()*5;
1599  p->vel[j] = crand()*20;
1600  }
1601  p->accel[2] = -PARTICLE_GRAVITY;
1602  }
1603  VectorAdd (move, vec, move);
1604  }
1605 }

Referenced by CL_AddPacketEntities().

◆ CL_RunDLights()

void CL_RunDLights ( void  )

Definition at line 211 of file cl_fx.c.

212 {
213  int i;
214  cdlight_t *dl;
215 
216  dl = cl_dlights;
217  for (i=0 ; i<MAX_DLIGHTS ; i++, dl++)
218  {
219  if (!dl->radius)
220  continue;
221 
222  if (dl->die < cl.time)
223  {
224  dl->radius = 0;
225  return;
226  }
227  dl->radius -= cls.frametime*dl->decay;
228  if (dl->radius < 0)
229  dl->radius = 0;
230  }
231 }

Referenced by CL_Frame().

◆ CL_RunLightStyles()

void CL_RunLightStyles ( void  )

Definition at line 66 of file cl_fx.c.

67 {
68  int ofs;
69  int i;
70  clightstyle_t *ls;
71 
72  ofs = cl.time / 100;
73  if (ofs == lastofs)
74  return;
75  lastofs = ofs;
76 
77  for (i=0,ls=cl_lightstyle ; i<MAX_LIGHTSTYLES ; i++, ls++)
78  {
79  if (!ls->length)
80  {
81  ls->value[0] = ls->value[1] = ls->value[2] = 1.0;
82  continue;
83  }
84  if (ls->length == 1)
85  ls->value[0] = ls->value[1] = ls->value[2] = ls->map[0];
86  else
87  ls->value[0] = ls->value[1] = ls->value[2] = ls->map[ofs%ls->length];
88  }
89 }

Referenced by CL_Frame().

◆ CL_RunParticles()

void CL_RunParticles ( void  )

◆ CL_SendCmd()

void CL_SendCmd ( void  )

Definition at line 460 of file cl_input.c.

461 {
462  sizebuf_t buf;
463  byte data[128];
464  int i;
465  usercmd_t *cmd, *oldcmd;
466  usercmd_t nullcmd;
467  int checksumIndex;
468 
469  memset( &buf, 0, sizeof(buf) );
470 
471  // build a command even if not connected
472 
473  // save this command off for prediction
475  cmd = &cl.cmds[i];
476  cl.cmd_time[i] = cls.realtime; // for netgraph ping calculation
477 
478  *cmd = CL_CreateCmd ();
479 
480  cl.cmd = *cmd;
481 
483  return;
484 
485  if ( cls.state == ca_connected)
486  {
488  Netchan_Transmit (&cls.netchan, 0, buf.data);
489  return;
490  }
491 
492  // send a userinfo update if needed
493  if (userinfo_modified)
494  {
495  CL_FixUpGender();
496  userinfo_modified = false;
499  }
500 
501  SZ_Init (&buf, data, sizeof(data));
502 
503  if (cmd->buttons && cl.cinematictime > 0 && !cl.attractloop
504  && cls.realtime - cl.cinematictime > 1000)
505  { // skip the rest of the cinematic
507  }
508 
509  // begin a client move command
510  MSG_WriteByte (&buf, clc_move);
511 
512  // save the position for a checksum byte
513  checksumIndex = buf.cursize;
514  MSG_WriteByte (&buf, 0);
515 
516  // let the server know what the last frame we
517  // got was, so the next message can be delta compressed
519  MSG_WriteLong (&buf, -1); // no compression
520  else
522 
523  // send this and the previous cmds in the message, so
524  // if the last packet was dropped, it can be recovered
526  cmd = &cl.cmds[i];
527  memset (&nullcmd, 0, sizeof(nullcmd));
528  MSG_WriteDeltaUsercmd (&buf, &nullcmd, cmd);
529  oldcmd = cmd;
530 
532  cmd = &cl.cmds[i];
533  MSG_WriteDeltaUsercmd (&buf, oldcmd, cmd);
534  oldcmd = cmd;
535 
537  cmd = &cl.cmds[i];
538  MSG_WriteDeltaUsercmd (&buf, oldcmd, cmd);
539 
540  // calculate a checksum over the move commands
541  buf.data[checksumIndex] = COM_BlockSequenceCRCByte(
542  buf.data + checksumIndex + 1, buf.cursize - checksumIndex - 1,
544 
545  //
546  // deliver the message
547  //
548  Netchan_Transmit (&cls.netchan, buf.cursize, buf.data);
549 }

Referenced by CL_SendCommand().

◆ CL_SendMove()

void CL_SendMove ( usercmd_t cmd)

◆ CL_SetLightstyle()

void CL_SetLightstyle ( int  i)

Definition at line 92 of file cl_fx.c.

93 {
94  char *s;
95  int j, k;
96 
98 
99  j = (int)strlen (s);
100  if (j >= MAX_QPATH)
101  Com_Error (ERR_DROP, "svc_lightstyle length=%i", j);
102 
103  cl_lightstyle[i].length = j;
104 
105  for (k=0 ; k<j ; k++)
106  cl_lightstyle[i].map[k] = (float)(s[k]-'a')/(float)('m'-'a');
107 }

Referenced by CL_ParseConfigString().

◆ CL_SmokeAndFlash()

void CL_SmokeAndFlash ( vec3_t  origin)

Definition at line 263 of file cl_tent.c.

264 {
265  explosion_t *ex;
266 
267  ex = CL_AllocExplosion ();
268  VectorCopy (origin, ex->ent.origin);
269  ex->type = ex_misc;
270  ex->frames = 4;
271  ex->ent.flags = RF_TRANSLUCENT;
272  ex->start = cl.frame.servertime - 100;
273  ex->ent.model = cl_mod_smoke;
274 
275  ex = CL_AllocExplosion ();
276  VectorCopy (origin, ex->ent.origin);
277  ex->type = ex_flash;
278  ex->ent.flags = RF_FULLBRIGHT;
279  ex->frames = 2;
280  ex->start = cl.frame.servertime - 100;
281  ex->ent.model = cl_mod_flash;
282 }

Referenced by CL_ParseMuzzleFlash2(), and CL_ParseTEnt().

◆ CL_SmokeTrail()

void CL_SmokeTrail ( vec3_t  start,
vec3_t  end,
int  colorStart,
int  colorRun,
int  spacing 
)

Definition at line 187 of file cl_newfx.c.

188 {
189  vec3_t move;
190  vec3_t vec;
191  float len;
192  int j;
193  cparticle_t *p;
194 
195  VectorCopy (start, move);
196  VectorSubtract (end, start, vec);
197  len = VectorNormalize (vec);
198 
199  VectorScale (vec, spacing, vec);
200 
201  // FIXME: this is a really silly way to have a loop
202  while (len > 0)
203  {
204  len -= spacing;
205 
206  if (!free_particles)
207  return;
208  p = free_particles;
209  free_particles = p->next;
210  p->next = active_particles;
211  active_particles = p;
212  VectorClear (p->accel);
213 
214  p->time = cl.time;
215 
216  p->alpha = 1.0;
217  p->alphavel = -1.0 / (1+frand()*0.5);
218  p->color = colorStart + (rand() % colorRun);
219  for (j=0 ; j<3 ; j++)
220  {
221  p->org[j] = move[j] + crand()*3;
222  p->accel[j] = 0;
223  }
224  p->vel[2] = 20 + crand()*5;
225 
226  VectorAdd (move, vec, move);
227  }
228 }

◆ CL_Snd_Restart_f()

void CL_Snd_Restart_f ( void  )

Definition at line 1098 of file cl_main.c.

1099 {
1100  S_Shutdown ();
1101  S_Init ();
1102  CL_RegisterSounds ();
1103 }

Referenced by CL_InitLocal(), Options_MenuDraw(), SCR_PlayCinematic(), and SCR_StopCinematic().

◆ CL_Stop_f()

void CL_Stop_f ( void  )

Definition at line 134 of file cl_main.c.

135 {
136  int len;
137 
138  if (!cls.demorecording)
139  {
140  Com_Printf ("Not recording a demo.\n");
141  return;
142  }
143 
144 // finish up
145  len = -1;
146  fwrite (&len, 4, 1, cls.demofile);
147  fclose (cls.demofile);
148  cls.demofile = NULL;
149  cls.demorecording = false;
150  Com_Printf ("Stopped demo.\n");
151 }

Referenced by CL_Disconnect(), and CL_InitLocal().

◆ CL_TagTrail()

void CL_TagTrail ( vec3_t  start,
vec3_t  end,
float  color 
)

Definition at line 1107 of file cl_newfx.c.

1108 {
1109  vec3_t move;
1110  vec3_t vec;
1111  float len;
1112  int j;
1113  cparticle_t *p;
1114  int dec;
1115 
1116  VectorCopy (start, move);
1117  VectorSubtract (end, start, vec);
1118  len = VectorNormalize (vec);
1119 
1120  dec = 5;
1121  VectorScale (vec, 5, vec);
1122 
1123  while (len >= 0)
1124  {
1125  len -= dec;
1126 
1127  if (!free_particles)
1128  return;
1129  p = free_particles;
1130  free_particles = p->next;
1131  p->next = active_particles;
1132  active_particles = p;
1133  VectorClear (p->accel);
1134 
1135  p->time = cl.time;
1136 
1137  p->alpha = 1.0;
1138  p->alphavel = -1.0 / (0.8+frand()*0.2);
1139  p->color = color;
1140  for (j=0 ; j<3 ; j++)
1141  {
1142  p->org[j] = move[j] + crand()*16;
1143  p->vel[j] = crand()*5;
1144  p->accel[j] = 0;
1145  }
1146 
1147  VectorAdd (move, vec, move);
1148  }
1149 }

Referenced by CL_AddPacketEntities().

◆ CL_TeleporterParticles()

void CL_TeleporterParticles ( entity_state_t ent)

Definition at line 1033 of file cl_fx.c.

1034 {
1035  int i, j;
1036  cparticle_t *p;
1037 
1038  for (i=0 ; i<8 ; i++)
1039  {
1040  if (!free_particles)
1041  return;
1042  p = free_particles;
1043  free_particles = p->next;
1044  p->next = active_particles;
1045  active_particles = p;
1046 
1047  p->time = cl.time;
1048  p->color = 0xdb;
1049 
1050  for (j=0 ; j<2 ; j++)
1051  {
1052  p->org[j] = ent->origin[j] - 16 + (rand()&31);
1053  p->vel[j] = crand()*14;
1054  }
1055 
1056  p->org[2] = ent->origin[2] - 8 + (rand()&7);
1057  p->vel[2] = 80 + (rand()&7);
1058 
1059  p->accel[0] = p->accel[1] = 0;
1060  p->accel[2] = -PARTICLE_GRAVITY;
1061  p->alpha = 1.0;
1062 
1063  p->alphavel = -0.5;
1064  }
1065 }

Referenced by CL_FireEntityEvents().

◆ CL_Tracker_Explode()

void CL_Tracker_Explode ( vec3_t  origin)

Definition at line 1067 of file cl_newfx.c.

1068 {
1069  vec3_t dir, backdir;
1070  int i;
1071  cparticle_t *p;
1072 
1073  for(i=0;i<300;i++)
1074  {
1075  if (!free_particles)
1076  return;
1077  p = free_particles;
1078  free_particles = p->next;
1079  p->next = active_particles;
1080  active_particles = p;
1081  VectorClear (p->accel);
1082 
1083  p->time = cl.time;
1084 
1085  p->alpha = 1.0;
1086  p->alphavel = -1.0;
1087  p->color = 0;
1088 
1089  dir[0] = crand();
1090  dir[1] = crand();
1091  dir[2] = crand();
1092  VectorNormalize(dir);
1093  VectorScale(dir, -1, backdir);
1094 
1095  VectorMA(origin, 64, dir, p->org);
1096  VectorScale(backdir, 64, p->vel);
1097  }
1098 
1099 }

◆ CL_Tracker_Shell()

void CL_Tracker_Shell ( vec3_t  origin)

Definition at line 898 of file cl_newfx.c.

899 {
900  vec3_t dir;
901  int i;
902  cparticle_t *p;
903 
904  for(i=0;i<300;i++)
905  {
906  if (!free_particles)
907  return;
908  p = free_particles;
909  free_particles = p->next;
910  p->next = active_particles;
911  active_particles = p;
912  VectorClear (p->accel);
913 
914  p->time = cl.time;
915 
916  p->alpha = 1.0;
918  p->color = 0;
919 
920  dir[0] = crand();
921  dir[1] = crand();
922  dir[2] = crand();
923  VectorNormalize(dir);
924 
925  VectorMA(origin, 40, dir, p->org);
926  }
927 }

Referenced by CL_AddPacketEntities().

◆ CL_TrackerTrail()

void CL_TrackerTrail ( vec3_t  start,
vec3_t  end,
int  particleColor 
)

Definition at line 844 of file cl_newfx.c.

845 {
846  vec3_t move;
847  vec3_t vec;
848  vec3_t forward,right,up,angle_dir;
849  float len;
850  int j;
851  cparticle_t *p;
852  int dec;
853  float dist;
854 
855  VectorCopy (start, move);
856  VectorSubtract (end, start, vec);
857  len = VectorNormalize (vec);
858 
859  VectorCopy(vec, forward);
860  vectoangles2 (forward, angle_dir);
861  AngleVectors (angle_dir, forward, right, up);
862 
863  dec = 3;
864  VectorScale (vec, 3, vec);
865 
866  // FIXME: this is a really silly way to have a loop
867  while (len > 0)
868  {
869  len -= dec;
870 
871  if (!free_particles)
872  return;
873  p = free_particles;
874  free_particles = p->next;
875  p->next = active_particles;
876  active_particles = p;
877  VectorClear (p->accel);
878 
879  p->time = cl.time;
880 
881  p->alpha = 1.0;
882  p->alphavel = -2.0;
883  p->color = particleColor;
884  dist = DotProduct(move, forward);
885  VectorMA(move, 8 * cos(dist), up, p->org);
886  for (j=0 ; j<3 ; j++)
887  {
888 // p->org[j] = move[j] + crand();
889  p->vel[j] = 0;
890  p->accel[j] = 0;
891  }
892  p->vel[2] = 5;
893 
894  VectorAdd (move, vec, move);
895  }
896 }

Referenced by CL_AddPacketEntities().

◆ CL_TrapParticles()

void CL_TrapParticles ( entity_t ent)

Definition at line 1998 of file cl_fx.c.

1999 {
2000  vec3_t move;
2001  vec3_t vec;
2002  vec3_t start, end;
2003  float len;
2004  int j;
2005  cparticle_t *p;
2006  int dec;
2007 
2008  ent->origin[2]-=14;
2009  VectorCopy (ent->origin, start);
2010  VectorCopy (ent->origin, end);
2011  end[2]+=64;
2012 
2013  VectorCopy (start, move);
2014  VectorSubtract (end, start, vec);
2015  len = VectorNormalize (vec);
2016 
2017  dec = 5;
2018  VectorScale (vec, 5, vec);
2019 
2020  // FIXME: this is a really silly way to have a loop
2021  while (len > 0)
2022  {
2023  len -= dec;
2024 
2025  if (!free_particles)
2026  return;
2027  p = free_particles;
2028  free_particles = p->next;
2029  p->next = active_particles;
2030  active_particles = p;
2031  VectorClear (p->accel);
2032 
2033  p->time = cl.time;
2034 
2035  p->alpha = 1.0;
2036  p->alphavel = -1.0 / (0.3+frand()*0.2);
2037  p->color = 0xe0;
2038  for (j=0 ; j<3 ; j++)
2039  {
2040  p->org[j] = move[j] + crand();
2041  p->vel[j] = crand()*15;
2042  p->accel[j] = 0;
2043  }
2044  p->accel[2] = PARTICLE_GRAVITY;
2045 
2046  VectorAdd (move, vec, move);
2047  }
2048 
2049  {
2050 
2051 
2052  int i, j, k;
2053  cparticle_t *p;
2054  float vel;
2055  vec3_t dir;
2056  vec3_t org;
2057 
2058 
2059  ent->origin[2]+=14;
2060  VectorCopy (ent->origin, org);
2061 
2062 
2063  for (i=-2 ; i<=2 ; i+=4)
2064  for (j=-2 ; j<=2 ; j+=4)
2065  for (k=-2 ; k<=4 ; k+=4)
2066  {
2067  if (!free_particles)
2068  return;
2069  p = free_particles;
2070  free_particles = p->next;
2071  p->next = active_particles;
2072  active_particles = p;
2073 
2074  p->time = cl.time;
2075  p->color = 0xe0 + (rand()&3);
2076 
2077  p->alpha = 1.0;
2078  p->alphavel = -1.0 / (0.3 + (rand()&7) * 0.02);
2079 
2080  p->org[0] = org[0] + i + ((rand()&23) * crand());
2081  p->org[1] = org[1] + j + ((rand()&23) * crand());
2082  p->org[2] = org[2] + k + ((rand()&23) * crand());
2083 
2084  dir[0] = j * 8;
2085  dir[1] = i * 8;
2086  dir[2] = k * 8;
2087 
2088  VectorNormalize (dir);
2089  vel = 50 + rand()&63;
2090  VectorScale (dir, vel, p->vel);
2091 
2092  p->accel[0] = p->accel[1] = 0;
2093  p->accel[2] = -PARTICLE_GRAVITY;
2094  }
2095  }
2096 }

Referenced by CL_AddPacketEntities().

◆ CL_Widowbeamout()

void CL_Widowbeamout ( cl_sustain_t self)

Definition at line 961 of file cl_newfx.c.

962 {
963  vec3_t dir;
964  int i;
965  cparticle_t *p;
966  static int colortable[4] = {2*8,13*8,21*8,18*8};
967  float ratio;
968 
969  ratio = 1.0 - (((float)self->endtime - (float)cl.time)/2100.0);
970 
971  for(i=0;i<300;i++)
972  {
973  if (!free_particles)
974  return;
975  p = free_particles;
976  free_particles = p->next;
977  p->next = active_particles;
978  active_particles = p;
979  VectorClear (p->accel);
980 
981  p->time = cl.time;
982 
983  p->alpha = 1.0;
985  p->color = colortable[rand()&3];
986 
987  dir[0] = crand();
988  dir[1] = crand();
989  dir[2] = crand();
990  VectorNormalize(dir);
991 
992  VectorMA(self->org, (45.0 * ratio), dir, p->org);
993 // VectorMA(origin, 10*(((rand () & 0x7fff) / ((float)0x7fff))), dir, p->org);
994  }
995 }

Referenced by CL_ParseWidow().

◆ CL_WidowSplash()

void CL_WidowSplash ( vec3_t  org)

Definition at line 1033 of file cl_newfx.c.

1034 {
1035  static int colortable[4] = {2*8,13*8,21*8,18*8};
1036  int i;
1037  cparticle_t *p;
1038  vec3_t dir;
1039 
1040  for (i=0 ; i<256 ; i++)
1041  {
1042  if (!free_particles)
1043  return;
1044  p = free_particles;
1045  free_particles = p->next;
1046  p->next = active_particles;
1047  active_particles = p;
1048 
1049  p->time = cl.time;
1050  p->color = colortable[rand()&3];
1051 
1052  dir[0] = crand();
1053  dir[1] = crand();
1054  dir[2] = crand();
1055  VectorNormalize(dir);
1056  VectorMA(org, 45.0, dir, p->org);
1057  VectorMA(vec3_origin, 40.0, dir, p->vel);
1058 
1059  p->accel[0] = p->accel[1] = 0;
1060  p->alpha = 1.0;
1061 
1062  p->alphavel = -0.8 / (0.5 + frand()*0.3);
1063  }
1064 
1065 }

Referenced by CL_ParseTEnt().

◆ CL_WriteDemoMessage()

void CL_WriteDemoMessage ( void  )

Definition at line 115 of file cl_main.c.

116 {
117  int len, swlen;
118 
119  // the first eight bytes are just packet sequencing stuff
120  len = net_message.cursize-8;
121  swlen = LittleLong(len);
122  fwrite (&swlen, 4, 1, cls.demofile);
123  fwrite (net_message.data+8, len, 1, cls.demofile);
124 }

Referenced by CL_ParseServerMessage().

◆ CL_WriteToServer()

void CL_WriteToServer ( usercmd_t cmd)

◆ DrawAltString()

void DrawAltString ( int  x,
int  y,
char *  s 
)

Definition at line 46 of file console.c.

47 {
48  while (*s)
49  {
50  re.DrawChar (x, y, *s ^ 0x80);
51  x+=8*vid_hudscale->value;
52  s++;
53  }
54 }

Referenced by SCR_ExecuteLayoutString().

◆ DrawString()

void DrawString ( int  x,
int  y,
char *  s 
)

Definition at line 36 of file console.c.

37 {
38  while (*s)
39  {
40  re.DrawChar (x, y, *s);
41  x+=8*vid_hudscale->value;
42  s++;
43  }
44 }

Referenced by Con_DrawNotify(), and SCR_ExecuteLayoutString().

◆ IN_Accumulate()

void IN_Accumulate ( void  )

◆ IN_CenterView()

void IN_CenterView ( void  )

Definition at line 404 of file cl_input.c.

Referenced by CL_InitInput(), and IN_MLookUp().

◆ Key_KeynumToString()

char* Key_KeynumToString ( int  keynum)

Definition at line 479 of file keys.c.

480 {
481  keyname_t *kn;
482  static char tinystr[2];
483 
484  if (keynum == -1)
485  return "<KEY NOT FOUND>";
486  if (keynum > 32 && keynum < 127)
487  { // printable ascii
488  tinystr[0] = keynum;
489  tinystr[1] = 0;
490  return tinystr;
491  }
492 
493  for (kn=keynames ; kn->name ; kn++)
494  if (keynum == kn->keynum)
495  return kn->name;
496 
497  return "<UNKNOWN KEYNUM>";
498 }

Referenced by CL_DrawInventory(), DrawKeyBindingFunc(), Key_Bindlist_f(), Key_Event(), Key_WriteBindings(), and Keys_MenuKey().

◆ M_AddToServerList()

void M_AddToServerList ( netadr_t  adr,
char *  info 
)

Definition at line 2239 of file menu.c.

2240 {
2241  int i;
2242 
2244  return;
2245  while ( *info == ' ' )
2246  info++;
2247 
2248  // ignore if duplicated
2249  for (i=0 ; i<m_num_servers ; i++)
2250  if (!strcmp(info, local_server_names[i]))
2251  return;
2252 
2254  strncpy (local_server_names[m_num_servers], info, sizeof(local_server_names[0])-1);
2255  m_num_servers++;
2256 }

Referenced by CL_ParseStatusMessage().

◆ M_Draw()

void M_Draw ( void  )

Definition at line 3999 of file menu.c.

4000 {
4001  if (cls.key_dest != key_menu)
4002  return;
4003 
4004  // repaint everything next frame
4005  SCR_DirtyScreen ();
4006 
4007  // dim everything behind it down
4008  if (cl.cinematictime > 0)
4009  re.DrawFill (0,0,viddef.width, viddef.height, 0);
4010  else
4011  re.DrawFadeScreen ();
4012 
4013  m_drawfunc ();
4014 
4015  // delay playing the enter sound until after the
4016  // menu has been drawn, to avoid delay while
4017  // caching images
4018  if (m_entersound)
4019  {
4021  m_entersound = false;
4022  }
4023 }

Referenced by SCR_UpdateScreen().

◆ M_ForceMenuOff()

void M_ForceMenuOff ( void  )

Definition at line 123 of file menu.c.

124 {
125  m_drawfunc = 0;
126  m_keyfunc = 0;
128  m_menudepth = 0;
129  Key_ClearStates ();
130  Cvar_Set ("paused", "0");
131 }

Referenced by ConsoleFunc(), JoinServerFunc(), LoadGameCallback(), M_PopMenu(), SaveGameCallback(), StartGame(), and StartServerActionFunc().

◆ M_Init()

void M_Init ( void  )

Definition at line 3973 of file menu.c.

3974 {
3975  Cmd_AddCommand ("menu_main", M_Menu_Main_f);
3976  Cmd_AddCommand ("menu_game", M_Menu_Game_f);
3977  Cmd_AddCommand ("menu_loadgame", M_Menu_LoadGame_f);
3978  Cmd_AddCommand ("menu_savegame", M_Menu_SaveGame_f);
3979  Cmd_AddCommand ("menu_joinserver", M_Menu_JoinServer_f);
3980  Cmd_AddCommand ("menu_addressbook", M_Menu_AddressBook_f);
3981  Cmd_AddCommand ("menu_startserver", M_Menu_StartServer_f);
3982  Cmd_AddCommand ("menu_dmoptions", M_Menu_DMOptions_f);
3983  Cmd_AddCommand ("menu_playerconfig", M_Menu_PlayerConfig_f);
3984  Cmd_AddCommand ("menu_downloadoptions", M_Menu_DownloadOptions_f);
3985  Cmd_AddCommand ("menu_credits", M_Menu_Credits_f );
3986  Cmd_AddCommand ("menu_multiplayer", M_Menu_Multiplayer_f );
3987  Cmd_AddCommand ("menu_video", M_Menu_Video_f);
3988  Cmd_AddCommand ("menu_options", M_Menu_Options_f);
3989  Cmd_AddCommand ("menu_keys", M_Menu_Keys_f);
3990  Cmd_AddCommand ("menu_quit", M_Menu_Quit_f);
3991 }

Referenced by CL_Init().

◆ M_Keydown()

void M_Keydown ( int  key)

Definition at line 4031 of file menu.c.

4032 {
4033  const char *s;
4034 
4035  if (m_keyfunc)
4036  if ( ( s = m_keyfunc( key ) ) != 0 )
4037  S_StartLocalSound( ( char * ) s );
4038 }

Referenced by Key_Event().

◆ M_Menu_Main_f()

void M_Menu_Main_f ( void  )

Definition at line 494 of file menu.c.

495 {
497 }

Referenced by Key_Event(), and M_Init().

◆ SHOWNET()

void SHOWNET ( char *  s)

Definition at line 650 of file cl_parse.c.

651 {
652  if (cl_shownet->value>=2)
653  Com_Printf ("%3i:%s\n", net_message.readcount-1, s);
654 }

Referenced by CL_ParseFrame(), and CL_ParseServerMessage().

◆ SmokeAndFlash()

void SmokeAndFlash ( vec3_t  origin)

◆ V_AddEntity()

void V_AddEntity ( entity_t ent)

Definition at line 79 of file cl_view.c.

80 {
82  return;
83  r_entities[r_numentities++] = *ent;
84 }

Referenced by CL_AddBeams(), CL_AddExplosions(), CL_AddLasers(), CL_AddPacketEntities(), CL_AddPlayerBeams(), and CL_AddViewWeapon().

◆ V_AddLight()

void V_AddLight ( vec3_t  org,
float  intensity,
float  r,
float  g,
float  b 
)

Definition at line 111 of file cl_view.c.

112 {
113  dlight_t *dl;
114 
115  if (r_numdlights >= MAX_DLIGHTS)
116  return;
117  dl = &r_dlights[r_numdlights++];
118  VectorCopy (org, dl->origin);
119  dl->intensity = intensity;
120  dl->color[0] = r;
121  dl->color[1] = g;
122  dl->color[2] = b;
123 }

Referenced by CL_AddDLights(), CL_AddExplosions(), and CL_AddPacketEntities().

◆ V_AddLightStyle()

void V_AddLightStyle ( int  style,
float  r,
float  g,
float  b 
)

Definition at line 132 of file cl_view.c.

133 {
134  lightstyle_t *ls;
135 
136  if (style < 0 || style > MAX_LIGHTSTYLES)
137  Com_Error (ERR_DROP, "Bad light style %i", style);
138  ls = &r_lightstyles[style];
139 
140  ls->white = r+g+b;
141  ls->rgb[0] = r;
142  ls->rgb[1] = g;
143  ls->rgb[2] = b;
144 }

Referenced by CL_AddLightStyles().

◆ V_AddParticle()

void V_AddParticle ( vec3_t  org,
int  color,
float  alpha 
)

Definition at line 93 of file cl_view.c.

94 {
95  particle_t *p;
96 
98  return;
100  VectorCopy (org, p->origin);
101  p->color = color;
102  p->alpha = alpha;
103 }

Referenced by CL_AddParticles().

◆ V_Init()

void V_Init ( void  )

Definition at line 579 of file cl_view.c.

580 {
581  Cmd_AddCommand ("gun_next", V_Gun_Next_f);
582  Cmd_AddCommand ("gun_prev", V_Gun_Prev_f);
583  Cmd_AddCommand ("gun_model", V_Gun_Model_f);
584 
585  Cmd_AddCommand ("viewpos", V_Viewpos_f);
586 
587  crosshair = Cvar_Get ("crosshair", "0", CVAR_ARCHIVE);
588 
589  cl_testblend = Cvar_Get ("cl_testblend", "0", 0);
590  cl_testparticles = Cvar_Get ("cl_testparticles", "0", 0);
591  cl_testentities = Cvar_Get ("cl_testentities", "0", 0);
592  cl_testlights = Cvar_Get ("cl_testlights", "0", 0);
593 
594  cl_stats = Cvar_Get ("cl_stats", "0", 0);
595 }

Referenced by CL_Init().

◆ V_RenderView()

void V_RenderView ( float  stereo_separation)

Definition at line 446 of file cl_view.c.

447 {
448  extern int entitycmpfnc( const entity_t *, const entity_t * );
449 
450  if (cls.state != ca_active)
451  {
453  return;
454  }
455 
456  if (!cl.refresh_prepped)
457  {
459  return; // still loading
460  }
461 
462  if (cl_timedemo->value)
463  {
464  if (!cl.timedemo_start)
467  }
468 
469  // an invalid frame will just use the exact previous refdef
470  // we can't use the old frame if the video mode has changed, though...
472  {
473  cl.force_refdef = false;
474  viewsize->modified = false;
475 
476  V_ClearScene ();
477 
478  // build a refresh entity list and calc cl.sim*
479  // this also calls CL_CalcViewValues which loads
480  // v_forward, etc.
481  CL_AddEntities ();
482 
483  if (cl_testparticles->value)
484  V_TestParticles ();
485  if (cl_testentities->value)
486  V_TestEntities ();
487  if (cl_testlights->value)
488  V_TestLights ();
489  if (cl_testblend->value)
490  {
491  cl.refdef.blend[0] = 1;
492  cl.refdef.blend[1] = 0.5;
493  cl.refdef.blend[2] = 0.25;
494  cl.refdef.blend[3] = 0.5;
495  }
496 
497  // offset vieworg appropriately if we're doing stereo separation
498  if ( stereo_separation != 0 )
499  {
500  vec3_t tmp;
501 
502  VectorScale( cl.v_right, stereo_separation, tmp );
504  }
505 
506  // never let it sit exactly on a node line, because a water plane can
507  // dissapear when viewed with the eye exactly on it.
508  // the server protocol only specifies to 1/8 pixel, so add 1/16 in each axis
509  cl.refdef.vieworg[0] += 1.0/16;
510  cl.refdef.vieworg[1] += 1.0/16;
511  cl.refdef.vieworg[2] += 1.0/16;
512 
513  cl.refdef.x = scr_vrect.x;
514  cl.refdef.y = scr_vrect.y;
518  cl.refdef.time = cl.time*0.001;
519 
521 
522  if (!cl_add_entities->value)
523  r_numentities = 0;
524  if (!cl_add_particles->value)
525  r_numparticles = 0;
526  if (!cl_add_lights->value)
527  r_numdlights = 0;
528  if (!cl_add_blend->value)
529  {
531  }
532 
540 
542 
543  // sort entities for better cache locality
544  qsort( cl.refdef.entities, cl.refdef.num_entities, sizeof( cl.refdef.entities[0] ), (int (*)(const void *, const void *))entitycmpfnc );
545  }
546 
547  re.RenderFrame (&cl.refdef);
548  if (cl_stats->value)
549  Com_Printf ("ent:%i lt:%i part:%i\n", r_numentities, r_numdlights, r_numparticles);
550  if ( log_stats->value && ( log_stats_file != 0 ) )
551  fprintf( log_stats_file, "%i,%i,%i,",r_numentities, r_numdlights, r_numparticles);
552 
553 
557 
559 }

Referenced by SCR_UpdateScreen().

Variable Documentation

◆ cl

Definition at line 91 of file cl_main.c.

Referenced by CheckDMRules(), CL_AddBeams(), CL_AddEntities(), CL_AddExplosions(), CL_AddLasers(), CL_AddNetgraph(), CL_AddPacketEntities(), CL_AddParticles(), CL_AddPlayerBeams(), CL_AddViewWeapon(), CL_AdjustAngles(), CL_AllocDlight(), CL_AllocExplosion(), CL_BaseMove(), CL_BFGExplosionParticles(), CL_BfgParticles(), CL_BigTeleportParticles(), CL_BlasterParticles(), CL_BlasterParticles2(), CL_BlasterTrail(), CL_BlasterTrail2(), CL_BubbleTrail(), CL_BubbleTrail2(), CL_CalcViewValues(), CL_CheckPredictionError(), CL_ClampPitch(), CL_ClearState(), CL_ClipMoveToEntities(), CL_ColorExplosionParticles(), CL_ColorFlash(), CL_DebugTrail(), CL_DeltaEntity(), CL_DiminishingTrail(), CL_Disconnect(), CL_DrawInventory(), CL_ExplosionParticles(), CL_FinishMove(), CL_FixCvarCheats(), CL_FlagTrail(), CL_FlameEffects(), CL_Flashlight(), CL_FlyEffect(), CL_FlyParticles(), CL_ForceWall(), CL_Frame(), CL_GenericParticleEffect(), CL_Heatbeam(), CL_IonripperTrail(), CL_ItemRespawnParticles(), CL_LogoutEffect(), CL_MonsterPlasma_Shell(), CL_NewDlight(), CL_Nukeblast(), CL_ParseBeam(), CL_ParseBeam2(), CL_ParseClientinfo(), CL_ParseConfigString(), CL_ParseFrame(), CL_ParseInventory(), CL_ParseLaser(), CL_ParseLightning(), CL_ParseMuzzleFlash(), CL_ParseMuzzleFlash2(), CL_ParseNuke(), CL_ParsePacketEntities(), CL_ParsePlayerBeam(), CL_ParsePlayerstate(), CL_ParseServerData(), CL_ParseServerMessage(), CL_ParseStartSoundPacket(), CL_ParseSteam(), CL_ParseTEnt(), CL_ParseWidow(), CL_ParticleEffect(), CL_ParticleEffect2(), CL_ParticleEffect3(), CL_ParticleSmokeEffect(), CL_ParticleSteamEffect(), CL_ParticleSteamEffect2(), CL_PMpointcontents(), CL_Precache_f(), CL_PredictMovement(), CL_PrepRefresh(), CL_ProcessSustain(), CL_QuadTrail(), CL_RailTrail(), CL_ReadPackets(), CL_Record_f(), CL_RegisterSounds(), CL_RequestNextDownload(), CL_RocketTrail(), CL_RunDLights(), CL_RunLightStyles(), CL_SendCmd(), CL_SetLightstyle(), CL_Skins_f(), CL_SmokeAndFlash(), CL_SmokeTrail(), CL_TagTrail(), CL_TeleporterParticles(), CL_TeleportParticles(), CL_Tracker_Explode(), CL_Tracker_Shell(), CL_TrackerTrail(), CL_TrapParticles(), CL_Widowbeamout(), CL_WidowSplash(), Cmd_Inven_f(), Cmd_Say_f(), Cmd_WeapLast_f(), Cmd_WeapNext_f(), Cmd_WeapPrev_f(), Con_ToggleConsole_f(), ConsoleFunc(), DeathmatchScoreboardMessage(), G_CheckChaseStats(), G_SetSpectatorStats(), Huff1TableInit(), IN_CenterView(), IN_Frame(), IN_JoyMove(), IN_MouseMove(), Key_Event(), M_Draw(), Miniaudio_Update(), Qcommon_Frame(), S_AddLoopSounds(), S_PickChannel(), S_Play(), S_RegisterSexedModel(), S_RegisterSexedSound(), S_Spatialize(), S_StartLocalSound(), S_StartSound(), SCR_BeginLoadingPlaque(), SCR_CenterPrint(), SCR_DrawCinematic(), SCR_DrawConsole(), SCR_DrawLayout(), SCR_DrawStats(), SCR_ExecuteLayoutString(), SCR_FinishCinematic(), SCR_PlayCinematic(), SCR_ReadNextFrame(), SCR_RunCinematic(), SCR_StopCinematic(), SCR_TileClear(), SCR_TimeRefresh_f(), SCR_UpdateScreen(), SelectNextItem(), SelectPrevItem(), StartGame(), SV_BroadcastPrintf(), SV_CalcPings(), SV_CheckTimeouts(), SV_ClientPrintf(), SV_ClientThink(), SV_ExecuteClientMessage(), SV_FinalMessage(), SV_GameMap_f(), SV_GiveMsec(), SV_ReadPackets(), SV_SetPlayer(), SV_Status_f(), SV_StatusString(), SV_UserinfoChanged(), SVC_DirectConnect(), V_RenderView(), V_TestEntities(), V_TestLights(), V_TestParticles(), V_Viewpos_f(), ValidateSelectedItem(), VID_CheckChanges(), and VID_NewWindow().

◆ cl_add_blend

cvar_t* cl_add_blend

Definition at line 54 of file cl_main.c.

Referenced by CL_InitLocal(), and V_RenderView().

◆ cl_add_entities

cvar_t* cl_add_entities

Definition at line 53 of file cl_main.c.

Referenced by CL_InitLocal(), and V_RenderView().

◆ cl_add_lights

cvar_t* cl_add_lights

Definition at line 52 of file cl_main.c.

Referenced by CL_InitLocal(), and V_RenderView().

◆ cl_add_particles

cvar_t* cl_add_particles

Definition at line 51 of file cl_main.c.

Referenced by CL_InitLocal(), and V_RenderView().

◆ cl_anglespeedkey

cvar_t* cl_anglespeedkey

Definition at line 232 of file cl_input.c.

Referenced by CL_AdjustAngles(), and CL_InitLocal().

◆ cl_autoskins

cvar_t* cl_autoskins

Definition at line 43 of file cl_main.c.

Referenced by CL_InitLocal().

◆ cl_dlights

cdlight_t cl_dlights[MAX_DLIGHTS]

Definition at line 131 of file cl_fx.c.

Referenced by CL_AddDLights(), CL_AllocDlight(), CL_ClearDlights(), and CL_RunDLights().

◆ cl_entities

◆ cl_footsteps

cvar_t* cl_footsteps

Definition at line 44 of file cl_main.c.

Referenced by CL_EntityEvent(), and CL_InitLocal().

◆ cl_forwardspeed

cvar_t* cl_forwardspeed

Definition at line 224 of file cl_input.c.

Referenced by CL_BaseMove(), CL_InitLocal(), and IN_JoyMove().

◆ cl_gun

cvar_t* cl_gun

Definition at line 49 of file cl_main.c.

Referenced by CL_AddViewWeapon(), and CL_InitLocal().

◆ cl_lightlevel

cvar_t* cl_lightlevel

Definition at line 72 of file cl_main.c.

Referenced by CL_FinishMove(), and CL_InitLocal().

◆ cl_noskins

cvar_t* cl_noskins

Definition at line 42 of file cl_main.c.

Referenced by CL_InitLocal(), and CL_LoadClientinfo().

◆ cl_parse_entities

◆ cl_paused

cvar_t* cl_paused

◆ cl_pitchspeed

cvar_t* cl_pitchspeed

Definition at line 228 of file cl_input.c.

Referenced by CL_AdjustAngles(), CL_InitLocal(), and IN_JoyMove().

◆ cl_predict

cvar_t* cl_predict

◆ cl_run

cvar_t* cl_run

Definition at line 230 of file cl_input.c.

Referenced by CL_BaseMove(), CL_InitLocal(), ControlsSetMenuItemValues(), and IN_JoyMove().

◆ cl_showclamp

cvar_t* cl_showclamp

Definition at line 58 of file cl_main.c.

Referenced by CL_AddEntities(), and CL_InitLocal().

◆ cl_showmiss

cvar_t* cl_showmiss

Definition at line 57 of file cl_main.c.

Referenced by CL_CheckPredictionError(), CL_InitLocal(), and CL_PredictMovement().

◆ cl_shownet

cvar_t* cl_shownet

◆ cl_sidespeed

cvar_t* cl_sidespeed

Definition at line 225 of file cl_input.c.

Referenced by CL_BaseMove(), CL_InitLocal(), and IN_JoyMove().

◆ cl_stereo

cvar_t* cl_stereo

Definition at line 37 of file cl_main.c.

Referenced by CL_InitLocal(), and SCR_UpdateScreen().

◆ cl_stereo_separation

cvar_t* cl_stereo_separation

Definition at line 36 of file cl_main.c.

Referenced by CL_InitLocal(), and SCR_UpdateScreen().

◆ cl_timedemo

cvar_t* cl_timedemo

Definition at line 61 of file cl_main.c.

Referenced by CL_AddEntities(), CL_Disconnect(), CL_Frame(), CL_InitLocal(), and V_RenderView().

◆ cl_upspeed

cvar_t* cl_upspeed

Definition at line 223 of file cl_input.c.

Referenced by CL_BaseMove(), CL_InitLocal(), and IN_JoyMove().

◆ cl_vwep

cvar_t* cl_vwep

Definition at line 88 of file cl_main.c.

Referenced by CL_AddPacketEntities(), CL_InitLocal(), and CL_LoadClientinfo().

◆ cl_weaponmodels

char cl_weaponmodels[MAX_CLIENTWEAPONMODELS][MAX_QPATH]

Definition at line 55 of file cl_view.c.

Referenced by CL_LoadClientinfo(), and CL_PrepRefresh().

◆ cl_yawspeed

cvar_t* cl_yawspeed

Definition at line 227 of file cl_input.c.

Referenced by CL_AdjustAngles(), CL_InitLocal(), and IN_JoyMove().

◆ cls

Definition at line 90 of file cl_main.c.

Referenced by CL_AddEntities(), CL_AddNetgraph(), CL_AdjustAngles(), CL_CalcViewValues(), CL_Changing_f(), CL_CheckForResend(), CL_CheckOrDownloadFile(), CL_CheckPredictionError(), CL_ClearState(), CL_Connect_f(), CL_ConnectionlessPacket(), CL_Disconnect(), CL_Download_f(), CL_DrawInventory(), CL_Drop(), CL_FinishMove(), CL_ForwardToServer_f(), CL_Frame(), CL_Init(), CL_InitLocal(), CL_ParseDownload(), CL_ParseFrame(), CL_ParseServerData(), CL_ParseServerMessage(), CL_PredictMovement(), CL_Rcon_f(), CL_ReadPackets(), CL_Reconnect_f(), CL_Record_f(), CL_RequestNextDownload(), CL_RunDLights(), CL_SendCmd(), CL_SendConnectPacket(), CL_Stop_f(), CL_WriteConfiguration(), CL_WriteDemoMessage(), Cmd_ForwardToServer(), Con_DrawConsole(), Con_DrawInput(), Con_DrawNotify(), Con_MessageMode2_f(), Con_MessageMode_f(), Con_Print(), Con_ToggleChat_f(), Con_ToggleConsole_f(), ConsoleFunc(), IN_Frame(), IN_JoyMove(), Key_Console(), Key_Event(), Key_Message(), M_Credits_MenuDraw(), M_Draw(), M_ForceMenuOff(), M_Main_Draw(), M_Menu_Credits_f(), M_PushMenu(), M_Quit_Key(), PlayerConfig_MenuDraw(), S_AddLoopSounds(), S_SpatializeOrigin(), S_Update(), SCR_BeginLoadingPlaque(), SCR_CheckDrawCenterString(), SCR_DrawCinematic(), SCR_DrawConsole(), SCR_DrawNet(), SCR_EndLoadingPlaque(), SCR_ExecuteLayoutString(), SCR_FinishCinematic(), SCR_PlayCinematic(), SCR_RunCinematic(), SCR_RunConsole(), SCR_TimeRefresh_f(), SCR_UpdateScreen(), StartGame(), V_RenderView(), and VID_CheckChanges().

◆ freelook

cvar_t* freelook

Definition at line 24 of file cl_main.c.

Referenced by CL_InitLocal(), ControlsSetMenuItemValues(), IN_MLookUp(), and IN_MouseMove().

◆ gun_frame

int gun_frame

Definition at line 28 of file cl_view.c.

Referenced by CL_AddViewWeapon(), V_Gun_Next_f(), and V_Gun_Prev_f().

◆ gun_model

struct model_s* gun_model

Definition at line 29 of file cl_view.c.

Referenced by CL_AddViewWeapon(), and V_Gun_Model_f().

◆ in_klook

kbutton_t in_klook

Definition at line 477 of file client.h.

◆ in_mlook

kbutton_t in_mlook

◆ in_speed

kbutton_t in_speed

Definition at line 61 of file cl_input.c.

Referenced by CL_AdjustAngles(), CL_BaseMove(), IN_JoyMove(), IN_SpeedDown(), and IN_SpeedUp().

◆ in_strafe

kbutton_t in_strafe

◆ lookspring

cvar_t* lookspring

Definition at line 63 of file cl_main.c.

Referenced by CL_InitLocal(), ControlsSetMenuItemValues(), IN_MLookUp(), and LookspringFunc().

◆ lookstrafe

cvar_t* lookstrafe

◆ m_forward

cvar_t* m_forward

Definition at line 69 of file cl_main.c.

Referenced by CL_InitLocal(), and IN_MouseMove().

◆ m_pitch

cvar_t* m_pitch

◆ m_side

cvar_t* m_side

Definition at line 70 of file cl_main.c.

Referenced by CL_InitLocal(), and IN_MouseMove().

◆ m_yaw

cvar_t* m_yaw

Definition at line 68 of file cl_main.c.

Referenced by CL_InitLocal(), and IN_MouseMove().

◆ net_from

netadr_t net_from

Definition at line 81 of file net_chan.c.

◆ net_message

sizebuf_t net_message

Definition at line 82 of file net_chan.c.

◆ num_cl_weaponmodels

int num_cl_weaponmodels

Definition at line 56 of file cl_view.c.

Referenced by CL_LoadClientinfo(), and CL_PrepRefresh().

◆ re

Definition at line 32 of file vid_dll.c.

◆ sensitivity

cvar_t* sensitivity

Definition at line 65 of file cl_main.c.

Referenced by CL_InitLocal(), ControlsSetMenuItemValues(), and IN_MouseMove().

◆ svc_strings

char* svc_strings[256]

Definition at line 24 of file cl_parse.c.

Referenced by CL_ParseFrame(), and CL_ParseServerMessage().

MZ2_WIDOW_BLASTER_SWEEP3
#define MZ2_WIDOW_BLASTER_SWEEP3
Definition: q_shared.h:844
ex_misc
@ ex_misc
Definition: cl_tent.c:26
MZ2_CARRIER_MACHINEGUN_R1
#define MZ2_CARRIER_MACHINEGUN_R1
Definition: q_shared.h:825
crosshair
cvar_t * crosshair
Definition: cl_view.c:33
entity_state_s::old_origin
vec3_t old_origin
Definition: q_shared.h:1151
cl_sfx_ric2
struct sfx_s * cl_sfx_ric2
Definition: cl_tent.c:85
RF_TRANSLUCENT
#define RF_TRANSLUCENT
Definition: q_shared.h:604
cl_mod_monster_heatbeam
struct model_s * cl_mod_monster_heatbeam
Definition: cl_tent.c:116
MZ_LOGIN
#define MZ_LOGIN
Definition: q_shared.h:641
IN_MoveleftUp
void IN_MoveleftUp(void)
Definition: cl_input.c:162
TE_EXPLOSION1_BIG
@ TE_EXPLOSION1_BIG
Definition: q_shared.h:965
CL_InitLocal
void CL_InitLocal(void)
Definition: cl_main.c:1409
MZ2_WIDOW_BLASTER_70L
#define MZ2_WIDOW_BLASTER_70L
Definition: q_shared.h:868
M_Menu_Multiplayer_f
void M_Menu_Multiplayer_f(void)
Definition: menu.c:574
in_moveleft
kbutton_t in_moveleft
Definition: cl_input.c:60
MZ2_MAKRON_BLASTER_16
#define MZ2_MAKRON_BLASTER_16
Definition: q_shared.h:801
refexport_t::RegisterSkin
struct image_s *(* RegisterSkin)(char *name)
Definition: ref.h:159
MAX_CLIENTS
#define MAX_CLIENTS
Definition: q_shared.h:86
keyname_t::keynum
int keynum
Definition: keys.c:50
dl_single
@ dl_single
Definition: client.h:197
cl_mod_parasite_segment
struct model_s * cl_mod_parasite_segment
Definition: cl_tent.c:102
refdef_t::vieworg
float vieworg[3]
Definition: ref.h:106
TE_PARASITE_ATTACK
@ TE_PARASITE_ATTACK
Definition: q_shared.h:927
cl_paused
cvar_t * cl_paused
Definition: cl_main.c:60
MZ2_WIDOW_PLASMABEAM
#define MZ2_WIDOW_PLASMABEAM
Definition: q_shared.h:837
MZ2_CARRIER_MACHINEGUN_L1
#define MZ2_CARRIER_MACHINEGUN_L1
Definition: q_shared.h:824
SCR_EndLoadingPlaque
void SCR_EndLoadingPlaque(void)
Definition: cl_scrn.c:590
SCR_TouchPics
void SCR_TouchPics(void)
Definition: cl_scrn.c:863
M_Menu_JoinServer_f
void M_Menu_JoinServer_f(void)
Definition: menu.c:2377
particle_s::vel
vec3_t vel
Definition: client.h:364
MZ2_WIDOW_BLASTER_SWEEP4
#define MZ2_WIDOW_BLASTER_SWEEP4
Definition: q_shared.h:845
edict_s::volume
float volume
Definition: g_local.h:1089
dedicated
cvar_t * dedicated
Definition: common.c:47
curtime
int curtime
Definition: q_shwin.c:119
cl_sfx_spark5
struct sfx_s * cl_sfx_spark5
Definition: cl_tent.c:88
client_state_t::predicted_origin
vec3_t predicted_origin
Definition: client.h:112
MZ2_BOSS2_MACHINEGUN_R4
#define MZ2_BOSS2_MACHINEGUN_R4
Definition: q_shared.h:820
MZ2_WIDOW_BLASTER_SWEEP1
#define MZ2_WIDOW_BLASTER_SWEEP1
Definition: q_shared.h:842
sizebuf_s
Definition: qcommon.h:92
gender
cvar_t * gender
Definition: cl_main.c:85
CL_AllocExplosion
explosion_t * CL_AllocExplosion(void)
Definition: cl_tent.c:230
svc_nop
@ svc_nop
Definition: qcommon.h:232
svc_centerprint
@ svc_centerprint
Definition: qcommon.h:241
cdlight_t::decay
float decay
Definition: client.h:302
MZ2_SUPERTANK_ROCKET_2
#define MZ2_SUPERTANK_ROCKET_2
Definition: q_shared.h:750
CL_ParsePlayerBeam
int CL_ParsePlayerBeam(struct model_s *model)
Definition: cl_tent.c:411
edict_s::pos2
vec3_t pos2
Definition: g_local.h:1028
CS_SKY
#define CS_SKY
Definition: q_shared.h:1103
IN_AttackDown
void IN_AttackDown(void)
Definition: cl_input.c:171
CL_AddExplosions
void CL_AddExplosions(void)
Definition: cl_tent.c:1596
MZ2_SOLDIER_SHOTGUN_4
#define MZ2_SOLDIER_SHOTGUN_4
Definition: q_shared.h:769
client_state_t::servercount
int servercount
Definition: client.h:154
EF_GREENGIB
#define EF_GREENGIB
Definition: q_shared.h:583
CL_WidowSplash
void CL_WidowSplash(vec3_t org)
Definition: cl_newfx.c:1033
MAX_QPATH
#define MAX_QPATH
Definition: q_shared.h:80
entity_s::origin
float origin[3]
Definition: ref.h:57
entity_s::model
struct model_s * model
Definition: ref.h:51
entity_state_s::modelindex4
int modelindex4
Definition: q_shared.h:1153
TE_SHIELD_SPARKS
@ TE_SHIELD_SPARKS
Definition: q_shared.h:924
CL_ParseInventory
void CL_ParseInventory(void)
Definition: cl_inv.c:31
IN_UpDown
void IN_UpDown(void)
Definition: cl_input.c:145
MZ2_BOSS2_ROCKET_1
#define MZ2_BOSS2_ROCKET_1
Definition: q_shared.h:758
entity_state_s::solid
int solid
Definition: q_shared.h:1158
cl_sustains
cl_sustain_t cl_sustains[MAX_SUSTAINS]
Definition: cl_tent.c:71
MAX_MODELS
#define MAX_MODELS
Definition: q_shared.h:89
edict_s::model
char * model
Definition: g_local.h:1004
MZ2_TANK_MACHINEGUN_10
#define MZ2_TANK_MACHINEGUN_10
Definition: q_shared.h:682
EV_FALL
@ EV_FALL
Definition: q_shared.h:1135
BigShort
short BigShort(short l)
Definition: q_shared.c:945
TE_HEATBEAM_STEAM
@ TE_HEATBEAM_STEAM
Definition: q_shared.h:956
MZ2_WIDOW_RAIL
#define MZ2_WIDOW_RAIL
Definition: q_shared.h:836
U_ANGLE2
#define U_ANGLE2
Definition: qcommon.h:317
CL_RailTrail
void CL_RailTrail(vec3_t start, vec3_t end)
Definition: cl_fx.c:1613
lightstyle_t::rgb
float rgb[3]
Definition: ref.h:98
U_MOREBITS3
#define U_MOREBITS3
Definition: qcommon.h:341
client_state_t::frames
frame_t frames[UPDATE_BACKUP]
Definition: client.h:118
MAX_DLIGHTS
#define MAX_DLIGHTS
Definition: ref.h:25
pm
pmove_t * pm
Definition: pmove.c:48
CS_SOUNDS
#define CS_SOUNDS
Definition: q_shared.h:1113
netchan_t::incoming_acknowledged
int incoming_acknowledged
Definition: qcommon.h:598
MZ2_JORG_BFG_1
#define MZ2_JORG_BFG_1
Definition: q_shared.h:816
allow_download
cvar_t * allow_download
Definition: sv_main.c:37
MSG_WriteDeltaUsercmd
void MSG_WriteDeltaUsercmd(sizebuf_t *buf, usercmd_t *from, usercmd_t *cmd)
Definition: common.c:387
centity_t::fly_stoptime
int fly_stoptime
Definition: client.h:66
MZ_SILENCED
#define MZ_SILENCED
Definition: q_shared.h:652
MZ_IONRIPPER
#define MZ_IONRIPPER
Definition: q_shared.h:649
MZ_GRENADE
#define MZ_GRENADE
Definition: q_shared.h:640
TE_GRENADE_EXPLOSION_WATER
@ TE_GRENADE_EXPLOSION_WATER
Definition: q_shared.h:929
dl_none
@ dl_none
Definition: client.h:193
int
CONST PIXELFORMATDESCRIPTOR int
Definition: qgl_win.c:35
CL_ParseClientinfo
void CL_ParseClientinfo(int player)
Definition: cl_parse.c:501
CL_BlasterParticles
void CL_BlasterParticles(vec3_t org, vec3_t dir)
Definition: cl_fx.c:1242
ex_poly
@ ex_poly
Definition: cl_tent.c:26
TE_SHOTGUN
@ TE_SHOTGUN
Definition: q_shared.h:915
IN_SpeedDown
void IN_SpeedDown(void)
Definition: cl_input.c:166
VectorSubtract
#define VectorSubtract(a, b, c)
Definition: q_shared.h:163
U_ANGLE1
#define U_ANGLE1
Definition: qcommon.h:327
MZ2_SOLDIER_MACHINEGUN_3
#define MZ2_SOLDIER_MACHINEGUN_3
Definition: q_shared.h:767
CL_ClearLightStyles
void CL_ClearLightStyles(void)
Definition: cl_fx.c:55
V_TestParticles
void V_TestParticles(void)
Definition: cl_view.c:153
MZ2_TANK_MACHINEGUN_17
#define MZ2_TANK_MACHINEGUN_17
Definition: q_shared.h:689
MZ2_WIDOW_BLASTER_SWEEP7
#define MZ2_WIDOW_BLASTER_SWEEP7
Definition: q_shared.h:848
client_state_t::attractloop
qboolean attractloop
Definition: client.h:153
V_Init
void V_Init(void)
Definition: cl_view.c:579
TE_CHAINFIST_SMOKE
@ TE_CHAINFIST_SMOKE
Definition: q_shared.h:957
MZ2_WIDOW2_BEAM_SWEEP_10
#define MZ2_WIDOW2_BEAM_SWEEP_10
Definition: q_shared.h:895
svc_muzzleflash
@ svc_muzzleflash
Definition: qcommon.h:225
MakeNormalVectors
void MakeNormalVectors(vec3_t forward, vec3_t right, vec3_t up)
Definition: cl_fx.c:1534
entity_state_s::frame
int frame
Definition: q_shared.h:1154
M_Main_Draw
void M_Main_Draw(void)
Definition: menu.c:391
CL_ParticleEffect2
void CL_ParticleEffect2(vec3_t org, vec3_t dir, int color, int count)
Definition: cl_fx.c:955
log_stats
cvar_t * log_stats
Definition: common.c:41
cdlight_t::radius
float radius
Definition: client.h:300
CVAR_NOSET
#define CVAR_NOSET
Definition: q_shared.h:319
MZ2_TANK_ROCKET_3
#define MZ2_TANK_ROCKET_3
Definition: q_shared.h:694
svc_frame
@ svc_frame
Definition: qcommon.h:246
TE_EXPLOSION1
@ TE_EXPLOSION1
Definition: q_shared.h:916
EV_PLAYER_TELEPORT
@ EV_PLAYER_TELEPORT
Definition: q_shared.h:1137
CL_AddEntities
void CL_AddEntities(void)
Definition: cl_ents.c:1477
kbutton_t::state
int state
Definition: client.h:474
dl_sound
@ dl_sound
Definition: client.h:195
CL_DiminishingTrail
void CL_DiminishingTrail(vec3_t start, vec3_t end, centity_t *old, int flags)
Definition: cl_fx.c:1435
MZ2_TANK_BLASTER_2
#define MZ2_TANK_BLASTER_2
Definition: q_shared.h:671
CL_RegisterSounds
void CL_RegisterSounds(void)
Definition: cl_parse.c:176
MZ2_ACTOR_MACHINEGUN_1
#define MZ2_ACTOR_MACHINEGUN_1
Definition: q_shared.h:741
client_static_t::disable_screen
float disable_screen
Definition: client.h:212
CL_ParseWidow
void CL_ParseWidow(void)
Definition: cl_tent.c:619
CL_ForceWall
void CL_ForceWall(vec3_t start, vec3_t end, int color)
Definition: cl_newfx.c:230
MZ2_TURRET_ROCKET
#define MZ2_TURRET_ROCKET
Definition: q_shared.h:828
cl_sustain::magnitude
int magnitude
Definition: client.h:338
TE_HEATBEAM
@ TE_HEATBEAM
Definition: q_shared.h:950
MZ2_TANK_MACHINEGUN_8
#define MZ2_TANK_MACHINEGUN_8
Definition: q_shared.h:680
MZ2_WIDOW2_BEAM_SWEEP_6
#define MZ2_WIDOW2_BEAM_SWEEP_6
Definition: q_shared.h:891
scr_timegraph
cvar_t * scr_timegraph
Definition: cl_scrn.c:57
MZ2_BOSS2_MACHINEGUN_R1
#define MZ2_BOSS2_MACHINEGUN_R1
Definition: q_shared.h:817
in_klook
kbutton_t in_klook
Definition: cl_input.c:58
entitycmpfnc
int entitycmpfnc(const entity_t *a, const entity_t *b)
Definition: cl_scrn.c:611
particle_s::time
float time
Definition: client.h:361
ca_disconnected
@ ca_disconnected
Definition: client.h:186
MZ2_INFANTRY_MACHINEGUN_4
#define MZ2_INFANTRY_MACHINEGUN_4
Definition: q_shared.h:699
MZ2_MEDIC_BLASTER_2
#define MZ2_MEDIC_BLASTER_2
Definition: q_shared.h:832
mapsurface_s
Definition: q_shared.h:446
CL_CheckOrDownloadFile
qboolean CL_CheckOrDownloadFile(char *filename)
Definition: cl_parse.c:69
IN_SpeedUp
void IN_SpeedUp(void)
Definition: cl_input.c:167
cl_run
cvar_t * cl_run
Definition: cl_input.c:230
client_state_t::v_up
vec3_t v_up
Definition: client.h:133
client_state_t::cmd_time
int cmd_time[CMD_BACKUP]
Definition: client.h:106
MZ2_JORG_MACHINEGUN_R1
#define MZ2_JORG_MACHINEGUN_R1
Definition: q_shared.h:810
TE_ROCKET_EXPLOSION_WATER
@ TE_ROCKET_EXPLOSION_WATER
Definition: q_shared.h:928
in_speed
kbutton_t in_speed
Definition: cl_input.c:61
CL_AdjustAngles
void CL_AdjustAngles(void)
Definition: cl_input.c:242
TE_BLOOD
@ TE_BLOOD
Definition: q_shared.h:912
particle_s::accel
vec3_t accel
Definition: client.h:365
CL_AllocDlight
cdlight_t * CL_AllocDlight(int key)
Definition: cl_fx.c:149
MZ2_BOSS2_MACHINEGUN_L4
#define MZ2_BOSS2_MACHINEGUN_L4
Definition: q_shared.h:756
cl_sfx_grenexp
struct sfx_s * cl_sfx_grenexp
Definition: cl_tent.c:93
PMF_NO_PREDICTION
#define PMF_NO_PREDICTION
Definition: q_shared.h:487
cl_add_blend
cvar_t * cl_add_blend
Definition: cl_main.c:54
MZ2_GUNNER_MACHINEGUN_1
#define MZ2_GUNNER_MACHINEGUN_1
Definition: q_shared.h:717
refdef_t::areabits
byte * areabits
Definition: ref.h:112
MZ2_TANK_MACHINEGUN_15
#define MZ2_TANK_MACHINEGUN_15
Definition: q_shared.h:687
TE_SPLASH
@ TE_SPLASH
Definition: q_shared.h:921
CL_WriteDemoMessage
void CL_WriteDemoMessage(void)
Definition: cl_main.c:115
entity_state_s::renderfx
int renderfx
Definition: q_shared.h:1157
MZ2_SOLDIER_BLASTER_5
#define MZ2_SOLDIER_BLASTER_5
Definition: q_shared.h:771
MSG_ReadShort
int MSG_ReadShort(sizebuf_t *msg_read)
Definition: common.c:716
map_surfaces
mapsurface_t map_surfaces[MAX_MAP_TEXINFO]
Definition: cmodel.c:69
num_cl_weaponmodels
int num_cl_weaponmodels
Definition: cl_view.c:56
net_message
sizebuf_t net_message
Definition: net_chan.c:82
IN_LookupUp
void IN_LookupUp(void)
Definition: cl_input.c:158
frand
float frand(void)
Definition: common.c:1375
v
GLdouble v
Definition: qgl_win.c:143
TE_BUBBLETRAIL
@ TE_BUBBLETRAIL
Definition: q_shared.h:922
entity_state_s
Definition: q_shared.h:1145
cdlight_t::die
float die
Definition: client.h:301
MZ2_BOSS2_ROCKET_3
#define MZ2_BOSS2_ROCKET_3
Definition: q_shared.h:760
r_numentities
int r_numentities
Definition: cl_view.c:47
M_Menu_Main_f
void M_Menu_Main_f(void)
Definition: menu.c:494
MZ2_GUNNER_GRENADE_3
#define MZ2_GUNNER_GRENADE_3
Definition: q_shared.h:727
cl_shownet
cvar_t * cl_shownet
Definition: cl_main.c:56
precache_model_skin
int precache_model_skin
Definition: cl_main.c:1108
MZ2_TURRET_BLASTER
#define MZ2_TURRET_BLASTER
Definition: q_shared.h:829
cvar_s::modified
qboolean modified
Definition: q_shared.h:330
MZ2_WIDOW_BLASTER_SWEEP2
#define MZ2_WIDOW_BLASTER_SWEEP2
Definition: q_shared.h:843
precache_tex
int precache_tex
Definition: cl_main.c:1107
lastofs
int lastofs
Definition: cl_fx.c:48
client_state_t::timeoutcount
int timeoutcount
Definition: client.h:93
MZ2_WIDOW_BLASTER_80
#define MZ2_WIDOW_BLASTER_80
Definition: q_shared.h:853
U_ORIGIN1
#define U_ORIGIN1
Definition: qcommon.h:315
MZ_CHAINGUN3
#define MZ_CHAINGUN3
Definition: q_shared.h:637
netchan_t::message
sizebuf_t message
Definition: qcommon.h:608
CL_ParseDownload
void CL_ParseDownload(void)
Definition: cl_parse.c:200
CS_SKYROTATE
#define CS_SKYROTATE
Definition: q_shared.h:1105
cl_mod_explo4
struct model_s * cl_mod_explo4
Definition: cl_tent.c:105
MZ2_JORG_MACHINEGUN_L4
#define MZ2_JORG_MACHINEGUN_L4
Definition: q_shared.h:807
Inv_DrawString
void Inv_DrawString(int x, int y, char *string)
Definition: cl_inv.c:45
MZ_NUKE8
#define MZ_NUKE8
Definition: q_shared.h:664
CL_TeleportParticles
void CL_TeleportParticles(vec3_t org)
Definition: cl_fx.c:2143
frame_t::parse_entities
int parse_entities
Definition: client.h:52
TE_ELECTRIC_SPARKS
@ TE_ELECTRIC_SPARKS
Definition: q_shared.h:958
CL_ParseBeam2
int CL_ParseBeam2(struct model_s *model)
Definition: cl_tent.c:357
ca_uninitialized
@ ca_uninitialized
Definition: client.h:185
cl_upspeed
cvar_t * cl_upspeed
Definition: cl_input.c:223
entity_state_s::origin
vec3_t origin
Definition: q_shared.h:1149
MZ2_WIDOW2_BEAMER_4
#define MZ2_WIDOW2_BEAMER_4
Definition: q_shared.h:884
ca_connecting
@ ca_connecting
Definition: client.h:187
vrect_s::height
int height
Definition: vid.h:24
MZ2_WIDOW_BLASTER
#define MZ2_WIDOW_BLASTER
Definition: q_shared.h:835
CS_CDTRACK
#define CS_CDTRACK
Definition: q_shared.h:1102
refexport_t::RegisterPic
struct image_s *(* RegisterPic)(char *name)
Definition: ref.h:160
CS_ITEMS
#define CS_ITEMS
Definition: q_shared.h:1116
net_from
netadr_t net_from
Definition: net_chan.c:81
MZ_MACHINEGUN
#define MZ_MACHINEGUN
Definition: q_shared.h:633
client_state_t::prediction_error
vec3_t prediction_error
Definition: client.h:114
refexport_t::DrawFill
void(* DrawFill)(int x, int y, int w, int h, int c)
Definition: ref.h:171
edict_s::map
char * map
Definition: g_local.h:1065
TE_RAILTRAIL
@ TE_RAILTRAIL
Definition: q_shared.h:914
cl_sustain::endtime
int endtime
Definition: client.h:331
cdlight_t
Definition: client.h:295
MZ2_WIDOW_BLASTER_30L
#define MZ2_WIDOW_BLASTER_30L
Definition: q_shared.h:864
svc_inventory
@ svc_inventory
Definition: qcommon.h:229
Cvar_Userinfo
char * Cvar_Userinfo(void)
Definition: cvar.c:504
allow_download_maps
cvar_t * allow_download_maps
Definition: sv_main.c:41
MZ2_SOLDIER_MACHINEGUN_6
#define MZ2_SOLDIER_MACHINEGUN_6
Definition: q_shared.h:776
client_state_t::predicted_angles
vec3_t predicted_angles
Definition: client.h:113
U_RENDERFX8
#define U_RENDERFX8
Definition: qcommon.h:329
TE_MEDIC_CABLE_ATTACK
@ TE_MEDIC_CABLE_ATTACK
Definition: q_shared.h:930
M_Menu_SaveGame_f
void M_Menu_SaveGame_f(void)
Definition: menu.c:2204
Miniaudio_Play
void Miniaudio_Play(int track, qboolean looping)
Definition: snd_miniaudio.c:225
M_Menu_StartServer_f
void M_Menu_StartServer_f(void)
Definition: menu.c:2759
TE_WIDOWBEAMOUT
@ TE_WIDOWBEAMOUT
Definition: q_shared.h:962
CL_ParticleSmokeEffect
void CL_ParticleSmokeEffect(vec3_t org, vec3_t dir, int color, int count, int magnitude)
Definition: cl_newfx.c:1192
cl_explosions
explosion_t cl_explosions[MAX_EXPLOSIONS]
Definition: cl_tent.c:44
COM_StripExtension
void COM_StripExtension(char *in, char *out)
Definition: q_shared.c:826
sizebuf_s::readcount
int readcount
Definition: qcommon.h:99
U_OLDORIGIN
#define U_OLDORIGIN
Definition: qcommon.h:344
MZ_CHAINGUN1
#define MZ_CHAINGUN1
Definition: q_shared.h:635
MZ2_SOLDIER_SHOTGUN_8
#define MZ2_SOLDIER_SHOTGUN_8
Definition: q_shared.h:781
CL_ParseStartSoundPacket
void CL_ParseStartSoundPacket(void)
Definition: cl_parse.c:590
cvar_s::string
char * string
Definition: q_shared.h:327
VectorScale
void VectorScale(vec3_t in, vec_t scale, vec3_t out)
Definition: q_shared.c:782
CS_MODELS
#define CS_MODELS
Definition: q_shared.h:1112
CL_RegisterTEntSounds
void CL_RegisterTEntSounds(void)
Definition: cl_tent.c:125
x
GLint GLenum GLint x
Definition: qgl_win.c:116
V_Viewpos_f
void V_Viewpos_f(void)
Definition: cl_view.c:567
MZ2_SOLDIER_MACHINEGUN_1
#define MZ2_SOLDIER_MACHINEGUN_1
Definition: q_shared.h:714
EV_FOOTSTEP
@ EV_FOOTSTEP
Definition: q_shared.h:1133
IN_RightUp
void IN_RightUp(void)
Definition: cl_input.c:152
CL_ParseConfigString
void CL_ParseConfigString(void)
Definition: cl_parse.c:519
client_state_t::viewangles
vec3_t viewangles
Definition: client.h:125
MZ2_WIDOW2_BEAM_SWEEP_11
#define MZ2_WIDOW2_BEAM_SWEEP_11
Definition: q_shared.h:896
client_static_t::disable_servercount
int disable_servercount
Definition: client.h:215
cl_sidespeed
cvar_t * cl_sidespeed
Definition: cl_input.c:225
MZ_NUKE1
#define MZ_NUKE1
Definition: q_shared.h:661
entity_s::skinnum
int skinnum
Definition: ref.h:70
MZ2_WIDOW2_BEAM_SWEEP_4
#define MZ2_WIDOW2_BEAM_SWEEP_4
Definition: q_shared.h:889
TE_HEATBEAM_SPARKS
@ TE_HEATBEAM_SPARKS
Definition: q_shared.h:955
VectorClear
#define VectorClear(a)
Definition: q_shared.h:166
i
int i
Definition: q_shared.c:305
refdef_t::y
int y
Definition: ref.h:104
MZ2_TANK_MACHINEGUN_12
#define MZ2_TANK_MACHINEGUN_12
Definition: q_shared.h:684
MZ2_MAKRON_BLASTER_9
#define MZ2_MAKRON_BLASTER_9
Definition: q_shared.h:794
explosion_t::type
exptype_t type
Definition: cl_tent.c:31
MAX_ENTITIES
#define MAX_ENTITIES
Definition: ref.h:26
client_state_t::model_clip
struct cmodel_s * model_clip[MAX_MODELS]
Definition: client.h:164
MZ_CHAINGUN2
#define MZ_CHAINGUN2
Definition: q_shared.h:636
MZ2_GUNNER_GRENADE_4
#define MZ2_GUNNER_GRENADE_4
Definition: q_shared.h:728
client_static_t::demorecording
qboolean demorecording
Definition: client.h:237
MZ2_SOLDIER_SHOTGUN_6
#define MZ2_SOLDIER_SHOTGUN_6
Definition: q_shared.h:775
ca_active
@ ca_active
Definition: client.h:189
m_num_servers
int m_num_servers
Definition: menu.c:2230
MZ2_INFANTRY_MACHINEGUN_3
#define MZ2_INFANTRY_MACHINEGUN_3
Definition: q_shared.h:698
U_MODEL
#define U_MODEL
Definition: qcommon.h:328
client_state_t::gamedir
char gamedir[MAX_QPATH]
Definition: client.h:155
MZ_HYPERBLASTER
#define MZ_HYPERBLASTER
Definition: q_shared.h:646
scr_debuggraph
cvar_t * scr_debuggraph
Definition: cl_scrn.c:58
vid_hudscale
cvar_t * vid_hudscale
Definition: vid_dll.c:48
in_back
kbutton_t in_back
Definition: cl_input.c:59
fv
float fv
Definition: r_edge.c:75
IN_BackUp
void IN_BackUp(void)
Definition: cl_input.c:156
MZ2_INFANTRY_MACHINEGUN_7
#define MZ2_INFANTRY_MACHINEGUN_7
Definition: q_shared.h:702
TE_TUNNEL_SPARKS
@ TE_TUNNEL_SPARKS
Definition: q_shared.h:940
MZ2_WIDOW2_BEAM_SWEEP_1
#define MZ2_WIDOW2_BEAM_SWEEP_1
Definition: q_shared.h:886
explosion_t::baseframe
int baseframe
Definition: cl_tent.c:38
entity_state_s::event
int event
Definition: q_shared.h:1162
precache_model
byte * precache_model
Definition: cl_main.c:1110
particle_s::org
vec3_t org
Definition: client.h:363
netchan_t::dropped
int dropped
Definition: qcommon.h:588
MSG_WriteLong
void MSG_WriteLong(sizebuf_t *sb, int c)
Definition: common.c:330
MZ2_WIDOW_RUN_2
#define MZ2_WIDOW_RUN_2
Definition: q_shared.h:870
PITCH
#define PITCH
Definition: q_shared.h:72
client_state_t::cinematictime
int cinematictime
Definition: client.h:145
ATTN_IDLE
#define ATTN_IDLE
Definition: q_shared.h:996
MZ2_JORG_MACHINEGUN_R6
#define MZ2_JORG_MACHINEGUN_R6
Definition: q_shared.h:815
dlight_t::origin
vec3_t origin
Definition: ref.h:84
CL_DebugTrail
void CL_DebugTrail(vec3_t start, vec3_t end)
Definition: cl_newfx.c:123
cdlight_t::key
int key
Definition: client.h:297
NET_AdrToString
char * NET_AdrToString(netadr_t a)
Definition: net_wins.c:161
refdef_t::rdflags
int rdflags
Definition: ref.h:110
MZ2_TANK_ROCKET_1
#define MZ2_TANK_ROCKET_1
Definition: q_shared.h:692
CL_KeyState
float CL_KeyState(kbutton_t *key)
Definition: cl_input.c:186
ATTN_STATIC
#define ATTN_STATIC
Definition: q_shared.h:997
MZ2_WIDOW_BLASTER_SWEEP5
#define MZ2_WIDOW_BLASTER_SWEEP5
Definition: q_shared.h:846
SZ_Init
void SZ_Init(sizebuf_t *buf, byte *data, int length)
Definition: common.c:885
cl_sfx_disrexp
struct sfx_s * cl_sfx_disrexp
Definition: cl_tent.c:113
MZ2_SOLDIER_MACHINEGUN_7
#define MZ2_SOLDIER_MACHINEGUN_7
Definition: q_shared.h:779
svc_playerinfo
@ svc_playerinfo
Definition: qcommon.h:243
client_state_t::layout
char layout[1024]
Definition: client.h:138
MZ2_SOLDIER_SHOTGUN_1
#define MZ2_SOLDIER_SHOTGUN_1
Definition: q_shared.h:712
splash_color
static byte splash_color[]
Definition: cl_tent.c:692
vid_hudscale
cvar_t * vid_hudscale
Definition: vid_dll.c:48
CS_NAME
#define CS_NAME
Definition: q_shared.h:1101
entity_s::flags
int flags
Definition: ref.h:76
SCR_DirtyScreen
void SCR_DirtyScreen(void)
Definition: cl_scrn.c:681
CL_Disconnect
void CL_Disconnect(void)
Definition: cl_main.c:618
usercmd_s::forwardmove
short forwardmove
Definition: q_shared.h:522
sizebuf_s::data
byte * data
Definition: qcommon.h:96
client_state_t::refdef
refdef_t refdef
Definition: client.h:131
cl_nodelta
cvar_t * cl_nodelta
Definition: cl_input.c:25
centity_t::baseline
entity_state_t baseline
Definition: client.h:57
cl_timeout
cvar_t * cl_timeout
Definition: cl_main.c:45
client_state_t::sound_precache
struct sfx_s * sound_precache[MAX_SOUNDS]
Definition: client.h:166
STAT_SELECTED_ITEM
#define STAT_SELECTED_ITEM
Definition: q_shared.h:1013
M_PI
#define M_PI
Definition: q_shared.h:142
MZ2_TANK_MACHINEGUN_13
#define MZ2_TANK_MACHINEGUN_13
Definition: q_shared.h:685
NA_BROADCAST
@ NA_BROADCAST
Definition: qcommon.h:547
MZ2_WIDOW_DISRUPTOR
#define MZ2_WIDOW_DISRUPTOR
Definition: q_shared.h:834
MZ2_INFANTRY_MACHINEGUN_8
#define MZ2_INFANTRY_MACHINEGUN_8
Definition: q_shared.h:703
free_particles
cparticle_t * free_particles
Definition: cl_newfx.c:24
MZ2_WIDOW_BLASTER_90
#define MZ2_WIDOW_BLASTER_90
Definition: q_shared.h:852
type
GLenum type
Definition: qgl_win.c:72
MZ2_WIDOW2_BEAMER_2
#define MZ2_WIDOW2_BEAMER_2
Definition: q_shared.h:882
Cvar_Get
cvar_t * Cvar_Get(char *var_name, char *var_value, int flags)
Definition: cvar.c:127
FS_CreatePath
void FS_CreatePath(char *path)
Definition: files.c:125
player_state_t::rdflags
int rdflags
Definition: q_shared.h:1194
ATTN_NORM
#define ATTN_NORM
Definition: q_shared.h:995
U_MODEL2
#define U_MODEL2
Definition: qcommon.h:338
MZ2_HOVER_BLASTER_1
#define MZ2_HOVER_BLASTER_1
Definition: q_shared.h:739
MZ2_BOSS2_MACHINEGUN_L3
#define MZ2_BOSS2_MACHINEGUN_L3
Definition: q_shared.h:755
CL_ParsePlayerstate
void CL_ParsePlayerstate(frame_t *oldframe, frame_t *newframe)
Definition: cl_ents.c:515
TE_EXPLOSION1_NP
@ TE_EXPLOSION1_NP
Definition: q_shared.h:966
entity_state_s::modelindex3
int modelindex3
Definition: q_shared.h:1153
explosion_t
Definition: cl_tent.c:29
cvar_s
Definition: q_shared.h:324
CL_ClearParticles
void CL_ClearParticles(void)
Definition: cl_fx.c:896
MZ2_TANK_MACHINEGUN_9
#define MZ2_TANK_MACHINEGUN_9
Definition: q_shared.h:681
SZ_Clear
void SZ_Clear(sizebuf_t *buf)
Definition: common.c:892
CL_CalcViewValues
void CL_CalcViewValues(void)
Definition: cl_ents.c:1391
TE_FLASHLIGHT
@ TE_FLASHLIGHT
Definition: q_shared.h:948
MZ2_TANK_MACHINEGUN_14
#define MZ2_TANK_MACHINEGUN_14
Definition: q_shared.h:686
TE_EXPLOSION2
@ TE_EXPLOSION2
Definition: q_shared.h:917
TE_FORCEWALL
@ TE_FORCEWALL
Definition: q_shared.h:949
client_state_t::force_refdef
qboolean force_refdef
Definition: client.h:100
key_menu
@ key_menu
Definition: client.h:200
PLAYER_MULT
#define PLAYER_MULT
Definition: cl_main.c:1112
frame_t::areabits
byte areabits[MAX_MAP_AREAS/8]
Definition: client.h:49
intensity
cvar_t * intensity
Definition: gl_image.c:31
precache_spawncount
int precache_spawncount
Definition: cl_main.c:1106
MZ2_WIDOW_RUN_8
#define MZ2_WIDOW_RUN_8
Definition: q_shared.h:876
CL_AddTEnts
void CL_AddTEnts(void)
Definition: cl_tent.c:1738
CL_ParseBeam
int CL_ParseBeam(struct model_s *model)
Definition: cl_tent.c:309
entity_state_s::effects
unsigned int effects
Definition: q_shared.h:1156
MZ2_MAKRON_BLASTER_2
#define MZ2_MAKRON_BLASTER_2
Definition: q_shared.h:787
vectoangles2
void vectoangles2(vec3_t value1, vec3_t angles)
Definition: cl_newfx.c:37
TE_GRENADE_EXPLOSION
@ TE_GRENADE_EXPLOSION
Definition: q_shared.h:919
frame_msec
unsigned frame_msec
Definition: cl_input.c:28
client_state_t::clientinfo
clientinfo_t clientinfo[MAX_CLIENTS]
Definition: client.h:169
refexport_t::EndRegistration
void(* EndRegistration)(void)
Definition: ref.h:162
explosion_t::lightcolor
vec3_t lightcolor
Definition: cl_tent.c:36
MakeNormalVectors
void MakeNormalVectors(vec3_t forward, vec3_t right, vec3_t up)
Definition: cl_fx.c:1534
TE_BUBBLETRAIL2
@ TE_BUBBLETRAIL2
Definition: q_shared.h:953
viddef
viddef_t viddef
Definition: vid_dll.c:54
bitcounts
int bitcounts[32]
Definition: cl_ents.c:201
PRINT_CHAT
#define PRINT_CHAT
Definition: q_shared.h:100
j
GLint j
Definition: qgl_win.c:150
m_menudepth
int m_menudepth
Definition: menu.c:79
MZ2_INFANTRY_MACHINEGUN_6
#define MZ2_INFANTRY_MACHINEGUN_6
Definition: q_shared.h:701
entity_state_s::sound
int sound
Definition: q_shared.h:1161
NET_StringToAdr
qboolean NET_StringToAdr(char *s, netadr_t *a)
Definition: net_wins.c:262
particle_s::next
struct particle_s * next
Definition: client.h:359
CL_ParseFrame
void CL_ParseFrame(void)
Definition: cl_ents.c:663
Cmd_Argv
char * Cmd_Argv(int arg)
Definition: cmd.c:517
MZ2_SUPERTANK_ROCKET_1
#define MZ2_SUPERTANK_ROCKET_1
Definition: q_shared.h:749
MZ2_MEDIC_BLASTER_1
#define MZ2_MEDIC_BLASTER_1
Definition: q_shared.h:735
U_ANGLE3
#define U_ANGLE3
Definition: qcommon.h:318
va
char * va(char *format,...)
Definition: q_shared.c:1050
MZ_BLUEHYPERBLASTER
#define MZ_BLUEHYPERBLASTER
Definition: q_shared.h:650
clightstyle_t::length
int length
Definition: cl_fx.c:42
avelocities
static vec3_t avelocities[NUMVERTEXNORMALS]
Definition: cl_fx.c:27
MZ2_WIDOW_BLASTER_SWEEP6
#define MZ2_WIDOW_BLASTER_SWEEP6
Definition: q_shared.h:847
IN_LookdownDown
void IN_LookdownDown(void)
Definition: cl_input.c:159
MZ2_INFANTRY_MACHINEGUN_2
#define MZ2_INFANTRY_MACHINEGUN_2
Definition: q_shared.h:697
sizebuf_s::maxsize
int maxsize
Definition: qcommon.h:97
Cmd_Argc
int Cmd_Argc(void)
Definition: cmd.c:507
MZ2_MAKRON_BLASTER_7
#define MZ2_MAKRON_BLASTER_7
Definition: q_shared.h:792
MZ_SHOTGUN2
#define MZ_SHOTGUN2
Definition: q_shared.h:657
CL_ParseTEnt
void CL_ParseTEnt(void)
Definition: cl_tent.c:694
client_state_t::timedemo_start
int timedemo_start
Definition: client.h:96
ATTN_NONE
#define ATTN_NONE
Definition: q_shared.h:994
SCR_DrawCrosshair
void SCR_DrawCrosshair(void)
Definition: cl_view.c:422
keyname_t
Definition: keys.c:47
V_ClearScene
void V_ClearScene(void)
Definition: cl_view.c:65
CS_IMAGES
#define CS_IMAGES
Definition: q_shared.h:1114
AngleVectors
void AngleVectors(vec3_t angles, vec3_t forward, vec3_t right, vec3_t up)
Definition: q_shared.c:93
CHAN_AUTO
#define CHAN_AUTO
Definition: q_shared.h:983
U_SOUND
#define U_SOUND
Definition: qcommon.h:346
cl_sfx_watrexp
struct sfx_s * cl_sfx_watrexp
Definition: cl_tent.c:94
RF_BEAM
#define RF_BEAM
Definition: q_shared.h:606
SCR_UpdateScreen
void SCR_UpdateScreen(void)
Definition: cl_scrn.c:1215
active_particles
cparticle_t * active_particles
Definition: cl_fx.c:885
particle_s::alphavel
float alphavel
Definition: client.h:369
IN_UpUp
void IN_UpUp(void)
Definition: cl_input.c:146
MZ2_WIDOW_BLASTER_20L
#define MZ2_WIDOW_BLASTER_20L
Definition: q_shared.h:863
u
static int u
Definition: r_part.c:472
CL_FlyParticles
void CL_FlyParticles(vec3_t origin, int count)
Definition: cl_fx.c:1819
MZ2_TANK_MACHINEGUN_1
#define MZ2_TANK_MACHINEGUN_1
Definition: q_shared.h:673
MZ2_WIDOW_RUN_1
#define MZ2_WIDOW_RUN_1
Definition: q_shared.h:869
MZ2_INFANTRY_MACHINEGUN_11
#define MZ2_INFANTRY_MACHINEGUN_11
Definition: q_shared.h:706
M_Menu_Keys_f
void M_Menu_Keys_f(void)
Definition: menu.c:1029
cl_noskins
cvar_t * cl_noskins
Definition: cl_main.c:42
refexport_t::DrawFadeScreen
void(* DrawFadeScreen)(void)
Definition: ref.h:172
M_Menu_DownloadOptions_f
void M_Menu_DownloadOptions_f(void)
Definition: menu.c:3294
bytedirs
vec3_t bytedirs[NUMVERTEXNORMALS]
Definition: common.c:281
particle_s
Definition: client.h:357
monster_flash_offset
vec3_t monster_flash_offset[]
Definition: m_flash.c:27
CL_PMTrace
trace_t CL_PMTrace(vec3_t start, vec3_t mins, vec3_t maxs, vec3_t end)
Definition: cl_pred.c:148
SHOWNET
void SHOWNET(char *s)
Definition: cl_parse.c:650
edict_s::item
gitem_t * item
Definition: g_local.h:1110
TE_BFG_BIGEXPLOSION
@ TE_BFG_BIGEXPLOSION
Definition: q_shared.h:932
cl_mod_bfg_explo
struct model_s * cl_mod_bfg_explo
Definition: cl_tent.c:106
userinfo_modified
qboolean userinfo_modified
Definition: cvar.c:485
MZ2_JORG_MACHINEGUN_R4
#define MZ2_JORG_MACHINEGUN_R4
Definition: q_shared.h:813
MZ2_WIDOW_BLASTER_40L
#define MZ2_WIDOW_BLASTER_40L
Definition: q_shared.h:865
MZ2_GUNNER_MACHINEGUN_2
#define MZ2_GUNNER_MACHINEGUN_2
Definition: q_shared.h:718
r_entities
entity_t r_entities[MAX_ENTITIES]
Definition: cl_view.c:48
V_Gun_Prev_f
void V_Gun_Prev_f(void)
Definition: cl_view.c:393
cl_showmiss
cvar_t * cl_showmiss
Definition: cl_main.c:57
menu_in_sound
static char * menu_in_sound
Definition: menu.c:37
MAX_LOCAL_SERVERS
#define MAX_LOCAL_SERVERS
Definition: menu.c:2222
MZ2_SOLDIER_SHOTGUN_3
#define MZ2_SOLDIER_SHOTGUN_3
Definition: q_shared.h:766
pmove_t::trace
trace_t(* trace)(vec3_t start, vec3_t mins, vec3_t maxs, vec3_t end)
Definition: q_shared.h:552
clientinfo_t::model
struct model_s * model
Definition: client.h:78
MZ2_TANK_MACHINEGUN_16
#define MZ2_TANK_MACHINEGUN_16
Definition: q_shared.h:688
MZ2_CARRIER_ROCKET_1
#define MZ2_CARRIER_ROCKET_1
Definition: q_shared.h:877
usercmd_s::sidemove
short sidemove
Definition: q_shared.h:522
skin
cvar_t * skin
Definition: cl_main.c:80
M_Menu_Credits_f
void M_Menu_Credits_f(void)
Definition: menu.c:1838
CDAudio_Play
qboolean CDAudio_Play(int track, qboolean looping)
Definition: cd_win.c:186
CS_MAPCHECKSUM
#define CS_MAPCHECKSUM
Definition: q_shared.h:1110
MZ2_WIDOW_RUN_6
#define MZ2_WIDOW_RUN_6
Definition: q_shared.h:874
MZ2_WIDOW2_BEAM_SWEEP_7
#define MZ2_WIDOW2_BEAM_SWEEP_7
Definition: q_shared.h:892
EF_ROCKET
#define EF_ROCKET
Definition: q_shared.h:565
cl_add_lights
cvar_t * cl_add_lights
Definition: cl_main.c:52
edict_s::angle
float angle
Definition: g_local.h:1016
MZ2_JORG_MACHINEGUN_L2
#define MZ2_JORG_MACHINEGUN_L2
Definition: q_shared.h:805
entity_s::alpha
float alpha
Definition: ref.h:73
cl_sfx_lightning
struct sfx_s * cl_sfx_lightning
Definition: cl_tent.c:112
client_static_t::downloadnumber
int downloadnumber
Definition: client.h:232
client_state_t::model_draw
struct model_s * model_draw[MAX_MODELS]
Definition: client.h:163
S_RegisterSound
sfx_t * S_RegisterSound(char *name)
Definition: snd_dma.c:305
U_EVENT
#define U_EVENT
Definition: qcommon.h:320
r
GLdouble GLdouble r
Definition: qgl_win.c:336
IN_Impulse
void IN_Impulse(void)
Definition: cl_input.c:177
cl_forwardspeed
cvar_t * cl_forwardspeed
Definition: cl_input.c:224
VIDREF_GL
#define VIDREF_GL
Definition: q_shared.h:1203
cl_add_entities
cvar_t * cl_add_entities
Definition: cl_main.c:53
LittleLong
int LittleLong(int l)
Definition: q_shared.c:948
MZ2_INFANTRY_MACHINEGUN_10
#define MZ2_INFANTRY_MACHINEGUN_10
Definition: q_shared.h:705
CL_SmokeAndFlash
void CL_SmokeAndFlash(vec3_t origin)
Definition: cl_tent.c:263
MZ2_CHICK_ROCKET_1
#define MZ2_CHICK_ROCKET_1
Definition: q_shared.h:730
MZ2_GUNNER_MACHINEGUN_6
#define MZ2_GUNNER_MACHINEGUN_6
Definition: q_shared.h:722
MZ2_WIDOW_BLASTER_30
#define MZ2_WIDOW_BLASTER_30
Definition: q_shared.h:858
IN_BackDown
void IN_BackDown(void)
Definition: cl_input.c:155
centity_t
Definition: client.h:55
viddef_t::width
unsigned width
Definition: vid.h:29
client_static_t::demowaiting
qboolean demowaiting
Definition: client.h:238
in_left
kbutton_t in_left
Definition: cl_input.c:59
MZ2_WIDOW2_BEAM_SWEEP_2
#define MZ2_WIDOW2_BEAM_SWEEP_2
Definition: q_shared.h:887
MZ2_TANK_MACHINEGUN_4
#define MZ2_TANK_MACHINEGUN_4
Definition: q_shared.h:676
in_forward
kbutton_t in_forward
Definition: cl_input.c:59
TE_BFG_EXPLOSION
@ TE_BFG_EXPLOSION
Definition: q_shared.h:931
cl_sfx_lashit
struct sfx_s * cl_sfx_lashit
Definition: cl_tent.c:87
U_EFFECTS16
#define U_EFFECTS16
Definition: qcommon.h:337
MZ2_SUPERTANK_ROCKET_3
#define MZ2_SUPERTANK_ROCKET_3
Definition: q_shared.h:751
refdef_t::num_dlights
int num_dlights
Definition: ref.h:119
IN_DownUp
void IN_DownUp(void)
Definition: cl_input.c:148
MZ2_WIDOW_BLASTER_60
#define MZ2_WIDOW_BLASTER_60
Definition: q_shared.h:855
CL_ClearState
void CL_ClearState(void)
Definition: cl_main.c:595
CL_ClearDlights
void CL_ClearDlights(void)
Definition: cl_fx.c:138
COM_BlockSequenceCRCByte
byte COM_BlockSequenceCRCByte(byte *base, int length, int sequence)
Definition: common.c:1338
clientinfo_t::iconname
char iconname[MAX_QPATH]
Definition: client.h:77
starttime
int starttime
Definition: sys_win.c:42
U_ORIGIN2
#define U_ORIGIN2
Definition: qcommon.h:316
gender_auto
cvar_t * gender_auto
Definition: cl_main.c:86
IN_MoverightUp
void IN_MoverightUp(void)
Definition: cl_input.c:164
MZ2_INFANTRY_MACHINEGUN_5
#define MZ2_INFANTRY_MACHINEGUN_5
Definition: q_shared.h:700
explosion_t::start
float start
Definition: cl_tent.c:37
MZ_SHOTGUN
#define MZ_SHOTGUN
Definition: q_shared.h:634
player_state_t::viewangles
vec3_t viewangles
Definition: q_shared.h:1180
CL_ParseBaseline
void CL_ParseBaseline(void)
Definition: cl_parse.c:359
cl_sfx_railg
struct sfx_s * cl_sfx_railg
Definition: cl_tent.c:91
S_EndRegistration
void S_EndRegistration(void)
Definition: snd_dma.c:328
forward
static vec3_t forward
Definition: p_view.c:29
netchan_t::last_sent
int last_sent
Definition: qcommon.h:591
MZ2_WIDOW_BLASTER_50L
#define MZ2_WIDOW_BLASTER_50L
Definition: q_shared.h:866
MSG_ReadDir
void MSG_ReadDir(sizebuf_t *sb, vec3_t dir)
Definition: common.c:464
M_Init
void M_Init(void)
Definition: menu.c:3973
particle_t::alpha
float alpha
Definition: ref.h:93
CL_PrepRefresh
void CL_PrepRefresh(void)
Definition: cl_view.c:250
CL_ParseMuzzleFlash2
void CL_ParseMuzzleFlash2(void)
Definition: cl_fx.c:429
ENV_CNT
#define ENV_CNT
Definition: cl_main.c:1115
VectorLength
vec_t VectorLength(vec3_t v)
Definition: q_shared.c:762
player_state_t::pmove
pmove_state_t pmove
Definition: q_shared.h:1176
U_EFFECTS8
#define U_EFFECTS8
Definition: qcommon.h:330
cl_stats
cvar_t * cl_stats
Definition: cl_view.c:39
dmdl_t::version
int version
Definition: qfiles.h:140
Sys_SendKeyEvents
void Sys_SendKeyEvents(void)
Definition: sys_win.c:406
cl_beams
beam_t cl_beams[MAX_BEAMS]
Definition: cl_tent.c:57
U_MOREBITS1
#define U_MOREBITS1
Definition: qcommon.h:322
t
GLdouble t
Definition: qgl_win.c:328
CL_ParseLightning
int CL_ParseLightning(struct model_s *model)
Definition: cl_tent.c:475
cl_mod_flash
struct model_s * cl_mod_flash
Definition: cl_tent.c:101
MZ2_WIDOW2_BEAMER_1
#define MZ2_WIDOW2_BEAMER_1
Definition: q_shared.h:881
cl_footsteps
cvar_t * cl_footsteps
Definition: cl_main.c:44
client_static_t::connect_time
float connect_time
Definition: client.h:220
keyname_t::name
char * name
Definition: keys.c:49
U_MODEL4
#define U_MODEL4
Definition: qcommon.h:340
FS_ExecAutoexec
void FS_ExecAutoexec(void)
Definition: files.c:572
TE_SPARKS
@ TE_SPARKS
Definition: q_shared.h:920
Cmd_AddCommand
void Cmd_AddCommand(char *cmd_name, xcommand_t function)
Definition: cmd.c:691
MZ2_SUPERTANK_MACHINEGUN_2
#define MZ2_SUPERTANK_MACHINEGUN_2
Definition: q_shared.h:744
MZ_LOGOUT
#define MZ_LOGOUT
Definition: q_shared.h:642
MZ2_STALKER_BLASTER
#define MZ2_STALKER_BLASTER
Definition: q_shared.h:830
CL_Flashlight
void CL_Flashlight(int ent, vec3_t pos)
Definition: cl_newfx.c:76
client_state_t::refresh_prepped
qboolean refresh_prepped
Definition: client.h:98
clientinfo_t::cinfo
char cinfo[MAX_QPATH]
Definition: client.h:74
Key_KeynumToString
char * Key_KeynumToString(int keynum)
Definition: keys.c:479
CS_PLAYERSKINS
#define CS_PLAYERSKINS
Definition: q_shared.h:1117
V_AddParticle
void V_AddParticle(vec3_t org, int color, float alpha)
Definition: cl_view.c:93
MZ2_WIDOW2_BEAMER_3
#define MZ2_WIDOW2_BEAMER_3
Definition: q_shared.h:883
EF_GIB
#define EF_GIB
Definition: q_shared.h:563
dmdl_t::num_skins
int num_skins
Definition: qfiles.h:146
MZ2_BOSS2_MACHINEGUN_L1
#define MZ2_BOSS2_MACHINEGUN_L1
Definition: q_shared.h:753
centity_t::trailcount
int trailcount
Definition: client.h:63
key_game
@ key_game
Definition: client.h:200
TE_GRAPPLE_CABLE
@ TE_GRAPPLE_CABLE
Definition: q_shared.h:935
CL_TeleportParticles
void CL_TeleportParticles(vec3_t org)
Definition: cl_fx.c:2143
client_state_t::lerpfrac
float lerpfrac
Definition: client.h:129
dlight_t::color
vec3_t color
Definition: ref.h:85
MZ_NUKE4
#define MZ_NUKE4
Definition: q_shared.h:663
V_Gun_Next_f
void V_Gun_Next_f(void)
Definition: cl_view.c:387
PROTOCOL_VERSION
#define PROTOCOL_VERSION
Definition: qcommon.h:197
FS_LoadFile
int FS_LoadFile(char *path, void **buffer)
Definition: files.c:398
TE_ROCKET_EXPLOSION
@ TE_ROCKET_EXPLOSION
Definition: q_shared.h:918
cl_mod_heatbeam
struct model_s * cl_mod_heatbeam
Definition: cl_tent.c:115
BEAMLENGTH
#define BEAMLENGTH
Definition: cl_fx.c:1924
MZ_RAILGUN
#define MZ_RAILGUN
Definition: q_shared.h:638
DotProduct
#define DotProduct(x, y)
Definition: q_shared.h:162
CVAR_ARCHIVE
#define CVAR_ARCHIVE
Definition: q_shared.h:316
viddef_t::height
unsigned height
Definition: vid.h:29
MZ2_MAKRON_BLASTER_17
#define MZ2_MAKRON_BLASTER_17
Definition: q_shared.h:802
particle_s::alpha
float alpha
Definition: client.h:368
cl_sfx_footsteps
struct sfx_s * cl_sfx_footsteps[4]
Definition: cl_tent.c:97
U_FRAME16
#define U_FRAME16
Definition: qcommon.h:335
ex_flash
@ ex_flash
Definition: cl_tent.c:26
MZ_NUKE2
#define MZ_NUKE2
Definition: q_shared.h:662
MZ2_MAKRON_BLASTER_15
#define MZ2_MAKRON_BLASTER_15
Definition: q_shared.h:800
MZ2_TANK_MACHINEGUN_6
#define MZ2_TANK_MACHINEGUN_6
Definition: q_shared.h:678
IN_UseDown
void IN_UseDown(void)
Definition: cl_input.c:174
S_Shutdown
void S_Shutdown(void)
Definition: snd_dma.c:164
MZ2_MAKRON_BLASTER_13
#define MZ2_MAKRON_BLASTER_13
Definition: q_shared.h:798
Cbuf_AddText
void Cbuf_AddText(char *text)
Definition: cmd.c:90
cvar_s::value
float value
Definition: q_shared.h:331
SCR_DebugGraph
void SCR_DebugGraph(float value, int color)
Definition: cl_scrn.c:137
client_state_t::cmds
usercmd_t cmds[CMD_BACKUP]
Definition: client.h:105
SPLASH_SPARKS
#define SPLASH_SPARKS
Definition: q_shared.h:972
CL_AddLightStyles
void CL_AddLightStyles(void)
Definition: cl_fx.c:114
MSG_ReadByte
int MSG_ReadByte(sizebuf_t *msg_read)
Definition: common.c:703
allow_download_players
cvar_t * allow_download_players
Definition: sv_main.c:38
in_moveright
kbutton_t in_moveright
Definition: cl_input.c:60
cdlight_t::color
vec3_t color
Definition: client.h:298
U_SKIN8
#define U_SKIN8
Definition: qcommon.h:334
MZ2_SOLDIER_BLASTER_8
#define MZ2_SOLDIER_BLASTER_8
Definition: q_shared.h:780
m_drawfunc
void(* m_drawfunc)(void)
Definition: menu.c:63
MAX_OSPATH
#define MAX_OSPATH
Definition: q_shared.h:81
svc_deltapacketentities
@ svc_deltapacketentities
Definition: qcommon.h:245
CL_ColorFlash
void CL_ColorFlash(vec3_t pos, int ent, int intensity, float r, float g, float b)
Definition: cl_newfx.c:95
MZ2_BOSS2_MACHINEGUN_R2
#define MZ2_BOSS2_MACHINEGUN_R2
Definition: q_shared.h:818
IN_KLookUp
void IN_KLookUp(void)
Definition: cl_input.c:144
frame_t::valid
qboolean valid
Definition: client.h:45
cl_testblend
cvar_t * cl_testblend
Definition: cl_view.c:37
CL_ProcessSustain
void CL_ProcessSustain()
Definition: cl_tent.c:1715
CL_AddPacketEntities
void CL_AddPacketEntities(frame_t *frame)
Definition: cl_ents.c:837
client_state_t::timedemo_frames
int timedemo_frames
Definition: client.h:95
cl_add_particles
cvar_t * cl_add_particles
Definition: cl_main.c:51
cl_mod_smoke
struct model_s * cl_mod_smoke
Definition: cl_tent.c:100
MZ2_WIDOW_BLASTER_SWEEP9
#define MZ2_WIDOW_BLASTER_SWEEP9
Definition: q_shared.h:850
U_RENDERFX16
#define U_RENDERFX16
Definition: qcommon.h:336
M_Menu_DMOptions_f
void M_Menu_DMOptions_f(void)
Definition: menu.c:3162
con
console_t con
Definition: console.c:25
pmove_state_t::delta_angles
short delta_angles[3]
Definition: q_shared.h:503
refdef_t::blend
float blend[4]
Definition: ref.h:108
key_console
@ key_console
Definition: client.h:200
frame_t::serverframe
int serverframe
Definition: client.h:46
VectorNormalize
vec_t VectorNormalize(vec3_t v)
Definition: q_shared.c:681
V_TestEntities
void V_TestEntities(void)
Definition: cl_view.c:183
client_static_t::serverProtocol
int serverProtocol
Definition: client.h:225
IN_MoverightDown
void IN_MoverightDown(void)
Definition: cl_input.c:163
U_MOREBITS2
#define U_MOREBITS2
Definition: qcommon.h:331
MSG_WriteString
void MSG_WriteString(sizebuf_t *sb, char *s)
Definition: common.c:356
entity_state_s::number
int number
Definition: q_shared.h:1147
NULL
#define NULL
Definition: q_shared.h:67
MZ2_GUNNER_MACHINEGUN_3
#define MZ2_GUNNER_MACHINEGUN_3
Definition: q_shared.h:719
client_state_t::frame
frame_t frame
Definition: client.h:116
CL_ParseMuzzleFlash
void CL_ParseMuzzleFlash(void)
Definition: cl_fx.c:238
keydest_t
keydest_t
Definition: client.h:200
cl_testparticles
cvar_t * cl_testparticles
Definition: cl_view.c:34
explosion_t::ent
entity_t ent
Definition: cl_tent.c:32
CalcFov
float CalcFov(float fov_x, float width, float height)
Definition: cl_view.c:367
local_server_netadr
static netadr_t local_server_netadr[MAX_LOCAL_SERVERS]
Definition: menu.c:2237
refdef_t::time
float time
Definition: ref.h:109
MZ2_SOLDIER_SHOTGUN_7
#define MZ2_SOLDIER_SHOTGUN_7
Definition: q_shared.h:778
refexport_t::CinematicSetPalette
void(* CinematicSetPalette)(const unsigned char *palette)
Definition: ref.h:180
CMD_BACKUP
#define CMD_BACKUP
Definition: client.h:85
MZ2_CARRIER_MACHINEGUN_R2
#define MZ2_CARRIER_MACHINEGUN_R2
Definition: q_shared.h:839
vrect_s::x
int x
Definition: vid.h:24
MSG_WriteShort
void MSG_WriteShort(sizebuf_t *sb, int c)
Definition: common.c:316
MZ2_MAKRON_BLASTER_10
#define MZ2_MAKRON_BLASTER_10
Definition: q_shared.h:795
cl_mod_parasite_tip
struct model_s * cl_mod_parasite_tip
Definition: cl_tent.c:104
cl_vwep
cvar_t * cl_vwep
Definition: cl_main.c:88
MZ2_WIDOW_BLASTER_100
#define MZ2_WIDOW_BLASTER_100
Definition: q_shared.h:851
cl_weaponmodels
char cl_weaponmodels[MAX_CLIENTWEAPONMODELS][MAX_QPATH]
Definition: cl_view.c:55
TE_PLAIN_EXPLOSION
@ TE_PLAIN_EXPLOSION
Definition: q_shared.h:947
noudp
static cvar_t * noudp
Definition: net_wins.c:43
MSG_WriteByte
void MSG_WriteByte(sizebuf_t *sb, int c)
Definition: common.c:303
V_AddLightStyle
void V_AddLightStyle(int style, float r, float g, float b)
Definition: cl_view.c:132
MZ2_GUNNER_MACHINEGUN_4
#define MZ2_GUNNER_MACHINEGUN_4
Definition: q_shared.h:720
VIDREF_SOFT
#define VIDREF_SOFT
Definition: q_shared.h:1204
clightstyle_t
Definition: cl_fx.c:40
IN_ForwardDown
void IN_ForwardDown(void)
Definition: cl_input.c:153
Com_Error
void Com_Error(int code, char *fmt,...)
Definition: common.c:181
MZ2_TANK_MACHINEGUN_3
#define MZ2_TANK_MACHINEGUN_3
Definition: q_shared.h:675
client_state_t::playernum
int playernum
Definition: client.h:156
client_state_t::predicted_step
float predicted_step
Definition: client.h:109
TE_NUKEBLAST
@ TE_NUKEBLAST
Definition: q_shared.h:963
svc_layout
@ svc_layout
Definition: qcommon.h:228
CL_ConnectionlessPacket
void CL_ConnectionlessPacket(void)
Definition: cl_main.c:883
MZ2_BOSS2_ROCKET_2
#define MZ2_BOSS2_ROCKET_2
Definition: q_shared.h:759
MAX_ITEMS
#define MAX_ITEMS
Definition: q_shared.h:92
CL_ParseServerMessage
void CL_ParseServerMessage(void)
Definition: cl_parse.c:661
M_Menu_AddressBook_f
void M_Menu_AddressBook_f(void)
Definition: menu.c:3366
in_up
kbutton_t in_up
Definition: cl_input.c:62
MZ2_JORG_MACHINEGUN_L6
#define MZ2_JORG_MACHINEGUN_L6
Definition: q_shared.h:809
MAX_CLIENTWEAPONMODELS
#define MAX_CLIENTWEAPONMODELS
Definition: client.h:69
cl_dlights
cdlight_t cl_dlights[MAX_DLIGHTS]
Definition: cl_fx.c:131
CL_ClearTEnts
void CL_ClearTEnts(void)
Definition: cl_tent.c:213
kbutton_t::msec
unsigned msec
Definition: client.h:473
TE_DBALL_GOAL
@ TE_DBALL_GOAL
Definition: q_shared.h:961
current
static int current
Definition: cl_scrn.c:129
particle_t
Definition: ref.h:89
Con_ClearNotify
void Con_ClearNotify(void)
Definition: console.c:208
dltype_t
dltype_t
Definition: client.h:192
clc_userinfo
@ clc_userinfo
Definition: qcommon.h:259
Netchan_Process
qboolean Netchan_Process(netchan_t *chan, sizebuf_t *msg)
Definition: net_chan.c:298
refexport_t::DrawPic
void(* DrawPic)(int x, int y, char *name)
Definition: ref.h:167
client_state_t::baseclientinfo
clientinfo_t baseclientinfo
Definition: client.h:170
alpha
GLfloat GLfloat GLfloat alpha
Definition: qgl_win.c:74
refdef_t::num_particles
int num_particles
Definition: ref.h:122
client_state_t::time
int time
Definition: client.h:127
MZ2_MAKRON_BLASTER_8
#define MZ2_MAKRON_BLASTER_8
Definition: q_shared.h:793
refdef_t::height
int height
Definition: ref.h:104
cl_showclamp
cvar_t * cl_showclamp
Definition: cl_main.c:58
MZ2_SOLDIER_BLASTER_6
#define MZ2_SOLDIER_BLASTER_6
Definition: q_shared.h:774
CS_SKYAXIS
#define CS_SKYAXIS
Definition: q_shared.h:1104
allow_download_models
cvar_t * allow_download_models
Definition: sv_main.c:39
refexport_t::RegisterModel
struct model_s *(* RegisterModel)(char *name)
Definition: ref.h:158
ERR_DROP
#define ERR_DROP
Definition: qcommon.h:744
TE_MOREBLOOD
@ TE_MOREBLOOD
Definition: q_shared.h:954
CM_InlineModel
cmodel_t * CM_InlineModel(char *name)
Definition: cmodel.c:639
MZ2_SOLDIER_BLASTER_4
#define MZ2_SOLDIER_BLASTER_4
Definition: q_shared.h:768
MSG_ReadCoord
float MSG_ReadCoord(sizebuf_t *msg_read)
Definition: common.c:813
Q_stricmp
int Q_stricmp(char *s1, char *s2)
Definition: q_shared.c:1180
MZ2_GUNNER_MACHINEGUN_5
#define MZ2_GUNNER_MACHINEGUN_5
Definition: q_shared.h:721
EV_ITEM_RESPAWN
@ EV_ITEM_RESPAWN
Definition: q_shared.h:1132
cl_testlights
cvar_t * cl_testlights
Definition: cl_view.c:36
clightstyle_t::map
float map[MAX_QPATH]
Definition: cl_fx.c:44
MZ_BLASTER2
#define MZ_BLASTER2
Definition: q_shared.h:659
dl_skin
@ dl_skin
Definition: client.h:196
MZ2_CARRIER_RAILGUN
#define MZ2_CARRIER_RAILGUN
Definition: q_shared.h:833
usercmd_s::upmove
short upmove
Definition: q_shared.h:522
client_state_t::predicted_step_time
unsigned predicted_step_time
Definition: client.h:110
VID_Init
void VID_Init(void)
Definition: vid_dll.c:745
MZ_BFG
#define MZ_BFG
Definition: q_shared.h:644
SetStringHighBit
void SetStringHighBit(char *s)
Definition: cl_inv.c:55
r_particles
particle_t r_particles[MAX_PARTICLES]
Definition: cl_view.c:51
IN_DownDown
void IN_DownDown(void)
Definition: cl_input.c:147
MAX_CONFIGSTRINGS
#define MAX_CONFIGSTRINGS
Definition: q_shared.h:1119
MZ2_WIDOW_BLASTER_20
#define MZ2_WIDOW_BLASTER_20
Definition: q_shared.h:859
svc_disconnect
@ svc_disconnect
Definition: qcommon.h:233
MZ2_WIDOW_BLASTER_40
#define MZ2_WIDOW_BLASTER_40
Definition: q_shared.h:857
MZ2_FLOAT_BLASTER_1
#define MZ2_FLOAT_BLASTER_1
Definition: q_shared.h:763
particle_t::origin
vec3_t origin
Definition: ref.h:91
svc_serverdata
@ svc_serverdata
Definition: qcommon.h:238
MZ2_TANK_ROCKET_2
#define MZ2_TANK_ROCKET_2
Definition: q_shared.h:693
name
cvar_t * name
Definition: cl_main.c:79
cl_mod_powerscreen
struct model_s * cl_mod_powerscreen
Definition: cl_tent.c:107
MAX_EDICTS
#define MAX_EDICTS
Definition: q_shared.h:87
TE_SCREEN_SPARKS
@ TE_SCREEN_SPARKS
Definition: q_shared.h:923
clightstyle_t::value
float value[3]
Definition: cl_fx.c:43
client_state_t::image_precache
struct image_s * image_precache[MAX_IMAGES]
Definition: client.h:167
NET_Config
void NET_Config(qboolean multiplayer)
Definition: net_wins.c:695
MZ2_SOLDIER_BLASTER_7
#define MZ2_SOLDIER_BLASTER_7
Definition: q_shared.h:777
netchan_t::remote_address
netadr_t remote_address
Definition: qcommon.h:593
TE_PLASMA_EXPLOSION
@ TE_PLASMA_EXPLOSION
Definition: q_shared.h:939
CL_ColorExplosionParticles
void CL_ColorExplosionParticles(vec3_t org, int color, int run)
Definition: cl_newfx.c:1156
CL_ParseLaser
void CL_ParseLaser(int colors)
Definition: cl_tent.c:528
refexport_t::BeginRegistration
void(* BeginRegistration)(char *map)
Definition: ref.h:157
CL_ClearEffects
void CL_ClearEffects(void)
Definition: cl_fx.c:2301
CL_FixUpGender
void CL_FixUpGender(void)
Definition: cl_main.c:1053
lightstyle_t
Definition: ref.h:96
precache_check
int precache_check
Definition: cl_main.c:1105
clientinfo_t::skin
struct image_s * skin
Definition: client.h:75
MZ2_SOLDIER_BLASTER_3
#define MZ2_SOLDIER_BLASTER_3
Definition: q_shared.h:765
MZ2_SOLDIER_BLASTER_1
#define MZ2_SOLDIER_BLASTER_1
Definition: q_shared.h:710
TE_WIDOWSPLASH
@ TE_WIDOWSPLASH
Definition: q_shared.h:964
MZ2_MAKRON_BLASTER_14
#define MZ2_MAKRON_BLASTER_14
Definition: q_shared.h:799
VectorAdd
#define VectorAdd(a, b, c)
Definition: q_shared.h:164
connstate_t
connstate_t
Definition: client.h:184
MZ2_GUNNER_MACHINEGUN_7
#define MZ2_GUNNER_MACHINEGUN_7
Definition: q_shared.h:723
s
static fixed16_t s
Definition: r_scan.c:30
MAX_MSGLEN
#define MAX_MSGLEN
Definition: qcommon.h:544
MZ_TRACKER
#define MZ_TRACKER
Definition: q_shared.h:660
netadr_t::type
netadrtype_t type
Definition: qcommon.h:553
SCR_AddDirtyPoint
void SCR_AddDirtyPoint(int x, int y)
Definition: cl_scrn.c:669
Con_Init
void Con_Init(void)
Definition: console.c:305
y
GLint y
Definition: qgl_win.c:115
CL_Stop_f
void CL_Stop_f(void)
Definition: cl_main.c:134
MZ2_BOSS2_MACHINEGUN_L5
#define MZ2_BOSS2_MACHINEGUN_L5
Definition: q_shared.h:757
svc_temp_entity
@ svc_temp_entity
Definition: qcommon.h:227
MZ2_TANK_BLASTER_3
#define MZ2_TANK_BLASTER_3
Definition: q_shared.h:672
re
refexport_t re
Definition: vid_dll.c:32
frame_t::playerstate
player_state_t playerstate
Definition: client.h:50
M_Menu_LoadGame_f
void M_Menu_LoadGame_f(void)
Definition: menu.c:2134
IN_LookupDown
void IN_LookupDown(void)
Definition: cl_input.c:157
entity_state_s::skinnum
int skinnum
Definition: q_shared.h:1155
CL_ParseServerData
void CL_ParseServerData(void)
Definition: cl_parse.c:298
MAX_PARSE_ENTITIES
#define MAX_PARSE_ENTITIES
Definition: client.h:312
client_state_t::predicted_origins
short predicted_origins[CMD_BACKUP][3]
Definition: client.h:107
client_static_t::demofile
FILE * demofile
Definition: client.h:239
viewsize
cvar_t * viewsize
Definition: vid_dll.c:51
U_SKIN16
#define U_SKIN16
Definition: qcommon.h:345
client_state_t::v_right
vec3_t v_right
Definition: client.h:133
IN_ForwardUp
void IN_ForwardUp(void)
Definition: cl_input.c:154
VectorCopy
#define VectorCopy(a, b)
Definition: q_shared.h:165
IN_KLookDown
void IN_KLookDown(void)
Definition: cl_input.c:143
INSTANT_PARTICLE
#define INSTANT_PARTICLE
Definition: client.h:376
clientinfo_t::weaponmodel
struct model_s * weaponmodel[MAX_CLIENTWEAPONMODELS]
Definition: client.h:79
MZ2_MAKRON_BLASTER_1
#define MZ2_MAKRON_BLASTER_1
Definition: q_shared.h:786
MZ2_WIDOW2_BEAM_SWEEP_8
#define MZ2_WIDOW2_BEAM_SWEEP_8
Definition: q_shared.h:893
MZ2_JORG_MACHINEGUN_R2
#define MZ2_JORG_MACHINEGUN_R2
Definition: q_shared.h:811
S_BeginRegistration
void S_BeginRegistration(void)
Definition: snd_dma.c:293
netchan_t::outgoing_sequence
int outgoing_sequence
Definition: qcommon.h:603
CL_CreateCmd
usercmd_t CL_CreateCmd(void)
Definition: cl_input.c:378
refdef_t::lightstyles
lightstyle_t * lightstyles
Definition: ref.h:114
CM_LoadMap
cmodel_t * CM_LoadMap(char *name, qboolean clientload, unsigned *checksum)
Definition: cmodel.c:548
client_static_t::download
FILE * download
Definition: client.h:229
MZ2_SOLDIER_MACHINEGUN_8
#define MZ2_SOLDIER_MACHINEGUN_8
Definition: q_shared.h:782
CL_CheckPredictionError
void CL_CheckPredictionError(void)
Definition: cl_pred.c:29
refexport_t::EndWorldRenderpass
void(* EndWorldRenderpass)(void)
Definition: ref.h:183
IN_LeftDown
void IN_LeftDown(void)
Definition: cl_input.c:149
MZ2_WIDOW_BLASTER_SWEEP8
#define MZ2_WIDOW_BLASTER_SWEEP8
Definition: q_shared.h:849
refdef_t::particles
particle_t * particles
Definition: ref.h:123
client_state_t::parse_entities
int parse_entities
Definition: client.h:102
TE_LASER_SPARKS
@ TE_LASER_SPARKS
Definition: q_shared.h:926
cl_mod_explo4_big
struct model_s * cl_mod_explo4_big
Definition: cl_tent.c:117
TE_BOSSTPORT
@ TE_BOSSTPORT
Definition: q_shared.h:933
MZ2_WIDOW_RUN_3
#define MZ2_WIDOW_RUN_3
Definition: q_shared.h:871
MZ2_WIDOW_BLASTER_0
#define MZ2_WIDOW_BLASTER_0
Definition: q_shared.h:861
TE_WELDING_SPARKS
@ TE_WELDING_SPARKS
Definition: q_shared.h:936
MZ2_WIDOW_BLASTER_10L
#define MZ2_WIDOW_BLASTER_10L
Definition: q_shared.h:862
vec3_origin
vec3_t vec3_origin
Definition: q_shared.c:24
MSG_ReadLong
int MSG_ReadLong(sizebuf_t *msg_read)
Definition: common.c:731
dl_model
@ dl_model
Definition: client.h:194
MZ2_MAKRON_BLASTER_5
#define MZ2_MAKRON_BLASTER_5
Definition: q_shared.h:790
vrect_s::width
int width
Definition: vid.h:24
particle_s::colorvel
float colorvel
Definition: client.h:367
client_state_t::sound_prepped
qboolean sound_prepped
Definition: client.h:99
MZ2_INFANTRY_MACHINEGUN_13
#define MZ2_INFANTRY_MACHINEGUN_13
Definition: q_shared.h:708
usercmd_s
Definition: q_shared.h:517
refdef_t::num_entities
int num_entities
Definition: ref.h:116
refexport_t::SetSky
void(* SetSky)(char *name, float rotate, vec3_t axis)
Definition: ref.h:161
DISPLAY_ITEMS
#define DISPLAY_ITEMS
Definition: cl_inv.c:66
MZ2_MAKRON_BLASTER_6
#define MZ2_MAKRON_BLASTER_6
Definition: q_shared.h:791
up
static vec3_t up
Definition: p_view.c:29
TE_GREENBLOOD
@ TE_GREENBLOOD
Definition: q_shared.h:937
MZ2_JORG_MACHINEGUN_L3
#define MZ2_JORG_MACHINEGUN_L3
Definition: q_shared.h:806
IN_UseUp
void IN_UseUp(void)
Definition: cl_input.c:175
CL_AddDLights
void CL_AddDLights(void)
Definition: cl_fx.c:812
CHAN_WEAPON
#define CHAN_WEAPON
Definition: q_shared.h:984
edict_s::style
int style
Definition: g_local.h:1108
r_numdlights
int r_numdlights
Definition: cl_view.c:44
client_static_t::state
connstate_t state
Definition: client.h:204
SCR_FinishCinematic
void SCR_FinishCinematic(void)
Definition: cl_cin.c:198
TE_BLUEHYPERBLASTER
@ TE_BLUEHYPERBLASTER
Definition: q_shared.h:938
IN_LookdownUp
void IN_LookdownUp(void)
Definition: cl_input.c:160
MZ2_BOSS2_MACHINEGUN_R5
#define MZ2_BOSS2_MACHINEGUN_R5
Definition: q_shared.h:821
client_state_t::cmd
usercmd_t cmd
Definition: client.h:104
NS_CLIENT
@ NS_CLIENT
Definition: qcommon.h:549
MSG_ReadString
char * MSG_ReadString(sizebuf_t *msg_read)
Definition: common.c:773
NET_GetPacket
qboolean NET_GetPacket(netsrc_t sock, netadr_t *net_from, sizebuf_t *net_message)
Definition: net_wins.c:336
MZ_PHALANX
#define MZ_PHALANX
Definition: q_shared.h:651
netchan_t::last_received
int last_received
Definition: qcommon.h:590
FS_Gamedir
char * FS_Gamedir(void)
Definition: files.c:559
TE_BFG_LASER
@ TE_BFG_LASER
Definition: q_shared.h:934
dlight_t
Definition: ref.h:82
svc_strings
char * svc_strings[256]
Definition: cl_parse.c:24
svc_configstring
@ svc_configstring
Definition: qcommon.h:239
SHORT2ANGLE
#define SHORT2ANGLE(x)
Definition: q_shared.h:1093
MZ2_BOSS2_MACHINEGUN_R3
#define MZ2_BOSS2_MACHINEGUN_R3
Definition: q_shared.h:819
MZ2_INFANTRY_MACHINEGUN_1
#define MZ2_INFANTRY_MACHINEGUN_1
Definition: q_shared.h:696
cl_timedemo
cvar_t * cl_timedemo
Definition: cl_main.c:61
entity_s
Definition: ref.h:49
CL_ItemRespawnParticles
void CL_ItemRespawnParticles(vec3_t org)
Definition: cl_fx.c:1119
cl_sustain::org
vec3_t org
Definition: client.h:334
netadr_t::port
unsigned short port
Definition: qcommon.h:558
CDAudio_Init
int CDAudio_Init(void)
Definition: cd_win.c:437
edict_s::flags
int flags
Definition: g_local.h:1002
MZ_ROCKET
#define MZ_ROCKET
Definition: q_shared.h:639
MZ2_TANK_MACHINEGUN_2
#define MZ2_TANK_MACHINEGUN_2
Definition: q_shared.h:674
usercmd_s::angles
short angles[3]
Definition: q_shared.h:521
CL_AddNetgraph
void CL_AddNetgraph(void)
Definition: cl_scrn.c:96
RF_FULLBRIGHT
#define RF_FULLBRIGHT
Definition: q_shared.h:602
clientinfo_t
Definition: client.h:71
pm_airaccelerate
float pm_airaccelerate
Definition: pmove.c:57
MSG_ReadData
void MSG_ReadData(sizebuf_t *msg_read, void *data, int len)
Definition: common.c:874
pmove_t::s
pmove_state_t s
Definition: q_shared.h:532
client_static_t::frametime
float frametime
Definition: client.h:209
MZ2_DAEDALUS_BLASTER
#define MZ2_DAEDALUS_BLASTER
Definition: q_shared.h:831
MAX_SOUNDS
#define MAX_SOUNDS
Definition: q_shared.h:90
M_PushMenu
void M_PushMenu(void(*draw)(void), const char *(*key)(int k))
Definition: menu.c:89
client_state_t::inventory
int inventory[MAX_ITEMS]
Definition: client.h:139
MZ2_TANK_MACHINEGUN_19
#define MZ2_TANK_MACHINEGUN_19
Definition: q_shared.h:691
M_Menu_PlayerConfig_f
void M_Menu_PlayerConfig_f(void)
Definition: menu.c:3886
cl_testentities
cvar_t * cl_testentities
Definition: cl_view.c:35
cl_sfx_footsteps
struct sfx_s * cl_sfx_footsteps[4]
Definition: cl_tent.c:97
Cbuf_Execute
void Cbuf_Execute(void)
Definition: cmd.c:194
VectorMA
void VectorMA(vec3_t veca, float scale, vec3_t vecb, vec3_t vecc)
Definition: q_shared.c:719
pmove_t::cmd
usercmd_t cmd
Definition: q_shared.h:535
NA_BROADCAST_IPX
@ NA_BROADCAST_IPX
Definition: qcommon.h:547
log_stats_file
FILE * log_stats_file
Definition: common.c:38
TE_TRACKER_EXPLOSION
@ TE_TRACKER_EXPLOSION
Definition: q_shared.h:959
TE_BLASTER
@ TE_BLASTER
Definition: q_shared.h:913
cl_mod_grapple_cable
struct model_s * cl_mod_grapple_cable
Definition: cl_tent.c:103
SCR_CenterPrint
void SCR_CenterPrint(char *str)
Definition: cl_scrn.c:201
MZ2_WIDOW2_BEAMER_5
#define MZ2_WIDOW2_BEAMER_5
Definition: q_shared.h:885
PMF_ON_GROUND
#define PMF_ON_GROUND
Definition: q_shared.h:483
keynames
keyname_t keynames[]
Definition: keys.c:53
MZ2_SUPERTANK_MACHINEGUN_6
#define MZ2_SUPERTANK_MACHINEGUN_6
Definition: q_shared.h:748
MZ2_BOSS2_MACHINEGUN_L2
#define MZ2_BOSS2_MACHINEGUN_L2
Definition: q_shared.h:754
M_Menu_Video_f
void M_Menu_Video_f(void)
Definition: menu.c:1414
cl_predict
cvar_t * cl_predict
Definition: cl_main.c:46
refdef_t::fov_x
float fov_x
Definition: ref.h:105
MAX_SKINNAME
#define MAX_SKINNAME
Definition: qfiles.h:93
Com_Quit
void Com_Quit(void)
Definition: common.c:235
clientinfo_t::name
char name[MAX_QPATH]
Definition: client.h:73
IN_Init
void IN_Init(void)
Definition: in_win.c:339
MZ2_INFANTRY_MACHINEGUN_12
#define MZ2_INFANTRY_MACHINEGUN_12
Definition: q_shared.h:707
EV_FALLSHORT
@ EV_FALLSHORT
Definition: q_shared.h:1134
MZ2_TANK_MACHINEGUN_7
#define MZ2_TANK_MACHINEGUN_7
Definition: q_shared.h:679
TE_DEBUGTRAIL
@ TE_DEBUGTRAIL
Definition: q_shared.h:946
refdef_t::fov_y
float fov_y
Definition: ref.h:105
env_suf
static const char * env_suf[6]
Definition: cl_main.c:1118
entity_state_s::modelindex
int modelindex
Definition: q_shared.h:1152
entity_state_s::modelindex2
int modelindex2
Definition: q_shared.h:1153
TE_GUNSHOT
@ TE_GUNSHOT
Definition: q_shared.h:911
particle_t::color
int color
Definition: ref.h:92
client_state_t::configstrings
char configstrings[MAX_CONFIGSTRINGS][MAX_QPATH]
Definition: client.h:158
Netchan_Transmit
void Netchan_Transmit(netchan_t *chan, int length, byte *data)
Definition: net_chan.c:213
CL_FireEntityEvents
void CL_FireEntityEvents(frame_t *frame)
Definition: cl_ents.c:639
cl_sustain::dir
vec3_t dir
Definition: client.h:335
net_message_buffer
byte net_message_buffer[MAX_MSGLEN]
Definition: net_chan.c:83
sizebuf_s::cursize
int cursize
Definition: qcommon.h:98
MZ2_GUNNER_GRENADE_2
#define MZ2_GUNNER_GRENADE_2
Definition: q_shared.h:726
cdlight_t::minlight
float minlight
Definition: client.h:303
Netchan_OutOfBandPrint
void Netchan_OutOfBandPrint(int net_socket, netadr_t adr, char *format,...)
Definition: net_chan.c:132
Cvar_Set
cvar_t * Cvar_Set(char *var_name, char *value)
Definition: cvar.c:278
dmdl_t::ofs_skins
int ofs_skins
Definition: qfiles.h:153
MZ2_WIDOW_BLASTER_70
#define MZ2_WIDOW_BLASTER_70
Definition: q_shared.h:854
TE_FLECHETTE
@ TE_FLECHETTE
Definition: q_shared.h:967
Com_DPrintf
void Com_DPrintf(char *fmt,...)
Definition: common.c:157
netadr_t
Definition: qcommon.h:551
U_FRAME8
#define U_FRAME8
Definition: qcommon.h:319
Pmove
void Pmove(pmove_t *pmove)
Definition: pmove.c:1240
console_t::ormask
int ormask
Definition: console.h:37
CL_LogoutEffect
void CL_LogoutEffect(vec3_t org, int type)
Definition: cl_fx.c:1074
MZ2_INFANTRY_MACHINEGUN_9
#define MZ2_INFANTRY_MACHINEGUN_9
Definition: q_shared.h:704
S_StopAllSounds
void S_StopAllSounds(void)
Definition: snd_dma.c:785
svc_packetentities
@ svc_packetentities
Definition: qcommon.h:244
cl_sfx_ric1
struct sfx_s * cl_sfx_ric1
Definition: cl_tent.c:84
MZ2_SOLDIER_BLASTER_2
#define MZ2_SOLDIER_BLASTER_2
Definition: q_shared.h:711
frame_t::deltaframe
int deltaframe
Definition: client.h:48
cl_mod_explode
struct model_s * cl_mod_explode
Definition: cl_tent.c:99
MZ2_WIDOW_RUN_7
#define MZ2_WIDOW_RUN_7
Definition: q_shared.h:875
usercmd_s::buttons
byte buttons
Definition: q_shared.h:520
IN_CenterView
void IN_CenterView(void)
Definition: cl_input.c:404
CL_BubbleTrail2
void CL_BubbleTrail2(vec3_t start, vec3_t end, int dist)
Definition: cl_newfx.c:388
in_down
kbutton_t in_down
Definition: cl_input.c:62
FS_FreeFile
void FS_FreeFile(void *buffer)
Definition: files.c:437
MZ2_TANK_MACHINEGUN_5
#define MZ2_TANK_MACHINEGUN_5
Definition: q_shared.h:677
EV_FALLFAR
@ EV_FALLFAR
Definition: q_shared.h:1136
client_static_t::key_dest
keydest_t key_dest
Definition: client.h:205
SCR_Init
void SCR_Init(void)
Definition: cl_scrn.c:410
clientinfo_t::icon
struct image_s * icon
Definition: client.h:76
refdef_t::dlights
dlight_t * dlights
Definition: ref.h:120
CL_ParsePacketEntities
void CL_ParsePacketEntities(frame_t *oldframe, frame_t *newframe)
Definition: cl_ents.c:388
MZ2_TANK_MACHINEGUN_11
#define MZ2_TANK_MACHINEGUN_11
Definition: q_shared.h:683
MSG_ReadPos
void MSG_ReadPos(sizebuf_t *msg_read, vec3_t pos)
Definition: common.c:818
client_static_t::downloadname
char downloadname[MAX_OSPATH]
Definition: client.h:231
m_keyfunc
const char *(* m_keyfunc)(int key)
Definition: menu.c:64
refdef_t::width
int width
Definition: ref.h:104
MZ2_WIDOW2_BEAM_SWEEP_3
#define MZ2_WIDOW2_BEAM_SWEEP_3
Definition: q_shared.h:888
CL_RegisterTEntModels
void CL_RegisterTEntModels(void)
Definition: cl_tent.c:172
pmove_state_t::origin
short origin[3]
Definition: q_shared.h:498
ca_connected
@ ca_connected
Definition: client.h:188
MZ2_WIDOW_BLASTER_10
#define MZ2_WIDOW_BLASTER_10
Definition: q_shared.h:860
MZ2_WIDOW_RUN_4
#define MZ2_WIDOW_RUN_4
Definition: q_shared.h:872
active_particles
cparticle_t * active_particles
Definition: cl_fx.c:885
MZ2_WIDOW2_BEAM_SWEEP_9
#define MZ2_WIDOW2_BEAM_SWEEP_9
Definition: q_shared.h:894
m_entersound
qboolean m_entersound
Definition: menu.c:60
ALIAS_VERSION
#define ALIAS_VERSION
Definition: qfiles.h:87
cdlight_t::origin
vec3_t origin
Definition: client.h:299
refexport_t::DrawChar
void(* DrawChar)(int x, int y, int c)
Definition: ref.h:169
MZ2_TURRET_MACHINEGUN
#define MZ2_TURRET_MACHINEGUN
Definition: q_shared.h:827
S_StartLocalSound
void S_StartLocalSound(char *sound)
Definition: snd_dma.c:738
MZ2_SUPERTANK_MACHINEGUN_3
#define MZ2_SUPERTANK_MACHINEGUN_3
Definition: q_shared.h:745
U_NUMBER16
#define U_NUMBER16
Definition: qcommon.h:325
TE_TELEPORT_EFFECT
@ TE_TELEPORT_EFFECT
Definition: q_shared.h:960
lightstyle_t::white
float white
Definition: ref.h:99
svc_download
@ svc_download
Definition: qcommon.h:242
top
GLdouble GLdouble GLdouble top
Definition: qgl_win.c:159
Com_Printf
void Com_Printf(char *fmt,...)
Definition: common.c:104
CL_SetLightstyle
void CL_SetLightstyle(int i)
Definition: cl_fx.c:92
NET_CompareAdr
qboolean NET_CompareAdr(netadr_t a, netadr_t b)
Definition: net_wins.c:104
right
GLdouble right
Definition: qgl_win.c:159
MZ2_GUNNER_GRENADE_1
#define MZ2_GUNNER_GRENADE_1
Definition: q_shared.h:725
centity_t::current
entity_state_t current
Definition: client.h:58
cl_sfx_ric3
struct sfx_s * cl_sfx_ric3
Definition: cl_tent.c:86
svc_reconnect
@ svc_reconnect
Definition: qcommon.h:234
TE_STEAM
@ TE_STEAM
Definition: q_shared.h:952
MZ2_JORG_MACHINEGUN_L1
#define MZ2_JORG_MACHINEGUN_L1
Definition: q_shared.h:804
CS_LIGHTS
#define CS_LIGHTS
Definition: q_shared.h:1115
MZ2_WIDOW_BLASTER_60L
#define MZ2_WIDOW_BLASTER_60L
Definition: q_shared.h:867
pmove_t::viewangles
vec3_t viewangles
Definition: q_shared.h:542
svc_spawnbaseline
@ svc_spawnbaseline
Definition: qcommon.h:240
Sys_Milliseconds
int Sys_Milliseconds(void)
Definition: q_shwin.c:120
refdef_t::entities
entity_t * entities
Definition: ref.h:117
CHAN_BODY
#define CHAN_BODY
Definition: q_shared.h:987
TE_LIGHTNING
@ TE_LIGHTNING
Definition: q_shared.h:945
in_right
kbutton_t in_right
Definition: cl_input.c:59
MSG_ReadAngle
float MSG_ReadAngle(sizebuf_t *msg_read)
Definition: common.c:825
clc_stringcmd
@ clc_stringcmd
Definition: qcommon.h:260
MZ2_WIDOW2_BEAM_SWEEP_5
#define MZ2_WIDOW2_BEAM_SWEEP_5
Definition: q_shared.h:890
refdef_t::x
int x
Definition: ref.h:104
IDALIASHEADER
#define IDALIASHEADER
Definition: qfiles.h:86
M_Menu_Quit_f
void M_Menu_Quit_f(void)
Definition: menu.c:3957
cls
client_static_t cls
Definition: cl_main.c:90
CL_ParseNuke
void CL_ParseNuke(void)
Definition: cl_tent.c:652
NUMVERTEXNORMALS
#define NUMVERTEXNORMALS
Definition: qcommon.h:792
MZ2_CARRIER_MACHINEGUN_L2
#define MZ2_CARRIER_MACHINEGUN_L2
Definition: q_shared.h:838
CL_PMpointcontents
int CL_PMpointcontents(vec3_t point)
Definition: cl_pred.c:163
V_Gun_Model_f
void V_Gun_Model_f(void)
Definition: cl_view.c:401
svc_muzzleflash2
@ svc_muzzleflash2
Definition: qcommon.h:226
Key_ClearStates
void Key_ClearStates(void)
Definition: keys.c:935
TEXTURE_CNT
#define TEXTURE_CNT
Definition: cl_main.c:1116
MZ2_SUPERTANK_MACHINEGUN_5
#define MZ2_SUPERTANK_MACHINEGUN_5
Definition: q_shared.h:747
CL_BlasterParticles2
void CL_BlasterParticles2(vec3_t org, vec3_t dir, unsigned int color)
Definition: cl_newfx.c:1238
crand
float crand(void)
Definition: common.c:1380
allow_download_sounds
cvar_t * allow_download_sounds
Definition: sv_main.c:40
CL_AddBeams
void CL_AddBeams(void)
Definition: cl_tent.c:1206
clc_move
@ clc_move
Definition: qcommon.h:258
frame_t
Definition: client.h:43
Cvar_VariableString
char * Cvar_VariableString(char *var_name)
Definition: cvar.c:79
CL_BigTeleportParticles
void CL_BigTeleportParticles(vec3_t org)
Definition: cl_fx.c:1195
MSG_WriteDeltaEntity
void MSG_WriteDeltaEntity(entity_state_t *from, entity_state_t *to, sizebuf_t *msg, qboolean force, qboolean newentity)
Definition: common.c:483
CL_BubbleTrail
void CL_BubbleTrail(vec3_t start, vec3_t end)
Definition: cl_fx.c:1768
MZ2_SUPERTANK_MACHINEGUN_1
#define MZ2_SUPERTANK_MACHINEGUN_1
Definition: q_shared.h:743
V_TestLights
void V_TestLights(void)
Definition: cl_view.c:215
CL_BFGExplosionParticles
void CL_BFGExplosionParticles(vec3_t org)
Definition: cl_fx.c:2105
MZ2_FLYER_BLASTER_1
#define MZ2_FLYER_BLASTER_1
Definition: q_shared.h:732
MZ_RESPAWN
#define MZ_RESPAWN
Definition: q_shared.h:643
client_state_t::surpressCount
int surpressCount
Definition: client.h:117
r_dlights
dlight_t r_dlights[MAX_DLIGHTS]
Definition: cl_view.c:45
svc_sound
@ svc_sound
Definition: qcommon.h:235
r_numparticles
int r_numparticles
Definition: cl_view.c:50
IN_RightDown
void IN_RightDown(void)
Definition: cl_input.c:151
keybindings
char * keybindings[256]
Definition: keys.c:40
CL_LoadClientinfo
void CL_LoadClientinfo(clientinfo_t *ci, char *s)
Definition: cl_parse.c:380
MZ2_WIDOW_BLASTER_50
#define MZ2_WIDOW_BLASTER_50
Definition: q_shared.h:856
CL_AddParticles
void CL_AddParticles(void)
Definition: cl_fx.c:2190
r_lightstyles
lightstyle_t r_lightstyles[MAX_LIGHTSTYLES]
Definition: cl_view.c:53
client_static_t::downloadtempname
char downloadtempname[MAX_OSPATH]
Definition: client.h:230
Miniaudio_Init
void Miniaudio_Init(void)
Definition: snd_miniaudio.c:195
MZ2_MAKRON_BFG
#define MZ2_MAKRON_BFG
Definition: q_shared.h:785
key_message
@ key_message
Definition: client.h:200
free_particles
cparticle_t * free_particles
Definition: cl_fx.c:885
MZ2_WIDOW_RUN_5
#define MZ2_WIDOW_RUN_5
Definition: q_shared.h:873
CL_ParticleEffect3
void CL_ParticleEffect3(vec3_t org, vec3_t dir, int color, int count)
Definition: cl_fx.c:995
frame_t::servertime
int servertime
Definition: client.h:47
M_Menu_Game_f
void M_Menu_Game_f(void)
Definition: menu.c:2030
noipx
static cvar_t * noipx
Definition: net_wins.c:44
MAX_LIGHTSTYLES
#define MAX_LIGHTSTYLES
Definition: q_shared.h:88
CS_AIRACCEL
#define CS_AIRACCEL
Definition: q_shared.h:1108
pmove_t::pointcontents
int(* pointcontents)(vec3_t point)
Definition: q_shared.h:553
MZ_HEATBEAM
#define MZ_HEATBEAM
Definition: q_shared.h:658
TE_MONSTER_HEATBEAM
@ TE_MONSTER_HEATBEAM
Definition: q_shared.h:951
cl_sfx_spark6
struct sfx_s * cl_sfx_spark6
Definition: cl_tent.c:89
svc_stufftext
@ svc_stufftext
Definition: qcommon.h:237
UPDATE_MASK
#define UPDATE_MASK
Definition: qcommon.h:209
cl_entities
centity_t cl_entities[MAX_EDICTS]
Definition: cl_main.c:93
IN_LeftUp
void IN_LeftUp(void)
Definition: cl_input.c:150
MZ2_SUPERTANK_MACHINEGUN_4
#define MZ2_SUPERTANK_MACHINEGUN_4
Definition: q_shared.h:746
entity_state_s::angles
vec3_t angles
Definition: q_shared.h:1150
MZ2_SOLDIER_MACHINEGUN_4
#define MZ2_SOLDIER_MACHINEGUN_4
Definition: q_shared.h:770
scr_vrect
vrect_t scr_vrect
Definition: cl_scrn.c:46
cl
client_state_t cl
Definition: cl_main.c:91
M_ForceMenuOff
void M_ForceMenuOff(void)
Definition: menu.c:123
explosion_t::frames
int frames
Definition: cl_tent.c:34
U_ORIGIN3
#define U_ORIGIN3
Definition: qcommon.h:326
PORT_SERVER
#define PORT_SERVER
Definition: qcommon.h:203
kbutton_t::downtime
unsigned downtime
Definition: client.h:472
CL_DownloadFileName
void CL_DownloadFileName(char *dest, int destlen, char *fn)
Definition: cl_parse.c:53
sys_frame_time
unsigned sys_frame_time
Definition: sys_win.c:49
CL_ParseSteam
void CL_ParseSteam(void)
Definition: cl_tent.c:557
MZ2_SOLDIER_SHOTGUN_2
#define MZ2_SOLDIER_SHOTGUN_2
Definition: q_shared.h:713
IN_StrafeDown
void IN_StrafeDown(void)
Definition: cl_input.c:168
cl_lightstyle
clightstyle_t cl_lightstyle[MAX_LIGHTSTYLES]
Definition: cl_fx.c:47
pmove_state_t::pm_flags
byte pm_flags
Definition: q_shared.h:500
U_SOLID
#define U_SOLID
Definition: qcommon.h:347
ERR_DISCONNECT
#define ERR_DISCONNECT
Definition: q_shared.h:106
U_MODEL3
#define U_MODEL3
Definition: qcommon.h:339
MZ2_TANK_MACHINEGUN_18
#define MZ2_TANK_MACHINEGUN_18
Definition: q_shared.h:690
CL_AddLasers
void CL_AddLasers(void)
Definition: cl_tent.c:1702
MAX_IMAGES
#define MAX_IMAGES
Definition: q_shared.h:91
dlight_t::intensity
float intensity
Definition: ref.h:86
PARTICLE_GRAVITY
#define PARTICLE_GRAVITY
Definition: client.h:373
MZ2_MAKRON_BLASTER_4
#define MZ2_MAKRON_BLASTER_4
Definition: q_shared.h:789
TE_BULLET_SPARKS
@ TE_BULLET_SPARKS
Definition: q_shared.h:925
MZ2_GLADIATOR_RAILGUN_1
#define MZ2_GLADIATOR_RAILGUN_1
Definition: q_shared.h:737
vec3_t
vec_t vec3_t[3]
Definition: q_shared.h:134
S_Init
void S_Init(void)
Definition: snd_dma.c:116
Com_sprintf
void Com_sprintf(char *dest, int size, char *fmt,...)
Definition: q_shared.c:1223
MZ2_JORG_MACHINEGUN_R5
#define MZ2_JORG_MACHINEGUN_R5
Definition: q_shared.h:814
cl_playerbeams
beam_t cl_playerbeams[MAX_BEAMS]
Definition: cl_tent.c:59
IN_AttackUp
void IN_AttackUp(void)
Definition: cl_input.c:172
MZ2_JORG_MACHINEGUN_L5
#define MZ2_JORG_MACHINEGUN_L5
Definition: q_shared.h:808
vidref_val
int vidref_val
Definition: cl_ents.c:28
M_Main_Key
const char * M_Main_Key(int key)
Definition: menu.c:440
MZ2_TANK_BLASTER_1
#define MZ2_TANK_BLASTER_1
Definition: q_shared.h:670
refexport_t::RenderFrame
void(* RenderFrame)(refdef_t *fd)
Definition: ref.h:164
CL_ParticleEffect
void CL_ParticleEffect(vec3_t org, vec3_t dir, int color, int count)
Definition: cl_fx.c:916
pmove_t
Definition: q_shared.h:529
MZ2_SOLDIER_SHOTGUN_5
#define MZ2_SOLDIER_SHOTGUN_5
Definition: q_shared.h:772
svc_print
@ svc_print
Definition: qcommon.h:236
MZ_ETF_RIFLE
#define MZ_ETF_RIFLE
Definition: q_shared.h:655
M_Menu_Options_f
void M_Menu_Options_f(void)
Definition: menu.c:1400
numtexinfo
int numtexinfo
Definition: cmodel.c:68
dmdl_t
Definition: qfiles.h:137
CL_AddPlayerBeams
void CL_AddPlayerBeams(void)
Definition: cl_tent.c:1346
entity_s::angles
float angles[3]
Definition: ref.h:52
MZ2_JORG_MACHINEGUN_R3
#define MZ2_JORG_MACHINEGUN_R3
Definition: q_shared.h:812
cl_mod_lightning
struct model_s * cl_mod_lightning
Definition: cl_tent.c:114
particle_s::color
float color
Definition: client.h:366
MZ2_MAKRON_BLASTER_3
#define MZ2_MAKRON_BLASTER_3
Definition: q_shared.h:788
MZ2_SOLDIER_MACHINEGUN_2
#define MZ2_SOLDIER_MACHINEGUN_2
Definition: q_shared.h:715
MZ2_BOSS2_ROCKET_4
#define MZ2_BOSS2_ROCKET_4
Definition: q_shared.h:761
MZ2_GUNNER_MACHINEGUN_8
#define MZ2_GUNNER_MACHINEGUN_8
Definition: q_shared.h:724
player_state_t::stats
short stats[MAX_STATS]
Definition: q_shared.h:1196
TE_BLASTER2
@ TE_BLASTER2
Definition: q_shared.h:942
MZ_SSHOTGUN
#define MZ_SSHOTGUN
Definition: q_shared.h:645
count
GLint GLsizei count
Definition: qgl_win.c:128
cl_sfx_rockexp
struct sfx_s * cl_sfx_rockexp
Definition: cl_tent.c:92
MZ2_MAKRON_BLASTER_11
#define MZ2_MAKRON_BLASTER_11
Definition: q_shared.h:796
S_StartSound
void S_StartSound(vec3_t origin, int entnum, int entchannel, sfx_t *sfx, float fvol, float attenuation, float timeofs)
Definition: snd_dma.c:655
CL_ParticleSteamEffect
void CL_ParticleSteamEffect(vec3_t org, vec3_t dir, int color, int count, int magnitude)
Definition: cl_newfx.c:749
IN_StrafeUp
void IN_StrafeUp(void)
Definition: cl_input.c:169
explosion_t::light
float light
Definition: cl_tent.c:35
IN_MoveleftDown
void IN_MoveleftDown(void)
Definition: cl_input.c:161
MZ2_FLYER_BLASTER_2
#define MZ2_FLYER_BLASTER_2
Definition: q_shared.h:733
SCR_StopCinematic
void SCR_StopCinematic(void)
Definition: cl_cin.c:153
V_AddLight
void V_AddLight(vec3_t org, float intensity, float r, float g, float b)
Definition: cl_view.c:111
MZ2_MAKRON_BLASTER_12
#define MZ2_MAKRON_BLASTER_12
Definition: q_shared.h:797
vrect_s::y
int y
Definition: vid.h:24
local_server_names
static char local_server_names[MAX_LOCAL_SERVERS][80]
Definition: menu.c:2234
cl_sfx_spark7
struct sfx_s * cl_sfx_spark7
Definition: cl_tent.c:90
client_static_t::netchan
netchan_t netchan
Definition: client.h:224
client_static_t::realtime
int realtime
Definition: client.h:208
in_strafe
kbutton_t in_strafe
Definition: cl_input.c:61
MZ2_SOLDIER_MACHINEGUN_5
#define MZ2_SOLDIER_MACHINEGUN_5
Definition: q_shared.h:773
MZ_BLASTER
#define MZ_BLASTER
Definition: q_shared.h:632
MAX_PARTICLES
#define MAX_PARTICLES
Definition: ref.h:27
cl_lasers
laser_t cl_lasers[MAX_LASERS]
Definition: cl_tent.c:68
CL_ExplosionParticles
void CL_ExplosionParticles(vec3_t org)
Definition: cl_fx.c:1158