Valve: Converted more monsters to use sound shaders!

This commit is contained in:
Marco Cawthorne 2020-04-03 09:22:22 +02:00
parent 45c18f6a7f
commit 7c22d66c17
22 changed files with 752 additions and 713 deletions

View file

@ -44,32 +44,6 @@ enum {
CON_DIE
};
string con_sndattack[] = {
"controller/con_attack1.wav",
"controller/con_attack2.wav",
"controller/con_attack3.wav"
};
string con_sndidle[] = {
"controller/con_idle1.wav",
"controller/con_idle2.wav",
"controller/con_idle3.wav",
"controller/con_idle4.wav",
"controller/con_idle5.wav"
};
string con_sndpain[] = {
"controller/con_pain1.wav",
"controller/con_pain2.wav",
"controller/con_pain3.wav"
};
string con_sndsee[] = {
"controller/con_alert1.wav",
"controller/con_alert2.wav",
"controller/con_alert3.wav"
};
class monster_alien_controller:CBaseMonster
{
float m_flIdleTime;
@ -96,8 +70,7 @@ monster_alien_controller::Pain(int iHitBody)
return;
}
int rand = floor(random(0,con_sndpain.length));
Sound(con_sndpain[rand]);
Sound_Play(this, CHAN_VOICE, "monster_alien_controller.die");
frame = CON_FLINCH + floor(random(0, 2));
m_flPainTime = time + 0.25f;
}
@ -108,10 +81,7 @@ monster_alien_controller::Death(int iHitBody)
/* if we're already dead (corpse) don't change animations */
if (style != MONSTER_DEAD) {
frame = CON_DIE;
/* the sound */
int rand = floor(random(0,con_sndpain.length));
Sound(con_sndpain[rand]);
Sound_Play(this, CHAN_VOICE, "monster_alien_controller.die");
}
/* set the functional differences */
@ -131,8 +101,7 @@ monster_alien_controller::IdleNoise(void)
}
m_flIdleTime = time + random(2,10);
int rand = floor(random(0, con_sndidle.length));
Sound(con_sndidle[rand]);
Sound_Play(this, CHAN_VOICE, "monster_alien_controller.idle");
}
void
@ -145,19 +114,11 @@ monster_alien_controller::Respawn(void)
void
monster_alien_controller::monster_alien_controller(void)
{
for (int i = 0; i < con_sndattack.length; i++) {
precache_sound(con_sndattack[i]);
}
for (int i = 0; i < con_sndidle.length; i++) {
precache_sound(con_sndidle[i]);
}
for (int i = 0; i < con_sndpain.length; i++) {
precache_sound(con_sndpain[i]);
}
for (int i = 0; i < con_sndsee.length; i++) {
precache_sound(con_sndsee[i]);
}
Sound_Precache("monster_alien_controller.alert");
Sound_Precache("monster_alien_controller.attack");
Sound_Precache("monster_alien_controller.die");
Sound_Precache("monster_alien_controller.idle");
Sound_Precache("monster_alien_controller.pain");
netname = "Alien Controller";
model = "models/controller.mdl";
base_mins = [-16,-16,0];

View file

@ -57,36 +57,6 @@ enum {
AG_LAND
};
string ag_sndattack[] = {
"agrunt/ag_attack1.wav",
"agrunt/ag_attack2.wav",
"agrunt/ag_attack3.wav"
};
string ag_sndidle[] = {
"agrunt/ag_idle1.wav",
"agrunt/ag_idle2.wav",
"agrunt/ag_idle3.wav",
"agrunt/ag_idle4.wav",
"agrunt/ag_idle5.wav"
};
string ag_sndpain[] = {
"agrunt/ag_pain1.wav",
"agrunt/ag_pain2.wav",
"agrunt/ag_pain3.wav",
"agrunt/ag_pain4.wav",
"agrunt/ag_pain5.wav"
};
string ag_sndsee[] = {
"agrunt/ag_alert1.wav",
"agrunt/ag_alert2.wav",
"agrunt/ag_alert3.wav",
"agrunt/ag_alert4.wav",
"agrunt/ag_alert5.wav"
};
class monster_alien_grunt:CBaseMonster
{
float m_flIdleTime;
@ -113,8 +83,7 @@ monster_alien_grunt::Pain(int iHitBody)
return;
}
int rand = floor(random(0,ag_sndpain.length));
Sound(ag_sndpain[rand]);
Sound_Play(this, CHAN_VOICE, "monster_alien_grunt.pain");
frame = AG_FLINCH + floor(random(0, 2));
m_flPainTime = time + 0.25f;
}
@ -132,12 +101,10 @@ monster_alien_grunt::Death(int iHitBody)
frame = AG_DIEFORWARD;
}
} else {
frame = AG_DIE + floor(random(0, 3));
frame = AG_DIE + floor(random(0, 2));
}
/* the sound */
int rand = floor(random(0,ag_sndpain.length));
Sound(ag_sndpain[rand]);
Sound_Play(this, CHAN_VOICE, "monster_alien_grunt.die");
}
/* set the functional differences */
@ -157,8 +124,7 @@ monster_alien_grunt::IdleNoise(void)
}
m_flIdleTime = time + random(2,10);
int rand = floor(random(0, ag_sndidle.length));
Sound(ag_sndidle[rand]);
Sound_Play(this, CHAN_VOICE, "monster_alien_grunt.idle");
}
void
@ -171,19 +137,11 @@ monster_alien_grunt::Respawn(void)
void
monster_alien_grunt::monster_alien_grunt(void)
{
for (int i = 0; i < ag_sndattack.length; i++) {
precache_sound(ag_sndattack[i]);
}
for (int i = 0; i < ag_sndidle.length; i++) {
precache_sound(ag_sndidle[i]);
}
for (int i = 0; i < ag_sndpain.length; i++) {
precache_sound(ag_sndpain[i]);
}
for (int i = 0; i < ag_sndsee.length; i++) {
precache_sound(ag_sndsee[i]);
}
Sound_Precache("monster_alien_grunt.alert");
Sound_Precache("monster_alien_grunt.attack");
Sound_Precache("monster_alien_grunt.die");
Sound_Precache("monster_alien_grunt.idle");
Sound_Precache("monster_alien_grunt.pain");
netname = "Alien Grunt";
model = "models/agrunt.mdl";
base_mins = [-32,-32,0];

View file

@ -55,18 +55,6 @@ enum {
SLV_JABBER
};
/* chat & idle sounds are handled via sentences.txt */
string slv_snddie[] = {
"aslave/slv_die1.wav",
"aslave/slv_die2.wav"
};
string slv_sndpain[] = {
"aslave/slv_pain1.wav",
"aslave/slv_pain2.wav"
};
class monster_alien_slave:CBaseNPC
{
float m_flIdleTime;
@ -105,8 +93,7 @@ monster_alien_slave::Pain(int iHitBody)
return;
}
int rand = floor(random(0,slv_sndpain.length));
Sound(slv_sndpain[rand]);
Sound_Play(this, CHAN_VOICE, "monster_alien_slave.pain");
frame = SLV_FLINCH + floor(random(0, 2));
m_flPainTime = time + 0.25f;
}
@ -127,9 +114,7 @@ monster_alien_slave::Death(int iHitBody)
frame = SLV_DIE + floor(random(0, 3));
}
/* the sound */
int rand = floor(random(0,slv_sndpain.length));
Sound(slv_sndpain[rand]);
Sound_Play(this, CHAN_VOICE, "monster_alien_slave.die");
}
/* set the functional differences */
@ -146,9 +131,8 @@ monster_alien_slave::Respawn(void)
void
monster_alien_slave::monster_alien_slave(void)
{
for (int i = 0; i < slv_sndpain.length; i++) {
precache_sound(slv_sndpain[i]);
}
Sound_Precache("monster_alien_slave.die");
Sound_Precache("monster_alien_slave.pain");
m_talkAnswer = "";
m_talkAsk = "";

View file

@ -32,20 +32,7 @@ enum {
BCL_DIE
};
/* bcl_alert2 is played when the barnacle is pulling up an ent
* bcl_bite3 is played when an entity is in it's mouth, bcl_tongue1 unused?
*/
string bcl_sndchew[] = {
"barnacle/bcl_chew1.wav",
"barnacle/bcl_chew2.wav",
"barnacle/bcl_chew3.wav"
};
string bcl_snddie[] = {
"barnacle/bcl_die1.wav",
"barnacle/bcl_die3.wav"
};
class monster_barnacle:CBaseMonster
{
@ -69,9 +56,7 @@ monster_barnacle::Death(int iHitBody)
if (style != MONSTER_DEAD) {
frame = BCL_DIE;
/* the sound */
int rand = floor(random(0,bcl_snddie.length));
Sound(bcl_snddie[rand]);
Sound_Play(this, CHAN_VOICE, "monster_barnacle.die");
}
/* set the functional differences */
@ -87,12 +72,9 @@ monster_barnacle::Respawn(void)
void monster_barnacle::monster_barnacle(void)
{
for (int i = 0; i < bcl_sndchew.length; i++) {
precache_sound(bcl_sndchew[i]);
}
for (int i = 0; i < bcl_snddie.length; i++) {
precache_sound(bcl_snddie[i]);
}
Sound_Precache("monster_barnacle.attackchew");
Sound_Precache("monster_barnacle.attackpull");
Sound_Precache("monster_barnacle.die");
netname = "Barnacle";
model = "models/barnacle.mdl";

View file

@ -43,18 +43,6 @@ enum {
BA_FLINCH_SML
};
string ba_snddie[] = {
"barney/ba_die1.wav",
"barney/ba_die1.wav",
"barney/ba_die2.wav"
};
string ba_sndpain[] = {
"barney/ba_pain1.wav",
"barney/ba_pain1.wav",
"barney/ba_pain1.wav"
};
class monster_barney:CBaseNPC
{
void() monster_barney;
@ -110,8 +98,7 @@ monster_barney::Pain(int iHitBody)
return;
}
int rand = floor(random(0,ba_sndpain.length));
Speak(ba_sndpain[rand]);
Sound_Speak(this, "monster_barney.pain");
frame = BA_FLINCH_LA + floor(random(0, 5));
m_iFlags |= MONSTER_FEAR;
@ -123,8 +110,7 @@ monster_barney::Death(int iHitBody)
{
WarnAllies();
int r = floor(random(0,ba_snddie.length));
Speak(ba_snddie[r]);
Sound_Speak(this, "monster_barney.die");
if (style != MONSTER_DEAD) {
frame = 25 + floor(random(0, 6));
@ -145,12 +131,8 @@ monster_barney::Respawn(void)
void
monster_barney::monster_barney(void)
{
for (int i = 0; i < ba_sndpain.length; i++) {
precache_sound(ba_sndpain[i]);
}
for (int i = 0; i < ba_snddie.length; i++) {
precache_sound(ba_snddie[i]);
}
Sound_Precache("monster_barney.die");
Sound_Precache("monster_barney.pain");
/* TODO
* BA_MAD - When player gets too naughty

View file

@ -45,52 +45,6 @@ enum {
GON_FALLDIE
};
/* the attack sounds are for when she spits? */
string gon_sndattack[] = {
"gonarch/gon_attack1.wav",
"gonarch/gon_attack2.wav",
"gonarch/gon_attack3.wav"
};
/* mourns the death of her children */
string gon_sndchild[] = {
"gonarch/gon_childdie1.wav",
"gonarch/gon_childdie2.wav",
"gonarch/gon_childdie3.wav"
};
string gon_snddie[] = {
"gonarch/gon_die1.wav",
"gonarch/gon_die2.wav",
"gonarch/gon_die3.wav"
};
string gon_sndidle[] = {
"gonarch/gon_sack1.wav",
"gonarch/gon_sack2.wav",
"gonarch/gon_sack3.wav"
};
string gon_sndpain[] = {
"gonarch/gon_pain2.wav",
"gonarch/gon_pain3.wav",
"gonarch/gon_pain4.wav",
"gonarch/gon_pain5.wav"
};
string gon_sndsee[] = {
"gonarch/gon_alert1.wav",
"gonarch/gon_alert2.wav",
"gonarch/gon_alert3.wav"
};
/* has unique foot step sounds */
string gon_sndstep[] = {
"gonarch/gon_step1.wav",
"gonarch/gon_step2.wav",
"gonarch/gon_step3.wav"
};
class monster_bigmomma:CBaseMonster
{
float m_flIdleTime;
@ -117,8 +71,7 @@ monster_bigmomma::IdleNoise(void)
/* timing needs to adjusted as sounds conflict */
m_flIdleTime = time + random(2,10);
int rand = floor(random(0, gon_sndidle.length));
Sound(gon_sndidle[rand]);
Sound_Play(this, CHAN_VOICE, "monster_bigmomma.idle");
}
void
@ -134,8 +87,7 @@ monster_bigmomma::Pain(int iHitBody)
return;
}
int rand = floor(random(0,gon_sndpain.length));
Sound(gon_sndpain[rand]);
Sound_Play(this, CHAN_VOICE, "monster_bigmomma.pain");
frame = GON_FLINCH;
m_flAnimTime = time + 0.25f;
}
@ -146,7 +98,7 @@ monster_bigmomma::Death(int iHitBody)
/* if we're already dead (corpse) don't change animations */
if (style != MONSTER_DEAD) {
frame = GON_DIE;
Sound("gonarch/gon_die1.wav");
Sound_Play(this, CHAN_VOICE, "monster_bigmomma.die");
}
/* set the functional differences */
@ -162,27 +114,13 @@ monster_bigmomma::Respawn(void)
void monster_bigmomma::monster_bigmomma(void)
{
for (int i = 0; i <gon_sndattack.length; i++) {
precache_sound(gon_sndattack[i]);
}
for (int i = 0; i <gon_sndchild.length; i++) {
precache_sound(gon_sndchild[i]);
}
for (int i = 0; i < gon_sndidle.length; i++) {
precache_sound(gon_sndidle[i]);
}
for (int i = 0; i < gon_sndpain.length; i++) {
precache_sound(gon_sndpain[i]);
}
for (int i = 0; i <gon_sndsee.length; i++) {
precache_sound(gon_sndsee[i]);
}
for (int i = 0; i <gon_sndstep.length; i++) {
precache_sound(gon_sndstep[i]);
}
precache_sound("gonarch/gon_die1.wav");
Sound_Precache("monster_bigmomma.alert");
Sound_Precache("monster_bigmomma.attack");
Sound_Precache("monster_bigmomma.child");
Sound_Precache("monster_bigmomma.die");
Sound_Precache("monster_bigmomma.idle");
Sound_Precache("monster_bigmomma.pain");
Sound_Precache("monster_bigmomma.step");
netname = "Gonarch";
model = "models/big_mom.mdl";
/* health is based on factor, for it's not killable until last stage */

View file

@ -53,46 +53,6 @@ enum {
* for close range attacks
*/
string bull_sndattack[] = {
"bullchicken/bc_attackgrowl1.wav",
"bullchicken/bc_attackgrowl2.wav",
"bullchicken/bc_attackgrowl3.wav"
};
string bull_sndattackbite[] = {
"bullchicken/bc_bite1.wav",
"bullchicken/bc_bite2.wav",
"bullchicken/bc_bite3.wav"
};
string bull_sndattackshoot[] = {
"bullchicken/bc_attack1.wav",
"bullchicken/bc_attack2.wav",
"bullchicken/bc_attack3.wav"
};
string bull_snddie[] = {
"bullchicken/bc_die1.wav",
"bullchicken/bc_die2.wav",
"bullchicken/bc_die3.wav"
};
string bull_sndidle[] = {
"bullchicken/bc_idle1.wav",
"bullchicken/bc_idle2.wav",
"bullchicken/bc_idle3.wav",
"bullchicken/bc_idle4.wav",
"bullchicken/bc_idle5.wav"
};
string bull_sndpain[] = {
"bullchicken/bc_pain1.wav",
"bullchicken/bc_pain2.wav",
"bullchicken/bc_pain3.wav",
"bullchicken/bc_pain4.wav"
};
class monster_bullchicken:CBaseMonster
{
float m_flIdleTime;
@ -139,8 +99,7 @@ monster_bullchicken::IdleNoise(void)
/* timing needs to adjusted as sounds conflict */
m_flIdleTime = time + random(2,10);
int rand = floor(random(0, bull_sndidle.length));
Sound(bull_sndidle[rand]);
Sound_Play(this, CHAN_VOICE, "monster_bullchicken.idle");
}
void
@ -156,8 +115,7 @@ monster_bullchicken::Pain(int iHitBody)
return;
}
int rand = floor(random(0,bull_sndpain.length));
Sound(bull_sndpain[rand]);
Sound_Play(this, CHAN_VOICE, "monster_bullchicken.pain");
frame = (random() < 0.5) ? BULL_FLINCH : BULL_FLINCH2;
m_flAnimTime = time + 0.25f;
}
@ -171,9 +129,7 @@ monster_bullchicken::Death(int iHitBody)
/* two different animations */
frame = (random() < 0.5) ? BULL_DIE : BULL_DIE2;
/* the sound */
int rand = floor(random(0,bull_snddie.length));
Sound(bull_snddie[rand]);
Sound_Play(this, CHAN_VOICE, "monster_bullchicken.die");
}
/* set the functional differences */
@ -182,25 +138,13 @@ monster_bullchicken::Death(int iHitBody)
void monster_bullchicken::monster_bullchicken(void)
{
for (int i = 0; i <bull_sndattack.length; i++) {
precache_sound(bull_sndattack[i]);
}
for (int i = 0; i <bull_sndattackbite.length; i++) {
precache_sound(bull_sndattackbite[i]);
}
for (int i = 0; i <bull_sndattackshoot.length; i++) {
precache_sound(bull_sndattackshoot[i]);
}
for (int i = 0; i < bull_snddie.length; i++) {
precache_sound(bull_snddie[i]);
}
for (int i = 0; i < bull_sndidle.length; i++) {
precache_sound(bull_sndidle[i]);
}
for (int i = 0; i < bull_sndpain.length; i++) {
precache_sound(bull_sndpain[i]);
}
Sound_Precache("monster_bullchicken.alert");
Sound_Precache("monster_bullchicken.attack");
Sound_Precache("monster_bullchicken.attackbite");
Sound_Precache("monster_bullchicken.attackshoot");
Sound_Precache("monster_bullchicken.die");
Sound_Precache("monster_bullchicken.idle");
Sound_Precache("monster_bullchicken.pain");
netname = "Bullsquid";
model = "models/bullsquid.mdl";
base_health = Skill_GetValue("bullsquid_health");

View file

@ -33,12 +33,7 @@ monster_cockroach::Death(int iHitBody)
{
/* if we're already dead (corpse) don't change animations */
if (style != MONSTER_DEAD) {
/* the sound */
if (random() < 0.5) {
Sound("roach/rch_die.wav");
} else {
Sound("roach/rch_smash.wav");
}
Sound_Play(this, CHAN_VOICE, "monster_cockroach.die");
}
/* make sure we gib this thing */
@ -50,6 +45,7 @@ monster_cockroach::Death(int iHitBody)
void monster_cockroach::monster_cockroach(void)
{
Sound_Precache("monster_cockroach.die");
netname = "Cockroach";
model = "models/roach.mdl";
base_mins = [-1,-1,0];

View file

@ -47,53 +47,6 @@ enum {
GARG_BUST
};
/* Flame thrower sounds
* gar_flameoff1
* gar_flameon1
* gar_flamerun1 */
/* similar to bullsquid, groans during and after attacks */
string garg_sndattack[] = {
"garg/gar_attack1.wav",
"garg/gar_attack2.wav",
"garg/gar_attack3.wav"
};
string garg_sndalert[] = {
"garg/gar_alert1.wav",
"garg/gar_alert2.wav",
"garg/gar_alert3.wav"
};
string garg_snddie[] = {
"garg/gar_die1.wav",
"garg/gar_die2.wav"
};
string garg_sndidle[] = {
"garg/gar_idle1.wav",
"garg/gar_idle2.wav",
"garg/gar_idle3.wav",
"garg/gar_idle4.wav",
"garg/gar_idle5.wav",
"garg/gar_breathe1.wav",
"garg/gar_breathe2.wav",
"garg/gar_breathe3.wav"
};
/* has unique foot step sounds */
string garg_sndstep[] = {
"garg/gar_step1.wav",
"garg/gar_step2.wav"
};
string garg_sndpain[] = {
"garg/gar_pain1.wav",
"garg/gar_pain2.wav",
"garg/gar_pain3.wav"
};
class monster_gargantua:CBaseMonster
{
float m_flIdleTime;
@ -120,8 +73,7 @@ monster_gargantua::IdleNoise(void)
/* timing needs to adjusted as sounds conflict */
m_flIdleTime = time + random(2,10);
int rand = floor(random(0, garg_sndidle.length));
Sound(garg_sndidle[rand]);
Sound_Play(this, CHAN_VOICE, "monster_gargantua.idle");
}
void
@ -137,8 +89,7 @@ monster_gargantua::Pain(int iHitBody)
return;
}
int rand = floor(random(0,garg_sndpain.length));
Sound(garg_sndpain[rand]);
Sound_Play(this, CHAN_VOICE, "monster_gargantua.pain");
frame = (random() < 0.5) ? GARG_FLINCH : GARG_FLINCH2;
m_flAnimTime = time + 0.25f;
}
@ -151,9 +102,7 @@ monster_gargantua::Death(int iHitBody)
frame = GARG_DIE;
/* the sound */
int rand = floor(random(0,garg_snddie.length));
Sound(garg_snddie[rand]);
Sound_Play(this, CHAN_VOICE, "monster_gargantua.die");
}
/* set the functional differences */
@ -172,25 +121,15 @@ monster_gargantua::Respawn(void)
void monster_gargantua::monster_gargantua(void)
{
for (int i = 0; i <garg_sndalert.length; i++) {
precache_sound(garg_sndattack[i]);
}
for (int i = 0; i <garg_sndattack.length; i++) {
precache_sound(garg_sndattack[i]);
}
for (int i = 0; i < garg_snddie.length; i++) {
precache_sound(garg_snddie[i]);
}
for (int i = 0; i < garg_sndidle.length; i++) {
precache_sound(garg_sndidle[i]);
}
for (int i = 0; i < garg_sndpain.length; i++) {
precache_sound(garg_sndpain[i]);
}
for (int i = 0; i < garg_sndstep.length; i++) {
precache_sound(garg_sndstep[i]);
}
Sound_Precache("monster_gargantua.alert");
Sound_Precache("monster_gargantua.attack");
Sound_Precache("monster_gargantua.attackflame");
Sound_Precache("monster_gargantua.attackflameon");
Sound_Precache("monster_gargantua.attackflameoff");
Sound_Precache("monster_gargantua.die");
Sound_Precache("monster_gargantua.idle");
Sound_Precache("monster_gargantua.pain");
Sound_Precache("monster_gargantua.step");
netname = "Gargantua";
model = "models/garg.mdl";
base_health = Skill_GetValue("gargantua_health");

View file

@ -46,39 +46,7 @@ enum {
HC_STRUGGLE
};
/* these attack sounds are actually the cry when it jumps
* hc_headbite is when the crab actually hits an ent
*/
string hc_sndattack[] = {
"headcrab/hc_attack1.wav",
"headcrab/hc_attack2.wav",
"headcrab/hc_attack3.wav"
};
string hc_snddie[] = {
"headcrab/hc_die1.wav",
"headcrab/hc_die2.wav"
};
string hc_sndidle[] = {
"headcrab/hc_idle1.wav",
"headcrab/hc_idle2.wav",
"headcrab/hc_idle3.wav",
"headcrab/hc_idle4.wav",
"headcrab/hc_idle5.wav"
};
string hc_sndpain[] = {
"headcrab/hc_pain1.wav",
"headcrab/hc_pain2.wav",
"headcrab/hc_pain3.wav"
};
string hc_sndsee[] = {
"headcrab/hc_alert1.wav",
"headcrab/hc_alert2.wav"
};
class monster_headcrab:CBaseMonster
{
@ -125,8 +93,7 @@ monster_headcrab::Pain(int iHitBody)
return;
}
int rand = floor(random(0,hc_sndpain.length));
Sound(hc_sndpain[rand]);
Sound_Play(this, CHAN_VOICE, "monster_headcrab.pain");
frame = HC_FLINCH;
m_flAnimTime = time + 0.25f;
}
@ -138,9 +105,7 @@ monster_headcrab::Death(int iHitBody)
if (style != MONSTER_DEAD) {
frame = HC_DIE;
/* the sound */
int rand = floor(random(0,hc_snddie.length));
Sound(hc_snddie[rand]);
Sound_Play(this, CHAN_VOICE, "monster_headcrab.die");
}
/* set the functional differences */
@ -160,29 +125,18 @@ monster_headcrab::IdleNoise(void)
}
m_flIdleTime = time + random(2,10);
int rand = floor(random(0, hc_sndidle.length));
Sound(hc_sndidle[rand]);
Sound_Play(this, CHAN_VOICE, "monster_headcrab.idle");
}
void
monster_headcrab::monster_headcrab(void)
{
for (int i = 0; i < hc_sndattack.length; i++) {
precache_sound(hc_sndattack[i]);
}
for (int i = 0; i < hc_snddie.length; i++) {
precache_sound(hc_snddie[i]);
}
for (int i = 0; i < hc_sndidle.length; i++) {
precache_sound(hc_sndidle[i]);
}
for (int i = 0; i < hc_sndpain.length; i++) {
precache_sound(hc_sndpain[i]);
}
for (int i = 0; i < hc_sndsee.length; i++) {
precache_sound(hc_sndsee[i]);
}
Sound_Precache("monster_headcrab.alert");
Sound_Precache("monster_headcrab.attack");
Sound_Precache("monster_headcrab.attackhit");
Sound_Precache("monster_headcrab.die");
Sound_Precache("monster_headcrab.idle");
Sound_Precache("monster_headcrab.pain");
if (classname == "monster_babycrab") {
netname = "Baby Headcrab";
model = "models/baby_headcrab.mdl";

View file

@ -56,44 +56,6 @@ enum {
HE_JUMPWINDOW
};
string he_sndattack[] = {
"houndeye/he_attack1.wav",
"houndeye/he_attack2.wav",
"houndeye/he_attack3.wav"
};
string he_snddie[] = {
"houndeye/he_die1.wav",
"houndeye/he_die2.wav",
"houndeye/he_die3.wav"
};
/* Not sure where the hunt sounds are actually used */
string he_sndidle[] = {
"houndeye/he_hunt1.wav",
"houndeye/he_hunt2.wav",
"houndeye/he_hunt3.wav",
"houndeye/he_hunt4.wav",
"houndeye/he_idle1.wav",
"houndeye/he_idle2.wav",
"houndeye/he_idle3.wav",
"houndeye/he_idle4.wav",
};
string he_sndpain[] = {
"houndeye/he_pain1.wav",
"houndeye/he_pain2.wav",
"houndeye/he_pain3.wav",
"houndeye/he_pain4.wav",
"houndeye/he_pain5.wav"
};
string he_sndsee[] = {
"houndeye/he_alert1.wav",
"houndeye/he_alert2.wav",
"houndeye/he_alert3.wav"
};
class monster_houndeye:CBaseMonster
{
float m_flIdleTime;
@ -119,8 +81,7 @@ monster_houndeye::Pain(int iHitBody)
return;
}
int rand = floor(random(0,he_sndpain.length));
Sound(he_sndpain[rand]);
Sound_Play(this, CHAN_VOICE, "monster_houndeye.pain");
frame = HE_FLINCH + floor(random(0, 2));
m_flAnimTime = time + 0.25f;
}
@ -132,9 +93,7 @@ monster_houndeye::Death(int iHitBody)
if (style != MONSTER_DEAD) {
frame = HE_DIE + floor(random(0, 4));
/* the sound */
int rand = floor(random(0,he_snddie.length));
Sound(he_snddie[rand]);
Sound_Play(this, CHAN_VOICE, "monster_houndeye.die");
}
/* set the functional differences */
@ -154,8 +113,7 @@ monster_houndeye::IdleNoise(void)
}
m_flIdleTime = time + random(2,10);
int rand = floor(random(0, he_sndidle.length));
Sound(he_sndidle[rand]);
Sound_Play(this, CHAN_VOICE, "monster_houndeye.idle");
}
void
@ -168,22 +126,11 @@ monster_houndeye::Respawn(void)
void
monster_houndeye::monster_houndeye(void)
{
for (int i = 0; i < he_sndattack.length; i++) {
precache_sound(he_sndattack[i]);
}
for (int i = 0; i < he_snddie.length; i++) {
precache_sound(he_snddie[i]);
}
for (int i = 0; i < he_sndidle.length; i++) {
precache_sound(he_sndidle[i]);
}
for (int i = 0; i < he_sndpain.length; i++) {
precache_sound(he_sndpain[i]);
}
for (int i = 0; i < he_sndsee.length; i++) {
precache_sound(he_sndsee[i]);
}
Sound_Precache("monster_houndeye.alert");
Sound_Precache("monster_houndeye.attack");
Sound_Precache("monster_houndeye.die");
Sound_Precache("monster_houndeye.idle");
Sound_Precache("monster_houndeye.pain");
netname = "Houndeye";
model = "models/houndeye.mdl";
base_health = Skill_GetValue("houndeye_health");

View file

@ -66,7 +66,7 @@ monster_human_assassin::Death(int iHitBody)
frame = HAS_DIEBACK;
}
} else {
frame = HAS_DIE + floor(random(0, 3));
frame = HAS_DIE;
}
}

