Quake II RTX doxygen  1.0 dev
m_brain.c File Reference
#include "g_local.h"
#include "m_brain.h"

Go to the source code of this file.

Functions

void brain_sight (edict_t *self, edict_t *other)
 
void brain_search (edict_t *self)
 
void brain_run (edict_t *self)
 
void brain_dead (edict_t *self)
 
void brain_stand (edict_t *self)
 
void brain_idle (edict_t *self)
 
void brain_walk (edict_t *self)
 
void brain_duck_down (edict_t *self)
 
void brain_duck_hold (edict_t *self)
 
void brain_duck_up (edict_t *self)
 
void brain_dodge (edict_t *self, edict_t *attacker, float eta)
 
void brain_swing_right (edict_t *self)
 
void brain_hit_right (edict_t *self)
 
void brain_swing_left (edict_t *self)
 
void brain_hit_left (edict_t *self)
 
void brain_chest_open (edict_t *self)
 
void brain_tentacle_attack (edict_t *self)
 
void brain_chest_closed (edict_t *self)
 
void brain_melee (edict_t *self)
 
void brain_pain (edict_t *self, edict_t *other, float kick, int damage)
 
void brain_die (edict_t *self, edict_t *inflictor, edict_t *attacker, int damage, vec3_t point)
 
void SP_monster_brain (edict_t *self)
 

Variables

static int sound_chest_open
 
static int sound_tentacles_extend
 
static int sound_tentacles_retract
 
static int sound_death
 
static int sound_idle1
 
static int sound_idle2
 
static int sound_idle3
 
static int sound_pain1
 
static int sound_pain2
 
static int sound_sight
 
static int sound_search
 
static int sound_melee1
 
static int sound_melee2
 
static int sound_melee3
 
mframe_t brain_frames_stand []
 
mmove_t brain_move_stand = {FRAME_stand01, FRAME_stand30, brain_frames_stand, NULL}
 
mframe_t brain_frames_idle []
 
mmove_t brain_move_idle = {FRAME_stand31, FRAME_stand60, brain_frames_idle, brain_stand}
 
mframe_t brain_frames_walk1 []
 
mmove_t brain_move_walk1 = {FRAME_walk101, FRAME_walk111, brain_frames_walk1, NULL}
 
mframe_t brain_frames_defense []
 
mmove_t brain_move_defense = {FRAME_defens01, FRAME_defens08, brain_frames_defense, NULL}
 
mframe_t brain_frames_pain3 []
 
mmove_t brain_move_pain3 = {FRAME_pain301, FRAME_pain306, brain_frames_pain3, brain_run}
 
mframe_t brain_frames_pain2 []
 
mmove_t brain_move_pain2 = {FRAME_pain201, FRAME_pain208, brain_frames_pain2, brain_run}
 
mframe_t brain_frames_pain1 []
 
mmove_t brain_move_pain1 = {FRAME_pain101, FRAME_pain121, brain_frames_pain1, brain_run}
 
mframe_t brain_frames_duck []
 
mmove_t brain_move_duck = {FRAME_duck01, FRAME_duck08, brain_frames_duck, brain_run}
 
mframe_t brain_frames_death2 []
 
mmove_t brain_move_death2 = {FRAME_death201, FRAME_death205, brain_frames_death2, brain_dead}
 
mframe_t brain_frames_death1 []
 
mmove_t brain_move_death1 = {FRAME_death101, FRAME_death118, brain_frames_death1, brain_dead}
 
mframe_t brain_frames_attack1 []
 
mmove_t brain_move_attack1 = {FRAME_attak101, FRAME_attak118, brain_frames_attack1, brain_run}
 
mframe_t brain_frames_attack2 []
 
mmove_t brain_move_attack2 = {FRAME_attak201, FRAME_attak217, brain_frames_attack2, brain_run}
 
mframe_t brain_frames_run []
 
mmove_t brain_move_run = {FRAME_walk101, FRAME_walk111, brain_frames_run, NULL}
 

Function Documentation

◆ brain_chest_closed()

void brain_chest_closed ( edict_t *  self)

Definition at line 457 of file m_brain.c.

