summaryrefslogtreecommitdiff
path: root/src/game.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/game.cpp')
-rw-r--r--src/game.cpp73
1 files changed, 67 insertions, 6 deletions
diff --git a/src/game.cpp b/src/game.cpp
index 4c9442c00..3cad4c895 100644
--- a/src/game.cpp
+++ b/src/game.cpp
@@ -784,13 +784,15 @@ class SoundMaker
{
public:
ISoundManager *m_sound;
+
+ float m_player_step_timer;
SimpleSoundSpec m_player_step_sound;
- float m_player_step_timer;
+ SimpleSoundSpec m_player_leftpunch_sound;
+ SimpleSoundSpec m_player_rightpunch_sound;
SoundMaker(ISoundManager *sound):
m_sound(sound),
- m_player_step_sound("default_grass_walk"),
m_player_step_timer(0)
{
}
@@ -803,6 +805,20 @@ public:
}
}
+ void playPlayerLeftPunch()
+ {
+ if(m_player_leftpunch_sound.exists()){
+ m_sound->playSound(m_player_leftpunch_sound, false);
+ }
+ }
+
+ void playPlayerRightPunch()
+ {
+ if(m_player_rightpunch_sound.exists()){
+ m_sound->playSound(m_player_rightpunch_sound, false);
+ }
+ }
+
static void viewBobbingStep(MtEvent *e, void *data)
{
SoundMaker *sm = (SoundMaker*)data;
@@ -817,6 +833,19 @@ public:
static void playerJump(MtEvent *e, void *data)
{
+ //SoundMaker *sm = (SoundMaker*)data;
+ }
+
+ static void cameraPunchLeft(MtEvent *e, void *data)
+ {
+ SoundMaker *sm = (SoundMaker*)data;
+ sm->playPlayerLeftPunch();
+ }
+
+ static void cameraPunchRight(MtEvent *e, void *data)
+ {
+ SoundMaker *sm = (SoundMaker*)data;
+ sm->playPlayerRightPunch();
}
void registerReceiver(MtEventManager *mgr)
@@ -824,6 +853,8 @@ public:
mgr->reg("ViewBobbingStep", SoundMaker::viewBobbingStep, this);
mgr->reg("PlayerRegainGround", SoundMaker::playerRegainGround, this);
mgr->reg("PlayerJump", SoundMaker::playerJump, this);
+ mgr->reg("CameraPunchLeft", SoundMaker::cameraPunchLeft, this);
+ mgr->reg("CameraPunchRight", SoundMaker::cameraPunchRight, this);
}
void step(float dtime)
@@ -904,11 +935,26 @@ void the_game(
// Test sounds
sound->loadSound("default_grass_footstep", porting::path_share + DIR_DELIM
- + "sounds" + DIR_DELIM + "default_grass_walk3_mono.ogg");
+ + "sounds" + DIR_DELIM + "default_grass_walk1.ogg");
+ sound->loadSound("default_grass_footstep", porting::path_share + DIR_DELIM
+ + "sounds" + DIR_DELIM + "default_grass_walk2.ogg");
sound->loadSound("default_grass_footstep", porting::path_share + DIR_DELIM
- + "sounds" + DIR_DELIM + "default_grass_walk4_mono.ogg");
- //sound->playSound("default_grass_walk", false, 1.0);
- //sound->playSoundAt("default_grass_walk", true, 1.0, v3f(0,10,0)*BS);
+ + "sounds" + DIR_DELIM + "default_grass_walk3.ogg");
+
+ sound->loadSound("default_dig_crumbly", porting::path_share + DIR_DELIM
+ + "sounds" + DIR_DELIM + "default_dig_crumbly1.ogg");
+ sound->loadSound("default_dig_crumbly", porting::path_share + DIR_DELIM
+ + "sounds" + DIR_DELIM + "default_dig_crumbly2.ogg");
+
+ sound->loadSound("default_dig_cracky", porting::path_share + DIR_DELIM
+ + "sounds" + DIR_DELIM + "default_dig_cracky1.ogg");
+
+ sound->loadSound("default_place_node", porting::path_share + DIR_DELIM
+ + "sounds" + DIR_DELIM + "default_place_node1.ogg");
+ sound->loadSound("default_place_node", porting::path_share + DIR_DELIM
+ + "sounds" + DIR_DELIM + "default_place_node2.ogg");
+ sound->loadSound("default_place_node", porting::path_share + DIR_DELIM
+ + "sounds" + DIR_DELIM + "default_place_node3.ogg");
// Add chat log output for errors to be shown in chat
LogOutputBuffer chat_log_error_buf(LMT_ERROR);
@@ -2131,6 +2177,11 @@ void the_game(
}
}
+ // We can't actually know, but assume the sound of right-clicking
+ // to be the sound of placing a node
+ soundmaker.m_player_rightpunch_sound.gain = 0.5;
+ soundmaker.m_player_rightpunch_sound.name = "default_place_node";
+
/*
Handle digging
*/
@@ -2156,6 +2207,16 @@ void the_game(
if(tp)
params = getDigParams(nodedef->get(n).groups, tp);
}
+
+ soundmaker.m_player_leftpunch_sound.gain = 0.5;
+ if(params.main_group == "crumbly")
+ soundmaker.m_player_leftpunch_sound.name =
+ "default_dig_crumbly";
+ else if(params.main_group == "cracky")
+ soundmaker.m_player_leftpunch_sound.name =
+ "default_dig_cracky";
+ else
+ soundmaker.m_player_leftpunch_sound.name = "";
float dig_time_complete = 0.0;