From 909aa43ba12b1d06cf822783215ac84ee6a3730d Mon Sep 17 00:00:00 2001 From: "glassmancody.info" Date: Tue, 4 Jan 2022 14:10:39 -0800 Subject: [PATCH] update sky particle node correctly --- apps/openmw/mwrender/sky.cpp | 7 ++++--- apps/openmw/mwrender/sky.hpp | 1 + 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/apps/openmw/mwrender/sky.cpp b/apps/openmw/mwrender/sky.cpp index c0a071c062..7b124b018c 100644 --- a/apps/openmw/mwrender/sky.cpp +++ b/apps/openmw/mwrender/sky.cpp @@ -248,6 +248,7 @@ namespace MWRender , mEnabled(true) , mSunEnabled(true) , mPrecipitationAlpha(0.f) + , mDirtyParticlesEffect(false) { osg::ref_ptr skyroot = new CameraRelativeTransform; skyroot->setName("Sky Root"); @@ -537,8 +538,7 @@ namespace MWRender if (!enabled && mParticleNode && mParticleEffect) { mCurrentParticleEffect.clear(); - mParticleNode->removeChild(mParticleEffect); - mParticleEffect = nullptr; + mDirtyParticlesEffect = true; } mEnabled = enabled; @@ -610,8 +610,9 @@ namespace MWRender if (mIsStorm) mStormDirection = weather.mStormDirection; - if (mCurrentParticleEffect != weather.mParticleEffect) + if (mDirtyParticlesEffect || (mCurrentParticleEffect != weather.mParticleEffect)) { + mDirtyParticlesEffect = false; mCurrentParticleEffect = weather.mParticleEffect; // cleanup old particles diff --git a/apps/openmw/mwrender/sky.hpp b/apps/openmw/mwrender/sky.hpp index 1a30633886..e2ceae45f4 100644 --- a/apps/openmw/mwrender/sky.hpp +++ b/apps/openmw/mwrender/sky.hpp @@ -186,6 +186,7 @@ namespace MWRender bool mSunEnabled; float mPrecipitationAlpha; + bool mDirtyParticlesEffect; osg::Vec4f mMoonScriptColor; };