mirror of
https://github.com/yquake2/rogue.git
synced 2024-11-10 06:42:21 +00:00
Fix for insane marines pain sounds
This commit is contained in:
parent
d289d0f302
commit
c79de3adfa
1 changed files with 41 additions and 4 deletions
|
@ -8,6 +8,8 @@
|
|||
#include "../../header/local.h"
|
||||
#include "insane.h"
|
||||
|
||||
#define SPAWNFLAG_CRUSIFIED 8
|
||||
|
||||
static int sound_fist;
|
||||
static int sound_shake;
|
||||
static int sound_moan;
|
||||
|
@ -25,24 +27,56 @@ void insane_onground(edict_t *self);
|
|||
void
|
||||
insane_fist(edict_t *self)
|
||||
{
|
||||
if (!self)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
gi.sound(self, CHAN_VOICE, sound_fist, 1, ATTN_IDLE, 0);
|
||||
}
|
||||
|
||||
void
|
||||
insane_shake(edict_t *self)
|
||||
{
|
||||
if (!self)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
gi.sound(self, CHAN_VOICE, sound_shake, 1, ATTN_IDLE, 0);
|
||||
}
|
||||
|
||||
void
|
||||
insane_moan(edict_t *self)
|
||||
{
|
||||
if (!self)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
/* suppress screaming so pain sounds can play */
|
||||
if (self->delay > level.time)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
gi.sound(self, CHAN_VOICE, sound_moan, 1, ATTN_IDLE, 0);
|
||||
}
|
||||
|
||||
void
|
||||
insane_scream(edict_t *self)
|
||||
{
|
||||
if (!self)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
/* suppress screaming so pain sounds can play */
|
||||
if (self->delay > level.time)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
gi.sound(self, CHAN_VOICE, sound_scream[rand() % 8], 1, ATTN_IDLE, 0);
|
||||
}
|
||||
|
||||
|
@ -623,6 +657,9 @@ insane_pain(edict_t *self, edict_t *other /* unused */, float kick, int damage)
|
|||
|
||||
gi.sound(self, CHAN_VOICE, gi.soundindex(va("player/male/pain%i_%i.wav", l, r)), 1, ATTN_IDLE, 0);
|
||||
|
||||
/* suppress screaming and moaning for 1 second so pain sound plays */
|
||||
self->delay = level.time + 1;
|
||||
|
||||
if (skill->value == 3)
|
||||
{
|
||||
return; /* no pain anims in nightmare */
|
||||
|
@ -713,7 +750,7 @@ insane_stand(edict_t *self)
|
|||
return;
|
||||
}
|
||||
|
||||
if (self->spawnflags & 8) /* If crucified */
|
||||
if (self->spawnflags & SPAWNFLAG_CRUSIFIED) /* If crucified */
|
||||
{
|
||||
self->monsterinfo.currentmove = &insane_move_cross;
|
||||
self->monsterinfo.aiflags |= AI_STAND_GROUND;
|
||||
|
@ -742,7 +779,7 @@ insane_dead(edict_t *self)
|
|||
return;
|
||||
}
|
||||
|
||||
if (self->spawnflags & 8)
|
||||
if (self->spawnflags & SPAWNFLAG_CRUSIFIED)
|
||||
{
|
||||
self->flags |= FL_FLY;
|
||||
}
|
||||
|
@ -799,7 +836,7 @@ insane_die(edict_t *self, edict_t *inflictor /* unused */, edict_t *attacker /*
|
|||
self->deadflag = DEAD_DEAD;
|
||||
self->takedamage = DAMAGE_YES;
|
||||
|
||||
if (self->spawnflags & 8)
|
||||
if (self->spawnflags & SPAWNFLAG_CRUSIFIED)
|
||||
{
|
||||
insane_dead(self);
|
||||
}
|
||||
|
@ -882,7 +919,7 @@ SP_misc_insane(edict_t *self)
|
|||
|
||||
self->monsterinfo.scale = MODEL_SCALE;
|
||||
|
||||
if (self->spawnflags & 8) /* Crucified ? */
|
||||
if (self->spawnflags & SPAWNFLAG_CRUSIFIED) /* Crucified ? */
|
||||
{
|
||||
VectorSet(self->mins, -16, 0, 0);
|
||||
VectorSet(self->maxs, 16, 8, 32);
|
||||
|
|
Loading…
Reference in a new issue