457  {
458  self->monsterinfo.power_armor_type = POWER_ARMOR_SCREEN;
459  if (self->spawnflags & 65536) {
460  self->spawnflags &= ~65536;
461  self->monsterinfo.currentmove = &brain_move_attack1;
462  }
463 }

◆ brain_chest_open()

void brain_chest_open ( edict_t *  self)

Definition at line 442 of file m_brain.c.

442  {
443  self->spawnflags &= ~65536;
444  self->monsterinfo.power_armor_type = POWER_ARMOR_NONE;
445  gi.sound(self, CHAN_BODY, sound_chest_open, 1, ATTN_NORM, 0);
446 }

◆ brain_dead()

void brain_dead ( edict_t *  self)

Definition at line 550 of file m_brain.c.

550  {
551  VectorSet(self->mins, -16, -16, -24);
552  VectorSet(self->maxs, 16, 16, -8);
553  self->movetype = MOVETYPE_TOSS;
554  self->svflags |= SVF_DEADMONSTER;
555  self->nextthink = 0;
556  gi.linkentity(self);
557 }

◆ brain_die()

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

Definition at line 561 of file m_brain.c.

561  {
562  int n;
563 
564  self->s.effects = 0;
565  self->monsterinfo.power_armor_type = POWER_ARMOR_NONE;
566 
567 // check for gib
568  if (self->health <= self->gib_health) {
569  gi.sound(self, CHAN_VOICE, gi.soundindex("misc/udeath.wav"), 1, ATTN_NORM, 0);
570  for (n = 0; n < 2; n++)
571  ThrowGib(self, "models/objects/gibs/bone/tris.md2", damage, GIB_ORGANIC);
572  for (n = 0; n < 4; n++)
573  ThrowGib(self, "models/objects/gibs/sm_meat/tris.md2", damage, GIB_ORGANIC);
574  ThrowHead(self, "models/objects/gibs/head2/tris.md2", damage, GIB_ORGANIC);
575  self->deadflag = DEAD_DEAD;
576  return;
577  }
578 
579  if (self->deadflag == DEAD_DEAD)
580  return;
581 
582 // regular death
583  gi.sound(self, CHAN_VOICE, sound_death, 1, ATTN_NORM, 0);
584  self->deadflag = DEAD_DEAD;
585  self->takedamage = DAMAGE_YES;
586  if (random() <= 0.5)
587  self->monsterinfo.currentmove = &brain_move_death1;
588  else
589  self->monsterinfo.currentmove = &brain_move_death2;
590 }

Referenced by SP_monster_brain().

◆ brain_dodge()

void brain_dodge ( edict_t *  self,
edict_t *  attacker,
float  eta 
)

Definition at line 345 of file m_brain.c.

345  {
346  if (random() > 0.25)
347  return;
348 
349  if (!self->enemy)
350  self->enemy = attacker;
351 
352  self->monsterinfo.pausetime = level.time + eta + 0.5;
353  self->monsterinfo.currentmove = &brain_move_duck;
354 }

Referenced by SP_monster_brain().

◆ brain_duck_down()

void brain_duck_down ( edict_t *  self)

Definition at line 309 of file m_brain.c.

309  {
310  if (self->monsterinfo.aiflags & AI_DUCKED)
311  return;
312  self->monsterinfo.aiflags |= AI_DUCKED;
313  self->maxs[2] -= 32;
314  self->takedamage = DAMAGE_YES;
315  gi.linkentity(self);
316 }

◆ brain_duck_hold()

void brain_duck_hold ( edict_t *  self)

Definition at line 318 of file m_brain.c.

318  {
319  if (level.time >= self->monsterinfo.pausetime)
320  self->monsterinfo.aiflags &= ~AI_HOLD_FRAME;
321  else
322  self->monsterinfo.aiflags |= AI_HOLD_FRAME;
323 }

◆ brain_duck_up()

void brain_duck_up ( edict_t *  self)

Definition at line 325 of file m_brain.c.

325  {
326  self->monsterinfo.aiflags &= ~AI_DUCKED;
327  self->maxs[2] += 32;
328  self->takedamage = DAMAGE_AIM;
329  gi.linkentity(self);
330 }

◆ brain_hit_left()

void brain_hit_left ( edict_t *  self)

