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

Go to the source code of this file.

Functions

qboolean visible (edict_t *self, edict_t *other)
 
void hover_sight (edict_t *self, edict_t *other)
 
void hover_search (edict_t *self)
 
void hover_run (edict_t *self)
 
void hover_stand (edict_t *self)
 
void hover_dead (edict_t *self)
 
void hover_attack (edict_t *self)
 
void hover_reattack (edict_t *self)
 
void hover_fire_blaster (edict_t *self)
 
void hover_die (edict_t *self, edict_t *inflictor, edict_t *attacker, int damage, vec3_t point)
 
void hover_walk (edict_t *self)
 
void hover_start_attack (edict_t *self)
 
void hover_pain (edict_t *self, edict_t *other, float kick, int damage)
 
void hover_deadthink (edict_t *self)
 
void SP_monster_hover (edict_t *self)
 

Variables

static int sound_pain1
 
static int sound_pain2
 
static int sound_death1
 
static int sound_death2
 
static int sound_sight
 
static int sound_search1
 
static int sound_search2
 
mframe_t hover_frames_stand []
 
mmove_t hover_move_stand = {FRAME_stand01, FRAME_stand30, hover_frames_stand, NULL}
 
mframe_t hover_frames_stop1 []
 
mmove_t hover_move_stop1 = {FRAME_stop101, FRAME_stop109, hover_frames_stop1, NULL}
 
mframe_t hover_frames_stop2 []
 
mmove_t hover_move_stop2 = {FRAME_stop201, FRAME_stop208, hover_frames_stop2, NULL}
 
mframe_t hover_frames_takeoff []
 
mmove_t hover_move_takeoff = {FRAME_takeof01, FRAME_takeof30, hover_frames_takeoff, NULL}
 
mframe_t hover_frames_pain3 []
 
mmove_t hover_move_pain3 = {FRAME_pain301, FRAME_pain309, hover_frames_pain3, hover_run}
 
mframe_t hover_frames_pain2 []
 
mmove_t hover_move_pain2 = {FRAME_pain201, FRAME_pain212, hover_frames_pain2, hover_run}
 
mframe_t hover_frames_pain1 []
 
mmove_t hover_move_pain1 = {FRAME_pain101, FRAME_pain128, hover_frames_pain1, hover_run}
 
mframe_t hover_frames_land []
 
mmove_t hover_move_land = {FRAME_land01, FRAME_land01, hover_frames_land, NULL}
 
mframe_t hover_frames_forward []
 
mmove_t hover_move_forward = {FRAME_forwrd01, FRAME_forwrd35, hover_frames_forward, NULL}
 
mframe_t hover_frames_walk []
 
mmove_t hover_move_walk = {FRAME_forwrd01, FRAME_forwrd35, hover_frames_walk, NULL}
 
mframe_t hover_frames_run []
 
mmove_t hover_move_run = {FRAME_forwrd01, FRAME_forwrd35, hover_frames_run, NULL}
 
mframe_t hover_frames_death1 []
 
mmove_t hover_move_death1 = {FRAME_death101, FRAME_death111, hover_frames_death1, hover_dead}
 
mframe_t hover_frames_backward []
 
mmove_t hover_move_backward = {FRAME_backwd01, FRAME_backwd24, hover_frames_backward, NULL}
 
mframe_t hover_frames_start_attack []
 
mmove_t hover_move_start_attack = {FRAME_attak101, FRAME_attak103, hover_frames_start_attack, hover_attack}
 
mframe_t hover_frames_attack1 []
 
mmove_t hover_move_attack1 = {FRAME_attak104, FRAME_attak106, hover_frames_attack1, NULL}
 
mframe_t hover_frames_end_attack []
 
mmove_t hover_move_end_attack = {FRAME_attak107, FRAME_attak108, hover_frames_end_attack, hover_run}
 

Function Documentation

◆ hover_attack()

void hover_attack ( edict_t *  self)

Definition at line 462 of file m_hover.c.

463 {
464  self->monsterinfo.currentmove = &hover_move_attack1;
465 }

◆ hover_dead()

void hover_dead ( edict_t *  self)

Definition at line 504 of file m_hover.c.

