From 49f9195f4247b564186730e0cc95ec199e05127b Mon Sep 17 00:00:00 2001
From: Kitty Barnett <develop@catznip.com>
Date: Sat, 24 Apr 2021 18:51:07 +0200
Subject: [PATCH] [FIXED] LLVisualEffectParams::step(bool isLast) will always
 be called with isLast == false (fixes RLVa spheres issues when AA is
 disabled)

---
 indra/newview/llvisualeffect.cpp | 7 ++++---
 indra/newview/llvisualeffect.h   | 1 +
 2 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/indra/newview/llvisualeffect.cpp b/indra/newview/llvisualeffect.cpp
index af68a574136..efa0cbf2b11 100644
--- a/indra/newview/llvisualeffect.cpp
+++ b/indra/newview/llvisualeffect.cpp
@@ -114,11 +114,12 @@ void LLVfxManager::runEffect(EVisualEffect eCode, LLVisualEffectParams* pParams)
 
 	auto itEffect = boost::make_filter_iterator(pred, m_Effects.begin(), m_Effects.end()),
 	     endEffect = boost::make_filter_iterator(pred, m_Effects.end(), m_Effects.end());
-	for (; itEffect != endEffect; ++itEffect)
+	while (itEffect != endEffect)
 	{
+		LLVisualEffect* pEffect = *itEffect;
 		if (pParams)
-			pParams->step(itEffect == endEffect);
-		(*itEffect)->run(pParams);
+			pParams->step(++itEffect == endEffect);
+		pEffect->run(pParams);
 	}
 }
 
diff --git a/indra/newview/llvisualeffect.h b/indra/newview/llvisualeffect.h
index 6419e26b297..69387d49af8 100644
--- a/indra/newview/llvisualeffect.h
+++ b/indra/newview/llvisualeffect.h
@@ -163,6 +163,7 @@ class LLVfxManager : public LLSingleton<LLVfxManager>
 	template<typename T> T* getEffect(const LLUUID& idEffect) const { return dynamic_cast<T*>(getEffect(idEffect)); }
 	LLVisualEffect* getEffect(EVisualEffect eCode) const;
 	template<typename T> T* getEffect(EVisualEffect eCode) const { return dynamic_cast<T*>(getEffect(eCode)); }
+	bool            hasEffect(EVisualEffect eCode) const         { return getEffect(eCode); }
 	bool            removeEffect(const LLUUID& idEffect);
 	void            runEffect(EVisualEffect eCode, LLVisualEffectParams* pParams = nullptr);
 	void            runEffect(EVisualEffectType eType, LLVisualEffectParams* pParams = nullptr);
-- 
GitLab