icculus quake2 doxygen  1.0 dev
p_hud.c File Reference
#include "g_local.h"

Go to the source code of this file.

Functions

void MoveClientToIntermission (edict_t *ent)
 
void BeginIntermission (edict_t *targ)
 
void DeathmatchScoreboardMessage (edict_t *ent, edict_t *killer)
 
void DeathmatchScoreboard (edict_t *ent)
 
void Cmd_Score_f (edict_t *ent)
 
void HelpComputer (edict_t *ent)
 
void Cmd_Help_f (edict_t *ent)
 
void G_SetStats (edict_t *ent)
 
void G_CheckChaseStats (edict_t *ent)
 
void G_SetSpectatorStats (edict_t *ent)
 

Function Documentation

◆ BeginIntermission()

void BeginIntermission ( edict_t targ)

Definition at line 73 of file p_hud.c.

74 {
75  int i, n;
76  edict_t *ent, *client;
77 
78  if (level.intermissiontime)
79  return; // already activated
80 
81  game.autosaved = false;
82 
83  // respawn any dead clients
84  for (i=0 ; i<maxclients->value ; i++)
85  {
86  client = g_edicts + 1 + i;
87  if (!client->inuse)
88  continue;
89  if (client->health <= 0)
90  respawn(client);
91  }
92 
93  level.intermissiontime = level.time;
94  level.changemap = targ->map;
95 
96  if (strstr(level.changemap, "*"))
97  {
98  if (coop->value)
99  {
100  for (i=0 ; i<maxclients->value ; i++)
101  {
102  client = g_edicts + 1 + i;
103  if (!client->inuse)
104  continue;
105  // strip players of all keys between units
106  for (n = 0; n < MAX_ITEMS; n++)
107  {
108  if (itemlist[n].flags & IT_KEY)
109  client->client->pers.inventory[n] = 0;
110  }
111  }
112  }
113  }
114  else
115  {
116  if (!deathmatch->value)
117  {
118  level.exitintermission = 1; // go immediately to the next level
119  return;
120  }
121  }
122 
123  level.exitintermission = 0;
124 
125  // find an intermission spot
126  ent = G_Find (NULL, FOFS(classname), "info_player_intermission");
127  if (!ent)
128  { // the map creator forgot to put in an intermission point...
129  ent = G_Find (NULL, FOFS(classname), "info_player_start");
130  if (!ent)
131  ent = G_Find (NULL, FOFS(classname), "info_player_deathmatch");
132  }
133  else
134  { // chose one of four spots
135  i = rand() & 3;
136  while (i--)
137  {
138  ent = G_Find (ent, FOFS(classname), "info_player_intermission");
139  if (!ent) // wrap around the list
140  ent = G_Find (ent, FOFS(classname), "info_player_intermission");
141  }
142  }
143 
144  VectorCopy (ent->s.origin, level.intermission_origin);
145  VectorCopy (ent->s.angles, level.intermission_angle);
146 
147  // move all clients to the intermission point
148  for (i=0 ; i<maxclients->value ; i++)
149  {
150  client = g_edicts + 1 + i;
151  if (!client->inuse)
152  continue;
153  MoveClientToIntermission (client);
154  }
155 }

Referenced by EndDMLevel(), and use_target_changelevel().

◆ Cmd_Help_f()

void Cmd_Help_f ( edict_t ent)

Definition at line 346 of file p_hud.c.

347 {
348  // this is for backwards compatability
349  if (deathmatch->value)
350  {
351  Cmd_Score_f (ent);
352  return;
353  }
354 
355  ent->client->showinventory = false;
356  ent->client->showscores = false;
357 
358  if (ent->client->showhelp && (ent->client->pers.game_helpchanged == game.helpchanged))
359  {
360  ent->client->showhelp = false;
361  return;
362  }
363 
364  ent->client->showhelp = true;
365  ent->client->pers.helpchanged = 0;
366  HelpComputer (ent);
367 }

Referenced by ClientCommand(), and player_die().

◆ Cmd_Score_f()

void Cmd_Score_f ( edict_t ent)

Definition at line 276 of file p_hud.c.