505 {
506  VectorSet(self->mins, -16, -16, -24);
507  VectorSet(self->maxs, 16, 16, -8);
508  self->movetype = MOVETYPE_TOSS;
509  self->think = hover_deadthink;
510  self->nextthink = level.time + FRAMETIME;
511  self->timestamp = level.time + 15;
512  gi.linkentity(self);
513 }

◆ hover_deadthink()

void hover_deadthink ( edict_t *  self)

Definition at line 495 of file m_hover.c.

496 {
497  if (!self->groundentity && level.time < self->timestamp) {
498  self->nextthink = level.time + FRAMETIME;
499  return;
500  }
501  BecomeExplosion1(self);
502 }

Referenced by hover_dead().

◆ hover_die()

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

Definition at line 515 of file m_hover.c.

516 {
517  int n;
518 
519 // check for gib
520  if (self->health <= self->gib_health) {
521  gi.sound(self, CHAN_VOICE, gi.soundindex("misc/udeath.wav"), 1, ATTN_NORM, 0);
522  for (n = 0; n < 2; n++)
523  ThrowGib(self, "models/objects/gibs/bone/tris.md2", damage, GIB_ORGANIC);
524  for (n = 0; n < 2; n++)
525  ThrowGib(self, "models/objects/gibs/sm_meat/tris.md2", damage, GIB_ORGANIC);
526  ThrowHead(self, "models/objects/gibs/sm_meat/tris.md2", damage, GIB_ORGANIC);
527  self->deadflag = DEAD_DEAD;
528  return;
529  }
530 
531  if (self->deadflag == DEAD_DEAD)
532  return;
533 
534 // regular death
535  if (random() < 0.5)
536  gi.sound(self, CHAN_VOICE, sound_death1, 1, ATTN_NORM, 0);
537  else
538  gi.sound(self, CHAN_VOICE, sound_death2, 1, ATTN_NORM, 0);
539  self->deadflag = DEAD_DEAD;
540  self->takedamage = DAMAGE_YES;
541  self->monsterinfo.currentmove = &hover_move_death1;
542 }

Referenced by SP_monster_hover().

◆ hover_fire_blaster()

void hover_fire_blaster ( edict_t *  self)

Definition at line 415 of file m_hover.c.

416 {
417  vec3_t start;
418  vec3_t forward, right;
419  vec3_t end;
420  vec3_t dir;
421  int effect;
422 
423  if (self->s.frame == FRAME_attak104)
424  effect = EF_HYPERBLASTER;
425  else
426  effect = 0;
427 
428  AngleVectors(self->s.angles, forward, right, NULL);
429  G_ProjectSource(self->s.origin, monster_flash_offset[MZ2_HOVER_BLASTER_1], forward, right, start);
430 
431  VectorCopy(self->enemy->s.origin, end);
432  end[2] += self->enemy->viewheight;
433  VectorSubtract(end, start, dir);
434 
435  monster_fire_blaster(self, start, dir, 1, 1000, MZ2_HOVER_BLASTER_1, effect);
436 }

◆ hover_pain()

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

Definition at line 468 of file m_hover.c.

469 {
470  if (self->health < (self->max_health / 2))
471  self->s.skinnum = 1;
472 
473  if (level.time < self->pain_debounce_time)
474  return;
475 
476  self->pain_debounce_time = level.time + 3;
477 
478  if (skill->value == 3)
479  return; // no pain anims in nightmare
480 
481  if (damage <= 25) {
482  if (random() < 0.5) {
483  gi.sound(self, CHAN_VOICE, sound_pain1, 1, ATTN_NORM, 0);
484  self->monsterinfo.currentmove = &hover_move_pain3;
485  } else {
486  gi.sound(self, CHAN_VOICE, sound_pain2, 1, ATTN_NORM, 0);
487  self->monsterinfo.currentmove = &hover_move_pain2;
488  }
489  } else {
490  gi.sound(self, CHAN_VOICE, sound_pain1, 1, ATTN_NORM, 0);
491  self->monsterinfo.currentmove = &hover_move_pain1;
492  }
493 }

Referenced by SP_monster_hover().

◆ hover_reattack()

void hover_reattack ( edict_t *  self)

Definition at line 403 of file m_hover.c.

