Quake II RTX 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 470 of file m_flyer.c.

471 {
472  /* if (random() <= 0.5)
473  self->monsterinfo.currentmove = &flyer_move_attack1;
474  else */
475  self->monsterinfo.currentmove = &flyer_move_attack2;
476 }

Referenced by SP_monster_flyer().

◆ flyer_check_melee()

void flyer_check_melee ( edict_t *  self)

Definition at line 501 of file m_flyer.c.

502 {
503  if (range(self, self->enemy) == RANGE_MELEE)
504  if (random() <= 0.8)
505  self->monsterinfo.currentmove = &flyer_move_loop_melee;
506  else
507  self->monsterinfo.currentmove = &flyer_move_end_melee;
508  else
509  self->monsterinfo.currentmove = &flyer_move_end_melee;
510 }

◆ flyer_die()

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

Definition at line 540 of file m_flyer.c.

541 {
542  gi.sound(self, CHAN_VOICE, sound_die, 1, ATTN_NORM, 0);
543  BecomeExplosion1(self);
544 }

Referenced by SP_monster_flyer().

◆ flyer_fire()

void flyer_fire ( edict_t *  self,
int  flash_number 
)

Definition at line 352 of file m_flyer.c.

353 {
354  vec3_t start;
355  vec3_t forward, right;
356  vec3_t end;
357  vec3_t dir;
358  int effect;
359 
360  if ((self->s.frame == FRAME_attak204) || (self->s.frame == FRAME_attak207) || (self->s.frame == FRAME_attak210))
361  effect = EF_HYPERBLASTER;
362  else
363  effect = 0;
364  AngleVectors(self->s.angles, forward, right, NULL);
365  G_ProjectSource(self->s.origin, monster_flash_offset[flash_number], forward, right, start);
366 
367  VectorCopy(self->enemy->s.origin, end);
368  end[2] += self->enemy->viewheight;
369  VectorSubtract(end, start, dir);
370 
371  monster_fire_blaster(self, start, dir, 1, 1000, flash_number, effect);
372 }

Referenced by flyer_fireleft(), and flyer_fireright().

◆ flyer_fireleft()

void flyer_fireleft ( edict_t *  self)

Definition at line 374 of file m_flyer.c.

375 {
376  flyer_fire(self, MZ2_FLYER_BLASTER_1);
377 }

◆ flyer_fireright()

void flyer_fireright ( edict_t *  self)

Definition at line 379 of file m_flyer.c.

380 {
381  flyer_fire(self, MZ2_FLYER_BLASTER_2);
382 }

◆ flyer_idle()

void flyer_idle ( edict_t *  self)

Definition at line 55 of file m_flyer.c.

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

Referenced by SP_monster_flyer().

◆ flyer_loop_melee()

void flyer_loop_melee ( edict_t *  self)

Definition at line 460 of file m_flyer.c.

461 {
462  /* if (random() <= 0.5)
463  self->monsterinfo.currentmove = &flyer_move_attack1;
464  else */
465  self->monsterinfo.currentmove = &flyer_move_loop_melee;
466 }

◆ flyer_melee()

void flyer_melee ( edict_t *  self)

Definition at line 494 of file m_flyer.c.

495 {
496 // flyer.nextmove = ACTION_attack1;
497 // self->monsterinfo.currentmove = &flyer_move_stop;
498  self->monsterinfo.currentmove = &flyer_move_start_melee;
499 }

Referenced by SP_monster_flyer().

◆ flyer_nextmove()

void flyer_nextmove ( edict_t *  self)

Definition at line 484 of file m_flyer.c.

485 {
486  if (nextmove == ACTION_attack1)
487  self->monsterinfo.currentmove = &flyer_move_start_melee;
488  else if (nextmove == ACTION_attack2)
489  self->monsterinfo.currentmove = &flyer_move_attack2;
490  else if (nextmove == ACTION_run)
491  self->monsterinfo.currentmove = &flyer_move_run;
492 }

◆ flyer_pain()

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

Definition at line 512 of file m_flyer.c.

