vkQuake2 doxygen  1.0 dev
m_parasite.c File Reference
#include "g_local.h"
#include "m_parasite.h"

Go to the source code of this file.

Functions

void parasite_stand (edict_t *self)
 
void parasite_start_run (edict_t *self)
 
void parasite_run (edict_t *self)
 
void parasite_walk (edict_t *self)
 
void parasite_start_walk (edict_t *self)
 
void parasite_end_fidget (edict_t *self)
 
void parasite_do_fidget (edict_t *self)
 
void parasite_refidget (edict_t *self)
 
void parasite_launch (edict_t *self)
 
void parasite_reel_in (edict_t *self)
 
void parasite_sight (edict_t *self, edict_t *other)
 
void parasite_tap (edict_t *self)
 
void parasite_scratch (edict_t *self)
 
void parasite_search (edict_t *self)
 
void parasite_idle (edict_t *self)
 
void parasite_pain (edict_t *self, edict_t *other, float kick, int damage)
 
static qboolean parasite_drain_attack_ok (vec3_t start, vec3_t end)
 
void parasite_drain_attack (edict_t *self)
 
void parasite_attack (edict_t *self)
 
void parasite_dead (edict_t *self)
 
void parasite_die (edict_t *self, edict_t *inflictor, edict_t *attacker, int damage, vec3_t point)
 
void SP_monster_parasite (edict_t *self)
 

Variables

static int sound_pain1
 
static int sound_pain2
 
static int sound_die
 
static int sound_launch
 
static int sound_impact
 
static int sound_suck
 
static int sound_reelin
 
static int sound_sight
 
static int sound_tap
 
static int sound_scratch
 
static int sound_search
 
mframe_t parasite_frames_start_fidget []
 
mmove_t parasite_move_start_fidget = {FRAME_stand18, FRAME_stand21, parasite_frames_start_fidget, parasite_do_fidget}
 
mframe_t parasite_frames_fidget []
 
mmove_t parasite_move_fidget = {FRAME_stand22, FRAME_stand27, parasite_frames_fidget, parasite_refidget}
 
mframe_t parasite_frames_end_fidget []
 
mmove_t parasite_move_end_fidget = {FRAME_stand28, FRAME_stand35, parasite_frames_end_fidget, parasite_stand}
 
mframe_t parasite_frames_stand []
 
mmove_t parasite_move_stand = {FRAME_stand01, FRAME_stand17, parasite_frames_stand, parasite_stand}
 
mframe_t parasite_frames_run []
 
mmove_t parasite_move_run = {FRAME_run03, FRAME_run09, parasite_frames_run, NULL}
 
mframe_t parasite_frames_start_run []
 
mmove_t parasite_move_start_run = {FRAME_run01, FRAME_run02, parasite_frames_start_run, parasite_run}
 
mframe_t parasite_frames_stop_run []
 
mmove_t parasite_move_stop_run = {FRAME_run10, FRAME_run15, parasite_frames_stop_run, NULL}
 
mframe_t parasite_frames_walk []
 
mmove_t parasite_move_walk = {FRAME_run03, FRAME_run09, parasite_frames_walk, parasite_walk}
 
mframe_t parasite_frames_start_walk []
 
mmove_t parasite_move_start_walk = {FRAME_run01, FRAME_run02, parasite_frames_start_walk, NULL}
 
mframe_t parasite_frames_stop_walk []
 
mmove_t parasite_move_stop_walk = {FRAME_run10, FRAME_run15, parasite_frames_stop_walk, NULL}
 
mframe_t parasite_frames_pain1 []
 
mmove_t parasite_move_pain1 = {FRAME_pain101, FRAME_pain111, parasite_frames_pain1, parasite_start_run}
 
mframe_t parasite_frames_drain []
 
mmove_t parasite_move_drain = {FRAME_drain01, FRAME_drain18, parasite_frames_drain, parasite_start_run}
 
mframe_t parasite_frames_break []
 
mmove_t parasite_move_break = {FRAME_break01, FRAME_break32, parasite_frames_break, parasite_start_run}
 
