summaryrefslogtreecommitdiff
path: root/indra/newview
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview')
-rw-r--r--indra/newview/llcontrolavatar.cpp3
-rw-r--r--indra/newview/llselectmgr.cpp14
-rw-r--r--indra/newview/llselectmgr.h1
-rw-r--r--indra/newview/llviewermessage.cpp3
-rw-r--r--indra/newview/llviewerobject.cpp3
-rw-r--r--indra/newview/llvoavatar.cpp12
6 files changed, 12 insertions, 24 deletions
diff --git a/indra/newview/llcontrolavatar.cpp b/indra/newview/llcontrolavatar.cpp
index afa6be188d..7600bc6959 100644
--- a/indra/newview/llcontrolavatar.cpp
+++ b/indra/newview/llcontrolavatar.cpp
@@ -52,7 +52,8 @@ LLControlAvatar::~LLControlAvatar()
// virtual
void LLControlAvatar::initInstance()
{
- // AXON - potential optimizations here - avoid creating system avatar mesh since it's not used.
+ // AXON - potential optimizations here - avoid creating system
+ // avatar mesh since it's not used.
LLVOAvatar::initInstance();
}
diff --git a/indra/newview/llselectmgr.cpp b/indra/newview/llselectmgr.cpp
index 473d7e5b5f..2e489fbc09 100644
--- a/indra/newview/llselectmgr.cpp
+++ b/indra/newview/llselectmgr.cpp
@@ -691,7 +691,7 @@ bool LLSelectMgr::enableLinkObjects()
new_value = LLSelectMgr::getInstance()->getSelection()->applyToRootObjects(&func, firstonly);
}
}
- if (!LLSelectMgr::getInstance()->getSelection()->checkAnimatedObjectEstTris())
+ if (!LLSelectMgr::getInstance()->getSelection()->checkAnimatedObjectLinkable())
{
new_value = false;
}
@@ -7451,17 +7451,7 @@ bool LLObjectSelection::checkAnimatedObjectEstTris()
bool LLObjectSelection::checkAnimatedObjectLinkable()
{
- LL_ERRS() << "Not using this restriction" << LL_ENDL;
- // Can't link if any of the roots is currently an animated object
- for (root_iterator iter = root_begin(); iter != root_end(); ++iter)
- {
- LLViewerObject* objectp = (*iter)->getObject();
- if (objectp && objectp->isAnimatedObject())
- {
- return false;
- }
- }
- return true;
+ return checkAnimatedObjectEstTris();
}
bool LLObjectSelection::applyToRootObjects(LLSelectedObjectFunctor* func, bool firstonly)
diff --git a/indra/newview/llselectmgr.h b/indra/newview/llselectmgr.h
index fcbfd5fccd..eaeeba576c 100644
--- a/indra/newview/llselectmgr.h
+++ b/indra/newview/llselectmgr.h
@@ -339,7 +339,6 @@ public:
// returns TRUE is any node is currenly worn as an attachment
BOOL isAttachment();
- // AXON validate a potential link against limits
bool checkAnimatedObjectEstTris();
bool checkAnimatedObjectLinkable();
diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp
index 7260d7f928..ae9798b5d5 100644
--- a/indra/newview/llviewermessage.cpp
+++ b/indra/newview/llviewermessage.cpp
@@ -5126,8 +5126,7 @@ void process_object_animation(LLMessageSystem *mesgsys, void **user_data)
avatarp->mRootVolp->recursiveMarkForUpdate(TRUE);
}
}
-#else
- // AXON REMOVE BEFORE RELEASE?
+#else// AXON REMOVE BEFORE RELEASE?
// In this block we switch back into static mode when no animations are
// playing. This is mostly useful for debugging.
if (num_blocks > 0 && !avatarp->mPlaying)
diff --git a/indra/newview/llviewerobject.cpp b/indra/newview/llviewerobject.cpp
index 7d370aff35..6fff3b0afd 100644
--- a/indra/newview/llviewerobject.cpp
+++ b/indra/newview/llviewerobject.cpp
@@ -3609,8 +3609,7 @@ F32 LLViewerObject::recursiveGetEstTrianglesMax() const
S32 LLViewerObject::getAnimatedObjectMaxTris() const
{
S32 max_tris = 0;
- // AXON REMOVE AFTER SERVER TESTING DONE
- if (gSavedSettings.getBOOL("AnimatedObjectsIgnoreLimits"))
+ if (gSavedSettings.getBOOL("AnimatedObjectsIgnoreLimits")) // AXON REMOVE AFTER SERVER TESTING DONE
{
max_tris = S32_MAX;
}
diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp
index ea7214d937..b1ae7f543a 100644
--- a/indra/newview/llvoavatar.cpp
+++ b/indra/newview/llvoavatar.cpp
@@ -1976,9 +1976,8 @@ void LLVOAvatar::resetSkeleton(bool reset_animations)
//-----------------------------------------------------------------------------
void LLVOAvatar::releaseMeshData()
{
- // AXON what should we be doing here for control avs? Why are
- // dummies treated differently in the first place?
- if (sInstances.size() < AVATAR_RELEASE_THRESHOLD || mIsDummy)
+ if (sInstances.size() < AVATAR_RELEASE_THRESHOLD ||
+ (mIsDummy && !isControlAvatar()))
{
return;
}
@@ -2781,8 +2780,8 @@ void LLVOAvatar::idleUpdateLoadingEffect()
LLPartData::LL_PART_EMISSIVE_MASK | // LLPartData::LL_PART_FOLLOW_SRC_MASK |
LLPartData::LL_PART_TARGET_POS_MASK );
- // AXON skip cloud effects for dummy avs as well
- if (!mIsDummy && !isTooComplex()) // do not generate particles for overly-complex avatars
+ // do not generate particles for dummy or overly-complex avatars
+ if (!mIsDummy && !isTooComplex())
{
setParticleSource(particle_parameters, getID());
}
@@ -4393,7 +4392,8 @@ void LLVOAvatar::updateVisibility()
}
else
{
- if (mMeshValid && mMeshInvisibleTime.getElapsedTimeF32() > TIME_BEFORE_MESH_CLEANUP)
+ if (mMeshValid &&
+ (isControlAvatar() || mMeshInvisibleTime.getElapsedTimeF32() > TIME_BEFORE_MESH_CLEANUP))
{
releaseMeshData();
}