icculus quake2 doxygen  1.0 dev
client.h File Reference
#include <math.h>
#include <string.h>
#include <stdarg.h>
#include <stdio.h>
#include <stdlib.h>
#include <ctype.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"

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 INT   int
 
#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 454 of file client.h.

◆ CMD_BACKUP

#define CMD_BACKUP   64

Definition at line 105 of file client.h.

◆ INSTANT_PARTICLE

#define INSTANT_PARTICLE   -10000.0

Definition at line 456 of file client.h.

◆ INT

#define INT   int

Definition at line 27 of file client.h.

◆ MAX_CLIENTWEAPONMODELS

#define MAX_CLIENTWEAPONMODELS   20

Definition at line 89 of file client.h.

◆ MAX_PARSE_ENTITIES

#define MAX_PARSE_ENTITIES   1024

Definition at line 351 of file client.h.

◆ MAX_SUSTAINS

#define MAX_SUSTAINS   32

Definition at line 381 of file client.h.

◆ PARTICLE_GRAVITY

#define PARTICLE_GRAVITY   40

Definition at line 453 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 204 of file client.h.

204  {
206  ca_disconnected, // not talking to a server
207  ca_connecting, // sending request packets to the server
208  ca_connected, // netchan_t established, waiting for svc_serverdata
209  ca_active // game views should be displayed
210 } connstate_t;

◆ dltype_t

enum dltype_t
Enumerator
dl_none 
dl_model 
dl_sound 
dl_skin 
dl_single 

Definition at line 212 of file client.h.

212  {
213  dl_none,
214  dl_model,
215  dl_sound,
216  dl_skin,
217  dl_single
218 } dltype_t; // download type

◆ keydest_t

enum keydest_t
Enumerator
key_game 
key_console 
key_message 
key_menu 

Definition at line 220 of file client.h.

Function Documentation

◆ CL_AddDLights()

void CL_AddDLights ( void  )

Definition at line 912 of file cl_fx.c.

913 {
914  int i;
915  cdlight_t *dl;
916 
917  dl = cl_dlights;
918 
919 //=====
920 //PGM
921  if(vidref_val == VIDREF_GL)
922  {
923  for (i=0 ; i<MAX_DLIGHTS ; i++, dl++)
924  {
925  if (!dl->radius)
926  continue;
927  V_AddLight (dl->origin, dl->radius,
928  dl->color[0], dl->color[1], dl->color[2]);
929  }
930  }
931  else
932  {
933  for (i=0 ; i<MAX_DLIGHTS ; i++, dl++)
934  {
935  if (!dl->radius)
936  continue;
937 
938  // negative light in software. only black allowed
939  if ((dl->color[0] < 0) || (dl->color[1] < 0) || (dl->color[2] < 0))
940  {
941  dl->radius = -(dl->radius);
942  dl->color[0] = 1;
943  dl->color[1] = 1;
944  dl->color[2] = 1;
945  }
946  V_AddLight (dl->origin, dl->radius,
947  dl->color[0], dl->color[1], dl->color[2]);
948  }
949  }
950 //PGM
951 //=====
952 }

Referenced by CL_AddEntities().

◆ CL_AddEntities()

void CL_AddEntities ( void  )

Definition at line 1495 of file cl_ents.c.

1496 {
1497  if (cls.state != ca_active)
1498  return;
1499 
1500  if (cl.time > cl.frame.servertime)
1501  {
1502  if (cl_showclamp->value)
1503  Com_Printf ("high clamp %i\n", cl.time - cl.frame.servertime);
1505  cl.lerpfrac = 1.0;
1506  }
1507  else if (cl.time < cl.frame.servertime - 100)
1508  {
1509  if (cl_showclamp->value)
1510  Com_Printf ("low clamp %i\n", cl.frame.servertime-100 - cl.time);
1511  cl.time = cl.frame.servertime - 100;
1512  cl.lerpfrac = 0;
1513  }
1514  else
1515  cl.lerpfrac = 1.0 - (cl.frame.servertime - cl.time) * 0.01;
1516 
1517  if (cl_timedemo->value)
1518  cl.lerpfrac = 1.0;
1519 
1520 // CL_AddPacketEntities (&cl.frame);
1521 // CL_AddTEnts ();
1522 // CL_AddParticles ();
1523 // CL_AddDLights ();
1524 // CL_AddLightStyles ();
1525 
1526  CL_CalcViewValues ();
1527  // PMM - moved this here so the heat beam has the right values for the vieworg, and can lock the beam to the gun
1529 #if 0
1530  CL_AddProjectiles ();
1531 #endif
1532  CL_AddTEnts ();
1533  CL_AddParticles ();
1534  CL_AddDLights ();
1535  CL_AddLightStyles ();
1536 }

Referenced by V_RenderView().

◆ CL_AddLightStyles()

void CL_AddLightStyles ( void  )

Definition at line 214 of file cl_fx.c.

215 {
216  int i;
217  clightstyle_t *ls;
218 
219  for (i=0,ls=cl_lightstyle ; i<MAX_LIGHTSTYLES ; i++, ls++)
220  V_AddLightStyle (i, ls->value[0], ls->value[1], ls->value[2]);
221 }

Referenced by CL_AddEntities().

◆ CL_AddNetgraph()

void CL_AddNetgraph ( void  )

Definition at line 98 of file cl_scrn.c.

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

Referenced by CL_ParseServerMessage().

◆ CL_AddParticles()

void CL_AddParticles ( void  )

Definition at line 2332 of file cl_fx.c.

2333 {
2334  cparticle_t *p, *next;
2335  float alpha;
2336  float time, time2;
2337  vec3_t org;
2338  int color;
2339  cparticle_t *active, *tail;
2340 
2341  active = NULL;
2342  tail = NULL;
2343 
2344  for (p=active_particles ; p ; p=next)
2345  {
2346  next = p->next;
2347 
2348  // PMM - added INSTANT_PARTICLE handling for heat beam
2349  if (p->alphavel != INSTANT_PARTICLE)
2350  {
2351  time = (cl.time - p->time)*0.001;
2352  alpha = p->alpha + time*p->alphavel;
2353  if (alpha <= 0)
2354  { // faded out
2355  p->next = free_particles;
2356  free_particles = p;
2357  continue;
2358  }
2359  }
2360  else
2361  {
2362  time = 0.0f;
2363  alpha = p->alpha;
2364  }
2365 
2366  p->next = NULL;
2367  if (!tail)
2368  active = tail = p;
2369  else
2370  {
2371  tail->next = p;
2372  tail = p;
2373  }
2374 
2375  if (alpha > 1.0)
2376  alpha = 1;
2377 #ifndef QMAX
2378  color = p->color;
2379 #endif
2380  time2 = time*time;
2381 
2382  org[0] = p->org[0] + p->vel[0]*time + p->accel[0]*time2;
2383  org[1] = p->org[1] + p->vel[1]*time + p->accel[1]*time2;
2384  org[2] = p->org[2] + p->vel[2]*time + p->accel[2]*time2;
2385 
2386  V_AddParticle (org, color, alpha);
2387  // PMM
2388  if (p->alphavel == INSTANT_PARTICLE)
2389  {
2390  p->alphavel = 0.0;
2391  p->alpha = 0.0;
2392  }
2393  }
2394 
2395  active_particles = active;
2396 }

Referenced by CL_AddEntities().

◆ CL_AddTEnts()

void CL_AddTEnts ( void  )

Definition at line 2029 of file cl_tent.c.

2030 {
2031  CL_AddBeams ();
2032  // PMM - draw plasma beams
2033  CL_AddPlayerBeams ();
2034  CL_AddExplosions ();
2035  CL_AddLasers ();
2036  // PMM - set up sustain
2038 }

Referenced by CL_AddEntities().

◆ CL_AllocDlight()

cdlight_t* CL_AllocDlight ( int  key)

Definition at line 249 of file cl_fx.c.

250 {
251  int i;
252  cdlight_t *dl;
253 
254 // first look for an exact key match
255  if (key)
256  {
257  dl = cl_dlights;
258  for (i=0 ; i<MAX_DLIGHTS ; i++, dl++)
259  {
260  if (dl->key == key)
261  {
262  memset (dl, 0, sizeof(*dl));
263  dl->key = key;
264  return dl;
265  }
266  }
267  }
268 
269 // then look for anything else
270  dl = cl_dlights;
271  for (i=0 ; i<MAX_DLIGHTS ; i++, dl++)
272  {
273  if (dl->die < cl.time)
274  {
275  memset (dl, 0, sizeof(*dl));
276  dl->key = key;
277  return dl;
278  }
279  }
280 
281  dl = &cl_dlights[0];
282  memset (dl, 0, sizeof(*dl));
283  dl->key = key;
284  return dl;
285 }

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

◆ CL_BaseMove()

void CL_BaseMove ( usercmd_t cmd)

Definition at line 276 of file cl_input.c.

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

Referenced by CL_CreateCmd().

◆ CL_BfgParticles()

void CL_BfgParticles ( entity_t ent)

Definition at line 2065 of file cl_fx.c.

2066 {
2067  int i;
2068  cparticle_t *p;
2069  float angle;
2070  float sr, sp, sy, cr, cp, cy;
2071  vec3_t forward;
2072  float dist = 64;
2073  vec3_t v;
2074  float ltime;
2075 
2076  if (!avelocities[0][0])
2077  {
2078  for (i=0 ; i<NUMVERTEXNORMALS*3 ; i++)
2079  avelocities[0][i] = (rand()&255) * 0.01;
2080  }
2081 
2082 
2083  ltime = (float)cl.time / 1000.0;
2084  for (i=0 ; i<NUMVERTEXNORMALS ; i++)
2085  {
2086  angle = ltime * avelocities[i][0];
2087  sy = sin(angle);
2088  cy = cos(angle);
2089  angle = ltime * avelocities[i][1];
2090  sp = sin(angle);
2091  cp = cos(angle);
2092  angle = ltime * avelocities[i][2];
2093  sr = sin(angle);
2094  cr = cos(angle);
2095 
2096  forward[0] = cp*cy;
2097  forward[1] = cp*sy;
2098  forward[2] = -sp;
2099 
2100  if (!free_particles)
2101  return;
2102  p = free_particles;
2103  free_particles = p->next;
2104  p->next = active_particles;
2105  active_particles = p;
2106 
2107  p->time = cl.time;
2108 
2109  dist = sin(ltime + i)*64;
2110  p->org[0] = ent->origin[0] + bytedirs[i][0]*dist + forward[0]*BEAMLENGTH;
2111  p->org[1] = ent->origin[1] + bytedirs[i][1]*dist + forward[1]*BEAMLENGTH;
2112  p->org[2] = ent->origin[2] + bytedirs[i][2]*dist + forward[2]*BEAMLENGTH;
2113 
2114  VectorClear (p->vel);
2115  VectorClear (p->accel);
2116 
2117  VectorSubtract (p->org, ent->origin, v);
2118  dist = VectorLength(v) / 90.0;
2119 #ifndef QMAX
2120  p->color = floor (0xd0 + dist * 7);
2121  p->colorvel = 0;
2122 #endif
2123  p->alpha = 1.0 - dist;
2124  p->alphavel = -100;
2125  }
2126 }

Referenced by CL_AddPacketEntities().

◆ CL_BigTeleportParticles()

void CL_BigTeleportParticles ( vec3_t  org)

Definition at line 1313 of file cl_fx.c.

1314 {
1315  int i;
1316  cparticle_t *p;
1317  float angle, dist;
1318  static int colortable[4] = {2*8,13*8,21*8,18*8};
1319 
1320  for (i=0 ; i<4096 ; i++)
1321  {
1322  if (!free_particles)
1323  return;
1324  p = free_particles;
1325  free_particles = p->next;
1326  p->next = active_particles;
1327  active_particles = p;
1328 
1329  p->time = cl.time;
1330 #ifndef QMAX
1331  p->color = colortable[rand()&3];
1332 #endif
1333  angle = M_PI*2*(rand()&1023)/1023.0;
1334  dist = rand()&31;
1335  p->org[0] = org[0] + cos(angle)*dist;
1336  p->vel[0] = cos(angle)*(70+(rand()&63));
1337  p->accel[0] = -cos(angle)*100;
1338 
1339  p->org[1] = org[1] + sin(angle)*dist;
1340  p->vel[1] = sin(angle)*(70+(rand()&63));
1341  p->accel[1] = -sin(angle)*100;
1342 
1343  p->org[2] = org[2] + 8 + (rand()%90);
1344  p->vel[2] = -100 + (rand()&31);
1345  p->accel[2] = PARTICLE_GRAVITY*4;
1346  p->alpha = 1.0;
1347 
1348  p->alphavel = -0.3 / (0.5 + frand()*0.3);
1349  }
1350 }

Referenced by CL_ParseTEnt().

◆ CL_BlasterParticles2()

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

Definition at line 1378 of file cl_newfx.c.

1379 {
1380  int i, j;
1381  cparticle_t *p;
1382  float d;
1383  int count;
1384 
1385  count = 40;
1386  for (i=0 ; i<count ; i++)
1387  {
1388  if (!free_particles)
1389  return;
1390  p = free_particles;
1391  free_particles = p->next;
1392  p->next = active_particles;
1393  active_particles = p;
1394 
1395  p->time = cl.time;
1396 #ifndef QMAX
1397  p->color = color + (rand()&7);
1398 #endif
1399  d = rand()&15;
1400  for (j=0 ; j<3 ; j++)
1401  {
1402  p->org[j] = org[j] + ((rand()&7)-4) + d*dir[j];
1403  p->vel[j] = dir[j] * 30 + crand()*40;
1404  }
1405 
1406  p->accel[0] = p->accel[1] = 0;
1407  p->accel[2] = -PARTICLE_GRAVITY;
1408  p->alpha = 1.0;
1409 
1410  p->alphavel = -1.0 / (0.5 + frand()*0.3);
1411  }
1412 }

Referenced by CL_ParseTEnt().

◆ CL_BlasterTrail()

void CL_BlasterTrail ( vec3_t  start,
vec3_t  end 
)

Definition at line 1403 of file cl_fx.c.

1404 {
1405  vec3_t move;
1406  vec3_t vec;
1407  float len;
1408  int j;
1409  cparticle_t *p;
1410  int dec;
1411 
1412  VectorCopy (start, move);
1413  VectorSubtract (end, start, vec);
1414  len = VectorNormalize (vec);
1415 
1416  dec = 5;
1417  VectorScale (vec, 5, vec);
1418 
1419  // FIXME: this is a really silly way to have a loop
1420  while (len > 0)
1421  {
1422  len -= dec;
1423 
1424  if (!free_particles)
1425  return;
1426  p = free_particles;
1427  free_particles = p->next;
1428  p->next = active_particles;
1429  active_particles = p;
1430  VectorClear (p->accel);
1431 
1432  p->time = cl.time;
1433 
1434  p->alpha = 1.0;
1435  p->alphavel = -1.0 / (0.3+frand()*0.2);
1436 #ifndef QMAX
1437  p->color = 0xe0;
1438 #endif
1439  for (j=0 ; j<3 ; j++)
1440  {
1441  p->org[j] = move[j] + crand();
1442  p->vel[j] = crand()*5;
1443  p->accel[j] = 0;
1444  }
1445 
1446  VectorAdd (move, vec, move);
1447  }
1448 }

Referenced by CL_AddPacketEntities().

◆ CL_BlasterTrail2()

void CL_BlasterTrail2 ( vec3_t  start,
vec3_t  end 
)

Definition at line 1421 of file cl_newfx.c.

1422 {
1423  vec3_t move;
1424  vec3_t vec;
1425  float len;
1426  int j;
1427  cparticle_t *p;
1428  int dec;
1429 
1430  VectorCopy (start, move);
1431  VectorSubtract (end, start, vec);
1432  len = VectorNormalize (vec);
1433 
1434  dec = 5;
1435  VectorScale (vec, 5, vec);
1436 
1437  // FIXME: this is a really silly way to have a loop
1438  while (len > 0)
1439  {
1440  len -= dec;
1441 
1442  if (!free_particles)
1443  return;
1444  p = free_particles;
1445  free_particles = p->next;
1446  p->next = active_particles;
1447  active_particles = p;
1448  VectorClear (p->accel);
1449 
1450  p->time = cl.time;
1451 
1452  p->alpha = 1.0;
1453  p->alphavel = -1.0 / (0.3+frand()*0.2);
1454 #ifndef QMAX
1455  p->color = 0xd0;
1456 #endif
1457  for (j=0 ; j<3 ; j++)
1458  {
1459  p->org[j] = move[j] + crand();
1460  p->vel[j] = crand()*5;
1461  p->accel[j] = 0;
1462  }
1463 
1464  VectorAdd (move, vec, move);
1465  }
1466 }

Referenced by CL_AddPacketEntities().

◆ CL_BubbleTrail()

void CL_BubbleTrail ( vec3_t  start,
vec3_t  end 
)

Definition at line 1909 of file cl_fx.c.

1910 {
1911  vec3_t move;
1912  vec3_t vec;
1913  float len;
1914  int i, j;
1915  cparticle_t *p;
1916  float dec;
1917 
1918  VectorCopy (start, move);
1919  VectorSubtract (end, start, vec);
1920  len = VectorNormalize (vec);
1921 
1922  dec = 32;
1923  VectorScale (vec, dec, vec);
1924 
1925  for (i=0 ; i<len ; i+=dec)
1926  {
1927  if (!free_particles)
1928  return;
1929 
1930  p = free_particles;
1931  free_particles = p->next;
1932  p->next = active_particles;
1933  active_particles = p;
1934 
1935  VectorClear (p->accel);
1936  p->time = cl.time;
1937 
1938  p->alpha = 1.0;
1939  p->alphavel = -1.0 / (1+frand()*0.2);
1940 #ifndef QMAX
1941  p->color = 4 + (rand()&7);
1942 #endif
1943  for (j=0 ; j<3 ; j++)
1944  {
1945  p->org[j] = move[j] + crand()*2;
1946  p->vel[j] = crand()*5;
1947  }
1948  p->vel[2] += 6;
1949 
1950  VectorAdd (move, vec, move);
1951  }
1952 }

Referenced by CL_ParseTEnt().

◆ CL_BubbleTrail2()

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

Definition at line 445 of file cl_newfx.c.

446 {
447  vec3_t move;
448  vec3_t vec;
449  float len;
450  int i;
451 #ifndef QMAX
452  int j;
453  cparticle_t *p;
454 #endif
455  float dec;
456 
457  VectorCopy (start, move);
458  VectorSubtract (end, start, vec);
459  len = VectorNormalize (vec);
460 
461  dec = dist;
462  VectorScale (vec, dec, vec);
463 
464  for (i=0 ; i<len ; i+=dec)
465  {
466 #ifdef QMAX
467  setupParticle (
468  0, 0, 0,
469  move[0]+crand()*2, move[1]+crand()*2, move[2]+crand()*2,
470  crand()*5, crand()*5, crand()*5+6,
471  0, 0, 0,
472  255, 255, 255,
473  0, 0, 0,
474  0.75, -1.0 / (1 + frand() * 0.2),
475  (frand()>0.25)? 1 : (frand()>0.5) ? 2 : (frand()>0.75) ? 3 : 4, 1,
477  PART_TRANS|PART_SHADED,
478  NULL,0);
479 #else
480  if (!free_particles)
481  return;
482 
483  p = free_particles;
484  free_particles = p->next;
485  p->next = active_particles;
486  active_particles = p;
487 
488  VectorClear (p->accel);
489  p->time = cl.time;
490 
491  p->alpha = 1.0;
492  p->alphavel = -1.0 / (1+frand()*0.1);
493  p->color = 4 + (rand()&7);
494  for (j=0 ; j<3 ; j++)
495  {
496  p->org[j] = move[j] + crand()*2;
497  p->vel[j] = crand()*10;
498  }
499  p->org[2] -= 4;
500 // p->vel[2] += 6;
501  p->vel[2] += 20;
502 #endif
503  VectorAdd (move, vec, move);
504  }
505 }

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  char *ptr;
74 
75  if (strstr (filename, ".."))
76  {
77  Com_Printf ("Refusing to download a path with ..\n");
78  return true;
79  }
80 
81 #ifndef _WIN32
82  // fix backslashes
83  while ((ptr=strchr(filename,'\\'))) {
84  *ptr = '/';
85  }
86 #endif
87  if (FS_LoadFile (filename, NULL) != -1)
88  { // it exists, no need to download
89  return true;
90  }
91 
92  strcpy (cls.downloadname, filename);
93 
94  // download to a temp name, and only rename
95  // to the real name when done, so if interrupted
96  // a runt file wont be left
98  strcat (cls.downloadtempname, ".tmp");
99 
100 //ZOID
101  // check to see if we already have a tmp for this file, if so, try to resume
102  // open the file if not opened yet
104 
105 // FS_CreatePath (name);
106 
107  fp = fopen (name, "r+b");
108  if (fp) { // it exists
109  int len;
110  fseek(fp, 0, SEEK_END);
111  len = ftell(fp);
112 
113  cls.download = fp;
114 
115  // give the server an offset to start the download
116  Com_Printf ("Resuming %s\n", cls.downloadname);
119  va("download %s %i", cls.downloadname, len));
120  } else {
121  Com_Printf ("Downloading %s\n", cls.downloadname);
124  va("download %s", cls.downloadname));
125  }
126 
128 
129  return false;
130 }

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 2445 of file cl_fx.c.

2446 {
2447  CL_ClearParticles ();
2448  CL_ClearDlights ();
2450 }

Referenced by CL_ClearState().

◆ CL_ClearState()

void CL_ClearState ( void  )

Definition at line 610 of file cl_main.c.

611 {
612  S_StopAllSounds ();
613  CL_ClearEffects ();
614  CL_ClearTEnts ();
615 
616 // wipe the entire cl structure
617  memset (&cl, 0, sizeof(cl));
618  memset (&cl_entities, 0, sizeof(cl_entities));
619 
621 
622 }

Referenced by CL_Disconnect(), and CL_ParseServerData().

◆ CL_ClearTEnts()

void CL_ClearTEnts ( void  )

Definition at line 229 of file cl_tent.c.

230 {
231  memset (cl_beams, 0, sizeof(cl_beams));
232  memset (cl_explosions, 0, sizeof(cl_explosions));
233  memset (cl_lasers, 0, sizeof(cl_lasers));
234 
235 //ROGUE
236  memset (cl_playerbeams, 0, sizeof(cl_playerbeams));
237  memset (cl_sustains, 0, sizeof(cl_sustains));
238 //ROGUE
239 }

Referenced by CL_ClearState().

◆ CL_ColorExplosionParticles()

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

Definition at line 1269 of file cl_newfx.c.

1270 {
1271  int i;
1272 #ifdef QMAX
1273  vec3_t color = { color8red(color8), color8green(color8), color8blue(color8)};
1274 #else
1275  int j;
1276  cparticle_t *p;
1277 #endif
1278  for (i=0 ; i<128 ; i++)
1279  {
1280 #ifdef QMAX
1281 setupParticle (
1282  0, 0, 0,
1283  org[0] + ((rand()%32)-16), org[1] + ((rand()%32)-16), org[2] + ((rand()%32)-16),
1284  (rand()%256)-128, (rand()%256)-128, (rand()%256)-128,
1285  0, 0, 20,
1286  color[0] + (rand() % run), color[1] + (rand() % run), color[2] + (rand() % run),
1287  0, 0, 0,
1288  1.0, -0.4 / (0.6 + frand()*0.2),
1289  2, 1,
1291  0,
1292  NULL,0);
1293 #else
1294  if (!free_particles)
1295  return;
1296  p = free_particles;
1297  free_particles = p->next;
1298  p->next = active_particles;
1299  active_particles = p;
1300 
1301  p->time = cl.time;
1302  p->color = color8 + (rand() % run);
1303  for (j=0 ; j<3 ; j++)
1304  {
1305  p->org[j] = org[j] + ((rand()%32)-16);
1306  p->vel[j] = (rand()%256)-128;
1307  }
1308 
1309  p->accel[0] = p->accel[1] = 0;
1310  p->accel[2] = -PARTICLE_GRAVITY;
1311  p->alpha = 1.0;
1312 
1313  p->alphavel = -0.4 / (0.6 + frand()*0.2);
1314 #endif
1315  }
1316 }

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 112 of file cl_newfx.c.

113 {
114  cdlight_t *dl;
115 
116  if((vidref_val == VIDREF_SOFT) && ((r < 0) || (g<0) || (b<0)))
117  {
118  intensity = -intensity;
119  r = -r;
120  g = -g;
121  b = -b;
122  }
123 
124  dl = CL_AllocDlight (ent);
125  VectorCopy (pos, dl->origin);
126  dl->radius = intensity;
127  dl->minlight = 250;
128  dl->die = cl.time + 100;
129  dl->color[0] = r;
130  dl->color[1] = g;
131  dl->color[2] = b;
132 }

Referenced by CL_ParseTEnt().

◆ CL_DebugTrail()

void CL_DebugTrail ( vec3_t  start,
vec3_t  end 
)

Definition at line 140 of file cl_newfx.c.

141 {
142  vec3_t move;
143  vec3_t vec;
144  float len;
145 #ifndef QMAX
146  cparticle_t *p;
147 #endif
148  float dec;
149  vec3_t right, up;
150 
151  VectorCopy (start, move);
152  VectorSubtract (end, start, vec);
153  len = VectorNormalize (vec);
154 
155  MakeNormalVectors (vec, right, up);
156 
157 // VectorScale(vec, RT2_SKIP, vec);
158 
159 // dec = 1.0;
160 // dec = 0.75;
161  dec = 3;
162  VectorScale (vec, dec, vec);
163  VectorCopy (start, move);
164 
165  while (len > 0)
166  {
167  len -= dec;
168 #ifdef QMAX
169  setupParticle (
170  0, 0, 0,
171  move[0], move[1], move[2],
172  0, 0, 0,
173  0, 0, 0,
174  50, 50, 255,
175  0, 0, 0,
176  1, -0.75,
177  7.5, 0,
179  0,
180  NULL,0);
181 #else
182  if (!free_particles)
183  return;
184  p = free_particles;
185  free_particles = p->next;
186  p->next = active_particles;
187  active_particles = p;
188 
189  p->time = cl.time;
190  VectorClear (p->accel);
191  VectorClear (p->vel);
192  p->alpha = 1.0;
193  p->alphavel = -0.1;
194 // p->alphavel = 0;
195  p->color = 0x74 + (rand()&7);
196  VectorCopy (move, p->org);
197  /*
198  for (j=0 ; j<3 ; j++)
199  {
200  p->org[j] = move[j] + crand()*2;
201  p->vel[j] = crand()*3;
202  p->accel[j] = 0;
203  }
204  */
205 #endif
206  VectorAdd (move, vec, move);
207  }
208 
209 }

Referenced by CL_ParseTEnt().

◆ CL_DiminishingTrail()

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

Definition at line 1564 of file cl_fx.c.

1565 {
1566  vec3_t move;
1567  vec3_t vec;
1568  float len;
1569  int j;
1570  cparticle_t *p;
1571  float dec;
1572  float orgscale;
1573  float velscale;
1574 
1575  VectorCopy (start, move);
1576  VectorSubtract (end, start, vec);
1577  len = VectorNormalize (vec);
1578 
1579  dec = 0.5;
1580  VectorScale (vec, dec, vec);
1581 
1582  if (old->trailcount > 900)
1583  {
1584  orgscale = 4;
1585  velscale = 15;
1586  }
1587  else if (old->trailcount > 800)
1588  {
1589  orgscale = 2;
1590  velscale = 10;
1591  }
1592  else
1593  {
1594  orgscale = 1;
1595  velscale = 5;
1596  }
1597 
1598  while (len > 0)
1599  {
1600  len -= dec;
1601 
1602  if (!free_particles)
1603  return;
1604 
1605  // drop less particles as it flies
1606  if ((rand()&1023) < old->trailcount)
1607  {
1608  p = free_particles;
1609  free_particles = p->next;
1610  p->next = active_particles;
1611  active_particles = p;
1612  VectorClear (p->accel);
1613 
1614  p->time = cl.time;
1615 
1616  if (flags & EF_GIB)
1617  {
1618  p->alpha = 1.0;
1619  p->alphavel = -1.0 / (1+frand()*0.4);
1620 #ifndef QMAX
1621  p->color = 0xe8 + (rand()&7);
1622 #endif
1623  for (j=0 ; j<3 ; j++)
1624  {
1625  p->org[j] = move[j] + crand()*orgscale;
1626  p->vel[j] = crand()*velscale;
1627  p->accel[j] = 0;
1628  }
1629  p->vel[2] -= PARTICLE_GRAVITY;
1630  }
1631  else if (flags & EF_GREENGIB)
1632  {
1633  p->alpha = 1.0;
1634  p->alphavel = -1.0 / (1+frand()*0.4);
1635 #ifndef QMAX
1636  p->color = 0xdb + (rand()&7);
1637 #endif
1638  for (j=0; j< 3; j++)
1639  {
1640  p->org[j] = move[j] + crand()*orgscale;
1641  p->vel[j] = crand()*velscale;
1642  p->accel[j] = 0;
1643  }
1644  p->vel[2] -= PARTICLE_GRAVITY;
1645  }
1646  else
1647  {
1648  p->alpha = 1.0;
1649  p->alphavel = -1.0 / (1+frand()*0.2);
1650 #ifndef QMAX
1651  p->color = 4 + (rand()&7);
1652 #endif
1653  for (j=0 ; j<3 ; j++)
1654  {
1655  p->org[j] = move[j] + crand()*orgscale;
1656  p->vel[j] = crand()*velscale;
1657  }
1658  p->accel[2] = 20;
1659  }
1660  }
1661 
1662  old->trailcount -= 5;
1663  if (old->trailcount < 100)
1664  old->trailcount = 100;
1665  VectorAdd (move, vec, move);
1666  }
1667 }

Referenced by CL_AddPacketEntities(), and CL_RocketTrail().

◆ CL_Disconnect()

void CL_Disconnect ( void  )

Definition at line 633 of file cl_main.c.

634 {
635  byte final[32];
636 
637  if (cls.state == ca_disconnected)
638  return;
639 
640  if (cl_timedemo && cl_timedemo->value)
641  {
642  int time;
643 
644  time = Sys_Milliseconds () - cl.timedemo_start;
645  if (time > 0)
646  Com_Printf ("%i frames, %3.1f seconds: %3.1f fps\n", cl.timedemo_frames,
647  time/1000.0, cl.timedemo_frames*1000.0 / time);
648  }
649 
652 
653  M_ForceMenuOff ();
654 
655  cls.connect_time = 0;
656 
658 
659  if (cls.demorecording)
660  CL_Stop_f ();
661 
662  // send a disconnect message to the server
663  final[0] = clc_stringcmd;
664  strcpy ((char *)final+1, "disconnect");
665  Netchan_Transmit (&cls.netchan, strlen((char *)final), final);
666  Netchan_Transmit (&cls.netchan, strlen((char *)final), final);
667  Netchan_Transmit (&cls.netchan, strlen((char *)final), final);
668 
669  CL_ClearState ();
670 
671  // stop download
672  if (cls.download) {
673  fclose(cls.download);
674  cls.download = NULL;
675  }
676 
678 }

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

◆ CL_Disconnect_f()

void CL_Disconnect_f ( void  )

Definition at line 680 of file cl_main.c.

681 {
682  Com_Error (ERR_DROP, "Disconnected from server");
683 }

Referenced by CL_InitLocal().

◆ CL_Download_f()

void CL_Download_f ( void  )

Definition at line 139 of file cl_parse.c.

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

Referenced by CL_InitLocal().

◆ CL_DrawInventory()

void CL_DrawInventory ( void  )

Definition at line 70 of file cl_inv.c.

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

Referenced by SCR_UpdateScreen().

◆ CL_EntityEvent()

void CL_EntityEvent ( entity_state_t ent)

Definition at line 2410 of file cl_fx.c.

2411 {
2412  switch (ent->event)
2413  {
2414  case EV_ITEM_RESPAWN:
2415  S_StartSound (NULL, ent->number, CHAN_WEAPON, S_RegisterSound("items/respawn1.wav"), 1, ATTN_IDLE, 0);
2417  break;
2418  case EV_PLAYER_TELEPORT:
2419  S_StartSound (NULL, ent->number, CHAN_WEAPON, S_RegisterSound("misc/tele1.wav"), 1, ATTN_IDLE, 0);
2421  break;
2422  case EV_FOOTSTEP:
2423  if (cl_footsteps->value)
2424  S_StartSound (NULL, ent->number, CHAN_BODY, cl_sfx_footsteps[rand()&3], 1, ATTN_NORM, 0);
2425  break;
2426  case EV_FALLSHORT:
2427  S_StartSound (NULL, ent->number, CHAN_AUTO, S_RegisterSound ("player/land1.wav"), 1, ATTN_NORM, 0);
2428  break;
2429  case EV_FALL:
2430  S_StartSound (NULL, ent->number, CHAN_AUTO, S_RegisterSound ("*fall2.wav"), 1, ATTN_NORM, 0);
2431  break;
2432  case EV_FALLFAR:
2433  S_StartSound (NULL, ent->number, CHAN_AUTO, S_RegisterSound ("*fall1.wav"), 1, ATTN_NORM, 0);
2434  break;
2435  }
2436 }

Referenced by CL_FireEntityEvents().

◆ CL_FixUpGender()

