diff --git a/indra/newview/llappearancemgr.cpp b/indra/newview/llappearancemgr.cpp index de8844f6d9..c5876fda55 100644 --- a/indra/newview/llappearancemgr.cpp +++ b/indra/newview/llappearancemgr.cpp @@ -734,7 +734,7 @@ void LLWearableHoldingPattern::eraseTypeToRecover(LLWearableType::EType type) mTypesToRecover.erase(type); } -// [SL:KB] - Patch: Appearance-SyncAttach | Checked: 2010-06-19 (Catznip-2.1) +// [SL:KB] - Patch: Appearance-SyncAttach | Checked: Catznip-2.1 //void LLWearableHoldingPattern::setObjItems(const LLInventoryModel::item_array_t& items) //{ // mObjItems = items; @@ -872,7 +872,7 @@ void LLWearableHoldingPattern::onAllComplete() // // // Take off the attachments that will no longer be in the outfit. // LLAgentWearables::userRemoveMultipleAttachments(objects_to_remove); - + // Update wearables. LL_INFOS("Avatar") << self_av_string() << "HP " << index() << " updating agent wearables with " << mResolved << " wearable items " << LL_ENDL; @@ -887,7 +887,7 @@ void LLWearableHoldingPattern::onAllComplete() // LLViewerObject *objectp = *it; // gAgentAvatarp->addAttachmentPosOverridesForObject(objectp); // } - +// // // Add new attachments to match those requested. // LL_DEBUGS("Avatar") << self_av_string() << "Adding " << items_to_add.size() << " attachments" << LL_ENDL; // LLAgentWearables::userAttachMultipleAttachments(items_to_add); @@ -2415,7 +2415,7 @@ void LLAppearanceMgr::updateAppearanceFromCOF(bool enforce_item_restrictions, << " viewer desc count " << cof->getViewerDescendentCount() << LL_ENDL; } -// [SL:KB] - Patch: Appearance-SyncAttach | Checked: 2010-09-22 (Catznip-2.2) +// [SL:KB] - Patch: Appearance-SyncAttach | Checked: Catznip-2.2 // Update attachments to match those requested. if (isAgentAvatarValid()) { @@ -2439,6 +2439,7 @@ void LLAppearanceMgr::updateAppearanceFromCOF(bool enforce_item_restrictions, } } + // (Start of LL code from LLWearableHoldingPattern::onAllComplete()) LL_DEBUGS("Avatar") << self_av_string() << "Updating " << obj_items.size() << " attachments" << LL_ENDL; LLAgentWearables::llvo_vec_t objects_to_remove; @@ -2451,6 +2452,7 @@ void LLAppearanceMgr::updateAppearanceFromCOF(bool enforce_item_restrictions, // needed to get joint positions all slammed down to their // pre-attachment states. gAgentAvatarp->clearAttachmentPosOverrides(); + // (End of LL code) // Take off the attachments that will no longer be in the outfit. // (but don't remove attachments until avatar is fully loaded - should reduce random attaching/detaching/reattaching at log-on) @@ -2459,17 +2461,19 @@ void LLAppearanceMgr::updateAppearanceFromCOF(bool enforce_item_restrictions, LL_DEBUGS("Avatar") << self_av_string() << "Removing " << objects_to_remove.size() << " attachments" << LL_ENDL; LLAgentWearables::userRemoveMultipleAttachments(objects_to_remove); } - + + // (Start of LL code from LLWearableHoldingPattern::onAllComplete()) // Restore attachment pos overrides for the attachments that are remaining in the outfit. for (LLAgentWearables::llvo_vec_t::iterator it = objects_to_retain.begin(); it != objects_to_retain.end(); ++it) { LLViewerObject *objectp = *it; gAgentAvatarp->addAttachmentPosOverridesForObject(objectp); } - + // Add new attachments to match those requested. LL_DEBUGS("Avatar") << self_av_string() << "Adding " << items_to_add.size() << " attachments" << LL_ENDL; LLAgentWearables::userAttachMultipleAttachments(items_to_add); + // (End of LL code) } // [/SL:KB] @@ -3920,7 +3924,7 @@ void LLAppearanceMgr::removeItemsFromAvatar(const uuid_vec_t& ids_to_remove, LLP removeCOFItemLinks(linked_item_id, cb, immediate_delete); // [/SL:KB] // removeCOFItemLinks(linked_item_id, cb); -// [SL:KB] - Patch: Appearance-SyncAttach | Checked: 2015-03-01 (Catznip-3.7) +// [SL:KB] - Patch: Appearance-SyncAttach | Checked: Catznip-3.7 LLAttachmentsMgr::instance().clearPendingAttachmentLink(linked_item_id); // [/SL:KB] addDoomedTempAttachment(linked_item_id); diff --git a/indra/newview/llappearancemgr.h b/indra/newview/llappearancemgr.h index e864b953b6..ba438783a2 100644 --- a/indra/newview/llappearancemgr.h +++ b/indra/newview/llappearancemgr.h @@ -146,7 +146,7 @@ public: // Attachment link management void unregisterAttachment(const LLUUID& item_id); void registerAttachment(const LLUUID& item_id); -// [SL:KB] - Patch: Appearance-SyncAttach | Checked: 2015-06-24 (Catznip-3.7) +// [SL:KB] - Patch: Appearance-SyncAttach | Checked: Catznip-3.7 bool getAttachmentInvLinkEnable() { return mAttachmentInvLinkEnabled; } // [/SL:KB] void setAttachmentInvLinkEnable(bool val); diff --git a/indra/newview/llattachmentsmgr.cpp b/indra/newview/llattachmentsmgr.cpp index 7ed04b7f17..37fe035116 100644 --- a/indra/newview/llattachmentsmgr.cpp +++ b/indra/newview/llattachmentsmgr.cpp @@ -41,7 +41,7 @@ const F32 MAX_ATTACHMENT_REQUEST_LIFETIME = 30.0F; const F32 MIN_RETRY_REQUEST_TIME = 5.0F; const F32 MAX_BAD_COF_TIME = 30.0F; -// [SL:KB] - Patch: Appearance-SyncAttach | Checked: 2015-06-24 (Catznip-3.7) +// [SL:KB] - Patch: Appearance-SyncAttach | Checked: Catznip-3.7 class LLRegisterAttachmentCallback : public LLRequestServerAppearanceUpdateOnDestroy { public: @@ -50,13 +50,14 @@ public: { } - /*virtual*/ ~LLRegisterAttachmentCallback() + ~LLRegisterAttachmentCallback() override { } - /*virtual*/ void fire(const LLUUID& idItem) + void fire(const LLUUID& idItem) override { LLAttachmentsMgr::instance().onRegisterAttachmentComplete(idItem); + LLRequestServerAppearanceUpdateOnDestroy::fire(idItem); } }; // [/SL:KB] @@ -99,7 +100,7 @@ void LLAttachmentsMgr::addAttachmentRequest(const LLUUID& item_id, void LLAttachmentsMgr::onAttachmentRequested(const LLUUID& item_id) { -// [SL:KB] - Patch: Appearance-SyncAttach | Checked: 2015-06-24 (Catznip-3.7) +// [SL:KB] - Patch: Appearance-SyncAttach | Checked: Catznip-3.7 if (item_id.isNull()) return; // [/SL:KB] @@ -246,7 +247,7 @@ void LLAttachmentsMgr::linkRecentlyArrivedAttachments() { if (mRecentlyArrivedAttachments.size()) { - // [SL:KB] - Patch: Appearance-SyncAttach | Checked: 2015-06-24 (Catznip-3.7) + // [SL:KB] - Patch: Appearance-SyncAttach | Checked: Catznip-3.7 if (!LLAppearanceMgr::instance().getAttachmentInvLinkEnable()) { return; @@ -291,7 +292,7 @@ void LLAttachmentsMgr::linkRecentlyArrivedAttachments() } if (ids_to_link.size()) { -// [SL:KB] - Patch: Appearance-SyncAttach | Checked: 2015-06-24 (Catznip-3.7) +// [SL:KB] - Patch: Appearance-SyncAttach | Checked: Catznip-3.7 LLPointer cb = new LLRegisterAttachmentCallback(); for (const LLUUID& idAttach : ids_to_link) { @@ -313,7 +314,7 @@ void LLAttachmentsMgr::linkRecentlyArrivedAttachments() } } -// [SL:KB] - Patch: Appearance-SyncAttach | Checked: 2010-09-18 (Catznip-2.2) +// [SL:KB] - Patch: Appearance-SyncAttach | Checked: Catznip-2.2 bool LLAttachmentsMgr::getPendingAttachments(std::set& ids) const { ids.clear(); @@ -476,7 +477,7 @@ void LLAttachmentsMgr::onDetachRequested(const LLUUID& inv_item_id) void LLAttachmentsMgr::onDetachCompleted(const LLUUID& inv_item_id) { -// [SL:KB] - Patch: Appearance-SyncAttach | Checked: 2010-10-05 (Catznip-2.2) +// [SL:KB] - Patch: Appearance-SyncAttach | Checked: Catznip-2.2 // (mRecentlyArrivedAttachments doesn't need pruning since it'll check the attachment is actually worn before linking) clearPendingAttachmentLink(inv_item_id); // [/SL:KB] @@ -506,11 +507,12 @@ void LLAttachmentsMgr::onDetachCompleted(const LLUUID& inv_item_id) bool LLAttachmentsMgr::isAttachmentStateComplete() const { -// [SL:KB] - Patch: Appearance-Misc | Checked: Catznip-4. +// [SL:KB] - Patch: Appearance-Misc | Checked: Catznip-4.3 return mPendingAttachments.empty() && mAttachmentRequests.empty() && mDetachRequests.empty() - && mRecentlyArrivedAttachments.empty(); + && mRecentlyArrivedAttachments.empty() + && mPendingAttachLinks.empty(); // [/SL:KB] // return mPendingAttachments.empty() // && mAttachmentRequests.empty() diff --git a/indra/newview/llattachmentsmgr.h b/indra/newview/llattachmentsmgr.h index 3221ae2580..8e54948cbf 100644 --- a/indra/newview/llattachmentsmgr.h +++ b/indra/newview/llattachmentsmgr.h @@ -89,7 +89,7 @@ public: bool isAttachmentStateComplete() const; -// [SL:KB] - Patch: Appearance-SyncAttach | Checked: 2010-09-18 (Catznip-2.1) +// [SL:KB] - Patch: Appearance-SyncAttach | Checked: Catznip-2.1 public: void clearPendingAttachmentLink(const LLUUID& idItem); bool getPendingAttachments(std::set& ids) const; @@ -136,7 +136,7 @@ private: std::set mRecentlyArrivedAttachments; LLTimer mCOFLinkBatchTimer; -// [SL:KB] - Patch: Appearance-SyncAttach | Checked: 2010-09-18 (Catznip-2.1) +// [SL:KB] - Patch: Appearance-SyncAttach | Checked: Catznip-2.1 // Attachments that have pending link creation std::set mPendingAttachLinks; // [/SL:KB] diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp index f4010b0412..4b670cf105 100644 --- a/indra/newview/llvoavatar.cpp +++ b/indra/newview/llvoavatar.cpp @@ -6506,7 +6506,7 @@ BOOL LLVOAvatar::processFullyLoadedChange(bool loading) BOOL LLVOAvatar::isFullyLoaded() const { -// [SL:KB] - Patch: Appearance-SyncAttach | Checked: 2010-09-22 (Catznip-2.2) +// [SL:KB] - Patch: Appearance-SyncAttach | Checked: Catznip-2.2 // Changes to LLAppearanceMgr::updateAppearanceFromCOF() expect this function to actually return mFullyLoaded for gAgentAvatarp return (mRenderUnloadedAvatar && !isSelf()) ||(mFullyLoaded); // [/SL:KB]