summaryrefslogtreecommitdiff
path: root/indra/newview/llviewerobject.cpp
diff options
context:
space:
mode:
authorOz Linden <oz@lindenlab.com>2012-07-09 11:41:47 -0400
committerOz Linden <oz@lindenlab.com>2012-07-09 11:41:47 -0400
commit690f985a9c3dba6f08bf955bf0c11c256a2b42bf (patch)
tree13a44cc63d1ffc19e5bedd62632c1559b21b0bb8 /indra/newview/llviewerobject.cpp
parent13f7afbd7d91db0ab5b2f1e3bf7b894bbdd48e7a (diff)
parent1b109f80b92a6b113d4874527d49d51cc451b302 (diff)
merge changes for DRTVWR-177
Diffstat (limited to 'indra/newview/llviewerobject.cpp')
-rw-r--r--indra/newview/llviewerobject.cpp38
1 files changed, 25 insertions, 13 deletions
diff --git a/indra/newview/llviewerobject.cpp b/indra/newview/llviewerobject.cpp
index 72fd3c1a4a..67c87a6c63 100644
--- a/indra/newview/llviewerobject.cpp
+++ b/indra/newview/llviewerobject.cpp
@@ -2924,27 +2924,39 @@ void LLViewerObject::removeInventory(const LLUUID& item_id)
++mInventorySerialNum;
}
-void LLViewerObject::updateInventory(
- LLViewerInventoryItem* item,
- U8 key,
- bool is_new)
+bool LLViewerObject::isTextureInInventory(LLViewerInventoryItem* item)
{
- LLMemType mt(LLMemType::MTYPE_OBJECT);
+ bool result = false;
- std::list<LLUUID>::iterator begin = mPendingInventoryItemsIDs.begin();
- std::list<LLUUID>::iterator end = mPendingInventoryItemsIDs.end();
+ if (item && LLAssetType::AT_TEXTURE == item->getType())
+ {
+ std::list<LLUUID>::iterator begin = mPendingInventoryItemsIDs.begin();
+ std::list<LLUUID>::iterator end = mPendingInventoryItemsIDs.end();
- bool is_fetching = std::find(begin, end, item->getAssetUUID()) != end;
- bool is_fetched = getInventoryItemByAsset(item->getAssetUUID()) != NULL;
+ bool is_fetching = std::find(begin, end, item->getAssetUUID()) != end;
+ bool is_fetched = getInventoryItemByAsset(item->getAssetUUID()) != NULL;
- if (is_fetched || is_fetching)
- {
- return;
+ result = is_fetched || is_fetching;
}
- else
+
+ return result;
+}
+
+void LLViewerObject::updateTextureInventory(LLViewerInventoryItem* item, U8 key, bool is_new)
+{
+ if (item && !isTextureInInventory(item))
{
mPendingInventoryItemsIDs.push_back(item->getAssetUUID());
+ updateInventory(item, key, is_new);
}
+}
+
+void LLViewerObject::updateInventory(
+ LLViewerInventoryItem* item,
+ U8 key,
+ bool is_new)
+{
+ LLMemType mt(LLMemType::MTYPE_OBJECT);
// This slices the object into what we're concerned about on the
// viewer. The simulator will take the permissions and transfer