aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/linden/indra/newview/rlvhandler.h
diff options
context:
space:
mode:
authorJacek Antonelli2009-10-09 10:11:45 -0500
committerJacek Antonelli2009-10-09 10:11:45 -0500
commitbb657bd4244d0b1b80f368a30e40531f573d3c5f (patch)
treeaef4e3c075ba760f48963d76c9300b6a8b323bf9 /linden/indra/newview/rlvhandler.h
parentGrid manager no longer appends "/" to URIs. (diff)
parentFixed money change notification happening after logout/login (diff)
downloadmeta-impy-bb657bd4244d0b1b80f368a30e40531f573d3c5f.zip
meta-impy-bb657bd4244d0b1b80f368a30e40531f573d3c5f.tar.gz
meta-impy-bb657bd4244d0b1b80f368a30e40531f573d3c5f.tar.bz2
meta-impy-bb657bd4244d0b1b80f368a30e40531f573d3c5f.tar.xz
Merge remote branch 'mccabe/next' into next
Diffstat (limited to 'linden/indra/newview/rlvhandler.h')
-rw-r--r--linden/indra/newview/rlvhandler.h17
1 files changed, 10 insertions, 7 deletions
diff --git a/linden/indra/newview/rlvhandler.h b/linden/indra/newview/rlvhandler.h
index df3ff9b..4470632 100644
--- a/linden/indra/newview/rlvhandler.h
+++ b/linden/indra/newview/rlvhandler.h
@@ -14,17 +14,11 @@
14#include "rlvmultistringsearch.h" 14#include "rlvmultistringsearch.h"
15 15
16// ============================================================================ 16// ============================================================================
17/*
18 * RlvHandler
19 * ==========
20 *
21 */
22 17
23typedef std::map<LLUUID, RlvObject> rlv_object_map_t; 18typedef std::map<LLUUID, RlvObject> rlv_object_map_t;
24typedef std::multimap<S32, LLUUID> rlv_detach_map_t; 19typedef std::multimap<S32, LLUUID> rlv_detach_map_t;
25typedef std::map<S32, LLUUID> rlv_reattach_map_t; 20typedef std::map<S32, LLUUID> rlv_reattach_map_t;
26typedef std::multimap<LLUUID, ERlvBehaviour> rlv_exception_map_t; 21typedef std::multimap<LLUUID, ERlvBehaviour> rlv_exception_map_t;
27typedef std::map<S32, RlvRedirInfo> rlv_redir_map_t;
28 22
29class RlvHandler 23class RlvHandler
30{ 24{
@@ -73,6 +67,7 @@ public:
73 // Returns TRUE if the specified attachment point is detachable 67 // Returns TRUE if the specified attachment point is detachable
74 bool isDetachable(S32 idxAttachPt) const { return (idxAttachPt) && (m_Attachments.find(idxAttachPt) == m_Attachments.end()); } 68 bool isDetachable(S32 idxAttachPt) const { return (idxAttachPt) && (m_Attachments.find(idxAttachPt) == m_Attachments.end()); }
75 bool isDetachable(const LLInventoryItem* pItem) const; 69 bool isDetachable(const LLInventoryItem* pItem) const;
70 bool isDetachable(LLViewerJointAttachment* pAttachPt) const;
76 bool isDetachable(LLViewerObject* pObj) const; 71 bool isDetachable(LLViewerObject* pObj) const;
77 // Returns TRUE if the specified attachment point is set undetachable by anything other than pObj (or one of its children) 72 // Returns TRUE if the specified attachment point is set undetachable by anything other than pObj (or one of its children)
78 bool isDetachableExcept(S32 idxAttachPt, LLViewerObject* pObj) const; 73 bool isDetachableExcept(S32 idxAttachPt, LLViewerObject* pObj) const;
@@ -194,6 +189,7 @@ public:
194protected: 189protected:
195 BOOL processAddCommand(const LLUUID& uuid, const RlvCommand& rlvCmd); 190 BOOL processAddCommand(const LLUUID& uuid, const RlvCommand& rlvCmd);
196 BOOL processRemoveCommand(const LLUUID& uuid, const RlvCommand& rlvCmd); 191 BOOL processRemoveCommand(const LLUUID& uuid, const RlvCommand& rlvCmd);
192 BOOL processClearCommand(const LLUUID& idObj, const RlvCommand& rlvCmd);
197 BOOL processReplyCommand(const LLUUID& uuid, const RlvCommand& rlvCmd) const; 193 BOOL processReplyCommand(const LLUUID& uuid, const RlvCommand& rlvCmd) const;
198 BOOL processForceCommand(const LLUUID& uuid, const RlvCommand& rlvCmd) const; 194 BOOL processForceCommand(const LLUUID& uuid, const RlvCommand& rlvCmd) const;
199 195
@@ -234,7 +230,6 @@ protected:
234 rlv_retained_list_t m_Retained; 230 rlv_retained_list_t m_Retained;
235 rlv_reattach_map_t m_AttachPending; 231 rlv_reattach_map_t m_AttachPending;
236 rlv_reattach_map_t m_DetachPending; 232 rlv_reattach_map_t m_DetachPending;
237 rlv_redir_map_t m_Redirections;
238 RlvGCTimer* m_pGCTimer; 233 RlvGCTimer* m_pGCTimer;
239 RlvWLSnapshot* m_pWLSnapshot; 234 RlvWLSnapshot* m_pWLSnapshot;
240 235
@@ -370,6 +365,14 @@ inline bool RlvHandler::hasBehaviourExcept(ERlvBehaviour eBehaviour, const LLUUI
370 } 365 }
371#endif // RLV_EXPERIMENTAL_COMPOSITES 366#endif // RLV_EXPERIMENTAL_COMPOSITES
372 367
368// Checked: 2009-09-08 (RLVa-1.0.2c) | Added: RLVa-1.0.2c
369inline bool RlvHandler::isDetachable(LLViewerJointAttachment *pAttachPt) const
370{
371 // If there's an attached object it's faster to just use that; otherwise look up the attachment index because it might be locked empty
372 return (pAttachPt == NULL) ||
373 ( (pAttachPt->getObject() != NULL) && isDetachable(pAttachPt->getObject()) ) || (isDetachable(getAttachPointIndex(pAttachPt)));
374}
375
373// Checked: 2009-05-23 (RLVa-0.2.0d) | Modified: RLVa-0.2.0d 376// Checked: 2009-05-23 (RLVa-0.2.0d) | Modified: RLVa-0.2.0d
374inline bool RlvHandler::isDetachable(LLViewerObject* pObj) const 377inline bool RlvHandler::isDetachable(LLViewerObject* pObj) const
375{ 378{