void CL_FixUpGender ( void  )

Definition at line 1074 of file cl_main.c.

1075 {
1076  char *p;
1077  char sk[80];
1078 
1079  if (gender_auto->value) {
1080 
1081  if (gender->modified) {
1082  // was set directly, don't override the user
1083  gender->modified = false;
1084  return;
1085  }
1086 
1087  strncpy(sk, skin->string, sizeof(sk) - 1);
1088  if ((p = strchr(sk, '/')) != NULL)
1089  *p = 0;
1090  if (Q_stricmp(sk, "male") == 0 || Q_stricmp(sk, "cyborg") == 0)
1091  Cvar_Set ("gender", "male");
1092  else if (Q_stricmp(sk, "female") == 0 || Q_stricmp(sk, "crackhor") == 0)
1093  Cvar_Set ("gender", "female");
1094  else
1095  Cvar_Set ("gender", "none");
1096  gender->modified = false;
1097  }
1098 }

Referenced by CL_SendCmd().

◆ CL_FlagTrail()

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

Definition at line 1511 of file cl_fx.c.

1513 {
1514  vec3_t move;
1515  vec3_t vec;
1516  float len;
1517  int j;
1518  cparticle_t *p;
1519  int dec;
1520 
1521  VectorCopy (start, move);
1522  VectorSubtract (end, start, vec);
1523  len = VectorNormalize (vec);
1524 
1525  dec = 5;
1526  VectorScale (vec, 5, vec);
1527 
1528  while (len > 0)
1529  {
1530  len -= dec;
1531 
1532  if (!free_particles)
1533  return;
1534  p = free_particles;
1535  free_particles = p->next;
1536  p->next = active_particles;
1537  active_particles = p;
1538  VectorClear (p->accel);
1539 
1540  p->time = cl.time;
1541 
1542  p->alpha = 1.0;
1543  p->alphavel = -1.0 / (0.8+frand()*0.2);
1544 #ifndef QMAX
1545  p->color = color;
1546 #endif
1547  for (j=0 ; j<3 ; j++)
1548  {
1549  p->org[j] = move[j] + crand()*16;
1550  p->vel[j] = crand()*5;
1551  p->accel[j] = 0;
1552  }
1553 
1554  VectorAdd (move, vec, move);
1555  }
1556 }

Referenced by CL_AddPacketEntities().

◆ CL_FlameEffects()

void CL_FlameEffects ( centity_t ent,
vec3_t  origin 
)

Definition at line 331 of file cl_newfx.c.

332 {
333  int n, count;
334  int j;
335  cparticle_t *p;
336 
337  count = rand() & 0xF;
338 
339  for(n=0;n<count;n++)
340  {
341  if (!free_particles)
342  return;
343 
344  p = free_particles;
345  free_particles = p->next;
346  p->next = active_particles;
347  active_particles = p;
348 
349  VectorClear (p->accel);
350  p->time = cl.time;
351 
352  p->alpha = 1.0;
353  p->alphavel = -1.0 / (1+frand()*0.2);
354 #ifndef QMAX
355  p->color = 226 + (rand() % 4);
356 #endif
357  for (j=0 ; j<3 ; j++)
358  {
359  p->org[j] = origin[j] + crand()*5;
360  p->vel[j] = crand()*5;
361  }
362  p->vel[2] = crand() * -10;
363  p->accel[2] = -PARTICLE_GRAVITY;
364  }
365 
366  count = rand() & 0x7;
367 
368  for(n=0;n<count;n++)
369  {
370  if (!free_particles)
371  return;
372  p = free_particles;
373  free_particles = p->next;
374  p->next = active_particles;
375  active_particles = p;
376  VectorClear (p->accel);
377 
378  p->time = cl.time;
379 
380  p->alpha = 1.0;
381  p->alphavel = -1.0 / (1+frand()*0.5);
382 #ifndef QMAX
383  p->color = 0 + (rand() % 4);
384 #endif
385  for (j=0 ; j<3 ; j++)
386  {
387  p->org[j] = origin[j] + crand()*3;
388  }
389  p->vel[2] = 20 + crand()*5;
390  }
391 
392 }

◆ CL_Flashlight()

void CL_Flashlight ( int  ent,
vec3_t  pos 
)

Definition at line 93 of file cl_newfx.c.

94 {
95  cdlight_t *dl;
96 
97  dl = CL_AllocDlight (ent);
98  VectorCopy (pos, dl->origin);
99  dl->radius = 400;
100  dl->minlight = 250;
101  dl->die = cl.time + 100;
102  dl->color[0] = 1;
103  dl->color[1] = 1;
104  dl->color[2] = 1;
105 }

Referenced by CL_ParseTEnt().

◆ CL_FlyEffect()

void CL_FlyEffect ( centity_t ent,
vec3_t  origin 
)

Definition at line 2026 of file cl_fx.c.

2027 {
2028  int n;
2029  int count;
2030  int starttime;
2031 
2032  if (ent->fly_stoptime < cl.time)
2033  {
2034  starttime = cl.time;
2035  ent->fly_stoptime = cl.time + 60000;
2036  }
2037  else
2038  {
2039  starttime = ent->fly_stoptime - 60000;
2040  }
2041 
2042  n = cl.time - starttime;
2043  if (n < 20000)
2044  count = n * 162 / 20000.0;
2045  else
2046  {
2047  n = ent->fly_stoptime - cl.time;
2048  if (n < 20000)
2049  count = n * 162 / 20000.0;
2050  else
2051  count = 162;
2052  }
2053 
2054  CL_FlyParticles (origin, count);
2055 }

Referenced by CL_AddPacketEntities().

◆ CL_ForceWall()

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

Definition at line 261 of file cl_newfx.c.

262 {
263  vec3_t move;
264  vec3_t vec;
265 #ifdef QMAX
266  vec3_t color = { color8red(color8), color8green(color8), color8blue(color8)};
267 #else
268  int j;
269  cparticle_t *p;
270 #endif
271 
272  float len;
273 
274  VectorCopy (start, move);
275  VectorSubtract (end, start, vec);
276  len = VectorNormalize (vec);
277 
278  VectorScale (vec, 4, vec);
279 
280  // FIXME: this is a really silly way to have a loop
281  while (len > 0)
282  {
283  len -= 4;
284 
285  if (!free_particles)
286  return;
287 
288  if (frand() > 0.3)
289  {
290 #ifdef QMAX
291  setupParticle (
292  0, 0, 0,
293  move[0] + crand()*3, move[1] + crand()*3, move[2] + crand()*3,
294  0, 0, -40 - (crand()*10),
295  0, 0, 0,
296  color[0]+5, color[1]+5, color[2]+5,
297  0, 0, 0,
298  1, -1.0 / (3.0+frand()*0.5),
299  5, 0,
301  0,
302  NULL,0);
303 #else
304  p = free_particles;
305  free_particles = p->next;
306  p->next = active_particles;
307  active_particles = p;
308  VectorClear (p->accel);
309 
310  p->time = cl.time;
311 
312  p->alpha = 1.0;
313  p->alphavel = -1.0 / (3.0+frand()*0.5);
314  p->color = color8;
315  for (j=0 ; j<3 ; j++)
316  {
317  p->org[j] = move[j] + crand()*3;
318  p->accel[j] = 0;
319  }
320  p->vel[0] = 0;
321  p->vel[1] = 0;
322  p->vel[2] = -40 - (crand()*10);
323 #endif
324 
325  }
326 
327  VectorAdd (move, vec, move);
328  }
329 }

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 400 of file cl_newfx.c.

401 {
402  int i, j;
403  cparticle_t *p;
404  float d;
405 
406  for (i=0 ; i<count ; i++)
407  {
408  if (!free_particles)
409  return;
410  p = free_particles;
411  free_particles = p->next;
412  p->next = active_particles;
413  active_particles = p;
414 
415  p->time = cl.time;
416 #ifndef QMAX
417  if (numcolors > 1)
418  p->color = color + (rand() & numcolors);
419  else
420  p->color = color;
421 #endif
422  d = rand() & dirspread;
423  for (j=0 ; j<3 ; j++)
424  {
425  p->org[j] = org[j] + ((rand()&7)-4) + d*dir[j];
426  p->vel[j] = crand()*20;
427  }
428 
429  p->accel[0] = p->accel[1] = 0;
430  p->accel[2] = -PARTICLE_GRAVITY;
431 // VectorCopy (accel, p->accel);
432  p->alpha = 1.0;
433 
434  p->alphavel = -1.0 / (0.5 + frand()*alphavel);
435 // p->alphavel = alphavel;
436  }
437 }

◆ CL_GetChallengePacket()

void CL_GetChallengePacket ( void  )

◆ CL_Heatbeam()

void CL_Heatbeam ( vec3_t  start,
vec3_t  end 
)

Definition at line 615 of file cl_newfx.c.

616 {
617  vec3_t move;
618  vec3_t vec;
619  float len;
620  int j;
621  cparticle_t *p;
622  vec3_t right, up;
623  int i;
624  float c, s;
625  vec3_t dir;
626  float ltime;
627  float step = 32.0, rstep;
628  float start_pt;
629  float rot;
630  float variance;
631  vec3_t end;
632 
633  VectorMA (start, 4096, forward, end);
634 
635  VectorCopy (start, move);
636  VectorSubtract (end, start, vec);
637  len = VectorNormalize (vec);
638 
639  // FIXME - pmm - these might end up using old values?
640 // MakeNormalVectors (vec, right, up);
642  VectorCopy (cl.v_up, up);
643  if (vidref_val == VIDREF_GL)
644  { // GL mode
645  VectorMA (move, -0.5, right, move);
646  VectorMA (move, -0.5, up, move);
647  }
648  // otherwise assume SOFT
649 
650  ltime = (float) cl.time/1000.0;
651  start_pt = fmod(ltime*96.0,step);
652  VectorMA (move, start_pt, vec, move);
653 
654  VectorScale (vec, step, vec);
655 
656 // Com_Printf ("%f\n", ltime);
657  rstep = M_PI/10.0;
658  for (i=start_pt ; i<len ; i+=step)
659  {
660  if (i>step*5) // don't bother after the 5th ring
661  break;
662 
663  for (rot = 0; rot < M_PI*2; rot += rstep)
664  {
665 
666  if (!free_particles)
667  return;
668 
669  p = free_particles;
670  free_particles = p->next;
671  p->next = active_particles;
672  active_particles = p;
673 
674  p->time = cl.time;
675  VectorClear (p->accel);
676 // rot+= fmod(ltime, 12.0)*M_PI;
677 // c = cos(rot)/2.0;
678 // s = sin(rot)/2.0;
679 // variance = 0.4 + ((float)rand()/(float)RAND_MAX) *0.2;
680  variance = 0.5;
681  c = cos(rot)*variance;
682  s = sin(rot)*variance;
683 
684  // trim it so it looks like it's starting at the origin
685  if (i < 10)
686  {
687  VectorScale (right, c*(i/10.0), dir);
688  VectorMA (dir, s*(i/10.0), up, dir);
689  }
690  else
691  {
692  VectorScale (right, c, dir);
693  VectorMA (dir, s, up, dir);
694  }
695 
696  p->alpha = 0.5;
697  // p->alphavel = -1.0 / (1+frand()*0.2);
698  p->alphavel = -1000.0;
699  // p->color = 0x74 + (rand()&7);
700 #ifndef QMAX
701  p->color = 223 - (rand()&7);
702 #endif
703  for (j=0 ; j<3 ; j++)
704  {
705  p->org[j] = move[j] + dir[j]*3;
706  // p->vel[j] = dir[j]*6;
707  p->vel[j] = 0;
708  }
709  }
710  VectorAdd (move, vec, move);
711  }
712 }

Referenced by CL_AddPlayerBeams().

◆ CL_Init()

void CL_Init ( void  )

Definition at line 1823 of file cl_main.c.

1824 {
1825  if (dedicated->value)
1826  return; // nothing running on the client
1827 
1828  // all archived variables will now be loaded
1829 
1830  Con_Init ();
1831 #if defined __linux__ || defined __FreeBSD__ || defined __sgi
1832  S_Init ();
1833  VID_Init ();
1834 #else
1835  VID_Init ();
1836  S_Init (); // sound must be initialized after window is created
1837 #endif
1838 
1839  V_Init ();
1840 
1843 
1844  M_Init ();
1845 
1846  SCR_Init ();
1847  cls.disable_screen = true; // don't draw yet
1848 
1849  CDAudio_Init ();
1850  CL_InitLocal ();
1851  IN_Init ();
1852 
1853 // Cbuf_AddText ("exec autoexec.cfg\n");
1854  FS_ExecAutoexec ();
1855  Cbuf_Execute ();
1856 
1857 }

◆ CL_InitInput()

void CL_InitInput ( void  )

Definition at line 413 of file cl_input.c.

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

Referenced by CL_InitLocal().

◆ CL_InitPrediction()

void CL_InitPrediction ( void  )

◆ CL_IonripperTrail()

void CL_IonripperTrail ( vec3_t  start,
vec3_t  end 
)

Definition at line 1844 of file cl_fx.c.

1845 {
1846  vec3_t move;
1847  vec3_t vec;
1848  float len;
1849  int j;
1850  cparticle_t *p;
1851  int dec;
1852  int left = 0;
1853 
1854  VectorCopy (start, move);
1855  VectorSubtract (ent, start, vec);
1856  len = VectorNormalize (vec);
1857 
1858  dec = 5;
1859  VectorScale (vec, 5, vec);
1860 
1861  while (len > 0)
1862  {
1863  len -= dec;
1864 
1865  if (!free_particles)
1866  return;
1867  p = free_particles;
1868  free_particles = p->next;
1869  p->next = active_particles;
1870  active_particles = p;
1871  VectorClear (p->accel);
1872 
1873  p->time = cl.time;
1874  p->alpha = 0.5;
1875  p->alphavel = -1.0 / (0.3 + frand() * 0.2);
1876 #ifndef QMAX
1877  p->color = 0xe4 + (rand()&3);
1878 #endif
1879  for (j=0; j<3; j++)
1880  {
1881  p->org[j] = move[j];
1882  p->accel[j] = 0;
1883  }
1884  if (left)
1885  {
1886  left = 0;
1887  p->vel[0] = 10;
1888  }
1889  else
1890  {
1891  left = 1;
1892  p->vel[0] = -10;
1893  }
1894 
1895  p->vel[1] = 0;
1896  p->vel[2] = 0;
1897 
1898  VectorAdd (move, vec, move);
1899  }
1900 }

Referenced by CL_AddPacketEntities().

◆ CL_KeyInventory()

void CL_KeyInventory ( int  key)

◆ CL_KeyState()

float CL_KeyState ( kbutton_t key)

Definition at line 185 of file cl_input.c.

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

Referenced by CL_AdjustAngles(), and CL_BaseMove().

◆ CL_LoadClientinfo()

void CL_LoadClientinfo ( clientinfo_t ci,
char *  s 
)

Definition at line 387 of file cl_parse.c.

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

Referenced by CL_ParseClientinfo(), and CL_PrepRefresh().

◆ CL_MonsterPlasma_Shell()

void CL_MonsterPlasma_Shell ( vec3_t  origin)

Definition at line 1029 of file cl_newfx.c.

1030 {
1031  vec3_t dir;
1032  int i;
1033  cparticle_t *p;
1034 
1035  for(i=0;i<40;i++)
1036  {
1037  if (!free_particles)
1038  return;
1039  p = free_particles;
1040  free_particles = p->next;
1041  p->next = active_particles;
1042  active_particles = p;
1043  VectorClear (p->accel);
1044 
1045  p->time = cl.time;
1046 
1047  p->alpha = 1.0;
1049 #ifndef QMAX
1050  p->color = 0xe0;
1051 #endif
1052  dir[0] = crand();
1053  dir[1] = crand();
1054  dir[2] = crand();
1055  VectorNormalize(dir);
1056 
1057  VectorMA(origin, 10, dir, p->org);
1058 // VectorMA(origin, 10*(((rand () & 0x7fff) / ((float)0x7fff))), dir, p->org);
1059  }
1060 }

Referenced by CL_AddPlayerBeams().

◆ CL_Nukeblast()

void CL_Nukeblast ( cl_sustain_t self)

Definition at line 1101 of file cl_newfx.c.

1102 {
1103  vec3_t dir;
1104  int i;
1105  cparticle_t *p;
1106 #ifndef QMAX
1107  static int colortable[4] = {110, 112, 114, 116};
1108 #endif
1109  float ratio;
1110 
1111  ratio = 1.0 - (((float)self->endtime - (float)cl.time)/1000.0);
1112 
1113  for(i=0;i<700;i++)
1114  {
1115  if (!free_particles)
1116  return;
1117  p = free_particles;
1118  free_particles = p->next;
1119  p->next = active_particles;
1120  active_particles = p;
1121  VectorClear (p->accel);
1122 
1123  p->time = cl.time;
1124 
1125  p->alpha = 1.0;
1127 #ifndef QMAX
1128  p->color = colortable[rand()&3];
1129 #endif
1130  dir[0] = crand();
1131  dir[1] = crand();
1132  dir[2] = crand();
1133  VectorNormalize(dir);
1134 
1135  VectorMA(self->org, (200.0 * ratio), dir, p->org);
1136 // VectorMA(origin, 10*(((rand () & 0x7fff) / ((float)0x7fff))), dir, p->org);
1137  }
1138 }

Referenced by CL_ParseNuke().

◆ CL_ParseClientinfo()

void CL_ParseClientinfo ( int  player)

Definition at line 508 of file cl_parse.c.

509 {
510  char *s;
511  clientinfo_t *ci;
512 
513  s = cl.configstrings[player+CS_PLAYERSKINS];
514 
515  ci = &cl.clientinfo[player];
516 
517  CL_LoadClientinfo (ci, s);
518 }

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

◆ CL_ParseConfigString()

void CL_ParseConfigString ( void  )

Definition at line 526 of file cl_parse.c.

527 {
528  int i;
529  char *s;
530  char olds[MAX_QPATH];
531 
533  if (i < 0 || i >= MAX_CONFIGSTRINGS)
534  Com_Error (ERR_DROP, "configstring > MAX_CONFIGSTRINGS");
536 
537  strncpy (olds, cl.configstrings[i], sizeof(olds));
538  olds[sizeof(olds) - 1] = 0;
539 
540  strcpy (cl.configstrings[i], s);
541 
542  // do something apropriate
543 
544  if (i >= CS_LIGHTS && i < CS_LIGHTS+MAX_LIGHTSTYLES)
546  else if (i == CS_CDTRACK)
547  {
548  if (cl.refresh_prepped)
549  CDAudio_Play (atoi(cl.configstrings[CS_CDTRACK]), true);
550  }
551  else if (i >= CS_MODELS && i < CS_MODELS+MAX_MODELS)
552  {
553  if (cl.refresh_prepped)
554  {
556  if (cl.configstrings[i][0] == '*')
558  else
560  }
561  }
562  else if (i >= CS_SOUNDS && i < CS_SOUNDS+MAX_MODELS)
563  {
564  if (cl.refresh_prepped)
566  }
567  else if (i >= CS_IMAGES && i < CS_IMAGES+MAX_MODELS)
568  {
569  if (cl.refresh_prepped)
571  }
572  else if (i >= CS_PLAYERSKINS && i < CS_PLAYERSKINS+MAX_CLIENTS)
573  {
574  if (cl.refresh_prepped && strcmp(olds, s))
576  }
577 }

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 676 of file cl_ents.c.

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

Referenced by CL_ParseServerMessage().

◆ CL_ParseInventory()

void CL_ParseInventory ( void  )

Definition at line 29 of file cl_inv.c.

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

Referenced by CL_ParseServerMessage().

◆ CL_ParseLayout()

void CL_ParseLayout ( void  )

◆ CL_ParseMuzzleFlash()

void CL_ParseMuzzleFlash ( void  )

Definition at line 338 of file cl_fx.c.

339 {
340  vec3_t fv, rv;
341  cdlight_t *dl;
342  int i, weapon;
343  centity_t *pl;
344  int silenced;
345  float volume;
346  char soundname[64];
347 
349  if (i < 1 || i >= MAX_EDICTS)
350  Com_Error (ERR_DROP, "CL_ParseMuzzleFlash: bad entity");
351 
352  weapon = MSG_ReadByte (&net_message);
353  silenced = weapon & MZ_SILENCED;
354  weapon &= ~MZ_SILENCED;
355 
356  pl = &cl_entities[i];
357 
358  dl = CL_AllocDlight (i);
359  VectorCopy (pl->current.origin, dl->origin);
360  AngleVectors (pl->current.angles, fv, rv, NULL);
361  VectorMA (dl->origin, 18, fv, dl->origin);
362  VectorMA (dl->origin, 16, rv, dl->origin);
363  if (silenced)
364  dl->radius = 100 + (rand()&31);
365  else
366  dl->radius = 200 + (rand()&31);
367  dl->minlight = 32;
368  dl->die = cl.time; // + 0.1;
369 
370  if (silenced)
371  volume = 0.2;
372  else
373  volume = 1;
374 
375  switch (weapon)
376  {
377  case MZ_BLASTER:
378  dl->color[0] = 1;dl->color[1] = 1;dl->color[2] = 0;
379  S_StartSound (NULL, i, CHAN_WEAPON, S_RegisterSound("weapons/blastf1a.wav"), volume, ATTN_NORM, 0);
380  break;
381  case MZ_BLUEHYPERBLASTER:
382  dl->color[0] = 0;dl->color[1] = 0;dl->color[2] = 1;
383  S_StartSound (NULL, i, CHAN_WEAPON, S_RegisterSound("weapons/hyprbf1a.wav"), volume, ATTN_NORM, 0);
384  break;
385  case MZ_HYPERBLASTER:
386  dl->color[0] = 1;dl->color[1] = 1;dl->color[2] = 0;
387  S_StartSound (NULL, i, CHAN_WEAPON, S_RegisterSound("weapons/hyprbf1a.wav"), volume, ATTN_NORM, 0);
388  break;
389  case MZ_MACHINEGUN:
390  dl->color[0] = 1;dl->color[1] = 1;dl->color[2] = 0;
391  Com_sprintf(soundname, sizeof(soundname), "weapons/machgf%ib.wav", (rand() % 5) + 1);
393  break;
394  case MZ_SHOTGUN:
395  dl->color[0] = 1;dl->color[1] = 1;dl->color[2] = 0;
396  S_StartSound (NULL, i, CHAN_WEAPON, S_RegisterSound("weapons/shotgf1b.wav"), volume, ATTN_NORM, 0);
397  S_StartSound (NULL, i, CHAN_AUTO, S_RegisterSound("weapons/shotgr1b.wav"), volume, ATTN_NORM, 0.1);
398  break;
399  case MZ_SSHOTGUN:
400  dl->color[0] = 1;dl->color[1] = 1;dl->color[2] = 0;
401  S_StartSound (NULL, i, CHAN_WEAPON, S_RegisterSound("weapons/sshotf1b.wav"), volume, ATTN_NORM, 0);
402  break;
403  case MZ_CHAINGUN1:
404  dl->radius = 200 + (rand()&31);
405  dl->color[0] = 1;dl->color[1] = 0.25;dl->color[2] = 0;
406  Com_sprintf(soundname, sizeof(soundname), "weapons/machgf%ib.wav", (rand() % 5) + 1);
408  break;
409  case MZ_CHAINGUN2:
410  dl->radius = 225 + (rand()&31);
411  dl->color[0] = 1;dl->color[1] = 0.5;dl->color[2] = 0;
412  dl->die = cl.time + 0.1; // long delay
413  Com_sprintf(soundname, sizeof(soundname), "weapons/machgf%ib.wav", (rand() % 5) + 1);
415  Com_sprintf(soundname, sizeof(soundname), "weapons/machgf%ib.wav", (rand() % 5) + 1);
417  break;
418  case MZ_CHAINGUN3:
419  dl->radius = 250 + (rand()&31);
420  dl->color[0] = 1;dl->color[1] = 1;dl->color[2] = 0;
421  dl->die = cl.time + 0.1; // long delay
422  Com_sprintf(soundname, sizeof(soundname), "weapons/machgf%ib.wav", (rand() % 5) + 1);
424  Com_sprintf(soundname, sizeof(soundname), "weapons/machgf%ib.wav", (rand() % 5) + 1);
425  S_StartSound (NULL, i, CHAN_WEAPON, S_RegisterSound(soundname), volume, ATTN_NORM, 0.033);
426  Com_sprintf(soundname, sizeof(soundname), "weapons/machgf%ib.wav", (rand() % 5) + 1);
427  S_StartSound (NULL, i, CHAN_WEAPON, S_RegisterSound(soundname), volume, ATTN_NORM, 0.066);
428  break;
429  case MZ_RAILGUN:
430  dl->color[0] = 0.5;dl->color[1] = 0.5;dl->color[2] = 1.0;
431  S_StartSound (NULL, i, CHAN_WEAPON, S_RegisterSound("weapons/railgf1a.wav"), volume, ATTN_NORM, 0);
432  break;
433  case MZ_ROCKET:
434  dl->color[0] = 1;dl->color[1] = 0.5;dl->color[2] = 0.2;
435  S_StartSound (NULL, i, CHAN_WEAPON, S_RegisterSound("weapons/rocklf1a.wav"), volume, ATTN_NORM, 0);
436  S_StartSound (NULL, i, CHAN_AUTO, S_RegisterSound("weapons/rocklr1b.wav"), volume, ATTN_NORM, 0.1);
437  break;
438  case MZ_GRENADE:
439  dl->color[0] = 1;dl->color[1] = 0.5;dl->color[2] = 0;
440  S_StartSound (NULL, i, CHAN_WEAPON, S_RegisterSound("weapons/grenlf1a.wav"), volume, ATTN_NORM, 0);
441  S_StartSound (NULL, i, CHAN_AUTO, S_RegisterSound("weapons/grenlr1b.wav"), volume, ATTN_NORM, 0.1);
442  break;
443  case MZ_BFG:
444  dl->color[0] = 0;dl->color[1] = 1;dl->color[2] = 0;
445  S_StartSound (NULL, i, CHAN_WEAPON, S_RegisterSound("weapons/bfg__f1y.wav"), volume, ATTN_NORM, 0);
446  break;
447 
448  case MZ_LOGIN:
449  dl->color[0] = 0;dl->color[1] = 1; dl->color[2] = 0;
450  dl->die = cl.time + 1.0;
451  S_StartSound (NULL, i, CHAN_WEAPON, S_RegisterSound("weapons/grenlf1a.wav"), 1, ATTN_NORM, 0);
452  CL_LogoutEffect (pl->current.origin, weapon);
453  break;
454  case MZ_LOGOUT:
455  dl->color[0] = 1;dl->color[1] = 0; dl->color[2] = 0;
456  dl->die = cl.time + 1.0;
457  S_StartSound (NULL, i, CHAN_WEAPON, S_RegisterSound("weapons/grenlf1a.wav"), 1, ATTN_NORM, 0);
458  CL_LogoutEffect (pl->current.origin, weapon);
459  break;
460  case MZ_RESPAWN:
461  dl->color[0] = 1;dl->color[1] = 1; dl->color[2] = 0;
462  dl->die = cl.time + 1.0;
463  S_StartSound (NULL, i, CHAN_WEAPON, S_RegisterSound("weapons/grenlf1a.wav"), 1, ATTN_NORM, 0);
464  CL_LogoutEffect (pl->current.origin, weapon);
465  break;
466  // RAFAEL
467  case MZ_PHALANX:
468  dl->color[0] = 1;dl->color[1] = 0.5; dl->color[2] = 0.5;
469  S_StartSound (NULL, i, CHAN_WEAPON, S_RegisterSound("weapons/plasshot.wav"), volume, ATTN_NORM, 0);
470  break;
471  // RAFAEL
472  case MZ_IONRIPPER:
473  dl->color[0] = 1;dl->color[1] = 0.5; dl->color[2] = 0.5;
474  S_StartSound (NULL, i, CHAN_WEAPON, S_RegisterSound("weapons/rippfire.wav"), volume, ATTN_NORM, 0);
475  break;
476 
477 // ======================
478 // PGM
479  case MZ_ETF_RIFLE:
480  dl->color[0] = 0.9;dl->color[1] = 0.7;dl->color[2] = 0;
481  S_StartSound (NULL, i, CHAN_WEAPON, S_RegisterSound("weapons/nail1.wav"), volume, ATTN_NORM, 0);
482  break;
483  case MZ_SHOTGUN2:
484  dl->color[0] = 1;dl->color[1] = 1;dl->color[2] = 0;
485  S_StartSound (NULL, i, CHAN_WEAPON, S_RegisterSound("weapons/shotg2.wav"), volume, ATTN_NORM, 0);
486  break;
487  case MZ_HEATBEAM:
488  dl->color[0] = 1;dl->color[1] = 1;dl->color[2] = 0;
489  dl->die = cl.time + 100;
490 // S_StartSound (NULL, i, CHAN_WEAPON, S_RegisterSound("weapons/bfg__l1a.wav"), volume, ATTN_NORM, 0);
491  break;
492  case MZ_BLASTER2:
493  dl->color[0] = 0;dl->color[1] = 1;dl->color[2] = 0;
494  // FIXME - different sound for blaster2 ??
495  S_StartSound (NULL, i, CHAN_WEAPON, S_RegisterSound("weapons/blastf1a.wav"), volume, ATTN_NORM, 0);
496  break;
497  case MZ_TRACKER:
498  // negative flashes handled the same in gl/soft until CL_AddDLights
499  dl->color[0] = -1;dl->color[1] = -1;dl->color[2] = -1;
500  S_StartSound (NULL, i, CHAN_WEAPON, S_RegisterSound("weapons/disint2.wav"), volume, ATTN_NORM, 0);
501  break;
502  case MZ_NUKE1:
503  dl->color[0] = 1;dl->color[1] = 0;dl->color[2] = 0;
504  dl->die = cl.time + 100;
505  break;
506  case MZ_NUKE2:
507  dl->color[0] = 1;dl->color[1] = 1;dl->color[2] = 0;
508  dl->die = cl.time + 100;
509  break;
510  case MZ_NUKE4:
511  dl->color[0] = 0;dl->color[1] = 0;dl->color[2] = 1;
512  dl->die = cl.time + 100;
513  break;
514  case MZ_NUKE8:
515  dl->color[0] = 0;dl->color[1] = 1;dl->color[2] = 1;
516  dl->die = cl.time + 100;
517  break;
518 // PGM
519 // ======================
520  }
521 }

Referenced by CL_ParseServerMessage().

◆ CL_ParseMuzzleFlash2()

void CL_ParseMuzzleFlash2 ( void  )

Definition at line 529 of file cl_fx.c.

