| 
    Quake II RTX doxygen
    1.0 dev
    
   | 
           
 | 
 
 
 
 
Go to the documentation of this file.
  176     gi.sound(
self, CHAN_VOICE, 
sound_idle, 1, ATTN_IDLE, 0);
 
  253     if (
fire_hit(
self, aim, (10 + (rand() % 5)), 100))
 
  254         gi.sound(
self, CHAN_WEAPON, 
sound_hit, 1, ATTN_NORM, 0);
 
  264     if (
fire_hit(
self, aim, (10 + (rand() % 5)), 100))
 
  265         gi.sound(
self, CHAN_WEAPON, 
sound_hit2, 1, ATTN_NORM, 0);
 
  272     if (!self->enemy || !self->enemy->inuse || self->enemy->health <= 0)
 
  302     if (self->health <= 0) {
 
  307     if (
other->takedamage) {
 
  308         if (VectorLength(self->velocity) > 400) {
 
  313             VectorCopy(self->velocity, normal);
 
  315             VectorMA(self->s.origin, self->maxs[0], normal, point);
 
  316             damage = 40 + 10 * 
random();
 
  322         if (self->groundentity) {
 
  338     self->s.origin[2] += 1;
 
  339     VectorScale(
forward, 600, self->velocity);
 
  340     self->velocity[2] = 250;
 
  341     self->groundentity = NULL;
 
  343     self->monsterinfo.attack_finished = 
level.
time + 3;
 
  349     if (self->groundentity) {
 
  350         gi.sound(
self, CHAN_WEAPON, 
sound_thud, 1, ATTN_NORM, 0);
 
  351         self->monsterinfo.attack_finished = 0;
 
  356     if (
level.
time > self->monsterinfo.attack_finished)
 
  396     if (self->absmin[2] > (self->enemy->absmin[2] + 0.75 * self->enemy->size[2]))
 
  399     if (self->absmax[2] < (self->enemy->absmin[2] + 0.25 * self->enemy->size[2]))
 
  402     v[0] = 
self->s.origin[0] - 
self->enemy->s.origin[0];
 
  403     v[1] = 
self->s.origin[1] - 
self->enemy->s.origin[1];
 
  405     distance = VectorLength(v);
 
  409     if (distance > 100) {
 
  419     if (!self->enemy || self->enemy->health <= 0)
 
  423         self->monsterinfo.attack_state = 
AS_MELEE;
 
  479     if (self->health < (self->max_health / 2))
 
  482     if (
level.
time < self->pain_debounce_time)
 
  485     self->pain_debounce_time = 
level.
time + 3;
 
  487     if (
skill->value == 3)
 
  494     } 
else if (r < 0.66) {
 
  510     VectorSet(self->mins, -16, -16, -24);
 
  511     VectorSet(self->maxs, 16, 16, -8);
 
  513     self->svflags |= SVF_DEADMONSTER;
 
  546 void mutant_die(edict_t *
self, edict_t *inflictor, edict_t *attacker, 
int damage, vec3_t point)
 
  550     if (self->health <= self->gib_health) {
 
  551         gi.sound(
self, CHAN_VOICE, 
gi.soundindex(
"misc/udeath.wav"), 1, ATTN_NORM, 0);
 
  552         for (n = 0; n < 2; n++)
 
  554         for (n = 0; n < 4; n++)
 
  604     self->solid = SOLID_BBOX;
 
  605     self->s.modelindex = 
gi.modelindex(
"models/monsters/mutant/tris.md2");
 
  606     VectorSet(self->mins, -32, -32, -24);
 
  607     VectorSet(self->maxs, 32, 32, 48);
 
  610     self->gib_health = -120;
 
  619     self->monsterinfo.dodge = NULL;
 
  
 
void mutant_check_landing(edict_t *self)
 
void mutant_sight(edict_t *self, edict_t *other)
 
void ThrowGib(edict_t *self, char *gibname, int damage, int type)
 
void ai_charge(edict_t *self, float dist)
 
void mutant_run(edict_t *self)
 
mmove_t mutant_move_death2
 
void mutant_pain(edict_t *self, edict_t *other, float kick, int damage)
 
mmove_t mutant_move_start_walk
 
void mutant_hit_left(edict_t *self)
 
void mutant_jump(edict_t *self)
 
mframe_t mutant_frames_jump[]
 
void mutant_step(edict_t *self)
 
mmove_t mutant_move_pain2
 
mmove_t mutant_move_pain3
 
qboolean mutant_check_melee(edict_t *self)
 
mframe_t mutant_frames_attack[]
 
mframe_t mutant_frames_run[]
 
void SP_monster_mutant(edict_t *self)
 
qboolean fire_hit(edict_t *self, vec3_t aim, int damage, int kick)
 
void mutant_search(edict_t *self)
 
mframe_t mutant_frames_stand[]
 
void T_Damage(edict_t *targ, edict_t *inflictor, edict_t *attacker, vec3_t dir, vec3_t point, vec3_t normal, int damage, int knockback, int dflags, int mod)
 
void walkmonster_start(edict_t *self)
 
void mutant_jump_touch(edict_t *self, edict_t *other, cplane_t *plane, csurface_t *surf)
 
void mutant_jump_takeoff(edict_t *self)
 
mframe_t mutant_frames_pain3[]
 
mmove_t mutant_move_pain1
 
void G_FreeEdict(edict_t *e)
 
void mutant_melee(edict_t *self)
 
void mutant_idle(edict_t *self)
 
mmove_t mutant_move_death1
 
void ai_walk(edict_t *self, float dist)
 
void AngleVectors(vec3_t angles, vec3_t forward, vec3_t right, vec3_t up)
 
qboolean M_CheckBottom(edict_t *ent)
 
void mutant_check_refire(edict_t *self)
 
void mutant_dead(edict_t *self)
 
void mutant_hit_right(edict_t *self)
 
mframe_t mutant_frames_start_walk[]
 
void mutant_walk(edict_t *self)
 
void mutant_walk_loop(edict_t *self)
 
void ai_move(edict_t *self, float dist)
 
mframe_t mutant_frames_idle[]
 
mframe_t mutant_frames_pain2[]
 
void ai_run(edict_t *self, float dist)
 
void M_FlyCheck(edict_t *self)
 
void mutant_stand(edict_t *self)
 
mframe_t mutant_frames_walk[]
 
void ThrowHead(edict_t *self, char *gibname, int damage, int type)
 
mframe_t mutant_frames_pain1[]
 
int range(edict_t *self, edict_t *other)
 
qboolean mutant_checkattack(edict_t *self)
 
void mutant_die(edict_t *self, edict_t *inflictor, edict_t *attacker, int damage, vec3_t point)
 
mframe_t mutant_frames_death1[]
 
void mutant_swing(edict_t *self)
 
vec_t VectorNormalize(vec3_t v)
 
void ai_stand(edict_t *self, float dist)
 
mmove_t mutant_move_stand
 
void mutant_idle_loop(edict_t *self)
 
qboolean mutant_check_jump(edict_t *self)
 
mmove_t mutant_move_attack
 
mframe_t mutant_frames_death2[]