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

Go to the source code of this file.

Functions

qboolean visible (edict_t *self, edict_t *other)
 
void chick_stand (edict_t *self)
 
void chick_run (edict_t *self)
 
void chick_reslash (edict_t *self)
 
void chick_rerocket (edict_t *self)
 
void chick_attack1 (edict_t *self)
 
void ChickMoan (edict_t *self)
 
void chick_fidget (edict_t *self)
 
void chick_walk (edict_t *self)
 
void chick_pain (edict_t *self, edict_t *other, float kick, int damage)
 
void chick_dead (edict_t *self)
 
void chick_die (edict_t *self, edict_t *inflictor, edict_t *attacker, int damage, vec3_t point)
 
void chick_duck_down (edict_t *self)
 
void chick_duck_hold (edict_t *self)
 
void chick_duck_up (edict_t *self)
 
void chick_dodge (edict_t *self, edict_t *attacker, float eta)
 
void ChickSlash (edict_t *self)
 
void ChickRocket (edict_t *self)
 
void Chick_PreAttack1 (edict_t *self)
 
void ChickReload (edict_t *self)
 
void chick_slash (edict_t *self)
 
void chick_melee (edict_t *self)
 
void chick_attack (edict_t *self)
 
void chick_sight (edict_t *self, edict_t *other)
 
void SP_monster_chick (edict_t *self)
 

Variables

static int sound_missile_prelaunch
 
static int sound_missile_launch
 
static int sound_melee_swing
 
static int sound_melee_hit
 
static int sound_missile_reload
 
static int sound_death1
 
static int sound_death2
 
static int sound_fall_down
 
static int sound_idle1
 
static int sound_idle2
 
static int sound_pain1
 
static int sound_pain2
 
static int sound_pain3
 
static int sound_sight
 
static int sound_search
 
mframe_t chick_frames_fidget []
 
mmove_t chick_move_fidget = {FRAME_stand201, FRAME_stand230, chick_frames_fidget, chick_stand}
 
mframe_t chick_frames_stand []
 
mmove_t chick_move_stand = {FRAME_stand101, FRAME_stand130, chick_frames_stand, NULL}
 
mframe_t chick_frames_start_run []
 
mmove_t chick_move_start_run = {FRAME_walk01, FRAME_walk10, chick_frames_start_run, chick_run}
 
mframe_t chick_frames_run []
 
mmove_t chick_move_run = {FRAME_walk11, FRAME_walk20, chick_frames_run, NULL}
 
mframe_t chick_frames_walk []
 
mmove_t chick_move_walk = {FRAME_walk11, FRAME_walk20, chick_frames_walk, NULL}
 
mframe_t chick_frames_pain1 []
 
mmove_t chick_move_pain1 = {FRAME_pain101, FRAME_pain105, chick_frames_pain1, chick_run}
 
mframe_t chick_frames_pain2 []
 
mmove_t chick_move_pain2 = {FRAME_pain201, FRAME_pain205, chick_frames_pain2, chick_run}
 
mframe_t chick_frames_pain3 []
 
mmove_t chick_move_pain3 = {FRAME_pain301, FRAME_pain321, chick_frames_pain3, chick_run}
 
mframe_t chick_frames_death2 []
 
mmove_t chick_move_death2 = {FRAME_death201, FRAME_death223, chick_frames_death2, chick_dead}
 
mframe_t chick_frames_death1 []
 
mmove_t chick_move_death1 = {FRAME_death101, FRAME_death112, chick_frames_death1, chick_dead}
 
mframe_t chick_frames_duck []
 
mmove_t chick_move_duck = {FRAME_duck01, FRAME_duck07, chick_frames_duck, chick_run}
 
mframe_t chick_frames_start_attack1 []
 
mmove_t chick_move_start_attack1 = {FRAME_attak101, FRAME_attak113, chick_frames_start_attack1, NULL}
 
mframe_t chick_frames_attack1 []
 
mmove_t chick_move_attack1 = {FRAME_attak114, FRAME_attak127, chick_frames_attack1, NULL}
 
mframe_t chick_frames_end_attack1 []
 
mmove_t chick_move_end_attack1 = {FRAME_attak128, FRAME_attak132, chick_frames_end_attack1, chick_run}
 
mframe_t chick_frames_slash []
 
mmove_t chick_move_slash = {FRAME_attak204, FRAME_attak212, chick_frames_slash, NULL}
 
mframe_t chick_frames_end_slash []
 