Definition at line 411 of file m_brain.c.

411  {
412  vec3_t aim;
413 
414  VectorSet(aim, MELEE_DISTANCE, self->mins[0], 8);
415  if (fire_hit(self, aim, (15 + (rand() % 5)), 40))
416  gi.sound(self, CHAN_WEAPON, sound_melee3, 1, ATTN_NORM, 0);
417 }

◆ brain_hit_right()

void brain_hit_right ( edict_t *  self)

Definition at line 399 of file m_brain.c.

399  {
400  vec3_t aim;
401 
402  VectorSet(aim, MELEE_DISTANCE, self->maxs[0], 8);
403  if (fire_hit(self, aim, (15 + (rand() % 5)), 40))
404  gi.sound(self, CHAN_WEAPON, sound_melee3, 1, ATTN_NORM, 0);
405 }

◆ brain_idle()

void brain_idle ( edict_t *  self)

Definition at line 147 of file m_brain.c.

148 {
149  gi.sound(self, CHAN_AUTO, sound_idle3, 1, ATTN_IDLE, 0);
150  self->monsterinfo.currentmove = &brain_move_idle;
151 }

Referenced by SP_monster_brain().

◆ brain_melee()

void brain_melee ( edict_t *  self)

Definition at line 487 of file m_brain.c.

487  {
488  if (random() <= 0.5)
489  self->monsterinfo.currentmove = &brain_move_attack1;
490  else
491  self->monsterinfo.currentmove = &brain_move_attack2;
492 }

Referenced by SP_monster_brain().

◆ brain_pain()

void brain_pain ( edict_t *  self,
edict_t *  other,
float  kick,
int  damage 
)

Definition at line 524 of file m_brain.c.

524  {
525  float r;
526 
527  if (self->health < (self->max_health / 2))
528  self->s.skinnum = 1;
529 
530  if (level.time < self->pain_debounce_time)
531  return;
532 
533  self->pain_debounce_time = level.time + 3;
534  if (skill->value == 3)
535  return; // no pain anims in nightmare
536 
537  r = random();
538  if (r < 0.33) {
539  gi.sound(self, CHAN_VOICE, sound_pain1, 1, ATTN_NORM, 0);
540  self->monsterinfo.currentmove = &brain_move_pain1;
541  } else if (r < 0.66) {
542  gi.sound(self, CHAN_VOICE, sound_pain2, 1, ATTN_NORM, 0);
543  self->monsterinfo.currentmove = &brain_move_pain2;
544  } else {
545  gi.sound(self, CHAN_VOICE, sound_pain1, 1, ATTN_NORM, 0);
546  self->monsterinfo.currentmove = &brain_move_pain3;
547  }
548 }

Referenced by SP_monster_brain().

◆ brain_run()

void brain_run ( edict_t *  self)

Definition at line 515 of file m_brain.c.

515  {
516  self->monsterinfo.power_armor_type = POWER_ARMOR_SCREEN;
517  if (self->monsterinfo.aiflags & AI_STAND_GROUND)
518  self->monsterinfo.currentmove = &brain_move_stand;
519  else
520  self->monsterinfo.currentmove = &brain_move_run;
521 }

Referenced by SP_monster_brain().

◆ brain_search()

void brain_search ( edict_t *  self)

Definition at line 51 of file m_brain.c.

52 {
53  gi.sound(self, CHAN_VOICE, sound_search, 1, ATTN_NORM, 0);
54 }

Referenced by SP_monster_brain().

◆ brain_sight()

void brain_sight ( edict_t *  self,
edict_t *  other 
)

Definition at line 46 of file m_brain.c.

47 {
48  gi.sound(self, CHAN_VOICE, sound_sight, 1, ATTN_NORM, 0);
49 }

Referenced by SP_monster_brain().

◆ brain_stand()

void brain_stand ( edict_t *  self)

Definition at line 101 of file m_brain.c.

102 {
103  self->monsterinfo.currentmove = &brain_move_stand;
104 }

Referenced by SP_monster_brain().

◆ brain_swing_left()

void brain_swing_left ( edict_t *  self)

Definition at line 407 of file m_brain.c.

