From 9af59d47a688553fb0defba7f7c280a0b59b6162 Mon Sep 17 00:00:00 2001 From: fallenoak Date: Sat, 29 Nov 2025 12:42:35 -0600 Subject: [PATCH] feat(sound): apply channel group volume in SESoundInternal::GetVolume --- src/sound/SESoundInternal.cpp | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/sound/SESoundInternal.cpp b/src/sound/SESoundInternal.cpp index 23fa907..56208c5 100644 --- a/src/sound/SESoundInternal.cpp +++ b/src/sound/SESoundInternal.cpp @@ -20,11 +20,26 @@ float SESoundInternal::GetVolume() { float volume = this->m_volume; + // Apply fade volume + if (this->m_fadeIn || this->m_fadeOut) { volume *= this->m_fadeVolume; } - // TODO + // Apply channel group volume + + if (SESound::s_ChannelGroups.Count()) { + auto channelGroupIndex = this->m_channelGroup; + + while (channelGroupIndex != -1) { + auto channelGroup = &SESound::s_ChannelGroups[this->m_channelGroup]; + auto channelGroupVolume = channelGroup->m_volume * channelGroup->m_muteVolume; + + volume *= channelGroupVolume; + + channelGroupIndex = channelGroup->m_parentChannelGroup; + } + } return volume; }