From 06e93f8d9508a23e86751dfae2f6a7e550d8e1af Mon Sep 17 00:00:00 2001 From: Perttu Ahola Date: Sat, 24 Mar 2012 11:10:28 +0200 Subject: Add sound.dig --- src/game.cpp | 16 ++++++++++++---- src/nodedef.cpp | 3 +++ src/nodedef.h | 1 + src/scriptapi.cpp | 3 +++ 4 files changed, 19 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/game.cpp b/src/game.cpp index 9715c6676..1dcda043e 100644 --- a/src/game.cpp +++ b/src/game.cpp @@ -2250,10 +2250,18 @@ void the_game( params = getDigParams(nodedef->get(n).groups, tp); } - if(params.main_group != ""){ - soundmaker.m_player_leftpunch_sound.gain = 0.5; - soundmaker.m_player_leftpunch_sound.name = - std::string("default_dig_") + params.main_group; + SimpleSoundSpec sound_dig = nodedef->get(n).sound_dig; + if(sound_dig.exists()){ + if(sound_dig.name == "__group"){ + if(params.main_group != ""){ + soundmaker.m_player_leftpunch_sound.gain = 0.5; + soundmaker.m_player_leftpunch_sound.name = + std::string("default_dig_") + + params.main_group; + } + } else{ + soundmaker.m_player_leftpunch_sound = sound_dig; + } } float dig_time_complete = 0.0; diff --git a/src/nodedef.cpp b/src/nodedef.cpp index 954467d48..6bdb36261 100644 --- a/src/nodedef.cpp +++ b/src/nodedef.cpp @@ -156,6 +156,7 @@ void ContentFeatures::reset() legacy_facedir_simple = false; legacy_wallmounted = false; sound_footstep = SimpleSoundSpec(); + sound_dig = SimpleSoundSpec("__group"); sound_dug = SimpleSoundSpec(); } @@ -204,6 +205,7 @@ void ContentFeatures::serialize(std::ostream &os) writeU8(os, legacy_facedir_simple); writeU8(os, legacy_wallmounted); serializeSimpleSoundSpec(sound_footstep, os); + serializeSimpleSoundSpec(sound_dig, os); serializeSimpleSoundSpec(sound_dug, os); } @@ -258,6 +260,7 @@ void ContentFeatures::deSerialize(std::istream &is) legacy_wallmounted = readU8(is); try{ deSerializeSimpleSoundSpec(sound_footstep, is); + deSerializeSimpleSoundSpec(sound_dig, is); deSerializeSimpleSoundSpec(sound_dug, is); }catch(SerializationError &e) {}; } diff --git a/src/nodedef.h b/src/nodedef.h index 585755b9d..a7ffa5a2e 100644 --- a/src/nodedef.h +++ b/src/nodedef.h @@ -203,6 +203,7 @@ struct ContentFeatures // Sound properties SimpleSoundSpec sound_footstep; + SimpleSoundSpec sound_dig; SimpleSoundSpec sound_dug; /* diff --git a/src/scriptapi.cpp b/src/scriptapi.cpp index fce760eb8..5ce5f3b29 100644 --- a/src/scriptapi.cpp +++ b/src/scriptapi.cpp @@ -1062,6 +1062,9 @@ static ContentFeatures read_content_features(lua_State *L, int index) lua_getfield(L, -1, "footstep"); read_soundspec(L, -1, f.sound_footstep); lua_pop(L, 1); + lua_getfield(L, -1, "dig"); + read_soundspec(L, -1, f.sound_dig); + lua_pop(L, 1); lua_getfield(L, -1, "dug"); read_soundspec(L, -1, f.sound_dug); lua_pop(L, 1); -- cgit v1.2.3