vkQuake2 doxygen  1.0 dev
cl_fx.c File Reference
#include "client.h"

Go to the source code of this file.

Classes

struct  clightstyle_t
 

Macros

#define BEAMLENGTH   16
 
#define BEAMLENGTH   16
 

Functions

void CL_LogoutEffect (vec3_t org, int type)
 
void CL_ItemRespawnParticles (vec3_t org)
 
void CL_ClearLightStyles (void)
 
void CL_RunLightStyles (void)
 
void CL_SetLightstyle (int i)
 
void CL_AddLightStyles (void)
 
void CL_ClearDlights (void)
 
cdlight_tCL_AllocDlight (int key)
 
void CL_NewDlight (int key, float x, float y, float z, float radius, float time)
 
void CL_RunDLights (void)
 
void CL_ParseMuzzleFlash (void)
 
void CL_ParseMuzzleFlash2 (void)
 
void CL_AddDLights (void)
 
void CL_ClearParticles (void)
 
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_TeleporterParticles (entity_state_t *ent)
 
void CL_ExplosionParticles (vec3_t org)
 
void CL_BigTeleportParticles (vec3_t org)
 
void CL_BlasterParticles (vec3_t org, vec3_t dir)
 
void CL_BlasterTrail (vec3_t start, vec3_t end)
 
void CL_QuadTrail (vec3_t start, vec3_t end)
 
void CL_FlagTrail (vec3_t start, vec3_t end, float color)
 
void CL_DiminishingTrail (vec3_t start, vec3_t end, centity_t *old, int flags)
 
void MakeNormalVectors (vec3_t forward, vec3_t right, vec3_t up)
 
void CL_RocketTrail (vec3_t start, vec3_t end, centity_t *old)
 
void CL_RailTrail (vec3_t start, vec3_t end)
 
void CL_IonripperTrail (vec3_t start, vec3_t ent)
 
void CL_BubbleTrail (vec3_t start, vec3_t end)
 
void CL_FlyParticles (vec3_t origin, int count)
 
void CL_FlyEffect (centity_t *ent, vec3_t origin)
 
void CL_BfgParticles (entity_t *ent)
 
void CL_TrapParticles (entity_t *ent)
 
void CL_BFGExplosionParticles (vec3_t org)
 
void CL_TeleportParticles (vec3_t org)
 
void CL_AddParticles (void)
 
void CL_EntityEvent (entity_state_t *ent)
 
void CL_ClearEffects (void)
 

Variables

static vec3_t avelocities [NUMVERTEXNORMALS]
 
struct model_scl_mod_smoke
 
struct model_scl_mod_flash
 
clightstyle_t cl_lightstyle [MAX_LIGHTSTYLES]
 
int lastofs
 
cdlight_t cl_dlights [MAX_DLIGHTS]
 
cparticle_tactive_particles
 
cparticle_tfree_particles
 
cparticle_t particles [MAX_PARTICLES]
 
int cl_numparticles = MAX_PARTICLES
 
struct sfx_scl_sfx_footsteps [4]
 

Macro Definition Documentation

◆ BEAMLENGTH [1/2]

#define BEAMLENGTH   16

Definition at line 1924 of file cl_fx.c.

◆ BEAMLENGTH [2/2]

#define BEAMLENGTH   16

Definition at line 1924 of file cl_fx.c.

Function Documentation

◆ CL_AddDLights()

void CL_AddDLights ( void  )

Definition at line 812 of file cl_fx.c.

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

Referenced by CL_AddEntities().

◆ CL_AddLightStyles()

void CL_AddLightStyles ( void  )

Definition at line 114 of file cl_fx.c.

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

Referenced by CL_AddEntities().

◆ CL_AddParticles()

void CL_AddParticles ( void  )

Definition at line 2190 of file cl_fx.c.

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

Referenced by CL_AddEntities().

◆ CL_AllocDlight()

cdlight_t* CL_AllocDlight ( int  key)

Definition at line 149 of file cl_fx.c.

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

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

◆ CL_BFGExplosionParticles()

void CL_BFGExplosionParticles ( vec3_t  org)

Definition at line 2105 of file cl_fx.c.

2106 {
2107  int i, j;
2108  cparticle_t *p;
2109 
2110  for (i=0 ; i<256 ; i++)
2111  {
2112  if (!free_particles)
2113  return;
2114  p = free_particles;
2115  free_particles = p->next;
2116  p->next = active_particles;
2117  active_particles = p;
2118 
2119  p->time = cl.time;
2120  p->color = 0xd0 + (rand()&7);
2121 
2122  for (j=0 ; j<3 ; j++)
2123  {
2124  p->org[j] = org[j] + ((rand()%32)-16);
2125  p->vel[j] = (rand()%384)-192;
2126  }
2127 
2128  p->accel[0] = p->accel[1] = 0;
2129  p->accel[2] = -PARTICLE_GRAVITY;
2130  p->alpha = 1.0;
2131 
2132  p->alphavel = -0.8 / (0.5 + frand()*0.3);
2133  }
2134 }

Referenced by CL_ParseTEnt().

◆ CL_BfgParticles()

void CL_BfgParticles ( entity_t ent)

Definition at line 1925 of file cl_fx.c.

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

Referenced by CL_AddPacketEntities().

◆ CL_BigTeleportParticles()

void CL_BigTeleportParticles ( vec3_t  org)

Definition at line 1195 of file cl_fx.c.

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

Referenced by CL_ParseTEnt().

◆ CL_BlasterParticles()

void CL_BlasterParticles ( vec3_t  org,
vec3_t  dir 
)

Definition at line 1242 of file cl_fx.c.

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

Referenced by CL_ParseTEnt().

◆ CL_BlasterTrail()

void CL_BlasterTrail ( vec3_t  start,
vec3_t  end 
)

Definition at line 1284 of file cl_fx.c.

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

Referenced by CL_AddPacketEntities().

◆ CL_BubbleTrail()

void CL_BubbleTrail ( vec3_t  start,
vec3_t  end 
)

Definition at line 1768 of file cl_fx.c.

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

Referenced by CL_ParseTEnt().

◆ CL_ClearDlights()

void CL_ClearDlights ( void  )

Definition at line 138 of file cl_fx.c.

139 {
140  memset (cl_dlights, 0, sizeof(cl_dlights));
141 }

Referenced by CL_ClearEffects().

◆ CL_ClearEffects()

void CL_ClearEffects ( void  )

Definition at line 2301 of file cl_fx.c.

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

Referenced by CL_ClearState().

◆ CL_ClearLightStyles()

void CL_ClearLightStyles ( void  )

Definition at line 55 of file cl_fx.c.

56 {
57  memset (cl_lightstyle, 0, sizeof(cl_lightstyle));
58  lastofs = -1;
59 }

Referenced by CL_ClearEffects().

◆ CL_ClearParticles()

void CL_ClearParticles ( void  )

Definition at line 896 of file cl_fx.c.

897 {
898  int i;
899 
902 
903  for (i=0 ;i<cl_numparticles ; i++)
904  particles[i].next = &particles[i+1];
906 }

Referenced by CL_ClearEffects().

◆ CL_DiminishingTrail()

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

Definition at line 1435 of file cl_fx.c.

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

Referenced by CL_AddPacketEntities(), and CL_RocketTrail().

◆ CL_EntityEvent()

void CL_EntityEvent ( entity_state_t ent)

Definition at line 2266 of file cl_fx.c.

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

Referenced by CL_FireEntityEvents().

◆ CL_ExplosionParticles()

void CL_ExplosionParticles ( vec3_t  org)

Definition at line 1158 of file cl_fx.c.

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

Referenced by CL_ParseTEnt().

◆ CL_FlagTrail()

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

Definition at line 1385 of file cl_fx.c.

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

Referenced by CL_AddPacketEntities().

