FIRE-34744: Disable recapture if loading own work

master
Angeldark Raymaker 2024-11-03 22:30:23 +00:00
parent e8c08ebc5d
commit 73ea090f99
2 changed files with 16 additions and 4 deletions

View File

@ -733,7 +733,10 @@ void FSFloaterPoser::loadPoseFromXml(LLVOAvatar* avatar, const std::string& pose
loadPositionsAndScalesAsDeltas = true;
if (startFromZeroRot) // old save formats will always start from T-Pose, for better or worse.
{
disableRecapture();
mPoserAnimator.setAllAvatarStartingRotationsToZero(avatar);
}
for (LLSD::map_const_iterator itr = pose.beginMap(); itr != pose.endMap(); ++itr)
{
@ -1129,10 +1132,7 @@ void FSFloaterPoser::onSetAvatarToTpose()
if (!avatar)
return;
mRecaptureJointsButton->setEnabled(false);
mSavePosesBtn->setLabel("Save Pose");
mDisableRecaptureUntilStopPosing = true;
disableRecapture();
mPoserAnimator.setAllAvatarStartingRotationsToZero(avatar);
}
@ -2039,6 +2039,13 @@ void FSFloaterPoser::refreshTextHighlightingOnAllScrollLists()
addBoldToScrollList(mCollisionVolumesScrollList, avatar);
}
void FSFloaterPoser::disableRecapture()
{
mRecaptureJointsButton->setEnabled(false);
mSavePosesBtn->setLabel("Save Pose");
mDisableRecaptureUntilStopPosing = true;
}
void FSFloaterPoser::reEnableRecaptureIfAllowed()
{
if (posingAnyoneOnScrollList())

View File

@ -298,6 +298,11 @@ class FSFloaterPoser : public LLFloater
/// </summary>
void refreshTextHighlightingOnAllScrollLists();
/// <summary>
/// Disables recapturing joint traits.
/// </summary>
void disableRecapture();
/// <summary>
/// Recapture is be disabled if user is making their own pose (starting from a T-Pose).
/// </summary>