From 6658ad3d94c053eeed12bb79e255cdfa46831e19 Mon Sep 17 00:00:00 2001 From: TeTpaAka Date: Sun, 28 Jun 2015 20:51:59 +0200 Subject: Make players respect makes_footstep_sound in the object properties --- src/game.cpp | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) (limited to 'src/game.cpp') diff --git a/src/game.cpp b/src/game.cpp index ace647456..416320e5d 100644 --- a/src/game.cpp +++ b/src/game.cpp @@ -476,6 +476,7 @@ class SoundMaker ISoundManager *m_sound; INodeDefManager *m_ndef; public: + bool makes_footstep_sound; float m_player_step_timer; SimpleSoundSpec m_player_step_sound; @@ -485,6 +486,7 @@ public: SoundMaker(ISoundManager *sound, INodeDefManager *ndef): m_sound(sound), m_ndef(ndef), + makes_footstep_sound(true), m_player_step_timer(0) { } @@ -493,7 +495,8 @@ public: { if (m_player_step_timer <= 0 && m_player_step_sound.exists()) { m_player_step_timer = 0.03; - m_sound->playSound(m_player_step_sound, false); + if (makes_footstep_sound) + m_sound->playSound(m_player_step_sound, false); } } @@ -3419,11 +3422,14 @@ void Game::updateSound(f32 dtime) camera->getCameraNode()->getUpVector()); sound->setListenerGain(g_settings->getFloat("sound_volume")); + LocalPlayer *player = client->getEnv().getLocalPlayer(); - // Update sound maker - soundmaker->step(dtime); + // Tell the sound maker whether to make footstep sounds + soundmaker->makes_footstep_sound = player->makes_footstep_sound; - LocalPlayer *player = client->getEnv().getLocalPlayer(); + // Update sound maker + if (player->makes_footstep_sound) + soundmaker->step(dtime); ClientMap &map = client->getEnv().getClientMap(); MapNode n = map.getNodeNoEx(player->getFootstepNodePos()); -- cgit v1.2.3