407  {
408  gi.sound(self, CHAN_BODY, sound_melee2, 1, ATTN_NORM, 0);
409 }

◆ brain_swing_right()

void brain_swing_right ( edict_t *  self)

Definition at line 395 of file m_brain.c.

395  {
396  gi.sound(self, CHAN_BODY, sound_melee1, 1, ATTN_NORM, 0);
397 }

◆ brain_tentacle_attack()

void brain_tentacle_attack ( edict_t *  self)

Definition at line 448 of file m_brain.c.

448  {
449  vec3_t aim;
450 
451  VectorSet(aim, MELEE_DISTANCE, 0, 8);
452  if (fire_hit(self, aim, (10 + (rand() % 5)), -600) && skill->value > 0)
453  self->spawnflags |= 65536;
454  gi.sound(self, CHAN_WEAPON, sound_tentacles_retract, 1, ATTN_NORM, 0);
455 }

◆ brain_walk()

void brain_walk ( edict_t *  self)

Definition at line 231 of file m_brain.c.

231  {
232 // if (random() <= 0.5)
233  self->monsterinfo.currentmove = &brain_move_walk1;
234 // else
235 // self->monsterinfo.currentmove = &brain_move_walk2;
236 }

Referenced by SP_monster_brain().

◆ SP_monster_brain()

void SP_monster_brain ( edict_t *  self)

Definition at line 594 of file m_brain.c.

594  {
595  if (deathmatch->value) {
596  G_FreeEdict(self);
597  return;
598  }
599 
600  sound_chest_open = gi.soundindex("brain/brnatck1.wav");
601  sound_tentacles_extend = gi.soundindex("brain/brnatck2.wav");
602  sound_tentacles_retract = gi.soundindex("brain/brnatck3.wav");
603  sound_death = gi.soundindex("brain/brndeth1.wav");
604  sound_idle1 = gi.soundindex("brain/brnidle1.wav");
605  sound_idle2 = gi.soundindex("brain/brnidle2.wav");
606  sound_idle3 = gi.soundindex("brain/brnlens1.wav");
607  sound_pain1 = gi.soundindex("brain/brnpain1.wav");
608  sound_pain2 = gi.soundindex("brain/brnpain2.wav");
609  sound_sight = gi.soundindex("brain/brnsght1.wav");
610  sound_search = gi.soundindex("brain/brnsrch1.wav");
611  sound_melee1 = gi.soundindex("brain/melee1.wav");
612  sound_melee2 = gi.soundindex("brain/melee2.wav");
613  sound_melee3 = gi.soundindex("brain/melee3.wav");
614 
615  self->movetype = MOVETYPE_STEP;
616  self->solid = SOLID_BBOX;
617  self->s.modelindex = gi.modelindex("models/monsters/brain/tris.md2");
618  VectorSet(self->mins, -16, -16, -24);
619  VectorSet(self->maxs, 16, 16, 32);
620 
621  self->health = 300;
622  self->gib_health = -150;
623  self->mass = 400;
624 
625  self->pain = brain_pain;
626  self->die = brain_die;
627 
628  self->monsterinfo.stand = brain_stand;
629  self->monsterinfo.walk = brain_walk;
630  self->monsterinfo.run = brain_run;
631  self->monsterinfo.dodge = brain_dodge;
632 // self->monsterinfo.attack = brain_attack;
633  self->monsterinfo.melee = brain_melee;
634  self->monsterinfo.sight = brain_sight;
635  self->monsterinfo.search = brain_search;
636  self->monsterinfo.idle = brain_idle;
637 
638  self->monsterinfo.power_armor_type = POWER_ARMOR_SCREEN;
639  self->monsterinfo.power_armor_power = 100;
640 
641  gi.linkentity(self);
642 
643  self->monsterinfo.currentmove = &brain_move_stand;
644  self->monsterinfo.scale = MODEL_SCALE;
645 
646  walkmonster_start(self);
647 }

Variable Documentation

◆ brain_frames_attack1