513 {
514  int n;
515 
516  if (self->health < (self->max_health / 2))
517  self->s.skinnum = 1;
518 
519  if (level.time < self->pain_debounce_time)
520  return;
521 
522  self->pain_debounce_time = level.time + 3;
523  if (skill->value == 3)
524  return; // no pain anims in nightmare
525 
526  n = rand() % 3;
527  if (n == 0) {
528  gi.sound(self, CHAN_VOICE, sound_pain1, 1, ATTN_NORM, 0);
529  self->monsterinfo.currentmove = &flyer_move_pain1;
530  } else if (n == 1) {
531  gi.sound(self, CHAN_VOICE, sound_pain2, 1, ATTN_NORM, 0);
532  self->monsterinfo.currentmove = &flyer_move_pain2;
533  } else {
534  gi.sound(self, CHAN_VOICE, sound_pain1, 1, ATTN_NORM, 0);
535  self->monsterinfo.currentmove = &flyer_move_pain3;
536  }
537 }

Referenced by SP_monster_flyer().

◆ flyer_pop_blades()

void flyer_pop_blades ( edict_t *  self)

Definition at line 60 of file m_flyer.c.

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

◆ flyer_run()

void flyer_run ( edict_t *  self)

Definition at line 214 of file m_flyer.c.

215 {
216  if (self->monsterinfo.aiflags & AI_STAND_GROUND)
217  self->monsterinfo.currentmove = &flyer_move_stand;
218  else
219  self->monsterinfo.currentmove = &flyer_move_run;
220 }

Referenced by SP_monster_flyer().

◆ flyer_setstart()

void flyer_setstart ( edict_t *  self)

Definition at line 478 of file m_flyer.c.

479 {
481  self->monsterinfo.currentmove = &flyer_move_start;
482 }

◆ flyer_sight()

void flyer_sight ( edict_t *  self,
edict_t *  other 
)

Definition at line 50 of file m_flyer.c.

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

Referenced by SP_monster_flyer().

◆ flyer_slash_left()

void flyer_slash_left ( edict_t *  self)

Definition at line 407 of file m_flyer.c.

408 {
409  vec3_t aim;
410 
411  VectorSet(aim, MELEE_DISTANCE, self->mins[0], 0);
412  fire_hit(self, aim, 5, 0);
413  gi.sound(self, CHAN_WEAPON, sound_slash, 1, ATTN_NORM, 0);
414 }

◆ flyer_slash_right()

void flyer_slash_right ( edict_t *  self)

Definition at line 416 of file m_flyer.c.

417 {
418  vec3_t aim;
419 
420  VectorSet(aim, MELEE_DISTANCE, self->maxs[0], 0);
421  fire_hit(self, aim, 5, 0);
422  gi.sound(self, CHAN_WEAPON, sound_slash, 1, ATTN_NORM, 0);
423 }

◆ flyer_stand()

void flyer_stand ( edict_t *  self)

Definition at line 227 of file m_flyer.c.

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

Referenced by SP_monster_flyer().

◆ flyer_start()

void flyer_start ( edict_t *  self)

Definition at line 258 of file m_flyer.c.

259 {
260  self->monsterinfo.currentmove = &flyer_move_start;
261 }

◆ flyer_stop()

void flyer_stop ( edict_t *  self)

Definition at line 253 of file m_flyer.c.

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

◆ flyer_walk()

void flyer_walk ( edict_t *  self)

Definition at line 222 of file m_flyer.c.

223 {
224  self->monsterinfo.currentmove = &flyer_move_walk;
225 }

Referenced by SP_monster_flyer().

◆ SP_monster_flyer()

void SP_monster_flyer ( edict_t *  self)

Definition at line 549 of file m_flyer.c.