530 {
531  int ent;
532  vec3_t origin;
533  int flash_number;
534  cdlight_t *dl;
536  char soundname[64];
537 
538  ent = MSG_ReadShort (&net_message);
539  if (ent < 1 || ent >= MAX_EDICTS)
540  Com_Error (ERR_DROP, "CL_ParseMuzzleFlash2: bad entity");
541 
542  flash_number = MSG_ReadByte (&net_message);
543 
544  // locate the origin
546  origin[0] = cl_entities[ent].current.origin[0] + forward[0] * monster_flash_offset[flash_number][0] + right[0] * monster_flash_offset[flash_number][1];
547  origin[1] = cl_entities[ent].current.origin[1] + forward[1] * monster_flash_offset[flash_number][0] + right[1] * monster_flash_offset[flash_number][1];
548  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];
549 
550  dl = CL_AllocDlight (ent);
551  VectorCopy (origin, dl->origin);
552  dl->radius = 200 + (rand()&31);
553  dl->minlight = 32;
554  dl->die = cl.time; // + 0.1;
555 
556  switch (flash_number)
557  {
571  dl->color[0] = 1;dl->color[1] = 1;dl->color[2] = 0;
572  CL_ParticleEffect (origin, vec3_origin, 0, 40);
573  CL_SmokeAndFlash(origin);
574  S_StartSound (NULL, ent, CHAN_WEAPON, S_RegisterSound("infantry/infatck1.wav"), 1, ATTN_NORM, 0);
575  break;
576 
585  dl->color[0] = 1;dl->color[1] = 1;dl->color[2] = 0;
586  CL_ParticleEffect (origin, vec3_origin, 0, 40);
587  CL_SmokeAndFlash(origin);
588  S_StartSound (NULL, ent, CHAN_WEAPON, S_RegisterSound("soldier/solatck3.wav"), 1, ATTN_NORM, 0);
589  break;
590 
599  dl->color[0] = 1;dl->color[1] = 1;dl->color[2] = 0;
600  CL_ParticleEffect (origin, vec3_origin, 0, 40);
601  CL_SmokeAndFlash(origin);
602  S_StartSound (NULL, ent, CHAN_WEAPON, S_RegisterSound("gunner/gunatck2.wav"), 1, ATTN_NORM, 0);
603  break;
604 
612  case MZ2_TURRET_MACHINEGUN: // PGM
613  dl->color[0] = 1;dl->color[1] = 1;dl->color[2] = 0;
614 
615  CL_ParticleEffect (origin, vec3_origin, 0, 40);
616  CL_SmokeAndFlash(origin);
617  S_StartSound (NULL, ent, CHAN_WEAPON, S_RegisterSound("infantry/infatck1.wav"), 1, ATTN_NORM, 0);
618  break;
619 
625  case MZ2_CARRIER_MACHINEGUN_L1: // PMM
626  case MZ2_CARRIER_MACHINEGUN_L2: // PMM
627  dl->color[0] = 1;dl->color[1] = 1;dl->color[2] = 0;
628 
629  CL_ParticleEffect (origin, vec3_origin, 0, 40);
630  CL_SmokeAndFlash(origin);
631  S_StartSound (NULL, ent, CHAN_WEAPON, S_RegisterSound("infantry/infatck1.wav"), 1, ATTN_NONE, 0);
632  break;
633 
642  case MZ2_TURRET_BLASTER: // PGM
643  dl->color[0] = 1;dl->color[1] = 1;dl->color[2] = 0;
644  S_StartSound (NULL, ent, CHAN_WEAPON, S_RegisterSound("soldier/solatck2.wav"), 1, ATTN_NORM, 0);
645  break;
646 
647  case MZ2_FLYER_BLASTER_1:
648  case MZ2_FLYER_BLASTER_2:
649  dl->color[0] = 1;dl->color[1] = 1;dl->color[2] = 0;
650  S_StartSound (NULL, ent, CHAN_WEAPON, S_RegisterSound("flyer/flyatck3.wav"), 1, ATTN_NORM, 0);
651  break;
652 
653  case MZ2_MEDIC_BLASTER_1:
654  dl->color[0] = 1;dl->color[1] = 1;dl->color[2] = 0;
655  S_StartSound (NULL, ent, CHAN_WEAPON, S_RegisterSound("medic/medatck1.wav"), 1, ATTN_NORM, 0);
656  break;
657 
658  case MZ2_HOVER_BLASTER_1:
659  dl->color[0] = 1;dl->color[1] = 1;dl->color[2] = 0;
660  S_StartSound (NULL, ent, CHAN_WEAPON, S_RegisterSound("hover/hovatck1.wav"), 1, ATTN_NORM, 0);
661  break;
662 
663  case MZ2_FLOAT_BLASTER_1:
664  dl->color[0] = 1;dl->color[1] = 1;dl->color[2] = 0;
665  S_StartSound (NULL, ent, CHAN_WEAPON, S_RegisterSound("floater/fltatck1.wav"), 1, ATTN_NORM, 0);
666  break;
667 
676  dl->color[0] = 1;dl->color[1] = 1;dl->color[2] = 0;
677  CL_SmokeAndFlash(origin);
678  S_StartSound (NULL, ent, CHAN_WEAPON, S_RegisterSound("soldier/solatck1.wav"), 1, ATTN_NORM, 0);
679  break;
680 
681  case MZ2_TANK_BLASTER_1:
682  case MZ2_TANK_BLASTER_2:
683  case MZ2_TANK_BLASTER_3:
684  dl->color[0] = 1;dl->color[1] = 1;dl->color[2] = 0;
685  S_StartSound (NULL, ent, CHAN_WEAPON, S_RegisterSound("tank/tnkatck3.wav"), 1, ATTN_NORM, 0);
686  break;
687 
707  dl->color[0] = 1;dl->color[1] = 1;dl->color[2] = 0;
708  CL_ParticleEffect (origin, vec3_origin, 0, 40);
709  CL_SmokeAndFlash(origin);
710  Com_sprintf(soundname, sizeof(soundname), "tank/tnkatk2%c.wav", 'a' + rand() % 5);
711  S_StartSound (NULL, ent, CHAN_WEAPON, S_RegisterSound(soundname), 1, ATTN_NORM, 0);
712  break;
713 
714  case MZ2_CHICK_ROCKET_1:
715  case MZ2_TURRET_ROCKET: // PGM
716  dl->color[0] = 1;dl->color[1] = 0.5;dl->color[2] = 0.2;
717  S_StartSound (NULL, ent, CHAN_WEAPON, S_RegisterSound("chick/chkatck2.wav"), 1, ATTN_NORM, 0);
718  break;
719 
720  case MZ2_TANK_ROCKET_1:
721  case MZ2_TANK_ROCKET_2:
722  case MZ2_TANK_ROCKET_3:
723  dl->color[0] = 1;dl->color[1] = 0.5;dl->color[2] = 0.2;
724  S_StartSound (NULL, ent, CHAN_WEAPON, S_RegisterSound("tank/tnkatck1.wav"), 1, ATTN_NORM, 0);
725  break;
726 
730  case MZ2_BOSS2_ROCKET_1:
731  case MZ2_BOSS2_ROCKET_2:
732  case MZ2_BOSS2_ROCKET_3:
733  case MZ2_BOSS2_ROCKET_4:
735 // case MZ2_CARRIER_ROCKET_2:
736 // case MZ2_CARRIER_ROCKET_3:
737 // case MZ2_CARRIER_ROCKET_4:
738  dl->color[0] = 1;dl->color[1] = 0.5;dl->color[2] = 0.2;
739  S_StartSound (NULL, ent, CHAN_WEAPON, S_RegisterSound("tank/rocket.wav"), 1, ATTN_NORM, 0);
740  break;
741 
746  dl->color[0] = 1;dl->color[1] = 0.5;dl->color[2] = 0;
747  S_StartSound (NULL, ent, CHAN_WEAPON, S_RegisterSound("gunner/gunatck3.wav"), 1, ATTN_NORM, 0);
748  break;
749 
751  // PMM
752  case MZ2_CARRIER_RAILGUN:
753  case MZ2_WIDOW_RAIL:
754  // pmm
755  dl->color[0] = 0.5;dl->color[1] = 0.5;dl->color[2] = 1.0;
756  break;
757 
758 // --- Xian's shit starts ---
759  case MZ2_MAKRON_BFG:
760  dl->color[0] = 0.5;dl->color[1] = 1 ;dl->color[2] = 0.5;
761  //S_StartSound (NULL, ent, CHAN_WEAPON, S_RegisterSound("makron/bfg_fire.wav"), 1, ATTN_NORM, 0);
762  break;
763 
781  dl->color[0] = 1;dl->color[1] = 1;dl->color[2] = 0;
782  S_StartSound (NULL, ent, CHAN_WEAPON, S_RegisterSound("makron/blaster.wav"), 1, ATTN_NORM, 0);
783  break;
784 
791  dl->color[0] = 1;dl->color[1] = 1;dl->color[2] = 0;
792  CL_ParticleEffect (origin, vec3_origin, 0, 40);
793  CL_SmokeAndFlash(origin);
794  S_StartSound (NULL, ent, CHAN_WEAPON, S_RegisterSound("boss3/xfire.wav"), 1, ATTN_NORM, 0);
795  break;
796 
803  dl->color[0] = 1;dl->color[1] = 1;dl->color[2] = 0;
804  CL_ParticleEffect (origin, vec3_origin, 0, 40);
805  CL_SmokeAndFlash(origin);
806  break;
807 
808  case MZ2_JORG_BFG_1:
809  dl->color[0] = 0.5;dl->color[1] = 1 ;dl->color[2] = 0.5;
810  break;
811 
817  case MZ2_CARRIER_MACHINEGUN_R1: // PMM
818  case MZ2_CARRIER_MACHINEGUN_R2: // PMM
819 
820  dl->color[0] = 1;dl->color[1] = 1;dl->color[2] = 0;
821 
822  CL_ParticleEffect (origin, vec3_origin, 0, 40);
823  CL_SmokeAndFlash(origin);
824  break;
825 
826 // ======
827 // ROGUE
828  case MZ2_STALKER_BLASTER:
830  case MZ2_MEDIC_BLASTER_2:
831  case MZ2_WIDOW_BLASTER:
851  case MZ2_WIDOW_BLASTER_0:
859  case MZ2_WIDOW_RUN_1:
860  case MZ2_WIDOW_RUN_2:
861  case MZ2_WIDOW_RUN_3:
862  case MZ2_WIDOW_RUN_4:
863  case MZ2_WIDOW_RUN_5:
864  case MZ2_WIDOW_RUN_6:
865  case MZ2_WIDOW_RUN_7:
866  case MZ2_WIDOW_RUN_8:
867  dl->color[0] = 0;dl->color[1] = 1;dl->color[2] = 0;
868  S_StartSound (NULL, ent, CHAN_WEAPON, S_RegisterSound("tank/tnkatck3.wav"), 1, ATTN_NORM, 0);
869  break;
870 
871  case MZ2_WIDOW_DISRUPTOR:
872  dl->color[0] = -1;dl->color[1] = -1;dl->color[2] = -1;
873  S_StartSound (NULL, ent, CHAN_WEAPON, S_RegisterSound("weapons/disint2.wav"), 1, ATTN_NORM, 0);
874  break;
875 
877  case MZ2_WIDOW2_BEAMER_1:
878  case MZ2_WIDOW2_BEAMER_2:
879  case MZ2_WIDOW2_BEAMER_3:
880  case MZ2_WIDOW2_BEAMER_4:
881  case MZ2_WIDOW2_BEAMER_5:
893  dl->radius = 300 + (rand()&100);
894  dl->color[0] = 1;dl->color[1] = 1;dl->color[2] = 0;
895  dl->die = cl.time + 200;
896  break;
897 // ROGUE
898 // ======
899 
900 // --- Xian's shit ends ---
901 
902  }
903 }

Referenced by CL_ParseServerMessage().

◆ CL_ParseServerMessage()

void CL_ParseServerMessage ( void  )

Definition at line 664 of file cl_parse.c.

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

Referenced by CL_ReadPackets().

◆ CL_ParseTEnt()

void CL_ParseTEnt ( void  )

Definition at line 740 of file cl_tent.c.

741 {
742  int type;
743  vec3_t pos, pos2, dir;
744  explosion_t *ex;
745  int cnt;
746  int color;
747  int r;
748  int ent;
749  int magnitude;
750 
752 
753  switch (type)
754  {
755  case TE_BLOOD: // bullet hitting flesh
756  MSG_ReadPos (&net_message, pos);
757  MSG_ReadDir (&net_message, dir);
758 #ifdef QMAX
759  CL_BloodHit (pos, dir);
760 #else
761  CL_ParticleEffect (pos, dir, 0xe8, 60);
762 #endif
763  break;
764 
765  case TE_GUNSHOT: // bullet hitting wall
766  case TE_SPARKS:
767  case TE_BULLET_SPARKS:
768  MSG_ReadPos (&net_message, pos);
769  MSG_ReadDir (&net_message, dir);
770 #ifdef QMAX
771  if (type != TE_SPARKS)
772  {
773  CL_GunSmokeEffect (pos, dir);
774  re.AddStain(pos, 5, -175, -175, -175);
775  }
776 
777  if (type == TE_BULLET_SPARKS)
778  {
779  VectorScale(dir, 1.1, dir);
780  }
781 #else
782  if (type == TE_GUNSHOT)
783  CL_ParticleEffect (pos, dir, 0, 40);
784  else
785  CL_ParticleEffect (pos, dir, 0xe0, 6);
786 #endif
787  if (type != TE_SPARKS)
788  {
789 #ifndef QMAX
790  CL_SmokeAndFlash(pos);
791 #endif
792  // impact sound
793  cnt = rand()&15;
794  if (cnt == 1)
795  S_StartSound (pos, 0, 0, cl_sfx_ric1, 1, ATTN_NORM, 0);
796  else if (cnt == 2)
797  S_StartSound (pos, 0, 0, cl_sfx_ric2, 1, ATTN_NORM, 0);
798  else if (cnt == 3)
799  S_StartSound (pos, 0, 0, cl_sfx_ric3, 1, ATTN_NORM, 0);
800  }
801 #ifdef QMAX
802  //adding sparks
803  {
804  vec3_t color = { 255, 125, 10 };
805  CL_ParticleEffectSparks (pos, dir, color, (type == TE_GUNSHOT)? 5 : 10);
806  }
807 #endif
808  break;
809 
810  case TE_SCREEN_SPARKS:
811  case TE_SHIELD_SPARKS:
812  MSG_ReadPos (&net_message, pos);
813  MSG_ReadDir (&net_message, dir);
814  if (type == TE_SCREEN_SPARKS)
815  CL_ParticleEffect (pos, dir, 0xd0, 40);
816  else
817  CL_ParticleEffect (pos, dir, 0xb0, 40);
818  //FIXME : replace or remove this sound
819  S_StartSound (pos, 0, 0, cl_sfx_lashit, 1, ATTN_NORM, 0);
820  break;
821 
822  case TE_SHOTGUN: // bullet hitting wall
823  MSG_ReadPos (&net_message, pos);
824  MSG_ReadDir (&net_message, dir);
825 #ifdef QMAX
826  CL_GunSmokeEffect (pos, dir);
827  {
828  vec3_t color = { 200, 100, 10 };
829  CL_ParticleEffectSparks (pos, dir, color, 8);
830  }
831  re.AddStain(pos, 7, -175, -175, -175);
832 #else
833  CL_ParticleEffect (pos, dir, 0, 20);
834  CL_SmokeAndFlash(pos);
835 #endif
836  break;
837 
838  case TE_SPLASH: // bullet hitting water
839  cnt = MSG_ReadByte (&net_message);
840  MSG_ReadPos (&net_message, pos);
841  MSG_ReadDir (&net_message, dir);
843  if (r > 6)
844  color = 0x00;
845  else
846  color = splash_color[r];
847  CL_ParticleEffect (pos, dir, color, cnt);
848 
849  if (r == SPLASH_SPARKS)
850  {
851  r = rand() & 3;
852  if (r == 0)
853  S_StartSound (pos, 0, 0, cl_sfx_spark5, 1, ATTN_STATIC, 0);
854  else if (r == 1)
855  S_StartSound (pos, 0, 0, cl_sfx_spark6, 1, ATTN_STATIC, 0);
856  else
857  S_StartSound (pos, 0, 0, cl_sfx_spark7, 1, ATTN_STATIC, 0);
858  }
859  break;
860 
861  case TE_LASER_SPARKS:
862  cnt = MSG_ReadByte (&net_message);
863  MSG_ReadPos (&net_message, pos);
864  MSG_ReadDir (&net_message, dir);
865  color = MSG_ReadByte (&net_message);
866  CL_ParticleEffect2 (pos, dir, color, cnt);
867  break;
868 
869  // RAFAEL
870  case TE_BLUEHYPERBLASTER:
871  MSG_ReadPos (&net_message, pos);
872  MSG_ReadPos (&net_message, dir);
873 #ifdef QMAX
874  CL_BlasterParticles (pos, dir, 40);
875 #else
876  CL_BlasterParticles (pos, dir);
877 #endif
878  break;
879 
880  case TE_BLASTER: // blaster hitting wall
881  MSG_ReadPos (&net_message, pos);
882  MSG_ReadDir (&net_message, dir);
883 #ifdef QMAX
884  CL_BlasterParticles (pos, dir, 40);
885 #else
886  CL_BlasterParticles (pos, dir);
887 
888  ex = CL_AllocExplosion ();
889  VectorCopy (pos, ex->ent.origin);
890  ex->ent.angles[0] = acos(dir[2])/M_PI*180;
891  // PMM - fixed to correct for pitch of 0
892  if (dir[0])
893  ex->ent.angles[1] = atan2(dir[1], dir[0])/M_PI*180;
894  else if (dir[1] > 0)
895  ex->ent.angles[1] = 90;
896  else if (dir[1] < 0)
897  ex->ent.angles[1] = 270;
898  else
899  ex->ent.angles[1] = 0;
900 
901  ex->type = ex_misc;
903  ex->start = cl.frame.servertime - 100;
904  ex->light = 150;
905  ex->lightcolor[0] = 1;
906  ex->lightcolor[1] = 1;
907  ex->ent.model = cl_mod_explode;
908  ex->frames = 4;
909 #endif
910  S_StartSound (pos, 0, 0, cl_sfx_lashit, 1, ATTN_NORM, 0);
911  break;
912 
913  case TE_RAILTRAIL: // railgun effect
914  MSG_ReadPos (&net_message, pos);
916  CL_RailTrail (pos, pos2);
917  S_StartSound (pos2, 0, 0, cl_sfx_railg, 1, ATTN_NORM, 0);
918  break;
919 
920  case TE_EXPLOSION2:
923  MSG_ReadPos (&net_message, pos);
924 #ifdef QMAX
925  CL_G_Explode_SP(pos);
926 
927  // if (type!=TE_GRENADE_EXPLOSION_WATER)
928  // CL_Radius_Explode_SP(pos, 1.25);
929  // CL_ExplosionParticles (pos,1.25);
930  CL_ExplosionParticles (pos);
931 #else
932  ex = CL_AllocExplosion ();
933  VectorCopy (pos, ex->ent.origin);
934  ex->type = ex_poly;
936  ex->start = cl.frame.servertime - 100;
937  ex->light = 350;
938  ex->lightcolor[0] = 1.0;
939  ex->lightcolor[1] = 0.5;
940  ex->lightcolor[2] = 0.5;
941  ex->ent.model = cl_mod_explo4;
942  ex->frames = 19;
943  ex->baseframe = 30;
944  ex->ent.angles[1] = rand() % 360;
945  EXPLOSION_PARTICLES (pos);
946 #endif
948  S_StartSound (pos, 0, 0, cl_sfx_watrexp, 1, ATTN_NORM, 0);
949  else
950  S_StartSound (pos, 0, 0, cl_sfx_grenexp, 1, ATTN_NORM, 0);
951  break;
952 
953  // RAFAEL
954  case TE_PLASMA_EXPLOSION:
955  MSG_ReadPos (&net_message, pos);
956 #ifdef QMAX
957  CL_R_Explode_SP(pos);
958 // CL_ExplosionParticles (pos, 1);
959 // CL_ExplosionParticles (pos);
960 
961 #else
962  ex = CL_AllocExplosion ();
963  VectorCopy (pos, ex->ent.origin);
964  ex->type = ex_poly;
966  ex->start = cl.frame.servertime - 100;
967  ex->light = 350;
968  ex->lightcolor[0] = 1.0;
969  ex->lightcolor[1] = 0.5;
970  ex->lightcolor[2] = 0.5;
971  ex->ent.angles[1] = rand() % 360;
972  ex->ent.model = cl_mod_explo4;
973  if (frand() < 0.5)
974  ex->baseframe = 15;
975  ex->frames = 15;
976  EXPLOSION_PARTICLES (pos);
977 #endif
978  S_StartSound (pos, 0, 0, cl_sfx_rockexp, 1, ATTN_NORM, 0);
979  break;
980 
981  case TE_EXPLOSION1_BIG:
982 #ifdef QMAX
983  // PMM
984  MSG_ReadPos (&net_message, pos);
985  // /*
986 // if (modType("dday"))
987 // {
988 // CL_Explosion_Particle (pos, 250, true, true);
989 // CL_ExplosionParticles (pos, 5);
990 // CL_Radius_Explode_SP(pos, 5);
991 // }
992 // else
993 // {
994  CL_Explosion_Particle (pos, 100, true, true);
995  //CL_ExplosionParticles (pos, 2);
996  CL_ExplosionParticles (pos);
997 // CL_Radius_Explode_SP(pos, 2);
998 // }
999  S_StartSound (pos, 0, 0, cl_sfx_rockexp, 1, ATTN_NORM, 0);
1000  break;
1001 #endif
1002  case TE_EXPLOSION1_NP: // PMM
1003 #ifdef QMAX
1004  MSG_ReadPos (&net_message, pos);
1005  CL_Explosion_Particle (pos, 50, true, true);
1006  CL_ExplosionParticles (pos);
1007 // CL_ExplosionParticles (pos, 0.6666666);
1008 // CL_Radius_Explode_SP(pos, 0.6666666);
1009 
1010  S_StartSound (pos, 0, 0, cl_sfx_grenexp, 1, ATTN_NORM, 0);
1011  break;
1012 #endif
1013  case TE_EXPLOSION1:
1014  case TE_ROCKET_EXPLOSION:
1016  MSG_ReadPos (&net_message, pos);
1017 #ifdef QMAX
1018  CL_R_Explode_SP(pos);
1019  // CL_ExplosionParticles (pos, 1);
1020  CL_ExplosionParticles (pos);
1021 #else
1022  ex = CL_AllocExplosion ();
1023  VectorCopy (pos, ex->ent.origin);
1024  ex->type = ex_poly;
1026  ex->start = cl.frame.servertime - 100;
1027  ex->light = 350;
1028  ex->lightcolor[0] = 1.0;
1029  ex->lightcolor[1] = 0.5;
1030  ex->lightcolor[2] = 0.5;
1031  ex->ent.angles[1] = rand() % 360;
1032  if (type != TE_EXPLOSION1_BIG) // PMM
1033  ex->ent.model = cl_mod_explo4; // PMM
1034  else
1035  ex->ent.model = cl_mod_explo4_big;
1036  if (frand() < 0.5)
1037  ex->baseframe = 15;
1038  ex->frames = 15;
1039  if ((type != TE_EXPLOSION1_BIG) && (type != TE_EXPLOSION1_NP)) // PMM
1040  EXPLOSION_PARTICLES (pos); // PMM
1041 #endif
1043  S_StartSound (pos, 0, 0, cl_sfx_watrexp, 1, ATTN_NORM, 0);
1044  else
1045  S_StartSound (pos, 0, 0, cl_sfx_rockexp, 1, ATTN_NORM, 0);
1046  break;
1047 
1048  case TE_BFG_EXPLOSION:
1049  MSG_ReadPos (&net_message, pos);
1050  ex = CL_AllocExplosion ();
1051  VectorCopy (pos, ex->ent.origin);
1052  ex->type = ex_poly;
1054  ex->start = cl.frame.servertime - 100;
1055  ex->light = 350;
1056  ex->lightcolor[0] = 0.0;
1057  ex->lightcolor[1] = 1.0;
1058  ex->lightcolor[2] = 0.0;
1059  ex->ent.model = cl_mod_bfg_explo;
1060  ex->ent.flags |= RF_TRANSLUCENT;
1061  ex->ent.alpha = 0.30;
1062  ex->frames = 4;
1063  break;
1064 
1065  case TE_BFG_BIGEXPLOSION:
1066  MSG_ReadPos (&net_message, pos);
1068  break;
1069 
1070  case TE_BFG_LASER:
1071  CL_ParseLaser (0xd0d1d2d3);
1072  break;
1073 
1074  case TE_BUBBLETRAIL:
1075  MSG_ReadPos (&net_message, pos);
1077  CL_BubbleTrail (pos, pos2);
1078  break;
1079 
1080  case TE_PARASITE_ATTACK:
1081  case TE_MEDIC_CABLE_ATTACK:
1083  break;
1084 
1085  case TE_BOSSTPORT: // boss teleporting to station
1086  MSG_ReadPos (&net_message, pos);
1088  S_StartSound (pos, 0, 0, S_RegisterSound ("misc/bigtele.wav"), 1, ATTN_NONE, 0);
1089  break;
1090 
1091  case TE_GRAPPLE_CABLE:
1093  break;
1094 
1095  // RAFAEL
1096  case TE_WELDING_SPARKS:
1097  cnt = MSG_ReadByte (&net_message);
1098  MSG_ReadPos (&net_message, pos);
1099  MSG_ReadDir (&net_message, dir);
1100  color = MSG_ReadByte (&net_message);
1101  CL_ParticleEffect2 (pos, dir, color, cnt);
1102 
1103  ex = CL_AllocExplosion ();
1104  VectorCopy (pos, ex->ent.origin);
1105  ex->type = ex_flash;
1106  // note to self
1107  // we need a better no draw flag
1108  ex->ent.flags = RF_BEAM;
1109  ex->start = cl.frame.servertime - 0.1;
1110  ex->light = 100 + (rand()%75);
1111  ex->lightcolor[0] = 1.0;
1112  ex->lightcolor[1] = 1.0;
1113  ex->lightcolor[2] = 0.3;
1114  ex->ent.model = cl_mod_flash;
1115  ex->frames = 2;
1116  break;
1117 
1118  case TE_GREENBLOOD:
1119  MSG_ReadPos (&net_message, pos);
1120  MSG_ReadDir (&net_message, dir);
1121  CL_ParticleEffect2 (pos, dir, 0xdf, 30);
1122  break;
1123 
1124  // RAFAEL
1125  case TE_TUNNEL_SPARKS:
1126  cnt = MSG_ReadByte (&net_message);
1127  MSG_ReadPos (&net_message, pos);
1128  MSG_ReadDir (&net_message, dir);
1129  color = MSG_ReadByte (&net_message);
1130  CL_ParticleEffect3 (pos, dir, color, cnt);
1131  break;
1132 
1133 //=============
1134 //PGM
1135  // PMM -following code integrated for flechette (different color)
1136  case TE_BLASTER2: // green blaster hitting wall
1137  case TE_FLECHETTE: // flechette
1138  MSG_ReadPos (&net_message, pos);
1139  MSG_ReadDir (&net_message, dir);
1140 
1141  // PMM
1142  if (type == TE_BLASTER2)
1143  CL_BlasterParticles2 (pos, dir, 0xd0);
1144  else
1145  CL_BlasterParticles2 (pos, dir, 0x6f); // 75
1146 
1147  ex = CL_AllocExplosion ();
1148  VectorCopy (pos, ex->ent.origin);
1149  ex->ent.angles[0] = acos(dir[2])/M_PI*180;
1150  // PMM - fixed to correct for pitch of 0
1151  if (dir[0])
1152  ex->ent.angles[1] = atan2(dir[1], dir[0])/M_PI*180;
1153  else if (dir[1] > 0)
1154  ex->ent.angles[1] = 90;
1155  else if (dir[1] < 0)
1156  ex->ent.angles[1] = 270;
1157  else
1158  ex->ent.angles[1] = 0;
1159 
1160  ex->type = ex_misc;
1162 
1163  // PMM
1164  if (type == TE_BLASTER2)
1165  ex->ent.skinnum = 1;
1166  else // flechette
1167  ex->ent.skinnum = 2;
1168 
1169  ex->start = cl.frame.servertime - 100;
1170  ex->light = 150;
1171  // PMM
1172  if (type == TE_BLASTER2)
1173  ex->lightcolor[1] = 1;
1174  else // flechette
1175  {
1176  ex->lightcolor[0] = 0.19;
1177  ex->lightcolor[1] = 0.41;
1178  ex->lightcolor[2] = 0.75;
1179  }
1180  ex->ent.model = cl_mod_explode;
1181  ex->frames = 4;
1182  S_StartSound (pos, 0, 0, cl_sfx_lashit, 1, ATTN_NORM, 0);
1183  break;
1184 
1185 
1186  case TE_LIGHTNING:
1187 #ifdef QMAX
1188  ent = CL_ParseLightning (10);
1189 #else
1191 #endif
1193  break;
1194 
1195  case TE_DEBUGTRAIL:
1196  MSG_ReadPos (&net_message, pos);
1198  CL_DebugTrail (pos, pos2);
1199  break;
1200 
1201  case TE_PLAIN_EXPLOSION:
1202  MSG_ReadPos (&net_message, pos);
1203 
1204  ex = CL_AllocExplosion ();
1205  VectorCopy (pos, ex->ent.origin);
1206  ex->type = ex_poly;
1208  ex->start = cl.frame.servertime - 100;
1209  ex->light = 350;
1210  ex->lightcolor[0] = 1.0;
1211  ex->lightcolor[1] = 0.5;
1212  ex->lightcolor[2] = 0.5;
1213  ex->ent.angles[1] = rand() % 360;
1214  ex->ent.model = cl_mod_explo4;
1215  if (frand() < 0.5)
1216  ex->baseframe = 15;
1217  ex->frames = 15;
1219  S_StartSound (pos, 0, 0, cl_sfx_watrexp, 1, ATTN_NORM, 0);
1220  else
1221  S_StartSound (pos, 0, 0, cl_sfx_rockexp, 1, ATTN_NORM, 0);
1222  break;
1223 
1224  case TE_FLASHLIGHT:
1225  MSG_ReadPos(&net_message, pos);
1226  ent = MSG_ReadShort(&net_message);
1227  CL_Flashlight(ent, pos);
1228  break;
1229 
1230  case TE_FORCEWALL:
1231  MSG_ReadPos(&net_message, pos);
1233  color = MSG_ReadByte (&net_message);
1234  CL_ForceWall(pos, pos2, color);
1235  break;
1236 
1237  case TE_HEATBEAM:
1239  break;
1240 
1241  case TE_MONSTER_HEATBEAM:
1243  break;
1244 
1245  case TE_HEATBEAM_SPARKS:
1246 // cnt = MSG_ReadByte (&net_message);
1247  cnt = 50;
1248  MSG_ReadPos (&net_message, pos);
1249  MSG_ReadDir (&net_message, dir);
1250 // r = MSG_ReadByte (&net_message);
1251 // magnitude = MSG_ReadShort (&net_message);
1252  r = 8;
1253  magnitude = 60;
1254  color = r & 0xff;
1255  CL_ParticleSteamEffect (pos, dir, color, cnt, magnitude);
1256  S_StartSound (pos, 0, 0, cl_sfx_lashit, 1, ATTN_NORM, 0);
1257  break;
1258 
1259  case TE_HEATBEAM_STEAM:
1260 // cnt = MSG_ReadByte (&net_message);
1261  cnt = 20;
1262  MSG_ReadPos (&net_message, pos);
1263  MSG_ReadDir (&net_message, dir);
1264 // r = MSG_ReadByte (&net_message);
1265 // magnitude = MSG_ReadShort (&net_message);
1266 // color = r & 0xff;
1267  color = 0xe0;
1268  magnitude = 60;
1269  CL_ParticleSteamEffect (pos, dir, color, cnt, magnitude);
1270  S_StartSound (pos, 0, 0, cl_sfx_lashit, 1, ATTN_NORM, 0);
1271  break;
1272 
1273  case TE_STEAM:
1274  CL_ParseSteam();
1275  break;
1276 
1277  case TE_BUBBLETRAIL2:
1278 // cnt = MSG_ReadByte (&net_message);
1279  cnt = 8;
1280  MSG_ReadPos (&net_message, pos);
1282  CL_BubbleTrail2 (pos, pos2, cnt);
1283  S_StartSound (pos, 0, 0, cl_sfx_lashit, 1, ATTN_NORM, 0);
1284  break;
1285 
1286  case TE_MOREBLOOD:
1287  MSG_ReadPos (&net_message, pos);
1288  MSG_ReadDir (&net_message, dir);
1289  CL_ParticleEffect (pos, dir, 0xe8, 250);
1290  break;
1291 
1292  case TE_CHAINFIST_SMOKE:
1293  dir[0]=0; dir[1]=0; dir[2]=1;
1294  MSG_ReadPos(&net_message, pos);
1295  CL_ParticleSmokeEffect (pos, dir, 0, 20, 20);
1296  break;
1297 
1298  case TE_ELECTRIC_SPARKS:
1299  MSG_ReadPos (&net_message, pos);
1300  MSG_ReadDir (&net_message, dir);
1301 // CL_ParticleEffect (pos, dir, 109, 40);
1302  CL_ParticleEffect (pos, dir, 0x75, 40);
1303  //FIXME : replace or remove this sound
1304  S_StartSound (pos, 0, 0, cl_sfx_lashit, 1, ATTN_NORM, 0);
1305  break;
1306 
1307  case TE_TRACKER_EXPLOSION:
1308  MSG_ReadPos (&net_message, pos);
1309  CL_ColorFlash (pos, 0, 150, -1, -1, -1);
1310  CL_ColorExplosionParticles (pos, 0, 1);
1311 // CL_Tracker_Explode (pos);
1312  S_StartSound (pos, 0, 0, cl_sfx_disrexp, 1, ATTN_NORM, 0);
1313  break;
1314 
1315  case TE_TELEPORT_EFFECT:
1316  case TE_DBALL_GOAL:
1317  MSG_ReadPos (&net_message, pos);
1318  CL_TeleportParticles (pos);
1319  break;
1320 
1321  case TE_WIDOWBEAMOUT:
1322  CL_ParseWidow ();
1323  break;
1324 
1325  case TE_NUKEBLAST:
1326  CL_ParseNuke ();
1327  break;
1328 
1329  case TE_WIDOWSPLASH:
1330  MSG_ReadPos (&net_message, pos);
1331  CL_WidowSplash (pos);
1332  break;
1333 #if 0
1334  //NEW CUSTOM TEMP EVENTS
1335 
1336  case TE_LIGHTNINGFLARE: //-psychospaz
1337  {
1338  int num, entity;
1339 
1340  entity = MSG_ReadShort (&net_message);
1341  num = MSG_ReadShort (&net_message);
1342  MSG_ReadPos (&net_message, pos);
1343 
1344  //double up for opacity endurance
1345  CL_LightningFlare(pos, entity, 2*num);
1346  CL_LightningFlare(pos, entity, 2*num+1);
1347  }
1348  break;
1349  case TE_SMOKEPUFF: //hahaha server declared stains biotch - psychospaz
1350  {
1351  float size;
1352 
1353  MSG_ReadPos (&net_message, pos);
1354  MSG_ReadPos (&net_message, dir);
1356 
1357  CL_ParticleSmokeEffect (pos, dir, size);
1358  }
1359  break;
1360  case TE_STAIN: //hahaha server declared stains biotch - psychospaz
1361  {
1362  float intens;
1363  int i, color[3];
1364 
1365  MSG_ReadPos (&net_message, pos);
1366  intens = MSG_ReadFloat(&net_message);
1367  for (i=0;i<3;i++)
1368  color[i] = -MSG_ReadByte(&net_message);
1369 
1370  re.AddStain(pos, intens,
1371  color[0],
1372  color[1],
1373  color[2]);
1374  }
1375  break;
1376  case TE_FOOTPRINT:
1377  {
1378  float size;
1379  vec3_t color, angle;
1380 
1381  MSG_ReadPos (&net_message, pos);
1382  MSG_ReadPos (&net_message, dir);
1383  MSG_ReadPos (&net_message, color);
1385 
1386  angle[0] = anglemod(dir[0] + 180);
1387  angle[1] = anglemod(dir[1]);
1388  angle[2] = anglemod(dir[2]);
1389 
1390  CL_ParticleFootPrint (pos, angle, size, color);
1391  }
1392  break;
1393  case TE_FLAMEBURST:
1394  {
1395  float size;
1396 
1397  MSG_ReadPos (&net_message, pos);
1399 
1400  CL_FlameBurst (pos, size);
1401  }
1402  break;
1403  case TE_LASERSTUN:
1404  {
1405  int i;
1406  float size;
1407  vec3_t color;
1408 
1409  MSG_ReadPos (&net_message, pos);
1410  MSG_ReadPos (&net_message, dir);
1412  for (i=0;i<3;i++)
1413  color[i] = (float)MSG_ReadByte(&net_message);
1414 
1415  CL_LaserStun (pos, dir, color, size);
1416  }
1417  break;
1418  case TE_STUNBLAST:
1419  {
1420  int i;
1421  float size;
1422  vec3_t color;
1423 
1424  MSG_ReadPos (&net_message, pos);
1426  for (i=0;i<3;i++)
1427  color[i] = (float)MSG_ReadByte(&net_message);
1428 
1429  CL_StunBlast (pos, color, size);
1430  }
1431  break;
1432  case TE_DISRUPTOR_EXPLOSION:
1433  {
1434  float size;
1435 
1436  MSG_ReadPos (&net_message, pos);
1438 
1440 
1441  S_StartSound (pos, 0, 0, cl_sfx_rockexp, 1, ATTN_NORM, 0);
1442  }
1443  break;
1444  case TE_DISINTEGRATE:
1445  {
1446  ent = MSG_ReadByte(&net_message);
1447  MSG_ReadPos (&net_message, pos);
1448  CL_Disintegrate (pos, ent);
1449  }
1450  break;
1451  case TE_LENSFLARE:
1452  {
1453  float size, time;
1454 
1455  MSG_ReadPos (&net_message, pos);
1456  MSG_ReadPos (&net_message, dir);
1458  time = MSG_ReadFloat (&net_message);
1459 
1460  CL_LensFlare(pos, dir, size, time);
1461  }
1462  break;
1463  case TE_WEATHERFX:
1464  {
1465  vec3_t color;
1466  int type;
1467  float size, time;
1468 
1469  MSG_ReadPos (&net_message, pos);
1470  MSG_ReadPos (&net_message, dir);
1471  MSG_ReadPos (&net_message, color);
1474  time = MSG_ReadFloat (&net_message);
1475 
1476  CL_WeatherFx(pos, dir, color, type, size, time);
1477  }
1478  break;
1479 
1480 #endif
1481 //PGM
1482 //==============
1483 
1484  default:
1485  Com_Error (ERR_DROP, "CL_ParseTEnt: bad type");
1486  }
1487 }