mframe_t brain_frames_attack1[]
Initial value:
=
{
{ ai_charge, 8, NULL },
{ ai_charge, 3, NULL },
{ ai_charge, 5, NULL },
{ ai_charge, 0, NULL },
{ ai_charge, 0, NULL },
{ ai_charge, -5, NULL },
{ ai_charge, 0, NULL },
{ ai_charge, 1, NULL },
{ ai_charge, -3, NULL },
{ ai_charge, 6, NULL },
{ ai_charge, -1, NULL },
{ ai_charge, -3, NULL },
{ ai_charge, 2, NULL },
{ ai_charge, -11, NULL }
}

Definition at line 419 of file m_brain.c.

◆ brain_frames_attack2

mframe_t brain_frames_attack2[]
Initial value:
=
{
{ ai_charge, 5, NULL },
{ ai_charge, -4, NULL },
{ ai_charge, -4, NULL },
{ ai_charge, -3, NULL },
{ ai_charge, 0, NULL },
{ ai_charge, 0, NULL },
{ ai_charge, 2, NULL },
{ ai_charge, 0, NULL },
{ ai_charge, 0, NULL },
{ ai_charge, 4, NULL },
{ ai_charge, 3, NULL },
{ ai_charge, 2, NULL },
{ ai_charge, -3, NULL },
{ ai_charge, -6, NULL }
}

Definition at line 465 of file m_brain.c.

◆ brain_frames_death1

mframe_t brain_frames_death1[]
Initial value:
=
{
{ ai_move, 0, NULL },
{ ai_move, 0, NULL },
{ ai_move, -2, NULL },
{ ai_move, 9, NULL },
{ ai_move, 0, NULL },
{ ai_move, 0, NULL },
{ ai_move, 0, NULL },
{ ai_move, 0, NULL },
{ ai_move, 0, NULL },
{ ai_move, 0, NULL },
{ ai_move, 0, NULL },
{ ai_move, 0, NULL },
{ ai_move, 0, NULL },
{ ai_move, 0, NULL },
{ ai_move, 0, NULL },
{ ai_move, 0, NULL },
{ ai_move, 0, NULL },
{ ai_move, 0, NULL }
}

Definition at line 367 of file m_brain.c.

◆ brain_frames_death2

mframe_t brain_frames_death2[]
Initial value:
=
{
{ ai_move, 0, NULL },
{ ai_move, 0, NULL },
{ ai_move, 0, NULL },
{ ai_move, 9, NULL },
{ ai_move, 0, NULL }
}

Definition at line 357 of file m_brain.c.

◆ brain_frames_defense

mframe_t brain_frames_defense[]
Initial value:
=
{
{ ai_move, 0, NULL },
{ ai_move, 0, NULL },
{ ai_move, 0, NULL },
{ ai_move, 0, NULL },
{ ai_move, 0, NULL },
{ ai_move, 0, NULL },
{ ai_move, 0, NULL },
{ ai_move, 0, NULL },
{ ai_move, 0, NULL }
}

Definition at line 240 of file m_brain.c.

◆ brain_frames_duck

mframe_t brain_frames_duck[]
Initial value:
=
{
{ ai_move, 0, NULL },
{ ai_move, -3, NULL },
{ ai_move, -5, NULL },
{ ai_move, -6, NULL },
{ ai_move, -6, NULL }
}

Definition at line 332 of file m_brain.c.

◆ brain_frames_idle

mframe_t brain_frames_idle[]

Definition at line 111 of file m_brain.c.

◆ brain_frames_pain1

mframe_t brain_frames_pain1[]
Initial value:
=
{
{ ai_move, -6, NULL },
{ ai_move, -2, NULL },
{ ai_move, -6, NULL },
{ ai_move, 0, NULL },
{ ai_move, 0, NULL },
{ ai_move, 0, NULL },
{ ai_move, 0, NULL },
{ ai_move, 0, NULL },
{ ai_move, 0, NULL },
{ ai_move, 0, NULL },
{ ai_move, 0, NULL },
{ ai_move, 0, NULL },
{ ai_move, 0, NULL },
{ ai_move, 2, NULL },
{ ai_move, 0, NULL },
{ ai_move, 2, NULL },
{ ai_move, 1, NULL },
{ ai_move, 7, NULL },
{ ai_move, 0, NULL },
{ ai_move, 3, NULL },
{ ai_move, -1, NULL }
}

