Quake II RTX doxygen
1.0 dev
|
|
Go to the documentation of this file.
275 if (self->health < (self->max_health / 2))
278 if (
level.
time < self->pain_debounce_time)
281 self->pain_debounce_time =
level.
time + 3;
284 gi.sound(
self, CHAN_VOICE,
sound_pain, 1, ATTN_NORM, 0);
288 if (
skill->value == 3)
293 else if (damage <= 25)
301 VectorSet(self->mins, -16, -16, -24);
302 VectorSet(self->maxs, 16, 16, -8);
304 self->svflags |= SVF_DEADMONSTER;
324 void gunner_die(edict_t *
self, edict_t *inflictor, edict_t *attacker,
int damage, vec3_t point)
329 if (self->health <= self->gib_health) {
330 gi.sound(
self, CHAN_VOICE,
gi.soundindex(
"misc/udeath.wav"), 1, ATTN_NORM, 0);
331 for (n = 0; n < 2; n++)
333 for (n = 0; n < 4; n++)
353 if (self->monsterinfo.aiflags &
AI_DUCKED)
356 if (
skill->value >= 2) {
363 self->monsterinfo.pausetime =
level.
time + 1;
369 if (
level.
time >= self->monsterinfo.pausetime)
401 self->enemy = attacker;
409 gi.sound(
self, CHAN_VOICE,
sound_open, 1, ATTN_IDLE, 0);
420 flash_number = MZ2_GUNNER_MACHINEGUN_1 + (
self->s.frame -
FRAME_attak216);
426 VectorCopy(self->enemy->s.origin, target);
427 VectorMA(target, -0.2, self->enemy->velocity, target);
428 target[2] +=
self->enemy->viewheight;
430 VectorSubtract(target, start, aim);
443 flash_number = MZ2_GUNNER_GRENADE_1;
445 flash_number = MZ2_GUNNER_GRENADE_2;
447 flash_number = MZ2_GUNNER_GRENADE_3;
449 flash_number = MZ2_GUNNER_GRENADE_4;
548 if (self->enemy->health > 0)
549 if (
visible(
self, self->enemy))
574 gi.soundindex(
"gunner/gunatck2.wav");
575 gi.soundindex(
"gunner/gunatck3.wav");
578 self->solid = SOLID_BBOX;
579 self->s.modelindex =
gi.modelindex(
"models/monsters/gunner/tris.md2");
580 VectorSet(self->mins, -16, -16, -24);
581 VectorSet(self->maxs, 16, 16, 32);
584 self->gib_health = -70;
595 self->monsterinfo.melee = NULL;
void gunner_sight(edict_t *self, edict_t *other)
mmove_t gunner_move_runandshoot
void G_ProjectSource(const vec3_t point, const vec3_t distance, const vec3_t forward, const vec3_t right, vec3_t result)
mframe_t gunner_frames_stand[]
void gunner_runandshoot(edict_t *self)
#define DEFAULT_BULLET_HSPREAD
void ThrowGib(edict_t *self, char *gibname, int damage, int type)
void ai_charge(edict_t *self, float dist)
mframe_t gunner_frames_death[]
mframe_t gunner_frames_walk[]
mframe_t gunner_frames_endfire_chain[]
mmove_t gunner_move_endfire_chain
mframe_t gunner_frames_pain1[]
void gunner_pain(edict_t *self, edict_t *other, float kick, int damage)
mframe_t gunner_frames_attack_grenade[]
mmove_t gunner_move_attack_grenade
void monster_fire_grenade(edict_t *self, vec3_t start, vec3_t aimdir, int damage, int speed, int flashtype)
mmove_t gunner_move_fire_chain
mframe_t gunner_frames_attack_chain[]
void gunner_duck_down(edict_t *self)
void walkmonster_start(edict_t *self)
mmove_t gunner_move_death
mmove_t gunner_move_fidget
void GunnerGrenade(edict_t *self)
void gunner_search(edict_t *self)
void gunner_opengun(edict_t *self)
void gunner_idlesound(edict_t *self)
mmove_t gunner_move_stand
mframe_t gunner_frames_run[]
#define DEFAULT_BULLET_VSPREAD
void G_FreeEdict(edict_t *e)
void gunner_duck_hold(edict_t *self)
void ai_walk(edict_t *self, float dist)
void AngleVectors(vec3_t angles, vec3_t forward, vec3_t right, vec3_t up)
void gunner_fire_chain(edict_t *self)
mframe_t gunner_frames_duck[]
mframe_t gunner_frames_fire_chain[]
void gunner_dead(edict_t *self)
qboolean visible(edict_t *self, edict_t *other)
void monster_fire_bullet(edict_t *self, vec3_t start, vec3_t dir, int damage, int kick, int hspread, int vspread, int flashtype)
void gunner_fidget(edict_t *self)
void gunner_attack(edict_t *self)
mframe_t gunner_frames_fidget[]
void ai_move(edict_t *self, float dist)
void gunner_walk(edict_t *self)
void gunner_dodge(edict_t *self, edict_t *attacker, float eta)
mframe_t gunner_frames_runandshoot[]
void GunnerFire(edict_t *self)
void ai_run(edict_t *self, float dist)
mmove_t gunner_move_attack_chain
const vec3_t monster_flash_offset[256]
void ThrowHead(edict_t *self, char *gibname, int damage, int type)
mframe_t gunner_frames_pain3[]
mmove_t gunner_move_pain1
int range(edict_t *self, edict_t *other)
void gunner_run(edict_t *self)
void gunner_refire_chain(edict_t *self)
void gunner_stand(edict_t *self)
mframe_t gunner_frames_pain2[]
void SP_monster_gunner(edict_t *self)
void gunner_die(edict_t *self, edict_t *inflictor, edict_t *attacker, int damage, vec3_t point)
vec_t VectorNormalize(vec3_t v)
void ai_stand(edict_t *self, float dist)
mmove_t gunner_move_pain2
void gunner_duck_up(edict_t *self)
mmove_t gunner_move_pain3