mframe_t parasite_frames_death []
 
mmove_t parasite_move_death = {FRAME_death101, FRAME_death107, parasite_frames_death, parasite_dead}
 

Function Documentation

◆ parasite_attack()

void parasite_attack ( edict_t self)

Definition at line 433 of file m_parasite.c.

434 {
435 // if (random() <= 0.2)
436 // self->monsterinfo.currentmove = &parasite_move_break;
437 // else
438  self->monsterinfo.currentmove = &parasite_move_drain;
439 }

Referenced by SP_monster_parasite().

◆ parasite_dead()

void parasite_dead ( edict_t self)

Definition at line 449 of file m_parasite.c.

450 {
451  VectorSet (self->mins, -16, -16, -24);
452  VectorSet (self->maxs, 16, 16, -8);
453  self->movetype = MOVETYPE_TOSS;
454  self->svflags |= SVF_DEADMONSTER;
455  self->nextthink = 0;
456  gi.linkentity (self);
457 }

◆ parasite_die()

void parasite_die ( edict_t self,
edict_t inflictor,
edict_t attacker,
int  damage,
vec3_t  point 
)

Definition at line 471 of file m_parasite.c.

472 {
473  int n;
474 
475 // check for gib
476  if (self->health <= self->gib_health)
477  {
478  gi.sound (self, CHAN_VOICE, gi.soundindex ("misc/udeath.wav"), 1, ATTN_NORM, 0);
479  for (n= 0; n < 2; n++)
480  ThrowGib (self, "models/objects/gibs/bone/tris.md2", damage, GIB_ORGANIC);
481  for (n= 0; n < 4; n++)
482  ThrowGib (self, "models/objects/gibs/sm_meat/tris.md2", damage, GIB_ORGANIC);
483  ThrowHead (self, "models/objects/gibs/head2/tris.md2", damage, GIB_ORGANIC);
484  self->deadflag = DEAD_DEAD;
485  return;
486  }
487 
488  if (self->deadflag == DEAD_DEAD)
489  return;
490 
491 // regular death
492  gi.sound (self, CHAN_VOICE, sound_die, 1, ATTN_NORM, 0);
493  self->deadflag = DEAD_DEAD;
494  self->takedamage = DAMAGE_YES;
495  self->monsterinfo.currentmove = &parasite_move_death;
496 }

Referenced by SP_monster_parasite().

◆ parasite_do_fidget()

void parasite_do_fidget ( edict_t self)

Definition at line 124 of file m_parasite.c.

125 {
126  self->monsterinfo.currentmove = &parasite_move_fidget;
127 }

◆ parasite_drain_attack()

void parasite_drain_attack ( edict_t self)

Definition at line 316 of file m_parasite.c.

317 {
318  vec3_t offset, start, f, r, end, dir;
319  trace_t tr;
320  int damage;
321 
322  AngleVectors (self->s.angles, f, r, NULL);
323  VectorSet (offset, 24, 0, 6);
324  G_ProjectSource (self->s.origin, offset, f, r, start);
325 
326  VectorCopy (self->enemy->s.origin, end);
327  if (!parasite_drain_attack_ok(start, end))
328  {
329  end[2] = self->enemy->s.origin[2] + self->enemy->maxs[2] - 8;
330  if (!parasite_drain_attack_ok(start, end))
331  {
332  end[2] = self->enemy->s.origin[2] + self->enemy->mins[2] + 8;
333  if (!parasite_drain_attack_ok(start, end))
334  return;
335  }
336  }
337  VectorCopy (self->enemy->s.origin, end);
338 
339  tr = gi.trace (start, NULL, NULL, end, self, MASK_SHOT);
340  if (tr.ent != self->enemy)
341  return;
342 
343  if (self->s.frame == FRAME_drain03)
344  {
345  damage = 5;
346  gi.sound (self->enemy, CHAN_AUTO, sound_impact, 1, ATTN_NORM, 0);
347  }
348  else
349  {
350  if (self->s.frame == FRAME_drain04)
351  gi.sound (self, CHAN_WEAPON, sound_suck, 1, ATTN_NORM, 0);
352  damage = 2;
353  }
354 
357  gi.WriteShort (self - g_edicts);
358  gi.WritePosition (start);
359  gi.WritePosition (end);
360  gi.multicast (self->s.origin, MULTICAST_PVS);
361 
362  VectorSubtract (start, end, dir);
363  T_Damage (self->enemy, self, self, dir, self->enemy->s.origin, vec3_origin, damage, 0, DAMAGE_NO_KNOCKBACK, MOD_UNKNOWN);
364 }