Definition at line 278 of file m_brain.c.

◆ brain_frames_pain2

mframe_t brain_frames_pain2[]
Initial value:
=
{
{ ai_move, -2, NULL },
{ ai_move, 0, NULL },
{ ai_move, 0, NULL },
{ ai_move, 0, NULL },
{ ai_move, 0, NULL },
{ ai_move, 3, NULL },
{ ai_move, 1, NULL },
{ ai_move, -2, NULL }
}

Definition at line 265 of file m_brain.c.

◆ brain_frames_pain3

mframe_t brain_frames_pain3[]
Initial value:
=
{
{ ai_move, -2, NULL },
{ ai_move, 2, NULL },
{ ai_move, 1, NULL },
{ ai_move, 3, NULL },
{ ai_move, 0, NULL },
{ ai_move, -4, NULL }
}

Definition at line 254 of file m_brain.c.

◆ brain_frames_run

mframe_t brain_frames_run[]
Initial value:
=
{
{ ai_run, 9, NULL },
{ ai_run, 2, NULL },
{ ai_run, 3, NULL },
{ ai_run, 3, NULL },
{ ai_run, 1, NULL },
{ ai_run, 0, NULL },
{ ai_run, 0, NULL },
{ ai_run, 10, NULL },
{ ai_run, -4, NULL },
{ ai_run, -1, NULL },
{ ai_run, 2, NULL }
}

Definition at line 499 of file m_brain.c.

◆ brain_frames_stand

mframe_t brain_frames_stand[]

Definition at line 65 of file m_brain.c.

◆ brain_frames_walk1

mframe_t brain_frames_walk1[]
Initial value:
= {
{ ai_walk, 7, NULL },
{ ai_walk, 2, NULL },
{ ai_walk, 3, NULL },
{ ai_walk, 3, NULL },
{ ai_walk, 1, NULL },
{ ai_walk, 0, NULL },
{ ai_walk, 0, NULL },
{ ai_walk, 9, NULL },
{ ai_walk, -4, NULL },
{ ai_walk, -1, NULL },
{ ai_walk, 2, NULL }
}

Definition at line 157 of file m_brain.c.

◆ brain_move_attack1

Definition at line 440 of file m_brain.c.

Referenced by brain_chest_closed(), and brain_melee().

◆ brain_move_attack2

Definition at line 485 of file m_brain.c.

Referenced by brain_melee().

◆ brain_move_death1

Definition at line 388 of file m_brain.c.

Referenced by brain_die().

◆ brain_move_death2

Definition at line 365 of file m_brain.c.

Referenced by brain_die().

◆ brain_move_defense

Definition at line 252 of file m_brain.c.

◆ brain_move_duck

Definition at line 343 of file m_brain.c.

Referenced by brain_dodge().

◆ brain_move_idle

Definition at line 145 of file m_brain.c.

Referenced by brain_idle().

◆ brain_move_pain1

Definition at line 302 of file m_brain.c.

Referenced by brain_pain().

◆ brain_move_pain2

Definition at line 276 of file m_brain.c.

Referenced by brain_pain().

◆ brain_move_pain3

Definition at line 263 of file m_brain.c.

Referenced by brain_pain().

◆ brain_move_run

Definition at line 513 of file m_brain.c.

Referenced by brain_run().

◆ brain_move_stand

mmove_t brain_move_stand = {FRAME_stand01, FRAME_stand30, brain_frames_stand, NULL}

Definition at line 99 of file m_brain.c.

Referenced by brain_run(), brain_stand(), and SP_monster_brain().

◆ brain_move_walk1

mmove_t brain_move_walk1 = {FRAME_walk101, FRAME_walk111, brain_frames_walk1, NULL}

Definition at line 170 of file m_brain.c.

Referenced by brain_walk().

◆ sound_chest_open

int sound_chest_open
static

Definition at line 30 of file m_brain.c.

Referenced by brain_chest_open(), and SP_monster_brain().

◆ sound_death

int sound_death
static

Definition at line 33 of file m_brain.c.

Referenced by brain_die(), and SP_monster_brain().

◆ sound_idle1

int sound_idle1
static

Definition at line 34 of file m_brain.c.

Referenced by SP_monster_brain().

