diff options
Diffstat (limited to 'linden/indra/newview/llselectmgr.cpp')
-rw-r--r-- | linden/indra/newview/llselectmgr.cpp | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/linden/indra/newview/llselectmgr.cpp b/linden/indra/newview/llselectmgr.cpp index 01f41ef..8064245 100644 --- a/linden/indra/newview/llselectmgr.cpp +++ b/linden/indra/newview/llselectmgr.cpp | |||
@@ -123,6 +123,7 @@ LLColor4 LLSelectMgr::sHighlightInspectColor; | |||
123 | LLColor4 LLSelectMgr::sHighlightParentColor; | 123 | LLColor4 LLSelectMgr::sHighlightParentColor; |
124 | LLColor4 LLSelectMgr::sHighlightChildColor; | 124 | LLColor4 LLSelectMgr::sHighlightChildColor; |
125 | LLColor4 LLSelectMgr::sContextSilhouetteColor; | 125 | LLColor4 LLSelectMgr::sContextSilhouetteColor; |
126 | std::set<LLUUID> LLSelectMgr::sObjectPropertiesFamilyRequests; | ||
126 | 127 | ||
127 | static LLObjectSelection *get_null_object_selection(); | 128 | static LLObjectSelection *get_null_object_selection(); |
128 | template<> | 129 | template<> |
@@ -4228,6 +4229,10 @@ void LLSelectMgr::sendListToRegions(const std::string& message_name, | |||
4228 | 4229 | ||
4229 | void LLSelectMgr::requestObjectPropertiesFamily(LLViewerObject* object) | 4230 | void LLSelectMgr::requestObjectPropertiesFamily(LLViewerObject* object) |
4230 | { | 4231 | { |
4232 | // Remember that we asked the properties of this object. | ||
4233 | sObjectPropertiesFamilyRequests.insert(object->mID); | ||
4234 | //llinfos << "Registered an ObjectPropertiesFamily request for object " << object->mID << llendl; | ||
4235 | |||
4231 | LLMessageSystem* msg = gMessageSystem; | 4236 | LLMessageSystem* msg = gMessageSystem; |
4232 | 4237 | ||
4233 | msg->newMessageFast(_PREHASH_RequestObjectPropertiesFamily); | 4238 | msg->newMessageFast(_PREHASH_RequestObjectPropertiesFamily); |
@@ -4419,6 +4424,15 @@ void LLSelectMgr::processObjectProperties(LLMessageSystem* msg, void** user_data | |||
4419 | void LLSelectMgr::processObjectPropertiesFamily(LLMessageSystem* msg, void** user_data) | 4424 | void LLSelectMgr::processObjectPropertiesFamily(LLMessageSystem* msg, void** user_data) |
4420 | { | 4425 | { |
4421 | LLUUID id; | 4426 | LLUUID id; |
4427 | msg->getUUIDFast(_PREHASH_ObjectData, _PREHASH_ObjectID, id); | ||
4428 | if (sObjectPropertiesFamilyRequests.count(id) == 0) | ||
4429 | { | ||
4430 | // This reply is not for us. | ||
4431 | return; | ||
4432 | } | ||
4433 | // We got the reply, so remove the object from the list of pending requests | ||
4434 | sObjectPropertiesFamilyRequests.erase(id); | ||
4435 | //llinfos << "Got ObjectPropertiesFamily reply for object " << id << llendl; | ||
4422 | 4436 | ||
4423 | U32 request_flags; | 4437 | U32 request_flags; |
4424 | LLUUID creator_id; | 4438 | LLUUID creator_id; |
@@ -4430,7 +4444,6 @@ void LLSelectMgr::processObjectPropertiesFamily(LLMessageSystem* msg, void** use | |||
4430 | LLCategory category; | 4444 | LLCategory category; |
4431 | 4445 | ||
4432 | msg->getU32Fast(_PREHASH_ObjectData, _PREHASH_RequestFlags, request_flags ); | 4446 | msg->getU32Fast(_PREHASH_ObjectData, _PREHASH_RequestFlags, request_flags ); |
4433 | msg->getUUIDFast(_PREHASH_ObjectData, _PREHASH_ObjectID, id ); | ||
4434 | msg->getUUIDFast(_PREHASH_ObjectData, _PREHASH_OwnerID, owner_id ); | 4447 | msg->getUUIDFast(_PREHASH_ObjectData, _PREHASH_OwnerID, owner_id ); |
4435 | msg->getUUIDFast(_PREHASH_ObjectData, _PREHASH_GroupID, group_id ); | 4448 | msg->getUUIDFast(_PREHASH_ObjectData, _PREHASH_GroupID, group_id ); |
4436 | msg->getU32Fast(_PREHASH_ObjectData, _PREHASH_BaseMask, base_mask ); | 4449 | msg->getU32Fast(_PREHASH_ObjectData, _PREHASH_BaseMask, base_mask ); |