550 {
551  if (deathmatch->value) {
552  G_FreeEdict(self);
553  return;
554  }
555 
556  // fix a map bug in jail5.bsp
557  if (!Q_stricmp(level.mapname, "jail5") && (self->s.origin[2] == -104)) {
558  self->targetname = self->target;
559  self->target = NULL;
560  }
561 
562  sound_sight = gi.soundindex("flyer/flysght1.wav");
563  sound_idle = gi.soundindex("flyer/flysrch1.wav");
564  sound_pain1 = gi.soundindex("flyer/flypain1.wav");
565  sound_pain2 = gi.soundindex("flyer/flypain2.wav");
566  sound_slash = gi.soundindex("flyer/flyatck2.wav");
567  sound_sproing = gi.soundindex("flyer/flyatck1.wav");
568  sound_die = gi.soundindex("flyer/flydeth1.wav");
569 
570  gi.soundindex("flyer/flyatck3.wav");
571 
572  self->s.modelindex = gi.modelindex("models/monsters/flyer/tris.md2");
573  VectorSet(self->mins, -16, -16, -24);
574  VectorSet(self->maxs, 16, 16, 32);
575  self->movetype = MOVETYPE_STEP;
576  self->solid = SOLID_BBOX;
577 
578  self->s.sound = gi.soundindex("flyer/flyidle1.wav");
579 
580  self->health = 50;
581  self->mass = 50;
582 
583  self->pain = flyer_pain;
584  self->die = flyer_die;
585 
586  self->monsterinfo.stand = flyer_stand;
587  self->monsterinfo.walk = flyer_walk;
588  self->monsterinfo.run = flyer_run;
589  self->monsterinfo.attack = flyer_attack;
590  self->monsterinfo.melee = flyer_melee;
591  self->monsterinfo.sight = flyer_sight;
592  self->monsterinfo.idle = flyer_idle;
593 
594  gi.linkentity(self);
595 
596  self->monsterinfo.currentmove = &flyer_move_stand;
597  self->monsterinfo.scale = MODEL_SCALE;
598 
599  flymonster_start(self);
600 }

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

Variable Documentation

◆ flyer_frames_attack2

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

Definition at line 385 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 340 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 329 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 319 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 },
{ ai_charge, 0, NULL }
}

Definition at line 435 of file m_flyer.c.

◆ flyer_frames_loop_melee

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

Definition at line 443 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 306 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 298 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 290 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 277 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 264 of file m_flyer.c.

◆ flyer_frames_run

mframe_t flyer_frames_run[]

Definition at line 165 of file m_flyer.c.

◆ flyer_frames_stand

mframe_t flyer_frames_stand[]

Definition at line 66 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 232 of file m_flyer.c.

◆ flyer_frames_start_melee

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

Definition at line 425 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 242 of file m_flyer.c.

◆ flyer_frames_walk

mframe_t flyer_frames_walk[]

Definition at line 116 of file m_flyer.c.

◆ flyer_move_attack2

Definition at line 404 of file m_flyer.c.

Referenced by flyer_attack(), and flyer_nextmove().

◆ flyer_move_bankleft

mmove_t flyer_move_bankleft = {FRAME_bankl01, FRAME_bankl07, flyer_frames_bankleft, NULL}

Definition at line 349 of file m_flyer.c.

◆ flyer_move_bankright

mmove_t flyer_move_bankright = {FRAME_bankr01, FRAME_bankr07, flyer_frames_bankright, NULL}

Definition at line 338 of file m_flyer.c.

◆ flyer_move_defense

Definition at line 327 of file m_flyer.c.

◆ flyer_move_end_melee

Definition at line 440 of file m_flyer.c.

Referenced by flyer_check_melee().

◆ flyer_move_loop_melee

Definition at line 458 of file m_flyer.c.

Referenced by flyer_check_melee(), and flyer_loop_melee().

◆ flyer_move_pain1

Definition at line 317 of file m_flyer.c.

Referenced by flyer_pain().

◆ flyer_move_pain2

Definition at line 304 of file m_flyer.c.

Referenced by flyer_pain().

◆ flyer_move_pain3

Definition at line 296 of file m_flyer.c.

Referenced by flyer_pain().

◆ flyer_move_rollleft

mmove_t flyer_move_rollleft = {FRAME_rollf01, FRAME_rollf09, flyer_frames_rollleft, NULL}

Definition at line 288 of file m_flyer.c.

