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

Go to the source code of this file.

Functions

qboolean visible (edict_t *self, edict_t *other)
 
void flyer_check_melee (edict_t *self)
 
void flyer_loop_melee (edict_t *self)
 
void flyer_melee (edict_t *self)
 
void flyer_setstart (edict_t *self)
 
void flyer_stand (edict_t *self)
 
void flyer_nextmove (edict_t *self)
 
void flyer_sight (edict_t *self, edict_t *other)
 
void flyer_idle (edict_t *self)
 
void flyer_pop_blades (edict_t *self)
 
void flyer_run (edict_t *self)
 
void flyer_walk (edict_t *self)
 
void flyer_stop (edict_t *self)
 
void flyer_start (edict_t *self)
 
void flyer_fire (edict_t *self, int flash_number)
 
void flyer_fireleft (edict_t *self)
 
void flyer_fireright (edict_t *self)
 
void flyer_slash_left (edict_t *self)
 
void flyer_slash_right (edict_t *self)
 
void flyer_attack (edict_t *self)
 
void flyer_pain (edict_t *self, edict_t *other, float kick, int damage)
 
void flyer_die (edict_t *self, edict_t *inflictor, edict_t *attacker, int damage, vec3_t point)
 
void SP_monster_flyer (edict_t *self)
 

Variables

static int nextmove
 
static int sound_sight
 
static int sound_idle
 
static int sound_pain1
 
static int sound_pain2
 
static int sound_slash
 
static int sound_sproing
 
static int sound_die
 
mframe_t flyer_frames_stand []
 
mmove_t flyer_move_stand = {FRAME_stand01, FRAME_stand45, flyer_frames_stand, NULL}
 
mframe_t flyer_frames_walk []
 
mmove_t flyer_move_walk = {FRAME_stand01, FRAME_stand45, flyer_frames_walk, NULL}
 
mframe_t flyer_frames_run []
 
mmove_t flyer_move_run = {FRAME_stand01, FRAME_stand45, flyer_frames_run, NULL}
 
mframe_t flyer_frames_start []
 
mmove_t flyer_move_start = {FRAME_start01, FRAME_start06, flyer_frames_start, NULL}
 
mframe_t flyer_frames_stop []
 
mmove_t flyer_move_stop = {FRAME_stop01, FRAME_stop07, flyer_frames_stop, NULL}
 
mframe_t flyer_frames_rollright []
 
mmove_t flyer_move_rollright = {FRAME_rollr01, FRAME_rollr09, flyer_frames_rollright, NULL}
 
mframe_t flyer_frames_rollleft []
 
mmove_t flyer_move_rollleft = {FRAME_rollf01, FRAME_rollf09, flyer_frames_rollleft, NULL}
 
mframe_t flyer_frames_pain3 []
 
mmove_t flyer_move_pain3 = {FRAME_pain301, FRAME_pain304, flyer_frames_pain3, flyer_run}
 
mframe_t flyer_frames_pain2 []
 
mmove_t flyer_move_pain2 = {FRAME_pain201, FRAME_pain204, flyer_frames_pain2, flyer_run}
 
mframe_t flyer_frames_pain1 []
 
mmove_t flyer_move_pain1 = {FRAME_pain101, FRAME_pain109, flyer_frames_pain1, flyer_run}
 
mframe_t flyer_frames_defense []
 
mmove_t flyer_move_defense = {FRAME_defens01, FRAME_defens06, flyer_frames_defense, NULL}
 
mframe_t flyer_frames_bankright []
 
mmove_t flyer_move_bankright = {FRAME_bankr01, FRAME_bankr07, flyer_frames_bankright, NULL}
 
mframe_t flyer_frames_bankleft []
 
mmove_t flyer_move_bankleft = {FRAME_bankl01, FRAME_bankl07, flyer_frames_bankleft, NULL}
 
mframe_t flyer_frames_attack2 []
 