277 {
278  ent->client->showinventory = false;
279  ent->client->showhelp = false;
280 
281  if (!deathmatch->value && !coop->value)
282  return;
283 
284  if (ent->client->showscores)
285  {
286  ent->client->showscores = false;
287  return;
288  }
289 
290  ent->client->showscores = true;
291  DeathmatchScoreboard (ent);
292 }

Referenced by ClientCommand(), and Cmd_Help_f().

◆ DeathmatchScoreboard()

void DeathmatchScoreboard ( edict_t ent)

Definition at line 262 of file p_hud.c.

263 {
265  gi.unicast (ent, true);
266 }

Referenced by Cmd_Score_f().

◆ DeathmatchScoreboardMessage()

void DeathmatchScoreboardMessage ( edict_t ent,
edict_t killer 
)

Definition at line 164 of file p_hud.c.

165 {
166  char entry[1024];
167  char string[1400];
168  int stringlength;
169  int i, j, k;
170  int sorted[MAX_CLIENTS];
171  int sortedscores[MAX_CLIENTS];
172  int score, total;
173  int picnum;
174  int x, y;
175  gclient_t *cl;
176  edict_t *cl_ent;
177  char *tag;
178 
179  // sort the clients by score
180  total = 0;
181  for (i=0 ; i<game.maxclients ; i++)
182  {
183  cl_ent = g_edicts + 1 + i;
184  if (!cl_ent->inuse || game.clients[i].resp.spectator)
185  continue;
186  score = game.clients[i].resp.score;
187  for (j=0 ; j<total ; j++)
188  {
189  if (score > sortedscores[j])
190  break;
191  }
192  for (k=total ; k>j ; k--)
193  {
194  sorted[k] = sorted[k-1];
195  sortedscores[k] = sortedscores[k-1];
196  }
197  sorted[j] = i;
198  sortedscores[j] = score;
199  total++;
200  }
201 
202  // print level name and exit rules
203  string[0] = 0;
204 
205  stringlength = strlen(string);
206 
207  // add the clients in sorted order
208  if (total > 12)
209  total = 12;
210 
211  for (i=0 ; i<total ; i++)
212  {
213  cl = &game.clients[sorted[i]];
214  cl_ent = g_edicts + 1 + sorted[i];
215 
216  picnum = gi.imageindex ("i_fixme");
217  x = (i>=6) ? 160 : 0;
218  y = 32 + 32 * (i%6);
219 
220  // add a dogtag
221  if (cl_ent == ent)
222  tag = "tag1";
223  else if (cl_ent == killer)
224  tag = "tag2";
225  else
226  tag = NULL;
227  if (tag)
228  {
229  Com_sprintf (entry, sizeof(entry),
230  "xv %i yv %i picn %s ",x+32, y, tag);
231  j = strlen(entry);
232  if (stringlength + j > 1024)
233  break;
234  strcpy (string + stringlength, entry);
235  stringlength += j;
236  }
237 
238  // send the layout
239  Com_sprintf (entry, sizeof(entry),
240  "client %i %i %i %i %i %i ",
241  x, y, sorted[i], cl->resp.score, cl->ping, (level.framenum - cl->resp.enterframe)/600);
242  j = strlen(entry);
243  if (stringlength + j > 1024)
244  break;
245  strcpy (string + stringlength, entry);
246  stringlength += j;
247  }
248 
250  gi.WriteString (string);
251 }

Referenced by ClientEndServerFrame(), DeathmatchScoreboard(), and MoveClientToIntermission().

◆ G_CheckChaseStats()

void G_CheckChaseStats ( edict_t ent)

Definition at line 532 of file p_hud.c.

533 {
534  int i;
535  gclient_t *cl;
536 
537  for (i = 1; i <= maxclients->value; i++) {
538  cl = g_edicts[i].client;
539  if (!g_edicts[i].inuse || cl->chase_target != ent)
540  continue;
541  memcpy(cl->ps.stats, ent->client->ps.stats, sizeof(cl->ps.stats));
543  }
544 }

Referenced by ClientEndServerFrame().

◆ G_SetSpectatorStats()

void G_SetSpectatorStats ( edict_t ent)