◆ sound_idle2

int sound_idle2
static

Definition at line 35 of file m_brain.c.

Referenced by SP_monster_brain().

◆ sound_idle3

int sound_idle3
static

Definition at line 36 of file m_brain.c.

Referenced by brain_idle(), and SP_monster_brain().

◆ sound_melee1

int sound_melee1
static

Definition at line 41 of file m_brain.c.

Referenced by brain_swing_right(), and SP_monster_brain().

◆ sound_melee2

int sound_melee2
static

Definition at line 42 of file m_brain.c.

Referenced by brain_swing_left(), and SP_monster_brain().

◆ sound_melee3

int sound_melee3
static

Definition at line 43 of file m_brain.c.

Referenced by brain_hit_left(), brain_hit_right(), and SP_monster_brain().

◆ sound_pain1

int sound_pain1
static

Definition at line 37 of file m_brain.c.

Referenced by brain_pain(), and SP_monster_brain().

◆ sound_pain2

int sound_pain2
static

Definition at line 38 of file m_brain.c.

Referenced by brain_pain(), and SP_monster_brain().

◆ sound_search

int sound_search
static

Definition at line 40 of file m_brain.c.

Referenced by brain_search(), and SP_monster_brain().

◆ sound_sight

int sound_sight
static

Definition at line 39 of file m_brain.c.

Referenced by brain_sight(), and SP_monster_brain().

◆ sound_tentacles_extend

int sound_tentacles_extend
static

Definition at line 31 of file m_brain.c.

Referenced by SP_monster_brain().

◆ sound_tentacles_retract

int sound_tentacles_retract
static

Definition at line 32 of file m_brain.c.

Referenced by brain_tentacle_attack(), and SP_monster_brain().

