summaryrefslogtreecommitdiff
path: root/src/game.cpp
diff options
context:
space:
mode:
authorTeTpaAka <TeTpaAka@users.noreply.github.com>2015-06-28 20:51:59 +0200
committerEkdohibs <nathanael.courant@laposte.net>2017-05-06 20:16:16 +0200
commit6658ad3d94c053eeed12bb79e255cdfa46831e19 (patch)
treed6c212503dd8cf00246efeda023ce052cb0e2391 /src/game.cpp
parentde028fc056b26e03ee00324888f870f64e28c756 (diff)
downloadminetest-6658ad3d94c053eeed12bb79e255cdfa46831e19.tar.gz
minetest-6658ad3d94c053eeed12bb79e255cdfa46831e19.tar.bz2
minetest-6658ad3d94c053eeed12bb79e255cdfa46831e19.zip
Make players respect makes_footstep_sound in the object properties
Diffstat (limited to 'src/game.cpp')
-rw-r--r--src/game.cpp14
1 files changed, 10 insertions, 4 deletions
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());