diff options
author | Brad Payne (Vir Linden) <vir@lindenlab.com> | 2018-05-03 22:42:02 +0100 |
---|---|---|
committer | Brad Payne (Vir Linden) <vir@lindenlab.com> | 2018-05-03 22:42:02 +0100 |
commit | 7ed17b5c2c11b9e57316c87b29524b88edb8f762 (patch) | |
tree | d9f513fe93fc86f7adab8d297082d3c715178e8e /indra/newview/llviewermessage.cpp | |
parent | 0608bce54bc818774a38403e2252e25fb54d7ed6 (diff) |
MAINT-8608, MAINT-8539, MAINT-8615 - changes to make object animation info more persistent, tolerant to race conditions during initialization
Diffstat (limited to 'indra/newview/llviewermessage.cpp')
-rw-r--r-- | indra/newview/llviewermessage.cpp | 28 |
1 files changed, 14 insertions, 14 deletions
diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp index 05494b74f7..e8db01efed 100644 --- a/indra/newview/llviewermessage.cpp +++ b/indra/newview/llviewermessage.cpp @@ -5075,6 +5075,7 @@ void process_avatar_animation(LLMessageSystem *mesgsys, void **user_data) } } + // AXON make logging less spammy after issues resolved, before release. void process_object_animation(LLMessageSystem *mesgsys, void **user_data) { @@ -5085,6 +5086,19 @@ void process_object_animation(LLMessageSystem *mesgsys, void **user_data) mesgsys->getUUIDFast(_PREHASH_Sender, _PREHASH_ID, uuid); LL_INFOS("AnimatedObjects") << "Received animation state for object " << uuid << LL_ENDL; + + signaled_animation_map_t signaled_anims; + S32 num_blocks = mesgsys->getNumberOfBlocksFast(_PREHASH_AnimationList); + LL_INFOS("AnimatedObjects") << "processing object animation requests, num_blocks " << num_blocks << " uuid " << uuid << LL_ENDL; + for( S32 i = 0; i < num_blocks; i++ ) + { + mesgsys->getUUIDFast(_PREHASH_AnimationList, _PREHASH_AnimID, animation_id, i); + mesgsys->getS32Fast(_PREHASH_AnimationList, _PREHASH_AnimSequenceID, anim_sequence_id, i); + signaled_anims[animation_id] = anim_sequence_id; + LL_INFOS("AnimatedObjects") << "added signaled_anims animation request for object " + << uuid << " animation id " << animation_id << LL_ENDL; + } + LLObjectSignaledAnimationMap::instance().getMap()[uuid] = signaled_anims; LLViewerObject *objp = gObjectList.findObject(uuid); if (!objp) @@ -5114,9 +5128,6 @@ void process_object_animation(LLMessageSystem *mesgsys, void **user_data) return; } - S32 num_blocks = mesgsys->getNumberOfBlocksFast(_PREHASH_AnimationList); - LL_INFOS("AnimatedObjects") << "processing object animation requests, num_blocks " << num_blocks << " uuid " << uuid << LL_ENDL; - if (!avatarp->mPlaying) { avatarp->mPlaying = true; @@ -5127,17 +5138,6 @@ void process_object_animation(LLMessageSystem *mesgsys, void **user_data) } } - volp->mObjectSignaledAnimations.clear(); - - for( S32 i = 0; i < num_blocks; i++ ) - { - mesgsys->getUUIDFast(_PREHASH_AnimationList, _PREHASH_AnimID, animation_id, i); - mesgsys->getS32Fast(_PREHASH_AnimationList, _PREHASH_AnimSequenceID, anim_sequence_id, i); - volp->mObjectSignaledAnimations[animation_id] = anim_sequence_id; - LL_INFOS("AnimatedObjects") << "added object animation request for object " - << uuid << " animation id " << animation_id << LL_ENDL; - } - avatarp->updateAnimations(); } |