◆ parasite_drain_attack_ok()

static qboolean parasite_drain_attack_ok ( vec3_t  start,
vec3_t  end 
)
static

Definition at line 297 of file m_parasite.c.

298 {
299  vec3_t dir, angles;
300 
301  // check for max distance
302  VectorSubtract (start, end, dir);
303  if (VectorLength(dir) > 256)
304  return false;
305 
306  // check for min/max pitch
307  vectoangles (dir, angles);
308  if (angles[0] < -180)
309  angles[0] += 360;
310  if (fabs(angles[0]) > 30)
311  return false;
312 
313  return true;
314 }

Referenced by parasite_drain_attack().

◆ parasite_end_fidget()

void parasite_end_fidget ( edict_t self)

Definition at line 119 of file m_parasite.c.

120 {
121  self->monsterinfo.currentmove = &parasite_move_end_fidget;
122 }

◆ parasite_idle()

void parasite_idle ( edict_t self)

Definition at line 137 of file m_parasite.c.

138 {
139  self->monsterinfo.currentmove = &parasite_move_start_fidget;
140 }

Referenced by SP_monster_parasite().

◆ parasite_launch()

void parasite_launch ( edict_t self)

Definition at line 55 of file m_parasite.c.

56 {
57  gi.sound (self, CHAN_WEAPON, sound_launch, 1, ATTN_NORM, 0);
58 }

◆ parasite_pain()

void parasite_pain ( edict_t self,
edict_t other,
float  kick,
int  damage 
)

Definition at line 275 of file m_parasite.c.

276 {
277  if (self->health < (self->max_health / 2))
278  self->s.skinnum = 1;
279 
280  if (level.time < self->pain_debounce_time)
281  return;
282 
283  self->pain_debounce_time = level.time + 3;
284 
285  if (skill->value == 3)
286  return; // no pain anims in nightmare
287 
288  if (random() < 0.5)
289  gi.sound (self, CHAN_VOICE, sound_pain1, 1, ATTN_NORM, 0);
290  else
291  gi.sound (self, CHAN_VOICE, sound_pain2, 1, ATTN_NORM, 0);
292 
293  self->monsterinfo.currentmove = &parasite_move_pain1;
294 }

Referenced by SP_monster_parasite().

◆ parasite_reel_in()

void parasite_reel_in ( edict_t self)

Definition at line 60 of file m_parasite.c.

61 {
62  gi.sound (self, CHAN_WEAPON, sound_reelin, 1, ATTN_NORM, 0);
63 }

◆ parasite_refidget()

void parasite_refidget ( edict_t self)

Definition at line 129 of file m_parasite.c.

130 {
131  if (random() <= 0.8)
132  self->monsterinfo.currentmove = &parasite_move_fidget;
133  else
134  self->monsterinfo.currentmove = &parasite_move_end_fidget;
135 }

◆ parasite_run()

void parasite_run ( edict_t self)

Definition at line 209 of file m_parasite.c.

210 {
211  if (self->monsterinfo.aiflags & AI_STAND_GROUND)
212  self->monsterinfo.currentmove = &parasite_move_stand;
213  else
214  self->monsterinfo.currentmove = &parasite_move_run;
215 }

◆ parasite_scratch()

void parasite_scratch ( edict_t self)

Definition at line 75 of file m_parasite.c.

76 {
77  gi.sound (self, CHAN_WEAPON, sound_scratch, 1, ATTN_IDLE, 0);
78 }

◆ parasite_search()

void parasite_search ( edict_t self)

Definition at line 80 of file m_parasite.c.

81 {
82  gi.sound (self, CHAN_WEAPON, sound_search, 1, ATTN_IDLE, 0);
83 }

◆ parasite_sight()

void parasite_sight ( edict_t self,
edict_t other 
)

Definition at line 65 of file m_parasite.c.

66 {
67  gi.sound (self, CHAN_WEAPON, sound_sight, 1, ATTN_NORM, 0);
68 }

Referenced by SP_monster_parasite().

◆ parasite_stand()

void parasite_stand ( edict_t self)

Definition at line 165 of file m_parasite.c.

166 {
167  self->monsterinfo.currentmove = &parasite_move_stand;
168 }

Referenced by SP_monster_parasite().

◆ parasite_start_run()

void parasite_start_run ( edict_t self)

Definition at line 201 of file m_parasite.c.

202 {
203  if (self->monsterinfo.aiflags & AI_STAND_GROUND)
204  self->monsterinfo.currentmove = &parasite_move_stand;
205  else
206  self->monsterinfo.currentmove = &parasite_move_start_run;
207 }

Referenced by SP_monster_parasite().

◆ parasite_start_walk()

void parasite_start_walk ( edict_t self)

Definition at line 248 of file m_parasite.c.

249 {
250  self->monsterinfo.currentmove = &parasite_move_start_walk;
251 }

Referenced by SP_monster_parasite().

◆ parasite_tap()

void parasite_tap ( edict_t self)

Definition at line 70 of file m_parasite.c.

71 {
72  gi.sound (self, CHAN_WEAPON, sound_tap, 1, ATTN_IDLE, 0);
73 }

◆ parasite_walk()

void parasite_walk ( edict_t self)

Definition at line 253 of file m_parasite.c.

254 {
255  self->monsterinfo.currentmove = &parasite_move_walk;
256 }

◆ SP_monster_parasite()

void SP_monster_parasite ( edict_t self)

Definition at line 506 of file m_parasite.c.

507 {
508  if (deathmatch->value)
509  {
510  G_FreeEdict (self);
511  return;
512  }
513 
514  sound_pain1 = gi.soundindex ("parasite/parpain1.wav");
515  sound_pain2 = gi.soundindex ("parasite/parpain2.wav");
516  sound_die = gi.soundindex ("parasite/pardeth1.wav");
517  sound_launch = gi.soundindex("parasite/paratck1.wav");
518  sound_impact = gi.soundindex("parasite/paratck2.wav");
519  sound_suck = gi.soundindex("parasite/paratck3.wav");
520  sound_reelin = gi.soundindex("parasite/paratck4.wav");
521  sound_sight = gi.soundindex("parasite/parsght1.wav");
522  sound_tap = gi.soundindex("parasite/paridle1.wav");
523  sound_scratch = gi.soundindex("parasite/paridle2.wav");
524  sound_search = gi.soundindex("parasite/parsrch1.wav");
525 
526  self->s.modelindex = gi.modelindex ("models/monsters/parasite/tris.md2");
527  VectorSet (self->mins, -16, -16, -24);
528  VectorSet (self->maxs, 16, 16, 24);
529  self->movetype = MOVETYPE_STEP;
530  self->solid = SOLID_BBOX;
531 
532  self->health = 175;
533  self->gib_health = -50;
534  self->mass = 250;
535 
536  self->pain = parasite_pain;
537  self->die = parasite_die;
538 
539  self->monsterinfo.stand = parasite_stand;
540  self->monsterinfo.walk = parasite_start_walk;
541  self->monsterinfo.run = parasite_start_run;
542  self->monsterinfo.attack = parasite_attack;
543  self->monsterinfo.sight = parasite_sight;
544  self->monsterinfo.idle = parasite_idle;
545 
546  gi.linkentity (self);
547 
548  self->monsterinfo.currentmove = &parasite_move_stand;
549  self->monsterinfo.scale = MODEL_SCALE;
550 
551  walkmonster_start (self);
552 }

Variable Documentation

◆ parasite_frames_break

mframe_t parasite_frames_break[]

Definition at line 390 of file m_parasite.c.

◆ parasite_frames_death