View file

@ -108,22 +108,6 @@ enum {
GR_PLUNGER
};
/* chat & idle sounds are handled via sentences.txt */
string gr_snddie[] = {
"hgrunt/gr_die1.wav",
"hgrunt/gr_die2.wav",
"hgrunt/gr_die3.wav"
};
string gr_sndpain[] = {
"hgrunt/gr_pain1.wav",
"hgrunt/gr_pain2.wav",
"hgrunt/gr_pain3.wav",
"hgrunt/gr_pain4.wav",
"hgrunt/gr_pain5.wav"
};
class monster_human_grunt:CBaseNPC
{
float m_flIdleTime;
@ -197,8 +181,7 @@ monster_human_grunt::Pain(int iHitBody)
return;
}
int rand = floor(random(0,gr_sndpain.length));
Sound(gr_sndpain[rand]);
Sound_Play(this, CHAN_VOICE, "monster_human_grunt.pain");
frame = GR_FLINCH;
m_flAnimTime = time + 0.25f;
}
@ -221,6 +204,7 @@ monster_human_grunt::Death(int iHitBody)
}
}
Sound_Play(this, CHAN_VOICE, "monster_human_grunt.die");
/* set the functional differences */
CBaseMonster::Death(iHitBody);
}
@ -235,12 +219,8 @@ monster_human_grunt::Respawn(void)
void monster_human_grunt::monster_human_grunt(void)
{
for (int i = 0; i < gr_sndpain.length; i++) {
precache_sound(gr_sndpain[i]);
}
for (int i = 0; i < gr_snddie.length; i++) {
precache_sound(gr_snddie[i]);
}
Sound_Precache("monster_human_grunt.die");
Sound_Precache("monster_human_grunt.pain");
/* Adding some into other slots in hopes it feels right
* listed below are other setences that might need their own:

View file

@ -41,33 +41,6 @@ enum {
ICHY_JUMP
};
string ichy_sndattack[] = {
"ichy/ichy_attack1.wav",
"ichy/ichy_attack2.wav"
};
string ichy_sndidle[] = {
"ichy/ichy_idle1.wav",
"ichy/ichy_idle2.wav",
"ichy/ichy_idle3.wav",
"ichy/ichy_idle4.wav"
};
string ichy_sndpain[] = {
"ichy/ichy_pain1.wav",
"ichy/ichy_pain2.wav",
"ichy/ichy_pain3.wav",
"ichy/ichy_pain4.wav",
"ichy/ichy_pain5.wav"
};
string ichy_sndsee[] = {
"ichy/ichy_alert1.wav",
"ichy/ichy_alert2.wav",
"ichy/ichy_alert3.wav"
};
class monster_ichthyosaur:CBaseMonster
{
float m_flIdleTime;
@ -93,8 +66,7 @@ monster_ichthyosaur::Pain(int iHitBody)
return;
}
int rand = floor(random(0,ichy_sndpain.length));
Sound(ichy_sndpain[rand]);
Sound_Play(this, CHAN_VOICE, "monster_ichthyosaur.pain");
frame = ICHY_FLINCH + floor(random(0, 2));
m_flAnimTime = time + 0.25f;
}
@ -118,9 +90,7 @@ monster_ichthyosaur::Death(int iHitBody)
break;
}
/* the sound */
int rand = floor(random(0,ichy_sndpain.length));
Sound(ichy_sndpain[rand]);
Sound_Play(this, CHAN_VOICE, "monster_ichthyosaur.die");
}
/* set the functional differences */
@ -140,8 +110,7 @@ monster_ichthyosaur::IdleNoise(void)
}
m_flIdleTime = time + random(2,10);
int rand = floor(random(0, ichy_sndidle.length));
Sound(ichy_sndidle[rand]);
Sound_Play(this, CHAN_VOICE, "monster_ichthyosaur.idle");
}
void
@ -154,19 +123,11 @@ monster_ichthyosaur::Respawn(void)
void
monster_ichthyosaur::monster_ichthyosaur(void)
{
for (int i = 0; i < ichy_sndattack.length; i++) {
precache_sound(ichy_sndattack[i]);
}
for (int i = 0; i < ichy_sndidle.length; i++) {
precache_sound(ichy_sndidle[i]);
}
for (int i = 0; i < ichy_sndpain.length; i++) {
precache_sound(ichy_sndpain[i]);
}
for (int i = 0; i < ichy_sndsee.length; i++) {
precache_sound(ichy_sndsee[i]);
}
Sound_Precache("monster_ichthyosaur.alert");
Sound_Precache("monster_ichthyosaur.attack");
Sound_Precache("monster_ichthyosaur.die");
Sound_Precache("monster_ichthyosaur.idle");
Sound_Precache("monster_ichthyosaur.pain");
netname = "Ichthyosaur";
model = "models/icky.mdl";
base_mins = [-32,-32,0];

View file

@ -33,17 +33,6 @@ enum {
LEECH_DIEEND
};
string leech_sndattack[] = {
"leech/leech_bite1.wav",
"leech/leech_bite2.wav",
"leech/leech_bite3.wav"
};
string leech_sndsee[] = {
"leech/leech_alert1.wav",
"leech/leech_alert2.wav"
};
class monster_leech:CBaseMonster
{
float m_flIdleTime;
@ -84,13 +73,8 @@ monster_leech::Respawn(void)
void monster_leech::monster_leech(void)
{
for (int i = 0; i <leech_sndattack.length; i++) {
precache_sound(leech_sndattack[i]);
}
for (int i = 0; i < leech_sndsee.length; i++) {
precache_sound(leech_sndsee[i]);
}
Sound_Precache("monster_leech.alert");
Sound_Precache("monster_leech.attack");
netname = "Leech";
model = "models/leech.mdl";
base_mins = [-6,-6,0];

View file

@ -46,36 +46,6 @@ enum {
NIL_SHOOT
};
/* other sounds
* x_ballattack1 - the portal he casts
* x_shoot1 - ?
* x_teleattack1 - portal's move sound
* nih_die2 - used in map not code? */
/* these attack sounds are his growls */
string nil_sndattack[] = {
"x/x_attack1.wav",
"x/x_attack2.wav",
"x/x_attack3.wav"
};
string nil_sndidle[] = {
"x/x_laugh1.wav",
"x/x_laugh2.wav"
};
string nil_sndpain[] = {
"x/x_pain1.wav",
"x/x_pain2.wav",
"x/x_pain3.wav"
};
string nil_sndrecharge[] = {
"x/x_recharge1.wav",
"x/x_recharge2.wav",
"x/x_recharge3.wav"
};
class monster_nihilanth:CBaseMonster
{
float m_flIdleTime;
@ -102,8 +72,7 @@ monster_nihilanth::IdleNoise(void)
/* timing needs to adjusted as sounds conflict */
m_flIdleTime = time + random(2,10);
int rand = floor(random(0, nil_sndidle.length));
Sound(nil_sndidle[rand]);
Sound_Play(this, CHAN_VOICE, "monster_nihilanth.idle");
}
void
@ -119,8 +88,7 @@ monster_nihilanth::Pain(int iHitBody)
return;
}
int rand = floor(random(0,nil_sndpain.length));
Sound(nil_sndpain[rand]);
Sound_Play(this, CHAN_VOICE, "monster_nihilanth.pain");
frame = (random() < 0.5) ? NIL_FLINCH : NIL_FLINCH2;
m_flAnimTime = time + 0.25f;
@ -132,7 +100,7 @@ monster_nihilanth::Death(int iHitBody)
/* if we're already dead (corpse) don't change animations */
if (style != MONSTER_DEAD) {
frame = NIL_DIE;
Sound("x/x_die1.wav");
Sound_Play(this, CHAN_VOICE, "monster_nihilanth.die");
}
/* set the functional differences */
@ -148,19 +116,13 @@ monster_nihilanth::Respawn(void)
void monster_nihilanth::monster_nihilanth(void)
{
for (int i = 0; i <nil_sndattack.length; i++) {
precache_sound(nil_sndattack[i]);
}
for (int i = 0; i < nil_sndidle.length; i++) {
precache_sound(nil_sndidle[i]);
}
for (int i = 0; i < nil_sndpain.length; i++) {
precache_sound(nil_sndpain[i]);
}
for (int i = 0; i < nil_sndrecharge.length; i++) {
precache_sound(nil_sndrecharge[i]);
}
Sound_Precache("monster_nihilanth.attack");
Sound_Precache("monster_nihilanth.attackball");
Sound_Precache("monster_nihilanth.attackballmove");
Sound_Precache("monster_nihilanth.die");
Sound_Precache("monster_nihilanth.idle");
Sound_Precache("monster_nihilanth.pain");
Sound_Precache("monster_nihilanth.recharge");
netname = "Nihilanth";
model = "models/nihilanth.mdl";
base_health = Skill_GetValue("nihilanth_health");

View file

@ -68,26 +68,6 @@ enum {
SCIA_DEADTABLE3
};
string sci_snddie[] = {
"scientist/sci_die1.wav",
"scientist/sci_die2.wav",
"scientist/sci_die3.wav",
"scientist/sci_die4.wav"
};
string sci_sndpain[] = {
"scientist/sci_pain1.wav",
"scientist/sci_pain2.wav",
"scientist/sci_pain3.wav",
"scientist/sci_pain4.wav",
"scientist/sci_pain5.wav",
"scientist/sci_pain6.wav",
"scientist/sci_pain7.wav",
"scientist/sci_pain8.wav",
"scientist/sci_pain9.wav",
"scientist/sci_pain10.wav"
};
class monster_scientist:CBaseNPC
{
void() monster_scientist;
@ -143,8 +123,7 @@ monster_scientist::Pain(int iHitBody)
return;
}
int rand = floor(random(0,sci_sndpain.length));
Speak(sci_sndpain[rand]);
Sound_Speak(this, "monster_scientist.pain");
frame = SCIA_FLINCH + floor(random(0, 6));
m_iFlags |= MONSTER_FEAR;
@ -156,8 +135,7 @@ monster_scientist::Death(int iHitBody)
{
WarnAllies();
int r = floor(random(0,sci_snddie.length));
Speak(sci_snddie[r]);
Sound_Speak(this, "monster_scientist.die");
if (style != MONSTER_DEAD) {
frame = SCIA_DIE_SIMPLE + floor(random(0, 6));
@ -178,12 +156,8 @@ monster_scientist::Respawn(void)
void
monster_scientist::monster_scientist(void)
{
for (int i = 0; i < sci_sndpain.length; i++) {
precache_sound(sci_sndpain[i]);
}
for (int i = 0; i < sci_snddie.length; i++) {
precache_sound(sci_snddie[i]);
}
Sound_Precache("monster_scientist.die");
Sound_Precache("monster_scientist.pain");
if (spawnflags & MSF_PREDISASTER) {
m_talkAsk = "";

View file

@ -31,15 +31,6 @@ enum {
SENT_DIE
};
/* seems to use tu_ping for it's active idle state
* tu_alert for it's deploy sound?
*/
string sent_snddie[] = {
"turret/tu_die1.wav",
"turret/tu_die2.wav",
"turret/tu_die3.wav"
};
class monster_sentry:CBaseMonster
{
@ -55,11 +46,8 @@ monster_sentry::Death(int iHitBody)
{
/* if we're already dead (corpse) don't change animations */
if (style != MONSTER_DEAD) {
frame = SENT_DIE;
/* the sound */
int rand = floor(random(0,sent_snddie.length));
Sound(sent_snddie[rand]);
frame = SENT_DIE;
Sound_Play(this, CHAN_VOICE, "monster_sentry.die");
}
/* set the functional differences */
@ -76,11 +64,10 @@ monster_sentry::Respawn(void)
void monster_sentry::monster_sentry(void)
{
for (int i = 0; i < con_sndattack.length; i++) {
precache_sound(con_sndattack[i]);
}
Sound_Precache("monster_sentry.alert");
Sound_Precache("monster_sentry.die");
Sound_Precache("monster_sentry.idle");
Sound_Precache("monster_sentry.retract");
netname = "Sentry";
model = "models/sentry.mdl";
base_health = Skill_GetValue("sentry_health");

View file

@ -79,31 +79,6 @@ enum {
TE_GRAB
};
string te_sndattack[] = {
"tentacle/te_strike1.wav",
"tentacle/te_strike2.wav"
};
string te_snddeath[] = {
"tentacle/te_death2.wav"
};
/* includes some cut sounds, might be interesting */
string te_sndidle[] = {
"tentacle/te_roar1.wav",
"tentacle/te_roar2.wav",
"tentacle/te_search1.wav",
"tentacle/te_search2.wav",
"tentacle/te_sing1.wav",
"tentacle/te_sing2.wav"
};
/* cut sounds, listing here because why not */
string te_sndsee[] = {
"tentacle/te_alert1.wav",
"tentacle/te_alert2.wav"
};
class monster_tentacle:CBaseMonster
{
float m_flIdleTime;
@ -128,8 +103,7 @@ monster_tentacle::IdleNoise(void)
/* timing needs to adjusted as sounds conflict */
m_flIdleTime = time + random(2,10);
int rand = floor(random(0, te_sndidle.length));
Sound(te_sndidle[rand]);
Sound_Play(this, CHAN_VOICE, "monster_tentacle.idle");
}
void
@ -145,6 +119,10 @@ monster_tentacle::Respawn(void)
void
monster_tentacle::monster_tentacle(void)
{
Sound_Precache("monster_tentacle.alert");
Sound_Precache("monster_tentacle.attack");
Sound_Precache("monster_tentacle.die");
Sound_Precache("monster_tentacle.idle");
netname = "Tentacle";
model = "models/tentacle2.mdl";
base_mins = [-32,-32,0];

View file

@ -150,8 +150,8 @@ monster_zombie::monster_zombie(void)
{
Sound_Precache("monster_zombie.alert");
Sound_Precache("monster_zombie.attack");
Sound_Precache("monster_zombie.claw");
Sound_Precache("monster_zombie.clawmiss");
Sound_Precache("monster_zombie.attackhit");
Sound_Precache("monster_zombie.attackmiss");
Sound_Precache("monster_zombie.idle");
Sound_Precache("monster_zombie.pain");
netname = "Zombie";

View file

@ -431,4 +431,61 @@ Sound_Update(entity target, int channel, int sample, float volume)
g_sounds[sample].offset
);
}
#else
void
Sound_Speak(entity target, string shader)
{
int r;
float radius;
float pitch;
int flags;
int sample;
sample = (int)hash_get(g_hashsounds, shader);
if (sample < 0) {
return;
}
/* pick a sample */
r = floor(random(0, g_sounds[sample].sample_count));
tokenizebyseparator(g_sounds[sample].samples, "\n");
/* set pitch */
pitch = random(g_sounds[sample].pitch_min, g_sounds[sample].pitch_max);
radius = g_sounds[sample].dist_max;
/* flags */
if (g_sounds[sample].flags & SNDFL_NOREVERB) {
flags |= SOUNDFLAG_NOREVERB;
}
if (g_sounds[sample].flags & SNDFL_GLOBAL) {
radius = ATTN_NONE;
}
if (g_sounds[sample].flags & SNDFL_LOOPING) {
flags |= SOUNDFLAG_FORCELOOP;
}
if (g_sounds[sample].flags & SNDFL_NODUPS) {
if (g_sounds[sample].playc >= g_sounds[sample].sample_count) {
g_sounds[sample].playc = 0;
}
r = g_sounds[sample].playc++;
}
if (g_sounds[sample].flags & SOUNDFLAG_FOLLOW) {
flags |= SOUNDFLAG_FOLLOW;
}
if (g_sounds[sample].flags & SNDFL_PRIVATE) {
flags |= SOUNDFLAG_UNICAST;
msg_entity = target;
}
WriteByte(MSG_MULTICAST, SVC_CGAMEPACKET);
WriteByte(MSG_MULTICAST, EV_SPEAK);
WriteEntity(MSG_MULTICAST, target);
WriteString(MSG_MULTICAST, argv(r));
WriteFloat(MSG_MULTICAST, pitch);
msg_entity = target;
multicast(target.origin, MULTICAST_PVS);
}
#endif

View file

@ -1,3 +1,574 @@
monster_alien_grunt.alert
{
sample agrunt/ag_alert1.wav
sample agrunt/ag_alert2.wav
sample agrunt/ag_alert3.wav
sample agrunt/ag_alert4.wav
sample agrunt/ag_alert5.wav
}
monster_alien_grunt.attack
{
sample agrunt/ag_attack1.wav
sample agrunt/ag_attack2.wav
sample agrunt/ag_attack3.wav
}
monster_alien_grunt.die
{
sample agrunt/ag_die1.wav
sample agrunt/ag_die2.wav
sample agrunt/ag_die3.wav
sample agrunt/ag_die4.wav
sample agrunt/ag_die5.wav
}
monster_alien_grunt.idle
{
sample agrunt/ag_idle1.wav
sample agrunt/ag_idle2.wav
sample agrunt/ag_idle3.wav
sample agrunt/ag_idle4.wav
sample agrunt/ag_idle5.wav
}
monster_alien_grunt.pain
{
sample agrunt/ag_pain1.wav
sample agrunt/ag_pain2.wav
sample agrunt/ag_pain3.wav
sample agrunt/ag_pain4.wav
sample agrunt/ag_pain5.wav
}
monster_alien_controller.alert
{
sample controller/con_alert1.wav
sample controller/con_alert2.wav
sample controller/con_alert3.wav
}
monster_alien_controller.attack
{
sample controller/con_attack1.wav
sample controller/con_attack2.wav
sample controller/con_attack3.wav
}
monster_alien_controller.die
{
sample controller/con_die1.wav
sample controller/con_die2.wav
}
monster_alien_controller.idle
{
sample controller/con_idle1.wav
sample controller/con_idle2.wav
sample controller/con_idle3.wav
sample controller/con_idle4.wav
sample controller/con_idle5.wav
}
monster_alien_controller.pain
{
sample controller/con_pain1.wav
sample controller/con_pain2.wav
sample controller/con_pain3.wav
}
monster_alien_slave.die
{
sample aslave/slv_die1.wav
sample aslave/slv_die2.wav
}
monster_alien_slave.pain
{
sample aslave/slv_pain1.wav
sample aslave/slv_pain2.wav
}
/* bcl_bite3 is played when an entity is in it's mouth bcl_tongue1 unused? */
monster_barnacle.attackchew
{
sample barnacle/bcl_chew1.wav
sample barnacle/bcl_chew2.wav
sample barnacle/bcl_chew3.wav
}
monster_barnacle.attackpull
{
sample barnacle/bcl_alert2.wav
}
monster_barnacle.die
{
sample barnacle/bcl_die1.wav
sample barnacle/bcl_die3.wav
}
monster_barney.die
{
sample barney/ba_die1.wav
sample barney/ba_die1.wav
sample barney/ba_die2.wav
}
monster_barney.pain
{
sample barney/ba_pain1.wav
sample barney/ba_pain1.wav
sample barney/ba_pain1.wav
}
monster_bigmomma.alert
{
sample gonarch/gon_alert1.wav
sample gonarch/gon_alert2.wav
sample gonarch/gon_alert3.wav
}
/* the groans for when she spits? */
monster_bigmomma.attack
{
sample gonarch/gon_attack1.wav
sample gonarch/gon_attack2.wav
sample gonarch/gon_attack3.wav
}
/* mourns the death of her children */
monster_bigmomma.child
{
sample gonarch/gon_childdie1.wav
sample gonarch/gon_childdie2.wav
sample gonarch/gon_childdie3.wav
}
monster_bigmomma.die
{
sample gonarch/gon_die1.wav
sample gonarch/gon_die2.wav
sample gonarch/gon_die3.wav
}
monster_bigmomma.idle
{
sample gonarch/gon_sack1.wav
sample gonarch/gon_sack2.wav
sample gonarch/gon_sack3.wav
}
monster_bigmomma.pain
{
sample gonarch/gon_pain2.wav
sample gonarch/gon_pain3.wav
sample gonarch/gon_pain4.wav
sample gonarch/gon_pain5.wav
}
/* has unique foot step sounds */
monster_bigmomma.step
{
sample gonarch/gon_step1.wav
sample gonarch/gon_step2.wav
sample gonarch/gon_step3.wav
}
monster_bullchicken.attack
{
sample bullchicken/bc_attackgrowl1.wav
sample bullchicken/bc_attackgrowl2.wav
sample bullchicken/bc_attackgrowl3.wav
}
monster_bullchicken.attackbite
{
sample bullchicken/bc_bite1.wav
sample bullchicken/bc_bite2.wav
sample bullchicken/bc_bite3.wav
}
monster_bullchicken.attackshoot
{
sample bullchicken/bc_attack1.wav
sample bullchicken/bc_attack2.wav
sample bullchicken/bc_attack3.wav
}
monster_bullchicken.die
{
sample bullchicken/bc_die1.wav
sample bullchicken/bc_die2.wav
sample bullchicken/bc_die3.wav
}
monster_bullchicken.idle
{
sample bullchicken/bc_idle1.wav
sample bullchicken/bc_idle2.wav
sample bullchicken/bc_idle3.wav
sample bullchicken/bc_idle4.wav
sample bullchicken/bc_idle5.wav
}
monster_bullchicken.pain
{
sample bullchicken/bc_pain1.wav
sample bullchicken/bc_pain2.wav
sample bullchicken/bc_pain3.wav
sample bullchicken/bc_pain4.wav
}
monster_cockroach.die
{
sample roach/rch_die.wav
sample roach/rch_smash.wav
}
monster_gargantua.alert
{
sample garg/gar_alert1.wav
sample garg/gar_alert2.wav
sample garg/gar_alert3.wav
}
/* similar to bullsquid groans during and after attacks */
monster_gargantua.attack
{
sample garg/gar_attack1.wav
sample garg/gar_attack2.wav
sample garg/gar_attack3.wav
}
monster_gargantua.attackflame
{
sample garg/gar_flamerun1.wav
}
monster_gargantua.attackflameoff
{
sample garg/gar_flameoff1.wav
}
monster_gargantua.attackflameon
{
sample garg/gar_flameon1.wav
}
monster_gargantua.die
{
sample garg/gar_die1.wav
sample garg/gar_die2.wav
}
monster_gargantua.idle
{
sample garg/gar_idle1.wav
sample garg/gar_idle2.wav
sample garg/gar_idle3.wav
sample garg/gar_idle4.wav
sample garg/gar_idle5.wav
sample garg/gar_breathe1.wav
sample garg/gar_breathe2.wav
sample garg/gar_breathe3.wav
}
monster_gargantua.pain
{
sample garg/gar_pain1.wav
sample garg/gar_pain2.wav
sample garg/gar_pain3.wav
}
/* has unique foot step sounds */
monster_gargantua.step
{
sample garg/gar_step1.wav
sample garg/gar_step2.wav
}
monster_headcrab.alert
{
sample headcrab/hc_alert1.wav
sample headcrab/hc_alert2.wav
}
/* these attack sounds are actually the cry when it jumps */
monster_headcrab.attack
{
sample headcrab/hc_attack1.wav
sample headcrab/hc_attack2.wav
sample headcrab/hc_attack3.wav
}
monster_headcrab.attackhit
{
sample headcrab/hc_headbite.wav
}
monster_headcrab.die
{
sample headcrab/hc_die1.wav
sample headcrab/hc_die2.wav
}
monster_headcrab.idle
{
sample headcrab/hc_idle1.wav
sample headcrab/hc_idle2.wav
sample headcrab/hc_idle3.wav
sample headcrab/hc_idle4.wav
sample headcrab/hc_idle5.wav
}
monster_headcrab.pain
{
sample headcrab/hc_pain1.wav
sample headcrab/hc_pain2.wav
sample headcrab/hc_pain3.wav
}
monster_houndeye.alert
{
sample houndeye/he_alert1.wav
sample houndeye/he_alert2.wav
sample houndeye/he_alert3.wav
}
monster_houndeye.attack
{
sample houndeye/he_attack1.wav
sample houndeye/he_attack2.wav
sample houndeye/he_attack3.wav
}
monster_houndeye.die
{
sample houndeye/he_die1.wav
sample houndeye/he_die2.wav
sample houndeye/he_die3.wav
}
/* Not sure where the hunt sounds are actually used */
monster_houndeye.idle
{
sample houndeye/he_hunt1.wav
sample houndeye/he_hunt2.wav
sample houndeye/he_hunt3.wav
sample houndeye/he_hunt4.wav
sample houndeye/he_idle1.wav
sample houndeye/he_idle2.wav
sample houndeye/he_idle3.wav
sample houndeye/he_idle4.wav
}
monster_houndeye.pain
{
sample houndeye/he_pain1.wav
sample houndeye/he_pain2.wav
sample houndeye/he_pain3.wav
sample houndeye/he_pain4.wav
sample houndeye/he_pain5.wav
}
monster_human_grunt.die
{
sample hgrunt/gr_die1.wav
sample hgrunt/gr_die2.wav
sample hgrunt/gr_die3.wav
}
monster_human_grunt.pain
{
sample hgrunt/gr_pain1.wav
sample hgrunt/gr_pain2.wav
sample hgrunt/gr_pain3.wav
sample hgrunt/gr_pain4.wav
sample hgrunt/gr_pain5.wav
}
monster_ichthyosaur.alert
{
sample ichy/ichy_alert1.wav
sample ichy/ichy_alert2.wav
sample ichy/ichy_alert3.wav
}
monster_ichthyosaur.attack
{
sample ichy/ichy_attack1.wav
sample ichy/ichy_attack2.wav
}
monster_ichthyosaur.die
{
sample ichy/ichy_die1.wav
sample ichy/ichy_die2.wav
sample ichy/ichy_die3.wav
sample ichy/ichy_die4.wav
}
monster_ichthyosaur.idle
{
sample ichy/ichy_idle1.wav
sample ichy/ichy_idle2.wav
sample ichy/ichy_idle3.wav
sample ichy/ichy_idle4.wav
}
monster_ichthyosaur.pain
{
sample ichy/ichy_pain1.wav
sample ichy/ichy_pain2.wav
sample ichy/ichy_pain3.wav
sample ichy/ichy_pain4.wav
sample ichy/ichy_pain5.wav
}
monster_leech.alert
{
sample leech/leech_alert1.wav
sample leech/leech_alert2.wav
}
monster_leech.attack
{
sample leech/leech_bite1.wav
sample leech/leech_bite2.wav
sample leech/leech_bite3.wav
}
/* other sounds
* x_shoot1 - ?
* nih_die2 - used in map not code? */
/* these attack sounds are his growls */
monster_nihilanth.attack
{
sample x/x_attack1.wav
sample x/x_attack2.wav
sample x/x_attack3.wav
}
monster_nihilanth.attackball
{
sample x/x_ballattack1.wav
}
monster_nihilanth.attackballmove
{
sample x/x_teleattack1.wav
}
monster_nihilanth.die
{
sample x/x_die1.wav
}
monster_nihilanth.idle
{
sample x/x_laugh1.wav
sample x/x_laugh2.wav
}
monster_nihilanth.pain
{
sample x/x_pain1.wav
sample x/x_pain2.wav
sample x/x_pain3.wav
}
monster_nihilanth.recharge
{
sample x/x_recharge1.wav
sample x/x_recharge2.wav
sample x/x_recharge3.wav
}
monster_scientist.die
{
sample scientist/sci_die1.wav
sample scientist/sci_die2.wav
sample scientist/sci_die3.wav
sample scientist/sci_die4.wav
}
monster_scientist.pain
{
sample scientist/sci_pain1.wav
sample scientist/sci_pain2.wav
sample scientist/sci_pain3.wav
sample scientist/sci_pain4.wav
sample scientist/sci_pain5.wav
sample scientist/sci_pain6.wav
sample scientist/sci_pain7.wav
sample scientist/sci_pain8.wav
sample scientist/sci_pain9.wav
sample scientist/sci_pain10.wav
}
monster_sentry.alert
{
sample turret/tu_deploy.wav
}
monster_sentry.die
{
sample turret/tu_die.wav
sample turret/tu_die2.wav
sample turret/tu_die3.wav
}
monster_sentry.idle
{
sample turret/tu_ping.wav
}
monster_sentry.retract
{
sample turret/tu_retract.wav
}
/* cut sounds listing here because why not */
monster_tentacle.alert
{
sample tentacle/te_alert1.wav
sample tentacle/te_alert2.wav
}
monster_tentacle.attack
{
sample tentacle/te_strike1.wav
sample tentacle/te_strike2.wav
}
monster_tentacle.die
{
sample tentacle/te_death2.wav
}
/* includes some cut sounds might be interesting */
monster_tentacle.idle
{
sample tentacle/te_roar1.wav
sample tentacle/te_roar2.wav
sample tentacle/te_search1.wav
sample tentacle/te_search2.wav
sample tentacle/te_sing1.wav
sample tentacle/te_sing2.wav
}
monster_turret.spindown
{
sample turret/tu_spindown.wav
}
monster_turret.spinup
{
sample turret/tu_spinup.wav
}
monster_zombie.alert
{
sample zombie/zo_alert10.wav
@ -11,14 +582,14 @@ monster_zombie.attack
sample zombie/zo_attack2.wav
}
monster_zombie.claw
monster_zombie.attackhit
{
sample zombie/claw_strike1.wav
sample zombie/claw_strike2.wav
sample zombie/claw_strike3.wav
}
monster_zombie.clawmiss
monster_zombie.attackmiss
{
sample zombie/claw_miss1.wav
sample zombie/claw_miss2.wav