From 3b3c5f081c1424ac7abc19ad7a999b23e42d89d8 Mon Sep 17 00:00:00 2001 From: MihailRis Date: Wed, 27 Mar 2024 20:37:03 +0300 Subject: [PATCH] ALSpeaker start volume fix + 'master' channel is now forbidden to use in Lua --- src/audio/AL/ALAudio.cpp | 2 +- src/logic/scripting/lua/libaudio.cpp | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/audio/AL/ALAudio.cpp b/src/audio/AL/ALAudio.cpp index 1aa231e0..01cc71f6 100644 --- a/src/audio/AL/ALAudio.cpp +++ b/src/audio/AL/ALAudio.cpp @@ -259,7 +259,7 @@ void ALSpeaker::play() { paused = false; stopped = false; auto channel = get_channel(this->channel); - AL_CHECK(alSourcef(source, AL_GAIN, volume * channel->getVolume())); + AL_CHECK(alSourcef(source, AL_GAIN, volume * channel->getVolume() * get_channel(0)->getVolume())); AL_CHECK(alSourcePlay(source)); } diff --git a/src/logic/scripting/lua/libaudio.cpp b/src/logic/scripting/lua/libaudio.cpp index 04401ea5..19c7975a 100644 --- a/src/logic/scripting/lua/libaudio.cpp +++ b/src/logic/scripting/lua/libaudio.cpp @@ -13,7 +13,11 @@ inline int extract_channel_index(lua_State* L, int idx) { if (!lua_isnoneornil(L, idx)) { channel = lua_tostring(L, idx); } - return audio::get_channel_index(channel); + int index = audio::get_channel_index(channel); + if (index == 0) { + return -1; + } + return index; } inline audio::speakerid_t play_sound(