mmove_t flyer_move_attack2 = {FRAME_attak201, FRAME_attak217, flyer_frames_attack2, flyer_run}
 
mframe_t flyer_frames_start_melee []
 
mmove_t flyer_move_start_melee = {FRAME_attak101, FRAME_attak106, flyer_frames_start_melee, flyer_loop_melee}
 
mframe_t flyer_frames_end_melee []
 
mmove_t flyer_move_end_melee = {FRAME_attak119, FRAME_attak121, flyer_frames_end_melee, flyer_run}
 
mframe_t flyer_frames_loop_melee []
 
mmove_t flyer_move_loop_melee = {FRAME_attak107, FRAME_attak118, flyer_frames_loop_melee, flyer_check_melee}
 

Function Documentation

◆ flyer_attack()

void flyer_attack ( edict_t self)

Definition at line 489 of file m_flyer.c.

490 {
491 /* if (random() <= 0.5)
492  self->monsterinfo.currentmove = &flyer_move_attack1;
493  else */
494  self->monsterinfo.currentmove = &flyer_move_attack2;
495 }

Referenced by SP_monster_flyer().

◆ flyer_check_melee()

void flyer_check_melee ( edict_t self)

Definition at line 520 of file m_flyer.c.

521 {
522  if (range (self, self->enemy) == RANGE_MELEE)
523  if (random() <= 0.8)
524  self->monsterinfo.currentmove = &flyer_move_loop_melee;
525  else
526  self->monsterinfo.currentmove = &flyer_move_end_melee;
527  else
528  self->monsterinfo.currentmove = &flyer_move_end_melee;
529 }

◆ flyer_die()

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

Definition at line 564 of file m_flyer.c.

565 {
566  gi.sound (self, CHAN_VOICE, sound_die, 1, ATTN_NORM, 0);
567  BecomeExplosion1(self);
568 }

Referenced by SP_monster_flyer().

◆ flyer_fire()

void flyer_fire ( edict_t self,
int  flash_number 
)

Definition at line 367 of file m_flyer.c.

368 {
369  vec3_t start;
371  vec3_t end;
372  vec3_t dir;
373  int effect;
374 
375  if ((self->s.frame == FRAME_attak204) || (self->s.frame == FRAME_attak207) || (self->s.frame == FRAME_attak210))
376  effect = EF_HYPERBLASTER;
377  else
378  effect = 0;
379  AngleVectors (self->s.angles, forward, right, NULL);
380  G_ProjectSource (self->s.origin, monster_flash_offset[flash_number], forward, right, start);
381 
382  VectorCopy (self->enemy->s.origin, end);
383  end[2] += self->enemy->viewheight;
384  VectorSubtract (end, start, dir);
385 
386  monster_fire_blaster (self, start, dir, 1, 1000, flash_number, effect);
387 }

Referenced by flyer_fireleft(), and flyer_fireright().

◆ flyer_fireleft()

void flyer_fireleft ( edict_t self)

Definition at line 389 of file m_flyer.c.

390 {
392 }

◆ flyer_fireright()

void flyer_fireright ( edict_t self)

Definition at line 394 of file m_flyer.c.

395 {
397 }

◆ flyer_idle()

void flyer_idle ( edict_t self)

Definition at line 57 of file m_flyer.c.

58 {
59  gi.sound (self, CHAN_VOICE, sound_idle, 1, ATTN_IDLE, 0);
60 }

Referenced by SP_monster_flyer().

◆ flyer_loop_melee()

void flyer_loop_melee ( edict_t self)

Definition at line 479 of file m_flyer.c.

480 {
481 /* if (random() <= 0.5)
482  self->monsterinfo.currentmove = &flyer_move_attack1;
483  else */
484  self->monsterinfo.currentmove = &flyer_move_loop_melee;
485 }

◆ flyer_melee()

void flyer_melee ( edict_t self)

Definition at line 513 of file m_flyer.c.

