diff options
Diffstat (limited to 'indra/newview/llvoavatar.cpp')
| -rw-r--r-- | indra/newview/llvoavatar.cpp | 25 | 
1 files changed, 23 insertions, 2 deletions
| diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp index 2682c5b698..20fa327790 100644 --- a/indra/newview/llvoavatar.cpp +++ b/indra/newview/llvoavatar.cpp @@ -7037,12 +7037,33 @@ U32 LLVOAvatar::getNumAttachments() const  }  //----------------------------------------------------------------------------- +// getMaxAttachments() +//----------------------------------------------------------------------------- +S32 LLVOAvatar::getMaxAttachments() const +{ +	const S32 MAX_AGENT_ATTACHMENTS = 38; + +	S32 max_attach = MAX_AGENT_ATTACHMENTS; +	 +	if (gAgent.getRegion()) +	{ +		LLSD features; +		gAgent.getRegion()->getSimulatorFeatures(features); +		if (features.has("MaxAgentAttachments")) +		{ +			max_attach = features["MaxAgentAttachments"].asInteger(); +		} +	} +	return max_attach; +} + +//-----------------------------------------------------------------------------  // canAttachMoreObjects()  // Returns true if we can attach <n> more objects.  //-----------------------------------------------------------------------------  BOOL LLVOAvatar::canAttachMoreObjects(U32 n) const  { -	return (getNumAttachments() + n) <= MAX_AGENT_ATTACHMENTS; +	return (getNumAttachments() + n) <= getMaxAttachments();  }  //----------------------------------------------------------------------------- @@ -7070,7 +7091,7 @@ S32 LLVOAvatar::getMaxAnimatedObjectAttachments() const      S32 max_attach = 0;      if (gSavedSettings.getBOOL("AnimatedObjectsIgnoreLimits"))      { -        max_attach = MAX_AGENT_ATTACHMENTS; +        max_attach = getMaxAttachments();       }      else      { | 
