diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index e989733fc646d1d5bccd083860d9566f6d54d717..2fe01ab22f9b775f30c67fbc0bba5da482e5fb68 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -2193,6 +2193,17 @@ <key>Value</key> <integer>0</integer> </map> + <key>AnimatedObjectsIgnoreLimits</key> + <map> + <key>Comment</key> + <string>Ignore server-enforced limits on animated objects. This is only useful for server testing.</string> + <key>Persist</key> + <integer>1</integer> + <key>Type</key> + <string>Boolean</string> + <key>Value</key> + <integer>0</integer> + </map> <key>DebugAvatarAppearanceMessage</key> <map> <key>Comment</key> diff --git a/indra/newview/llviewerobject.cpp b/indra/newview/llviewerobject.cpp index 404a77157111731ae93a830f3d2d84ae91feb776..42f6b081e506a488309c2a0ee558d45c924830ae 100644 --- a/indra/newview/llviewerobject.cpp +++ b/indra/newview/llviewerobject.cpp @@ -3607,13 +3607,21 @@ F32 LLViewerObject::recursiveGetEstTrianglesMax() const S32 LLViewerObject::getAnimatedObjectMaxTris() const { S32 max_tris = 0; - LLSD features; - if (gAgent.getRegion()) + // AXON remove after server testing done + if (gSavedSettings.getBOOL("AnimatedObjectsIgnoreLimits")) { - gAgent.getRegion()->getSimulatorFeatures(features); - if (features.has("AnimatedObjects")) + max_tris = S32_MAX; + } + else + { + if (gAgent.getRegion()) { - max_tris = features["AnimatedObjects"]["AnimatedObjectMaxTris"].asInteger(); + LLSD features; + gAgent.getRegion()->getSimulatorFeatures(features); + if (features.has("AnimatedObjects")) + { + max_tris = features["AnimatedObjects"]["AnimatedObjectMaxTris"].asInteger(); + } } } return max_tris; diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp index 1c4a6e4eb74a578dd8828c1ef0da6c319a049f3f..cdbe87de750b542b8e4836e2538efe080546281f 100644 --- a/indra/newview/llvoavatar.cpp +++ b/indra/newview/llvoavatar.cpp @@ -6675,13 +6675,21 @@ U32 LLVOAvatar::getNumAnimatedObjectAttachments() const S32 LLVOAvatar::getMaxAnimatedObjectAttachments() const { S32 max_attach = 0; - LLSD features; - if (gAgent.getRegion()) + // AXON remove after server testing done + if (gSavedSettings.getBOOL("AnimatedObjectsIgnoreLimits")) { - gAgent.getRegion()->getSimulatorFeatures(features); - if (features.has("AnimatedObjects")) + max_attach = MAX_AGENT_ATTACHMENTS; + } + else + { + if (gAgent.getRegion()) { - max_attach = features["AnimatedObjects"]["MaxAgentAnimatedObjectAttachments"].asInteger(); + LLSD features; + gAgent.getRegion()->getSimulatorFeatures(features); + if (features.has("AnimatedObjects")) + { + max_attach = features["AnimatedObjects"]["MaxAgentAnimatedObjectAttachments"].asInteger(); + } } } return max_attach;