mmove_t chick_move_end_slash = {FRAME_attak213, FRAME_attak216, chick_frames_end_slash, chick_run}
 
mframe_t chick_frames_start_slash []
 
mmove_t chick_move_start_slash = {FRAME_attak201, FRAME_attak203, chick_frames_start_slash, chick_slash}
 

Function Documentation

◆ chick_attack()

void chick_attack ( edict_t *  self)

Definition at line 582 of file m_chick.c.

583 {
584  self->monsterinfo.currentmove = &chick_move_start_attack1;
585 }

Referenced by SP_monster_chick().

◆ chick_attack1()

void chick_attack1 ( edict_t *  self)

Definition at line 518 of file m_chick.c.

519 {
520  self->monsterinfo.currentmove = &chick_move_attack1;
521 }

◆ chick_dead()

void chick_dead ( edict_t *  self)

Definition at line 283 of file m_chick.c.

284 {
285  VectorSet(self->mins, -16, -16, 0);
286  VectorSet(self->maxs, 16, 16, 16);
287  self->movetype = MOVETYPE_TOSS;
288  self->svflags |= SVF_DEADMONSTER;
289  self->nextthink = 0;
290  gi.linkentity(self);
291 }

◆ chick_die()

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

Definition at line 337 of file m_chick.c.

338 {
339  int n;
340 
341 // check for gib
342  if (self->health <= self->gib_health) {
343  gi.sound(self, CHAN_VOICE, gi.soundindex("misc/udeath.wav"), 1, ATTN_NORM, 0);
344  for (n = 0; n < 2; n++)
345  ThrowGib(self, "models/objects/gibs/bone/tris.md2", damage, GIB_ORGANIC);
346  for (n = 0; n < 4; n++)
347  ThrowGib(self, "models/objects/gibs/sm_meat/tris.md2", damage, GIB_ORGANIC);
348  ThrowHead(self, "models/objects/gibs/head2/tris.md2", damage, GIB_ORGANIC);
349  self->deadflag = DEAD_DEAD;
350  return;
351  }
352 
353  if (self->deadflag == DEAD_DEAD)
354  return;
355 
356 // regular death
357  self->deadflag = DEAD_DEAD;
358  self->takedamage = DAMAGE_YES;
359 
360  n = rand() % 2;
361  if (n == 0) {
362  self->monsterinfo.currentmove = &chick_move_death1;
363  gi.sound(self, CHAN_VOICE, sound_death1, 1, ATTN_NORM, 0);
364  } else {
365  self->monsterinfo.currentmove = &chick_move_death2;
366  gi.sound(self, CHAN_VOICE, sound_death2, 1, ATTN_NORM, 0);
367  }
368 }

Referenced by SP_monster_chick().

◆ chick_dodge()

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

Definition at line 409 of file m_chick.c.

410 {
411  if (random() > 0.25)
412  return;
413 
414  if (!self->enemy)
415  self->enemy = attacker;
416 
417  self->monsterinfo.currentmove = &chick_move_duck;
418 }

Referenced by SP_monster_chick().

◆ chick_duck_down()

void chick_duck_down ( edict_t *  self)

Definition at line 371 of file m_chick.c.

372 {
373  if (self->monsterinfo.aiflags & AI_DUCKED)
374  return;
375  self->monsterinfo.aiflags |= AI_DUCKED;
376  self->maxs[2] -= 32;
377  self->takedamage = DAMAGE_YES;
378  self->monsterinfo.pausetime = level.time + 1;
379  gi.linkentity(self);
380 }

◆ chick_duck_hold()

void chick_duck_hold ( edict_t *  self)

Definition at line 382 of file m_chick.c.

383 {
384  if (level.time >= self->monsterinfo.pausetime)
385  self->monsterinfo.aiflags &= ~AI_HOLD_FRAME;
386  else
387  self->monsterinfo.aiflags |= AI_HOLD_FRAME;
388 }

◆ chick_duck_up()

void chick_duck_up ( edict_t *  self)

Definition at line 390 of file m_chick.c.

391 {
392  self->monsterinfo.aiflags &= ~AI_DUCKED;
393  self->maxs[2] += 32;
394  self->takedamage = DAMAGE_AIM;
395  gi.linkentity(self);
396 }

◆ chick_fidget()

void chick_fidget ( edict_t *  self)

Definition at line 96 of file m_chick.c.

97 {
98  if (self->monsterinfo.aiflags & AI_STAND_GROUND)
99  return;
100  if (random() <= 0.3)
101  self->monsterinfo.currentmove = &chick_move_fidget;
102 }

