summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--indra/newview/llviewermenu.cpp16
-rw-r--r--indra/newview/llvoavatar.cpp8
-rw-r--r--indra/newview/llvoavatar.h2
-rw-r--r--indra/newview/skins/default/xui/en/menu_attachment_other.xml7
-rw-r--r--indra/newview/skins/default/xui/en/menu_attachment_self.xml6
-rw-r--r--indra/newview/skins/default/xui/en/menu_avatar_other.xml7
-rw-r--r--indra/newview/skins/default/xui/en/menu_avatar_self.xml6
7 files changed, 49 insertions, 3 deletions
diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp
index e9ee67a929..e5ba1ecb97 100644
--- a/indra/newview/llviewermenu.cpp
+++ b/indra/newview/llviewermenu.cpp
@@ -6005,12 +6005,25 @@ class LLAvatarResetSkeleton: public view_listener_t
LLVOAvatar* avatar = find_avatar_from_object( LLSelectMgr::getInstance()->getSelection()->getPrimaryObject() );
if(avatar)
{
- avatar->resetSkeleton();
+ avatar->resetSkeleton(false);
}
return true;
}
};
+class LLAvatarResetSkeletonAndAnimations : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ LLVOAvatar* avatar = find_avatar_from_object(LLSelectMgr::getInstance()->getSelection()->getPrimaryObject());
+ if (avatar)
+ {
+ avatar->resetSkeleton(true);
+ }
+ return true;
+ }
+};
+
class LLAvatarAddContact : public view_listener_t
{
bool handleEvent(const LLSD& userdata)
@@ -9002,6 +9015,7 @@ void initialize_menus()
view_listener_t::addMenu(new LLAvatarReportAbuse(), "Avatar.ReportAbuse");
view_listener_t::addMenu(new LLAvatarToggleMyProfile(), "Avatar.ToggleMyProfile");
view_listener_t::addMenu(new LLAvatarResetSkeleton(), "Avatar.ResetSkeleton");
+ view_listener_t::addMenu(new LLAvatarResetSkeleton(), "Avatar.ResetSkeletonAndAnimations");
enable.add("Avatar.IsMyProfileOpen", boost::bind(&my_profile_visible));
commit.add("Avatar.OpenMarketplace", boost::bind(&LLWeb::loadURLExternal, gSavedSettings.getString("MarketplaceURL")));
diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp
index cbd941dd40..77a526f518 100644
--- a/indra/newview/llvoavatar.cpp
+++ b/indra/newview/llvoavatar.cpp
@@ -1847,7 +1847,7 @@ void LLVOAvatar::resetVisualParams()
//-----------------------------------------------------------------------------
// resetSkeleton()
//-----------------------------------------------------------------------------
-void LLVOAvatar::resetSkeleton()
+void LLVOAvatar::resetSkeleton(bool reset_animations)
{
LL_DEBUGS("Avatar") << avString() << " reset starts" << LL_ENDL;
if (!mLastProcessedAppearance)
@@ -1911,6 +1911,12 @@ void LLVOAvatar::resetSkeleton()
// Restore attachment pos overrides
rebuildAttachmentOverrides();
+ // Animations
+ if (reset_animations)
+ {
+ resetAnimations();
+ }
+
LL_DEBUGS("Avatar") << avString() << " reset ends" << LL_ENDL;
}
diff --git a/indra/newview/llvoavatar.h b/indra/newview/llvoavatar.h
index 39b32f1ac5..bd89d4ef23 100644
--- a/indra/newview/llvoavatar.h
+++ b/indra/newview/llvoavatar.h
@@ -376,7 +376,7 @@ public:
void initAttachmentPoints(bool ignore_hud_joints = false);
/*virtual*/ void buildCharacter();
void resetVisualParams();
- void resetSkeleton();
+ void resetSkeleton(bool reset_animations);
LLVector3 mCurRootToHeadOffset;
LLVector3 mTargetRootToHeadOffset;
diff --git a/indra/newview/skins/default/xui/en/menu_attachment_other.xml b/indra/newview/skins/default/xui/en/menu_attachment_other.xml
index 8771660bcf..2f60bab0b7 100644
--- a/indra/newview/skins/default/xui/en/menu_attachment_other.xml
+++ b/indra/newview/skins/default/xui/en/menu_attachment_other.xml
@@ -48,6 +48,13 @@
function="Avatar.ResetSkeleton" />
</menu_item_call>
+ <menu_item_call label="Reset Skeleton And Animations"
+ layout="topleft"
+ name="Reset Skeleton And Animations">
+ <menu_item_call.on_click
+ function="Avatar.ResetSkeletonAndAnimations" />
+ </menu_item_call>
+
<menu_item_separator />
<menu_item_call
enabled="false"
diff --git a/indra/newview/skins/default/xui/en/menu_attachment_self.xml b/indra/newview/skins/default/xui/en/menu_attachment_self.xml
index ced0dd37b1..59faf6a9f5 100644
--- a/indra/newview/skins/default/xui/en/menu_attachment_self.xml
+++ b/indra/newview/skins/default/xui/en/menu_attachment_self.xml
@@ -105,6 +105,12 @@ name="Edit Outfit">
<menu_item_call.on_click
function="Avatar.ResetSkeleton" />
</menu_item_call>
+ <menu_item_call label="Reset Skeleton And Animations"
+ layout="topleft"
+ name="Reset Skeleton And Animations">
+ <menu_item_call.on_click
+ function="Avatar.ResetSkeletonAndAnimations" />
+ </menu_item_call>
<menu_item_call
label="My Friends"
diff --git a/indra/newview/skins/default/xui/en/menu_avatar_other.xml b/indra/newview/skins/default/xui/en/menu_avatar_other.xml
index f89c0eadf8..ddfff23410 100644
--- a/indra/newview/skins/default/xui/en/menu_avatar_other.xml
+++ b/indra/newview/skins/default/xui/en/menu_avatar_other.xml
@@ -49,6 +49,13 @@
function="Avatar.ResetSkeleton" />
</menu_item_call>
+ <menu_item_call label="Reset Skeleton And Animations"
+ layout="topleft"
+ name="Reset Skeleton And Animations">
+ <menu_item_call.on_click
+ function="Avatar.ResetSkeletonAndAnimations" />
+ </menu_item_call>
+
<menu_item_separator />
<menu_item_call
diff --git a/indra/newview/skins/default/xui/en/menu_avatar_self.xml b/indra/newview/skins/default/xui/en/menu_avatar_self.xml
index 924e8b8454..9e181d0b6d 100644
--- a/indra/newview/skins/default/xui/en/menu_avatar_self.xml
+++ b/indra/newview/skins/default/xui/en/menu_avatar_self.xml
@@ -243,6 +243,12 @@
<menu_item_call.on_click
function="Avatar.ResetSkeleton" />
</menu_item_call>
+ <menu_item_call label="Reset Skeleton And Animations"
+ layout="topleft"
+ name="Reset Skeleton And Animations">
+ <menu_item_call.on_click
+ function="Avatar.ResetSkeletonAndAnimations" />
+ </menu_item_call>
<menu_item_call
label="My Friends"
layout="topleft"