diff --git a/Quake/ls_main.cpp b/Quake/ls_main.cpp index f89920beb..f4f4aa006 100644 --- a/Quake/ls_main.cpp +++ b/Quake/ls_main.cpp @@ -349,6 +349,26 @@ static int LS_value_sound_loopstart(lua_State* state) return 0; } +static int LS_MakeSoundSilent(lua_State* state) +{ + if (const sfxcache_t* const cachedsound = LS_GetCachedSoundFromUserData(state)) + { + byte* const sounddata = const_cast(cachedsound)->data; + memset(sounddata, 0, cachedsound->length); + + lua_pushboolean(state, true); + return 1; + } + + return 0; +} + +static int LS_value_sound_makesilent(lua_State* state) +{ + lua_pushcfunction(state, LS_MakeSoundSilent); + return 1; +} + static int LS_value_sound_name(lua_State* state) { if (const sfx_t* const sound = LS_GetSoundFromUserData(state)) @@ -429,6 +449,7 @@ static int LS_global_sounds_index(lua_State* state) { "framerate", LS_value_sound_framerate }, { "framecount", LS_value_sound_framecount }, { "loopstart", LS_value_sound_loopstart }, + { "makesilent", LS_value_sound_makesilent }, { "name", LS_value_sound_name }, { "samplesize", LS_value_sound_samplesize }, { "size", LS_value_sound_size },