◆ chick_melee()

void chick_melee ( edict_t *  self)

Definition at line 576 of file m_chick.c.

577 {
578  self->monsterinfo.currentmove = &chick_move_start_slash;
579 }

Referenced by SP_monster_chick().

◆ chick_pain()

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

Definition at line 252 of file m_chick.c.

253 {
254  float r;
255 
256  if (self->health < (self->max_health / 2))
257  self->s.skinnum = 1;
258 
259  if (level.time < self->pain_debounce_time)
260  return;
261 
262  self->pain_debounce_time = level.time + 3;
263 
264  r = random();
265  if (r < 0.33)
266  gi.sound(self, CHAN_VOICE, sound_pain1, 1, ATTN_NORM, 0);
267  else if (r < 0.66)
268  gi.sound(self, CHAN_VOICE, sound_pain2, 1, ATTN_NORM, 0);
269  else
270  gi.sound(self, CHAN_VOICE, sound_pain3, 1, ATTN_NORM, 0);
271 
272  if (skill->value == 3)
273  return; // no pain anims in nightmare
274 
275  if (damage <= 10)
276  self->monsterinfo.currentmove = &chick_move_pain1;
277  else if (damage <= 25)
278  self->monsterinfo.currentmove = &chick_move_pain2;
279  else
280  self->monsterinfo.currentmove = &chick_move_pain3;
281 }

Referenced by SP_monster_chick().

◆ Chick_PreAttack1()

void Chick_PreAttack1 ( edict_t *  self)

Definition at line 448 of file m_chick.c.

449 {
450  gi.sound(self, CHAN_VOICE, sound_missile_prelaunch, 1, ATTN_NORM, 0);
451 }

◆ chick_rerocket()

void chick_rerocket ( edict_t *  self)

Definition at line 505 of file m_chick.c.

506 {
507  if (self->enemy->health > 0) {
508  if (range(self, self->enemy) > RANGE_MELEE)
509  if (visible(self, self->enemy))
510  if (random() <= 0.6) {
511  self->monsterinfo.currentmove = &chick_move_attack1;
512  return;
513  }
514  }
515  self->monsterinfo.currentmove = &chick_move_end_attack1;
516 }

◆ chick_reslash()

void chick_reslash ( edict_t *  self)

Definition at line 545 of file m_chick.c.

546 {
547  if (self->enemy->health > 0) {
548  if (range(self, self->enemy) == RANGE_MELEE) {
549  if (random() <= 0.9) {
550  self->monsterinfo.currentmove = &chick_move_slash;
551  return;
552  } else {
553  self->monsterinfo.currentmove = &chick_move_end_slash;
554  return;
555  }
556  }
557  }
558  self->monsterinfo.currentmove = &chick_move_end_slash;
559 }

◆ chick_run()

void chick_run ( edict_t *  self)

Definition at line 194 of file m_chick.c.

195 {
196  if (self->monsterinfo.aiflags & AI_STAND_GROUND) {
197  self->monsterinfo.currentmove = &chick_move_stand;
198  return;
199  }
200 
201  if (self->monsterinfo.currentmove == &chick_move_walk ||
202  self->monsterinfo.currentmove == &chick_move_start_run) {
203  self->monsterinfo.currentmove = &chick_move_run;
204  } else {
205  self->monsterinfo.currentmove = &chick_move_start_run;
206  }
207 }

Referenced by SP_monster_chick().

◆ chick_sight()

void chick_sight ( edict_t *  self,
edict_t *  other 
)

Definition at line 587 of file m_chick.c.

588 {
589  gi.sound(self, CHAN_VOICE, sound_sight, 1, ATTN_NORM, 0);
590 }

Referenced by SP_monster_chick().

◆ chick_slash()

void chick_slash ( edict_t *  self)

Definition at line 561 of file m_chick.c.

562 {
563  self->monsterinfo.currentmove = &chick_move_slash;
564 }

◆ chick_stand()

void chick_stand ( edict_t *  self)

Definition at line 139 of file m_chick.c.

140 {
141  self->monsterinfo.currentmove = &chick_move_stand;
142 }

Referenced by SP_monster_chick().

◆ chick_walk()

void chick_walk ( edict_t *  self)

Definition at line 189 of file m_chick.c.

190 {
191  self->monsterinfo.currentmove = &chick_move_walk;
192 }

Referenced by SP_monster_chick().

