summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMonroe Linden <monroe@lindenlab.com>2010-06-02 14:58:42 -0700
committerMonroe Linden <monroe@lindenlab.com>2010-06-02 14:58:42 -0700
commit1e13fd9260696e10df05dcb81803649c805b95cd (patch)
treee3fced8c09815bf82a7f7e135faae9476ab1e036
parentc1aaca36aefff1154a2cd0069d46d466ce39b83a (diff)
Partial fix for EXT-6255 (Fix ruthing/replacement wearables logic).
This change should make the logic for missing wearables match what's in the doc linked from the jira. It doesn't address the case of missing attachments, which will be more complicated. Reviewed by Nyx and vir.
-rw-r--r--indra/newview/llappearancemgr.cpp14
1 files changed, 8 insertions, 6 deletions
diff --git a/indra/newview/llappearancemgr.cpp b/indra/newview/llappearancemgr.cpp
index 75ffb9f329..e6f363028a 100644
--- a/indra/newview/llappearancemgr.cpp
+++ b/indra/newview/llappearancemgr.cpp
@@ -276,12 +276,14 @@ void LLWearableHoldingPattern::checkMissingWearables()
if (found_by_type[type] > 0)
continue;
if (
- // Need to recover if at least one wearable of that type
- // was requested but none was found (prevent missing
- // pants)
- (requested_by_type[type] > 0) ||
- // or if type is a body part and no wearables were found.
- ((type == LLWearableType::WT_SHAPE) || (type == LLWearableType::WT_SKIN) || (type == LLWearableType::WT_HAIR) || (type == LLWearableType::WT_EYES)))
+ // If at least one wearable of certain types (pants/shirt/skirt)
+ // was requested but none was found, create a default asset as a replacement.
+ // In all other cases, don't do anything.
+ // For critical types (shape/hair/skin/eyes), this will keep the avatar as a cloud
+ // due to logic in LLVOAvatarSelf::getIsCloud().
+ // For non-critical types (tatoo, socks, etc.) the wearable will just be missing.
+ (requested_by_type[type] > 0) &&
+ ((type == LLWearableType::WT_PANTS) || (type == LLWearableType::WT_SHIRT) || (type == LLWearableType::WT_SKIRT)))
{
mTypesToRecover.insert(type);
mTypesToLink.insert(type);