Definition at line 551 of file p_hud.c.

552 {
553  gclient_t *cl = ent->client;
554 
555  if (!cl->chase_target)
556  G_SetStats (ent);
557 
558  cl->ps.stats[STAT_SPECTATOR] = 1;
559 
560  // layouts are independant in spectator
561  cl->ps.stats[STAT_LAYOUTS] = 0;
562  if (cl->pers.health <= 0 || level.intermissiontime || cl->showscores)
563  cl->ps.stats[STAT_LAYOUTS] |= 1;
564  if (cl->showinventory && cl->pers.health > 0)
565  cl->ps.stats[STAT_LAYOUTS] |= 2;
566 
567  if (cl->chase_target && cl->chase_target->inuse)
568  cl->ps.stats[STAT_CHASE] = CS_PLAYERSKINS +
569  (cl->chase_target - g_edicts) - 1;
570  else
571  cl->ps.stats[STAT_CHASE] = 0;
572 }

Referenced by ClientEndServerFrame(), and G_CheckChaseStats().

◆ G_SetStats()

void G_SetStats ( edict_t ent)

Definition at line 377 of file p_hud.c.

378 {
379  gitem_t *item;
380  int index, cells;
381  int power_armor_type;
382 
383  //
384  // health
385  //
386  ent->client->ps.stats[STAT_HEALTH_ICON] = level.pic_health;
387  ent->client->ps.stats[STAT_HEALTH] = ent->health;
388 
389  //
390  // ammo
391  //
392  if (!ent->client->ammo_index /* || !ent->client->pers.inventory[ent->client->ammo_index] */)
393  {
394  ent->client->ps.stats[STAT_AMMO_ICON] = 0;
395  ent->client->ps.stats[STAT_AMMO] = 0;
396  }
397  else
398  {
399  item = &itemlist[ent->client->ammo_index];
400  ent->client->ps.stats[STAT_AMMO_ICON] = gi.imageindex (item->icon);
401  ent->client->ps.stats[STAT_AMMO] = ent->client->pers.inventory[ent->client->ammo_index];
402  }
403 
404  cells = 0;
405 
406  //
407  // armor
408  //
409  power_armor_type = PowerArmorType (ent);
410  if (power_armor_type)
411  {
412  cells = ent->client->pers.inventory[ITEM_INDEX(FindItem ("cells"))];
413  if (cells == 0)
414  { // ran out of cells for power armor
415  ent->flags &= ~FL_POWER_ARMOR;
416  gi.sound(ent, CHAN_ITEM, gi.soundindex("misc/power2.wav"), 1, ATTN_NORM, 0);
417  power_armor_type = 0;;
418  }
419  }
420 
421  index = ArmorIndex (ent);
422  if (power_armor_type && (!index || (level.framenum & 8) ) )
423  { // flash between power armor and other armor icon
424  ent->client->ps.stats[STAT_ARMOR_ICON] = gi.imageindex ("i_powershield");
425  ent->client->ps.stats[STAT_ARMOR] = cells;
426  }
427  else if (index)
428  {
429  item = GetItemByIndex (index);
430  ent->client->ps.stats[STAT_ARMOR_ICON] = gi.imageindex (item->icon);
431  ent->client->ps.stats[STAT_ARMOR] = ent->client->pers.inventory[index];
432  }
433  else
434  {
435  ent->client->ps.stats[STAT_ARMOR_ICON] = 0;
436  ent->client->ps.stats[STAT_ARMOR] = 0;
437  }
438 
439  //
440  // pickup message
441  //
442  if (level.time > ent->client->pickup_msg_time)
443  {
444  ent->client->ps.stats[STAT_PICKUP_ICON] = 0;
445  ent->client->ps.stats[STAT_PICKUP_STRING] = 0;
446  }
447 
448  //
449  // timers
450  //
451  if (ent->client->quad_framenum > level.framenum)
452  {
453  ent->client->ps.stats[STAT_TIMER_ICON] = gi.imageindex ("p_quad");
454  ent->client->ps.stats[STAT_TIMER] = (ent->client->quad_framenum - level.framenum)/10;
455  }
456  else if (ent->client->invincible_framenum > level.framenum)
457  {
458  ent->client->ps.stats[STAT_TIMER_ICON] = gi.imageindex ("p_invulnerability");
459  ent->client->ps.stats[STAT_TIMER] = (ent->client->invincible_framenum - level.framenum)/10;
460  }
461  else if (ent->client->enviro_framenum > level.framenum)
462  {
463  ent->client->ps.stats[STAT_TIMER_ICON] = gi.imageindex ("p_envirosuit");
464  ent->client->ps.stats[STAT_TIMER] = (ent->client->enviro_framenum - level.framenum)/10;
465  }
466  else if (ent->client->breather_framenum > level.framenum)
467  {
468  ent->client->ps.stats[STAT_TIMER_ICON] = gi.imageindex ("p_rebreather");
469  ent->client->ps.stats[STAT_TIMER] = (ent->client->breather_framenum - level.framenum)/10;
470  }
471  else
472  {
473  ent->client->ps.stats[STAT_TIMER_ICON] = 0;
474  ent->client->ps.stats[STAT_TIMER] = 0;
475  }
476 
477  //
478  // selected item
479  //
480  if (ent->client->pers.selected_item == -1)
481  ent->client->ps.stats[STAT_SELECTED_ICON] = 0;
482  else
484 
486 
487  //
488  // layouts
489  //
490  ent->client->ps.stats[STAT_LAYOUTS] = 0;
491 
492  if (deathmatch->value)
493  {
494  if (ent->client->pers.health <= 0 || level.intermissiontime
495  || ent->client->showscores)
496  ent->client->ps.stats[STAT_LAYOUTS] |= 1;
497  if (ent->client->showinventory && ent->client->pers.health > 0)
498  ent->client->ps.stats[STAT_LAYOUTS] |= 2;
499  }
500  else
501  {
502  if (ent->client->showscores || ent->client->showhelp)
503  ent->client->ps.stats[STAT_LAYOUTS] |= 1;
504  if (ent->client->showinventory && ent->client->pers.health > 0)
505  ent->client->ps.stats[STAT_LAYOUTS] |= 2;
506  }
507 
508  //
509  // frags
510  //
511  ent->client->ps.stats[STAT_FRAGS] = ent->client->resp.score;
512 
513  //
514  // help icon / current weapon if not shown
515  //
516  if (ent->client->pers.helpchanged && (level.framenum&8) )
517  ent->client->ps.stats[STAT_HELPICON] = gi.imageindex ("i_help");
518  else if ( (ent->client->pers.hand == CENTER_HANDED || ent->client->ps.fov > 91)
519  && ent->client->pers.weapon)
521  else
522  ent->client->ps.stats[STAT_HELPICON] = 0;
523 
524  ent->client->ps.stats[STAT_SPECTATOR] = 0;
525 }