514 {
515 // flyer.nextmove = ACTION_attack1;
516 // self->monsterinfo.currentmove = &flyer_move_stop;
517  self->monsterinfo.currentmove = &flyer_move_start_melee;
518 }

Referenced by SP_monster_flyer().

◆ flyer_nextmove()

void flyer_nextmove ( edict_t self)

Definition at line 503 of file m_flyer.c.

504 {
505  if (nextmove == ACTION_attack1)
506  self->monsterinfo.currentmove = &flyer_move_start_melee;
507  else if (nextmove == ACTION_attack2)
508  self->monsterinfo.currentmove = &flyer_move_attack2;
509  else if (nextmove == ACTION_run)
510  self->monsterinfo.currentmove = &flyer_move_run;
511 }

◆ flyer_pain()

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

Definition at line 531 of file m_flyer.c.

532 {
533  int n;
534 
535  if (self->health < (self->max_health / 2))
536  self->s.skinnum = 1;
537 
538  if (level.time < self->pain_debounce_time)
539  return;
540 
541  self->pain_debounce_time = level.time + 3;
542  if (skill->value == 3)
543  return; // no pain anims in nightmare
544 
545  n = rand() % 3;
546  if (n == 0)
547  {
548  gi.sound (self, CHAN_VOICE, sound_pain1, 1, ATTN_NORM, 0);
549  self->monsterinfo.currentmove = &flyer_move_pain1;
550  }
551  else if (n == 1)
552  {
553  gi.sound (self, CHAN_VOICE, sound_pain2, 1, ATTN_NORM, 0);
554  self->monsterinfo.currentmove = &flyer_move_pain2;
555  }
556  else
557  {
558  gi.sound (self, CHAN_VOICE, sound_pain1, 1, ATTN_NORM, 0);
559  self->monsterinfo.currentmove = &flyer_move_pain3;
560  }
561 }

Referenced by SP_monster_flyer().

◆ flyer_pop_blades()

void flyer_pop_blades ( edict_t self)

Definition at line 62 of file m_flyer.c.

63 {
64  gi.sound (self, CHAN_VOICE, sound_sproing, 1, ATTN_NORM, 0);
65 }

◆ flyer_run()

void flyer_run ( edict_t self)

Definition at line 219 of file m_flyer.c.

220 {
221  if (self->monsterinfo.aiflags & AI_STAND_GROUND)
222  self->monsterinfo.currentmove = &flyer_move_stand;
223  else
224  self->monsterinfo.currentmove = &flyer_move_run;
225 }

Referenced by SP_monster_flyer().

◆ flyer_setstart()

void flyer_setstart ( edict_t self)

Definition at line 497 of file m_flyer.c.

498 {
500  self->monsterinfo.currentmove = &flyer_move_start;
501 }

◆ flyer_sight()

void flyer_sight ( edict_t self,
edict_t other 
)

Definition at line 52 of file m_flyer.c.

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

Referenced by SP_monster_flyer().

◆ flyer_slash_left()

void flyer_slash_left ( edict_t self)

Definition at line 423 of file m_flyer.c.

424 {
425  vec3_t aim;
426 
427  VectorSet (aim, MELEE_DISTANCE, self->mins[0], 0);
428  fire_hit (self, aim, 5, 0);
429  gi.sound (self, CHAN_WEAPON, sound_slash, 1, ATTN_NORM, 0);
430 }

◆ flyer_slash_right()

void flyer_slash_right ( edict_t self)

Definition at line 432 of file m_flyer.c.

433 {
434  vec3_t aim;
435 
436  VectorSet (aim, MELEE_DISTANCE, self->maxs[0], 0);
437  fire_hit (self, aim, 5, 0);
438  gi.sound (self, CHAN_WEAPON, sound_slash, 1, ATTN_NORM, 0);
439 }

◆ flyer_stand()

void flyer_stand ( edict_t self)

Definition at line 232 of file m_flyer.c.

233 {
234  self->monsterinfo.currentmove = &flyer_move_stand;
235 }

