diff options
author | McCabe Maxsted | 2010-03-02 18:02:52 -0700 |
---|---|---|
committer | Jacek Antonelli | 2010-03-11 19:03:44 -0600 |
commit | 9c4849477be06e834cecebe7ade6fdfa1532af53 (patch) | |
tree | 89a983fb73c26b18877d2b33a324486ee3eebaa1 /linden/indra/llcharacter | |
parent | Updated viewer_manifest.py to package only our free fonts. Again. (diff) | |
download | meta-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.cpp | 9 |
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 | ||