Referenced by ClientEndServerFrame(), and G_SetSpectatorStats().

◆ HelpComputer()

void HelpComputer ( edict_t ent)

Definition at line 302 of file p_hud.c.

303 {
304  char string[1024];
305  char *sk;
306 
307  if (skill->value == 0)
308  sk = "easy";
309  else if (skill->value == 1)
310  sk = "medium";
311  else if (skill->value == 2)
312  sk = "hard";
313  else
314  sk = "hard+";
315 
316  // send the layout
317  Com_sprintf (string, sizeof(string),
318  "xv 32 yv 8 picn help " // background
319  "xv 202 yv 12 string2 \"%s\" " // skill
320  "xv 0 yv 24 cstring2 \"%s\" " // level name
321  "xv 0 yv 54 cstring2 \"%s\" " // help 1
322  "xv 0 yv 110 cstring2 \"%s\" " // help 2
323  "xv 50 yv 164 string2 \" kills goals secrets\" "
324  "xv 50 yv 172 string2 \"%3i/%3i %i/%i %i/%i\" ",
325  sk,
326  level.level_name,
329  level.killed_monsters, level.total_monsters,
330  level.found_goals, level.total_goals,
331  level.found_secrets, level.total_secrets);
332 
334  gi.WriteString (string);
335  gi.unicast (ent, true);
336 }