Referenced by SP_monster_flyer().

◆ flyer_start()

void flyer_start ( edict_t self)

Definition at line 265 of file m_flyer.c.

266 {
267  self->monsterinfo.currentmove = &flyer_move_start;
268 }

◆ flyer_stop()

void flyer_stop ( edict_t self)

Definition at line 260 of file m_flyer.c.

261 {
262  self->monsterinfo.currentmove = &flyer_move_stop;
263 }

◆ flyer_walk()

void flyer_walk ( edict_t self)

Definition at line 227 of file m_flyer.c.

228 {
229  self->monsterinfo.currentmove = &flyer_move_walk;
230 }

Referenced by SP_monster_flyer().

◆ SP_monster_flyer()

void SP_monster_flyer ( edict_t self)

Definition at line 573 of file m_flyer.c.

574 {
575  if (deathmatch->value)
576  {
577  G_FreeEdict (self);
578  return;
579  }
580 
581  // fix a map bug in jail5.bsp
582  if (!Q_stricmp(level.mapname, "jail5") && (self->s.origin[2] == -104))
583  {
584  self->targetname = self->target;
585  self->target = NULL;
586  }
587 
588  sound_sight = gi.soundindex ("flyer/flysght1.wav");
589  sound_idle = gi.soundindex ("flyer/flysrch1.wav");
590  sound_pain1 = gi.soundindex ("flyer/flypain1.wav");
591  sound_pain2 = gi.soundindex ("flyer/flypain2.wav");
592  sound_slash = gi.soundindex ("flyer/flyatck2.wav");
593  sound_sproing = gi.soundindex ("flyer/flyatck1.wav");
594  sound_die = gi.soundindex ("flyer/flydeth1.wav");
595 
596  gi.soundindex ("flyer/flyatck3.wav");
597 
598  self->s.modelindex = gi.modelindex ("models/monsters/flyer/tris.md2");
599  VectorSet (self->mins, -16, -16, -24);
600  VectorSet (self->maxs, 16, 16, 32);
601  self->movetype = MOVETYPE_STEP;
602  self->solid = SOLID_BBOX;
603 
604  self->s.sound = gi.soundindex ("flyer/flyidle1.wav");
605 
606  self->health = 50;
607  self->mass = 50;
608 
609  self->pain = flyer_pain;
610  self->die = flyer_die;
611 
612  self->monsterinfo.stand = flyer_stand;
613  self->monsterinfo.walk = flyer_walk;
614  self->monsterinfo.run = flyer_run;
615  self->monsterinfo.attack = flyer_attack;
616  self->monsterinfo.melee = flyer_melee;
617  self->monsterinfo.sight = flyer_sight;
618  self->monsterinfo.idle = flyer_idle;
619 
620  gi.linkentity (self);
621 
622  self->monsterinfo.currentmove = &flyer_move_stand;
623  self->monsterinfo.scale = MODEL_SCALE;
624 
625  flymonster_start (self);
626 }

◆ 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 }

Variable Documentation

◆ flyer_frames_attack2

mframe_t flyer_frames_attack2[]
Initial value:

Definition at line 400 of file m_flyer.c.

◆ flyer_frames_bankleft

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

Definition at line 354 of file m_flyer.c.

◆ flyer_frames_bankright

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

Definition at line 342 of file m_flyer.c.

◆ flyer_frames_defense

mframe_t flyer_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}
}

Definition at line 331 of file m_flyer.c.

◆ flyer_frames_end_melee

mframe_t flyer_frames_end_melee[]
Initial value:
=
{
{ai_charge, 0, NULL},
{ai_charge, 0, NULL},
}

Definition at line 452 of file m_flyer.c.

◆ flyer_frames_loop_melee

mframe_t flyer_frames_loop_melee[]
Initial value:

Definition at line 461 of file m_flyer.c.

◆ flyer_frames_pain1

mframe_t flyer_frames_pain1[]
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 317 of file m_flyer.c.

