diff options
author | Nyx Linden <nyx@lindenlab.com> | 2013-05-30 17:44:51 -0400 |
---|---|---|
committer | Nyx Linden <nyx@lindenlab.com> | 2013-05-30 17:44:51 -0400 |
commit | 7f2cf1fa9cf7c09af8eeab3aa077eb0a9922d631 (patch) | |
tree | 41343ac34f14dfedbf38a7011502fc653fda6532 /indra/newview/llviewerobject.cpp | |
parent | faaf8ba5c75c925d9922dda8ce43293222cadb3b (diff) |
SH-4147 FIX Macro avatar hover gets reset on relog
Hover minimum enforcement was getting triggered on relog for macro avatars before
the joint offsets were applied when loading the avatar.
Added code to verify that all attachments in COF have been rezzed, and all
attached objects are not in the process of being rebuilt to the enforcement code.
This should verify that we only apply the hover value enforcement when all rigged meshes
are actually loaded before enforcing minimum hover value
Diffstat (limited to 'indra/newview/llviewerobject.cpp')
-rwxr-xr-x | indra/newview/llviewerobject.cpp | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/indra/newview/llviewerobject.cpp b/indra/newview/llviewerobject.cpp index 064e96e394..63de1ab77a 100755 --- a/indra/newview/llviewerobject.cpp +++ b/indra/newview/llviewerobject.cpp @@ -5038,6 +5038,28 @@ void LLViewerObject::clearDrawableState(U32 state, BOOL recursive) } } +BOOL LLViewerObject::isDrawableState(U32 state, BOOL recursive) const +{ + BOOL matches = FALSE; + if (mDrawable) + { + matches = mDrawable->isState(state); + } + if (recursive) + { + for (child_list_t::const_iterator iter = mChildList.begin(); + (iter != mChildList.end()) && matches; iter++) + { + LLViewerObject* child = *iter; + matches &= child->isDrawableState(state, recursive); + } + } + + return matches; +} + + + //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! // RN: these functions assume a 2-level hierarchy //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |