icculus quake2 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 481 of file m_hover.c.

482 {
483  self->monsterinfo.currentmove = &hover_move_attack1;
484 }

◆ hover_dead()

void hover_dead ( edict_t self)

Definition at line 530 of file m_hover.c.

531 {
532  VectorSet (self->mins, -16, -16, -24);
533  VectorSet (self->maxs, 16, 16, -8);
534  self->movetype = MOVETYPE_TOSS;
535  self->think = hover_deadthink;
536  self->nextthink = level.time + FRAMETIME;
537  self->timestamp = level.time + 15;
538  gi.linkentity (self);
539 }

◆ hover_deadthink()

void hover_deadthink ( edict_t self)

Definition at line 520 of file m_hover.c.

521 {
522  if (!self->groundentity && level.time < self->timestamp)
523  {
524  self->nextthink = level.time + FRAMETIME;
525  return;
526  }
527  BecomeExplosion1(self);
528 }

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 541 of file m_hover.c.

542 {
543  int n;
544 
545 // check for gib
546  if (self->health <= self->gib_health)
547  {
548  gi.sound (self, CHAN_VOICE, gi.soundindex ("misc/udeath.wav"), 1, ATTN_NORM, 0);
549  for (n= 0; n < 2; n++)
550  ThrowGib (self, "models/objects/gibs/bone/tris.md2", damage, GIB_ORGANIC);
551  for (n= 0; n < 2; n++)
552  ThrowGib (self, "models/objects/gibs/sm_meat/tris.md2", damage, GIB_ORGANIC);
553  ThrowHead (self, "models/objects/gibs/sm_meat/tris.md2", damage, GIB_ORGANIC);
554  self->deadflag = DEAD_DEAD;
555  return;
556  }
557 
558  if (self->deadflag == DEAD_DEAD)
559  return;
560 
561 // regular death
562  if (random() < 0.5)
563  gi.sound (self, CHAN_VOICE, sound_death1, 1, ATTN_NORM, 0);
564  else
565  gi.sound (self, CHAN_VOICE, sound_death2, 1, ATTN_NORM, 0);
566  self->deadflag = DEAD_DEAD;
567  self->takedamage = DAMAGE_YES;
568  self->monsterinfo.currentmove = &hover_move_death1;
569 }

Referenced by SP_monster_hover().

◆ hover_fire_blaster()

void hover_fire_blaster ( edict_t self)

Definition at line 434 of file m_hover.c.

435 {
436  vec3_t start;
438  vec3_t end;
439  vec3_t dir;
440  int effect;
441 
442  if (self->s.frame == FRAME_attak104)
443  effect = EF_HYPERBLASTER;
444  else
445  effect = 0;
446 
447  AngleVectors (self->s.angles, forward, right, NULL);
449 
450  VectorCopy (self->enemy->s.origin, end);
451  end[2] += self->enemy->viewheight;
452  VectorSubtract (end, start, dir);
453 
454  monster_fire_blaster (self, start, dir, 1, 1000, MZ2_HOVER_BLASTER_1, effect);
455 }

◆ hover_pain()

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

Definition at line 487 of file m_hover.c.

488 {
489  if (self->health < (self->max_health / 2))
490  self->s.skinnum = 1;
491 
492  if (level.time < self->pain_debounce_time)
493  return;
494 
495  self->pain_debounce_time = level.time + 3;
496 
497  if (skill->value == 3)
498  return; // no pain anims in nightmare
499 
500  if (damage <= 25)
501  {
502  if (random() < 0.5)
503  {
504  gi.sound (self, CHAN_VOICE, sound_pain1, 1, ATTN_NORM, 0);
505  self->monsterinfo.currentmove = &hover_move_pain3;
506  }
507  else
508  {
509  gi.sound (self, CHAN_VOICE, sound_pain2, 1, ATTN_NORM, 0);
510  self->monsterinfo.currentmove = &hover_move_pain2;
511  }
512  }
513  else
514  {
515  gi.sound (self, CHAN_VOICE, sound_pain1, 1, ATTN_NORM, 0);
516  self->monsterinfo.currentmove = &hover_move_pain1;
517  }
518 }