◆ flyer_frames_pain2

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

Definition at line 308 of file m_flyer.c.

◆ flyer_frames_pain3

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

Definition at line 299 of file m_flyer.c.

◆ flyer_frames_rollleft

mframe_t flyer_frames_rollleft[]
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 285 of file m_flyer.c.

◆ flyer_frames_rollright

mframe_t flyer_frames_rollright[]
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 271 of file m_flyer.c.

◆ flyer_frames_run

mframe_t flyer_frames_run[]

Definition at line 169 of file m_flyer.c.

◆ flyer_frames_stand

mframe_t flyer_frames_stand[]

Definition at line 68 of file m_flyer.c.

◆ flyer_frames_start

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

Definition at line 237 of file m_flyer.c.

◆ flyer_frames_start_melee

mframe_t flyer_frames_start_melee[]
Initial value:

Definition at line 441 of file m_flyer.c.

◆ flyer_frames_stop

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

Definition at line 248 of file m_flyer.c.

◆ flyer_frames_walk

mframe_t flyer_frames_walk[]

Definition at line 119 of file m_flyer.c.

◆ flyer_move_attack2

Definition at line 420 of file m_flyer.c.

Referenced by flyer_attack(), and flyer_nextmove().

◆ flyer_move_bankleft

Definition at line 364 of file m_flyer.c.

◆ flyer_move_bankright

Definition at line 352 of file m_flyer.c.

◆ flyer_move_defense

Definition at line 340 of file m_flyer.c.

◆ flyer_move_end_melee

Definition at line 458 of file m_flyer.c.

Referenced by flyer_check_melee().

◆ flyer_move_loop_melee

Definition at line 477 of file m_flyer.c.

Referenced by flyer_check_melee(), and flyer_loop_melee().

◆ flyer_move_pain1

Definition at line 329 of file m_flyer.c.

Referenced by flyer_pain().

◆ flyer_move_pain2

Definition at line 315 of file m_flyer.c.

Referenced by flyer_pain().

◆ flyer_move_pain3

Definition at line 306 of file m_flyer.c.

Referenced by flyer_pain().

◆ flyer_move_rollleft

Definition at line 297 of file m_flyer.c.

◆ flyer_move_rollright

Definition at line 283 of file m_flyer.c.

◆ flyer_move_run

Definition at line 217 of file m_flyer.c.

Referenced by flyer_nextmove(), and flyer_run().

◆ flyer_move_stand

Definition at line 116 of file m_flyer.c.

Referenced by flyer_run(), flyer_stand(), and SP_monster_flyer().

◆ flyer_move_start

Definition at line 246 of file m_flyer.c.

Referenced by flyer_setstart(), and flyer_start().

◆ flyer_move_start_melee

Definition at line 450 of file m_flyer.c.

Referenced by flyer_melee(), and flyer_nextmove().

◆ flyer_move_stop

Definition at line 258 of file m_flyer.c.

Referenced by flyer_stop().

◆ flyer_move_walk

Definition at line 167 of file m_flyer.c.

Referenced by flyer_walk().

◆ nextmove

int nextmove
static

Definition at line 33 of file m_flyer.c.

Referenced by flyer_nextmove(), and flyer_setstart().

◆ sound_die

int sound_die
static

Definition at line 41 of file m_flyer.c.

Referenced by flyer_die(), and SP_monster_flyer().

◆ sound_idle

int sound_idle
static

Definition at line 36 of file m_flyer.c.

Referenced by flyer_idle(), and SP_monster_flyer().

◆ sound_pain1

int sound_pain1
static

Definition at line 37 of file m_flyer.c.

Referenced by flyer_pain(), and SP_monster_flyer().

◆ sound_pain2

int sound_pain2
static

Definition at line 38 of file m_flyer.c.

Referenced by flyer_pain(), and SP_monster_flyer().

◆ sound_sight

int sound_sight
static

Definition at line 35 of file m_flyer.c.

