aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/linden/indra/llcharacter
diff options
context:
space:
mode:
authorMcCabe Maxsted2010-03-02 18:02:52 -0700
committerJacek Antonelli2010-03-11 19:03:44 -0600
commit9c4849477be06e834cecebe7ade6fdfa1532af53 (patch)
tree89a983fb73c26b18877d2b33a324486ee3eebaa1 /linden/indra/llcharacter
parentUpdated viewer_manifest.py to package only our free fonts. Again. (diff)
downloadmeta-impy-9c4849477be06e834cecebe7ade6fdfa1532af53.zip
meta-impy-9c4849477be06e834cecebe7ade6fdfa1532af53.tar.gz
meta-impy-9c4849477be06e834cecebe7ade6fdfa1532af53.tar.bz2
meta-impy-9c4849477be06e834cecebe7ade6fdfa1532af53.tar.xz
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)
Diffstat (limited to 'linden/indra/llcharacter')
-rw-r--r--linden/indra/llcharacter/llkeyframemotion.cpp9
1 files changed, 6 insertions, 3 deletions
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
1159 { 1159 {
1160 LLVector3 delta = source_to_target * weight; 1160 LLVector3 delta = source_to_target * weight;
1161 LLPointer<LLJointState> current_joint_state = getJointState(shared_data->mJointStateIndices[0]); 1161 LLPointer<LLJointState> current_joint_state = getJointState(shared_data->mJointStateIndices[0]);
1162 LLQuaternion parent_rot = current_joint_state->getJoint()->getParent()->getWorldRotation(); 1162 if (current_joint_state->getJoint())
1163 delta = delta * ~parent_rot; 1163 {
1164 current_joint_state->setPosition(current_joint_state->getJoint()->getPosition() + delta); 1164 LLQuaternion parent_rot = current_joint_state->getJoint()->getParent()->getWorldRotation();
1165 delta = delta * ~parent_rot;
1166 current_joint_state->setPosition(current_joint_state->getJoint()->getPosition() + delta);
1167 }
1165 } 1168 }
1166} 1169}
1167 1170