◆ ChickMoan()

void ChickMoan ( edict_t *  self)

Definition at line 54 of file m_chick.c.

55 {
56  if (random() < 0.5)
57  gi.sound(self, CHAN_VOICE, sound_idle1, 1, ATTN_IDLE, 0);
58  else
59  gi.sound(self, CHAN_VOICE, sound_idle2, 1, ATTN_IDLE, 0);
60 }

◆ ChickReload()

void ChickReload ( edict_t *  self)

Definition at line 453 of file m_chick.c.

454 {
455  gi.sound(self, CHAN_VOICE, sound_missile_reload, 1, ATTN_NORM, 0);
456 }

◆ ChickRocket()

void ChickRocket ( edict_t *  self)

Definition at line 430 of file m_chick.c.

431 {
432  vec3_t forward, right;
433  vec3_t start;
434  vec3_t dir;
435  vec3_t vec;
436 
437  AngleVectors(self->s.angles, forward, right, NULL);
438  G_ProjectSource(self->s.origin, monster_flash_offset[MZ2_CHICK_ROCKET_1], forward, right, start);
439 
440  VectorCopy(self->enemy->s.origin, vec);
441  vec[2] += self->enemy->viewheight;
442  VectorSubtract(vec, start, dir);
443  VectorNormalize(dir);
444 
445  monster_fire_rocket(self, start, dir, 50, 500, MZ2_CHICK_ROCKET_1);
446 }

◆ ChickSlash()

void ChickSlash ( edict_t *  self)

Definition at line 420 of file m_chick.c.

421 {
422  vec3_t aim;
423 
424  VectorSet(aim, MELEE_DISTANCE, self->mins[0], 10);
425  gi.sound(self, CHAN_WEAPON, sound_melee_swing, 1, ATTN_NORM, 0);
426  fire_hit(self, aim, (10 + (rand() % 6)), 100);
427 }

◆ SP_monster_chick()

void SP_monster_chick ( edict_t *  self)

Definition at line 594 of file m_chick.c.

595 {
596  if (deathmatch->value) {
597  G_FreeEdict(self);
598  return;
599  }
600 
601  sound_missile_prelaunch = gi.soundindex("chick/chkatck1.wav");
602  sound_missile_launch = gi.soundindex("chick/chkatck2.wav");
603  sound_melee_swing = gi.soundindex("chick/chkatck3.wav");
604  sound_melee_hit = gi.soundindex("chick/chkatck4.wav");
605  sound_missile_reload = gi.soundindex("chick/chkatck5.wav");
606  sound_death1 = gi.soundindex("chick/chkdeth1.wav");
607  sound_death2 = gi.soundindex("chick/chkdeth2.wav");
608  sound_fall_down = gi.soundindex("chick/chkfall1.wav");
609  sound_idle1 = gi.soundindex("chick/chkidle1.wav");
610  sound_idle2 = gi.soundindex("chick/chkidle2.wav");
611  sound_pain1 = gi.soundindex("chick/chkpain1.wav");
612  sound_pain2 = gi.soundindex("chick/chkpain2.wav");
613  sound_pain3 = gi.soundindex("chick/chkpain3.wav");
614  sound_sight = gi.soundindex("chick/chksght1.wav");
615  sound_search = gi.soundindex("chick/chksrch1.wav");
616 
617  self->movetype = MOVETYPE_STEP;
618  self->solid = SOLID_BBOX;
619  self->s.modelindex = gi.modelindex("models/monsters/bitch/tris.md2");
620  VectorSet(self->mins, -16, -16, 0);
621  VectorSet(self->maxs, 16, 16, 56);
622 
623  self->health = 175;
624  self->gib_health = -70;
625  self->mass = 200;
626 
627  self->pain = chick_pain;
628  self->die = chick_die;
629 
630  self->monsterinfo.stand = chick_stand;
631  self->monsterinfo.walk = chick_walk;
632  self->monsterinfo.run = chick_run;
633  self->monsterinfo.dodge = chick_dodge;
634  self->monsterinfo.attack = chick_attack;
635  self->monsterinfo.melee = chick_melee;
636  self->monsterinfo.sight = chick_sight;
637 
638  gi.linkentity(self);
639 
640  self->monsterinfo.currentmove = &chick_move_stand;
641  self->monsterinfo.scale = MODEL_SCALE;
642 
643  walkmonster_start(self);
644 }

◆ 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 chick_rerocket().

Variable Documentation

