Skip to content

Commit 6658ad3

Browse files
TeTpaAkaEkdohibs
authored andcommittedMay 6, 2017
Make players respect makes_footstep_sound in the object properties
1 parent de028fc commit 6658ad3

File tree

4 files changed

+17
-4
lines changed

4 files changed

+17
-4
lines changed
 

Diff for: ‎src/content_cao.cpp

+4
Original file line numberDiff line numberDiff line change
@@ -1583,6 +1583,10 @@ void GenericCAO::processMessage(const std::string &data)
15831583
m_initial_tx_basepos_set = true;
15841584
m_tx_basepos = m_prop.initial_sprite_basepos;
15851585
}
1586+
if (m_is_local_player) {
1587+
LocalPlayer *player = m_env->getLocalPlayer();
1588+
player->makes_footstep_sound = m_prop.makes_footstep_sound;
1589+
}
15861590

15871591
if ((m_is_player && !m_is_local_player) && m_prop.nametag == "")
15881592
m_prop.nametag = m_name;

Diff for: ‎src/game.cpp

+10-4
Original file line numberDiff line numberDiff line change
@@ -476,6 +476,7 @@ class SoundMaker
476476
ISoundManager *m_sound;
477477
INodeDefManager *m_ndef;
478478
public:
479+
bool makes_footstep_sound;
479480
float m_player_step_timer;
480481

481482
SimpleSoundSpec m_player_step_sound;
@@ -485,6 +486,7 @@ class SoundMaker
485486
SoundMaker(ISoundManager *sound, INodeDefManager *ndef):
486487
m_sound(sound),
487488
m_ndef(ndef),
489+
makes_footstep_sound(true),
488490
m_player_step_timer(0)
489491
{
490492
}
@@ -493,7 +495,8 @@ class SoundMaker
493495
{
494496
if (m_player_step_timer <= 0 && m_player_step_sound.exists()) {
495497
m_player_step_timer = 0.03;
496-
m_sound->playSound(m_player_step_sound, false);
498+
if (makes_footstep_sound)
499+
m_sound->playSound(m_player_step_sound, false);
497500
}
498501
}
499502

@@ -3419,11 +3422,14 @@ void Game::updateSound(f32 dtime)
34193422
camera->getCameraNode()->getUpVector());
34203423
sound->setListenerGain(g_settings->getFloat("sound_volume"));
34213424

3425+
LocalPlayer *player = client->getEnv().getLocalPlayer();
34223426

3423-
// Update sound maker
3424-
soundmaker->step(dtime);
3427+
// Tell the sound maker whether to make footstep sounds
3428+
soundmaker->makes_footstep_sound = player->makes_footstep_sound;
34253429

3426-
LocalPlayer *player = client->getEnv().getLocalPlayer();
3430+
// Update sound maker
3431+
if (player->makes_footstep_sound)
3432+
soundmaker->step(dtime);
34273433

34283434
ClientMap &map = client->getEnv().getClientMap();
34293435
MapNode n = map.getNodeNoEx(player->getFootstepNodePos());

Diff for: ‎src/localplayer.cpp

+1
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ LocalPlayer::LocalPlayer(Client *client, const char *name):
5858
last_camera_fov(0),
5959
last_wanted_range(0),
6060
camera_impact(0.f),
61+
makes_footstep_sound(true),
6162
last_animation(NO_ANIM),
6263
hotbar_image(""),
6364
hotbar_selected_image(""),

Diff for: ‎src/localplayer.h

+2
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,8 @@ class LocalPlayer : public Player
9191

9292
float camera_impact;
9393

94+
bool makes_footstep_sound;
95+
9496
int last_animation;
9597
float last_animation_speed;
9698

0 commit comments

Comments
 (0)
Please sign in to comment.