Referenced by CL_ParseServerMessage().

◆ CL_ParticleEffect()

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

Definition at line 1011 of file cl_fx.c.

1012 {
1013  int i, j;
1014  cparticle_t *p;
1015  float d;
1016 
1017  for (i=0 ; i<count ; i++)
1018  {
1019  if (!free_particles)
1020  return;
1021  p = free_particles;
1022  free_particles = p->next;
1023  p->next = active_particles;
1024  active_particles = p;
1025 
1026  p->time = cl.time;
1027 #ifdef QMAX
1028  p->color[0] = color + (rand()&7);
1029  p->color[1] = color + (rand()&7);
1030  p->color[2] = color + (rand()&7);
1031 #else
1032  p->color = color + (rand()&7);
1033 #endif
1034  d = rand()&31;
1035  for (j=0 ; j<3 ; j++)
1036  {
1037  p->org[j] = org[j] + ((rand()&7)-4) + d*dir[j];
1038  p->vel[j] = crand()*20;
1039  }
1040 
1041  p->accel[0] = p->accel[1] = 0;
1042  p->accel[2] = -PARTICLE_GRAVITY;
1043  p->alpha = 1.0;
1044 
1045  p->alphavel = -1.0 / (0.5 + frand()*0.3);
1046  }
1047 }

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 1055 of file cl_fx.c.

1056 {
1057  int i, j;
1058  cparticle_t *p;
1059  float d;
1060 
1061  for (i=0 ; i<count ; i++)
1062  {
1063  if (!free_particles)
1064  return;
1065  p = free_particles;
1066  free_particles = p->next;
1067  p->next = active_particles;
1068  active_particles = p;
1069 
1070  p->time = cl.time;
1071 #ifdef QMAX
1072  p->color[0] = color;
1073  p->color[1] = color;
1074  p->color[2] = color;
1075 #else
1076  p->color = color;
1077 #endif
1078 
1079  d = rand()&7;
1080  for (j=0 ; j<3 ; j++)
1081  {
1082  p->org[j] = org[j] + ((rand()&7)-4) + d*dir[j];
1083  p->vel[j] = crand()*20;
1084  }
1085 
1086  p->accel[0] = p->accel[1] = 0;
1087  p->accel[2] = -PARTICLE_GRAVITY;
1088  p->alpha = 1.0;
1089 
1090  p->alphavel = -1.0 / (0.5 + frand()*0.3);
1091  }
1092 }

Referenced by CL_ParseTEnt().

◆ CL_ParticleEffect3()

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

Definition at line 1101 of file cl_fx.c.

1102 {
1103  int i, j;
1104  cparticle_t *p;
1105  float d;
1106 
1107  for (i=0 ; i<count ; i++)
1108  {
1109  if (!free_particles)
1110  return;
1111  p = free_particles;
1112  free_particles = p->next;
1113  p->next = active_particles;
1114  active_particles = p;
1115 
1116  p->time = cl.time;
1117 #ifdef QMAX
1118  p->color[0] = color;
1119  p->color[1] = color;
1120  p->color[2] = color;
1121 #else
1122  p->color = color;
1123 #endif
1124 
1125  d = rand()&7;
1126  for (j=0 ; j<3 ; j++)
1127  {
1128  p->org[j] = org[j] + ((rand()&7)-4) + d*dir[j];
1129  p->vel[j] = crand()*20;
1130  }
1131 
1132  p->accel[0] = p->accel[1] = 0;
1133  p->accel[2] = PARTICLE_GRAVITY;
1134  p->alpha = 1.0;
1135 
1136  p->alphavel = -1.0 / (0.5 + frand()*0.3);
1137  }
1138 }

Referenced by CL_ParseTEnt().

◆ CL_ParticleSmokeEffect()

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

Definition at line 1331 of file cl_newfx.c.

1332 {
1333  int i, j;
1334  cparticle_t *p;
1335  float d;
1336  vec3_t r, u;
1337 
1338  MakeNormalVectors (dir, r, u);
1339 
1340  for (i=0 ; i<count ; i++)
1341  {
1342  if (!free_particles)
1343  return;
1344  p = free_particles;
1345  free_particles = p->next;
1346  p->next = active_particles;
1347  active_particles = p;
1348 
1349  p->time = cl.time;
1350 #ifndef QMAX
1351  p->color = color + (rand()&7);
1352 #endif
1353  for (j=0 ; j<3 ; j++)
1354  {
1355  p->org[j] = org[j] + magnitude*0.1*crand();
1356 // p->vel[j] = dir[j]*magnitude;
1357  }
1358  VectorScale (dir, magnitude, p->vel);
1359  d = crand()*magnitude/3;
1360  VectorMA (p->vel, d, r, p->vel);
1361  d = crand()*magnitude/3;
1362  VectorMA (p->vel, d, u, p->vel);
1363 
1364  p->accel[0] = p->accel[1] = p->accel[2] = 0;
1365  p->alpha = 1.0;
1366 
1367  p->alphavel = -1.0 / (0.5 + frand()*0.3);
1368  }
1369 }

Referenced by CL_ParseTEnt().

◆ CL_ParticleSteamEffect()

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

Definition at line 844 of file cl_newfx.c.

845 {
846  int i, j;
847  cparticle_t *p;
848  float d;
849  vec3_t r, u;
850 
851 // vectoangles2 (dir, angle_dir);
852 // AngleVectors (angle_dir, f, r, u);
853 
854  MakeNormalVectors (dir, r, u);
855 
856  for (i=0 ; i<count ; i++)
857  {
858  if (!free_particles)
859  return;
860  p = free_particles;
861  free_particles = p->next;
862  p->next = active_particles;
863  active_particles = p;
864 
865  p->time = cl.time;
866 #ifndef QMAX
867  p->color = color + (rand()&7);
868 #endif
869  for (j=0 ; j<3 ; j++)
870  {
871  p->org[j] = org[j] + magnitude*0.1*crand();
872 // p->vel[j] = dir[j]*magnitude;
873  }
874  VectorScale (dir, magnitude, p->vel);
875  d = crand()*magnitude/3;
876  VectorMA (p->vel, d, r, p->vel);
877  d = crand()*magnitude/3;
878  VectorMA (p->vel, d, u, p->vel);
879 
880  p->accel[0] = p->accel[1] = 0;
881  p->accel[2] = -PARTICLE_GRAVITY/2;
882  p->alpha = 1.0;
883 
884  p->alphavel = -1.0 / (0.5 + frand()*0.3);
885  }
886 }

Referenced by CL_ParseSteam(), and CL_ParseTEnt().

◆ CL_ParticleSteamEffect2()

void CL_ParticleSteamEffect2 ( cl_sustain_t self)

Definition at line 888 of file cl_newfx.c.

890 {
891  int i, j;
892  cparticle_t *p;
893  float d;
894  vec3_t r, u;
895  vec3_t dir;
896 
897 // vectoangles2 (dir, angle_dir);
898 // AngleVectors (angle_dir, f, r, u);
899 
900  VectorCopy (self->dir, dir);
901  MakeNormalVectors (dir, r, u);
902 
903  for (i=0 ; i<self->count ; i++)
904  {
905  if (!free_particles)
906  return;
907  p = free_particles;
908  free_particles = p->next;
909  p->next = active_particles;
910  active_particles = p;
911 
912  p->time = cl.time;
913 #ifndef QMAX
914  p->color = self->color + (rand()&7);
915 #endif
916  for (j=0 ; j<3 ; j++)
917  {
918  p->org[j] = self->org[j] + self->magnitude*0.1*crand();
919 // p->vel[j] = dir[j]*magnitude;
920  }
921  VectorScale (dir, self->magnitude, p->vel);
922  d = crand()*self->magnitude/3;
923  VectorMA (p->vel, d, r, p->vel);
924  d = crand()*self->magnitude/3;
925  VectorMA (p->vel, d, u, p->vel);
926 
927  p->accel[0] = p->accel[1] = 0;
928  p->accel[2] = -PARTICLE_GRAVITY/2;
929  p->alpha = 1.0;
930 
931  p->alphavel = -1.0 / (0.5 + frand()*0.3);
932  }
933  self->nextthink += self->thinkinterval;
934 }

Referenced by CL_ParseSteam().

◆ CL_PingServers_f()

void CL_PingServers_f ( void  )

Definition at line 817 of file cl_main.c.

818 {
819  int i;
820  netadr_t adr;
821  char name[32];
822  char *adrstring;
823  cvar_t *noudp;
824  cvar_t *noipx;
825 
826  NET_Config (true); // allow remote
827 
828  // send a broadcast packet
829  Com_Printf ("pinging broadcast...\n");
830 
831  noudp = Cvar_Get ("noudp", "0", CVAR_NOSET);
832  if (!noudp->value)
833  {
834  adr.type = NA_BROADCAST;
835  adr.port = BigShort(PORT_SERVER);
837 #ifdef HAVE_IPV6
838  Com_Printf ("pinging multicast...\n");
839  adr.type = NA_MULTICAST6;
840  adr.port = BigShort(PORT_SERVER);
842 #endif
843  }
844 
845  noipx = Cvar_Get ("noipx", "0", CVAR_NOSET);
846  if (!noipx->value)
847  {
848  adr.type = NA_BROADCAST_IPX;
849  adr.port = BigShort(PORT_SERVER);
851  }
852 
853  // send a packet to each address book entry
854  for (i=0 ; i<16 ; i++)
855  {
856  Com_sprintf (name, sizeof(name), "adr%i", i);
857  adrstring = Cvar_VariableString (name);
858  if (!adrstring || !adrstring[0])
859  continue;
860 
861  Com_Printf ("pinging %s...\n", adrstring);
862  if (!NET_StringToAdr (adrstring, &adr))
863  {
864  Com_Printf ("Bad address: %s\n", adrstring);
865  continue;
866  }
867  if (!adr.port)
868  adr.port = BigShort(PORT_SERVER);
870  }
871 }

Referenced by CL_InitLocal(), and SearchLocalGames().

◆ 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 296 of file cl_view.c.

297 {
298  char mapname[32];
299  int i;
300  char name[MAX_QPATH];
301  float rotate;
302  vec3_t axis;
303 
304  if (!cl.configstrings[CS_MODELS+1][0])
305  return; // no map loaded
306 
307  SCR_AddDirtyPoint (0, 0);
309 
310  // let the render dll load the map
311  strcpy (mapname, cl.configstrings[CS_MODELS+1] + 5); // skip "maps/"
312  mapname[strlen(mapname)-4] = 0; // cut off ".bsp"
313 
314  // register models, pics, and skins
315  Com_Printf ("Map: %s\r", mapname);
316  SCR_UpdateScreen ();
317  re.BeginRegistration (mapname);
318  Com_Printf (" \r");
319 
320  // precache status bar pics
321  Com_Printf ("pics\r");
322  SCR_UpdateScreen ();
323  SCR_TouchPics ();
324  Com_Printf (" \r");
325 
327 
329  strcpy(cl_weaponmodels[0], "weapon.md2");
330 
331  for (i=1 ; i<MAX_MODELS && cl.configstrings[CS_MODELS+i][0] ; i++)
332  {
333  strcpy (name, cl.configstrings[CS_MODELS+i]);
334  name[37] = 0; // never go beyond one line
335  if (name[0] != '*')
336  Com_Printf ("%s\r", name);
337  SCR_UpdateScreen ();
338  Sys_SendKeyEvents (); // pump message loop
339  if (name[0] == '#')
340  {
341  // special player weapon model
343  {
345  sizeof(cl_weaponmodels[num_cl_weaponmodels]) - 1);
347  }
348  }
349  else
350  {
352  if (name[0] == '*')
354  else
355  cl.model_clip[i] = NULL;
356  }
357  if (name[0] != '*')
358  Com_Printf (" \r");
359  }
360 
361  Com_Printf ("images\r", i);
362  SCR_UpdateScreen ();
363  for (i=1 ; i<MAX_IMAGES && cl.configstrings[CS_IMAGES+i][0] ; i++)
364  {
366  Sys_SendKeyEvents (); // pump message loop
367  }
368 
369  Com_Printf (" \r");
370  for (i=0 ; i<MAX_CLIENTS ; i++)
371  {
372  if (!cl.configstrings[CS_PLAYERSKINS+i][0])
373  continue;
374  Com_Printf ("client %i\r", i);
375  SCR_UpdateScreen ();
376  Sys_SendKeyEvents (); // pump message loop
378  Com_Printf (" \r");
379  }
380 
381  CL_LoadClientinfo (&cl.baseclientinfo, "unnamed\\male/grunt");
382 
383  // set sky textures and speed
384  Com_Printf ("sky\r", i);
385  SCR_UpdateScreen ();
386  rotate = atof (cl.configstrings[CS_SKYROTATE]);
387  sscanf (cl.configstrings[CS_SKYAXIS], "%f %f %f",
388  &axis[0], &axis[1], &axis[2]);
389  re.SetSky (cl.configstrings[CS_SKY], rotate, axis);
390  Com_Printf (" \r");
391 
392  // the renderer can now free unneeded stuff
393  re.EndRegistration ();
394 
395  // clear any lines of console text
396  Con_ClearNotify ();
397 
398  SCR_UpdateScreen ();
399  cl.refresh_prepped = true;
400  cl.force_refdef = true; // make sure we have a valid refdef
401 
402  // start the cd track
403  if (Cvar_VariableValue("cd_shuffle")){
405  }
406  else{
407  CDAudio_Play (atoi(cl.configstrings[CS_CDTRACK]), true);
408  }
409 }

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

◆ CL_QuadTrail()

void CL_QuadTrail ( vec3_t  start,
vec3_t  end 
)

Definition at line 1456 of file cl_fx.c.

1457 {
1458  vec3_t move;
1459  vec3_t vec;
1460  float len;
1461  int j;
1462  cparticle_t *p;
1463  int dec;
1464 
1465  VectorCopy (start, move);
1466  VectorSubtract (end, start, vec);
1467  len = VectorNormalize (vec);
1468 
1469  dec = 5;
1470  VectorScale (vec, 5, vec);
1471 
1472  while (len > 0)
1473  {
1474  len -= dec;
1475 
1476  if (!free_particles)
1477  return;
1478  p = free_particles;
1479  free_particles = p->next;
1480  p->next = active_particles;
1481  active_particles = p;
1482  VectorClear (p->accel);
1483 
1484  p->time = cl.time;
1485 
1486  p->alpha = 1.0;
1487  p->alphavel = -1.0 / (0.8+frand()*0.2);
1488 #ifndef QMAX
1489  p->color = 115;
1490 #endif
1491  for (j=0 ; j<3 ; j++)
1492  {
1493  p->org[j] = move[j] + crand()*16;
1494  p->vel[j] = crand()*5;
1495  p->accel[j] = 0;
1496  }
1497 
1498  VectorAdd (move, vec, move);
1499  }
1500 }

◆ CL_Quit_f()

void CL_Quit_f ( void  )

Definition at line 399 of file cl_main.c.

400 {
401  CL_Disconnect ();
402  Com_Quit ();
403 }

Referenced by CL_InitLocal(), and M_Quit_Key().

◆ CL_RailTrail()

void CL_RailTrail ( vec3_t  start,
vec3_t  end 
)

Definition at line 1750 of file cl_fx.c.

1751 {
1752  vec3_t move;
1753  vec3_t vec;
1754  float len;
1755  int j;
1756  cparticle_t *p;
1757  float dec;
1758  vec3_t right, up;
1759  int i;
1760  float d, c, s;
1761  vec3_t dir;
1762  byte clr = 0x74;
1763 
1764  VectorCopy (start, move);
1765  VectorSubtract (end, start, vec);
1766  len = VectorNormalize (vec);
1767 
1768  MakeNormalVectors (vec, right, up);
1769 
1770  for (i=0 ; i<len ; i++)
1771  {
1772  if (!free_particles)
1773  return;
1774 
1775  p = free_particles;
1776  free_particles = p->next;
1777  p->next = active_particles;
1778  active_particles = p;
1779 
1780  p->time = cl.time;
1781  VectorClear (p->accel);
1782 
1783  d = i * 0.1;
1784  c = cos(d);
1785  s = sin(d);
1786 
1787  VectorScale (right, c, dir);
1788  VectorMA (dir, s, up, dir);
1789 
1790  p->alpha = 1.0;
1791  p->alphavel = -1.0 / (1+frand()*0.2);
1792 #ifndef QMAX
1793  p->color = clr + (rand()&7);
1794 #endif
1795  for (j=0 ; j<3 ; j++)
1796  {
1797  p->org[j] = move[j] + dir[j]*3;
1798  p->vel[j] = dir[j]*6;
1799  }
1800 
1801  VectorAdd (move, vec, move);
1802  }
1803 
1804  dec = 0.75;
1805  VectorScale (vec, dec, vec);
1806  VectorCopy (start, move);
1807 
1808  while (len > 0)
1809  {
1810  len -= dec;
1811 
1812  if (!free_particles)
1813  return;
1814  p = free_particles;
1815  free_particles = p->next;
1816  p->next = active_particles;
1817  active_particles = p;
1818 
1819  p->time = cl.time;
1820  VectorClear (p->accel);
1821 
1822  p->alpha = 1.0;
1823  p->alphavel = -1.0 / (0.6+frand()*0.2);
1824 #ifndef QMAX
1825  p->color = 0x0 + (rand()&15);
1826 #endif
1827  for (j=0 ; j<3 ; j++)
1828  {
1829  p->org[j] = move[j] + crand()*3;
1830  p->vel[j] = crand()*3;
1831  p->accel[j] = 0;
1832  }
1833 
1834  VectorAdd (move, vec, move);
1835  }
1836 }

Referenced by CL_ParseTEnt().

◆ CL_ReadFromServer()

int CL_ReadFromServer ( void  )

◆ CL_ReadPackets()

void CL_ReadPackets ( void  )

Definition at line 1011 of file cl_main.c.

1012 {
1014  {
1015 // Com_Printf ("packet\n");
1016  //
1017  // remote command packet
1018  //
1019  if (*(int *)net_message.data == -1)
1020  {
1022  continue;
1023  }
1024 
1026  continue; // dump it if not connected
1027 
1028  if (net_message.cursize < 8)
1029  {
1030  Com_Printf ("%s: Runt packet\n",NET_AdrToString(net_from));
1031  continue;
1032  }
1033 
1034  //
1035  // packet from server
1036  //
1038  {
1039  Com_DPrintf ("%s:sequenced packet without connection\n"
1041  continue;
1042  }
1044  continue; // wasn't accepted for some reason
1046  }
1047 
1048  //
1049  // check timeout
1050  //
1051  if (cls.state >= ca_connected
1053  {
1054  if (++cl.timeoutcount > 5) // timeoutcount saves debugger
1055  {
1056  Com_Printf ("\nServer connection timed out.\n");
1057  CL_Disconnect ();
1058  return;
1059  }
1060  }
1061  else
1062  cl.timeoutcount = 0;
1063 
1064 }

Referenced by CL_Frame().

◆ CL_Record_f()

void CL_Record_f ( void  )

Definition at line 175 of file cl_main.c.

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

Referenced by CL_InitLocal().

◆ CL_RegisterSounds()

void CL_RegisterSounds ( void  )

Definition at line 183 of file cl_parse.c.

184 {
185  int i;
186 
189  for (i=1 ; i<MAX_SOUNDS ; i++)
190  {
191  if (!cl.configstrings[CS_SOUNDS+i][0])
192  break;
194  Sys_SendKeyEvents (); // pump message loop
195  }
197 }

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

◆ CL_RegisterTEntModels()

void CL_RegisterTEntModels ( void  )

Definition at line 188 of file cl_tent.c.

189 {
190  cl_mod_explode = re.RegisterModel ("models/objects/explode/tris.md2");
191  cl_mod_smoke = re.RegisterModel ("models/objects/smoke/tris.md2");
192  cl_mod_flash = re.RegisterModel ("models/objects/flash/tris.md2");
193  cl_mod_parasite_segment = re.RegisterModel ("models/monsters/parasite/segment/tris.md2");
194  cl_mod_grapple_cable = re.RegisterModel ("models/ctf/segment/tris.md2");
195  cl_mod_parasite_tip = re.RegisterModel ("models/monsters/parasite/tip/tris.md2");
196  cl_mod_explo4 = re.RegisterModel ("models/objects/r_explode/tris.md2");
197  cl_mod_bfg_explo = re.RegisterModel ("sprites/s_bfg2.sp2");
198  cl_mod_powerscreen = re.RegisterModel ("models/items/armor/effect/tris.md2");
199 
200 re.RegisterModel ("models/objects/laser/tris.md2");
201 re.RegisterModel ("models/objects/grenade2/tris.md2");
202 re.RegisterModel ("models/weapons/v_machn/tris.md2");
203 re.RegisterModel ("models/weapons/v_handgr/tris.md2");
204 re.RegisterModel ("models/weapons/v_shotg2/tris.md2");
205 re.RegisterModel ("models/objects/gibs/bone/tris.md2");
206 re.RegisterModel ("models/objects/gibs/sm_meat/tris.md2");
207 re.RegisterModel ("models/objects/gibs/bone2/tris.md2");
208 // RAFAEL
209 // re.RegisterModel ("models/objects/blaser/tris.md2");
210 
211 re.RegisterPic ("w_machinegun");
212 re.RegisterPic ("a_bullets");
213 re.RegisterPic ("i_health");
214 re.RegisterPic ("a_grenades");
215 
216 //ROGUE
217  cl_mod_explo4_big = re.RegisterModel ("models/objects/r_explode2/tris.md2");
218  cl_mod_lightning = re.RegisterModel ("models/proj/lightning/tris.md2");
219  cl_mod_heatbeam = re.RegisterModel ("models/proj/beam/tris.md2");
220  cl_mod_monster_heatbeam = re.RegisterModel ("models/proj/widowbeam/tris.md2");
221 //ROGUE
222 }

Referenced by CL_PrepRefresh().

◆ CL_RegisterTEntSounds()

void CL_RegisterTEntSounds ( void  )

Definition at line 141 of file cl_tent.c.

142 {
143  int i;
144  char name[MAX_QPATH];
145 
146  // PMM - version stuff
147 // Com_Printf ("%s\n", ROGUE_VERSION_STRING);
148  // PMM
149  cl_sfx_ric1 = S_RegisterSound ("world/ric1.wav");
150  cl_sfx_ric2 = S_RegisterSound ("world/ric2.wav");
151  cl_sfx_ric3 = S_RegisterSound ("world/ric3.wav");
152  cl_sfx_lashit = S_RegisterSound("weapons/lashit.wav");
153  cl_sfx_spark5 = S_RegisterSound ("world/spark5.wav");
154  cl_sfx_spark6 = S_RegisterSound ("world/spark6.wav");
155  cl_sfx_spark7 = S_RegisterSound ("world/spark7.wav");
156  cl_sfx_railg = S_RegisterSound ("weapons/railgf1a.wav");
157  cl_sfx_rockexp = S_RegisterSound ("weapons/rocklx1a.wav");
158  cl_sfx_grenexp = S_RegisterSound ("weapons/grenlx1a.wav");
159  cl_sfx_watrexp = S_RegisterSound ("weapons/xpld_wat.wav");
160  // RAFAEL
161  // cl_sfx_plasexp = S_RegisterSound ("weapons/plasexpl.wav");
162  S_RegisterSound ("player/land1.wav");
163 
164  S_RegisterSound ("player/fall2.wav");
165  S_RegisterSound ("player/fall1.wav");
166 
167  for (i=0 ; i<4 ; i++)
168  {
169  Com_sprintf (name, sizeof(name), "player/step%i.wav", i+1);
171  }
172 
173 //PGM
174  cl_sfx_lightning = S_RegisterSound ("weapons/tesla.wav");
175  cl_sfx_disrexp = S_RegisterSound ("weapons/disrupthit.wav");
176  // version stuff
177 // sprintf (name, "weapons/sound%d.wav", ROGUE_VERSION_ID);
178 // if (name[0] == 'w')
179 // name[0] = 'W';
180 //PGM
181 }

Referenced by CL_RegisterSounds().

◆ CL_RequestNextDownload()

void CL_RequestNextDownload ( void  )

Definition at line 1141 of file cl_main.c.

1142 {
1143  unsigned map_checksum; // for detecting cheater maps
1144  char fn[MAX_OSPATH];
1145  dmdl_t *pheader;
1146 
1147  if (cls.state != ca_connected)
1148  return;
1149 
1152 
1153 //ZOID
1154  if (precache_check == CS_MODELS) { // confirm map
1155  precache_check = CS_MODELS+2; // 0 isn't used
1158  return; // started a download
1159  }
1162  while (precache_check < CS_MODELS+MAX_MODELS &&
1164  if (cl.configstrings[precache_check][0] == '*' ||
1165  cl.configstrings[precache_check][0] == '#') {
1166  precache_check++;
1167  continue;
1168  }
1169  if (precache_model_skin == 0) {
1171  precache_model_skin = 1;
1172  return; // started a download
1173  }
1174  precache_model_skin = 1;
1175  }
1176 
1177  // checking for skins in the model
1178  if (!precache_model) {
1179 
1181  if (!precache_model) {
1182  precache_model_skin = 0;
1183  precache_check++;
1184  continue; // couldn't load it
1185  }
1186  if (LittleLong(*(unsigned *)precache_model) != IDALIASHEADER) {
1187  // not an alias model
1189  precache_model = 0;
1190  precache_model_skin = 0;
1191  precache_check++;
1192  continue;
1193  }
1194  pheader = (dmdl_t *)precache_model;
1195  if (LittleLong (pheader->version) != ALIAS_VERSION) {
1196  precache_check++;
1197  precache_model_skin = 0;
1198  continue; // couldn't load it
1199  }
1200  }
1201 
1202  pheader = (dmdl_t *)precache_model;
1203 
1204  while (precache_model_skin - 1 < LittleLong(pheader->num_skins)) {
1205  if (!CL_CheckOrDownloadFile((char *)precache_model +
1206  LittleLong(pheader->ofs_skins) +
1209  return; // started a download
1210  }
1212  }
1213  if (precache_model) {
1215  precache_model = 0;
1216  }
1217  precache_model_skin = 0;
1218  precache_check++;
1219  }
1220  }
1222  }
1225  if (precache_check == CS_SOUNDS)
1226  precache_check++; // zero is blank
1227  while (precache_check < CS_SOUNDS+MAX_SOUNDS &&
1229  if (cl.configstrings[precache_check][0] == '*') {
1230  precache_check++;
1231  continue;
1232  }
1233  Com_sprintf(fn, sizeof(fn), "sound/%s", cl.configstrings[precache_check++]);
1234  if (!CL_CheckOrDownloadFile(fn))
1235  return; // started a download
1236  }
1237  }
1239  }
1241  if (precache_check == CS_IMAGES)
1242  precache_check++; // zero is blank
1243  while (precache_check < CS_IMAGES+MAX_IMAGES &&
1245  Com_sprintf(fn, sizeof(fn), "pics/%s.pcx", cl.configstrings[precache_check++]);
1246  if (!CL_CheckOrDownloadFile(fn))
1247  return; // started a download
1248  }
1250  }
1251  // skins are special, since a player has three things to download:
1252  // model, weapon model and skin
1253  // so precache_check is now *3
1257  int i, n;
1258  char model[MAX_QPATH], skin[MAX_QPATH], *p;
1259 
1262 
1263  if (!cl.configstrings[CS_PLAYERSKINS+i][0]) {
1265  continue;
1266  }
1267 
1268  if ((p = strchr(cl.configstrings[CS_PLAYERSKINS+i], '\\')) != NULL)
1269  p++;
1270  else
1272  strcpy(model, p);
1273  p = strchr(model, '/');
1274  if (!p)
1275  p = strchr(model, '\\');
1276  if (p) {
1277  *p++ = 0;
1278  strcpy(skin, p);
1279  } else
1280  *skin = 0;
1281 
1282  switch (n) {
1283  case 0: // model
1284  Com_sprintf(fn, sizeof(fn), "players/%s/tris.md2", model);
1285  if (!CL_CheckOrDownloadFile(fn)) {
1287  return; // started a download
1288  }
1289  n++;
1290  /*FALL THROUGH*/
1291 
1292  case 1: // weapon model
1293  Com_sprintf(fn, sizeof(fn), "players/%s/weapon.md2", model);
1294  if (!CL_CheckOrDownloadFile(fn)) {
1296  return; // started a download
1297  }
1298  n++;
1299  /*FALL THROUGH*/
1300 
1301  case 2: // weapon skin
1302  Com_sprintf(fn, sizeof(fn), "players/%s/weapon.pcx", model);
1303  if (!CL_CheckOrDownloadFile(fn)) {
1305  return; // started a download
1306  }
1307  n++;
1308  /*FALL THROUGH*/
1309 
1310  case 3: // skin
1311  Com_sprintf(fn, sizeof(fn), "players/%s/%s.pcx", model, skin);
1312  if (!CL_CheckOrDownloadFile(fn)) {
1314  return; // started a download
1315  }
1316  n++;
1317  /*FALL THROUGH*/
1318 
1319  case 4: // skin_i
1320  Com_sprintf(fn, sizeof(fn), "players/%s/%s_i.pcx", model, skin);
1321  if (!CL_CheckOrDownloadFile(fn)) {
1323  return; // started a download
1324  }
1325  // move on to next model
1327  }
1328  }
1329  }
1330  // precache phase completed
1332  }
1333 
1334  if (precache_check == ENV_CNT) {
1335  precache_check = ENV_CNT + 1;
1336 
1337  CM_LoadMap (cl.configstrings[CS_MODELS+1], true, &map_checksum);
1338 
1339  if (map_checksum != atoi(cl.configstrings[CS_MAPCHECKSUM])) {
1340  Com_Error (ERR_DROP, "Local map version differs from server: %i != '%s'\n",
1341  map_checksum, cl.configstrings[CS_MAPCHECKSUM]);
1342  return;
1343  }
1344  }
1345 
1348  while (precache_check < TEXTURE_CNT) {
1349  int n = precache_check++ - ENV_CNT - 1;
1350 
1351  if (n & 1)
1352  Com_sprintf(fn, sizeof(fn), "env/%s%s.pcx",
1353  cl.configstrings[CS_SKY], env_suf[n/2]);
1354  else
1355  Com_sprintf(fn, sizeof(fn), "env/%s%s.tga",
1356  cl.configstrings[CS_SKY], env_suf[n/2]);
1357  if (!CL_CheckOrDownloadFile(fn))
1358  return; // started a download
1359  }
1360  }
1362  }
1363 
1364  if (precache_check == TEXTURE_CNT) {
1366  precache_tex = 0;
1367  }
1368 
1369  // confirm existance of textures, download any that don't exist
1370  if (precache_check == TEXTURE_CNT+1) {
1371  // from qcommon/cmodel.c
1372  extern int numtexinfo;
1373  extern mapsurface_t map_surfaces[];
1374 
1376  while (precache_tex < numtexinfo) {
1377  char fn[MAX_OSPATH];
1378 
1379  sprintf(fn, "textures/%s.wal", map_surfaces[precache_tex++].rname);
1380  if (!CL_CheckOrDownloadFile(fn))
1381  return; // started a download
1382  }
1383  }
1385  }
1386 
1387 //ZOID
1388  CL_RegisterSounds ();
1389  CL_PrepRefresh ();
1390 
1393 }

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 1691 of file cl_fx.c.