Referenced by flyer_sight(), and SP_monster_flyer().

◆ sound_slash

int sound_slash
static

Definition at line 39 of file m_flyer.c.

Referenced by flyer_slash_left(), flyer_slash_right(), and SP_monster_flyer().

◆ sound_sproing

int sound_sproing
static

Definition at line 40 of file m_flyer.c.

Referenced by flyer_pop_blades(), and SP_monster_flyer().

gi
game_import_t gi
Definition: g_main.c:25
flyer_sight
void flyer_sight(edict_t *self, edict_t *other)
Definition: m_flyer.c:52
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
deathmatch
cvar_t * deathmatch
Definition: g_main.c:35
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
MELEE_DISTANCE
#define MELEE_DISTANCE
Definition: g_local.h:80
VectorSubtract
#define VectorSubtract(a, b, c)
Definition: q_shared.h:156
entity_state_s::frame
int frame
Definition: q_shared.h:1178
ai_charge
void ai_charge(edict_t *self, float dist)
Definition: g_ai.c:194
SOLID_BBOX
@ SOLID_BBOX
Definition: game.h:37
sound_die
static int sound_die
Definition: m_flyer.c:41
flyer_stand
void flyer_stand(edict_t *self)
Definition: m_flyer.c:232
FRAME_attak204
#define FRAME_attak204
Definition: m_boss31.h:45
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_sproing
static int sound_sproing
Definition: m_flyer.c:40
flyer_move_pain3
mmove_t flyer_move_pain3
Definition: m_flyer.c:306
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
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:1020
FRAME_attak207
#define FRAME_attak207
Definition: m_boss31.h:48
edict_s::mins
vec3_t mins
Definition: g_local.h:984
range
GLsizei range
Definition: qgl_win.c:121
fire_hit
qboolean fire_hit(edict_t *self, vec3_t aim, int damage, int kick)
Definition: g_weapon.c:63
flyer_fireleft
void flyer_fireleft(edict_t *self)
Definition: m_flyer.c:389
ATTN_NORM
#define ATTN_NORM
Definition: q_shared.h:1019
flyer_move_stand
mmove_t flyer_move_stand
Definition: m_flyer.c:116
MOVETYPE_STEP
@ MOVETYPE_STEP
Definition: g_local.h:194
sound_pain1
static int sound_pain1
Definition: m_flyer.c:37
flyer_slash_left
void flyer_slash_left(edict_t *self)
Definition: m_flyer.c:423
flyer_pain
void flyer_pain(edict_t *self, edict_t *other, float kick, int damage)
Definition: m_flyer.c:531
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
flyer_move_pain2
mmove_t flyer_move_pain2
Definition: m_flyer.c:315
G_FreeEdict
void G_FreeEdict(edict_t *e)
Definition: g_utils.c:452
sound_idle
static int sound_idle
Definition: m_flyer.c:36
edict_s::viewheight
int viewheight
Definition: g_local.h:1061
sound_sight
static int sound_sight
Definition: m_flyer.c:35
game_import_t::soundindex
int(* soundindex)(char *name)
Definition: game.h:122
forward
static vec3_t forward
Definition: p_view.c:29
ACTION_attack1
#define ACTION_attack1
Definition: m_flyer.h:25
ACTION_run
#define ACTION_run
Definition: m_flyer.h:27
game_import_t::modelindex
int(* modelindex)(char *name)
Definition: game.h:121
flyer_move_run
mmove_t flyer_move_run
Definition: m_flyer.c:217
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
flyer_melee
void flyer_melee(edict_t *self)
Definition: m_flyer.c:513
flyer_slash_right
void flyer_slash_right(edict_t *self)
Definition: m_flyer.c:432
flyer_walk
void flyer_walk(edict_t *self)
Definition: m_flyer.c:227
monsterinfo_t::aiflags
int aiflags
Definition: g_local.h:419
FRAME_attak210
#define FRAME_attak210
Definition: m_boss31.h:51
Q_stricmp
int Q_stricmp(char *s1, char *s2)
Definition: q_shared.c:1192
flyer_move_pain1
mmove_t flyer_move_pain1
Definition: m_flyer.c:329
skill
cvar_t * skill
Definition: g_main.c:38
MASK_OPAQUE
#define MASK_OPAQUE
Definition: q_shared.h:396
ai_move
void ai_move(edict_t *self, float dist)
Definition: g_ai.c:92
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
flyer_idle
void flyer_idle(edict_t *self)
Definition: m_flyer.c:57
flyer_move_start_melee
mmove_t flyer_move_start_melee
Definition: m_flyer.c:450
VectorCopy
#define VectorCopy(a, b)
Definition: q_shared.h:158
edict_s::pain_debounce_time
float pain_debounce_time
Definition: g_local.h:1046
flyer_move_loop_melee
mmove_t flyer_move_loop_melee
Definition: m_flyer.c:477
edict_s::monsterinfo
monsterinfo_t monsterinfo
Definition: g_local.h:1108
vec3_origin
vec3_t vec3_origin
Definition: q_shared.c:24
RANGE_MELEE
#define RANGE_MELEE
Definition: g_local.h:117
CHAN_WEAPON
#define CHAN_WEAPON
Definition: q_shared.h:1008
flyer_move_start
mmove_t flyer_move_start
Definition: m_flyer.c:246
flyer_move_walk
mmove_t flyer_move_walk
Definition: m_flyer.c:167
level
GLint level
Definition: qgl_win.c:116
nextmove
static int nextmove
Definition: m_flyer.c:33
flyer_die
void flyer_die(edict_t *self, edict_t *inflictor, edict_t *attacker, int damage, vec3_t point)
Definition: m_flyer.c:564
edict_s::maxs
vec3_t maxs
Definition: g_local.h:984
flyer_pop_blades
void flyer_pop_blades(edict_t *self)
Definition: m_flyer.c:62
flyer_fireright
void flyer_fireright(edict_t *self)
Definition: m_flyer.c:394
flyer_fire
void flyer_fire(edict_t *self, int flash_number)
Definition: m_flyer.c:367
flyer_attack
void flyer_attack(edict_t *self)
Definition: m_flyer.c:489
sound_slash
static int sound_slash
Definition: m_flyer.c:39
VectorSet
#define VectorSet(v, x, y, z)
Definition: q_shared.h:161
right
GLdouble right
Definition: qgl_win.c:159
flyer_move_end_melee
mmove_t flyer_move_end_melee
Definition: m_flyer.c:458
MZ2_FLYER_BLASTER_1
#define MZ2_FLYER_BLASTER_1
Definition: q_shared.h:756
sound_pain2
static int sound_pain2
Definition: m_flyer.c:38
edict_s::enemy
edict_t * enemy
Definition: g_local.h:1070
game_import_t::linkentity
void(* linkentity)(edict_t *ent)
Definition: game.h:138
flyer_run
void flyer_run(edict_t *self)
Definition: m_flyer.c:219
ACTION_attack2
#define ACTION_attack2
Definition: m_flyer.h:26
entity_state_s::angles
vec3_t angles
Definition: q_shared.h:1174
EF_HYPERBLASTER
#define EF_HYPERBLASTER
Definition: q_shared.h:563
vec3_t
vec_t vec3_t[3]
Definition: q_shared.h:127
flyer_move_attack2
mmove_t flyer_move_attack2
Definition: m_flyer.c:420
flyer_nextmove
void flyer_nextmove(edict_t *self)
Definition: m_flyer.c:503
MZ2_FLYER_BLASTER_2
#define MZ2_FLYER_BLASTER_2
Definition: q_shared.h:757
flymonster_start
void flymonster_start(edict_t *self)
Definition: g_monster.c:715
edict_s::health
int health
Definition: g_local.h:1051
flyer_move_stop
mmove_t flyer_move_stop
Definition: m_flyer.c:258