404 {
405  if (self->enemy->health > 0)
406  if (visible(self, self->enemy))
407  if (random() <= 0.6) {
408  self->monsterinfo.currentmove = &hover_move_attack1;
409  return;
410  }
411  self->monsterinfo.currentmove = &hover_move_end_attack;
412 }

◆ hover_run()

void hover_run ( edict_t *  self)

Definition at line 444 of file m_hover.c.

445 {
446  if (self->monsterinfo.aiflags & AI_STAND_GROUND)
447  self->monsterinfo.currentmove = &hover_move_stand;
448  else
449  self->monsterinfo.currentmove = &hover_move_run;
450 }

Referenced by SP_monster_hover().

◆ hover_search()

void hover_search ( edict_t *  self)

Definition at line 46 of file m_hover.c.

47 {
48  if (random() < 0.5)
49  gi.sound(self, CHAN_VOICE, sound_search1, 1, ATTN_NORM, 0);
50  else
51  gi.sound(self, CHAN_VOICE, sound_search2, 1, ATTN_NORM, 0);
52 }

Referenced by SP_monster_hover().

◆ hover_sight()

void hover_sight ( edict_t *  self,
edict_t *  other 
)

Definition at line 41 of file m_hover.c.

42 {
43  gi.sound(self, CHAN_VOICE, sound_sight, 1, ATTN_NORM, 0);
44 }

Referenced by SP_monster_hover().

◆ hover_stand()

void hover_stand ( edict_t *  self)

Definition at line 439 of file m_hover.c.

440 {
441  self->monsterinfo.currentmove = &hover_move_stand;
442 }

Referenced by SP_monster_hover().

◆ hover_start_attack()

void hover_start_attack ( edict_t *  self)

Definition at line 457 of file m_hover.c.

458 {
459  self->monsterinfo.currentmove = &hover_move_start_attack;
460 }

Referenced by SP_monster_hover().

◆ hover_walk()

void hover_walk ( edict_t *  self)

Definition at line 452 of file m_hover.c.

453 {
454  self->monsterinfo.currentmove = &hover_move_walk;
455 }

Referenced by SP_monster_hover().

◆ SP_monster_hover()

void SP_monster_hover ( edict_t *  self)

Definition at line 546 of file m_hover.c.

547 {
548  if (deathmatch->value) {
549  G_FreeEdict(self);
550  return;
551  }
552 
553  sound_pain1 = gi.soundindex("hover/hovpain1.wav");
554  sound_pain2 = gi.soundindex("hover/hovpain2.wav");
555  sound_death1 = gi.soundindex("hover/hovdeth1.wav");
556  sound_death2 = gi.soundindex("hover/hovdeth2.wav");
557  sound_sight = gi.soundindex("hover/hovsght1.wav");
558  sound_search1 = gi.soundindex("hover/hovsrch1.wav");
559  sound_search2 = gi.soundindex("hover/hovsrch2.wav");
560 
561  gi.soundindex("hover/hovatck1.wav");
562 
563  self->s.sound = gi.soundindex("hover/hovidle1.wav");
564 
565  self->movetype = MOVETYPE_STEP;
566  self->solid = SOLID_BBOX;
567  self->s.modelindex = gi.modelindex("models/monsters/hover/tris.md2");
568  VectorSet(self->mins, -24, -24, -24);
569  VectorSet(self->maxs, 24, 24, 32);
570 
571  self->health = 240;
572  self->gib_health = -100;
573  self->mass = 150;
574 
575  self->pain = hover_pain;
576  self->die = hover_die;
577 
578  self->monsterinfo.stand = hover_stand;
579  self->monsterinfo.walk = hover_walk;
580  self->monsterinfo.run = hover_run;
581 // self->monsterinfo.dodge = hover_dodge;
582  self->monsterinfo.attack = hover_start_attack;
583  self->monsterinfo.sight = hover_sight;
584  self->monsterinfo.search = hover_search;
585 
586  gi.linkentity(self);
587 
588  self->monsterinfo.currentmove = &hover_move_stand;
589  self->monsterinfo.scale = MODEL_SCALE;
590 
591  flymonster_start(self);
592 }

◆ visible()

qboolean visible ( edict_t *  self,
edict_t *  other 
)