1692 {
1693  vec3_t move;
1694  vec3_t vec;
1695  float len;
1696  int j;
1697  cparticle_t *p;
1698  float dec;
1699 
1700  // smoke
1701  CL_DiminishingTrail (start, end, old, EF_ROCKET);
1702 
1703  // fire
1704  VectorCopy (start, move);
1705  VectorSubtract (end, start, vec);
1706  len = VectorNormalize (vec);
1707 
1708  dec = 1;
1709  VectorScale (vec, dec, vec);
1710 
1711  while (len > 0)
1712  {
1713  len -= dec;
1714 
1715  if (!free_particles)
1716  return;
1717 
1718  if ( (rand()&7) == 0)
1719  {
1720  p = free_particles;
1721  free_particles = p->next;
1722  p->next = active_particles;
1723  active_particles = p;
1724 
1725  VectorClear (p->accel);
1726  p->time = cl.time;
1727 
1728  p->alpha = 1.0;
1729  p->alphavel = -1.0 / (1+frand()*0.2);
1730 #ifndef QMAX
1731  p->color = 0xdc + (rand()&3);
1732 #endif
1733  for (j=0 ; j<3 ; j++)
1734  {
1735  p->org[j] = move[j] + crand()*5;
1736  p->vel[j] = crand()*20;
1737  }
1738  p->accel[2] = -PARTICLE_GRAVITY;
1739  }
1740  VectorAdd (move, vec, move);
1741  }
1742 }

Referenced by CL_AddPacketEntities().

◆ CL_RunDLights()

void CL_RunDLights ( void  )

Definition at line 311 of file cl_fx.c.

312 {
313  int i;
314  cdlight_t *dl;
315 
316  dl = cl_dlights;
317  for (i=0 ; i<MAX_DLIGHTS ; i++, dl++)
318  {
319  if (!dl->radius)
320  continue;
321 
322  if (dl->die < cl.time)
323  {
324  dl->radius = 0;
325  return;
326  }
327  dl->radius -= cls.frametime*dl->decay;
328  if (dl->radius < 0)
329  dl->radius = 0;
330  }
331 }

Referenced by CL_Frame().

◆ CL_RunLightStyles()

void CL_RunLightStyles ( void  )

Definition at line 166 of file cl_fx.c.

167 {
168  int ofs;
169  int i;
170  clightstyle_t *ls;
171 
172  ofs = cl.time / 100;
173  if (ofs == lastofs)
174  return;
175  lastofs = ofs;
176 
177  for (i=0,ls=cl_lightstyle ; i<MAX_LIGHTSTYLES ; i++, ls++)
178  {
179  if (!ls->length)
180  {
181  ls->value[0] = ls->value[1] = ls->value[2] = 1.0;
182  continue;
183  }
184  if (ls->length == 1)
185  ls->value[0] = ls->value[1] = ls->value[2] = ls->map[0];
186  else
187  ls->value[0] = ls->value[1] = ls->value[2] = ls->map[ofs%ls->length];
188  }
189 }

Referenced by CL_Frame().

◆ CL_RunParticles()

void CL_RunParticles ( void  )

◆ CL_SendCmd()

void CL_SendCmd ( void  )

Definition at line 459 of file cl_input.c.

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

Referenced by CL_SendCommand().

◆ CL_SendMove()

void CL_SendMove ( usercmd_t cmd)

◆ CL_SetLightstyle()

void CL_SetLightstyle ( int  i)

Definition at line 192 of file cl_fx.c.

193 {
194  char *s;
195  int j, k;
196 
198 
199  j = strlen (s);
200  if (j >= MAX_QPATH)
201  Com_Error (ERR_DROP, "svc_lightstyle length=%i", j);
202 
203  cl_lightstyle[i].length = j;
204 
205  for (k=0 ; k<j ; k++)
206  cl_lightstyle[i].map[k] = (float)(s[k]-'a')/(float)('m'-'a');
207 }

Referenced by CL_ParseConfigString().

◆ CL_SmokeAndFlash()

void CL_SmokeAndFlash ( vec3_t  origin)

Definition at line 292 of file cl_tent.c.

293 {
294  explosion_t *ex;
295 
296  ex = CL_AllocExplosion ();
297  VectorCopy (origin, ex->ent.origin);
298  ex->type = ex_misc;
299  ex->frames = 4;
300  ex->ent.flags = RF_TRANSLUCENT;
301  ex->start = cl.frame.servertime - 100;
302  ex->ent.model = cl_mod_smoke;
303 
304  ex = CL_AllocExplosion ();
305  VectorCopy (origin, ex->ent.origin);
306  ex->type = ex_flash;
307  ex->ent.flags = RF_FULLBRIGHT;
308  ex->frames = 2;
309  ex->start = cl.frame.servertime - 100;
310  ex->ent.model = cl_mod_flash;
311 }

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 216 of file cl_newfx.c.

217 {
218  vec3_t move;
219  vec3_t vec;
220  float len;
221  int j;
222  cparticle_t *p;
223 
224  VectorCopy (start, move);
225  VectorSubtract (end, start, vec);
226  len = VectorNormalize (vec);
227 
228  VectorScale (vec, spacing, vec);
229 
230  // FIXME: this is a really silly way to have a loop
231  while (len > 0)
232  {
233  len -= spacing;
234 
235  if (!free_particles)
236  return;
237  p = free_particles;
238  free_particles = p->next;
239  p->next = active_particles;
240  active_particles = p;
241  VectorClear (p->accel);
242 
243  p->time = cl.time;
244 
245  p->alpha = 1.0;
246  p->alphavel = -1.0 / (1+frand()*0.5);
247 #ifndef QMAX
248  p->color = colorStart + (rand() % colorRun);
249 #endif
250  for (j=0 ; j<3 ; j++)
251  {
252  p->org[j] = move[j] + crand()*3;
253  p->accel[j] = 0;
254  }
255  p->vel[2] = 20 + crand()*5;
256 
257  VectorAdd (move, vec, move);
258  }
259 }

◆ CL_Snd_Restart_f()

void CL_Snd_Restart_f ( void  )

Definition at line 1119 of file cl_main.c.

1120 {
1121  S_Shutdown ();
1122  S_Init ();
1123  CL_RegisterSounds ();
1124 }

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

◆ CL_Stop_f()

void CL_Stop_f ( void  )

Definition at line 147 of file cl_main.c.

148 {
149  int len;
150 
151  if (!cls.demorecording)
152  {
153  Com_Printf ("Not recording a demo.\n");
154  return;
155  }
156 
157 // finish up
158  len = -1;
159  fwrite (&len, 4, 1, cls.demofile);
160  fclose (cls.demofile);
161  cls.demofile = NULL;
162  cls.demorecording = false;
163  Com_Printf ("Stopped demo.\n");
164 }

Referenced by CL_Disconnect(), and CL_InitLocal().

◆ CL_TagTrail()

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

Definition at line 1218 of file cl_newfx.c.

1219 {
1220  vec3_t move;
1221  vec3_t vec;
1222  float len;
1223  int j;
1224  cparticle_t *p;
1225  int dec;
1226 
1227  VectorCopy (start, move);
1228  VectorSubtract (end, start, vec);
1229  len = VectorNormalize (vec);
1230 
1231  dec = 5;
1232  VectorScale (vec, 5, vec);
1233 
1234  while (len >= 0)
1235  {
1236  len -= dec;
1237 
1238  if (!free_particles)
1239  return;
1240  p = free_particles;
1241  free_particles = p->next;
1242  p->next = active_particles;
1243  active_particles = p;
1244  VectorClear (p->accel);
1245 
1246  p->time = cl.time;
1247 
1248  p->alpha = 1.0;
1249  p->alphavel = -1.0 / (0.8+frand()*0.2);
1250 #ifndef QMAX
1251  p->color = color;
1252 #endif
1253  for (j=0 ; j<3 ; j++)
1254  {
1255  p->org[j] = move[j] + crand()*16;
1256  p->vel[j] = crand()*5;
1257  p->accel[j] = 0;
1258  }
1259 
1260  VectorAdd (move, vec, move);
1261  }
1262 }

Referenced by CL_AddPacketEntities().

◆ CL_TeleporterParticles()

void CL_TeleporterParticles ( entity_state_t ent)

Definition at line 1145 of file cl_fx.c.

1146 {
1147  int i, j;
1148  cparticle_t *p;
1149 
1150  for (i=0 ; i<8 ; i++)
1151  {
1152  if (!free_particles)
1153  return;
1154  p = free_particles;
1155  free_particles = p->next;
1156  p->next = active_particles;
1157  active_particles = p;
1158 
1159  p->time = cl.time;
1160 #ifdef QMAX
1161  p->color[0] = 0xdb;
1162  p->color[1] = 0xdb;
1163  p->color[2] = 0xdb;
1164 #else
1165  p->color = 0xdb;
1166 #endif
1167 
1168  for (j=0 ; j<2 ; j++)
1169  {
1170  p->org[j] = ent->origin[j] - 16 + (rand()&31);
1171  p->vel[j] = crand()*14;
1172  }
1173 
1174  p->org[2] = ent->origin[2] - 8 + (rand()&7);
1175  p->vel[2] = 80 + (rand()&7);
1176 
1177  p->accel[0] = p->accel[1] = 0;
1178  p->accel[2] = -PARTICLE_GRAVITY;
1179  p->alpha = 1.0;
1180 
1181  p->alphavel = -0.5;
1182  }
1183 }

Referenced by CL_FireEntityEvents().

◆ CL_Tracker_Explode()

void CL_Tracker_Explode ( vec3_t  origin)

Definition at line 1177 of file cl_newfx.c.

1178 {
1179  vec3_t dir, backdir;
1180  int i;
1181  cparticle_t *p;
1182 
1183  for(i=0;i<300;i++)
1184  {
1185  if (!free_particles)
1186  return;
1187  p = free_particles;
1188  free_particles = p->next;
1189  p->next = active_particles;
1190  active_particles = p;
1191  VectorClear (p->accel);
1192 
1193  p->time = cl.time;
1194 
1195  p->alpha = 1.0;
1196  p->alphavel = -1.0;
1197 #ifndef QMAX
1198  p->color = 0;
1199 #endif
1200  dir[0] = crand();
1201  dir[1] = crand();
1202  dir[2] = crand();
1203  VectorNormalize(dir);
1204  VectorScale(dir, -1, backdir);
1205 
1206  VectorMA(origin, 64, dir, p->org);
1207  VectorScale(backdir, 64, p->vel);
1208  }
1209 
1210 }

◆ CL_Tracker_Shell()

void CL_Tracker_Shell ( vec3_t  origin)

Definition at line 997 of file cl_newfx.c.

998 {
999  vec3_t dir;
1000  int i;
1001  cparticle_t *p;
1002 
1003  for(i=0;i<300;i++)
1004  {
1005  if (!free_particles)
1006  return;
1007  p = free_particles;
1008  free_particles = p->next;
1009  p->next = active_particles;
1010  active_particles = p;
1011  VectorClear (p->accel);
1012 
1013  p->time = cl.time;
1014 
1015  p->alpha = 1.0;
1017 #ifndef QMAX
1018  p->color = 0;
1019 #endif
1020  dir[0] = crand();
1021  dir[1] = crand();
1022  dir[2] = crand();
1023  VectorNormalize(dir);
1024 
1025  VectorMA(origin, 40, dir, p->org);
1026  }
1027 }

Referenced by CL_AddPacketEntities().

◆ CL_TrackerTrail()

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

Definition at line 941 of file cl_newfx.c.

942 {
943  vec3_t move;
944  vec3_t vec;
945  vec3_t forward,right,up,angle_dir;
946  float len;
947  int j;
948  cparticle_t *p;
949  int dec;
950  float dist;
951 
952  VectorCopy (start, move);
953  VectorSubtract (end, start, vec);
954  len = VectorNormalize (vec);
955 
956  VectorCopy(vec, forward);
957  vectoangles2 (forward, angle_dir);
958  AngleVectors (angle_dir, forward, right, up);
959 
960  dec = 3;
961  VectorScale (vec, 3, vec);
962 
963  // FIXME: this is a really silly way to have a loop
964  while (len > 0)
965  {
966  len -= dec;
967 
968  if (!free_particles)
969  return;
970  p = free_particles;
971  free_particles = p->next;
972  p->next = active_particles;
973  active_particles = p;
974  VectorClear (p->accel);
975 
976  p->time = cl.time;
977 
978  p->alpha = 1.0;
979  p->alphavel = -2.0;
980 #ifndef QMAX
981  p->color = particleColor;
982 #endif
983  dist = DotProduct(move, forward);
984  VectorMA(move, 8 * cos(dist), up, p->org);
985  for (j=0 ; j<3 ; j++)
986  {
987 // p->org[j] = move[j] + crand();
988  p->vel[j] = 0;
989  p->accel[j] = 0;
990  }
991  p->vel[2] = 5;
992 
993  VectorAdd (move, vec, move);
994  }
995 }

Referenced by CL_AddPacketEntities().

◆ CL_TrapParticles()

void CL_TrapParticles ( entity_t ent)

Definition at line 2135 of file cl_fx.c.

2136 {
2137  vec3_t move;
2138  vec3_t vec;
2139  vec3_t start, end;
2140  float len;
2141  int j;
2142  cparticle_t *p;
2143  int dec;
2144 
2145  ent->origin[2]-=14;
2146  VectorCopy (ent->origin, start);
2147  VectorCopy (ent->origin, end);
2148  end[2]+=64;
2149 
2150  VectorCopy (start, move);
2151  VectorSubtract (end, start, vec);
2152  len = VectorNormalize (vec);
2153 
2154  dec = 5;
2155  VectorScale (vec, 5, vec);
2156 
2157  // FIXME: this is a really silly way to have a loop
2158  while (len > 0)
2159  {
2160  len -= dec;
2161 
2162  if (!free_particles)
2163  return;
2164  p = free_particles;
2165  free_particles = p->next;
2166  p->next = active_particles;
2167  active_particles = p;
2168  VectorClear (p->accel);
2169 
2170  p->time = cl.time;
2171 
2172  p->alpha = 1.0;
2173  p->alphavel = -1.0 / (0.3+frand()*0.2);
2174 #ifndef QMAX
2175  p->color = 0xe0;
2176 #endif
2177  for (j=0 ; j<3 ; j++)
2178  {
2179  p->org[j] = move[j] + crand();
2180  p->vel[j] = crand()*15;
2181  p->accel[j] = 0;
2182  }
2183  p->accel[2] = PARTICLE_GRAVITY;
2184 
2185  VectorAdd (move, vec, move);
2186  }
2187 
2188  {
2189 
2190 
2191  int i, j, k;
2192  cparticle_t *p;
2193  float vel;
2194  vec3_t dir;
2195  vec3_t org;
2196 
2197 
2198  ent->origin[2]+=14;
2199  VectorCopy (ent->origin, org);
2200 
2201 
2202  for (i=-2 ; i<=2 ; i+=4)
2203  for (j=-2 ; j<=2 ; j+=4)
2204  for (k=-2 ; k<=4 ; k+=4)
2205  {
2206  if (!free_particles)
2207  return;
2208  p = free_particles;
2209  free_particles = p->next;
2210  p->next = active_particles;
2211  active_particles = p;
2212 
2213  p->time = cl.time;
2214 #ifndef QMAX
2215  p->color = 0xe0 + (rand()&3);
2216 #endif
2217  p->alpha = 1.0;
2218  p->alphavel = -1.0 / (0.3 + (rand()&7) * 0.02);
2219 
2220  p->org[0] = org[0] + i + ((rand()&23) * crand());
2221  p->org[1] = org[1] + j + ((rand()&23) * crand());
2222  p->org[2] = org[2] + k + ((rand()&23) * crand());
2223 
2224  dir[0] = j * 8;
2225  dir[1] = i * 8;
2226  dir[2] = k * 8;
2227 
2228  VectorNormalize (dir);
2229  vel = 50 + (rand()&63);
2230  VectorScale (dir, vel, p->vel);
2231 
2232  p->accel[0] = p->accel[1] = 0;
2233  p->accel[2] = -PARTICLE_GRAVITY;
2234  }
2235  }
2236 }

Referenced by CL_AddPacketEntities().

◆ CL_Widowbeamout()

void CL_Widowbeamout ( cl_sustain_t self)

Definition at line 1062 of file cl_newfx.c.

1063 {
1064  vec3_t dir;
1065  int i;
1066  cparticle_t *p;
1067 #ifndef QMAX
1068  static int colortable[4] = {2*8,13*8,21*8,18*8};
1069 #endif
1070  float ratio;
1071 
1072  ratio = 1.0 - (((float)self->endtime - (float)cl.time)/2100.0);
1073 
1074  for(i=0;i<300;i++)
1075  {
1076  if (!free_particles)
1077  return;
1078  p = free_particles;
1079  free_particles = p->next;
1080  p->next = active_particles;
1081  active_particles = p;
1082  VectorClear (p->accel);
1083 
1084  p->time = cl.time;
1085 
1086  p->alpha = 1.0;
1088 #ifndef QMAX
1089  p->color = colortable[rand()&3];
1090 #endif
1091  dir[0] = crand();
1092  dir[1] = crand();
1093  dir[2] = crand();
1094  VectorNormalize(dir);
1095 
1096  VectorMA(self->org, (45.0 * ratio), dir, p->org);
1097 // VectorMA(origin, 10*(((rand () & 0x7fff) / ((float)0x7fff))), dir, p->org);
1098  }
1099 }

Referenced by CL_ParseWidow().

◆ CL_WidowSplash()

void CL_WidowSplash ( vec3_t  org)

Definition at line 1140 of file cl_newfx.c.

1141 {
1142 #ifndef QMAX
1143  static int colortable[4] = {2*8,13*8,21*8,18*8};
1144 #endif
1145  int i;
1146  cparticle_t *p;
1147  vec3_t dir;
1148 
1149  for (i=0 ; i<256 ; i++)
1150  {
1151  if (!free_particles)
1152  return;
1153  p = free_particles;
1154  free_particles = p->next;
1155  p->next = active_particles;
1156  active_particles = p;
1157 
1158  p->time = cl.time;
1159 #ifndef QMAX
1160  p->color = colortable[rand()&3];
1161 #endif
1162  dir[0] = crand();
1163  dir[1] = crand();
1164  dir[2] = crand();
1165  VectorNormalize(dir);
1166  VectorMA(org, 45.0, dir, p->org);
1167  VectorMA(vec3_origin, 40.0, dir, p->vel);
1168 
1169  p->accel[0] = p->accel[1] = 0;
1170  p->alpha = 1.0;
1171 
1172  p->alphavel = -0.8 / (0.5 + frand()*0.3);
1173  }
1174 
1175 }

Referenced by CL_ParseTEnt().

◆ CL_WriteDemoMessage()

void CL_WriteDemoMessage ( void  )

Definition at line 128 of file cl_main.c.

129 {
130  int len, swlen;
131 
132  // the first eight bytes are just packet sequencing stuff
133  len = net_message.cursize-8;
134  swlen = LittleLong(len);
135  fwrite (&swlen, 4, 1, cls.demofile);
136  fwrite (net_message.data+8, len, 1, cls.demofile);
137 }

Referenced by CL_ParseServerMessage().

◆ CL_WriteToServer()

void CL_WriteToServer ( usercmd_t cmd)

◆ DrawAltString()

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

Definition at line 49 of file console.c.

50 {
51  while (*s)
52  {
53 #ifdef QMAX
54  re.DrawChar (x, y, *s ^ 0x80, 1);
55 #else
56  re.DrawChar (x, y, *s ^ 0x80);
57 #endif
58  x+=8;
59  s++;
60  }
61 }

Referenced by SCR_ExecuteLayoutString().

◆ DrawString()

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

Definition at line 35 of file console.c.

36 {
37  while (*s)
38  {
39 #ifdef QMAX
40  re.DrawChar (x, y, *s, 1);
41 #else
42  re.DrawChar (x, y, *s);
43 #endif
44  x+=8;
45  s++;
46  }
47 }

Referenced by Con_DrawNotify(), SCR_ExecuteLayoutString(), and SCR_UpdateScreen().

◆ IN_Accumulate()

void IN_Accumulate ( void  )

◆ IN_CenterView()

void IN_CenterView ( void  )

Definition at line 403 of file cl_input.c.

Referenced by CL_InitInput(), and IN_MLookUp().

◆ Key_KeynumToString()

char* Key_KeynumToString ( int  keynum)

Definition at line 482 of file keys.c.

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

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 2281 of file menu.c.

2282 {
2283  int i;
2284 
2286  return;
2287  while ( *info == ' ' )
2288  info++;
2289 
2290  // ignore if duplicated
2291  for (i=0 ; i<m_num_servers ; i++)
2292  if (!strcmp(info, local_server_names[i]))
2293  return;
2294 
2296 #ifdef HAVE_IPV6
2297  // Show the IP address as well. Useful to identify whether
2298  // the server is IPv6 or IPv4.
2300  "%s %s", info, NET_AdrToString(adr));
2301 #else
2302  strncpy (local_server_names[m_num_servers], info, sizeof(local_server_names[0])-1);
2303 #endif
2304  m_num_servers++;
2305 }

Referenced by CL_ParseStatusMessage().

◆ M_Draw()

void M_Draw ( void  )

Definition at line 4045 of file menu.c.

4046 {
4047  if (cls.key_dest != key_menu)
4048  return;
4049 
4050  // repaint everything next frame
4051  SCR_DirtyScreen ();
4052 
4053  // dim everything behind it down
4054  if (cl.cinematictime > 0)
4055  re.DrawFill (0,0,viddef.width, viddef.height, 0);
4056  else
4057  re.DrawFadeScreen ();
4058 
4059  m_drawfunc ();
4060 
4061  // delay playing the enter sound until after the
4062  // menu has been drawn, to avoid delay while
4063  // caching images
4064  if (m_entersound)
4065  {
4067  m_entersound = false;
4068  }
4069 }

Referenced by SCR_UpdateScreen().

◆ M_ForceMenuOff()

void M_ForceMenuOff ( void  )

Definition at line 117 of file menu.c.

118 {
119  m_drawfunc = 0;
120  m_keyfunc = 0;
122  m_menudepth = 0;
123  Key_ClearStates ();
124  Cvar_Set ("paused", "0");
125 }

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

◆ M_Init()

void M_Init ( void  )

Definition at line 4019 of file menu.c.

4020 {
4021  Cmd_AddCommand ("menu_main", M_Menu_Main_f);
4022  Cmd_AddCommand ("menu_game", M_Menu_Game_f);
4023  Cmd_AddCommand ("menu_loadgame", M_Menu_LoadGame_f);
4024  Cmd_AddCommand ("menu_savegame", M_Menu_SaveGame_f);
4025  Cmd_AddCommand ("menu_joinserver", M_Menu_JoinServer_f);
4026  Cmd_AddCommand ("menu_addressbook", M_Menu_AddressBook_f);
4027  Cmd_AddCommand ("menu_startserver", M_Menu_StartServer_f);
4028  Cmd_AddCommand ("menu_dmoptions", M_Menu_DMOptions_f);
4029  Cmd_AddCommand ("menu_playerconfig", M_Menu_PlayerConfig_f);
4030  Cmd_AddCommand ("menu_downloadoptions", M_Menu_DownloadOptions_f);
4031  Cmd_AddCommand ("menu_credits", M_Menu_Credits_f );
4032  Cmd_AddCommand ("menu_multiplayer", M_Menu_Multiplayer_f );
4033  Cmd_AddCommand ("menu_video", M_Menu_Video_f);
4034  Cmd_AddCommand ("menu_options", M_Menu_Options_f);
4035  Cmd_AddCommand ("menu_keys", M_Menu_Keys_f);
4036  Cmd_AddCommand ("menu_quit", M_Menu_Quit_f);
4037 }

Referenced by CL_Init().

◆ M_Keydown()

void M_Keydown ( int  key)

Definition at line 4077 of file menu.c.

4078 {
4079  const char *s;
4080 
4081  if (m_keyfunc)
4082  if ( ( s = m_keyfunc( key ) ) != 0 )
4083  S_StartLocalSound( ( char * ) s );
4084 }

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 653 of file cl_parse.c.

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

Referenced by CL_ParseFrame(), and CL_ParseServerMessage().

◆ SmokeAndFlash()

void SmokeAndFlash ( vec3_t  origin)

◆ V_AddEntity()

void V_AddEntity ( entity_t ent)

Definition at line 97 of file cl_view.c.

98 {
100  return;
101  r_entities[r_numentities++] = *ent;
102 }

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 157 of file cl_view.c.

158 {
159  dlight_t *dl;
160 
161  if (r_numdlights >= MAX_DLIGHTS)
162  return;
163  dl = &r_dlights[r_numdlights++];
164  VectorCopy (org, dl->origin);
165  dl->intensity = intensity;
166  dl->color[0] = r;
167  dl->color[1] = g;
168  dl->color[2] = b;
169 }

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

◆ V_AddLightStyle()

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

Definition at line 178 of file cl_view.c.

179 {
180  lightstyle_t *ls;
181 
182  if (style < 0 || style > MAX_LIGHTSTYLES)
183  Com_Error (ERR_DROP, "Bad light style %i", style);
184  ls = &r_lightstyles[style];
185 
186  ls->white = r+g+b;
187  ls->rgb[0] = r;
188  ls->rgb[1] = g;
189  ls->rgb[2] = b;
190 }

Referenced by CL_AddLightStyles().

◆ V_AddParticle()

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

Definition at line 139 of file cl_view.c.

140 {
141  particle_t *p;
142 
144  return;
145  p = &r_particles[r_numparticles++];
146  VectorCopy (org, p->origin);
147  p->color = color;
148  p->alpha = alpha;
149 }

Referenced by CL_AddParticles().

◆ V_Init()

void V_Init ( void  )

Definition at line 642 of file cl_view.c.

643 {
644  Cmd_AddCommand ("gun_next", V_Gun_Next_f);
645  Cmd_AddCommand ("gun_prev", V_Gun_Prev_f);
646  Cmd_AddCommand ("gun_model", V_Gun_Model_f);
647 
648  Cmd_AddCommand ("viewpos", V_Viewpos_f);
649 
650  crosshair = Cvar_Get ("crosshair", "0", CVAR_ARCHIVE);
651  crosshair_scale = Cvar_Get ("crosshair_scale", "1", CVAR_ARCHIVE);
652  cl_testblend = Cvar_Get ("cl_testblend", "0", 0);
653  cl_testparticles = Cvar_Get ("cl_testparticles", "0", 0);
654  cl_testentities = Cvar_Get ("cl_testentities", "0", 0);
655  cl_testlights = Cvar_Get ("cl_testlights", "0", 0);
656 
657  cl_stats = Cvar_Get ("cl_stats", "0", 0);
658 }

Referenced by CL_Init().

◆ V_RenderView()

void V_RenderView ( float  stereo_separation)

Definition at line 516 of file cl_view.c.

517 {
518  extern int entitycmpfnc( const entity_t *, const entity_t * );
519 
520  if (cls.state != ca_active)
521  return;
522 
523  if (!cl.refresh_prepped)
524  return; // still loading
525 
526  if (cl_timedemo->value)
527  {
528  if (!cl.timedemo_start)
531  }
532 
533  // an invalid frame will just use the exact previous refdef
534  // we can't use the old frame if the video mode has changed, though...
535  if ( cl.frame.valid && (cl.force_refdef || !cl_paused->value) )
536  {
537  cl.force_refdef = false;
538 
539  V_ClearScene ();
540 
541  // build a refresh entity list and calc cl.sim*
542  // this also calls CL_CalcViewValues which loads
543  // v_forward, etc.
544  CL_AddEntities ();
545 
546  if (cl_testparticles->value)
547  V_TestParticles ();
548  if (cl_testentities->value)
549  V_TestEntities ();
550  if (cl_testlights->value)
551  V_TestLights ();
552  if (cl_testblend->value)
553  {
554  cl.refdef.blend[0] = 1;
555  cl.refdef.blend[1] = 0.5;
556  cl.refdef.blend[2] = 0.25;
557  cl.refdef.blend[3] = 0.5;
558  }
559 
560  // offset vieworg appropriately if we're doing stereo separation
561  if ( stereo_separation != 0 )
562  {
563  vec3_t tmp;
564 
565  VectorScale( cl.v_right, stereo_separation, tmp );
567  }
568 
569  // never let it sit exactly on a node line, because a water plane can
570  // dissapear when viewed with the eye exactly on it.
571  // the server protocol only specifies to 1/8 pixel, so add 1/16 in each axis
572  cl.refdef.vieworg[0] += 1.0/16;
573  cl.refdef.vieworg[1] += 1.0/16;
574  cl.refdef.vieworg[2] += 1.0/16;
575 
576  cl.refdef.x = scr_vrect.x;
577  cl.refdef.y = scr_vrect.y;
581  cl.refdef.time = cl.time*0.001;
582 
584 
585  if (!cl_add_entities->value)
586  r_numentities = 0;
587  if (!cl_add_particles->value)
588  r_numparticles = 0;
589  if (!cl_add_lights->value)
590  r_numdlights = 0;
591  if (!cl_add_blend->value)
592  {
594  }
595 
603 
605 
606  // sort entities for better cache locality
607  qsort( cl.refdef.entities, cl.refdef.num_entities, sizeof( cl.refdef.entities[0] ), (int (*)(const void *, const void *))entitycmpfnc );
608  }
609 
610  re.RenderFrame (&cl.refdef);
611  if (cl_stats->value)
612  Com_Printf ("ent:%i lt:%i part:%i\n", r_numentities, r_numdlights, r_numparticles);
613  if ( log_stats->value && ( log_stats_file != 0 ) )
614  fprintf( log_stats_file, "%i,%i,%i,",r_numentities, r_numdlights, r_numparticles);
615 
616 
620 
622 }

Referenced by SCR_UpdateScreen().

Variable Documentation

◆ cl

Definition at line 106 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_AllocFreeDlight(), 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_LightningBeam(), CL_LightningFlare(), 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(), pLensFlareThink(), pWeatherFXThink(), 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_DrawCrosshair(), 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(), setupParticle(), 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(), UpdateCDVolumeFunc(), 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 69 of file cl_main.c.

Referenced by CL_InitLocal(), and V_RenderView().

◆ cl_add_entities

cvar_t* cl_add_entities

Definition at line 68 of file cl_main.c.

Referenced by CL_InitLocal(), and V_RenderView().

◆ cl_add_lights

cvar_t* cl_add_lights

Definition at line 67 of file cl_main.c.

Referenced by CL_InitLocal(), and V_RenderView().

◆ cl_add_particles

cvar_t* cl_add_particles

Definition at line 66 of file cl_main.c.

Referenced by CL_InitLocal(), and V_RenderView().

◆ cl_anglespeedkey

cvar_t* cl_anglespeedkey

Definition at line 231 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

◆ 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 223 of file cl_input.c.

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

◆ cl_gun

cvar_t* cl_gun

Definition at line 50 of file cl_main.c.

Referenced by CL_AddViewWeapon(), and CL_InitLocal().

◆ cl_lightlevel

cvar_t* cl_lightlevel

Definition at line 87 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 227 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 229 of file cl_input.c.

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

◆ cl_showclamp

cvar_t* cl_showclamp

Definition at line 73 of file cl_main.c.

Referenced by CL_AddEntities(), and CL_InitLocal().

◆ cl_showmiss

cvar_t* cl_showmiss

Definition at line 72 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 224 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 76 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 222 of file cl_input.c.

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

◆ cl_vwep

cvar_t* cl_vwep

Definition at line 103 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 54 of file cl_view.c.

Referenced by CL_LoadClientinfo(), and CL_PrepRefresh().

◆ cl_yawspeed

cvar_t* cl_yawspeed

Definition at line 226 of file cl_input.c.

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

◆ cls

Definition at line 105 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 561 of file client.h.

◆ in_mlook

kbutton_t in_mlook

◆ in_speed

kbutton_t in_speed

Definition at line 60 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 78 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 84 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 85 of file cl_main.c.

Referenced by CL_InitLocal(), and IN_MouseMove().

◆ m_yaw

cvar_t* m_yaw

Definition at line 83 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 55 of file cl_view.c.

Referenced by CL_LoadClientinfo(), and CL_PrepRefresh().

◆ re