gi
game_import_t gi
Definition: g_main.c:23
deathmatch
cvar_t * deathmatch
Definition: g_main.c:33
DEAD_DEAD
#define DEAD_DEAD
Definition: g_local.h:112
sound_melee2
static int sound_melee2
Definition: m_brain.c:42
sound_melee1
static int sound_melee1
Definition: m_brain.c:41
brain_move_attack2
mmove_t brain_move_attack2
Definition: m_brain.c:485
ThrowGib
void ThrowGib(edict_t *self, char *gibname, int damage, int type)
Definition: g_misc.c:130
MELEE_DISTANCE
#define MELEE_DISTANCE
Definition: g_local.h:82
brain_move_attack1
mmove_t brain_move_attack1
Definition: m_brain.c:440
brain_tentacle_attack
void brain_tentacle_attack(edict_t *self)
Definition: m_brain.c:448
ai_charge
void ai_charge(edict_t *self, float dist)
Definition: g_ai.c:175
brain_duck_up
void brain_duck_up(edict_t *self)
Definition: m_brain.c:325
AI_STAND_GROUND
#define AI_STAND_GROUND
Definition: g_local.h:126
MODEL_SCALE
#define MODEL_SCALE
Definition: m_actor.h:504
DAMAGE_YES
@ DAMAGE_YES
Definition: g_local.h:88
brain_die
void brain_die(edict_t *self, edict_t *inflictor, edict_t *attacker, int damage, vec3_t point)
Definition: m_brain.c:561
brain_chest_open
void brain_chest_open(edict_t *self)
Definition: m_brain.c:442
fire_hit
qboolean fire_hit(edict_t *self, vec3_t aim, int damage, int kick)
Definition: g_weapon.c:59
brain_move_run
mmove_t brain_move_run
Definition: m_brain.c:513
sound_chest_open
static int sound_chest_open
Definition: m_brain.c:30
walkmonster_start
void walkmonster_start(edict_t *self)
Definition: g_monster.c:630
MOVETYPE_STEP
@ MOVETYPE_STEP
Definition: g_local.h:192
brain_swing_right
void brain_swing_right(edict_t *self)
Definition: m_brain.c:395
brain_swing_left
void brain_swing_left(edict_t *self)
Definition: m_brain.c:407
brain_sight
void brain_sight(edict_t *self, edict_t *other)
Definition: m_brain.c:46
brain_walk
void brain_walk(edict_t *self)
Definition: m_brain.c:231
POWER_ARMOR_SCREEN
#define POWER_ARMOR_SCREEN
Definition: g_local.h:157
brain_stand
void brain_stand(edict_t *self)
Definition: m_brain.c:101
brain_hit_left
void brain_hit_left(edict_t *self)
Definition: m_brain.c:411
sound_sight
static int sound_sight
Definition: m_brain.c:39
G_FreeEdict
void G_FreeEdict(edict_t *e)
Definition: g_utils.c:421
sound_search
static int sound_search
Definition: m_brain.c:40
brain_idle
void brain_idle(edict_t *self)
Definition: m_brain.c:147
AI_HOLD_FRAME
#define AI_HOLD_FRAME
Definition: g_local.h:133
brain_move_death2
mmove_t brain_move_death2
Definition: m_brain.c:365
ai_walk
void ai_walk(edict_t *self, float dist)
Definition: g_ai.c:148
random
#define random()
Definition: g_local.h:504
brain_duck_hold
void brain_duck_hold(edict_t *self)
Definition: m_brain.c:318
sound_pain2
static int sound_pain2
Definition: m_brain.c:38
brain_move_duck
mmove_t brain_move_duck
Definition: m_brain.c:343
brain_pain
void brain_pain(edict_t *self, edict_t *other, float kick, int damage)
Definition: m_brain.c:524
skill
cvar_t * skill
Definition: g_main.c:36
sound_tentacles_retract
static int sound_tentacles_retract
Definition: m_brain.c:32
ai_move
void ai_move(edict_t *self, float dist)
Definition: g_ai.c:86
level_locals_t::time
float time
Definition: g_local.h:299
sound_melee3
static int sound_melee3
Definition: m_brain.c:43
brain_melee
void brain_melee(edict_t *self)
Definition: m_brain.c:487
DAMAGE_AIM
@ DAMAGE_AIM
Definition: g_local.h:89
ai_run
void ai_run(edict_t *self, float dist)
Definition: g_ai.c:821
GIB_ORGANIC
#define GIB_ORGANIC
Definition: g_local.h:122
level
level_locals_t level
Definition: g_main.c:22
brain_hit_right
void brain_hit_right(edict_t *self)
Definition: m_brain.c:399
sound_tentacles_extend
static int sound_tentacles_extend
Definition: m_brain.c:31
ThrowHead
void ThrowHead(edict_t *self, char *gibname, int damage, int type)
Definition: g_misc.c:175
sound_idle3
static int sound_idle3
Definition: m_brain.c:36
brain_chest_closed
void brain_chest_closed(edict_t *self)
Definition: m_brain.c:457
sound_death
static int sound_death
Definition: m_brain.c:33
MOVETYPE_TOSS
@ MOVETYPE_TOSS
Definition: g_local.h:194
brain_move_death1
mmove_t brain_move_death1
Definition: m_brain.c:388
brain_run
void brain_run(edict_t *self)
Definition: m_brain.c:515
sound_idle2
static int sound_idle2
Definition: m_brain.c:35
AI_DUCKED
#define AI_DUCKED
Definition: g_local.h:137
brain_move_pain1
mmove_t brain_move_pain1
Definition: m_brain.c:302
sound_idle1
static int sound_idle1
Definition: m_brain.c:34
brain_move_stand
mmove_t brain_move_stand
Definition: m_brain.c:99
brain_move_pain3
mmove_t brain_move_pain3
Definition: m_brain.c:263
brain_move_walk1
mmove_t brain_move_walk1
Definition: m_brain.c:170
brain_dodge
void brain_dodge(edict_t *self, edict_t *attacker, float eta)
Definition: m_brain.c:345
brain_search
void brain_search(edict_t *self)
Definition: m_brain.c:51
brain_duck_down
void brain_duck_down(edict_t *self)
Definition: m_brain.c:309
POWER_ARMOR_NONE
#define POWER_ARMOR_NONE
Definition: g_local.h:156
brain_move_pain2
mmove_t brain_move_pain2
Definition: m_brain.c:276
sound_pain1
static int sound_pain1
Definition: m_brain.c:37
brain_move_idle
mmove_t brain_move_idle
Definition: m_brain.c:145