Definition at line 268 of file g_ai.c.

269 {
270  vec3_t spot1;
271  vec3_t spot2;
272  trace_t trace;
273 
274  VectorCopy(self->s.origin, spot1);
275  spot1[2] += self->viewheight;
276  VectorCopy(other->s.origin, spot2);
277  spot2[2] += other->viewheight;
278  trace = gi.trace(spot1, vec3_origin, vec3_origin, spot2, self, MASK_OPAQUE);
279 
280  if (trace.fraction == 1.0)
281  return qtrue;
282  return qfalse;
283 }

Referenced by hover_reattack().

Variable Documentation

◆ hover_frames_attack1

mframe_t hover_frames_attack1[]
Initial value:

Definition at line 389 of file m_hover.c.

◆ hover_frames_backward

mframe_t hover_frames_backward[]
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 },
{ 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 },
{ ai_move, 0, NULL }
}

Definition at line 354 of file m_hover.c.

◆ hover_frames_death1

mframe_t hover_frames_death1[]
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, -10, NULL },
{ ai_move, 3, NULL },
{ ai_move, 5, NULL },
{ ai_move, 4, NULL },
{ ai_move, 7, NULL }
}

Definition at line 339 of file m_hover.c.

◆ hover_frames_end_attack

mframe_t hover_frames_end_attack[]
Initial value:
= {
{ ai_charge, 1, NULL },
{ ai_charge, 1, NULL }
}

Definition at line 397 of file m_hover.c.

◆ hover_frames_forward

mframe_t hover_frames_forward[]

Definition at line 222 of file m_hover.c.

◆ hover_frames_land

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

Definition at line 217 of file m_hover.c.

◆ hover_frames_pain1

mframe_t hover_frames_pain1[]
Initial value:
= {
{ ai_move, 0, NULL },
{ ai_move, 0, NULL },
{ ai_move, 2, NULL },
{ ai_move, -8, NULL },
{ ai_move, -4, NULL },
{ ai_move, -6, NULL },
{ ai_move, -4, NULL },
{ ai_move, -3, NULL },
{ ai_move, 1, NULL },
{ ai_move, 0, NULL },
{ ai_move, 0, NULL },
{ ai_move, 0, NULL },
{ ai_move, 3, NULL },
{ ai_move, 1, NULL },
{ ai_move, 0, NULL },
{ ai_move, 2, NULL },
{ ai_move, 3, NULL },
{ ai_move, 2, NULL },
{ ai_move, 7, NULL },
{ ai_move, 1, NULL },
{ ai_move, 0, NULL },
{ ai_move, 0, NULL },
{ ai_move, 2, NULL },
{ ai_move, 0, NULL },
{ ai_move, 0, NULL },
{ ai_move, 5, NULL },
{ ai_move, 3, NULL },
{ ai_move, 4, NULL }
}

Definition at line 185 of file m_hover.c.

◆ hover_frames_pain2

mframe_t hover_frames_pain2[]
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 },
{ ai_move, 0, NULL },
{ ai_move, 0, NULL },
{ ai_move, 0, NULL }
}

Definition at line 169 of file m_hover.c.

◆ hover_frames_pain3

mframe_t hover_frames_pain3[]
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 156 of file m_hover.c.

◆ hover_frames_run

mframe_t hover_frames_run[]

Definition at line 300 of file m_hover.c.

◆ hover_frames_stand

mframe_t hover_frames_stand[]

Definition at line 63 of file m_hover.c.

◆ hover_frames_start_attack

mframe_t hover_frames_start_attack[]
Initial value:
= {
{ ai_charge, 1, NULL },
{ ai_charge, 1, NULL },
{ ai_charge, 1, NULL }
}

Definition at line 382 of file m_hover.c.

◆ hover_frames_stop1

mframe_t hover_frames_stop1[]
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 97 of file m_hover.c.

◆ hover_frames_stop2

mframe_t hover_frames_stop2[]
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 }
}

Definition at line 110 of file m_hover.c.

◆ hover_frames_takeoff

mframe_t hover_frames_takeoff[]

Definition at line 122 of file m_hover.c.

◆ hover_frames_walk

mframe_t hover_frames_walk[]

Definition at line 261 of file m_hover.c.