Referenced by SP_monster_hover().

◆ hover_reattack()

void hover_reattack ( edict_t self)

Definition at line 421 of file m_hover.c.

422 {
423  if (self->enemy->health > 0 )
424  if (visible (self, self->enemy) )
425  if (random() <= 0.6)
426  {
427  self->monsterinfo.currentmove = &hover_move_attack1;
428  return;
429  }
430  self->monsterinfo.currentmove = &hover_move_end_attack;
431 }

◆ hover_run()

void hover_run ( edict_t self)

Definition at line 463 of file m_hover.c.

464 {
465  if (self->monsterinfo.aiflags & AI_STAND_GROUND)
466  self->monsterinfo.currentmove = &hover_move_stand;
467  else
468  self->monsterinfo.currentmove = &hover_move_run;
469 }

Referenced by SP_monster_hover().

◆ hover_search()

void hover_search ( edict_t self)

Definition at line 48 of file m_hover.c.

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

Referenced by SP_monster_hover().

◆ hover_sight()

void hover_sight ( edict_t self,
edict_t other 
)

Definition at line 43 of file m_hover.c.

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

Referenced by SP_monster_hover().

◆ hover_stand()

void hover_stand ( edict_t self)

Definition at line 458 of file m_hover.c.

459 {
460  self->monsterinfo.currentmove = &hover_move_stand;
461 }

Referenced by SP_monster_hover().

◆ hover_start_attack()

void hover_start_attack ( edict_t self)

Definition at line 476 of file m_hover.c.

477 {
478  self->monsterinfo.currentmove = &hover_move_start_attack;
479 }

Referenced by SP_monster_hover().

◆ hover_walk()

void hover_walk ( edict_t self)

Definition at line 471 of file m_hover.c.

472 {
473  self->monsterinfo.currentmove = &hover_move_walk;
474 }

Referenced by SP_monster_hover().

◆ SP_monster_hover()

void SP_monster_hover ( edict_t self)

Definition at line 573 of file m_hover.c.

574 {
575  if (deathmatch->value)
576  {
577  G_FreeEdict (self);
578  return;
579  }
580 
581  sound_pain1 = gi.soundindex ("hover/hovpain1.wav");
582  sound_pain2 = gi.soundindex ("hover/hovpain2.wav");
583  sound_death1 = gi.soundindex ("hover/hovdeth1.wav");
584  sound_death2 = gi.soundindex ("hover/hovdeth2.wav");
585  sound_sight = gi.soundindex ("hover/hovsght1.wav");
586  sound_search1 = gi.soundindex ("hover/hovsrch1.wav");
587  sound_search2 = gi.soundindex ("hover/hovsrch2.wav");
588 
589  gi.soundindex ("hover/hovatck1.wav");
590 
591  self->s.sound = gi.soundindex ("hover/hovidle1.wav");
592 
593  self->movetype = MOVETYPE_STEP;
594  self->solid = SOLID_BBOX;
595  self->s.modelindex = gi.modelindex("models/monsters/hover/tris.md2");
596  VectorSet (self->mins, -24, -24, -24);
597  VectorSet (self->maxs, 24, 24, 32);
598 
599  self->health = 240;
600  self->gib_health = -100;
601  self->mass = 150;
602 
603  self->pain = hover_pain;
604  self->die = hover_die;
605 
606  self->monsterinfo.stand = hover_stand;
607  self->monsterinfo.walk = hover_walk;
608  self->monsterinfo.run = hover_run;
609 // self->monsterinfo.dodge = hover_dodge;
610  self->monsterinfo.attack = hover_start_attack;
611  self->monsterinfo.sight = hover_sight;
612  self->monsterinfo.search = hover_search;
613 
614  gi.linkentity (self);
615 
616  self->monsterinfo.currentmove = &hover_move_stand;
617  self->monsterinfo.scale = MODEL_SCALE;
618 
619  flymonster_start (self);
620 }

