From 9559feaa9058dd80b6f2e053c1f4393b5ca1a268 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=CE=B6eh=20Matt?= <5415177+ZehMatt@users.noreply.github.com> Date: Fri, 10 Jun 2022 22:59:01 +0300 Subject: [PATCH] Fix effects not being removed from scene graph --- apps/openmw/mwrender/effectmanager.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/apps/openmw/mwrender/effectmanager.cpp b/apps/openmw/mwrender/effectmanager.cpp index 5513765dcd..371f488c3d 100644 --- a/apps/openmw/mwrender/effectmanager.cpp +++ b/apps/openmw/mwrender/effectmanager.cpp @@ -66,10 +66,13 @@ void EffectManager::update(float dt) std::remove_if( mEffects.begin(), mEffects.end(), - [dt](Effect& effect) + [dt, this](Effect& effect) { effect.mAnimTime->addTime(dt); - return effect.mAnimTime->getTime() >= effect.mMaxControllerLength; + const auto remove = effect.mAnimTime->getTime() >= effect.mMaxControllerLength; + if (remove) + mParentNode->removeChild(effect.mTransform); + return remove; }), mEffects.end() );