Referenced by Cmd_Help_f().

◆ MoveClientToIntermission()

void MoveClientToIntermission ( edict_t ent)

Definition at line 32 of file p_hud.c.

33 {
34  if (deathmatch->value || coop->value)
35  ent->client->showscores = true;
36  VectorCopy (level.intermission_origin, ent->s.origin);
37  ent->client->ps.pmove.origin[0] = level.intermission_origin[0]*8;
38  ent->client->ps.pmove.origin[1] = level.intermission_origin[1]*8;
39  ent->client->ps.pmove.origin[2] = level.intermission_origin[2]*8;
40  VectorCopy (level.intermission_angle, ent->client->ps.viewangles);
42  ent->client->ps.gunindex = 0;
43  ent->client->ps.blend[3] = 0;
44  ent->client->ps.rdflags &= ~RDF_UNDERWATER;
45 
46  // clean up powerup info
47  ent->client->quad_framenum = 0;
48  ent->client->invincible_framenum = 0;
49  ent->client->breather_framenum = 0;
50  ent->client->enviro_framenum = 0;
51  ent->client->grenade_blew_up = false;
52  ent->client->grenade_time = 0;
53 
54  ent->viewheight = 0;
55  ent->s.modelindex = 0;
56  ent->s.modelindex2 = 0;
57  ent->s.modelindex3 = 0;
58  ent->s.modelindex = 0;
59  ent->s.effects = 0;
60  ent->s.sound = 0;
61  ent->solid = SOLID_NOT;
62 
63  // add the layout
64 
65  if (deathmatch->value || coop->value)
66  {
68  gi.unicast (ent, true);
69  }
70 
71 }

Referenced by BeginIntermission(), ClientBegin(), and ClientBeginDeathmatch().

FindItem
gitem_t * FindItem(char *pickup_name)
Definition: g_items.c:100
gi
game_import_t gi
Definition: g_main.c:25
Cmd_Score_f
void Cmd_Score_f(edict_t *ent)
Definition: p_hud.c:276
MAX_CLIENTS
#define MAX_CLIENTS
Definition: q_shared.h:79
edict_s::s
entity_state_t s
Definition: g_local.h:964
deathmatch
cvar_t * deathmatch
Definition: g_main.c:35
client_persistant_t::selected_item
int selected_item
Definition: g_local.h:841
STAT_HEALTH
#define STAT_HEALTH
Definition: q_shared.h:1026
game_locals_t::helpmessage1
char helpmessage1[512]
Definition: g_local.h:272
CHAN_ITEM
#define CHAN_ITEM
Definition: q_shared.h:1010
gclient_s::grenade_blew_up
qboolean grenade_blew_up
Definition: g_local.h:944
STAT_HEALTH_ICON
#define STAT_HEALTH_ICON
Definition: q_shared.h:1025
maxclients
cvar_t * maxclients
Definition: g_main.c:44
STAT_HELPICON
#define STAT_HELPICON
Definition: q_shared.h:1036
client_persistant_t::helpchanged
int helpchanged
Definition: g_local.h:859
DeathmatchScoreboard
void DeathmatchScoreboard(edict_t *ent)
Definition: p_hud.c:262
PM_FREEZE
@ PM_FREEZE
Definition: q_shared.h:473
PowerArmorType
int PowerArmorType(edict_t *ent)
Definition: g_items.c:688
entity_state_s::origin
vec3_t origin
Definition: q_shared.h:1173
game_locals_t::helpchanged
int helpchanged
Definition: g_local.h:274
edict_s::map
char * map
Definition: g_local.h:1059
gclient_s::showhelp
qboolean showhelp
Definition: g_local.h:890
ITEM_INDEX
#define ITEM_INDEX(x)
Definition: g_local.h:610
FL_POWER_ARMOR
#define FL_POWER_ARMOR
Definition: g_local.h:69
x
GLint GLenum GLint x
Definition: qgl_win.c:116
edict_s::inuse
qboolean inuse
Definition: g_local.h:970
i
int i
Definition: q_shared.c:305
G_Find
edict_t * G_Find(edict_t *from, int fieldofs, char *match)
Definition: g_utils.c:45
edict_s::client
struct gclient_s * client
Definition: g_local.h:965
game_import_t::sound
void(* sound)(edict_t *ent, int channel, int soundindex, float volume, float attenuation, float timeofs)
Definition: game.h:109
FOFS
#define FOFS(x)
Definition: g_local.h:504
client_respawn_t::spectator
qboolean spectator
Definition: g_local.h:872
gclient_s::grenade_time
float grenade_time
Definition: g_local.h:945
player_state_t::fov
float fov
Definition: q_shared.h:1216
gclient_s::pickup_msg_time
float pickup_msg_time
Definition: g_local.h:949
ArmorIndex
int ArmorIndex(edict_t *ent)
Definition: g_items.c:590
STAT_SELECTED_ITEM
#define STAT_SELECTED_ITEM
Definition: q_shared.h:1037
g_edicts
edict_t * g_edicts
Definition: g_main.c:33
player_state_t::rdflags
int rdflags
Definition: q_shared.h:1218
ATTN_NORM
#define ATTN_NORM
Definition: q_shared.h:1019
STAT_PICKUP_ICON
#define STAT_PICKUP_ICON
Definition: q_shared.h:1032
entity_state_s::modelindex3
int modelindex3
Definition: q_shared.h:1177
itemlist
gitem_t itemlist[]
Definition: g_items.c:1134
client_persistant_t::inventory
int inventory[MAX_ITEMS]
Definition: g_local.h:842
STAT_FRAGS
#define STAT_FRAGS
Definition: q_shared.h:1039
entity_state_s::effects
unsigned int effects
Definition: q_shared.h:1180
gitem_s::icon
char * icon
Definition: g_local.h:247
game_import_t::imageindex
int(* imageindex)(char *name)
Definition: game.h:123
j
GLint j
Definition: qgl_win.c:150
IT_KEY
#define IT_KEY
Definition: g_local.h:218
STAT_AMMO_ICON
#define STAT_AMMO_ICON
Definition: q_shared.h:1027
entity_state_s::sound
int sound
Definition: q_shared.h:1185
gclient_s::enviro_framenum
float enviro_framenum
Definition: g_local.h:942
MoveClientToIntermission
void MoveClientToIntermission(edict_t *ent)
Definition: p_hud.c:32
STAT_ARMOR_ICON
#define STAT_ARMOR_ICON
Definition: q_shared.h:1029
gclient_s::pers
client_persistant_t pers
Definition: g_local.h:884
game_locals_t::helpmessage2
char helpmessage2[512]
Definition: g_local.h:273
client_respawn_t::score
int score
Definition: g_local.h:869
edict_s
Definition: g_local.h:962
pmove_state_t::pm_type
pmtype_t pm_type
Definition: q_shared.h:492
client_persistant_t::weapon
gitem_t * weapon
Definition: g_local.h:852
edict_s::viewheight
int viewheight
Definition: g_local.h:1061
player_state_t::viewangles
vec3_t viewangles
Definition: q_shared.h:1204
game_import_t::soundindex
int(* soundindex)(char *name)
Definition: game.h:122
player_state_t::pmove
pmove_state_t pmove
Definition: q_shared.h:1200
STAT_TIMER
#define STAT_TIMER
Definition: q_shared.h:1035
player_state_t::blend
float blend[4]
Definition: q_shared.h:1214
CS_PLAYERSKINS
#define CS_PLAYERSKINS
Definition: q_shared.h:1141
game_locals_t::clients
gclient_t * clients
Definition: g_local.h:277
cvar_s::value
float value
Definition: q_shared.h:324
game
game_locals_t game
Definition: g_main.c:23
gclient_s::ps
player_state_t ps
Definition: g_local.h:880
NULL
#define NULL
Definition: q_shared.h:60
edict_s::solid
solid_t solid
Definition: g_local.h:986
respawn
void respawn(edict_t *ent)
Definition: p_client.c:980
STAT_ARMOR
#define STAT_ARMOR
Definition: q_shared.h:1030
svc_layout
@ svc_layout
Definition: qcommon.h:211
MAX_ITEMS
#define MAX_ITEMS
Definition: q_shared.h:85
skill
cvar_t * skill
Definition: g_main.c:38
SOLID_NOT
@ SOLID_NOT
Definition: game.h:35
STAT_SPECTATOR
#define STAT_SPECTATOR
Definition: q_shared.h:1042
HelpComputer
void HelpComputer(edict_t *ent)
Definition: p_hud.c:302
gclient_s::breather_framenum
float breather_framenum
Definition: g_local.h:941
game_locals_t::autosaved
qboolean autosaved
Definition: g_local.h:293
y
GLint y
Definition: qgl_win.c:115
gclient_s::quad_framenum
float quad_framenum
Definition: g_local.h:939
RDF_UNDERWATER
#define RDF_UNDERWATER
Definition: q_shared.h:645
gclient_s::showscores
qboolean showscores
Definition: g_local.h:888
VectorCopy
#define VectorCopy(a, b)
Definition: q_shared.h:158
coop
cvar_t * coop
Definition: g_main.c:36
G_SetSpectatorStats
void G_SetSpectatorStats(edict_t *ent)
Definition: p_hud.c:551
game_import_t::unicast
void(* unicast)(edict_t *ent, qboolean reliable)
Definition: game.h:145
STAT_PICKUP_STRING
#define STAT_PICKUP_STRING
Definition: q_shared.h:1033
game_import_t::WriteByte
void(* WriteByte)(int c)
Definition: game.h:147
level
GLint level
Definition: qgl_win.c:116
edict_s::flags
int flags
Definition: g_local.h:996
CENTER_HANDED
#define CENTER_HANDED
Definition: g_local.h:164
client_persistant_t::game_helpchanged
int game_helpchanged
Definition: g_local.h:858
gclient_s::showinventory
qboolean showinventory
Definition: g_local.h:889
gclient_s::invincible_framenum
float invincible_framenum
Definition: g_local.h:940
STAT_TIMER_ICON
#define STAT_TIMER_ICON
Definition: q_shared.h:1034
gclient_s::ammo_index
int ammo_index
Definition: g_local.h:893
GetItemByIndex
gitem_t * GetItemByIndex(int index)
Definition: g_items.c:62
entity_state_s::modelindex
int modelindex
Definition: q_shared.h:1176
entity_state_s::modelindex2
int modelindex2
Definition: q_shared.h:1177
G_SetStats
void G_SetStats(edict_t *ent)
Definition: p_hud.c:377
STAT_AMMO
#define STAT_AMMO
Definition: q_shared.h:1028
pmove_state_t::origin
short origin[3]
Definition: q_shared.h:494
STAT_LAYOUTS
#define STAT_LAYOUTS
Definition: q_shared.h:1038
client_persistant_t::hand
int hand
Definition: g_local.h:831
STAT_CHASE
#define STAT_CHASE
Definition: q_shared.h:1041
gclient_s
Definition: g_local.h:877
edict_s::enemy
edict_t * enemy
Definition: g_local.h:1070
player_state_t::gunindex
int gunindex
Definition: q_shared.h:1211
entity_state_s::angles
vec3_t angles
Definition: q_shared.h:1174
DeathmatchScoreboardMessage
void DeathmatchScoreboardMessage(edict_t *ent, edict_t *killer)
Definition: p_hud.c:164
cl
client_state_t cl
Definition: cl_main.c:106
game_import_t::WriteString
void(* WriteString)(char *s)
Definition: game.h:151
Com_sprintf
void Com_sprintf(char *dest, int size, char *fmt,...)
Definition: q_shared.c:1236
player_state_t::stats
short stats[MAX_STATS]
Definition: q_shared.h:1220
client_persistant_t::health
int health
Definition: g_local.h:837
gclient_s::resp
client_respawn_t resp
Definition: g_local.h:885
STAT_SELECTED_ICON
#define STAT_SELECTED_ICON
Definition: q_shared.h:1031
edict_s::health
int health
Definition: g_local.h:1051
gitem_s
Definition: g_local.h:234
game_locals_t::maxclients
int maxclients
Definition: g_local.h:284