From a320e5196ced74f7c2a36490a5ee563e65fc7872 Mon Sep 17 00:00:00 2001 From: codereader Date: Wed, 26 Jan 2022 12:57:47 +0100 Subject: [PATCH] #5893: Fix speaker volumes sticking around after hiding the speaker node --- radiantcore/entity/speaker/SpeakerNode.cpp | 18 ++++++++++++++++++ radiantcore/entity/speaker/SpeakerNode.h | 1 + 2 files changed, 19 insertions(+) diff --git a/radiantcore/entity/speaker/SpeakerNode.cpp b/radiantcore/entity/speaker/SpeakerNode.cpp index 2ace88a7b2..b77210e04d 100644 --- a/radiantcore/entity/speaker/SpeakerNode.cpp +++ b/radiantcore/entity/speaker/SpeakerNode.cpp @@ -459,6 +459,24 @@ void SpeakerNode::onRemoveFromScene(scene::IMapRootNode& root) _renderableRadiiFill.clear(); } +void SpeakerNode::onVisibilityChanged(bool isVisibleNow) +{ + EntityNode::onVisibilityChanged(isVisibleNow); + + if (isVisibleNow) + { + _renderableBox.queueUpdate(); + _renderableRadiiWireframe.queueUpdate(); + _renderableRadiiFill.queueUpdate(); + } + else + { + _renderableBox.clear(); + _renderableRadiiWireframe.clear(); + _renderableRadiiFill.clear(); + } +} + const Vector3& SpeakerNode::getWorldPosition() const { return m_origin; diff --git a/radiantcore/entity/speaker/SpeakerNode.h b/radiantcore/entity/speaker/SpeakerNode.h index 17df45ef2a..9b9ff419e1 100644 --- a/radiantcore/entity/speaker/SpeakerNode.h +++ b/radiantcore/entity/speaker/SpeakerNode.h @@ -135,6 +135,7 @@ class SpeakerNode final : // Called after the constructor is done, overrides EntityNode void construct() override; + void onVisibilityChanged(bool isVisibleNow) override; void onSelectionStatusChange(bool changeGroupStatus) override; private: