CAO footstep sounds: Reduce gain to balance volume

master
paramat 2017-09-19 16:39:30 +01:00 committed by paramat
parent e2afcf85ce
commit ee0bfbede1
1 changed files with 8 additions and 7 deletions

View File

@ -862,16 +862,17 @@ void GenericCAO::step(float dtime, ClientEnvironment *env)
float moved = lastpos.getDistanceFrom(pos_translator.vect_show); float moved = lastpos.getDistanceFrom(pos_translator.vect_show);
m_step_distance_counter += moved; m_step_distance_counter += moved;
if(m_step_distance_counter > 1.5*BS) if (m_step_distance_counter > 1.5f * BS) {
{ m_step_distance_counter = 0.0f;
m_step_distance_counter = 0; if (!m_is_local_player && m_prop.makes_footstep_sound) {
if(!m_is_local_player && m_prop.makes_footstep_sound)
{
INodeDefManager *ndef = m_client->ndef(); INodeDefManager *ndef = m_client->ndef();
v3s16 p = floatToInt(getPosition() + v3f(0, v3s16 p = floatToInt(getPosition() +
(m_prop.collisionbox.MinEdge.Y-0.5)*BS, 0), BS); v3f(0.0f, (m_prop.collisionbox.MinEdge.Y - 0.5f) * BS, 0.0f), BS);
MapNode n = m_env->getMap().getNodeNoEx(p); MapNode n = m_env->getMap().getNodeNoEx(p);
SimpleSoundSpec spec = ndef->get(n).sound_footstep; SimpleSoundSpec spec = ndef->get(n).sound_footstep;
// Reduce footstep gain, as non-local-player footsteps are
// somehow louder.
spec.gain *= 0.6f;
m_client->sound()->playSoundAt(spec, false, getPosition()); m_client->sound()->playSoundAt(spec, false, getPosition());
} }
} }