◆ hover_move_attack1

Definition at line 394 of file m_hover.c.

Referenced by hover_attack(), and hover_reattack().

◆ hover_move_backward

Definition at line 380 of file m_hover.c.

◆ hover_move_death1

Definition at line 352 of file m_hover.c.

Referenced by hover_die().

◆ hover_move_end_attack

Definition at line 401 of file m_hover.c.

Referenced by hover_reattack().

◆ hover_move_forward

Definition at line 259 of file m_hover.c.

◆ hover_move_land

mmove_t hover_move_land = {FRAME_land01, FRAME_land01, hover_frames_land, NULL}

Definition at line 220 of file m_hover.c.

◆ hover_move_pain1

Definition at line 215 of file m_hover.c.

Referenced by hover_pain().

◆ hover_move_pain2

Definition at line 183 of file m_hover.c.

Referenced by hover_pain().

◆ hover_move_pain3

Definition at line 167 of file m_hover.c.

Referenced by hover_pain().

◆ hover_move_run

Definition at line 337 of file m_hover.c.

Referenced by hover_run().

◆ hover_move_stand

mmove_t hover_move_stand = {FRAME_stand01, FRAME_stand30, hover_frames_stand, NULL}

Definition at line 95 of file m_hover.c.

Referenced by hover_run(), hover_stand(), and SP_monster_hover().

◆ hover_move_start_attack

Definition at line 387 of file m_hover.c.

Referenced by hover_start_attack().

◆ hover_move_stop1

mmove_t hover_move_stop1 = {FRAME_stop101, FRAME_stop109, hover_frames_stop1, NULL}

Definition at line 108 of file m_hover.c.

◆ hover_move_stop2

mmove_t hover_move_stop2 = {FRAME_stop201, FRAME_stop208, hover_frames_stop2, NULL}

Definition at line 120 of file m_hover.c.

◆ hover_move_takeoff

Definition at line 154 of file m_hover.c.

◆ hover_move_walk

Definition at line 298 of file m_hover.c.

Referenced by hover_walk().

◆ sound_death1

int sound_death1
static

Definition at line 34 of file m_hover.c.

Referenced by hover_die(), and SP_monster_hover().

◆ sound_death2

int sound_death2
static

Definition at line 35 of file m_hover.c.

Referenced by hover_die(), and SP_monster_hover().

◆ sound_pain1

int sound_pain1
static

Definition at line 32 of file m_hover.c.

Referenced by hover_pain(), and SP_monster_hover().

◆ sound_pain2

int sound_pain2
static

Definition at line 33 of file m_hover.c.

Referenced by hover_pain(), and SP_monster_hover().

◆ sound_search1

int sound_search1
static

Definition at line 37 of file m_hover.c.

Referenced by hover_search(), and SP_monster_hover().

◆ sound_search2

int sound_search2
static

Definition at line 38 of file m_hover.c.

Referenced by hover_search(), and SP_monster_hover().

◆ sound_sight

int sound_sight
static

Definition at line 36 of file m_hover.c.

Referenced by hover_sight(), and SP_monster_hover().

