From 9c4849477be06e834cecebe7ade6fdfa1532af53 Mon Sep 17 00:00:00 2001 From: McCabe Maxsted Date: Tue, 2 Mar 2010 18:02:52 -0700 Subject: Applied UnknownJointsCrashFix v2 from Cool Viewer. Fixes crash when encountering avatars using multiple attachment points. Patch by Henri Beauchamp. (slviewer-0-v11905-UnknownJointsCrashFix_v2.patch) --- ChangeLog.txt | 8 ++++++++ linden/indra/llcharacter/llkeyframemotion.cpp | 9 ++++++--- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/ChangeLog.txt b/ChangeLog.txt index d89feec..36c8f2d 100644 --- a/ChangeLog.txt +++ b/ChangeLog.txt @@ -1,3 +1,11 @@ +2010-03-01 McCabe Maxsted + + * Applied slviewer-0-v11905-UnknownJointsCrashFix_v2.patch from CV to fix crash when encountering + avatars using multiple attachment points. + + modified: linden/indra/llcharacter/llkeyframemotion.cpp + + =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- =- 1.3.0 BETA 1 -= =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- diff --git a/linden/indra/llcharacter/llkeyframemotion.cpp b/linden/indra/llcharacter/llkeyframemotion.cpp index e6ef767..4cb2227 100644 --- a/linden/indra/llcharacter/llkeyframemotion.cpp +++ b/linden/indra/llcharacter/llkeyframemotion.cpp @@ -1159,9 +1159,12 @@ void LLKeyframeMotion::applyConstraint(JointConstraint* constraint, F32 time, U8 { LLVector3 delta = source_to_target * weight; LLPointer current_joint_state = getJointState(shared_data->mJointStateIndices[0]); - LLQuaternion parent_rot = current_joint_state->getJoint()->getParent()->getWorldRotation(); - delta = delta * ~parent_rot; - current_joint_state->setPosition(current_joint_state->getJoint()->getPosition() + delta); + if (current_joint_state->getJoint()) + { + LLQuaternion parent_rot = current_joint_state->getJoint()->getParent()->getWorldRotation(); + delta = delta * ~parent_rot; + current_joint_state->setPosition(current_joint_state->getJoint()->getPosition() + delta); + } } } -- cgit v1.1