Definition at line 31 of file vid_dll.c.

◆ sensitivity

cvar_t* sensitivity

Definition at line 80 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:868
ex_misc
@ ex_misc
Definition: cl_tent.c:26
MZ2_CARRIER_MACHINEGUN_R1
#define MZ2_CARRIER_MACHINEGUN_R1
Definition: q_shared.h:849
crosshair
cvar_t * crosshair
Definition: cl_view.c:33
entity_state_s::old_origin
vec3_t old_origin
Definition: q_shared.h:1175
cl_sfx_ric2
struct sfx_s * cl_sfx_ric2
Definition: cl_tent.c:101
RF_TRANSLUCENT
#define RF_TRANSLUCENT
Definition: q_shared.h:618
cl_mod_monster_heatbeam
struct model_s * cl_mod_monster_heatbeam
Definition: cl_tent.c:132
MZ_LOGIN
#define MZ_LOGIN
Definition: q_shared.h:665
IN_MoveleftUp
void IN_MoveleftUp(void)
Definition: cl_input.c:161
TE_EXPLOSION1_BIG
@ TE_EXPLOSION1_BIG
Definition: q_shared.h:989
RF_NOSHADOW
#define RF_NOSHADOW
Definition: q_shared.h:626
CL_InitLocal
void CL_InitLocal(void)
Definition: cl_main.c:1430
MZ2_WIDOW_BLASTER_70L
#define MZ2_WIDOW_BLASTER_70L
Definition: q_shared.h:892
M_Menu_Multiplayer_f
void M_Menu_Multiplayer_f(void)
Definition: menu.c:574
in_moveleft
kbutton_t in_moveleft
Definition: cl_input.c:59
MZ2_MAKRON_BLASTER_16
#define MZ2_MAKRON_BLASTER_16
Definition: q_shared.h:825
refexport_t::RegisterSkin
struct image_s *(* RegisterSkin)(char *name)
Definition: ref.h:177
MAX_CLIENTS
#define MAX_CLIENTS
Definition: q_shared.h:79
keyname_t::keynum
int keynum
Definition: keys.c:49
edict_s::s
entity_state_t s
Definition: g_local.h:964
dl_single
@ dl_single
Definition: client.h:217
cl_mod_parasite_segment
struct model_s * cl_mod_parasite_segment
Definition: cl_tent.c:118
refdef_t::vieworg
float vieworg[3]
Definition: ref.h:124
TE_PARASITE_ATTACK
@ TE_PARASITE_ATTACK
Definition: q_shared.h:951
cl_paused
cvar_t * cl_paused
Definition: cl_main.c:75
MZ2_WIDOW_PLASMABEAM
#define MZ2_WIDOW_PLASMABEAM
Definition: q_shared.h:861
crosshair_scale
cvar_t * crosshair_scale
Definition: cl_view.c:34
MZ2_CARRIER_MACHINEGUN_L1
#define MZ2_CARRIER_MACHINEGUN_L1
Definition: q_shared.h:848
SCR_EndLoadingPlaque
void SCR_EndLoadingPlaque(void)
Definition: cl_scrn.c:598
SCR_TouchPics
void SCR_TouchPics(void)
Definition: cl_scrn.c:928
M_Menu_JoinServer_f
void M_Menu_JoinServer_f(void)
Definition: menu.c:2423
particle_s::vel
vec3_t vel
Definition: client.h:416
MZ2_WIDOW_BLASTER_SWEEP4
#define MZ2_WIDOW_BLASTER_SWEEP4
Definition: q_shared.h:869
edict_s::volume
float volume
Definition: g_local.h:1083
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:104
client_state_t::predicted_origin
vec3_t predicted_origin
Definition: client.h:132
MZ2_BOSS2_MACHINEGUN_R4
#define MZ2_BOSS2_MACHINEGUN_R4
Definition: q_shared.h:844
MZ2_WIDOW_BLASTER_SWEEP1
#define MZ2_WIDOW_BLASTER_SWEEP1
Definition: q_shared.h:866
sizebuf_s
Definition: qcommon.h:75
gender
cvar_t * gender
Definition: cl_main.c:100
CL_AllocExplosion
explosion_t * CL_AllocExplosion(void)
Definition: cl_tent.c:259
svc_nop
@ svc_nop
Definition: qcommon.h:215
svc_centerprint
@ svc_centerprint
Definition: qcommon.h:224
cdlight_t::decay
float decay
Definition: client.h:341
MZ2_SUPERTANK_ROCKET_2
#define MZ2_SUPERTANK_ROCKET_2
Definition: q_shared.h:774
CL_ParsePlayerBeam
int CL_ParsePlayerBeam(struct model_s *model)
Definition: cl_tent.c:440
edict_s::pos2
vec3_t pos2
Definition: g_local.h:1022
CS_SKY
#define CS_SKY
Definition: q_shared.h:1127
IN_AttackDown
void IN_AttackDown(void)
Definition: cl_input.c:170
CL_AddExplosions
void CL_AddExplosions(void)
Definition: cl_tent.c:1886
MZ2_SOLDIER_SHOTGUN_4
#define MZ2_SOLDIER_SHOTGUN_4
Definition: q_shared.h:793
client_state_t::servercount
int servercount
Definition: client.h:174
EF_GREENGIB
#define EF_GREENGIB
Definition: q_shared.h:579
CL_WidowSplash
void CL_WidowSplash(vec3_t org)
Definition: cl_newfx.c:1140
MAX_QPATH
#define MAX_QPATH
Definition: q_shared.h:73
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:1177
TE_SHIELD_SPARKS
@ TE_SHIELD_SPARKS
Definition: q_shared.h:948
CL_ParseInventory
void CL_ParseInventory(void)
Definition: cl_inv.c:29
IN_UpDown
void IN_UpDown(void)
Definition: cl_input.c:144
MZ2_BOSS2_ROCKET_1
#define MZ2_BOSS2_ROCKET_1
Definition: q_shared.h:782
entity_state_s::solid
int solid
Definition: q_shared.h:1182
cl_sustains
cl_sustain_t cl_sustains[MAX_SUSTAINS]
Definition: cl_tent.c:71
MAX_MODELS
#define MAX_MODELS
Definition: q_shared.h:82
edict_s::model
char * model
Definition: g_local.h:998
MZ2_TANK_MACHINEGUN_10
#define MZ2_TANK_MACHINEGUN_10
Definition: q_shared.h:706
EV_FALL
@ EV_FALL
Definition: q_shared.h:1159
BigShort
short BigShort(short l)
Definition: q_shared.c:945
TE_HEATBEAM_STEAM
@ TE_HEATBEAM_STEAM
Definition: q_shared.h:980
MZ2_WIDOW_RAIL
#define MZ2_WIDOW_RAIL
Definition: q_shared.h:860
U_ANGLE2
#define U_ANGLE2
Definition: qcommon.h:300
CL_RailTrail
void CL_RailTrail(vec3_t start, vec3_t end)
Definition: cl_fx.c:1750
lightstyle_t::rgb
float rgb[3]
Definition: ref.h:116
U_MOREBITS3
#define U_MOREBITS3
Definition: qcommon.h:324
client_state_t::frames
frame_t frames[UPDATE_BACKUP]
Definition: client.h:138
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:1137
netchan_t::incoming_acknowledged
int incoming_acknowledged
Definition: qcommon.h:590
MZ2_JORG_BFG_1
#define MZ2_JORG_BFG_1
Definition: q_shared.h:840
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:406
centity_t::fly_stoptime
int fly_stoptime
Definition: client.h:86
MZ_SILENCED
#define MZ_SILENCED
Definition: q_shared.h:676
MZ_IONRIPPER
#define MZ_IONRIPPER
Definition: q_shared.h:673
MZ_GRENADE
#define MZ_GRENADE
Definition: q_shared.h:664
TE_GRENADE_EXPLOSION_WATER
@ TE_GRENADE_EXPLOSION_WATER
Definition: q_shared.h:953
dl_none
@ dl_none
Definition: client.h:213
int
CONST PIXELFORMATDESCRIPTOR int
Definition: qgl_win.c:35
CL_ParseClientinfo
void CL_ParseClientinfo(int player)
Definition: cl_parse.c:508
CL_BlasterParticles
void CL_BlasterParticles(vec3_t org, vec3_t dir)
Definition: cl_fx.c:1360
ex_poly
@ ex_poly
Definition: cl_tent.c:26
TE_SHOTGUN
@ TE_SHOTGUN
Definition: q_shared.h:939
IN_SpeedDown
void IN_SpeedDown(void)
Definition: cl_input.c:165
VectorSubtract
#define VectorSubtract(a, b, c)
Definition: q_shared.h:156
U_ANGLE1
#define U_ANGLE1
Definition: qcommon.h:310
MZ2_SOLDIER_MACHINEGUN_3
#define MZ2_SOLDIER_MACHINEGUN_3
Definition: q_shared.h:791
CL_ClearLightStyles
void CL_ClearLightStyles(void)
Definition: cl_fx.c:155
V_TestParticles
void V_TestParticles(void)
Definition: cl_view.c:199
MZ2_TANK_MACHINEGUN_17
#define MZ2_TANK_MACHINEGUN_17
Definition: q_shared.h:713
MZ2_WIDOW_BLASTER_SWEEP7
#define MZ2_WIDOW_BLASTER_SWEEP7
Definition: q_shared.h:872
client_state_t::attractloop
qboolean attractloop
Definition: client.h:173
V_Init
void V_Init(void)
Definition: cl_view.c:642
TE_CHAINFIST_SMOKE
@ TE_CHAINFIST_SMOKE
Definition: q_shared.h:981
MZ2_WIDOW2_BEAM_SWEEP_10
#define MZ2_WIDOW2_BEAM_SWEEP_10
Definition: q_shared.h:919
svc_muzzleflash
@ svc_muzzleflash
Definition: qcommon.h:208
MakeNormalVectors
void MakeNormalVectors(vec3_t forward, vec3_t right, vec3_t up)
Definition: cl_fx.c:1669
entity_state_s::frame
int frame
Definition: q_shared.h:1178
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:1055
log_stats
cvar_t * log_stats
Definition: common.c:40
cdlight_t::radius
float radius
Definition: client.h:339
CVAR_NOSET
#define CVAR_NOSET
Definition: q_shared.h:312
MZ2_TANK_ROCKET_3
#define MZ2_TANK_ROCKET_3
Definition: q_shared.h:718
svc_frame
@ svc_frame
Definition: qcommon.h:229
TE_EXPLOSION1
@ TE_EXPLOSION1
Definition: q_shared.h:940
EV_PLAYER_TELEPORT
@ EV_PLAYER_TELEPORT
Definition: q_shared.h:1161
CL_AddEntities
void CL_AddEntities(void)
Definition: cl_ents.c:1495
kbutton_t::state
int state
Definition: client.h:558
dl_sound
@ dl_sound
Definition: client.h:215
CL_DiminishingTrail
void CL_DiminishingTrail(vec3_t start, vec3_t end, centity_t *old, int flags)
Definition: cl_fx.c:1564
MZ2_TANK_BLASTER_2
#define MZ2_TANK_BLASTER_2
Definition: q_shared.h:695
CL_RegisterSounds
void CL_RegisterSounds(void)
Definition: cl_parse.c:183
MZ2_ACTOR_MACHINEGUN_1
#define MZ2_ACTOR_MACHINEGUN_1
Definition: q_shared.h:765
client_static_t::disable_screen
float disable_screen
Definition: client.h:232
CL_ParseWidow
void CL_ParseWidow(void)
Definition: cl_tent.c:665
CL_FlameBurst
void CL_FlameBurst(vec3_t pos, float size)
Definition: cl_fxmax.c:3569
MZ2_TURRET_ROCKET
#define MZ2_TURRET_ROCKET
Definition: q_shared.h:852
cl_sustain::magnitude
int magnitude
Definition: client.h:377
TE_HEATBEAM
@ TE_HEATBEAM
Definition: q_shared.h:974
MZ2_TANK_MACHINEGUN_8
#define MZ2_TANK_MACHINEGUN_8
Definition: q_shared.h:704
MZ2_WIDOW2_BEAM_SWEEP_6
#define MZ2_WIDOW2_BEAM_SWEEP_6
Definition: q_shared.h:915
clightstyle_t::map
float map[MAX_QPATH]
Definition: cl_fx.c:56
scr_timegraph
cvar_t * scr_timegraph
Definition: cl_scrn.c:55
MZ2_BOSS2_MACHINEGUN_R1
#define MZ2_BOSS2_MACHINEGUN_R1
Definition: q_shared.h:841
in_klook
kbutton_t in_klook
Definition: cl_input.c:57
entitycmpfnc
int entitycmpfnc(const entity_t *a, const entity_t *b)
Definition: cl_scrn.c:619
particle_s::time
float time
Definition: client.h:413
ca_disconnected
@ ca_disconnected
Definition: client.h:206
MZ2_INFANTRY_MACHINEGUN_4
#define MZ2_INFANTRY_MACHINEGUN_4
Definition: q_shared.h:723
MZ2_MEDIC_BLASTER_2
#define MZ2_MEDIC_BLASTER_2
Definition: q_shared.h:856
mapsurface_s
Definition: q_shared.h:442
CL_CheckOrDownloadFile
qboolean CL_CheckOrDownloadFile(char *filename)
Definition: cl_parse.c:69
IN_SpeedUp
void IN_SpeedUp(void)
Definition: cl_input.c:166
cl_run
cvar_t * cl_run
Definition: cl_input.c:229
client_state_t::v_up
vec3_t v_up
Definition: client.h:153
client_state_t::cmd_time
int cmd_time[CMD_BACKUP]
Definition: client.h:126
MZ2_JORG_MACHINEGUN_R1
#define MZ2_JORG_MACHINEGUN_R1
Definition: q_shared.h:834
TE_ROCKET_EXPLOSION_WATER
@ TE_ROCKET_EXPLOSION_WATER
Definition: q_shared.h:952
in_speed
kbutton_t in_speed
Definition: cl_input.c:60
CL_AdjustAngles
void CL_AdjustAngles(void)
Definition: cl_input.c:241
TE_BLOOD
@ TE_BLOOD
Definition: q_shared.h:936
particle_s::accel
vec3_t accel
Definition: client.h:417
CL_AllocDlight
cdlight_t * CL_AllocDlight(int key)
Definition: cl_fx.c:249
MZ2_BOSS2_MACHINEGUN_L4
#define MZ2_BOSS2_MACHINEGUN_L4
Definition: q_shared.h:780
cl_sfx_grenexp
struct sfx_s * cl_sfx_grenexp
Definition: cl_tent.c:109
PMF_NO_PREDICTION
#define PMF_NO_PREDICTION
Definition: q_shared.h:483
cl_add_blend
cvar_t * cl_add_blend
Definition: cl_main.c:69
MZ2_GUNNER_MACHINEGUN_1
#define MZ2_GUNNER_MACHINEGUN_1
Definition: q_shared.h:741
refdef_t::areabits
byte * areabits
Definition: ref.h:130
MZ2_TANK_MACHINEGUN_15
#define MZ2_TANK_MACHINEGUN_15
Definition: q_shared.h:711
TE_SPLASH
@ TE_SPLASH
Definition: q_shared.h:945
CL_WriteDemoMessage
void CL_WriteDemoMessage(void)
Definition: cl_main.c:128
entity_state_s::renderfx
int renderfx
Definition: q_shared.h:1181
MZ2_SOLDIER_BLASTER_5
#define MZ2_SOLDIER_BLASTER_5
Definition: q_shared.h:795
MSG_ReadShort
int MSG_ReadShort(sizebuf_t *msg_read)
Definition: common.c:735
map_surfaces
mapsurface_t map_surfaces[MAX_MAP_TEXINFO]
Definition: cmodel.c:69
num_cl_weaponmodels
int num_cl_weaponmodels
Definition: cl_view.c:55
net_message
sizebuf_t net_message
Definition: net_chan.c:82
IN_LookupUp
void IN_LookupUp(void)
Definition: cl_input.c:157
frand
float frand(void)
Definition: common.c:1398
v
GLdouble v
Definition: qgl_win.c:143
TE_BUBBLETRAIL
@ TE_BUBBLETRAIL
Definition: q_shared.h:946
entity_state_s
Definition: q_shared.h:1169
cdlight_t::die
float die
Definition: client.h:340
MZ2_BOSS2_ROCKET_3
#define MZ2_BOSS2_ROCKET_3
Definition: q_shared.h:784
r_numentities
int r_numentities
Definition: cl_view.c:46
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:751
cl_shownet
cvar_t * cl_shownet
Definition: cl_main.c:71
precache_model_skin
int precache_model_skin
Definition: cl_main.c:1129
MZ2_TURRET_BLASTER
#define MZ2_TURRET_BLASTER
Definition: q_shared.h:853
cvar_s::modified
qboolean modified
Definition: q_shared.h:323
MZ2_WIDOW_BLASTER_SWEEP2
#define MZ2_WIDOW_BLASTER_SWEEP2
Definition: q_shared.h:867
precache_tex
int precache_tex
Definition: cl_main.c:1128
lastofs
int lastofs
Definition: cl_fx.c:60
client_state_t::timeoutcount
int timeoutcount
Definition: client.h:113
MZ2_WIDOW_BLASTER_80
#define MZ2_WIDOW_BLASTER_80
Definition: q_shared.h:877
U_ORIGIN1
#define U_ORIGIN1
Definition: qcommon.h:298
MZ_CHAINGUN3
#define MZ_CHAINGUN3
Definition: q_shared.h:661
netchan_t::message
sizebuf_t message
Definition: qcommon.h:600
CL_ParseDownload
void CL_ParseDownload(void)
Definition: cl_parse.c:207
CS_SKYROTATE
#define CS_SKYROTATE
Definition: q_shared.h:1129
cl_mod_explo4
struct model_s * cl_mod_explo4
Definition: cl_tent.c:121
MZ2_JORG_MACHINEGUN_L4
#define MZ2_JORG_MACHINEGUN_L4
Definition: q_shared.h:831
Inv_DrawString
void Inv_DrawString(int x, int y, char *string)
Definition: cl_inv.c:43
MZ_NUKE8
#define MZ_NUKE8
Definition: q_shared.h:688
CL_TeleportParticles
void CL_TeleportParticles(vec3_t org)
Definition: cl_fx.c:2284
frame_t::parse_entities
int parse_entities
Definition: client.h:72
TE_ELECTRIC_SPARKS
@ TE_ELECTRIC_SPARKS
Definition: q_shared.h:982
CL_ParseBeam2
int CL_ParseBeam2(struct model_s *model)
Definition: cl_tent.c:386
ca_uninitialized
@ ca_uninitialized
Definition: client.h:205
cl_upspeed
cvar_t * cl_upspeed
Definition: cl_input.c:222
entity_state_s::origin
vec3_t origin
Definition: q_shared.h:1173
MZ2_WIDOW2_BEAMER_4
#define MZ2_WIDOW2_BEAMER_4
Definition: q_shared.h:908
ca_connecting
@ ca_connecting
Definition: client.h:207
vrect_s::height
int height
Definition: vid.h:24
MZ2_WIDOW_BLASTER
#define MZ2_WIDOW_BLASTER
Definition: q_shared.h:859
CS_CDTRACK
#define CS_CDTRACK
Definition: q_shared.h:1126
refexport_t::RegisterPic
struct image_s *(* RegisterPic)(char *name)
Definition: ref.h:178
CS_ITEMS
#define CS_ITEMS
Definition: q_shared.h:1140
net_from
netadr_t net_from
Definition: net_chan.c:81
MZ_MACHINEGUN
#define MZ_MACHINEGUN
Definition: q_shared.h:657
client_state_t::prediction_error
vec3_t prediction_error
Definition: client.h:134
refexport_t::DrawFill
void(* DrawFill)(int x, int y, int w, int h, int c)
Definition: ref.h:198
edict_s::map
char * map
Definition: g_local.h:1059
TE_RAILTRAIL
@ TE_RAILTRAIL
Definition: q_shared.h:938
cl_sustain::endtime
int endtime
Definition: client.h:370
cdlight_t
Definition: client.h:334
MZ2_WIDOW_BLASTER_30L
#define MZ2_WIDOW_BLASTER_30L
Definition: q_shared.h:888
svc_inventory
@ svc_inventory
Definition: qcommon.h:212
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:800
client_state_t::predicted_angles
vec3_t predicted_angles
Definition: client.h:133
U_RENDERFX8
#define U_RENDERFX8
Definition: qcommon.h:312
TE_MEDIC_CABLE_ATTACK
@ TE_MEDIC_CABLE_ATTACK
Definition: q_shared.h:954
M_Menu_SaveGame_f
void M_Menu_SaveGame_f(void)
Definition: menu.c:2246
M_Menu_StartServer_f
void M_Menu_StartServer_f(void)
Definition: menu.c:2794
TE_WIDOWBEAMOUT
@ TE_WIDOWBEAMOUT
Definition: q_shared.h:986
CL_ParticleSmokeEffect
void CL_ParticleSmokeEffect(vec3_t org, vec3_t dir, int color, int count, int magnitude)
Definition: cl_newfx.c:1331
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:82
U_OLDORIGIN
#define U_OLDORIGIN
Definition: qcommon.h:327
MZ_CHAINGUN1
#define MZ_CHAINGUN1
Definition: q_shared.h:659
MZ2_SOLDIER_SHOTGUN_8
#define MZ2_SOLDIER_SHOTGUN_8
Definition: q_shared.h:805
CL_ParseStartSoundPacket
void CL_ParseStartSoundPacket(void)
Definition: cl_parse.c:593
cvar_s::string
char * string
Definition: q_shared.h:320
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:1136
CL_RegisterTEntSounds
void CL_RegisterTEntSounds(void)
Definition: cl_tent.c:141
x
GLint GLenum GLint x
Definition: qgl_win.c:116
CL_LightningFlare
void CL_LightningFlare(vec3_t start, int srcEnt, int dstEnt)
Definition: cl_fxmax.c:1579
viddef_t::width
int width
Definition: vid.h:29
V_Viewpos_f
void V_Viewpos_f(void)
Definition: cl_view.c:630
MZ2_SOLDIER_MACHINEGUN_1
#define MZ2_SOLDIER_MACHINEGUN_1
Definition: q_shared.h:738
EV_FOOTSTEP
@ EV_FOOTSTEP
Definition: q_shared.h:1157
IN_RightUp
void IN_RightUp(void)
Definition: cl_input.c:151
CL_ParseConfigString
void CL_ParseConfigString(void)
Definition: cl_parse.c:526
client_state_t::viewangles
vec3_t viewangles
Definition: client.h:145
MZ2_WIDOW2_BEAM_SWEEP_11
#define MZ2_WIDOW2_BEAM_SWEEP_11
Definition: q_shared.h:920
client_static_t::disable_servercount
int disable_servercount
Definition: client.h:235
cl_sidespeed
cvar_t * cl_sidespeed
Definition: cl_input.c:224
MZ_NUKE1
#define MZ_NUKE1
Definition: q_shared.h:685
entity_s::skinnum
int skinnum
Definition: ref.h:70
MZ2_WIDOW2_BEAM_SWEEP_4
#define MZ2_WIDOW2_BEAM_SWEEP_4
Definition: q_shared.h:913
TE_HEATBEAM_SPARKS
@ TE_HEATBEAM_SPARKS
Definition: q_shared.h:979
VectorClear
#define VectorClear(a)
Definition: q_shared.h:159
i
int i
Definition: q_shared.c:305
refdef_t::y
int y
Definition: ref.h:122
MZ2_TANK_MACHINEGUN_12
#define MZ2_TANK_MACHINEGUN_12
Definition: q_shared.h:708
MZ2_MAKRON_BLASTER_9
#define MZ2_MAKRON_BLASTER_9
Definition: q_shared.h:818
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:184
keybindings
char * keybindings[K_LAST]
Definition: keys.c:39
MZ_CHAINGUN2
#define MZ_CHAINGUN2
Definition: q_shared.h:660
MZ2_GUNNER_GRENADE_4
#define MZ2_GUNNER_GRENADE_4
Definition: q_shared.h:752
client_static_t::demorecording
qboolean demorecording
Definition: client.h:257
MZ2_SOLDIER_SHOTGUN_6
#define MZ2_SOLDIER_SHOTGUN_6
Definition: q_shared.h:799
ca_active
@ ca_active
Definition: client.h:209
m_num_servers
int m_num_servers
Definition: menu.c:2272
MZ2_INFANTRY_MACHINEGUN_3
#define MZ2_INFANTRY_MACHINEGUN_3
Definition: q_shared.h:722
U_MODEL
#define U_MODEL
Definition: qcommon.h:311
client_state_t::gamedir
char gamedir[MAX_QPATH]
Definition: client.h:175
MZ_HYPERBLASTER
#define MZ_HYPERBLASTER
Definition: q_shared.h:670
scr_debuggraph
cvar_t * scr_debuggraph
Definition: cl_scrn.c:56
in_back
kbutton_t in_back
Definition: cl_input.c:58
fv
float fv
Definition: r_edge.c:75
IN_BackUp
void IN_BackUp(void)
Definition: cl_input.c:155
MZ2_INFANTRY_MACHINEGUN_7
#define MZ2_INFANTRY_MACHINEGUN_7
Definition: q_shared.h:726
TE_TUNNEL_SPARKS
@ TE_TUNNEL_SPARKS
Definition: q_shared.h:964
MZ2_WIDOW2_BEAM_SWEEP_1
#define MZ2_WIDOW2_BEAM_SWEEP_1
Definition: q_shared.h:910
explosion_t::baseframe
int baseframe
Definition: cl_tent.c:38
entity_state_s::event
int event
Definition: q_shared.h:1186
precache_model
byte * precache_model
Definition: cl_main.c:1131
viddef_t::height
int height
Definition: vid.h:29
particle_s::org
vec3_t org
Definition: client.h:415
netchan_t::dropped
int dropped
Definition: qcommon.h:580
MSG_WriteLong
void MSG_WriteLong(sizebuf_t *sb, int c)
Definition: common.c:349
MZ2_WIDOW_RUN_2
#define MZ2_WIDOW_RUN_2
Definition: q_shared.h:894
PITCH
#define PITCH
Definition: q_shared.h:65
client_state_t::cinematictime
int cinematictime
Definition: client.h:165
ATTN_IDLE
#define ATTN_IDLE
Definition: q_shared.h:1020
MZ2_JORG_MACHINEGUN_R6
#define MZ2_JORG_MACHINEGUN_R6
Definition: q_shared.h:839
dlight_t::origin
vec3_t origin
Definition: ref.h:91
CL_DebugTrail
void CL_DebugTrail(vec3_t start, vec3_t end)
Definition: cl_newfx.c:140
cdlight_t::key
int key
Definition: client.h:336
NET_AdrToString
char * NET_AdrToString(netadr_t a)
Definition: net_wins.c:156
refdef_t::rdflags
int rdflags
Definition: ref.h:128
MZ2_TANK_ROCKET_1
#define MZ2_TANK_ROCKET_1
Definition: q_shared.h:716
CL_KeyState
float CL_KeyState(kbutton_t *key)
Definition: cl_input.c:185
ATTN_STATIC
#define ATTN_STATIC
Definition: q_shared.h:1021
MZ2_WIDOW_BLASTER_SWEEP5
#define MZ2_WIDOW_BLASTER_SWEEP5
Definition: q_shared.h:870
SZ_Init
void SZ_Init(sizebuf_t *buf, byte *data, int length)
Definition: common.c:904
cl_sfx_disrexp
struct sfx_s * cl_sfx_disrexp
Definition: cl_tent.c:129
MZ2_SOLDIER_MACHINEGUN_7
#define MZ2_SOLDIER_MACHINEGUN_7
Definition: q_shared.h:803
svc_playerinfo
@ svc_playerinfo
Definition: qcommon.h:226
client_state_t::layout
char layout[1024]
Definition: client.h:158
MZ2_SOLDIER_SHOTGUN_1
#define MZ2_SOLDIER_SHOTGUN_1
Definition: q_shared.h:736
splash_color
static byte splash_color[]
Definition: cl_tent.c:738
CS_NAME
#define CS_NAME
Definition: q_shared.h:1125
entity_s::flags
int flags
Definition: ref.h:76
SCR_DirtyScreen
void SCR_DirtyScreen(void)
Definition: cl_scrn.c:687
CL_Disconnect
void CL_Disconnect(void)
Definition: cl_main.c:633
usercmd_s::forwardmove
short forwardmove
Definition: q_shared.h:518
sizebuf_s::data
byte * data
Definition: qcommon.h:79
client_state_t::refdef
refdef_t refdef
Definition: client.h:151
cl_nodelta
cvar_t * cl_nodelta
Definition: cl_input.c:24
centity_t::baseline
entity_state_t baseline
Definition: client.h:77
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:186
STAT_SELECTED_ITEM
#define STAT_SELECTED_ITEM
Definition: q_shared.h:1037
M_PI
#define M_PI
Definition: q_shared.h:135
MZ2_TANK_MACHINEGUN_13
#define MZ2_TANK_MACHINEGUN_13
Definition: q_shared.h:709
NA_BROADCAST
@ NA_BROADCAST
Definition: qcommon.h:533
MZ2_WIDOW_DISRUPTOR
#define MZ2_WIDOW_DISRUPTOR
Definition: q_shared.h:858
MZ2_INFANTRY_MACHINEGUN_8
#define MZ2_INFANTRY_MACHINEGUN_8
Definition: q_shared.h:727
free_particles
cparticle_t * free_particles
Definition: cl_newfx.c:24
MZ2_WIDOW_BLASTER_90
#define MZ2_WIDOW_BLASTER_90
Definition: q_shared.h:876
type
GLenum type
Definition: qgl_win.c:72
MZ2_WIDOW2_BEAMER_2
#define MZ2_WIDOW2_BEAMER_2
Definition: q_shared.h:906
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:1218
ATTN_NORM
#define ATTN_NORM
Definition: q_shared.h:1019
U_MODEL2
#define U_MODEL2
Definition: qcommon.h:321
MZ2_HOVER_BLASTER_1
#define MZ2_HOVER_BLASTER_1
Definition: q_shared.h:763
MZ2_BOSS2_MACHINEGUN_L3
#define MZ2_BOSS2_MACHINEGUN_L3
Definition: q_shared.h:779
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:990
entity_state_s::modelindex3
int modelindex3
Definition: q_shared.h:1177
explosion_t
Definition: cl_tent.c:29
cvar_s
Definition: q_shared.h:317
CL_ClearParticles
void CL_ClearParticles(void)
Definition: cl_fx.c:991
MZ2_TANK_MACHINEGUN_9
#define MZ2_TANK_MACHINEGUN_9
Definition: q_shared.h:705
SZ_Clear
void SZ_Clear(sizebuf_t *buf)
Definition: common.c:911
CL_CalcViewValues
void CL_CalcViewValues(void)
Definition: cl_ents.c:1409
TE_FLASHLIGHT
@ TE_FLASHLIGHT
Definition: q_shared.h:972
MZ2_TANK_MACHINEGUN_14
#define MZ2_TANK_MACHINEGUN_14
Definition: q_shared.h:710
anglemod
float anglemod(float a)
Definition: q_shared.c:293
TE_EXPLOSION2
@ TE_EXPLOSION2
Definition: q_shared.h:941
TE_FORCEWALL
@ TE_FORCEWALL
Definition: q_shared.h:973
client_state_t::force_refdef
qboolean force_refdef
Definition: client.h:120
key_menu
@ key_menu
Definition: client.h:220
PLAYER_MULT
#define PLAYER_MULT
Definition: cl_main.c:1133
frame_t::areabits
byte areabits[MAX_MAP_AREAS/8]
Definition: client.h:69
intensity
cvar_t * intensity
Definition: gl_image.c:30
precache_spawncount
int precache_spawncount
Definition: cl_main.c:1127
MZ2_WIDOW_RUN_8
#define MZ2_WIDOW_RUN_8
Definition: q_shared.h:900
CL_AddTEnts
void CL_AddTEnts(void)
Definition: cl_tent.c:2029
CL_ParseBeam
int CL_ParseBeam(struct model_s *model)
Definition: cl_tent.c:338
entity_state_s::effects
unsigned int effects
Definition: q_shared.h:1180
MZ2_MAKRON_BLASTER_2
#define MZ2_MAKRON_BLASTER_2
Definition: q_shared.h:811
vectoangles2
void vectoangles2(vec3_t value1, vec3_t angles)
Definition: cl_newfx.c:54
TE_GRENADE_EXPLOSION
@ TE_GRENADE_EXPLOSION
Definition: q_shared.h:943
frame_msec
unsigned frame_msec
Definition: cl_input.c:27
client_state_t::clientinfo
clientinfo_t clientinfo[MAX_CLIENTS]
Definition: client.h:189
refexport_t::EndRegistration
void(* EndRegistration)(void)
Definition: ref.h:180
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:1669
TE_BUBBLETRAIL2
@ TE_BUBBLETRAIL2
Definition: q_shared.h:977
viddef
viddef_t viddef
Definition: vid_dll.c:49
bitcounts
int bitcounts[32]
Definition: cl_ents.c:201
PRINT_CHAT
#define PRINT_CHAT
Definition: q_shared.h:93
j
GLint j
Definition: qgl_win.c:150
m_menudepth
int m_menudepth
Definition: menu.c:73
MZ2_INFANTRY_MACHINEGUN_6
#define MZ2_INFANTRY_MACHINEGUN_6
Definition: q_shared.h:725
entity_state_s::sound
int sound
Definition: q_shared.h:1185
NET_StringToAdr
qboolean NET_StringToAdr(char *s, netadr_t *a)
Definition: net_wins.c:257
particle_s::next
struct particle_s * next
Definition: client.h:411
CL_ParseFrame
void CL_ParseFrame(void)
Definition: cl_ents.c:676
Cmd_Argv
char * Cmd_Argv(int arg)
Definition: cmd.c:517
MZ2_SUPERTANK_ROCKET_1
#define MZ2_SUPERTANK_ROCKET_1
Definition: q_shared.h:773
MZ2_MEDIC_BLASTER_1
#define MZ2_MEDIC_BLASTER_1
Definition: q_shared.h:759
U_ANGLE3
#define U_ANGLE3
Definition: qcommon.h:301
va
char * va(char *format,...)
Definition: q_shared.c:1050
MZ_BLUEHYPERBLASTER
#define MZ_BLUEHYPERBLASTER
Definition: q_shared.h:674
clightstyle_t::length
int length
Definition: cl_fx.c:54
avelocities
static vec3_t avelocities[NUMVERTEXNORMALS]
Definition: cl_fx.c:39
MZ2_WIDOW_BLASTER_SWEEP6
#define MZ2_WIDOW_BLASTER_SWEEP6
Definition: q_shared.h:871
IN_LookdownDown
void IN_LookdownDown(void)
Definition: cl_input.c:158
MZ2_INFANTRY_MACHINEGUN_2
#define MZ2_INFANTRY_MACHINEGUN_2
Definition: q_shared.h:721
sizebuf_s::maxsize
int maxsize
Definition: qcommon.h:80
Cmd_Argc
int Cmd_Argc(void)
Definition: cmd.c:507
CL_Disintegrate
void CL_Disintegrate(vec3_t pos, int ent)
Definition: cl_fxmax.c:3563
MZ2_MAKRON_BLASTER_7
#define MZ2_MAKRON_BLASTER_7
Definition: q_shared.h:816
MZ_SHOTGUN2
#define MZ_SHOTGUN2
Definition: q_shared.h:681
CL_ParseTEnt
void CL_ParseTEnt(void)
Definition: cl_tent.c:740
client_state_t::timedemo_start
int timedemo_start
Definition: client.h:116
ATTN_NONE
#define ATTN_NONE
Definition: q_shared.h:1018
SCR_DrawCrosshair
void SCR_DrawCrosshair(void)
Definition: cl_view.c:471
keyname_t
Definition: keys.c:46
V_ClearScene
void V_ClearScene(void)
Definition: cl_view.c:83
CS_IMAGES
#define CS_IMAGES
Definition: q_shared.h:1138
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:1007
U_SOUND
#define U_SOUND
Definition: qcommon.h:329
cl_sfx_watrexp
struct sfx_s * cl_sfx_watrexp
Definition: cl_tent.c:110
RF_BEAM
#define RF_BEAM
Definition: q_shared.h:620
SCR_UpdateScreen
void SCR_UpdateScreen(void)
Definition: cl_scrn.c:1285
active_particles
cparticle_t * active_particles
Definition: cl_fx.c:62
particle_s::alphavel
float alphavel
Definition: client.h:426
IN_UpUp
void IN_UpUp(void)
Definition: cl_input.c:145
MZ2_WIDOW_BLASTER_20L
#define MZ2_WIDOW_BLASTER_20L
Definition: q_shared.h:887
CDAudio_Play
void CDAudio_Play(int track, qboolean looping)
Definition: cd_win.c:182
color8green
int color8green(int color8)
Definition: cl_fxmax.c:97
CL_FlyParticles
void CL_FlyParticles(vec3_t origin, int count)
Definition: cl_fx.c:1962
MZ2_TANK_MACHINEGUN_1
#define MZ2_TANK_MACHINEGUN_1
Definition: q_shared.h:697
particle_bubble
@ particle_bubble
Definition: particles.h:12
MZ2_WIDOW_RUN_1
#define MZ2_WIDOW_RUN_1
Definition: q_shared.h:893
MZ2_INFANTRY_MACHINEGUN_11
#define MZ2_INFANTRY_MACHINEGUN_11
Definition: q_shared.h:730
M_Menu_Keys_f
void M_Menu_Keys_f(void)
Definition: menu.c:1015
cl_noskins
cvar_t * cl_noskins
Definition: cl_main.c:42
refexport_t::DrawFadeScreen
void(* DrawFadeScreen)(void)
Definition: ref.h:199
M_Menu_DownloadOptions_f
void M_Menu_DownloadOptions_f(void)
Definition: menu.c:3329
bytedirs
vec3_t bytedirs[NUMVERTEXNORMALS]
Definition: common.c:300
particle_s
Definition: client.h:409
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:653
edict_s::item
gitem_t * item
Definition: g_local.h:1104
TE_BFG_BIGEXPLOSION
@ TE_BFG_BIGEXPLOSION
Definition: q_shared.h:956
cl_mod_bfg_explo
struct model_s * cl_mod_bfg_explo
Definition: cl_tent.c:122
userinfo_modified
qboolean userinfo_modified
Definition: cvar.c:485
MZ2_JORG_MACHINEGUN_R4
#define MZ2_JORG_MACHINEGUN_R4
Definition: q_shared.h:837
MZ2_WIDOW_BLASTER_40L
#define MZ2_WIDOW_BLASTER_40L
Definition: q_shared.h:889
MZ2_GUNNER_MACHINEGUN_2
#define MZ2_GUNNER_MACHINEGUN_2
Definition: q_shared.h:742
r_entities
entity_t r_entities[MAX_ENTITIES]
Definition: cl_view.c:47
V_Gun_Prev_f
void V_Gun_Prev_f(void)
Definition: cl_view.c:442
cl_showmiss
cvar_t * cl_showmiss
Definition: cl_main.c:72
menu_in_sound
static char * menu_in_sound
Definition: menu.c:31
MAX_LOCAL_SERVERS
#define MAX_LOCAL_SERVERS
Definition: menu.c:2264
MZ2_SOLDIER_SHOTGUN_3
#define MZ2_SOLDIER_SHOTGUN_3
Definition: q_shared.h:790
pmove_t::trace
trace_t(* trace)(vec3_t start, vec3_t mins, vec3_t maxs, vec3_t end)
Definition: q_shared.h:548
clientinfo_t::model
struct model_s * model
Definition: client.h:98
MZ2_TANK_MACHINEGUN_16
#define MZ2_TANK_MACHINEGUN_16
Definition: q_shared.h:712
MZ2_CARRIER_ROCKET_1
#define MZ2_CARRIER_ROCKET_1
Definition: q_shared.h:901
usercmd_s::sidemove
short sidemove
Definition: q_shared.h:518
skin
cvar_t * skin
Definition: cl_main.c:95
M_Menu_Credits_f
void M_Menu_Credits_f(void)
Definition: menu.c:1880
CS_MAPCHECKSUM
#define CS_MAPCHECKSUM
Definition: q_shared.h:1134
MZ2_WIDOW_RUN_6
#define MZ2_WIDOW_RUN_6
Definition: q_shared.h:898
MZ2_WIDOW2_BEAM_SWEEP_7
#define MZ2_WIDOW2_BEAM_SWEEP_7
Definition: q_shared.h:916
EF_ROCKET
#define EF_ROCKET
Definition: q_shared.h:561
cl_add_lights
cvar_t * cl_add_lights
Definition: cl_main.c:67
edict_s::angle
float angle
Definition: g_local.h:1010
MZ2_JORG_MACHINEGUN_L2
#define MZ2_JORG_MACHINEGUN_L2
Definition: q_shared.h:829
entity_s::alpha
float alpha
Definition: ref.h:73
cl_sfx_lightning
struct sfx_s * cl_sfx_lightning
Definition: cl_tent.c:128
client_static_t::downloadnumber
int downloadnumber
Definition: client.h:252
client_state_t::model_draw
struct model_s * model_draw[MAX_MODELS]
Definition: client.h:183
S_RegisterSound
sfx_t * S_RegisterSound(char *name)
Definition: snd_dma.c:305
U_EVENT
#define U_EVENT
Definition: qcommon.h:303
r
GLdouble GLdouble r
Definition: qgl_win.c:336
IN_Impulse
void IN_Impulse(void)
Definition: cl_input.c:176
cl_forwardspeed
cvar_t * cl_forwardspeed
Definition: cl_input.c:223
VIDREF_GL
#define VIDREF_GL
Definition: q_shared.h:1226
cl_add_entities
cvar_t * cl_add_entities
Definition: cl_main.c:68
LittleLong
int LittleLong(int l)
Definition: q_shared.c:948
MZ2_INFANTRY_MACHINEGUN_10
#define MZ2_INFANTRY_MACHINEGUN_10
Definition: q_shared.h:729
CL_SmokeAndFlash
void CL_SmokeAndFlash(vec3_t origin)
Definition: cl_tent.c:292
MZ2_CHICK_ROCKET_1
#define MZ2_CHICK_ROCKET_1
Definition: q_shared.h:754
MZ2_GUNNER_MACHINEGUN_6
#define MZ2_GUNNER_MACHINEGUN_6
Definition: q_shared.h:746
MZ2_WIDOW_BLASTER_30
#define MZ2_WIDOW_BLASTER_30
Definition: q_shared.h:882
IN_BackDown
void IN_BackDown(void)
Definition: cl_input.c:154
centity_t
Definition: client.h:75
client_static_t::demowaiting
qboolean demowaiting
Definition: client.h:258
in_left
kbutton_t in_left
Definition: cl_input.c:58
MZ2_WIDOW2_BEAM_SWEEP_2
#define MZ2_WIDOW2_BEAM_SWEEP_2
Definition: q_shared.h:911
MZ2_TANK_MACHINEGUN_4
#define MZ2_TANK_MACHINEGUN_4
Definition: q_shared.h:700
in_forward
kbutton_t in_forward
Definition: cl_input.c:58
TE_BFG_EXPLOSION
@ TE_BFG_EXPLOSION
Definition: q_shared.h:955
cl_sfx_lashit
struct sfx_s * cl_sfx_lashit
Definition: cl_tent.c:103
U_EFFECTS16
#define U_EFFECTS16
Definition: qcommon.h:320
MZ2_SUPERTANK_ROCKET_3
#define MZ2_SUPERTANK_ROCKET_3
Definition: q_shared.h:775
CL_Disruptor_Explosion_Particle
void CL_Disruptor_Explosion_Particle(vec3_t org, float size)
Definition: cl_fxmax.c:1734
refdef_t::num_dlights
int num_dlights
Definition: ref.h:137
IN_DownUp
void IN_DownUp(void)
Definition: cl_input.c:147
MZ2_WIDOW_BLASTER_60
#define MZ2_WIDOW_BLASTER_60
Definition: q_shared.h:879
CL_ClearState
void CL_ClearState(void)
Definition: cl_main.c:610
CL_ClearDlights
void CL_ClearDlights(void)
Definition: cl_fx.c:238
COM_BlockSequenceCRCByte
byte COM_BlockSequenceCRCByte(byte *base, int length, int sequence)
Definition: common.c:1361
clientinfo_t::iconname
char iconname[MAX_QPATH]
Definition: client.h:97
starttime
int starttime
Definition: sys_win.c:41
U_ORIGIN2
#define U_ORIGIN2
Definition: qcommon.h:299
gender_auto
cvar_t * gender_auto
Definition: cl_main.c:101
IN_MoverightUp
void IN_MoverightUp(void)
Definition: cl_input.c:163
MZ2_INFANTRY_MACHINEGUN_5
#define MZ2_INFANTRY_MACHINEGUN_5
Definition: q_shared.h:724
explosion_t::start
float start
Definition: cl_tent.c:37
MZ_SHOTGUN
#define MZ_SHOTGUN
Definition: q_shared.h:658
player_state_t::viewangles
vec3_t viewangles
Definition: q_shared.h:1204
CL_ParseBaseline
void CL_ParseBaseline(void)
Definition: cl_parse.c:366
cl_sfx_railg
struct sfx_s * cl_sfx_railg
Definition: cl_tent.c:107
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:583
MZ2_WIDOW_BLASTER_50L
#define MZ2_WIDOW_BLASTER_50L
Definition: q_shared.h:890
MSG_ReadDir
void MSG_ReadDir(sizebuf_t *sb, vec3_t dir)
Definition: common.c:483
M_Init
void M_Init(void)
Definition: menu.c:4019
particle_t::alpha
float alpha
Definition: ref.h:100
CL_PrepRefresh
void CL_PrepRefresh(void)
Definition: cl_view.c:296
CL_ParseMuzzleFlash2
void CL_ParseMuzzleFlash2(void)
Definition: cl_fx.c:529
ENV_CNT
#define ENV_CNT
Definition: cl_main.c:1136
VectorLength
vec_t VectorLength(vec3_t v)
Definition: q_shared.c:762
player_state_t::pmove
pmove_state_t pmove
Definition: q_shared.h:1200
U_EFFECTS8
#define U_EFFECTS8
Definition: qcommon.h:313
cl_stats
cvar_t * cl_stats
Definition: cl_view.c:40
dmdl_t::version
int version
Definition: qfiles.h:140
Sys_SendKeyEvents
void Sys_SendKeyEvents(void)
Definition: sys_win.c:376
cl_beams
beam_t cl_beams[MAX_BEAMS]
Definition: cl_tent.c:57
U_MOREBITS1
#define U_MOREBITS1
Definition: qcommon.h:305
t
GLdouble t
Definition: qgl_win.c:328
CL_ParseLightning
int CL_ParseLightning(struct model_s *model)
Definition: cl_tent.c:504
cl_mod_flash
struct model_s * cl_mod_flash
Definition: cl_tent.c:117
MZ2_WIDOW2_BEAMER_1
#define MZ2_WIDOW2_BEAMER_1
Definition: q_shared.h:905
cl_footsteps
cvar_t * cl_footsteps
Definition: cl_main.c:44
client_static_t::connect_time
float connect_time
Definition: client.h:240
keyname_t::name
char * name
Definition: keys.c:48
U_MODEL4
#define U_MODEL4
Definition: qcommon.h:323
FS_ExecAutoexec
void FS_ExecAutoexec(void)
Definition: files.c:600
TE_SPARKS
@ TE_SPARKS
Definition: q_shared.h:944
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:768
MZ_LOGOUT
#define MZ_LOGOUT
Definition: q_shared.h:666
MZ2_STALKER_BLASTER
#define MZ2_STALKER_BLASTER
Definition: q_shared.h:854
CL_Flashlight
void CL_Flashlight(int ent, vec3_t pos)
Definition: cl_newfx.c:93
client_state_t::refresh_prepped
qboolean refresh_prepped
Definition: client.h:118
clientinfo_t::cinfo
char cinfo[MAX_QPATH]
Definition: client.h:94
Key_KeynumToString
char * Key_KeynumToString(int keynum)
Definition: keys.c:482
CS_PLAYERSKINS
#define CS_PLAYERSKINS
Definition: q_shared.h:1141
V_AddParticle
void V_AddParticle(vec3_t org, int color, float alpha)
Definition: cl_view.c:139
MZ2_WIDOW2_BEAMER_3
#define MZ2_WIDOW2_BEAMER_3
Definition: q_shared.h:907
EF_GIB
#define EF_GIB
Definition: q_shared.h:559
dmdl_t::num_skins
int num_skins
Definition: qfiles.h:146
MZ2_BOSS2_MACHINEGUN_L1
#define MZ2_BOSS2_MACHINEGUN_L1
Definition: q_shared.h:777
centity_t::trailcount
int trailcount
Definition: client.h:83
key_game
@ key_game
Definition: client.h:220
TE_GRAPPLE_CABLE
@ TE_GRAPPLE_CABLE
Definition: q_shared.h:959
CL_TeleportParticles
void CL_TeleportParticles(vec3_t org)
Definition: cl_fx.c:2284
client_state_t::lerpfrac
float lerpfrac
Definition: client.h:149
dlight_t::color
vec3_t color
Definition: ref.h:92
MZ_NUKE4
#define MZ_NUKE4
Definition: q_shared.h:687
V_Gun_Next_f
void V_Gun_Next_f(void)
Definition: cl_view.c:436
PROTOCOL_VERSION
#define PROTOCOL_VERSION
Definition: qcommon.h:180
FS_LoadFile
int FS_LoadFile(char *path, void **buffer)
Definition: files.c:394
TE_ROCKET_EXPLOSION
@ TE_ROCKET_EXPLOSION
Definition: q_shared.h:942
cl_mod_heatbeam
struct model_s * cl_mod_heatbeam
Definition: cl_tent.c:131
BEAMLENGTH
#define BEAMLENGTH
Definition: cl_fx.c:2064
MZ_RAILGUN
#define MZ_RAILGUN
Definition: q_shared.h:662
DotProduct
#define DotProduct(x, y)
Definition: q_shared.h:155
CVAR_ARCHIVE
#define CVAR_ARCHIVE
Definition: q_shared.h:309
MZ2_MAKRON_BLASTER_17
#define MZ2_MAKRON_BLASTER_17
Definition: q_shared.h:826
particle_s::alpha
float alpha
Definition: client.h:425
cl_sfx_footsteps
struct sfx_s * cl_sfx_footsteps[4]
Definition: cl_tent.c:113
U_FRAME16
#define U_FRAME16
Definition: qcommon.h:318
ex_flash
@ ex_flash
Definition: cl_tent.c:26
MZ_NUKE2
#define MZ_NUKE2
Definition: q_shared.h:686
MZ2_MAKRON_BLASTER_15
#define MZ2_MAKRON_BLASTER_15
Definition: q_shared.h:824
MZ2_TANK_MACHINEGUN_6
#define MZ2_TANK_MACHINEGUN_6
Definition: q_shared.h:702
IN_UseDown
void IN_UseDown(void)
Definition: cl_input.c:173
S_Shutdown
void S_Shutdown(void)
Definition: snd_dma.c:164
MZ2_MAKRON_BLASTER_13
#define MZ2_MAKRON_BLASTER_13
Definition: q_shared.h:822
Cbuf_AddText
void Cbuf_AddText(char *text)
Definition: cmd.c:90
cvar_s::value
float value
Definition: q_shared.h:324
SCR_DebugGraph
void SCR_DebugGraph(float value, int color)
Definition: cl_scrn.c:139
client_state_t::cmds
usercmd_t cmds[CMD_BACKUP]
Definition: client.h:125
SPLASH_SPARKS
#define SPLASH_SPARKS
Definition: q_shared.h:996
CL_AddLightStyles
void CL_AddLightStyles(void)
Definition: cl_fx.c:214
MSG_ReadByte
int MSG_ReadByte(sizebuf_t *msg_read)
Definition: common.c:722
allow_download_players
cvar_t * allow_download_players
Definition: sv_main.c:38
in_moveright
kbutton_t in_moveright
Definition: cl_input.c:59
cdlight_t::color
vec3_t color
Definition: client.h:337
U_SKIN8
#define U_SKIN8
Definition: qcommon.h:317
MZ2_SOLDIER_BLASTER_8
#define MZ2_SOLDIER_BLASTER_8
Definition: q_shared.h:804
m_drawfunc
void(* m_drawfunc)(void)
Definition: menu.c:57
MAX_OSPATH
#define MAX_OSPATH
Definition: q_shared.h:74
svc_deltapacketentities
@ svc_deltapacketentities
Definition: qcommon.h:228
CL_ColorFlash
void CL_ColorFlash(vec3_t pos, int ent, int intensity, float r, float g, float b)
Definition: cl_newfx.c:112
CL_GunSmokeEffect
void CL_GunSmokeEffect(vec3_t org, vec3_t dir)
MZ2_BOSS2_MACHINEGUN_R2
#define MZ2_BOSS2_MACHINEGUN_R2
Definition: q_shared.h:842
IN_KLookUp
void IN_KLookUp(void)
Definition: cl_input.c:143
frame_t::valid
qboolean valid
Definition: client.h:65
cl_testblend
cvar_t * cl_testblend
Definition: cl_view.c:38
CL_ProcessSustain
void CL_ProcessSustain()
Definition: cl_tent.c:2005
CL_AddPacketEntities
void CL_AddPacketEntities(frame_t *frame)
Definition: cl_ents.c:850
client_state_t::timedemo_frames
int timedemo_frames
Definition: client.h:115
cl_add_particles
cvar_t * cl_add_particles
Definition: cl_main.c:66
cl_mod_smoke
struct model_s * cl_mod_smoke
Definition: cl_tent.c:116
CL_ColorExplosionParticles
void CL_ColorExplosionParticles(vec3_t org, int color8, int run)
Definition: cl_newfx.c:1269
MZ2_WIDOW_BLASTER_SWEEP9
#define MZ2_WIDOW_BLASTER_SWEEP9
Definition: q_shared.h:874
U_RENDERFX16
#define U_RENDERFX16
Definition: qcommon.h:319
M_Menu_DMOptions_f
void M_Menu_DMOptions_f(void)
Definition: menu.c:3197
con
console_t con
Definition: console.c:24
pmove_state_t::delta_angles
short delta_angles[3]
Definition: q_shared.h:499
refdef_t::blend
float blend[4]
Definition: ref.h:126
key_console
@ key_console
Definition: client.h:220
frame_t::serverframe
int serverframe
Definition: client.h:66
VectorNormalize
vec_t VectorNormalize(vec3_t v)
Definition: q_shared.c:681
V_TestEntities
void V_TestEntities(void)
Definition: cl_view.c:229
client_static_t::serverProtocol
int serverProtocol
Definition: client.h:245
IN_MoverightDown
void IN_MoverightDown(void)
Definition: cl_input.c:162
U_MOREBITS2
#define U_MOREBITS2
Definition: qcommon.h:314
MSG_WriteString
void MSG_WriteString(sizebuf_t *sb, char *s)
Definition: common.c:375
entity_state_s::number
int number
Definition: q_shared.h:1171
NULL
#define NULL
Definition: q_shared.h:60
MZ2_GUNNER_MACHINEGUN_3
#define MZ2_GUNNER_MACHINEGUN_3
Definition: q_shared.h:743
client_state_t::frame
frame_t frame
Definition: client.h:136
CL_ParseMuzzleFlash
void CL_ParseMuzzleFlash(void)
Definition: cl_fx.c:338
keydest_t
keydest_t
Definition: client.h:220
cl_testparticles
cvar_t * cl_testparticles
Definition: cl_view.c:35
CDAudio_RandomPlay
void CDAudio_RandomPlay(void)
Definition: cd_win.c:190
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:416
local_server_netadr
static netadr_t local_server_netadr[MAX_LOCAL_SERVERS]
Definition: menu.c:2279
refdef_t::time
float time
Definition: ref.h:127
MZ2_SOLDIER_SHOTGUN_7
#define MZ2_SOLDIER_SHOTGUN_7
Definition: q_shared.h:802
refexport_t::CinematicSetPalette
void(* CinematicSetPalette)(const unsigned char *palette)
Definition: ref.h:207
CMD_BACKUP
#define CMD_BACKUP
Definition: client.h:105
MZ2_CARRIER_MACHINEGUN_R2
#define MZ2_CARRIER_MACHINEGUN_R2
Definition: q_shared.h:863
vrect_s::x
int x
Definition: vid.h:24
MSG_WriteShort
void MSG_WriteShort(sizebuf_t *sb, int c)
Definition: common.c:335
MZ2_MAKRON_BLASTER_10
#define MZ2_MAKRON_BLASTER_10
Definition: q_shared.h:819
CL_ForceWall
void CL_ForceWall(vec3_t start, vec3_t end, int color8)
Definition: cl_newfx.c:261
setupParticle
cparticle_t * setupParticle(float angle0, float angle1, float angle2, float org0, float org1, float org2, float vel0, float vel1, float vel2, float accel0, float accel1, float accel2, float color0, float color1, float color2, float colorvel0, float colorvel1, float colorvel2, float alpha, float alphavel, float size, float sizevel, int image, int flags, void(*think)(cparticle_t *p, vec3_t org, vec3_t angle, float *alpha, float *size, int *image, float *time), qboolean thinknext)
Definition: cl_fxmax.c:978
cl_mod_parasite_tip
struct model_s * cl_mod_parasite_tip
Definition: cl_tent.c:120
cl_vwep
cvar_t * cl_vwep
Definition: cl_main.c:103
MZ2_WIDOW_BLASTER_100
#define MZ2_WIDOW_BLASTER_100
Definition: q_shared.h:875
cl_weaponmodels
char cl_weaponmodels[MAX_CLIENTWEAPONMODELS][MAX_QPATH]
Definition: cl_view.c:54
TE_PLAIN_EXPLOSION
@ TE_PLAIN_EXPLOSION
Definition: q_shared.h:971
noudp
static cvar_t * noudp
Definition: net_wins.c:42
MSG_WriteByte
void MSG_WriteByte(sizebuf_t *sb, int c)
Definition: common.c:322
V_AddLightStyle
void V_AddLightStyle(int style, float r, float g, float b)
Definition: cl_view.c:178
MZ2_GUNNER_MACHINEGUN_4
#define MZ2_GUNNER_MACHINEGUN_4
Definition: q_shared.h:744
VIDREF_SOFT
#define VIDREF_SOFT
Definition: q_shared.h:1227
clightstyle_t
Definition: cl_fx.c:52
IN_ForwardDown
void IN_ForwardDown(void)
Definition: cl_input.c:152
Com_Error
void Com_Error(int code, char *fmt,...)
Definition: common.c:203
EXPLOSION_PARTICLES
#define EXPLOSION_PARTICLES(x)
Definition: cl_tent.c:97
MZ2_TANK_MACHINEGUN_3
#define MZ2_TANK_MACHINEGUN_3
Definition: q_shared.h:699
client_state_t::playernum
int playernum
Definition: client.h:176
client_state_t::predicted_step
float predicted_step
Definition: client.h:129
TE_NUKEBLAST
@ TE_NUKEBLAST
Definition: q_shared.h:987
svc_layout
@ svc_layout
Definition: qcommon.h:211
CL_ConnectionlessPacket
void CL_ConnectionlessPacket(void)
Definition: cl_main.c:904
MZ2_BOSS2_ROCKET_2
#define MZ2_BOSS2_ROCKET_2
Definition: q_shared.h:783
MAX_ITEMS
#define MAX_ITEMS
Definition: q_shared.h:85
CL_ParseServerMessage
void CL_ParseServerMessage(void)
Definition: cl_parse.c:664
M_Menu_AddressBook_f
void M_Menu_AddressBook_f(void)
Definition: menu.c:3401
in_up
kbutton_t in_up
Definition: cl_input.c:61
MZ2_JORG_MACHINEGUN_L6
#define MZ2_JORG_MACHINEGUN_L6
Definition: q_shared.h:833
MAX_CLIENTWEAPONMODELS
#define MAX_CLIENTWEAPONMODELS
Definition: client.h:89
cl_dlights
cdlight_t cl_dlights[MAX_DLIGHTS]
Definition: cl_fx.c:231
CL_ClearTEnts
void CL_ClearTEnts(void)
Definition: cl_tent.c:229
kbutton_t::msec
unsigned msec
Definition: client.h:557
TE_DBALL_GOAL
@ TE_DBALL_GOAL
Definition: q_shared.h:985
current
static int current
Definition: cl_scrn.c:131
particle_t
Definition: ref.h:96
Con_ClearNotify
void Con_ClearNotify(void)
Definition: console.c:215
dltype_t
dltype_t
Definition: client.h:212
clc_userinfo
@ clc_userinfo
Definition: qcommon.h:242
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:196
client_state_t::baseclientinfo
clientinfo_t baseclientinfo
Definition: client.h:190
color8red
int color8red(int color8)
Definition: cl_fxmax.c:93
alpha
GLfloat GLfloat GLfloat alpha
Definition: qgl_win.c:74
clightstyle_t::value
float value[3]
Definition: cl_fx.c:55
refdef_t::num_particles
int num_particles
Definition: ref.h:140
client_state_t::time
int time
Definition: client.h:147
MZ2_MAKRON_BLASTER_8
#define MZ2_MAKRON_BLASTER_8
Definition: q_shared.h:817
refdef_t::height
int height
Definition: ref.h:122
cl_showclamp
cvar_t * cl_showclamp
Definition: cl_main.c:73
MZ2_SOLDIER_BLASTER_6
#define MZ2_SOLDIER_BLASTER_6
Definition: q_shared.h:798
CS_SKYAXIS
#define CS_SKYAXIS
Definition: q_shared.h:1128
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:176
ERR_DROP
#define ERR_DROP
Definition: qcommon.h:736
TE_MOREBLOOD
@ TE_MOREBLOOD
Definition: q_shared.h:978
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:792
MSG_ReadCoord
float MSG_ReadCoord(sizebuf_t *msg_read)
Definition: common.c:832
Q_stricmp
int Q_stricmp(char *s1, char *s2)
Definition: q_shared.c:1192
MZ2_GUNNER_MACHINEGUN_5
#define MZ2_GUNNER_MACHINEGUN_5
Definition: q_shared.h:745
EV_ITEM_RESPAWN
@ EV_ITEM_RESPAWN
Definition: q_shared.h:1156
cl_testlights
cvar_t * cl_testlights
Definition: cl_view.c:37
MZ_BLASTER2
#define MZ_BLASTER2
Definition: q_shared.h:683
dl_skin
@ dl_skin
Definition: client.h:216
MZ2_CARRIER_RAILGUN
#define MZ2_CARRIER_RAILGUN
Definition: q_shared.h:857
usercmd_s::upmove
short upmove
Definition: q_shared.h:518
client_state_t::predicted_step_time
unsigned predicted_step_time
Definition: client.h:130
VID_Init
void VID_Init(void)
Definition: vid_dll.c:709
MZ_BFG
#define MZ_BFG
Definition: q_shared.h:668
SetStringHighBit
void SetStringHighBit(char *s)
Definition: cl_inv.c:57
CDAudio_Init
int CDAudio_Init(void)
r_particles
particle_t r_particles[MAX_PARTICLES]
Definition: cl_view.c:50
IN_DownDown
void IN_DownDown(void)
Definition: cl_input.c:146
MAX_CONFIGSTRINGS
#define MAX_CONFIGSTRINGS
Definition: q_shared.h:1143
MZ2_WIDOW_BLASTER_20
#define MZ2_WIDOW_BLASTER_20
Definition: q_shared.h:883
svc_disconnect
@ svc_disconnect
Definition: qcommon.h:216
MZ2_WIDOW_BLASTER_40
#define MZ2_WIDOW_BLASTER_40
Definition: q_shared.h:881
MZ2_FLOAT_BLASTER_1
#define MZ2_FLOAT_BLASTER_1
Definition: q_shared.h:787
particle_t::origin
vec3_t origin
Definition: ref.h:98
svc_serverdata
@ svc_serverdata
Definition: qcommon.h:221
MZ2_TANK_ROCKET_2
#define MZ2_TANK_ROCKET_2
Definition: q_shared.h:717
name
cvar_t * name
Definition: cl_main.c:94
cl_mod_powerscreen
struct model_s * cl_mod_powerscreen
Definition: cl_tent.c:123
MAX_EDICTS
#define MAX_EDICTS
Definition: q_shared.h:80
TE_SCREEN_SPARKS
@ TE_SCREEN_SPARKS
Definition: q_shared.h:947
client_state_t::image_precache
struct image_s * image_precache[MAX_IMAGES]
Definition: client.h:187
NET_Config
void NET_Config(qboolean multiplayer)
Definition: net_wins.c:690
MZ2_SOLDIER_BLASTER_7
#define MZ2_SOLDIER_BLASTER_7
Definition: q_shared.h:801
netchan_t::remote_address
netadr_t remote_address
Definition: qcommon.h:585
TE_PLASMA_EXPLOSION
@ TE_PLASMA_EXPLOSION
Definition: q_shared.h:963
CL_ParseLaser
void CL_ParseLaser(int colors)
Definition: cl_tent.c:557
refexport_t::BeginRegistration
void(* BeginRegistration)(char *map)
Definition: ref.h:175
CL_ClearEffects
void CL_ClearEffects(void)
Definition: cl_fx.c:2445
CL_FixUpGender
void CL_FixUpGender(void)
Definition: cl_main.c:1074
lightstyle_t
Definition: ref.h:114
precache_check
int precache_check
Definition: cl_main.c:1126
clientinfo_t::skin
struct image_s * skin
Definition: client.h:95
MZ2_SOLDIER_BLASTER_3
#define MZ2_SOLDIER_BLASTER_3
Definition: q_shared.h:789
MZ2_SOLDIER_BLASTER_1
#define MZ2_SOLDIER_BLASTER_1
Definition: q_shared.h:734
TE_WIDOWSPLASH
@ TE_WIDOWSPLASH
Definition: q_shared.h:988
MZ2_MAKRON_BLASTER_14
#define MZ2_MAKRON_BLASTER_14
Definition: q_shared.h:823
VectorAdd
#define VectorAdd(a, b, c)
Definition: q_shared.h:157
connstate_t
connstate_t
Definition: client.h:204
MZ2_GUNNER_MACHINEGUN_7
#define MZ2_GUNNER_MACHINEGUN_7
Definition: q_shared.h:747
MAX_MSGLEN
#define MAX_MSGLEN
Definition: qcommon.h:527
MZ_TRACKER
#define MZ_TRACKER
Definition: q_shared.h:684
netadr_t::type
netadrtype_t type
Definition: qcommon.h:540
SCR_AddDirtyPoint
void SCR_AddDirtyPoint(int x, int y)
Definition: cl_scrn.c:675
Con_Init
void Con_Init(void)
Definition: console.c:312
y
GLint y
Definition: qgl_win.c:115
CL_Stop_f
void CL_Stop_f(void)
Definition: cl_main.c:147
MZ2_BOSS2_MACHINEGUN_L5
#define MZ2_BOSS2_MACHINEGUN_L5
Definition: q_shared.h:781
svc_temp_entity
@ svc_temp_entity
Definition: qcommon.h:210
MZ2_TANK_BLASTER_3
#define MZ2_TANK_BLASTER_3
Definition: q_shared.h:696
re
refexport_t re
Definition: vid_dll.c:31
frame_t::playerstate
player_state_t playerstate
Definition: client.h:70
M_Menu_LoadGame_f
void M_Menu_LoadGame_f(void)
Definition: menu.c:2176
IN_LookupDown
void IN_LookupDown(void)
Definition: cl_input.c:156
entity_state_s::skinnum
int skinnum
Definition: q_shared.h:1179
CL_ParseServerData
void CL_ParseServerData(void)
Definition: cl_parse.c:305
MAX_PARSE_ENTITIES
#define MAX_PARSE_ENTITIES
Definition: client.h:351
client_state_t::predicted_origins
short predicted_origins[CMD_BACKUP][3]
Definition: client.h:127
client_static_t::demofile
FILE * demofile
Definition: client.h:259
MSG_ReadFloat
float MSG_ReadFloat(sizebuf_t *msg_read)
Definition: common.c:767
U_SKIN16
#define U_SKIN16
Definition: qcommon.h:328
client_state_t::v_right
vec3_t v_right
Definition: client.h:153
IN_ForwardUp
void IN_ForwardUp(void)
Definition: cl_input.c:153
particle_generic
@ particle_generic
Definition: particles.h:6
VectorCopy
#define VectorCopy(a, b)
Definition: q_shared.h:158
IN_KLookDown
void IN_KLookDown(void)
Definition: cl_input.c:142
INSTANT_PARTICLE
#define INSTANT_PARTICLE
Definition: client.h:456
clientinfo_t::weaponmodel
struct model_s * weaponmodel[MAX_CLIENTWEAPONMODELS]
Definition: client.h:99
MZ2_MAKRON_BLASTER_1
#define MZ2_MAKRON_BLASTER_1
Definition: q_shared.h:810
MZ2_WIDOW2_BEAM_SWEEP_8
#define MZ2_WIDOW2_BEAM_SWEEP_8
Definition: q_shared.h:917
MZ2_JORG_MACHINEGUN_R2
#define MZ2_JORG_MACHINEGUN_R2
Definition: q_shared.h:835
S_BeginRegistration
void S_BeginRegistration(void)
Definition: snd_dma.c:293
netchan_t::outgoing_sequence
int outgoing_sequence
Definition: qcommon.h:595
CL_CreateCmd
usercmd_t CL_CreateCmd(void)
Definition: cl_input.c:377
refdef_t::lightstyles
lightstyle_t * lightstyles
Definition: ref.h:132
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:249
MZ2_SOLDIER_MACHINEGUN_8
#define MZ2_SOLDIER_MACHINEGUN_8
Definition: q_shared.h:806
CL_CheckPredictionError
void CL_CheckPredictionError(void)
Definition: cl_pred.c:29
IN_LeftDown
void IN_LeftDown(void)
Definition: cl_input.c:148
MZ2_WIDOW_BLASTER_SWEEP8
#define MZ2_WIDOW_BLASTER_SWEEP8
Definition: q_shared.h:873
refdef_t::particles
particle_t * particles
Definition: ref.h:141
client_state_t::parse_entities
int parse_entities
Definition: client.h:122
TE_LASER_SPARKS
@ TE_LASER_SPARKS
Definition: q_shared.h:950
cl_mod_explo4_big
struct model_s * cl_mod_explo4_big
Definition: cl_tent.c:133
TE_BOSSTPORT
@ TE_BOSSTPORT
Definition: q_shared.h:957
MZ2_WIDOW_RUN_3
#define MZ2_WIDOW_RUN_3
Definition: q_shared.h:895
MZ2_WIDOW_BLASTER_0
#define MZ2_WIDOW_BLASTER_0
Definition: q_shared.h:885
TE_WELDING_SPARKS
@ TE_WELDING_SPARKS
Definition: q_shared.h:960
MZ2_WIDOW_BLASTER_10L
#define MZ2_WIDOW_BLASTER_10L
Definition: q_shared.h:886
vec3_origin
vec3_t vec3_origin
Definition: q_shared.c:24
MSG_ReadLong
int MSG_ReadLong(sizebuf_t *msg_read)
Definition: common.c:750
dl_model
@ dl_model
Definition: client.h:214
MZ2_MAKRON_BLASTER_5
#define MZ2_MAKRON_BLASTER_5
Definition: q_shared.h:814
vrect_s::width
int width
Definition: vid.h:24
particle_s::colorvel
float colorvel
Definition: client.h:423
client_state_t::sound_prepped
qboolean sound_prepped
Definition: client.h:119
MZ2_INFANTRY_MACHINEGUN_13
#define MZ2_INFANTRY_MACHINEGUN_13
Definition: q_shared.h:732
usercmd_s
Definition: q_shared.h:513
refdef_t::num_entities
int num_entities
Definition: ref.h:134
refexport_t::SetSky
void(* SetSky)(char *name, float rotate, vec3_t axis)
Definition: ref.h:179
DISPLAY_ITEMS
#define DISPLAY_ITEMS
Definition: cl_inv.c:68
MZ2_MAKRON_BLASTER_6
#define MZ2_MAKRON_BLASTER_6
Definition: q_shared.h:815
up
static vec3_t up
Definition: p_view.c:29
TE_GREENBLOOD
@ TE_GREENBLOOD
Definition: q_shared.h:961
MZ2_JORG_MACHINEGUN_L3
#define MZ2_JORG_MACHINEGUN_L3
Definition: q_shared.h:830
IN_UseUp
void IN_UseUp(void)
Definition: cl_input.c:174
CL_AddDLights
void CL_AddDLights(void)
Definition: cl_fx.c:912
CHAN_WEAPON
#define CHAN_WEAPON
Definition: q_shared.h:1008
edict_s::style
int style
Definition: g_local.h:1102
r_numdlights
int r_numdlights
Definition: cl_view.c:43
client_static_t::state
connstate_t state
Definition: client.h:224
SCR_FinishCinematic
void SCR_FinishCinematic(void)
Definition: cl_cin.c:198
TE_BLUEHYPERBLASTER
@ TE_BLUEHYPERBLASTER
Definition: q_shared.h:962
IN_LookdownUp
void IN_LookdownUp(void)
Definition: cl_input.c:159
MZ2_BOSS2_MACHINEGUN_R5
#define MZ2_BOSS2_MACHINEGUN_R5
Definition: q_shared.h:845
client_state_t::cmd
usercmd_t cmd
Definition: client.h:124
NS_CLIENT
@ NS_CLIENT
Definition: qcommon.h:536
MSG_ReadString
char * MSG_ReadString(sizebuf_t *msg_read)
Definition: common.c:792
NET_GetPacket
qboolean NET_GetPacket(netsrc_t sock, netadr_t *net_from, sizebuf_t *net_message)
Definition: net_wins.c:331
MZ_PHALANX
#define MZ_PHALANX
Definition: q_shared.h:675
netchan_t::last_received
int last_received
Definition: qcommon.h:582
FS_Gamedir
char * FS_Gamedir(void)
Definition: files.c:590
TE_BFG_LASER
@ TE_BFG_LASER
Definition: q_shared.h:958
dlight_t
Definition: ref.h:84
svc_strings
char * svc_strings[256]
Definition: cl_parse.c:24
svc_configstring
@ svc_configstring
Definition: qcommon.h:222
SHORT2ANGLE
#define SHORT2ANGLE(x)
Definition: q_shared.h:1117
MZ2_BOSS2_MACHINEGUN_R3
#define MZ2_BOSS2_MACHINEGUN_R3
Definition: q_shared.h:843
MZ2_INFANTRY_MACHINEGUN_1
#define MZ2_INFANTRY_MACHINEGUN_1
Definition: q_shared.h:720
cl_timedemo
cvar_t * cl_timedemo
Definition: cl_main.c:76
entity_s
Definition: ref.h:49
CL_ItemRespawnParticles
void CL_ItemRespawnParticles(vec3_t org)
Definition: cl_fx.c:1239
cl_sustain::org
vec3_t org
Definition: client.h:373
color8blue
int color8blue(int color8)
Definition: cl_fxmax.c:101
netadr_t::port
unsigned short port
Definition: qcommon.h:550
edict_s::flags
int flags
Definition: g_local.h:996
MZ_ROCKET
#define MZ_ROCKET
Definition: q_shared.h:663
MZ2_TANK_MACHINEGUN_2
#define MZ2_TANK_MACHINEGUN_2
Definition: q_shared.h:698
usercmd_s::angles
short angles[3]
Definition: q_shared.h:517
CL_AddNetgraph
void CL_AddNetgraph(void)
Definition: cl_scrn.c:98
RF_FULLBRIGHT
#define RF_FULLBRIGHT
Definition: q_shared.h:616
clientinfo_t
Definition: client.h:91
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:893
pmove_t::s
pmove_state_t s
Definition: q_shared.h:528
client_static_t::frametime
float frametime
Definition: client.h:229
MZ2_DAEDALUS_BLASTER
#define MZ2_DAEDALUS_BLASTER
Definition: q_shared.h:855
MAX_SOUNDS
#define MAX_SOUNDS
Definition: q_shared.h:83
M_PushMenu
void M_PushMenu(void(*draw)(void), const char *(*key)(int k))
Definition: menu.c:83
client_state_t::inventory
int inventory[MAX_ITEMS]
Definition: client.h:159
MZ2_TANK_MACHINEGUN_19
#define MZ2_TANK_MACHINEGUN_19
Definition: q_shared.h:715
M_Menu_PlayerConfig_f
void M_Menu_PlayerConfig_f(void)
Definition: menu.c:3932
cl_testentities
cvar_t * cl_testentities
Definition: cl_view.c:36
cl_sfx_footsteps
struct sfx_s * cl_sfx_footsteps[4]
Definition: cl_tent.c:113
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:531
NA_BROADCAST_IPX
@ NA_BROADCAST_IPX
Definition: qcommon.h:533
log_stats_file
FILE * log_stats_file
Definition: common.c:37
TE_TRACKER_EXPLOSION
@ TE_TRACKER_EXPLOSION
Definition: q_shared.h:983
TE_BLASTER
@ TE_BLASTER
Definition: q_shared.h:937
cl_mod_grapple_cable
struct model_s * cl_mod_grapple_cable
Definition: cl_tent.c:119
SCR_CenterPrint
void SCR_CenterPrint(char *str)
Definition: cl_scrn.c:203
MZ2_WIDOW2_BEAMER_5
#define MZ2_WIDOW2_BEAMER_5
Definition: q_shared.h:909
PMF_ON_GROUND
#define PMF_ON_GROUND
Definition: q_shared.h:479
keynames
keyname_t keynames[]
Definition: keys.c:52
MZ2_SUPERTANK_MACHINEGUN_6
#define MZ2_SUPERTANK_MACHINEGUN_6
Definition: q_shared.h:772
MZ2_BOSS2_MACHINEGUN_L2
#define MZ2_BOSS2_MACHINEGUN_L2
Definition: q_shared.h:778
M_Menu_Video_f
void M_Menu_Video_f(void)
Definition: menu.c:1448
cl_predict
cvar_t * cl_predict
Definition: cl_main.c:46
refdef_t::fov_x
float fov_x
Definition: ref.h:123
MAX_SKINNAME
#define MAX_SKINNAME
Definition: qfiles.h:93
Com_Quit
void Com_Quit(void)
Definition: common.c:255
clientinfo_t::name
char name[MAX_QPATH]
Definition: client.h:93
IN_Init
void IN_Init(void)
Definition: in_win.c:346
MZ2_INFANTRY_MACHINEGUN_12
#define MZ2_INFANTRY_MACHINEGUN_12
Definition: q_shared.h:731
EV_FALLSHORT
@ EV_FALLSHORT
Definition: q_shared.h:1158
MZ2_TANK_MACHINEGUN_7
#define MZ2_TANK_MACHINEGUN_7
Definition: q_shared.h:703
TE_DEBUGTRAIL
@ TE_DEBUGTRAIL
Definition: q_shared.h:970
refdef_t::fov_y
float fov_y
Definition: ref.h:123
env_suf
static const char * env_suf[6]
Definition: cl_main.c:1139
entity_state_s::modelindex
int modelindex
Definition: q_shared.h:1176
entity_state_s::modelindex2
int modelindex2
Definition: q_shared.h:1177
TE_GUNSHOT
@ TE_GUNSHOT
Definition: q_shared.h:935
particle_t::color
int color
Definition: ref.h:99
client_state_t::configstrings
char configstrings[MAX_CONFIGSTRINGS][MAX_QPATH]
Definition: client.h:178
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:374
net_message_buffer
byte net_message_buffer[MAX_MSGLEN]
Definition: net_chan.c:83
sizebuf_s::cursize
int cursize
Definition: qcommon.h:81
MZ2_GUNNER_GRENADE_2
#define MZ2_GUNNER_GRENADE_2
Definition: q_shared.h:750
cdlight_t::minlight
float minlight
Definition: client.h:342
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:878
TE_FLECHETTE
@ TE_FLECHETTE
Definition: q_shared.h:991
Com_DPrintf
void Com_DPrintf(char *fmt,...)
Definition: common.c:155
netadr_t
Definition: qcommon.h:538
U_FRAME8
#define U_FRAME8
Definition: qcommon.h:302
CL_BloodHit
void CL_BloodHit(vec3_t org, vec3_t dir)
Definition: cl_fxmax.c:2006
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:1192
MZ2_INFANTRY_MACHINEGUN_9
#define MZ2_INFANTRY_MACHINEGUN_9
Definition: q_shared.h:728
S_StopAllSounds
void S_StopAllSounds(void)
Definition: snd_dma.c:795
svc_packetentities
@ svc_packetentities
Definition: qcommon.h:227
cl_sfx_ric1
struct sfx_s * cl_sfx_ric1
Definition: cl_tent.c:100
MZ2_SOLDIER_BLASTER_2
#define MZ2_SOLDIER_BLASTER_2
Definition: q_shared.h:735
frame_t::deltaframe
int deltaframe
Definition: client.h:68
cl_mod_explode
struct model_s * cl_mod_explode
Definition: cl_tent.c:115
MZ2_WIDOW_RUN_7
#define MZ2_WIDOW_RUN_7
Definition: q_shared.h:899
usercmd_s::buttons
byte buttons
Definition: q_shared.h:516
IN_CenterView
void IN_CenterView(void)
Definition: cl_input.c:403
CL_BubbleTrail2
void CL_BubbleTrail2(vec3_t start, vec3_t end, int dist)
Definition: cl_newfx.c:445
in_down
kbutton_t in_down
Definition: cl_input.c:61
FS_FreeFile
void FS_FreeFile(void *buffer)
Definition: files.c:433
MZ2_TANK_MACHINEGUN_5
#define MZ2_TANK_MACHINEGUN_5
Definition: q_shared.h:701
EV_FALLFAR
@ EV_FALLFAR
Definition: q_shared.h:1160
client_static_t::key_dest
keydest_t key_dest
Definition: client.h:225
SCR_Init
void SCR_Init(void)
Definition: cl_scrn.c:419
clientinfo_t::icon
struct image_s * icon
Definition: client.h:96
refdef_t::dlights
dlight_t * dlights
Definition: ref.h:138
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:707
MSG_ReadPos
void MSG_ReadPos(sizebuf_t *msg_read, vec3_t pos)
Definition: common.c:837
client_static_t::downloadname
char downloadname[MAX_OSPATH]
Definition: client.h:251
m_keyfunc
const char *(* m_keyfunc)(int key)
Definition: menu.c:58
refdef_t::width
int width
Definition: ref.h:122
MZ2_WIDOW2_BEAM_SWEEP_3
#define MZ2_WIDOW2_BEAM_SWEEP_3
Definition: q_shared.h:912
CL_RegisterTEntModels
void CL_RegisterTEntModels(void)
Definition: cl_tent.c:188
pmove_state_t::origin
short origin[3]
Definition: q_shared.h:494
ca_connected
@ ca_connected
Definition: client.h:208
MZ2_WIDOW_BLASTER_10
#define MZ2_WIDOW_BLASTER_10
Definition: q_shared.h:884
MZ2_WIDOW_RUN_4
#define MZ2_WIDOW_RUN_4
Definition: q_shared.h:896
CL_LensFlare
void CL_LensFlare(vec3_t pos, vec3_t color, float size, float time)
Definition: cl_fxmax.c:3583
active_particles
cparticle_t * active_particles
Definition: cl_fx.c:62
MZ2_WIDOW2_BEAM_SWEEP_9
#define MZ2_WIDOW2_BEAM_SWEEP_9
Definition: q_shared.h:918
m_entersound
qboolean m_entersound
Definition: menu.c:54
ALIAS_VERSION
#define ALIAS_VERSION
Definition: qfiles.h:87
cdlight_t::origin
vec3_t origin
Definition: client.h:338
refexport_t::DrawChar
void(* DrawChar)(int x, int y, int c)
Definition: ref.h:193
MZ2_TURRET_MACHINEGUN
#define MZ2_TURRET_MACHINEGUN
Definition: q_shared.h:851
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:769
U_NUMBER16
#define U_NUMBER16
Definition: qcommon.h:308
CL_ParticleEffectSparks
void CL_ParticleEffectSparks(vec3_t org, vec3_t dir, vec3_t color, int count)
Definition: cl_fxmax.c:2213
TE_TELEPORT_EFFECT
@ TE_TELEPORT_EFFECT
Definition: q_shared.h:984
lightstyle_t::white
float white
Definition: ref.h:117
svc_download
@ svc_download
Definition: qcommon.h:225
top
GLdouble GLdouble GLdouble top
Definition: qgl_win.c:159
Com_Printf
void Com_Printf(char *fmt,...)
Definition: common.c:102
CL_SetLightstyle
void CL_SetLightstyle(int i)
Definition: cl_fx.c:192
NET_CompareAdr
qboolean NET_CompareAdr(netadr_t a, netadr_t b)
Definition: net_wins.c:103
right
GLdouble right
Definition: qgl_win.c:159
MZ2_GUNNER_GRENADE_1
#define MZ2_GUNNER_GRENADE_1
Definition: q_shared.h:749
centity_t::current
entity_state_t current
Definition: client.h:78
cl_sfx_ric3
struct sfx_s * cl_sfx_ric3
Definition: cl_tent.c:102
svc_reconnect
@ svc_reconnect
Definition: qcommon.h:217
TE_STEAM
@ TE_STEAM
Definition: q_shared.h:976
MZ2_JORG_MACHINEGUN_L1
#define MZ2_JORG_MACHINEGUN_L1
Definition: q_shared.h:828
CS_LIGHTS
#define CS_LIGHTS
Definition: q_shared.h:1139
MZ2_WIDOW_BLASTER_60L
#define MZ2_WIDOW_BLASTER_60L
Definition: q_shared.h:891
pmove_t::viewangles
vec3_t viewangles
Definition: q_shared.h:538
svc_spawnbaseline
@ svc_spawnbaseline
Definition: qcommon.h:223
Sys_Milliseconds
int Sys_Milliseconds(void)
Definition: q_shwin.c:120
refdef_t::entities
entity_t * entities
Definition: ref.h:135
CHAN_BODY
#define CHAN_BODY
Definition: q_shared.h:1011
TE_LIGHTNING
@ TE_LIGHTNING
Definition: q_shared.h:969
in_right
kbutton_t in_right
Definition: cl_input.c:58
MSG_ReadAngle
float MSG_ReadAngle(sizebuf_t *msg_read)
Definition: common.c:844
clc_stringcmd
@ clc_stringcmd
Definition: qcommon.h:243
MZ2_WIDOW2_BEAM_SWEEP_5
#define MZ2_WIDOW2_BEAM_SWEEP_5
Definition: q_shared.h:914
refdef_t::x
int x
Definition: ref.h:122
IDALIASHEADER
#define IDALIASHEADER
Definition: qfiles.h:86
M_Menu_Quit_f
void M_Menu_Quit_f(void)
Definition: menu.c:4003
cls
client_static_t cls
Definition: cl_main.c:105
CL_ParseNuke
void CL_ParseNuke(void)
Definition: cl_tent.c:698
NUMVERTEXNORMALS
#define NUMVERTEXNORMALS
Definition: qcommon.h:786
MZ2_CARRIER_MACHINEGUN_L2
#define MZ2_CARRIER_MACHINEGUN_L2
Definition: q_shared.h:862
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:450
svc_muzzleflash2
@ svc_muzzleflash2
Definition: qcommon.h:209
Key_ClearStates
void Key_ClearStates(void)
Definition: keys.c:919
TEXTURE_CNT
#define TEXTURE_CNT
Definition: cl_main.c:1137
MZ2_SUPERTANK_MACHINEGUN_5
#define MZ2_SUPERTANK_MACHINEGUN_5
Definition: q_shared.h:771
CL_BlasterParticles2
void CL_BlasterParticles2(vec3_t org, vec3_t dir, unsigned int color)
Definition: cl_newfx.c:1378
crand
float crand(void)
Definition: common.c:1403
allow_download_sounds
cvar_t * allow_download_sounds
Definition: sv_main.c:40
CL_AddBeams
void CL_AddBeams(void)
Definition: cl_tent.c:1494
clc_move
@ clc_move
Definition: qcommon.h:241
frame_t
Definition: client.h:63
Cvar_VariableString
char * Cvar_VariableString(char *var_name)
Definition: cvar.c:79
CL_BigTeleportParticles
void CL_BigTeleportParticles(vec3_t org)
Definition: cl_fx.c:1313
MSG_WriteDeltaEntity
void MSG_WriteDeltaEntity(entity_state_t *from, entity_state_t *to, sizebuf_t *msg, qboolean force, qboolean newentity)
Definition: common.c:502
CL_BubbleTrail
void CL_BubbleTrail(vec3_t start, vec3_t end)
Definition: cl_fx.c:1909
MZ2_SUPERTANK_MACHINEGUN_1
#define MZ2_SUPERTANK_MACHINEGUN_1
Definition: q_shared.h:767
V_TestLights
void V_TestLights(void)
Definition: cl_view.c:261
CL_BFGExplosionParticles
void CL_BFGExplosionParticles(vec3_t org)
Definition: cl_fx.c:2245
MZ2_FLYER_BLASTER_1
#define MZ2_FLYER_BLASTER_1
Definition: q_shared.h:756
CL_Explosion_Particle
void CL_Explosion_Particle(vec3_t org, float size, qboolean large, qboolean rocket)
Definition: cl_fxmax.c:1648
MZ_RESPAWN
#define MZ_RESPAWN
Definition: q_shared.h:667
client_state_t::surpressCount
int surpressCount
Definition: client.h:137
r_dlights
dlight_t r_dlights[MAX_DLIGHTS]
Definition: cl_view.c:44
svc_sound
@ svc_sound
Definition: qcommon.h:218
r_numparticles
int r_numparticles
Definition: cl_view.c:49
IN_RightDown
void IN_RightDown(void)
Definition: cl_input.c:150
CL_StunBlast
void CL_StunBlast(vec3_t pos, vec3_t color, float size)
Definition: cl_fxmax.c:1161
CL_WeatherFx
void CL_WeatherFx(vec3_t org, vec3_t vec, vec3_t color, int type, float size, float time)
Definition: cl_fxmax.c:1884
CL_LoadClientinfo
void CL_LoadClientinfo(clientinfo_t *ci, char *s)
Definition: cl_parse.c:387
MZ2_WIDOW_BLASTER_50
#define MZ2_WIDOW_BLASTER_50
Definition: q_shared.h:880
CL_AddParticles
void CL_AddParticles(void)
Definition: cl_fx.c:2332
r_lightstyles
lightstyle_t r_lightstyles[MAX_LIGHTSTYLES]
Definition: cl_view.c:52
client_static_t::downloadtempname
char downloadtempname[MAX_OSPATH]
Definition: client.h:250
MZ2_MAKRON_BFG
#define MZ2_MAKRON_BFG
Definition: q_shared.h:809
key_message
@ key_message
Definition: client.h:220
free_particles
cparticle_t * free_particles
Definition: cl_fx.c:62
MZ2_WIDOW_RUN_5
#define MZ2_WIDOW_RUN_5
Definition: q_shared.h:897
CL_ParticleEffect3
void CL_ParticleEffect3(vec3_t org, vec3_t dir, int color, int count)
Definition: cl_fx.c:1101
edict_s::size
vec3_t size
Definition: g_local.h:985
frame_t::servertime
int servertime
Definition: client.h:67
M_Menu_Game_f
void M_Menu_Game_f(void)
Definition: menu.c:2072
noipx
static cvar_t * noipx
Definition: net_wins.c:43
MAX_LIGHTSTYLES
#define MAX_LIGHTSTYLES
Definition: q_shared.h:81
CS_AIRACCEL
#define CS_AIRACCEL
Definition: q_shared.h:1132
pmove_t::pointcontents
int(* pointcontents)(vec3_t point)
Definition: q_shared.h:549
MZ_HEATBEAM
#define MZ_HEATBEAM
Definition: q_shared.h:682
TE_MONSTER_HEATBEAM
@ TE_MONSTER_HEATBEAM
Definition: q_shared.h:975
cl_sfx_spark6
struct sfx_s * cl_sfx_spark6
Definition: cl_tent.c:105
CL_LaserStun
void CL_LaserStun(vec3_t pos, vec3_t direction, vec3_t color, float size)
Definition: cl_fxmax.c:1195
svc_stufftext
@ svc_stufftext
Definition: qcommon.h:220
UPDATE_MASK
#define UPDATE_MASK
Definition: qcommon.h:192
cl_entities
centity_t cl_entities[MAX_EDICTS]
Definition: cl_main.c:108
IN_LeftUp
void IN_LeftUp(void)
Definition: cl_input.c:149
MZ2_SUPERTANK_MACHINEGUN_4
#define MZ2_SUPERTANK_MACHINEGUN_4
Definition: q_shared.h:770
entity_state_s::angles
vec3_t angles
Definition: q_shared.h:1174
MZ2_SOLDIER_MACHINEGUN_4
#define MZ2_SOLDIER_MACHINEGUN_4
Definition: q_shared.h:794
scr_vrect
vrect_t scr_vrect
Definition: cl_scrn.c:44
cl
client_state_t cl
Definition: cl_main.c:106
M_ForceMenuOff
void M_ForceMenuOff(void)
Definition: menu.c:117
explosion_t::frames
int frames
Definition: cl_tent.c:34
U_ORIGIN3
#define U_ORIGIN3
Definition: qcommon.h:309
PORT_SERVER
#define PORT_SERVER
Definition: qcommon.h:186
kbutton_t::downtime
unsigned downtime
Definition: client.h:556
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:48
CL_ParseSteam
void CL_ParseSteam(void)
Definition: cl_tent.c:603
MZ2_SOLDIER_SHOTGUN_2
#define MZ2_SOLDIER_SHOTGUN_2
Definition: q_shared.h:737
IN_StrafeDown
void IN_StrafeDown(void)
Definition: cl_input.c:167
cl_lightstyle
clightstyle_t cl_lightstyle[MAX_LIGHTSTYLES]
Definition: cl_fx.c:59
pmove_state_t::pm_flags
byte pm_flags
Definition: q_shared.h:496
U_SOLID
#define U_SOLID
Definition: qcommon.h:330
ERR_DISCONNECT
#define ERR_DISCONNECT
Definition: q_shared.h:99
U_MODEL3
#define U_MODEL3
Definition: qcommon.h:322
MZ2_TANK_MACHINEGUN_18
#define MZ2_TANK_MACHINEGUN_18
Definition: q_shared.h:714
CL_AddLasers
void CL_AddLasers(void)
Definition: cl_tent.c:1992
MAX_IMAGES
#define MAX_IMAGES
Definition: q_shared.h:84
dlight_t::intensity
float intensity
Definition: ref.h:93
PARTICLE_GRAVITY
#define PARTICLE_GRAVITY
Definition: client.h:453
MZ2_MAKRON_BLASTER_4
#define MZ2_MAKRON_BLASTER_4
Definition: q_shared.h:813
TE_BULLET_SPARKS
@ TE_BULLET_SPARKS
Definition: q_shared.h:949
MZ2_GLADIATOR_RAILGUN_1
#define MZ2_GLADIATOR_RAILGUN_1
Definition: q_shared.h:761
vec3_t
vec_t vec3_t[3]
Definition: q_shared.h:127
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:1236
MZ2_JORG_MACHINEGUN_R5
#define MZ2_JORG_MACHINEGUN_R5
Definition: q_shared.h:838
cl_playerbeams
beam_t cl_playerbeams[MAX_BEAMS]
Definition: cl_tent.c:59
IN_AttackUp
void IN_AttackUp(void)
Definition: cl_input.c:171
MZ2_JORG_MACHINEGUN_L5
#define MZ2_JORG_MACHINEGUN_L5
Definition: q_shared.h:832
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:694
refexport_t::RenderFrame
void(* RenderFrame)(refdef_t *fd)
Definition: ref.h:182
CL_ParticleEffect
void CL_ParticleEffect(vec3_t org, vec3_t dir, int color, int count)
Definition: cl_fx.c:1011
pmove_t
Definition: q_shared.h:525
MZ2_SOLDIER_SHOTGUN_5
#define MZ2_SOLDIER_SHOTGUN_5
Definition: q_shared.h:796
svc_print
@ svc_print
Definition: qcommon.h:219
MZ_ETF_RIFLE
#define MZ_ETF_RIFLE
Definition: q_shared.h:679
M_Menu_Options_f
void M_Menu_Options_f(void)
Definition: menu.c:1434
numtexinfo
int numtexinfo
Definition: cmodel.c:68
dmdl_t
Definition: qfiles.h:137
CL_AddPlayerBeams
void CL_AddPlayerBeams(void)
Definition: cl_tent.c:1634
entity_s::angles
float angles[3]
Definition: ref.h:52
CL_ParticleFootPrint
void CL_ParticleFootPrint(vec3_t org, vec3_t angle, float size, vec3_t color)
Definition: cl_fxmax.c:2243
MZ2_JORG_MACHINEGUN_R3
#define MZ2_JORG_MACHINEGUN_R3
Definition: q_shared.h:836
cl_mod_lightning
struct model_s * cl_mod_lightning
Definition: cl_tent.c:130
particle_s::color
float color
Definition: client.h:422
MZ2_MAKRON_BLASTER_3
#define MZ2_MAKRON_BLASTER_3
Definition: q_shared.h:812
MZ2_SOLDIER_MACHINEGUN_2
#define MZ2_SOLDIER_MACHINEGUN_2
Definition: q_shared.h:739
MZ2_BOSS2_ROCKET_4
#define MZ2_BOSS2_ROCKET_4
Definition: q_shared.h:785
MZ2_GUNNER_MACHINEGUN_8
#define MZ2_GUNNER_MACHINEGUN_8
Definition: q_shared.h:748
player_state_t::stats
short stats[MAX_STATS]
Definition: q_shared.h:1220
TE_BLASTER2
@ TE_BLASTER2
Definition: q_shared.h:966
MZ_SSHOTGUN
#define MZ_SSHOTGUN
Definition: q_shared.h:669
count
GLint GLsizei count
Definition: qgl_win.c:128
cl_sfx_rockexp
struct sfx_s * cl_sfx_rockexp
Definition: cl_tent.c:108
MZ2_MAKRON_BLASTER_11
#define MZ2_MAKRON_BLASTER_11
Definition: q_shared.h:820
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:844
IN_StrafeUp
void IN_StrafeUp(void)
Definition: cl_input.c:168
explosion_t::light
float light
Definition: cl_tent.c:35
IN_MoveleftDown
void IN_MoveleftDown(void)
Definition: cl_input.c:160
MZ2_FLYER_BLASTER_2
#define MZ2_FLYER_BLASTER_2
Definition: q_shared.h:757
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:157
MZ2_MAKRON_BLASTER_12
#define MZ2_MAKRON_BLASTER_12
Definition: q_shared.h:821
vrect_s::y
int y
Definition: vid.h:24
local_server_names
static char local_server_names[MAX_LOCAL_SERVERS][80]
Definition: menu.c:2276
cl_sfx_spark7
struct sfx_s * cl_sfx_spark7
Definition: cl_tent.c:106
client_static_t::netchan
netchan_t netchan
Definition: client.h:244
client_static_t::realtime
int realtime
Definition: client.h:228
Cvar_VariableValue
float Cvar_VariableValue(char *var_name)
Definition: cvar.c:63
in_strafe
kbutton_t in_strafe
Definition: cl_input.c:60
MZ2_SOLDIER_MACHINEGUN_5
#define MZ2_SOLDIER_MACHINEGUN_5
Definition: q_shared.h:797
MZ_BLASTER
#define MZ_BLASTER
Definition: q_shared.h:656
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:1278