◆ visible()

qboolean visible ( edict_t self,
edict_t other 
)

Definition at line 287 of file g_ai.c.

288 {
289  vec3_t spot1;
290  vec3_t spot2;
291  trace_t trace;
292 
293  VectorCopy (self->s.origin, spot1);
294  spot1[2] += self->viewheight;
295  VectorCopy (other->s.origin, spot2);
296  spot2[2] += other->viewheight;
297  trace = gi.trace (spot1, vec3_origin, vec3_origin, spot2, self, MASK_OPAQUE);
298 
299  if (trace.fraction == 1.0)
300  return true;
301  return false;
302 }

Referenced by hover_reattack().

Variable Documentation

◆ hover_frames_attack1

mframe_t hover_frames_attack1[]
Initial value:

Definition at line 405 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 368 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 352 of file m_hover.c.

◆ hover_frames_end_attack

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

Definition at line 414 of file m_hover.c.

◆ hover_frames_forward

mframe_t hover_frames_forward[]

Definition at line 232 of file m_hover.c.

◆ hover_frames_land

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

Definition at line 226 of file m_hover.c.

◆ hover_frames_pain1

mframe_t hover_frames_pain1[]

Definition at line 193 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 176 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 162 of file m_hover.c.

◆ hover_frames_run

mframe_t hover_frames_run[]

Definition at line 312 of file m_hover.c.

◆ hover_frames_stand

mframe_t hover_frames_stand[]

Definition at line 65 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},
}

Definition at line 397 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 100 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 114 of file m_hover.c.

◆ hover_frames_takeoff

mframe_t hover_frames_takeoff[]

Definition at line 127 of file m_hover.c.

◆ hover_frames_walk

mframe_t hover_frames_walk[]

Definition at line 272 of file m_hover.c.

◆ hover_move_attack1

Definition at line 411 of file m_hover.c.

Referenced by hover_attack(), and hover_reattack().

◆ hover_move_backward

Definition at line 395 of file m_hover.c.

◆ hover_move_death1

Definition at line 366 of file m_hover.c.

Referenced by hover_die().

◆ hover_move_end_attack

Definition at line 419 of file m_hover.c.

Referenced by hover_reattack().

◆ hover_move_forward

Definition at line 270 of file m_hover.c.

◆ hover_move_land

Definition at line 230 of file m_hover.c.

◆ hover_move_pain1

Definition at line 224 of file m_hover.c.

Referenced by hover_pain().

◆ hover_move_pain2

Definition at line 191 of file m_hover.c.

Referenced by hover_pain().

◆ hover_move_pain3

Definition at line 174 of file m_hover.c.

Referenced by hover_pain().

◆ hover_move_run

Definition at line 350 of file m_hover.c.

Referenced by hover_run().

◆ hover_move_stand

Definition at line 98 of file m_hover.c.

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

◆ hover_move_start_attack

Definition at line 403 of file m_hover.c.

Referenced by hover_start_attack().

◆ hover_move_stop1

Definition at line 112 of file m_hover.c.

◆ hover_move_stop2

Definition at line 125 of file m_hover.c.

◆ hover_move_takeoff

Definition at line 160 of file m_hover.c.

◆ hover_move_walk

Definition at line 310 of file m_hover.c.

Referenced by hover_walk().

◆ sound_death1

int sound_death1
static

Definition at line 36 of file m_hover.c.

Referenced by hover_die(), and SP_monster_hover().

◆ sound_death2

int sound_death2
static

Definition at line 37 of file m_hover.c.

Referenced by hover_die(), and SP_monster_hover().

◆ sound_pain1

int sound_pain1
static

Definition at line 34 of file m_hover.c.

Referenced by hover_pain(), and SP_monster_hover().

◆ sound_pain2

int sound_pain2
static

Definition at line 35 of file m_hover.c.

Referenced by hover_pain(), and SP_monster_hover().

