summaryrefslogtreecommitdiff
path: root/indra/newview/lldrawable.cpp
diff options
context:
space:
mode:
authorJonathan "Geenz" Goodman <geenz@lindenlab.com>2025-04-15 10:14:27 -0400
committerGitHub <noreply@github.com>2025-04-15 10:14:27 -0400
commitd19d44cc727b4c360ff8618c4c9375f4f10cec71 (patch)
tree46ce4ffb1a10c1203a0189918ddc536cf5a9a958 /indra/newview/lldrawable.cpp
parent42dc4501b5c66ddeb9d1fa16ee424e2de988028b (diff)
parentcf2b4dbfb280986cf859b12fd55158d7b9e0ac3d (diff)
Merge pull request #3911 from secondlife/main
Merge 2025.03 release into develop.
Diffstat (limited to 'indra/newview/lldrawable.cpp')
-rw-r--r--indra/newview/lldrawable.cpp19
1 files changed, 18 insertions, 1 deletions
diff --git a/indra/newview/lldrawable.cpp b/indra/newview/lldrawable.cpp
index 70ae4ee13f..9d212cfe8b 100644
--- a/indra/newview/lldrawable.cpp
+++ b/indra/newview/lldrawable.cpp
@@ -33,6 +33,7 @@
// viewer includes
#include "llagent.h"
+#include "llagentcamera.h"
#include "llcriticaldamp.h"
#include "llface.h"
#include "lllightconstants.h"
@@ -252,7 +253,15 @@ void LLDrawable::cleanupReferences()
std::for_each(mFaces.begin(), mFaces.end(), DeletePointer());
mFaces.clear();
- gPipeline.unlinkDrawable(this);
+ if (gPipeline.mInitialized)
+ {
+ gPipeline.unlinkDrawable(this);
+ }
+ else if (getSpatialGroup())
+ {
+ // Not supposed to happen?
+ getSpatialGroup()->getSpatialPartition()->remove(this, getSpatialGroup());
+ }
removeFromOctree();
@@ -778,6 +787,14 @@ bool LLDrawable::updateMove()
makeActive();
+ // #3256 force undampened movement for attached objects in mouselook
+ // to prevent animation bork for linkset with animated parts
+ if (!isRoot() && gAgentCamera.cameraMouselook() &&
+ !mVObjp->isRiggedMesh() && mVObjp->getAvatar() && mVObjp->getAvatar()->isSelf())
+ {
+ return updateMoveUndamped();
+ }
+
return isState(MOVE_UNDAMPED) ? updateMoveUndamped() : updateMoveDamped();
}