Go to the documentation of this file.
444 if ( self->spawnflags & 16 )
450 if (self->spawnflags & 4)
461 if ( self->spawnflags & 16 )
467 if (self->spawnflags & 4)
484 if (
level.time < self->pain_debounce_time)
487 self->pain_debounce_time =
level.time + 3;
490 if (self->health < 25)
492 else if (self->health < 50)
494 else if (self->health < 75)
504 if (self->spawnflags & 8)
527 if (self->spawnflags & 32)
539 if ( (self->spawnflags & 4) && (self->spawnflags & 16) )
548 if (self->spawnflags & 8)
554 else if ( (self->spawnflags & 4) && (self->spawnflags & 16) )
565 if (self->spawnflags & 8)
585 if (self->health <= self->gib_health)
588 for (n= 0; n < 2; n++)
590 for (n= 0; n < 4; n++)
605 if (self->spawnflags & 8)
645 self->s.modelindex =
gi.
modelindex(
"models/monsters/insane/tris.md2");
651 self->gib_health = -50;
660 self->monsterinfo.dodge =
NULL;
661 self->monsterinfo.attack =
NULL;
662 self->monsterinfo.melee =
NULL;
663 self->monsterinfo.sight =
NULL;
674 if (self->spawnflags & 16)
681 if (self->spawnflags & 8)
691 self->s.skinnum = rand()%3;
mframe_t insane_frames_struggle_cross[]
void insane_walk(edict_t *self)
mframe_t insane_frames_crawl_death[]
void insane_moan(edict_t *self)
mmove_t insane_move_walk_insane
void insane_pain(edict_t *self, edict_t *other, float kick, int damage)
static int sound_scream[8]
mframe_t insane_frames_stand_death[]
void ThrowGib(edict_t *self, char *gibname, int damage, int type)
mframe_t insane_frames_down[]
mmove_t insane_move_crawl_death
void insane_scream(edict_t *self)
mframe_t insane_frames_cross[]
mmove_t insane_move_stand_death
mmove_t insane_move_crawl
mmove_t insane_move_walk_normal
mframe_t insane_frames_downtoup[]
void(* sound)(edict_t *ent, int channel, int soundindex, float volume, float attenuation, float timeofs)
void SP_misc_insane(edict_t *self)
void insane_checkup(edict_t *self)
void insane_die(edict_t *self, edict_t *inflictor, edict_t *attacker, int damage, vec3_t point)
void walkmonster_start(edict_t *self)
mmove_t insane_move_run_insane
char * va(char *format,...)
void insane_cross(edict_t *self)
void G_FreeEdict(edict_t *e)
int(* soundindex)(char *name)
mframe_t insane_frames_crawl[]
void insane_shake(edict_t *self)
int(* modelindex)(char *name)
void insane_dead(edict_t *self)
mframe_t insane_frames_uptodown[]
mmove_t insane_move_downtoup
void ai_walk(edict_t *self, float dist)
mmove_t insane_move_cross
void insane_onground(edict_t *self)
mframe_t insane_frames_walk_insane[]
mframe_t insane_frames_stand_normal[]
void ai_move(edict_t *self, float dist)
mframe_t insane_frames_jumpdown[]
mmove_t insane_move_crawl_pain
mmove_t insane_move_run_normal
void insane_stand(edict_t *self)
mframe_t insane_frames_walk_normal[]
mframe_t insane_frames_stand_insane[]
mmove_t insane_move_runcrawl
mmove_t insane_move_stand_insane
void ThrowHead(edict_t *self, char *gibname, int damage, int type)
mmove_t insane_move_struggle_cross
void insane_checkdown(edict_t *self)
mmove_t insane_move_stand_normal
#define VectorSet(v, x, y, z)
void insane_run(edict_t *self)
mmove_t insane_move_uptodown
void insane_fist(edict_t *self)
void(* linkentity)(edict_t *ent)
mmove_t insane_move_jumpdown
mframe_t insane_frames_stand_pain[]
void ai_stand(edict_t *self, float dist)
void flymonster_start(edict_t *self)
mframe_t insane_frames_crawl_pain[]
mmove_t insane_move_stand_pain