gi
game_import_t gi
Definition: g_main.c:23
deathmatch
cvar_t * deathmatch
Definition: g_main.c:33
hover_die
void hover_die(edict_t *self, edict_t *inflictor, edict_t *attacker, int damage, vec3_t point)
Definition: m_hover.c:515
hover_fire_blaster
void hover_fire_blaster(edict_t *self)
Definition: m_hover.c:415
G_ProjectSource
void G_ProjectSource(const vec3_t point, const vec3_t distance, const vec3_t forward, const vec3_t right, vec3_t result)
Definition: g_utils.c:23
DEAD_DEAD
#define DEAD_DEAD
Definition: g_local.h:112
ThrowGib
void ThrowGib(edict_t *self, char *gibname, int damage, int type)
Definition: g_misc.c:130
hover_sight
void hover_sight(edict_t *self, edict_t *other)
Definition: m_hover.c:41
hover_move_death1
mmove_t hover_move_death1
Definition: m_hover.c:352
ai_charge
void ai_charge(edict_t *self, float dist)
Definition: g_ai.c:175
hover_move_pain3
mmove_t hover_move_pain3
Definition: m_hover.c:167
FRAMETIME
#define FRAMETIME
Definition: g_local.h:75
hover_move_attack1
mmove_t hover_move_attack1
Definition: m_hover.c:394
sound_death1
static int sound_death1
Definition: m_hover.c:34
hover_move_start_attack
mmove_t hover_move_start_attack
Definition: m_hover.c:387
AI_STAND_GROUND
#define AI_STAND_GROUND
Definition: g_local.h:126
sound_pain1
static int sound_pain1
Definition: m_hover.c:32
MODEL_SCALE
#define MODEL_SCALE
Definition: m_actor.h:504
BecomeExplosion1
void BecomeExplosion1(edict_t *self)
Definition: g_misc.c:297
hover_move_stand
mmove_t hover_move_stand
Definition: m_hover.c:95
DAMAGE_YES
@ DAMAGE_YES
Definition: g_local.h:88
hover_stand
void hover_stand(edict_t *self)
Definition: m_hover.c:439
other
@ other
Definition: ogg.c:63
MOVETYPE_STEP
@ MOVETYPE_STEP
Definition: g_local.h:192
vec3_origin
vec3_t vec3_origin
Definition: shared.c:21
G_FreeEdict
void G_FreeEdict(edict_t *e)
Definition: g_utils.c:421
FRAME_attak104
#define FRAME_attak104
Definition: m_boss31.h:25
forward
static vec3_t forward
Definition: p_view.c:27
hover_move_run
mmove_t hover_move_run
Definition: m_hover.c:337
random
#define random()
Definition: g_local.h:504
AngleVectors
void AngleVectors(vec3_t angles, vec3_t forward, vec3_t right, vec3_t up)
Definition: shared.c:23
sound_search1
static int sound_search1
Definition: m_hover.c:37
hover_run
void hover_run(edict_t *self)
Definition: m_hover.c:444
hover_pain
void hover_pain(edict_t *self, edict_t *other, float kick, int damage)
Definition: m_hover.c:468
hover_move_pain1
mmove_t hover_move_pain1
Definition: m_hover.c:215
skill
cvar_t * skill
Definition: g_main.c:36
hover_move_pain2
mmove_t hover_move_pain2
Definition: m_hover.c:183
hover_reattack
void hover_reattack(edict_t *self)
Definition: m_hover.c:403
ai_move
void ai_move(edict_t *self, float dist)
Definition: g_ai.c:86
sound_search2
static int sound_search2
Definition: m_hover.c:38
level_locals_t::time
float time
Definition: g_local.h:299
monster_fire_blaster
void monster_fire_blaster(edict_t *self, vec3_t start, vec3_t dir, int damage, int speed, int flashtype, int effect)
Definition: g_monster.c:49
hover_walk
void hover_walk(edict_t *self)
Definition: m_hover.c:452
visible
qboolean visible(edict_t *self, edict_t *other)
Definition: g_ai.c:268
hover_deadthink
void hover_deadthink(edict_t *self)
Definition: m_hover.c:495
right
static vec3_t right
Definition: p_view.c:27
hover_move_end_attack
mmove_t hover_move_end_attack
Definition: m_hover.c:401
GIB_ORGANIC
#define GIB_ORGANIC
Definition: g_local.h:122
level
level_locals_t level
Definition: g_main.c:22
sound_pain2
static int sound_pain2
Definition: m_hover.c:33
monster_flash_offset
const vec3_t monster_flash_offset[256]
Definition: m_flash.c:25
hover_start_attack
void hover_start_attack(edict_t *self)
Definition: m_hover.c:457
ThrowHead
void ThrowHead(edict_t *self, char *gibname, int damage, int type)
Definition: g_misc.c:175
MOVETYPE_TOSS
@ MOVETYPE_TOSS
Definition: g_local.h:194
hover_move_walk
mmove_t hover_move_walk
Definition: m_hover.c:298
sound_sight
static int sound_sight
Definition: m_hover.c:36
hover_search
void hover_search(edict_t *self)
Definition: m_hover.c:46
sound_death2
static int sound_death2
Definition: m_hover.c:35
flymonster_start
void flymonster_start(edict_t *self)
Definition: g_monster.c:653