aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/linden/indra/newview/llselectmgr.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'linden/indra/newview/llselectmgr.cpp')
-rw-r--r--linden/indra/newview/llselectmgr.cpp15
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;
123LLColor4 LLSelectMgr::sHighlightParentColor; 123LLColor4 LLSelectMgr::sHighlightParentColor;
124LLColor4 LLSelectMgr::sHighlightChildColor; 124LLColor4 LLSelectMgr::sHighlightChildColor;
125LLColor4 LLSelectMgr::sContextSilhouetteColor; 125LLColor4 LLSelectMgr::sContextSilhouetteColor;
126std::set<LLUUID> LLSelectMgr::sObjectPropertiesFamilyRequests;
126 127
127static LLObjectSelection *get_null_object_selection(); 128static LLObjectSelection *get_null_object_selection();
128template<> 129template<>
@@ -4228,6 +4229,10 @@ void LLSelectMgr::sendListToRegions(const std::string& message_name,
4228 4229
4229void LLSelectMgr::requestObjectPropertiesFamily(LLViewerObject* object) 4230void 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
4419void LLSelectMgr::processObjectPropertiesFamily(LLMessageSystem* msg, void** user_data) 4424void 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 );