◆ chick_frames_attack1

mframe_t chick_frames_attack1[]
Initial value:
= {
{ ai_charge, -6, NULL },
{ ai_charge, -5, NULL },
{ ai_charge, -2, NULL },
{ ai_charge, -7, NULL },
{ ai_charge, 0, NULL },
{ ai_charge, 1, NULL },
{ ai_charge, 4, NULL },
{ ai_charge, 5, NULL },
{ ai_charge, 6, NULL },
{ ai_charge, 6, NULL },
{ ai_charge, 4, NULL },
}

Definition at line 477 of file m_chick.c.

◆ chick_frames_death1

mframe_t chick_frames_death1[]
Initial value:
= {
{ ai_move, 0, NULL },
{ ai_move, 0, NULL },
{ ai_move, -7, NULL },
{ ai_move, 4, NULL },
{ ai_move, 11, 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 320 of file m_chick.c.

◆ chick_frames_death2

mframe_t chick_frames_death2[]
Initial value:
= {
{ ai_move, -6, NULL },
{ ai_move, 0, NULL },
{ ai_move, -1, NULL },
{ ai_move, -5, NULL },
{ ai_move, 0, NULL },
{ ai_move, -1, NULL },
{ ai_move, -2, NULL },
{ ai_move, 1, NULL },
{ ai_move, 10, NULL },
{ ai_move, 2, NULL },
{ ai_move, 3, NULL },
{ ai_move, 1, NULL },
{ ai_move, 2, NULL },
{ ai_move, 0, NULL },
{ ai_move, 3, NULL },
{ ai_move, 3, NULL },
{ ai_move, 1, NULL },
{ ai_move, -3, NULL },
{ ai_move, -5, NULL },
{ ai_move, 4, NULL },
{ ai_move, 15, NULL },
{ ai_move, 14, NULL },
{ ai_move, 1, NULL }
}

Definition at line 293 of file m_chick.c.

◆ chick_frames_duck

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

Definition at line 398 of file m_chick.c.

◆ chick_frames_end_attack1

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

Definition at line 496 of file m_chick.c.

◆ chick_frames_end_slash

mframe_t chick_frames_end_slash[]
Initial value:
= {
{ ai_charge, -6, NULL },
{ ai_charge, -1, NULL },
{ ai_charge, -6, NULL },
{ ai_charge, 0, NULL }
}

Definition at line 536 of file m_chick.c.

◆ chick_frames_fidget

mframe_t chick_frames_fidget[]

Definition at line 62 of file m_chick.c.

◆ chick_frames_pain1

mframe_t chick_frames_pain1[]
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 209 of file m_chick.c.

◆ chick_frames_pain2

mframe_t chick_frames_pain2[]
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 218 of file m_chick.c.

◆ chick_frames_pain3

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

Definition at line 227 of file m_chick.c.

◆ chick_frames_run

mframe_t chick_frames_run[]
Initial value:
= {
{ ai_run, 6, NULL },
{ ai_run, 8, NULL },
{ ai_run, 13, NULL },
{ ai_run, 5, NULL },
{ ai_run, 7, NULL },
{ ai_run, 4, NULL },
{ ai_run, 11, NULL },
{ ai_run, 5, NULL },
{ ai_run, 9, NULL },
{ ai_run, 7, NULL }
}

Definition at line 158 of file m_chick.c.

◆ chick_frames_slash

mframe_t chick_frames_slash[]
Initial value:
= {
{ ai_charge, 1, NULL },
{ ai_charge, -7, NULL },
{ ai_charge, 1, NULL },
{ ai_charge, -1, NULL },
{ ai_charge, 1, NULL },
{ ai_charge, 0, NULL },
{ ai_charge, 1, NULL },
}

Definition at line 523 of file m_chick.c.

◆ chick_frames_stand

mframe_t chick_frames_stand[]

Definition at line 104 of file m_chick.c.

◆ chick_frames_start_attack1

mframe_t chick_frames_start_attack1[]
Initial value:
= {
{ ai_charge, 0, NULL },
{ ai_charge, 0, NULL },
{ ai_charge, 4, NULL },
{ ai_charge, 0, NULL },
{ ai_charge, -3, NULL },
{ ai_charge, 3, NULL },
{ ai_charge, 5, NULL },
{ ai_charge, 7, NULL },
{ ai_charge, 0, NULL },
{ ai_charge, 0, NULL },
{ ai_charge, 0, NULL },
}

Definition at line 459 of file m_chick.c.

◆ chick_frames_start_run

mframe_t chick_frames_start_run[]
Initial value:
= {
{ ai_run, 1, NULL },
{ ai_run, 0, NULL },
{ ai_run, 0, NULL },
{ ai_run, -1, NULL },
{ ai_run, -1, NULL },
{ ai_run, 0, NULL },
{ ai_run, 1, NULL },
{ ai_run, 3, NULL },
{ ai_run, 6, NULL },
{ ai_run, 3, NULL }
}

Definition at line 144 of file m_chick.c.

◆ chick_frames_start_slash

mframe_t chick_frames_start_slash[]
Initial value:
= {
{ ai_charge, 1, NULL },
{ ai_charge, 8, NULL },
{ ai_charge, 3, NULL }
}

Definition at line 567 of file m_chick.c.

◆ chick_frames_walk

mframe_t chick_frames_walk[]
Initial value:
= {
{ ai_walk, 6, NULL },
{ ai_walk, 8, NULL },
{ ai_walk, 13, NULL },
{ ai_walk, 5, NULL },
{ ai_walk, 7, NULL },
{ ai_walk, 4, NULL },
{ ai_walk, 11, NULL },
{ ai_walk, 5, NULL },
{ ai_walk, 9, NULL },
{ ai_walk, 7, NULL }
}

Definition at line 174 of file m_chick.c.

◆ chick_move_attack1

Definition at line 494 of file m_chick.c.

Referenced by chick_attack1(), and chick_rerocket().

◆ chick_move_death1

Definition at line 335 of file m_chick.c.

Referenced by chick_die().

◆ chick_move_death2

Definition at line 318 of file m_chick.c.

Referenced by chick_die().

◆ chick_move_duck

Definition at line 407 of file m_chick.c.

Referenced by chick_dodge().

◆ chick_move_end_attack1

Definition at line 503 of file m_chick.c.

Referenced by chick_rerocket().

◆ chick_move_end_slash

Definition at line 542 of file m_chick.c.

Referenced by chick_reslash().

◆ chick_move_fidget

Definition at line 94 of file m_chick.c.

Referenced by chick_fidget().

◆ chick_move_pain1

Definition at line 216 of file m_chick.c.

Referenced by chick_pain().

◆ chick_move_pain2

Definition at line 225 of file m_chick.c.

Referenced by chick_pain().

◆ chick_move_pain3

Definition at line 250 of file m_chick.c.

Referenced by chick_pain().

◆ chick_move_run

mmove_t chick_move_run = {FRAME_walk11, FRAME_walk20, chick_frames_run, NULL}

Definition at line 172 of file m_chick.c.

Referenced by chick_run().

◆ chick_move_slash

Definition at line 534 of file m_chick.c.

Referenced by chick_reslash(), and chick_slash().

◆ chick_move_stand

Definition at line 137 of file m_chick.c.

Referenced by chick_run(), chick_stand(), and SP_monster_chick().

◆ chick_move_start_attack1

mmove_t chick_move_start_attack1 = {FRAME_attak101, FRAME_attak113, chick_frames_start_attack1, NULL}

Definition at line 474 of file m_chick.c.

Referenced by chick_attack().

◆ chick_move_start_run

Definition at line 156 of file m_chick.c.

Referenced by chick_run().

◆ chick_move_start_slash

Definition at line 572 of file m_chick.c.

Referenced by chick_melee().

◆ chick_move_walk

mmove_t chick_move_walk = {FRAME_walk11, FRAME_walk20, chick_frames_walk, NULL}

Definition at line 187 of file m_chick.c.

Referenced by chick_run(), and chick_walk().

◆ sound_death1

int sound_death1
static

Definition at line 42 of file m_chick.c.

Referenced by chick_die(), and SP_monster_chick().

◆ sound_death2

int sound_death2
static

Definition at line 43 of file m_chick.c.

Referenced by chick_die(), and SP_monster_chick().

◆ sound_fall_down

int sound_fall_down
static

Definition at line 44 of file m_chick.c.

Referenced by SP_monster_chick().

◆ sound_idle1

int sound_idle1
static

Definition at line 45 of file m_chick.c.

Referenced by ChickMoan(), and SP_monster_chick().

◆ sound_idle2

int sound_idle2
static

Definition at line 46 of file m_chick.c.

Referenced by ChickMoan(), and SP_monster_chick().

◆ sound_melee_hit

int sound_melee_hit
static

Definition at line 40 of file m_chick.c.

Referenced by SP_monster_chick().

◆ sound_melee_swing

int sound_melee_swing
static

Definition at line 39 of file m_chick.c.

Referenced by ChickSlash(), and SP_monster_chick().

◆ sound_missile_launch

int sound_missile_launch
static

Definition at line 38 of file m_chick.c.

Referenced by SP_monster_chick().

◆ sound_missile_prelaunch

int sound_missile_prelaunch
static

Definition at line 37 of file m_chick.c.

Referenced by Chick_PreAttack1(), and SP_monster_chick().

◆ sound_missile_reload

int sound_missile_reload
static

Definition at line 41 of file m_chick.c.

Referenced by ChickReload(), and SP_monster_chick().

◆ sound_pain1

int sound_pain1
static

Definition at line 47 of file m_chick.c.

Referenced by chick_pain(), and SP_monster_chick().

◆ sound_pain2

int sound_pain2
static

Definition at line 48 of file m_chick.c.

Referenced by chick_pain(), and SP_monster_chick().

◆ sound_pain3

int sound_pain3
static

Definition at line 49 of file m_chick.c.

Referenced by chick_pain(), and SP_monster_chick().

◆ sound_search

int sound_search
static

Definition at line 51 of file m_chick.c.

Referenced by SP_monster_chick().

◆ sound_sight

int sound_sight
static

Definition at line 50 of file m_chick.c.

Referenced by chick_sight(), and SP_monster_chick().

gi
game_import_t gi
Definition: g_main.c:23
chick_sight
void chick_sight(edict_t *self, edict_t *other)
Definition: m_chick.c:587
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
DEAD_DEAD
#define DEAD_DEAD
Definition: g_local.h:112
visible
qboolean visible(edict_t *self, edict_t *other)
Definition: g_ai.c:268
sound_missile_reload
static int sound_missile_reload
Definition: m_chick.c:41
ThrowGib
void ThrowGib(edict_t *self, char *gibname, int damage, int type)
Definition: g_misc.c:130
MELEE_DISTANCE
#define MELEE_DISTANCE
Definition: g_local.h:82
ai_charge
void ai_charge(edict_t *self, float dist)
Definition: g_ai.c:175
chick_reslash
void chick_reslash(edict_t *self)
Definition: m_chick.c:545
sound_idle1
static int sound_idle1
Definition: m_chick.c:45
chick_move_death2
mmove_t chick_move_death2
Definition: m_chick.c:318
ChickRocket
void ChickRocket(edict_t *self)
Definition: m_chick.c:430
chick_stand
void chick_stand(edict_t *self)
Definition: m_chick.c:139
AI_STAND_GROUND
#define AI_STAND_GROUND
Definition: g_local.h:126
sound_pain3
static int sound_pain3
Definition: m_chick.c:49
chick_move_start_slash
mmove_t chick_move_start_slash
Definition: m_chick.c:572
sound_missile_prelaunch
static int sound_missile_prelaunch
Definition: m_chick.c:37
MODEL_SCALE
#define MODEL_SCALE
Definition: m_actor.h:504
DAMAGE_YES
@ DAMAGE_YES
Definition: g_local.h:88
fire_hit
qboolean fire_hit(edict_t *self, vec3_t aim, int damage, int kick)
Definition: g_weapon.c:59
other
@ other
Definition: ogg.c:63
sound_search
static int sound_search
Definition: m_chick.c:51
chick_rerocket
void chick_rerocket(edict_t *self)
Definition: m_chick.c:505
walkmonster_start
void walkmonster_start(edict_t *self)
Definition: g_monster.c:630
MOVETYPE_STEP
@ MOVETYPE_STEP
Definition: g_local.h:192
chick_duck_down
void chick_duck_down(edict_t *self)
Definition: m_chick.c:371
vec3_origin
vec3_t vec3_origin
Definition: shared.c:21
ChickSlash
void ChickSlash(edict_t *self)
Definition: m_chick.c:420
chick_move_pain1
mmove_t chick_move_pain1
Definition: m_chick.c:216
sound_death1
static int sound_death1
Definition: m_chick.c:42
chick_move_attack1
mmove_t chick_move_attack1
Definition: m_chick.c:494
G_FreeEdict
void G_FreeEdict(edict_t *e)
Definition: g_utils.c:421
chick_move_start_attack1
mmove_t chick_move_start_attack1
Definition: m_chick.c:474
chick_move_start_run
mmove_t chick_move_start_run
Definition: m_chick.c:156
sound_missile_launch
static int sound_missile_launch
Definition: m_chick.c:38
sound_idle2
static int sound_idle2
Definition: m_chick.c:46
chick_move_death1
mmove_t chick_move_death1
Definition: m_chick.c:335
forward
static vec3_t forward
Definition: p_view.c:27
chick_pain
void chick_pain(edict_t *self, edict_t *other, float kick, int damage)
Definition: m_chick.c:252
chick_move_fidget
mmove_t chick_move_fidget
Definition: m_chick.c:94
AI_HOLD_FRAME
#define AI_HOLD_FRAME
Definition: g_local.h:133
sound_fall_down
static int sound_fall_down
Definition: m_chick.c:44
ChickReload
void ChickReload(edict_t *self)
Definition: m_chick.c:453
sound_pain2
static int sound_pain2
Definition: m_chick.c:48
chick_duck_hold
void chick_duck_hold(edict_t *self)
Definition: m_chick.c:382
ai_walk
void ai_walk(edict_t *self, float dist)
Definition: g_ai.c:148
chick_move_pain2
mmove_t chick_move_pain2
Definition: m_chick.c:225
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
chick_walk
void chick_walk(edict_t *self)
Definition: m_chick.c:189
Chick_PreAttack1
void Chick_PreAttack1(edict_t *self)
Definition: m_chick.c:448
chick_move_end_slash
mmove_t chick_move_end_slash
Definition: m_chick.c:542
chick_duck_up
void chick_duck_up(edict_t *self)
Definition: m_chick.c:390
chick_die
void chick_die(edict_t *self, edict_t *inflictor, edict_t *attacker, int damage, vec3_t point)
Definition: m_chick.c:337
chick_attack
void chick_attack(edict_t *self)
Definition: m_chick.c:582
monster_fire_rocket
void monster_fire_rocket(edict_t *self, vec3_t start, vec3_t dir, int damage, int speed, int flashtype)
Definition: g_monster.c:69
skill
cvar_t * skill
Definition: g_main.c:36
chick_move_slash
mmove_t chick_move_slash
Definition: m_chick.c:534
sound_death2
static int sound_death2
Definition: m_chick.c:43
chick_move_walk
mmove_t chick_move_walk
Definition: m_chick.c:187
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
chick_move_pain3
mmove_t chick_move_pain3
Definition: m_chick.c:250
sound_melee_hit
static int sound_melee_hit
Definition: m_chick.c:40
chick_move_duck
mmove_t chick_move_duck
Definition: m_chick.c:407
RANGE_MELEE
#define RANGE_MELEE
Definition: g_local.h:116
chick_melee
void chick_melee(edict_t *self)
Definition: m_chick.c:576
DAMAGE_AIM
@ DAMAGE_AIM
Definition: g_local.h:89
sound_sight
static int sound_sight
Definition: m_chick.c:50
right
static vec3_t right
Definition: p_view.c:27
ai_run
void ai_run(edict_t *self, float dist)
Definition: g_ai.c:821
GIB_ORGANIC
#define GIB_ORGANIC
Definition: g_local.h:122
chick_move_stand
mmove_t chick_move_stand
Definition: m_chick.c:137
level
level_locals_t level
Definition: g_main.c:22
sound_melee_swing
static int sound_melee_swing
Definition: m_chick.c:39
chick_move_run
mmove_t chick_move_run
Definition: m_chick.c:172
monster_flash_offset
const vec3_t monster_flash_offset[256]
Definition: m_flash.c:25
ThrowHead
void ThrowHead(edict_t *self, char *gibname, int damage, int type)
Definition: g_misc.c:175
sound_pain1
static int sound_pain1
Definition: m_chick.c:47
chick_dodge
void chick_dodge(edict_t *self, edict_t *attacker, float eta)
Definition: m_chick.c:409
MOVETYPE_TOSS
@ MOVETYPE_TOSS
Definition: g_local.h:194
range
int range(edict_t *self, edict_t *other)
Definition: g_ai.c:245
chick_move_end_attack1
mmove_t chick_move_end_attack1
Definition: m_chick.c:503
chick_attack1
void chick_attack1(edict_t *self)
Definition: m_chick.c:518
AI_DUCKED
#define AI_DUCKED
Definition: g_local.h:137
chick_run
void chick_run(edict_t *self)
Definition: m_chick.c:194
VectorNormalize
vec_t VectorNormalize(vec3_t v)
Definition: shared.c:55