mframe_t parasite_frames_death[]
Initial value:
=
{
}

Definition at line 459 of file m_parasite.c.

◆ parasite_frames_drain

◆ parasite_frames_end_fidget

mframe_t parasite_frames_end_fidget[]
Initial value:

Definition at line 106 of file m_parasite.c.

◆ parasite_frames_fidget

mframe_t parasite_frames_fidget[]
Initial value:

Definition at line 95 of file m_parasite.c.

◆ parasite_frames_pain1

mframe_t parasite_frames_pain1[]
Initial value:
=
{
ai_move, 16, NULL,
ai_move, -6, NULL,
ai_move, -7, NULL,
}

Definition at line 259 of file m_parasite.c.

◆ parasite_frames_run

mframe_t parasite_frames_run[]
Initial value:
=
{
ai_run, 30, NULL,
ai_run, 30, NULL,
ai_run, 22, NULL,
ai_run, 19, NULL,
ai_run, 24, NULL,
ai_run, 28, NULL,
ai_run, 25, NULL
}

Definition at line 171 of file m_parasite.c.

◆ parasite_frames_stand

mframe_t parasite_frames_stand[]

◆ parasite_frames_start_fidget

mframe_t parasite_frames_start_fidget[]
Initial value:
=
{
}

Definition at line 86 of file m_parasite.c.

◆ parasite_frames_start_run

mframe_t parasite_frames_start_run[]
Initial value:
=
{
ai_run, 0, NULL,
ai_run, 30, NULL,
}

Definition at line 183 of file m_parasite.c.

◆ parasite_frames_start_walk

mframe_t parasite_frames_start_walk[]
Initial value:

Definition at line 230 of file m_parasite.c.

◆ parasite_frames_stop_run

mframe_t parasite_frames_stop_run[]
Initial value:
=
{
ai_run, 20, NULL,
ai_run, 20, NULL,
ai_run, 12, NULL,
ai_run, 10, NULL,
ai_run, 0, NULL,
}

Definition at line 190 of file m_parasite.c.

◆ parasite_frames_stop_walk

mframe_t parasite_frames_stop_walk[]
Initial value:
=
{
ai_walk, 20, NULL,
ai_walk, 20, NULL,
ai_walk, 12, NULL,
ai_walk, 10, NULL,
}

Definition at line 237 of file m_parasite.c.

◆ parasite_frames_walk

mframe_t parasite_frames_walk[]
Initial value:
=
{
ai_walk, 30, NULL,
ai_walk, 30, NULL,
ai_walk, 22, NULL,
ai_walk, 19, NULL,
ai_walk, 24, NULL,
ai_walk, 28, NULL,
}

Definition at line 218 of file m_parasite.c.

◆ parasite_move_break

Definition at line 425 of file m_parasite.c.

◆ parasite_move_death

Definition at line 469 of file m_parasite.c.

Referenced by parasite_die().

◆ parasite_move_drain

Definition at line 387 of file m_parasite.c.

Referenced by parasite_attack().

◆ parasite_move_end_fidget

Definition at line 117 of file m_parasite.c.

Referenced by parasite_end_fidget(), and parasite_refidget().

◆ parasite_move_fidget

Definition at line 104 of file m_parasite.c.

Referenced by parasite_do_fidget(), and parasite_refidget().

◆ parasite_move_pain1

Definition at line 273 of file m_parasite.c.

Referenced by parasite_pain().

◆ parasite_move_run

Definition at line 181 of file m_parasite.c.

Referenced by parasite_run().

◆ parasite_move_stand

◆ parasite_move_start_fidget

Definition at line 93 of file m_parasite.c.

Referenced by parasite_idle().

◆ parasite_move_start_run

Definition at line 188 of file m_parasite.c.

Referenced by parasite_start_run().

◆ parasite_move_start_walk

Definition at line 235 of file m_parasite.c.

Referenced by parasite_start_walk().

◆ parasite_move_stop_run

Definition at line 199 of file m_parasite.c.

◆ parasite_move_stop_walk

Definition at line 246 of file m_parasite.c.