◆ flyer_move_rollright

mmove_t flyer_move_rollright = {FRAME_rollr01, FRAME_rollr09, flyer_frames_rollright, NULL}

Definition at line 275 of file m_flyer.c.

◆ flyer_move_run

Definition at line 212 of file m_flyer.c.

Referenced by flyer_nextmove(), and flyer_run().

◆ flyer_move_stand

mmove_t flyer_move_stand = {FRAME_stand01, FRAME_stand45, flyer_frames_stand, NULL}

Definition at line 113 of file m_flyer.c.

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

◆ flyer_move_start

mmove_t flyer_move_start = {FRAME_start01, FRAME_start06, flyer_frames_start, NULL}

Definition at line 240 of file m_flyer.c.

Referenced by flyer_setstart(), and flyer_start().

◆ flyer_move_start_melee

Definition at line 433 of file m_flyer.c.

Referenced by flyer_melee(), and flyer_nextmove().

◆ flyer_move_stop

mmove_t flyer_move_stop = {FRAME_stop01, FRAME_stop07, flyer_frames_stop, NULL}

Definition at line 251 of file m_flyer.c.

Referenced by flyer_stop().

◆ flyer_move_walk

Definition at line 163 of file m_flyer.c.

Referenced by flyer_walk().

◆ nextmove

int nextmove
static

Definition at line 31 of file m_flyer.c.

Referenced by flyer_nextmove(), and flyer_setstart().

◆ sound_die

int sound_die
static

Definition at line 39 of file m_flyer.c.

Referenced by flyer_die(), and SP_monster_flyer().

◆ sound_idle

int sound_idle
static

Definition at line 34 of file m_flyer.c.

Referenced by flyer_idle(), and SP_monster_flyer().

◆ sound_pain1

int sound_pain1
static

Definition at line 35 of file m_flyer.c.

Referenced by flyer_pain(), and SP_monster_flyer().

◆ sound_pain2

int sound_pain2
static

Definition at line 36 of file m_flyer.c.

Referenced by flyer_pain(), and SP_monster_flyer().

◆ sound_sight

int sound_sight
static

Definition at line 33 of file m_flyer.c.

Referenced by flyer_sight(), and SP_monster_flyer().

◆ sound_slash

int sound_slash
static

Definition at line 37 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 38 of file m_flyer.c.

Referenced by flyer_pop_blades(), and SP_monster_flyer().

