float n;\r
float tauntrand;\r
float vol_scale, vol_prey, vol_apply;\r
+ float pitch;\r
\r
if(sample == "")\r
return;\r
if(self.stat_eaten && cvar("g_vore_soundocclusion")) // reduce sound volume for prey, to simulate stomach culling\r
vol_prey *= bound(0, cvar("g_vore_soundocclusion"), 1);\r
\r
+ // modified sound pitch, based on player scale\r
+ if(cvar("g_healthsize") && cvar("g_healthsize_pitch"))\r
+ pitch = pow(self.scale, -cvar("g_healthsize_pitch"));\r
+\r
switch(voicetype)\r
{\r
case VOICETYPE_LASTATTACKER_ONLY:\r
{\r
vol_apply = vol;\r
vol_apply *= (self.predator != msg_entity.predator && self != msg_entity) ? vol_scale * vol_prey : vol_scale;\r
- soundto(MSG_ONE, self, chan, sample, vol_apply, ATTN_MIN, 0);\r
+ soundto(MSG_ONE, self, chan, sample, vol_apply, ATTN_MIN, pitch);\r
}\r
else\r
- soundto(MSG_ONE, self, chan, sample, vol, ATTN_NONE, 0);\r
+ soundto(MSG_ONE, self, chan, sample, vol, ATTN_NONE, pitch);\r
}\r
}\r
break;\r
{\r
vol_apply = vol;\r
vol_apply *= (self.predator != msg_entity.predator && self != msg_entity) ? vol_scale * vol_prey : vol_scale;\r
- soundto(MSG_ONE, self, chan, sample, vol_apply, ATTN_MIN, 0);\r
+ soundto(MSG_ONE, self, chan, sample, vol_apply, ATTN_MIN, pitch);\r
}\r
else\r
- soundto(MSG_ONE, self, chan, sample, vol, ATTN_NONE, 0);\r
+ soundto(MSG_ONE, self, chan, sample, vol, ATTN_NONE, pitch);\r
}\r
msg_entity = self;\r
if(clienttype(msg_entity) == CLIENTTYPE_REAL)\r
- soundto(MSG_ONE, self, chan, sample, VOL_BASE, ATTN_NONE, 0);\r
+ soundto(MSG_ONE, self, chan, sample, VOL_BASE, ATTN_NONE, pitch);\r
}\r
break;\r
case VOICETYPE_TEAMRADIO:\r
{\r
vol_apply = vol;\r
vol_apply *= (self.predator != msg_entity.predator && self != msg_entity) ? vol_scale * vol_prey : vol_scale;\r
- soundto(MSG_ONE, self, chan, sample, vol_apply, ATTN_MIN, 0);\r
+ soundto(MSG_ONE, self, chan, sample, vol_apply, ATTN_MIN, pitch);\r
}\r
else\r
- soundto(MSG_ONE, self, chan, sample, vol, ATTN_NONE, 0);\r
+ soundto(MSG_ONE, self, chan, sample, vol, ATTN_NONE, pitch);\r
}\r
break;\r
case VOICETYPE_AUTOTAUNT:\r
{\r
vol_apply = vol;\r
vol_apply *= (self.predator != msg_entity.predator && self != msg_entity) ? vol_scale * vol_prey : vol_scale;\r
- soundto(MSG_ONE, self, chan, sample, vol_apply, bound(ATTN_MIN, msg_entity.cvar_cl_voice_directional_taunt_attenuation, ATTN_MAX), 0);\r
+ soundto(MSG_ONE, self, chan, sample, vol_apply, bound(ATTN_MIN, msg_entity.cvar_cl_voice_directional_taunt_attenuation, ATTN_MAX), pitch);\r
}\r
else\r
- soundto(MSG_ONE, self, chan, sample, vol, ATTN_NONE, 0);\r
+ soundto(MSG_ONE, self, chan, sample, vol, ATTN_NONE, pitch);\r
}\r
break;\r
case VOICETYPE_TAUNT:\r
{\r
vol_apply = vol;\r
vol_apply *= (self.predator != msg_entity.predator && self != msg_entity) ? vol_scale * vol_prey : vol_scale;\r
- soundto(MSG_ONE, self, chan, sample, vol_apply, bound(ATTN_MIN, msg_entity.cvar_cl_voice_directional_taunt_attenuation, ATTN_MAX), 0);\r
+ soundto(MSG_ONE, self, chan, sample, vol_apply, bound(ATTN_MIN, msg_entity.cvar_cl_voice_directional_taunt_attenuation, ATTN_MAX), pitch);\r
}\r
else\r
- soundto(MSG_ONE, self, chan, sample, vol, ATTN_NONE, 0);\r
+ soundto(MSG_ONE, self, chan, sample, vol, ATTN_NONE, pitch);\r
}\r
case VOICETYPE_PLAYERSOUND:\r
FOR_EACH_REALCLIENT(msg_entity)\r
{\r
vol_apply = vol;\r
vol_apply *= (self.predator != msg_entity.predator && self != msg_entity) ? vol_scale * vol_prey : vol_scale;\r
- soundto(MSG_ONE, self, chan, sample, vol_apply, ATTN_NORM, 0);\r
+ soundto(MSG_ONE, self, chan, sample, vol_apply, ATTN_NORM, pitch);\r
}\r
break;\r
case VOICETYPE_GURGLE:\r
// since players can't be prey and predators at the same time, we don't use the prey modifier for the gurgle sound volume\r
if(self.stomach_load)\r
- sound(self, chan, sample, bound(0, vol_scale * (self.stomach_load / self.stomach_maxload), 1), ATTN_NORM);\r
+ sound7(self, chan, sample, bound(0, vol_scale * (self.stomach_load / self.stomach_maxload), 1), ATTN_NORM, pitch, 0);\r
else\r
stopsound(self, chan);\r
break;\r