FIRE-35794: Don't zero scale and pos deltas

for diff reloads
master
Angeldark Raymaker 2025-09-28 12:46:44 +01:00
parent 5ad643ba45
commit 7e04a1e658
3 changed files with 4 additions and 9 deletions

View File

@ -518,7 +518,8 @@ bool FSFloaterPoser::savePoseToXml(LLVOAvatar* avatar, const std::string& poseFi
record["version"]["value"] = (S32)7;
record["startFromTeePose"]["value"] = !savingDiff;
mPoserAnimator.savePosingState(avatar, &record);
if (savingDiff)
mPoserAnimator.savePosingState(avatar, &record);
LLVector3 rotation, position, scale, zeroVector;
bool baseRotationIsZero;
@ -902,6 +903,7 @@ void FSFloaterPoser::onPoseMenuAction(const LLSD& param)
loadType = SELECTIVE_ROT;
mLoadPoseTimer->tryLoading(poseName, loadType);
setLoadingProgress(true);
}
void FSFloaterPoser::timedReload()
@ -1171,7 +1173,7 @@ bool FSFloaterPoser::loadPoseFromXml(LLVOAvatar* avatar, const std::string& pose
mPoserAnimator.setRotationIsMirrored(avatar, *poserJoint, mirroredJoint);
}
if (version > 6)
if (version > 6 && !startFromZeroRot)
loadSuccess = mPoserAnimator.loadPosingState(avatar, pose);
}
}

View File

@ -937,7 +937,6 @@ void FSPoserAnimator::loadJointPosition(LLVOAvatar* avatar, const FSPoserJoint*
{
jointPose->setJointPriority(LLJoint::LOW_PRIORITY);
jointPose->setBasePosition(position, LLJoint::LOW_PRIORITY);
jointPose->setPublicPosition(LLVector3::zero);
}
}

View File

@ -298,16 +298,10 @@ bool FSPosingMotion::loadOtherMotionToBaseOfThisMotion(LLKeyframeMotion* motionT
poserJoint_iter->setBaseRotation(rot, priority);
if (hasPosition)
{
poserJoint_iter->setBasePosition(position, priority);
poserJoint_iter->setPublicPosition(LLVector3::zero);
}
if (hasScale)
{
poserJoint_iter->setBaseScale(scale, priority);
poserJoint_iter->setPublicScale(LLVector3::zero);
}
}
return true;