gi
game_import_t gi
Definition: g_main.c:23
flyer_sight
void flyer_sight(edict_t *self, edict_t *other)
Definition: m_flyer.c:50
deathmatch
cvar_t * deathmatch
Definition: g_main.c:33
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
MELEE_DISTANCE
#define MELEE_DISTANCE
Definition: g_local.h:82
ai_charge
void ai_charge(edict_t *self, float dist)
Definition: g_ai.c:175
sound_die
static int sound_die
Definition: m_flyer.c:39
flyer_stand
void flyer_stand(edict_t *self)
Definition: m_flyer.c:227
FRAME_attak204
#define FRAME_attak204
Definition: m_boss31.h:43
AI_STAND_GROUND
#define AI_STAND_GROUND
Definition: g_local.h:126
sound_sproing
static int sound_sproing
Definition: m_flyer.c:38
flyer_move_pain3
mmove_t flyer_move_pain3
Definition: m_flyer.c:296
MODEL_SCALE
#define MODEL_SCALE
Definition: m_actor.h:504
BecomeExplosion1
void BecomeExplosion1(edict_t *self)
Definition: g_misc.c:297
FRAME_attak207
#define FRAME_attak207
Definition: m_boss31.h:46
fire_hit
qboolean fire_hit(edict_t *self, vec3_t aim, int damage, int kick)
Definition: g_weapon.c:59
flyer_fireleft
void flyer_fireleft(edict_t *self)
Definition: m_flyer.c:374
other
@ other
Definition: ogg.c:63
flyer_move_stand
mmove_t flyer_move_stand
Definition: m_flyer.c:113
MOVETYPE_STEP
@ MOVETYPE_STEP
Definition: g_local.h:192
sound_pain1
static int sound_pain1
Definition: m_flyer.c:35
flyer_slash_left
void flyer_slash_left(edict_t *self)
Definition: m_flyer.c:407
flyer_pain
void flyer_pain(edict_t *self, edict_t *other, float kick, int damage)
Definition: m_flyer.c:512
vec3_origin
vec3_t vec3_origin
Definition: shared.c:21
flyer_move_pain2
mmove_t flyer_move_pain2
Definition: m_flyer.c:304
G_FreeEdict
void G_FreeEdict(edict_t *e)
Definition: g_utils.c:421
sound_idle
static int sound_idle
Definition: m_flyer.c:34
sound_sight
static int sound_sight
Definition: m_flyer.c:33
forward
static vec3_t forward
Definition: p_view.c:27
ACTION_attack1
#define ACTION_attack1
Definition: m_flyer.h:23
ACTION_run
#define ACTION_run
Definition: m_flyer.h:25
flyer_move_run
mmove_t flyer_move_run
Definition: m_flyer.c:212
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
flyer_melee
void flyer_melee(edict_t *self)
Definition: m_flyer.c:494
flyer_slash_right
void flyer_slash_right(edict_t *self)
Definition: m_flyer.c:416
flyer_walk
void flyer_walk(edict_t *self)
Definition: m_flyer.c:222
FRAME_attak210
#define FRAME_attak210
Definition: m_boss31.h:49
flyer_move_pain1
mmove_t flyer_move_pain1
Definition: m_flyer.c:317
skill
cvar_t * skill
Definition: g_main.c:36
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
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
flyer_idle
void flyer_idle(edict_t *self)
Definition: m_flyer.c:55
flyer_move_start_melee
mmove_t flyer_move_start_melee
Definition: m_flyer.c:433
flyer_move_loop_melee
mmove_t flyer_move_loop_melee
Definition: m_flyer.c:458
RANGE_MELEE
#define RANGE_MELEE
Definition: g_local.h:116
flyer_move_start
mmove_t flyer_move_start
Definition: m_flyer.c:240
flyer_move_walk
mmove_t flyer_move_walk
Definition: m_flyer.c:163
nextmove
static int nextmove
Definition: m_flyer.c:31
right
static vec3_t right
Definition: p_view.c:27
flyer_die
void flyer_die(edict_t *self, edict_t *inflictor, edict_t *attacker, int damage, vec3_t point)
Definition: m_flyer.c:540
level
level_locals_t level
Definition: g_main.c:22
flyer_pop_blades
void flyer_pop_blades(edict_t *self)
Definition: m_flyer.c:60
flyer_fireright
void flyer_fireright(edict_t *self)
Definition: m_flyer.c:379
flyer_fire
void flyer_fire(edict_t *self, int flash_number)
Definition: m_flyer.c:352
flyer_attack
void flyer_attack(edict_t *self)
Definition: m_flyer.c:470
monster_flash_offset
const vec3_t monster_flash_offset[256]
Definition: m_flash.c:25
range
int range(edict_t *self, edict_t *other)
Definition: g_ai.c:245
sound_slash
static int sound_slash
Definition: m_flyer.c:37
flyer_move_end_melee
mmove_t flyer_move_end_melee
Definition: m_flyer.c:440
level_locals_t::mapname
char mapname[MAX_QPATH]
Definition: g_local.h:302
sound_pain2
static int sound_pain2
Definition: m_flyer.c:36
flyer_run
void flyer_run(edict_t *self)
Definition: m_flyer.c:214
ACTION_attack2
#define ACTION_attack2
Definition: m_flyer.h:24
flyer_move_attack2
mmove_t flyer_move_attack2
Definition: m_flyer.c:404
flyer_nextmove
void flyer_nextmove(edict_t *self)
Definition: m_flyer.c:484
flymonster_start
void flymonster_start(edict_t *self)
Definition: g_monster.c:653
flyer_move_stop
mmove_t flyer_move_stop
Definition: m_flyer.c:251