summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpsi29a <psi29a@gmail.com>2022-01-05 08:37:27 +0000
committerpsi29a <psi29a@gmail.com>2022-01-05 08:37:27 +0000
commitd8cc08a7a049319f184e4a08b41203f7e83eba4f (patch)
tree217d64b1455147e176c4425a106739ee6a244897
parentc3d3535ffd471f03cdc48939d7ab3fca496aff70 (diff)
parent909aa43ba12b1d06cf822783215ac84ee6a3730d (diff)
Merge branch 'ripple_fix' into 'master'
Fix persistent ripples (#6531) Closes #6531 See merge request OpenMW/openmw!1535
-rw-r--r--apps/openmw/mwrender/sky.cpp7
-rw-r--r--apps/openmw/mwrender/sky.hpp1
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<CameraRelativeTransform> 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;
};