◆ CL_FlyEffect()

void CL_FlyEffect ( centity_t ent,
vec3_t  origin 
)

Definition at line 1886 of file cl_fx.c.

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

Referenced by CL_AddPacketEntities().

◆ CL_FlyParticles()

void CL_FlyParticles ( vec3_t  origin,
int  count 
)

Definition at line 1819 of file cl_fx.c.

1820 {
1821  int i;
1822  cparticle_t *p;
1823  float angle;
1824  float sr, sp, sy, cr, cp, cy;
1825  vec3_t forward;
1826  float dist = 64;
1827  float ltime;
1828 
1829 
1830  if (count > NUMVERTEXNORMALS)
1832 
1833  if (!avelocities[0][0])
1834  {
1835  for (i=0 ; i<NUMVERTEXNORMALS; i++)
1836  {
1837  avelocities[i][0] = (rand()&255) * 0.01;
1838  avelocities[i][1] = (rand()&255) * 0.01;
1839  avelocities[i][2] = (rand()&255) * 0.01;
1840  }
1841  }
1842 
1843 
1844  ltime = (float)cl.time / 1000.0;
1845  for (i=0 ; i<count ; i+=2)
1846  {
1847  angle = ltime * avelocities[i][0];
1848  sy = sin(angle);
1849  cy = cos(angle);
1850  angle = ltime * avelocities[i][1];
1851  sp = sin(angle);
1852  cp = cos(angle);
1853  angle = ltime * avelocities[i][2];
1854  sr = sin(angle);
1855  cr = cos(angle);
1856 
1857  forward[0] = cp*cy;
1858  forward[1] = cp*sy;
1859  forward[2] = -sp;
1860 
1861  if (!free_particles)
1862  return;
1863  p = free_particles;
1864  free_particles = p->next;
1865  p->next = active_particles;
1866  active_particles = p;
1867 
1868  p->time = cl.time;
1869 
1870  dist = sin(ltime + i)*64;
1871  p->org[0] = origin[0] + bytedirs[i][0]*dist + forward[0]*BEAMLENGTH;
1872  p->org[1] = origin[1] + bytedirs[i][1]*dist + forward[1]*BEAMLENGTH;
1873  p->org[2] = origin[2] + bytedirs[i][2]*dist + forward[2]*BEAMLENGTH;
1874 
1875  VectorClear (p->vel);
1876  VectorClear (p->accel);
1877 
1878  p->color = 0;
1879  p->colorvel = 0;
1880 
1881  p->alpha = 1;
1882  p->alphavel = -100;
1883  }
1884 }

Referenced by CL_FlyEffect().

◆ CL_IonripperTrail()

void CL_IonripperTrail ( vec3_t  start,
vec3_t  ent 
)

Definition at line 1704 of file cl_fx.c.

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

Referenced by CL_AddPacketEntities().

◆ CL_ItemRespawnParticles()

void CL_ItemRespawnParticles ( vec3_t  org)

Definition at line 1119 of file cl_fx.c.

1120 {
1121  int i, j;
1122  cparticle_t *p;
1123 
1124  for (i=0 ; i<64 ; i++)
1125  {
1126  if (!free_particles)
1127  return;
1128  p = free_particles;
1129  free_particles = p->next;
1130  p->next = active_particles;
1131  active_particles = p;
1132 
1133  p->time = cl.time;
1134 
1135  p->color = 0xd4 + (rand()&3); // green
1136 
1137  p->org[0] = org[0] + crand()*8;
1138  p->org[1] = org[1] + crand()*8;
1139  p->org[2] = org[2] + crand()*8;
1140 
1141  for (j=0 ; j<3 ; j++)
1142  p->vel[j] = crand()*8;
1143 
1144  p->accel[0] = p->accel[1] = 0;
1145  p->accel[2] = -PARTICLE_GRAVITY*0.2;
1146  p->alpha = 1.0;
1147 
1148  p->alphavel = -1.0 / (1.0 + frand()*0.3);
1149  }
1150 }

Referenced by CL_EntityEvent().

◆ CL_LogoutEffect()

void CL_LogoutEffect ( vec3_t  org,
int  type 
)

Definition at line 1074 of file cl_fx.c.

1075 {
1076  int i, j;
1077  cparticle_t *p;
1078 
1079  for (i=0 ; i<500 ; i++)
1080  {
1081  if (!free_particles)
1082  return;
1083  p = free_particles;
1084  free_particles = p->next;
1085  p->next = active_particles;
1086  active_particles = p;
1087 
1088  p->time = cl.time;
1089 
1090  if (type == MZ_LOGIN)
1091  p->color = 0xd0 + (rand()&7); // green
1092  else if (type == MZ_LOGOUT)
1093  p->color = 0x40 + (rand()&7); // red
1094  else
1095  p->color = 0xe0 + (rand()&7); // yellow
1096 
1097  p->org[0] = org[0] - 16 + frand()*32;
1098  p->org[1] = org[1] - 16 + frand()*32;
1099  p->org[2] = org[2] - 24 + frand()*56;
1100 
1101  for (j=0 ; j<3 ; j++)
1102  p->vel[j] = crand()*20;
1103 
1104  p->accel[0] = p->accel[1] = 0;
1105  p->accel[2] = -PARTICLE_GRAVITY;
1106  p->alpha = 1.0;
1107 
1108  p->alphavel = -1.0 / (1.0 + frand()*0.3);
1109  }
1110 }

Referenced by CL_ParseMuzzleFlash().

◆ CL_NewDlight()

void CL_NewDlight ( int  key,
float  x,
float  y,
float  z,
float  radius,
float  time 
)

Definition at line 192 of file cl_fx.c.

193 {
194  cdlight_t *dl;
195 
196  dl = CL_AllocDlight (key);
197  dl->origin[0] = x;
198  dl->origin[1] = y;
199  dl->origin[2] = z;
200  dl->radius = radius;
201  dl->die = cl.time + time;
202 }

◆ CL_ParseMuzzleFlash()

void CL_ParseMuzzleFlash ( void  )

Definition at line 238 of file cl_fx.c.

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

Referenced by CL_ParseServerMessage().

◆ CL_ParseMuzzleFlash2()

void CL_ParseMuzzleFlash2 ( void  )

Definition at line 429 of file cl_fx.c.

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

Referenced by CL_ParseServerMessage().

◆ CL_ParticleEffect()

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

Definition at line 916 of file cl_fx.c.

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

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

◆ CL_ParticleEffect2()

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

Definition at line 955 of file cl_fx.c.

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

Referenced by CL_ParseTEnt().

◆ CL_ParticleEffect3()

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

Definition at line 995 of file cl_fx.c.

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

Referenced by CL_ParseTEnt().

◆ CL_QuadTrail()

void CL_QuadTrail ( vec3_t  start,
vec3_t  end 
)

Definition at line 1335 of file cl_fx.c.

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

◆ CL_RailTrail()

void CL_RailTrail ( vec3_t  start,
vec3_t  end 
)

Definition at line 1613 of file cl_fx.c.

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

Referenced by CL_ParseTEnt().

◆ CL_RocketTrail()

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

Definition at line 1556 of file cl_fx.c.

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

Referenced by CL_AddPacketEntities().

◆ CL_RunDLights()

void CL_RunDLights ( void  )

Definition at line 211 of file cl_fx.c.

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

Referenced by CL_Frame().

◆ CL_RunLightStyles()

void CL_RunLightStyles ( void  )

Definition at line 66 of file cl_fx.c.

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

Referenced by CL_Frame().

◆ CL_SetLightstyle()

void CL_SetLightstyle ( int  i)

Definition at line 92 of file cl_fx.c.

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

Referenced by CL_ParseConfigString().

◆ CL_TeleporterParticles()

void CL_TeleporterParticles ( entity_state_t ent)

Definition at line 1033 of file cl_fx.c.

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

Referenced by CL_FireEntityEvents().

◆ CL_TeleportParticles()

void CL_TeleportParticles ( vec3_t  org)

Definition at line 2143 of file cl_fx.c.

2144 {
2145  int i, j, k;
2146  cparticle_t *p;
2147  float vel;
2148  vec3_t dir;
2149 
2150  for (i=-16 ; i<=16 ; i+=4)
2151  for (j=-16 ; j<=16 ; j+=4)
2152  for (k=-16 ; k<=32 ; k+=4)
2153  {
2154  if (!free_particles)
2155  return;
2156  p = free_particles;
2157  free_particles = p->next;
2158  p->next = active_particles;
2159  active_particles = p;
2160 
2161  p->time = cl.time;
2162  p->color = 7 + (rand()&7);
2163 
2164  p->alpha = 1.0;
2165  p->alphavel = -1.0 / (0.3 + (rand()&7) * 0.02);
2166 
2167  p->org[0] = org[0] + i + (rand()&3);
2168  p->org[1] = org[1] + j + (rand()&3);
2169  p->org[2] = org[2] + k + (rand()&3);
2170 
2171  dir[0] = j*8;
2172  dir[1] = i*8;
2173  dir[2] = k*8;
2174 
2175  VectorNormalize (dir);
2176  vel = 50 + (rand()&63);
2177  VectorScale (dir, vel, p->vel);
2178 
2179  p->accel[0] = p->accel[1] = 0;
2180  p->accel[2] = -PARTICLE_GRAVITY;
2181  }
2182 }

Referenced by CL_EntityEvent(), and CL_ParseTEnt().

◆ CL_TrapParticles()

void CL_TrapParticles ( entity_t ent)

Definition at line 1998 of file cl_fx.c.

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

Referenced by CL_AddPacketEntities().

◆ MakeNormalVectors()

void MakeNormalVectors ( vec3_t  forward,
vec3_t  right,
vec3_t  up 
)

Definition at line 1534 of file cl_fx.c.

1535 {
1536  float d;
1537 
1538  // this rotate and negat guarantees a vector
1539  // not colinear with the original
1540  right[1] = -forward[0];
1541  right[2] = forward[1];
1542  right[0] = forward[2];
1543 
1544  d = DotProduct (right, forward);
1545  VectorMA (right, -d, forward, right);
1548 }

Referenced by CL_DebugTrail(), CL_ParticleSmokeEffect(), CL_ParticleSteamEffect(), CL_ParticleSteamEffect2(), and CL_RailTrail().

Variable Documentation

◆ active_particles

◆ avelocities

vec3_t avelocities[NUMVERTEXNORMALS]
static

Definition at line 27 of file cl_fx.c.

Referenced by CL_BfgParticles(), and CL_FlyParticles().

◆ cl_dlights

cdlight_t cl_dlights[MAX_DLIGHTS]

Definition at line 131 of file cl_fx.c.

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

◆ cl_lightstyle

◆ cl_mod_flash

struct model_s* cl_mod_flash

Definition at line 101 of file cl_tent.c.

Referenced by CL_ParseTEnt(), CL_RegisterTEntModels(), and CL_SmokeAndFlash().

◆ cl_mod_smoke

struct model_s* cl_mod_smoke

Definition at line 100 of file cl_tent.c.

Referenced by CL_RegisterTEntModels(), and CL_SmokeAndFlash().

◆ cl_numparticles

int cl_numparticles = MAX_PARTICLES

Definition at line 888 of file cl_fx.c.

Referenced by CL_ClearParticles().

◆ cl_sfx_footsteps

struct sfx_s* cl_sfx_footsteps[4]

Definition at line 97 of file cl_tent.c.

Referenced by CL_EntityEvent(), and CL_RegisterTEntSounds().

◆ free_particles

◆ lastofs

int lastofs

Definition at line 48 of file cl_fx.c.

Referenced by CL_ClearLightStyles(), and CL_RunLightStyles().

◆ particles

Definition at line 887 of file cl_fx.c.

Referenced by CL_ClearParticles(), GL_DrawParticles(), and Vk_DrawParticles().