◆ sound_search1

int sound_search1
static

Definition at line 39 of file m_hover.c.

Referenced by hover_search(), and SP_monster_hover().

◆ sound_search2

int sound_search2
static

Definition at line 40 of file m_hover.c.

Referenced by hover_search(), and SP_monster_hover().

◆ sound_sight

int sound_sight
static

Definition at line 38 of file m_hover.c.

Referenced by hover_sight(), and SP_monster_hover().

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
edict_s::s
entity_state_t s
Definition: g_local.h:964
edict_s::groundentity
edict_t * groundentity
Definition: g_local.h:1073
deathmatch
cvar_t * deathmatch
Definition: g_main.c:35
hover_die
void hover_die(edict_t *self, edict_t *inflictor, edict_t *attacker, int damage, vec3_t point)
Definition: m_hover.c:541
edict_s::timestamp
float timestamp
Definition: g_local.h:1008
hover_fire_blaster
void hover_fire_blaster(edict_t *self)
Definition: m_hover.c:434
DEAD_DEAD
#define DEAD_DEAD
Definition: g_local.h:113
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
trace_t::fraction
float fraction
Definition: q_shared.h:453
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:1053
VectorSubtract
#define VectorSubtract(a, b, c)
Definition: q_shared.h:156
hover_sight
void hover_sight(edict_t *self, edict_t *other)
Definition: m_hover.c:43
entity_state_s::frame
int frame
Definition: q_shared.h:1178
hover_move_death1
mmove_t hover_move_death1
Definition: m_hover.c:366
ai_charge
void ai_charge(edict_t *self, float dist)
Definition: g_ai.c:194
SOLID_BBOX
@ SOLID_BBOX
Definition: game.h:37
hover_move_pain3
mmove_t hover_move_pain3
Definition: m_hover.c:174
FRAMETIME
#define FRAMETIME
Definition: g_local.h:73
hover_move_attack1
mmove_t hover_move_attack1
Definition: m_hover.c:411
sound_death1
static int sound_death1
Definition: m_hover.c:36
hover_move_start_attack
mmove_t hover_move_start_attack
Definition: m_hover.c:403
entity_state_s::origin
vec3_t origin
Definition: q_shared.h:1173
AI_STAND_GROUND
#define AI_STAND_GROUND
Definition: g_local.h:127
trace_t
Definition: q_shared.h:449
sound_pain1
static int sound_pain1
Definition: m_hover.c:34
MODEL_SCALE
#define MODEL_SCALE
Definition: m_actor.h:506
edict_s::max_health
int max_health
Definition: g_local.h:1052
BecomeExplosion1
void BecomeExplosion1(edict_t *self)
Definition: g_misc.c:314
hover_move_stand
mmove_t hover_move_stand
Definition: m_hover.c:98
DAMAGE_YES
@ DAMAGE_YES
Definition: g_local.h:87
game_import_t::sound
void(* sound)(edict_t *ent, int channel, int soundindex, float volume, float attenuation, float timeofs)
Definition: game.h:109
hover_stand
void hover_stand(edict_t *self)
Definition: m_hover.c:458
edict_s::mins
vec3_t mins
Definition: g_local.h:984
ATTN_NORM
#define ATTN_NORM
Definition: q_shared.h:1019
MZ2_HOVER_BLASTER_1
#define MZ2_HOVER_BLASTER_1
Definition: q_shared.h:763
MOVETYPE_STEP
@ MOVETYPE_STEP
Definition: g_local.h:194
AngleVectors
void AngleVectors(vec3_t angles, vec3_t forward, vec3_t right, vec3_t up)
Definition: q_shared.c:93
monster_flash_offset
vec3_t monster_flash_offset[]
Definition: m_flash.c:27
CHAN_VOICE
#define CHAN_VOICE
Definition: q_shared.h:1009
G_FreeEdict
void G_FreeEdict(edict_t *e)
Definition: g_utils.c:452
edict_s::viewheight
int viewheight
Definition: g_local.h:1061
FRAME_attak104
#define FRAME_attak104
Definition: m_boss31.h:27
game_import_t::soundindex
int(* soundindex)(char *name)
Definition: game.h:122
forward
static vec3_t forward
Definition: p_view.c:29
hover_move_run
mmove_t hover_move_run
Definition: m_hover.c:350
game_import_t::modelindex
int(* modelindex)(char *name)
Definition: game.h:121
edict_s::deadflag
int deadflag
Definition: g_local.h:1054
cvar_s::value
float value
Definition: q_shared.h:324
random
#define random()
Definition: g_local.h:509
NULL
#define NULL
Definition: q_shared.h:60
sound_search1
static int sound_search1
Definition: m_hover.c:39
hover_run
void hover_run(edict_t *self)
Definition: m_hover.c:463
hover_pain
void hover_pain(edict_t *self, edict_t *other, float kick, int damage)
Definition: m_hover.c:487
monsterinfo_t::aiflags
int aiflags
Definition: g_local.h:419
hover_move_pain1
mmove_t hover_move_pain1
Definition: m_hover.c:224
skill
cvar_t * skill
Definition: g_main.c:38
MASK_OPAQUE
#define MASK_OPAQUE
Definition: q_shared.h:396
hover_move_pain2
mmove_t hover_move_pain2
Definition: m_hover.c:191
hover_reattack
void hover_reattack(edict_t *self)
Definition: m_hover.c:421
ai_move
void ai_move(edict_t *self, float dist)
Definition: g_ai.c:92
sound_search2
static int sound_search2
Definition: m_hover.c:40
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:51
hover_walk
void hover_walk(edict_t *self)
Definition: m_hover.c:471
VectorCopy
#define VectorCopy(a, b)
Definition: q_shared.h:158
edict_s::pain_debounce_time
float pain_debounce_time
Definition: g_local.h:1046
visible
qboolean visible(edict_t *self, edict_t *other)
Definition: g_ai.c:287
edict_s::monsterinfo
monsterinfo_t monsterinfo
Definition: g_local.h:1108
vec3_origin
vec3_t vec3_origin
Definition: q_shared.c:24
level
GLint level
Definition: qgl_win.c:116
hover_deadthink
void hover_deadthink(edict_t *self)
Definition: m_hover.c:520
hover_move_end_attack
mmove_t hover_move_end_attack
Definition: m_hover.c:419
GIB_ORGANIC
#define GIB_ORGANIC
Definition: g_local.h:123
edict_s::maxs
vec3_t maxs
Definition: g_local.h:984
sound_pain2
static int sound_pain2
Definition: m_hover.c:35
hover_start_attack
void hover_start_attack(edict_t *self)
Definition: m_hover.c:476
ThrowHead
void ThrowHead(edict_t *self, char *gibname, int damage, int type)
Definition: g_misc.c:183
MOVETYPE_TOSS
@ MOVETYPE_TOSS
Definition: g_local.h:196
VectorSet
#define VectorSet(v, x, y, z)
Definition: q_shared.h:161
hover_move_walk
mmove_t hover_move_walk
Definition: m_hover.c:310
right
GLdouble right
Definition: qgl_win.c:159
edict_s::enemy
edict_t * enemy
Definition: g_local.h:1070
game_import_t::linkentity
void(* linkentity)(edict_t *ent)
Definition: game.h:138
sound_sight
static int sound_sight
Definition: m_hover.c:38
hover_search
void hover_search(edict_t *self)
Definition: m_hover.c:48
entity_state_s::angles
vec3_t angles
Definition: q_shared.h:1174
EF_HYPERBLASTER
#define EF_HYPERBLASTER
Definition: q_shared.h:563
sound_death2
static int sound_death2
Definition: m_hover.c:37
vec3_t
vec_t vec3_t[3]
Definition: q_shared.h:127
flymonster_start
void flymonster_start(edict_t *self)
Definition: g_monster.c:715
edict_s::health
int health
Definition: g_local.h:1051