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() );