MZ2_WIDOW_BLASTER_SWEEP3
#define MZ2_WIDOW_BLASTER_SWEEP3
Definition: q_shared.h:844
MZ2_CARRIER_MACHINEGUN_R1
#define MZ2_CARRIER_MACHINEGUN_R1
Definition: q_shared.h:825
MZ_LOGIN
#define MZ_LOGIN
Definition: q_shared.h:641
MZ2_WIDOW_BLASTER_70L
#define MZ2_WIDOW_BLASTER_70L
Definition: q_shared.h:868
MZ2_MAKRON_BLASTER_16
#define MZ2_MAKRON_BLASTER_16
Definition: q_shared.h:801
MZ2_WIDOW_PLASMABEAM
#define MZ2_WIDOW_PLASMABEAM
Definition: q_shared.h:837
MZ2_CARRIER_MACHINEGUN_L1
#define MZ2_CARRIER_MACHINEGUN_L1
Definition: q_shared.h:824
particle_s::vel
vec3_t vel
Definition: client.h:364
MZ2_WIDOW_BLASTER_SWEEP4
#define MZ2_WIDOW_BLASTER_SWEEP4
Definition: q_shared.h:845
MZ2_BOSS2_MACHINEGUN_R4
#define MZ2_BOSS2_MACHINEGUN_R4
Definition: q_shared.h:820
MZ2_WIDOW_BLASTER_SWEEP1
#define MZ2_WIDOW_BLASTER_SWEEP1
Definition: q_shared.h:842
cdlight_t::decay
float decay
Definition: client.h:302
MZ2_SUPERTANK_ROCKET_2
#define MZ2_SUPERTANK_ROCKET_2
Definition: q_shared.h:750
MZ2_SOLDIER_SHOTGUN_4
#define MZ2_SOLDIER_SHOTGUN_4
Definition: q_shared.h:769
EF_GREENGIB
#define EF_GREENGIB
Definition: q_shared.h:583
MAX_QPATH
#define MAX_QPATH
Definition: q_shared.h:80
entity_s::origin
float origin[3]
Definition: ref.h:57
MZ2_BOSS2_ROCKET_1
#define MZ2_BOSS2_ROCKET_1
Definition: q_shared.h:758
MZ2_TANK_MACHINEGUN_10
#define MZ2_TANK_MACHINEGUN_10
Definition: q_shared.h:682
EV_FALL
@ EV_FALL
Definition: q_shared.h:1135
MZ2_WIDOW_RAIL
#define MZ2_WIDOW_RAIL
Definition: q_shared.h:836
MAX_DLIGHTS
#define MAX_DLIGHTS
Definition: ref.h:25
MZ2_JORG_BFG_1
#define MZ2_JORG_BFG_1
Definition: q_shared.h:816
centity_t::fly_stoptime
int fly_stoptime
Definition: client.h:66
MZ_SILENCED
#define MZ_SILENCED
Definition: q_shared.h:652
MZ_IONRIPPER
#define MZ_IONRIPPER
Definition: q_shared.h:649
MZ_GRENADE
#define MZ_GRENADE
Definition: q_shared.h:640
int
CONST PIXELFORMATDESCRIPTOR int
Definition: qgl_win.c:35
VectorSubtract
#define VectorSubtract(a, b, c)
Definition: q_shared.h:163
MZ2_SOLDIER_MACHINEGUN_3
#define MZ2_SOLDIER_MACHINEGUN_3
Definition: q_shared.h:767
CL_ClearLightStyles
void CL_ClearLightStyles(void)
Definition: cl_fx.c:55
MZ2_TANK_MACHINEGUN_17
#define MZ2_TANK_MACHINEGUN_17
Definition: q_shared.h:689
MZ2_WIDOW_BLASTER_SWEEP7
#define MZ2_WIDOW_BLASTER_SWEEP7
Definition: q_shared.h:848
MZ2_WIDOW2_BEAM_SWEEP_10
#define MZ2_WIDOW2_BEAM_SWEEP_10
Definition: q_shared.h:895
MakeNormalVectors
void MakeNormalVectors(vec3_t forward, vec3_t right, vec3_t up)
Definition: cl_fx.c:1534
cdlight_t::radius
float radius
Definition: client.h:300
MZ2_TANK_ROCKET_3
#define MZ2_TANK_ROCKET_3
Definition: q_shared.h:694
EV_PLAYER_TELEPORT
@ EV_PLAYER_TELEPORT
Definition: q_shared.h:1137
CL_DiminishingTrail
void CL_DiminishingTrail(vec3_t start, vec3_t end, centity_t *old, int flags)
Definition: cl_fx.c:1435
MZ2_TANK_BLASTER_2
#define MZ2_TANK_BLASTER_2
Definition: q_shared.h:671
MZ2_ACTOR_MACHINEGUN_1
#define MZ2_ACTOR_MACHINEGUN_1
Definition: q_shared.h:741
MZ2_TURRET_ROCKET
#define MZ2_TURRET_ROCKET
Definition: q_shared.h:828
MZ2_TANK_MACHINEGUN_8
#define MZ2_TANK_MACHINEGUN_8
Definition: q_shared.h:680
MZ2_WIDOW2_BEAM_SWEEP_6
#define MZ2_WIDOW2_BEAM_SWEEP_6
Definition: q_shared.h:891
MZ2_BOSS2_MACHINEGUN_R1
#define MZ2_BOSS2_MACHINEGUN_R1
Definition: q_shared.h:817
particle_s::time
float time
Definition: client.h:361
MZ2_INFANTRY_MACHINEGUN_4
#define MZ2_INFANTRY_MACHINEGUN_4
Definition: q_shared.h:699
MZ2_MEDIC_BLASTER_2
#define MZ2_MEDIC_BLASTER_2
Definition: q_shared.h:832
MZ2_JORG_MACHINEGUN_R1
#define MZ2_JORG_MACHINEGUN_R1
Definition: q_shared.h:810
particle_s::accel
vec3_t accel
Definition: client.h:365
CL_AllocDlight
cdlight_t * CL_AllocDlight(int key)
Definition: cl_fx.c:149
MZ2_BOSS2_MACHINEGUN_L4
#define MZ2_BOSS2_MACHINEGUN_L4
Definition: q_shared.h:756
MZ2_GUNNER_MACHINEGUN_1
#define MZ2_GUNNER_MACHINEGUN_1
Definition: q_shared.h:717
MZ2_TANK_MACHINEGUN_15
#define MZ2_TANK_MACHINEGUN_15
Definition: q_shared.h:687
MZ2_SOLDIER_BLASTER_5
#define MZ2_SOLDIER_BLASTER_5
Definition: q_shared.h:771
MSG_ReadShort
int MSG_ReadShort(sizebuf_t *msg_read)
Definition: common.c:716
net_message
sizebuf_t net_message
Definition: net_chan.c:82
frand
float frand(void)
Definition: common.c:1375
v
GLdouble v
Definition: qgl_win.c:143
cdlight_t::die
float die
Definition: client.h:301
MZ2_BOSS2_ROCKET_3
#define MZ2_BOSS2_ROCKET_3
Definition: q_shared.h:760
MZ2_GUNNER_GRENADE_3
#define MZ2_GUNNER_GRENADE_3
Definition: q_shared.h:727
MZ2_TURRET_BLASTER
#define MZ2_TURRET_BLASTER
Definition: q_shared.h:829
MZ2_WIDOW_BLASTER_SWEEP2
#define MZ2_WIDOW_BLASTER_SWEEP2
Definition: q_shared.h:843
lastofs
int lastofs
Definition: cl_fx.c:48
MZ2_WIDOW_BLASTER_80
#define MZ2_WIDOW_BLASTER_80
Definition: q_shared.h:853
MZ_CHAINGUN3
#define MZ_CHAINGUN3
Definition: q_shared.h:637
MZ2_JORG_MACHINEGUN_L4
#define MZ2_JORG_MACHINEGUN_L4
Definition: q_shared.h:807
MZ_NUKE8
#define MZ_NUKE8
Definition: q_shared.h:664
entity_state_s::origin
vec3_t origin
Definition: q_shared.h:1149
MZ2_WIDOW2_BEAMER_4
#define MZ2_WIDOW2_BEAMER_4
Definition: q_shared.h:884
model_s::flags
int flags
Definition: r_model.h:180
MZ2_WIDOW_BLASTER
#define MZ2_WIDOW_BLASTER
Definition: q_shared.h:835
MZ_MACHINEGUN
#define MZ_MACHINEGUN
Definition: q_shared.h:633
cdlight_t
Definition: client.h:295
MZ2_WIDOW_BLASTER_30L
#define MZ2_WIDOW_BLASTER_30L
Definition: q_shared.h:864
MZ2_SOLDIER_MACHINEGUN_6
#define MZ2_SOLDIER_MACHINEGUN_6
Definition: q_shared.h:776
MZ_CHAINGUN1
#define MZ_CHAINGUN1
Definition: q_shared.h:635
MZ2_SOLDIER_SHOTGUN_8
#define MZ2_SOLDIER_SHOTGUN_8
Definition: q_shared.h:781
VectorScale
void VectorScale(vec3_t in, vec_t scale, vec3_t out)
Definition: q_shared.c:782
x
GLint GLenum GLint x
Definition: qgl_win.c:116
MZ2_SOLDIER_MACHINEGUN_1
#define MZ2_SOLDIER_MACHINEGUN_1
Definition: q_shared.h:714
EV_FOOTSTEP
@ EV_FOOTSTEP
Definition: q_shared.h:1133
MZ2_WIDOW2_BEAM_SWEEP_11
#define MZ2_WIDOW2_BEAM_SWEEP_11
Definition: q_shared.h:896
z
GLdouble GLdouble z
Definition: qgl_win.c:283
MZ_NUKE1
#define MZ_NUKE1
Definition: q_shared.h:661
MZ2_WIDOW2_BEAM_SWEEP_4
#define MZ2_WIDOW2_BEAM_SWEEP_4
Definition: q_shared.h:889
VectorClear
#define VectorClear(a)
Definition: q_shared.h:166
i
int i
Definition: q_shared.c:305
MZ2_TANK_MACHINEGUN_12
#define MZ2_TANK_MACHINEGUN_12
Definition: q_shared.h:684
MZ2_MAKRON_BLASTER_9
#define MZ2_MAKRON_BLASTER_9
Definition: q_shared.h:794
MZ_CHAINGUN2
#define MZ_CHAINGUN2
Definition: q_shared.h:636
MZ2_GUNNER_GRENADE_4
#define MZ2_GUNNER_GRENADE_4
Definition: q_shared.h:728
MZ2_SOLDIER_SHOTGUN_6
#define MZ2_SOLDIER_SHOTGUN_6
Definition: q_shared.h:775
MZ2_INFANTRY_MACHINEGUN_3
#define MZ2_INFANTRY_MACHINEGUN_3
Definition: q_shared.h:698
MZ_HYPERBLASTER
#define MZ_HYPERBLASTER
Definition: q_shared.h:646
fv
float fv
Definition: r_edge.c:75
MZ2_INFANTRY_MACHINEGUN_7
#define MZ2_INFANTRY_MACHINEGUN_7
Definition: q_shared.h:702
MZ2_WIDOW2_BEAM_SWEEP_1
#define MZ2_WIDOW2_BEAM_SWEEP_1
Definition: q_shared.h:886
entity_state_s::event
int event
Definition: q_shared.h:1162
particle_s::org
vec3_t org
Definition: client.h:363
MZ2_WIDOW_RUN_2
#define MZ2_WIDOW_RUN_2
Definition: q_shared.h:870
ATTN_IDLE
#define ATTN_IDLE
Definition: q_shared.h:996
MZ2_JORG_MACHINEGUN_R6
#define MZ2_JORG_MACHINEGUN_R6
Definition: q_shared.h:815
cdlight_t::key
int key
Definition: client.h:297
MZ2_TANK_ROCKET_1
#define MZ2_TANK_ROCKET_1
Definition: q_shared.h:692
MZ2_WIDOW_BLASTER_SWEEP5
#define MZ2_WIDOW_BLASTER_SWEEP5
Definition: q_shared.h:846
MZ2_SOLDIER_MACHINEGUN_7
#define MZ2_SOLDIER_MACHINEGUN_7
Definition: q_shared.h:779
MZ2_SOLDIER_SHOTGUN_1
#define MZ2_SOLDIER_SHOTGUN_1
Definition: q_shared.h:712
M_PI
#define M_PI
Definition: q_shared.h:142
MZ2_TANK_MACHINEGUN_13
#define MZ2_TANK_MACHINEGUN_13
Definition: q_shared.h:685
MZ2_WIDOW_DISRUPTOR
#define MZ2_WIDOW_DISRUPTOR
Definition: q_shared.h:834
MZ2_INFANTRY_MACHINEGUN_8
#define MZ2_INFANTRY_MACHINEGUN_8
Definition: q_shared.h:703
MZ2_WIDOW_BLASTER_90
#define MZ2_WIDOW_BLASTER_90
Definition: q_shared.h:852
MZ2_WIDOW2_BEAMER_2
#define MZ2_WIDOW2_BEAMER_2
Definition: q_shared.h:882
type
GLenum type
Definition: qgl_win.c:72
ATTN_NORM
#define ATTN_NORM
Definition: q_shared.h:995
MZ2_HOVER_BLASTER_1
#define MZ2_HOVER_BLASTER_1
Definition: q_shared.h:739
MZ2_BOSS2_MACHINEGUN_L3
#define MZ2_BOSS2_MACHINEGUN_L3
Definition: q_shared.h:755
CL_ClearParticles
void CL_ClearParticles(void)
Definition: cl_fx.c:896
MZ2_TANK_MACHINEGUN_9
#define MZ2_TANK_MACHINEGUN_9
Definition: q_shared.h:681
MZ2_TANK_MACHINEGUN_14
#define MZ2_TANK_MACHINEGUN_14
Definition: q_shared.h:686
MZ2_WIDOW_RUN_8
#define MZ2_WIDOW_RUN_8
Definition: q_shared.h:876
MZ2_MAKRON_BLASTER_2
#define MZ2_MAKRON_BLASTER_2
Definition: q_shared.h:787
j
GLint j
Definition: qgl_win.c:150
MZ2_INFANTRY_MACHINEGUN_6
#define MZ2_INFANTRY_MACHINEGUN_6
Definition: q_shared.h:701
particle_s::next
struct particle_s * next
Definition: client.h:359
MZ2_SUPERTANK_ROCKET_1
#define MZ2_SUPERTANK_ROCKET_1
Definition: q_shared.h:749
MZ2_MEDIC_BLASTER_1
#define MZ2_MEDIC_BLASTER_1
Definition: q_shared.h:735
MZ_BLUEHYPERBLASTER
#define MZ_BLUEHYPERBLASTER
Definition: q_shared.h:650
clightstyle_t::length
int length
Definition: cl_fx.c:42
avelocities
static vec3_t avelocities[NUMVERTEXNORMALS]
Definition: cl_fx.c:27
MZ2_WIDOW_BLASTER_SWEEP6
#define MZ2_WIDOW_BLASTER_SWEEP6
Definition: q_shared.h:847
MZ2_INFANTRY_MACHINEGUN_2
#define MZ2_INFANTRY_MACHINEGUN_2
Definition: q_shared.h:697
MZ2_MAKRON_BLASTER_7
#define MZ2_MAKRON_BLASTER_7
Definition: q_shared.h:792
MZ_SHOTGUN2
#define MZ_SHOTGUN2
Definition: q_shared.h:657
ATTN_NONE
#define ATTN_NONE
Definition: q_shared.h:994
AngleVectors
void AngleVectors(vec3_t angles, vec3_t forward, vec3_t right, vec3_t up)
Definition: q_shared.c:93
CHAN_AUTO
#define CHAN_AUTO
Definition: q_shared.h:983
particle_s::alphavel
float alphavel
Definition: client.h:369
MZ2_WIDOW_BLASTER_20L
#define MZ2_WIDOW_BLASTER_20L
Definition: q_shared.h:863
CL_FlyParticles
void CL_FlyParticles(vec3_t origin, int count)
Definition: cl_fx.c:1819
MZ2_TANK_MACHINEGUN_1
#define MZ2_TANK_MACHINEGUN_1
Definition: q_shared.h:673
MZ2_WIDOW_RUN_1
#define MZ2_WIDOW_RUN_1
Definition: q_shared.h:869
MZ2_INFANTRY_MACHINEGUN_11
#define MZ2_INFANTRY_MACHINEGUN_11
Definition: q_shared.h:706
bytedirs
vec3_t bytedirs[NUMVERTEXNORMALS]
Definition: common.c:281
particle_s
Definition: client.h:357
monster_flash_offset
vec3_t monster_flash_offset[]
Definition: m_flash.c:27
MZ2_JORG_MACHINEGUN_R4
#define MZ2_JORG_MACHINEGUN_R4
Definition: q_shared.h:813
MZ2_WIDOW_BLASTER_40L
#define MZ2_WIDOW_BLASTER_40L
Definition: q_shared.h:865
MZ2_GUNNER_MACHINEGUN_2
#define MZ2_GUNNER_MACHINEGUN_2
Definition: q_shared.h:718
MZ2_SOLDIER_SHOTGUN_3
#define MZ2_SOLDIER_SHOTGUN_3
Definition: q_shared.h:766
CrossProduct
void CrossProduct(vec3_t v1, vec3_t v2, vec3_t cross)
Definition: q_shared.c:753
MZ2_TANK_MACHINEGUN_16
#define MZ2_TANK_MACHINEGUN_16
Definition: q_shared.h:688
MZ2_CARRIER_ROCKET_1
#define MZ2_CARRIER_ROCKET_1
Definition: q_shared.h:877
MZ2_WIDOW_RUN_6
#define MZ2_WIDOW_RUN_6
Definition: q_shared.h:874
MZ2_WIDOW2_BEAM_SWEEP_7
#define MZ2_WIDOW2_BEAM_SWEEP_7
Definition: q_shared.h:892
EF_ROCKET
#define EF_ROCKET
Definition: q_shared.h:565
MZ2_JORG_MACHINEGUN_L2
#define MZ2_JORG_MACHINEGUN_L2
Definition: q_shared.h:805
S_RegisterSound
sfx_t * S_RegisterSound(char *name)
Definition: snd_dma.c:305
VIDREF_GL
#define VIDREF_GL
Definition: q_shared.h:1203
MZ2_INFANTRY_MACHINEGUN_10
#define MZ2_INFANTRY_MACHINEGUN_10
Definition: q_shared.h:705
CL_SmokeAndFlash
void CL_SmokeAndFlash(vec3_t origin)
Definition: cl_tent.c:263
MZ2_CHICK_ROCKET_1
#define MZ2_CHICK_ROCKET_1
Definition: q_shared.h:730
MZ2_GUNNER_MACHINEGUN_6
#define MZ2_GUNNER_MACHINEGUN_6
Definition: q_shared.h:722
MZ2_WIDOW_BLASTER_30
#define MZ2_WIDOW_BLASTER_30
Definition: q_shared.h:858
centity_t
Definition: client.h:55
MZ2_WIDOW2_BEAM_SWEEP_2
#define MZ2_WIDOW2_BEAM_SWEEP_2
Definition: q_shared.h:887
MZ2_TANK_MACHINEGUN_4
#define MZ2_TANK_MACHINEGUN_4
Definition: q_shared.h:676
MZ2_SUPERTANK_ROCKET_3
#define MZ2_SUPERTANK_ROCKET_3
Definition: q_shared.h:751
MZ2_WIDOW_BLASTER_60
#define MZ2_WIDOW_BLASTER_60
Definition: q_shared.h:855
CL_ClearDlights
void CL_ClearDlights(void)
Definition: cl_fx.c:138
starttime
int starttime
Definition: sys_win.c:42
MZ2_INFANTRY_MACHINEGUN_5
#define MZ2_INFANTRY_MACHINEGUN_5
Definition: q_shared.h:700
MZ_SHOTGUN
#define MZ_SHOTGUN
Definition: q_shared.h:634
forward
static vec3_t forward
Definition: p_view.c:29
MZ2_WIDOW_BLASTER_50L
#define MZ2_WIDOW_BLASTER_50L
Definition: q_shared.h:866
VectorLength
vec_t VectorLength(vec3_t v)
Definition: q_shared.c:762
MZ2_WIDOW2_BEAMER_1
#define MZ2_WIDOW2_BEAMER_1
Definition: q_shared.h:881
cl_footsteps
cvar_t * cl_footsteps
Definition: cl_main.c:44
MZ2_SUPERTANK_MACHINEGUN_2
#define MZ2_SUPERTANK_MACHINEGUN_2
Definition: q_shared.h:744
MZ_LOGOUT
#define MZ_LOGOUT
Definition: q_shared.h:642
MZ2_STALKER_BLASTER
#define MZ2_STALKER_BLASTER
Definition: q_shared.h:830
V_AddParticle
void V_AddParticle(vec3_t org, int color, float alpha)
Definition: cl_view.c:93
MZ2_WIDOW2_BEAMER_3
#define MZ2_WIDOW2_BEAMER_3
Definition: q_shared.h:883
EF_GIB
#define EF_GIB
Definition: q_shared.h:563
MZ2_BOSS2_MACHINEGUN_L1
#define MZ2_BOSS2_MACHINEGUN_L1
Definition: q_shared.h:753
centity_t::trailcount
int trailcount
Definition: client.h:63
CL_TeleportParticles
void CL_TeleportParticles(vec3_t org)
Definition: cl_fx.c:2143
MZ_NUKE4
#define MZ_NUKE4
Definition: q_shared.h:663
BEAMLENGTH
#define BEAMLENGTH
Definition: cl_fx.c:1924
MZ_RAILGUN
#define MZ_RAILGUN
Definition: q_shared.h:638
DotProduct
#define DotProduct(x, y)
Definition: q_shared.h:162
MZ2_MAKRON_BLASTER_17
#define MZ2_MAKRON_BLASTER_17
Definition: q_shared.h:802
particle_s::alpha
float alpha
Definition: client.h:368
MZ_NUKE2
#define MZ_NUKE2
Definition: q_shared.h:662
MZ2_MAKRON_BLASTER_15
#define MZ2_MAKRON_BLASTER_15
Definition: q_shared.h:800
MZ2_TANK_MACHINEGUN_6
#define MZ2_TANK_MACHINEGUN_6
Definition: q_shared.h:678
MZ2_MAKRON_BLASTER_13
#define MZ2_MAKRON_BLASTER_13
Definition: q_shared.h:798
cvar_s::value
float value
Definition: q_shared.h:331
MSG_ReadByte
int MSG_ReadByte(sizebuf_t *msg_read)
Definition: common.c:703
cdlight_t::color
vec3_t color
Definition: client.h:298
MZ2_SOLDIER_BLASTER_8
#define MZ2_SOLDIER_BLASTER_8
Definition: q_shared.h:780
MZ2_BOSS2_MACHINEGUN_R2
#define MZ2_BOSS2_MACHINEGUN_R2
Definition: q_shared.h:818
MZ2_WIDOW_BLASTER_SWEEP9
#define MZ2_WIDOW_BLASTER_SWEEP9
Definition: q_shared.h:850
VectorNormalize
vec_t VectorNormalize(vec3_t v)
Definition: q_shared.c:681
entity_state_s::number
int number
Definition: q_shared.h:1147
NULL
#define NULL
Definition: q_shared.h:67
MZ2_GUNNER_MACHINEGUN_3
#define MZ2_GUNNER_MACHINEGUN_3
Definition: q_shared.h:719
MZ2_SOLDIER_SHOTGUN_7
#define MZ2_SOLDIER_SHOTGUN_7
Definition: q_shared.h:778
MZ2_CARRIER_MACHINEGUN_R2
#define MZ2_CARRIER_MACHINEGUN_R2
Definition: q_shared.h:839
MZ2_MAKRON_BLASTER_10
#define MZ2_MAKRON_BLASTER_10
Definition: q_shared.h:795
MZ2_WIDOW_BLASTER_100
#define MZ2_WIDOW_BLASTER_100
Definition: q_shared.h:851
V_AddLightStyle
void V_AddLightStyle(int style, float r, float g, float b)
Definition: cl_view.c:132
MZ2_GUNNER_MACHINEGUN_4
#define MZ2_GUNNER_MACHINEGUN_4
Definition: q_shared.h:720
clightstyle_t
Definition: cl_fx.c:40
Com_Error
void Com_Error(int code, char *fmt,...)
Definition: common.c:181
MZ2_TANK_MACHINEGUN_3
#define MZ2_TANK_MACHINEGUN_3
Definition: q_shared.h:675
MZ2_BOSS2_ROCKET_2
#define MZ2_BOSS2_ROCKET_2
Definition: q_shared.h:759
MZ2_JORG_MACHINEGUN_L6
#define MZ2_JORG_MACHINEGUN_L6
Definition: q_shared.h:809
cl_dlights
cdlight_t cl_dlights[MAX_DLIGHTS]
Definition: cl_fx.c:131
current
static int current
Definition: cl_scrn.c:129
alpha
GLfloat GLfloat GLfloat alpha
Definition: qgl_win.c:74
client_state_t::time
int time
Definition: client.h:127
MZ2_MAKRON_BLASTER_8
#define MZ2_MAKRON_BLASTER_8
Definition: q_shared.h:793
MZ2_SOLDIER_BLASTER_6
#define MZ2_SOLDIER_BLASTER_6
Definition: q_shared.h:774
ERR_DROP
#define ERR_DROP
Definition: qcommon.h:744
MZ2_SOLDIER_BLASTER_4
#define MZ2_SOLDIER_BLASTER_4
Definition: q_shared.h:768
MZ2_GUNNER_MACHINEGUN_5
#define MZ2_GUNNER_MACHINEGUN_5
Definition: q_shared.h:721
EV_ITEM_RESPAWN
@ EV_ITEM_RESPAWN
Definition: q_shared.h:1132
clightstyle_t::map
float map[MAX_QPATH]
Definition: cl_fx.c:44
MZ_BLASTER2
#define MZ_BLASTER2
Definition: q_shared.h:659
MZ2_CARRIER_RAILGUN
#define MZ2_CARRIER_RAILGUN
Definition: q_shared.h:833
MZ_BFG
#define MZ_BFG
Definition: q_shared.h:644
MZ2_WIDOW_BLASTER_20
#define MZ2_WIDOW_BLASTER_20
Definition: q_shared.h:859
MZ2_WIDOW_BLASTER_40
#define MZ2_WIDOW_BLASTER_40
Definition: q_shared.h:857
MZ2_FLOAT_BLASTER_1
#define MZ2_FLOAT_BLASTER_1
Definition: q_shared.h:763
MZ2_TANK_ROCKET_2
#define MZ2_TANK_ROCKET_2
Definition: q_shared.h:693
MAX_EDICTS
#define MAX_EDICTS
Definition: q_shared.h:87
clightstyle_t::value
float value[3]
Definition: cl_fx.c:43
MZ2_SOLDIER_BLASTER_7
#define MZ2_SOLDIER_BLASTER_7
Definition: q_shared.h:777
MZ2_SOLDIER_BLASTER_3
#define MZ2_SOLDIER_BLASTER_3
Definition: q_shared.h:765
MZ2_SOLDIER_BLASTER_1
#define MZ2_SOLDIER_BLASTER_1
Definition: q_shared.h:710
MZ2_MAKRON_BLASTER_14
#define MZ2_MAKRON_BLASTER_14
Definition: q_shared.h:799
VectorAdd
#define VectorAdd(a, b, c)
Definition: q_shared.h:164
MZ2_GUNNER_MACHINEGUN_7
#define MZ2_GUNNER_MACHINEGUN_7
Definition: q_shared.h:723
s
static fixed16_t s
Definition: r_scan.c:30
model_s::radius
float radius
Definition: gl_model.h:189
MZ_TRACKER
#define MZ_TRACKER
Definition: q_shared.h:660
y
GLint y
Definition: qgl_win.c:115
MZ2_BOSS2_MACHINEGUN_L5
#define MZ2_BOSS2_MACHINEGUN_L5
Definition: q_shared.h:757
MZ2_TANK_BLASTER_3
#define MZ2_TANK_BLASTER_3
Definition: q_shared.h:672
VectorCopy
#define VectorCopy(a, b)
Definition: q_shared.h:165
INSTANT_PARTICLE
#define INSTANT_PARTICLE
Definition: client.h:376
MZ2_MAKRON_BLASTER_1
#define MZ2_MAKRON_BLASTER_1
Definition: q_shared.h:786
MZ2_WIDOW2_BEAM_SWEEP_8
#define MZ2_WIDOW2_BEAM_SWEEP_8
Definition: q_shared.h:893
MZ2_JORG_MACHINEGUN_R2
#define MZ2_JORG_MACHINEGUN_R2
Definition: q_shared.h:811
MZ2_SOLDIER_MACHINEGUN_8
#define MZ2_SOLDIER_MACHINEGUN_8
Definition: q_shared.h:782
MZ2_WIDOW_BLASTER_SWEEP8
#define MZ2_WIDOW_BLASTER_SWEEP8
Definition: q_shared.h:849
MZ2_WIDOW_RUN_3
#define MZ2_WIDOW_RUN_3
Definition: q_shared.h:871
MZ2_WIDOW_BLASTER_0
#define MZ2_WIDOW_BLASTER_0
Definition: q_shared.h:861
MZ2_WIDOW_BLASTER_10L
#define MZ2_WIDOW_BLASTER_10L
Definition: q_shared.h:862
vec3_origin
vec3_t vec3_origin
Definition: q_shared.c:24
MZ2_MAKRON_BLASTER_5
#define MZ2_MAKRON_BLASTER_5
Definition: q_shared.h:790
particle_s::colorvel
float colorvel
Definition: client.h:367
MZ2_INFANTRY_MACHINEGUN_13
#define MZ2_INFANTRY_MACHINEGUN_13
Definition: q_shared.h:708
MZ2_MAKRON_BLASTER_6
#define MZ2_MAKRON_BLASTER_6
Definition: q_shared.h:791
up
static vec3_t up
Definition: p_view.c:29
MZ2_JORG_MACHINEGUN_L3
#define MZ2_JORG_MACHINEGUN_L3
Definition: q_shared.h:806
CHAN_WEAPON
#define CHAN_WEAPON
Definition: q_shared.h:984
MZ2_BOSS2_MACHINEGUN_R5
#define MZ2_BOSS2_MACHINEGUN_R5
Definition: q_shared.h:821
MZ_PHALANX
#define MZ_PHALANX
Definition: q_shared.h:651
MZ2_BOSS2_MACHINEGUN_R3
#define MZ2_BOSS2_MACHINEGUN_R3
Definition: q_shared.h:819
MZ2_INFANTRY_MACHINEGUN_1
#define MZ2_INFANTRY_MACHINEGUN_1
Definition: q_shared.h:696
CL_ItemRespawnParticles
void CL_ItemRespawnParticles(vec3_t org)
Definition: cl_fx.c:1119
MZ_ROCKET
#define MZ_ROCKET
Definition: q_shared.h:639
MZ2_TANK_MACHINEGUN_2
#define MZ2_TANK_MACHINEGUN_2
Definition: q_shared.h:674
client_static_t::frametime
float frametime
Definition: client.h:209
MZ2_DAEDALUS_BLASTER
#define MZ2_DAEDALUS_BLASTER
Definition: q_shared.h:831
MZ2_TANK_MACHINEGUN_19
#define MZ2_TANK_MACHINEGUN_19
Definition: q_shared.h:691
cl_sfx_footsteps
struct sfx_s * cl_sfx_footsteps[4]
Definition: cl_tent.c:97
VectorMA
void VectorMA(vec3_t veca, float scale, vec3_t vecb, vec3_t vecc)
Definition: q_shared.c:719
MZ2_WIDOW2_BEAMER_5
#define MZ2_WIDOW2_BEAMER_5
Definition: q_shared.h:885
MZ2_SUPERTANK_MACHINEGUN_6
#define MZ2_SUPERTANK_MACHINEGUN_6
Definition: q_shared.h:748
MZ2_BOSS2_MACHINEGUN_L2
#define MZ2_BOSS2_MACHINEGUN_L2
Definition: q_shared.h:754
MZ2_INFANTRY_MACHINEGUN_12
#define MZ2_INFANTRY_MACHINEGUN_12
Definition: q_shared.h:707
EV_FALLSHORT
@ EV_FALLSHORT
Definition: q_shared.h:1134
MZ2_TANK_MACHINEGUN_7
#define MZ2_TANK_MACHINEGUN_7
Definition: q_shared.h:679
client_state_t::configstrings
char configstrings[MAX_CONFIGSTRINGS][MAX_QPATH]
Definition: client.h:158
MZ2_GUNNER_GRENADE_2
#define MZ2_GUNNER_GRENADE_2
Definition: q_shared.h:726
cdlight_t::minlight
float minlight
Definition: client.h:303
MZ2_WIDOW_BLASTER_70
#define MZ2_WIDOW_BLASTER_70
Definition: q_shared.h:854
CL_LogoutEffect
void CL_LogoutEffect(vec3_t org, int type)
Definition: cl_fx.c:1074
MZ2_INFANTRY_MACHINEGUN_9
#define MZ2_INFANTRY_MACHINEGUN_9
Definition: q_shared.h:704
MZ2_SOLDIER_BLASTER_2
#define MZ2_SOLDIER_BLASTER_2
Definition: q_shared.h:711
MZ2_WIDOW_RUN_7
#define MZ2_WIDOW_RUN_7
Definition: q_shared.h:875
MZ2_TANK_MACHINEGUN_5
#define MZ2_TANK_MACHINEGUN_5
Definition: q_shared.h:677
EV_FALLFAR
@ EV_FALLFAR
Definition: q_shared.h:1136
MZ2_TANK_MACHINEGUN_11
#define MZ2_TANK_MACHINEGUN_11
Definition: q_shared.h:683
MZ2_WIDOW2_BEAM_SWEEP_3
#define MZ2_WIDOW2_BEAM_SWEEP_3
Definition: q_shared.h:888
MZ2_WIDOW_BLASTER_10
#define MZ2_WIDOW_BLASTER_10
Definition: q_shared.h:860
MZ2_WIDOW_RUN_4
#define MZ2_WIDOW_RUN_4
Definition: q_shared.h:872
active_particles
cparticle_t * active_particles
Definition: cl_fx.c:885
MZ2_WIDOW2_BEAM_SWEEP_9
#define MZ2_WIDOW2_BEAM_SWEEP_9
Definition: q_shared.h:894
cdlight_t::origin
vec3_t origin
Definition: client.h:299
MZ2_TURRET_MACHINEGUN
#define MZ2_TURRET_MACHINEGUN
Definition: q_shared.h:827
MZ2_SUPERTANK_MACHINEGUN_3
#define MZ2_SUPERTANK_MACHINEGUN_3
Definition: q_shared.h:745
right
GLdouble right
Definition: qgl_win.c:159
MZ2_GUNNER_GRENADE_1
#define MZ2_GUNNER_GRENADE_1
Definition: q_shared.h:725
centity_t::current
entity_state_t current
Definition: client.h:58
CS_LIGHTS
#define CS_LIGHTS
Definition: q_shared.h:1115
MZ2_JORG_MACHINEGUN_L1
#define MZ2_JORG_MACHINEGUN_L1
Definition: q_shared.h:804
MZ2_WIDOW_BLASTER_60L
#define MZ2_WIDOW_BLASTER_60L
Definition: q_shared.h:867
particles
cparticle_t particles[MAX_PARTICLES]
Definition: cl_fx.c:887
CHAN_BODY
#define CHAN_BODY
Definition: q_shared.h:987
MZ2_WIDOW2_BEAM_SWEEP_5
#define MZ2_WIDOW2_BEAM_SWEEP_5
Definition: q_shared.h:890
cls
client_static_t cls
Definition: cl_main.c:90
NUMVERTEXNORMALS
#define NUMVERTEXNORMALS
Definition: qcommon.h:792
MZ2_CARRIER_MACHINEGUN_L2
#define MZ2_CARRIER_MACHINEGUN_L2
Definition: q_shared.h:838
MZ2_SUPERTANK_MACHINEGUN_5
#define MZ2_SUPERTANK_MACHINEGUN_5
Definition: q_shared.h:747
crand
float crand(void)
Definition: common.c:1380
MZ2_SUPERTANK_MACHINEGUN_1
#define MZ2_SUPERTANK_MACHINEGUN_1
Definition: q_shared.h:743
MZ2_FLYER_BLASTER_1
#define MZ2_FLYER_BLASTER_1
Definition: q_shared.h:732
MZ_RESPAWN
#define MZ_RESPAWN
Definition: q_shared.h:643
MZ2_WIDOW_BLASTER_50
#define MZ2_WIDOW_BLASTER_50
Definition: q_shared.h:856
MZ2_MAKRON_BFG
#define MZ2_MAKRON_BFG
Definition: q_shared.h:785
free_particles
cparticle_t * free_particles
Definition: cl_fx.c:885
MZ2_WIDOW_RUN_5
#define MZ2_WIDOW_RUN_5
Definition: q_shared.h:873
MAX_LIGHTSTYLES
#define MAX_LIGHTSTYLES
Definition: q_shared.h:88
MZ_HEATBEAM
#define MZ_HEATBEAM
Definition: q_shared.h:658
cl_entities
centity_t cl_entities[MAX_EDICTS]
Definition: cl_main.c:93
MZ2_SUPERTANK_MACHINEGUN_4
#define MZ2_SUPERTANK_MACHINEGUN_4
Definition: q_shared.h:746
entity_state_s::angles
vec3_t angles
Definition: q_shared.h:1150
MZ2_SOLDIER_MACHINEGUN_4
#define MZ2_SOLDIER_MACHINEGUN_4
Definition: q_shared.h:770
cl
client_state_t cl
Definition: cl_main.c:91
MZ2_SOLDIER_SHOTGUN_2
#define MZ2_SOLDIER_SHOTGUN_2
Definition: q_shared.h:713
cl_lightstyle
clightstyle_t cl_lightstyle[MAX_LIGHTSTYLES]
Definition: cl_fx.c:47
MZ2_TANK_MACHINEGUN_18
#define MZ2_TANK_MACHINEGUN_18
Definition: q_shared.h:690
PARTICLE_GRAVITY
#define PARTICLE_GRAVITY
Definition: client.h:373
MZ2_MAKRON_BLASTER_4
#define MZ2_MAKRON_BLASTER_4
Definition: q_shared.h:789
MZ2_GLADIATOR_RAILGUN_1
#define MZ2_GLADIATOR_RAILGUN_1
Definition: q_shared.h:737
vec3_t
vec_t vec3_t[3]
Definition: q_shared.h:134
Com_sprintf
void Com_sprintf(char *dest, int size, char *fmt,...)
Definition: q_shared.c:1223
MZ2_JORG_MACHINEGUN_R5
#define MZ2_JORG_MACHINEGUN_R5
Definition: q_shared.h:814
MZ2_JORG_MACHINEGUN_L5
#define MZ2_JORG_MACHINEGUN_L5
Definition: q_shared.h:808
vidref_val
int vidref_val
Definition: cl_ents.c:28
MZ2_TANK_BLASTER_1
#define MZ2_TANK_BLASTER_1
Definition: q_shared.h:670
CL_ParticleEffect
void CL_ParticleEffect(vec3_t org, vec3_t dir, int color, int count)
Definition: cl_fx.c:916
MZ2_SOLDIER_SHOTGUN_5
#define MZ2_SOLDIER_SHOTGUN_5
Definition: q_shared.h:772
MZ_ETF_RIFLE
#define MZ_ETF_RIFLE
Definition: q_shared.h:655
cl_numparticles
int cl_numparticles
Definition: cl_fx.c:888
MZ2_JORG_MACHINEGUN_R3
#define MZ2_JORG_MACHINEGUN_R3
Definition: q_shared.h:812
particle_s::color
float color
Definition: client.h:366
MZ2_MAKRON_BLASTER_3
#define MZ2_MAKRON_BLASTER_3
Definition: q_shared.h:788
MZ2_SOLDIER_MACHINEGUN_2
#define MZ2_SOLDIER_MACHINEGUN_2
Definition: q_shared.h:715
MZ2_BOSS2_ROCKET_4
#define MZ2_BOSS2_ROCKET_4
Definition: q_shared.h:761
MZ2_GUNNER_MACHINEGUN_8
#define MZ2_GUNNER_MACHINEGUN_8
Definition: q_shared.h:724
MZ_SSHOTGUN
#define MZ_SSHOTGUN
Definition: q_shared.h:645
count
GLint GLsizei count
Definition: qgl_win.c:128
MZ2_MAKRON_BLASTER_11
#define MZ2_MAKRON_BLASTER_11
Definition: q_shared.h:796
S_StartSound
void S_StartSound(vec3_t origin, int entnum, int entchannel, sfx_t *sfx, float fvol, float attenuation, float timeofs)
Definition: snd_dma.c:655
MZ2_FLYER_BLASTER_2
#define MZ2_FLYER_BLASTER_2
Definition: q_shared.h:733
V_AddLight
void V_AddLight(vec3_t org, float intensity, float r, float g, float b)
Definition: cl_view.c:111
MZ2_MAKRON_BLASTER_12
#define MZ2_MAKRON_BLASTER_12
Definition: q_shared.h:797
MZ2_SOLDIER_MACHINEGUN_5
#define MZ2_SOLDIER_MACHINEGUN_5
Definition: q_shared.h:773
MZ_BLASTER
#define MZ_BLASTER
Definition: q_shared.h:632