◆ parasite_move_walk

Definition at line 228 of file m_parasite.c.

Referenced by parasite_walk().

◆ sound_die

int sound_die
static

Definition at line 34 of file m_parasite.c.

Referenced by parasite_die(), and SP_monster_parasite().

◆ sound_impact

int sound_impact
static

Definition at line 36 of file m_parasite.c.

Referenced by parasite_drain_attack(), and SP_monster_parasite().

◆ sound_launch

int sound_launch
static

Definition at line 35 of file m_parasite.c.

Referenced by parasite_launch(), and SP_monster_parasite().

◆ sound_pain1

int sound_pain1
static

Definition at line 32 of file m_parasite.c.

Referenced by parasite_pain(), and SP_monster_parasite().

◆ sound_pain2

int sound_pain2
static

Definition at line 33 of file m_parasite.c.

Referenced by parasite_pain(), and SP_monster_parasite().

◆ sound_reelin

int sound_reelin
static

Definition at line 38 of file m_parasite.c.

Referenced by parasite_reel_in(), and SP_monster_parasite().

◆ sound_scratch

int sound_scratch
static

Definition at line 41 of file m_parasite.c.

Referenced by parasite_scratch(), and SP_monster_parasite().

◆ sound_search

int sound_search
static

Definition at line 42 of file m_parasite.c.

Referenced by parasite_search(), and SP_monster_parasite().

◆ sound_sight

int sound_sight
static

Definition at line 39 of file m_parasite.c.

Referenced by parasite_sight(), and SP_monster_parasite().

◆ sound_suck

int sound_suck
static

Definition at line 37 of file m_parasite.c.

Referenced by parasite_drain_attack(), and SP_monster_parasite().

◆ sound_tap

int sound_tap
static

Definition at line 40 of file m_parasite.c.

Referenced by parasite_tap(), and SP_monster_parasite().

parasite_walk
void parasite_walk(edict_t *self)
Definition: m_parasite.c:253
parasite_move_death
mmove_t parasite_move_death
Definition: m_parasite.c:469
gi
game_import_t gi
Definition: g_main.c:25
G_ProjectSource
void G_ProjectSource(vec3_t point, vec3_t distance, vec3_t forward, vec3_t right, vec3_t result)
Definition: g_utils.c:25
parasite_move_fidget
mmove_t parasite_move_fidget
Definition: m_parasite.c:104
edict_s::s
entity_state_t s
Definition: g_local.h:970
TE_PARASITE_ATTACK
@ TE_PARASITE_ATTACK
Definition: q_shared.h:927
deathmatch
cvar_t * deathmatch
Definition: g_main.c:35
DEAD_DEAD
#define DEAD_DEAD
Definition: g_local.h:115
game_import_t::trace
trace_t(* trace)(vec3_t start, vec3_t mins, vec3_t maxs, vec3_t end, edict_t *passent, int contentmask)
Definition: game.h:128
parasite_scratch
void parasite_scratch(edict_t *self)
Definition: m_parasite.c:75
ThrowGib
void ThrowGib(edict_t *self, char *gibname, int damage, int type)
Definition: g_misc.c:135
edict_s::gib_health
int gib_health
Definition: g_local.h:1059
VectorSubtract
#define VectorSubtract(a, b, c)
Definition: q_shared.h:163
sound_reelin
static int sound_reelin
Definition: m_parasite.c:38
entity_state_s::frame
int frame
Definition: q_shared.h:1154
ai_charge
void ai_charge(edict_t *self, float dist)
Definition: g_ai.c:194
parasite_idle
void parasite_idle(edict_t *self)
Definition: m_parasite.c:137
game_import_t::WritePosition
void(* WritePosition)(vec3_t pos)
Definition: game.h:152
game_import_t::multicast
void(* multicast)(vec3_t origin, multicast_t to)
Definition: game.h:144
SOLID_BBOX
@ SOLID_BBOX
Definition: game.h:37
sound_pain2
static int sound_pain2
Definition: m_parasite.c:33
entity_state_s::origin
vec3_t origin
Definition: q_shared.h:1149
FRAME_drain04
#define FRAME_drain04
Definition: m_parasite.h:66
parasite_move_start_run
mmove_t parasite_move_start_run
Definition: m_parasite.c:188
AI_STAND_GROUND
#define AI_STAND_GROUND
Definition: g_local.h:129
sound_launch
static int sound_launch
Definition: m_parasite.c:35
trace_t
Definition: q_shared.h:453
MODEL_SCALE
#define MODEL_SCALE
Definition: m_actor.h:506
edict_s::max_health
int max_health
Definition: g_local.h:1058
DAMAGE_YES
@ DAMAGE_YES
Definition: g_local.h:89
parasite_move_end_fidget
mmove_t parasite_move_end_fidget
Definition: m_parasite.c:117
game_import_t::sound
void(* sound)(edict_t *ent, int channel, int soundindex, float volume, float attenuation, float timeofs)
Definition: game.h:109
ATTN_IDLE
#define ATTN_IDLE
Definition: q_shared.h:996
sound_impact
static int sound_impact
Definition: m_parasite.c:36
MASK_SHOT
#define MASK_SHOT
Definition: q_shared.h:401
edict_s::mins
vec3_t mins
Definition: g_local.h:990
parasite_sight
void parasite_sight(edict_t *self, edict_t *other)
Definition: m_parasite.c:65
g_edicts
edict_t * g_edicts
Definition: g_main.c:33
ATTN_NORM
#define ATTN_NORM
Definition: q_shared.h:995
T_Damage
void T_Damage(edict_t *targ, edict_t *inflictor, edict_t *attacker, vec3_t dir, vec3_t point, vec3_t normal, int damage, int knockback, int dflags, int mod)
Definition: g_combat.c:377
walkmonster_start
void walkmonster_start(edict_t *self)
Definition: g_monster.c:692
MOVETYPE_STEP
@ MOVETYPE_STEP
Definition: g_local.h:196
DAMAGE_NO_KNOCKBACK
#define DAMAGE_NO_KNOCKBACK
Definition: g_local.h:666
FRAME_drain03
#define FRAME_drain03
Definition: m_parasite.h:65
SVF_DEADMONSTER
#define SVF_DEADMONSTER
Definition: game.h:28
CHAN_AUTO
#define CHAN_AUTO
Definition: q_shared.h:983
AngleVectors
void AngleVectors(vec3_t angles, vec3_t forward, vec3_t right, vec3_t up)
Definition: q_shared.c:93
parasite_reel_in
void parasite_reel_in(edict_t *self)
Definition: m_parasite.c:60
CHAN_VOICE
#define CHAN_VOICE
Definition: q_shared.h:985
vectoangles
void vectoangles(vec3_t vec, vec3_t angles)
Definition: g_utils.c:356
G_FreeEdict
void G_FreeEdict(edict_t *e)
Definition: g_utils.c:452
r
GLdouble GLdouble r
Definition: qgl_win.c:336
parasite_move_drain
mmove_t parasite_move_drain
Definition: m_parasite.c:387
parasite_move_walk
mmove_t parasite_move_walk
Definition: m_parasite.c:228
game_import_t::soundindex
int(* soundindex)(char *name)
Definition: game.h:122
parasite_launch
void parasite_launch(edict_t *self)
Definition: m_parasite.c:55
VectorLength
vec_t VectorLength(vec3_t v)
Definition: q_shared.c:762
game_import_t::modelindex
int(* modelindex)(char *name)
Definition: game.h:121
parasite_drain_attack
void parasite_drain_attack(edict_t *self)
Definition: m_parasite.c:316
edict_s::deadflag
int deadflag
Definition: g_local.h:1060
sound_die
static int sound_die
Definition: m_parasite.c:34
parasite_attack
void parasite_attack(edict_t *self)
Definition: m_parasite.c:433
cvar_s::value
float value
Definition: q_shared.h:331
parasite_move_stand
mmove_t parasite_move_stand
Definition: m_parasite.c:163
sound_scratch
static int sound_scratch
Definition: m_parasite.c:41
ai_walk
void ai_walk(edict_t *self, float dist)
Definition: g_ai.c:163
random
#define random()
Definition: g_local.h:515
sound_pain1
static int sound_pain1
Definition: m_parasite.c:32
sound_sight
static int sound_sight
Definition: m_parasite.c:39
NULL
#define NULL
Definition: q_shared.h:67
parasite_stand
void parasite_stand(edict_t *self)
Definition: m_parasite.c:165
sound_tap
static int sound_tap
Definition: m_parasite.c:40
parasite_start_walk
void parasite_start_walk(edict_t *self)
Definition: m_parasite.c:248
monsterinfo_t::aiflags
int aiflags
Definition: g_local.h:421
skill
cvar_t * skill
Definition: g_main.c:38
parasite_drain_attack_ok
static qboolean parasite_drain_attack_ok(vec3_t start, vec3_t end)
Definition: m_parasite.c:297
ai_move
void ai_move(edict_t *self, float dist)
Definition: g_ai.c:92
game_import_t::WriteShort
void(* WriteShort)(int c)
Definition: game.h:148
svc_temp_entity
@ svc_temp_entity
Definition: qcommon.h:227
parasite_tap
void parasite_tap(edict_t *self)
Definition: m_parasite.c:70
VectorCopy
#define VectorCopy(a, b)
Definition: q_shared.h:165
edict_s::pain_debounce_time
float pain_debounce_time
Definition: g_local.h:1052
parasite_move_start_fidget
mmove_t parasite_move_start_fidget
Definition: m_parasite.c:93
edict_s::monsterinfo
monsterinfo_t monsterinfo
Definition: g_local.h:1114
vec3_origin
vec3_t vec3_origin
Definition: q_shared.c:24
CHAN_WEAPON
#define CHAN_WEAPON
Definition: q_shared.h:984
game_import_t::WriteByte
void(* WriteByte)(int c)
Definition: game.h:147
level
GLint level
Definition: qgl_win.c:116
ai_run
void ai_run(edict_t *self, float dist)
Definition: g_ai.c:914
GIB_ORGANIC
#define GIB_ORGANIC
Definition: g_local.h:125
edict_s::maxs
vec3_t maxs
Definition: g_local.h:990
MOD_UNKNOWN
#define MOD_UNKNOWN
Definition: g_local.h:469
trace_t::ent
struct edict_s * ent
Definition: q_shared.h:462
ThrowHead
void ThrowHead(edict_t *self, char *gibname, int damage, int type)
Definition: g_misc.c:183
parasite_die
void parasite_die(edict_t *self, edict_t *inflictor, edict_t *attacker, int damage, vec3_t point)
Definition: m_parasite.c:471
MOVETYPE_TOSS
@ MOVETYPE_TOSS
Definition: g_local.h:198
VectorSet
#define VectorSet(v, x, y, z)
Definition: q_shared.h:168
parasite_move_pain1
mmove_t parasite_move_pain1
Definition: m_parasite.c:273
sound_search
static int sound_search
Definition: m_parasite.c:42
sound_suck
static int sound_suck
Definition: m_parasite.c:37
edict_s::enemy
edict_t * enemy
Definition: g_local.h:1076
game_import_t::linkentity
void(* linkentity)(edict_t *ent)
Definition: game.h:138
entity_state_s::angles
vec3_t angles
Definition: q_shared.h:1150
parasite_move_start_walk
mmove_t parasite_move_start_walk
Definition: m_parasite.c:235
MULTICAST_PVS
@ MULTICAST_PVS
Definition: q_shared.h:118
parasite_move_run
mmove_t parasite_move_run
Definition: m_parasite.c:181
parasite_start_run
void parasite_start_run(edict_t *self)
Definition: m_parasite.c:201
vec3_t
vec_t vec3_t[3]
Definition: q_shared.h:134
ai_stand
void ai_stand(edict_t *self, float dist)
Definition: g_ai.c:106
parasite_pain
void parasite_pain(edict_t *self, edict_t *other, float kick, int damage)
Definition: m_parasite.c:275
edict_s::health
int health
Definition: g_local.h:1057