diff --git a/indra/newview/chatbar_as_cmdline.cpp b/indra/newview/chatbar_as_cmdline.cpp index daeb07df5..c34441ebb 100644 --- a/indra/newview/chatbar_as_cmdline.cpp +++ b/indra/newview/chatbar_as_cmdline.cpp @@ -198,6 +198,23 @@ void invrepair() gInventory.collectDescendents(gInventory.getRootFolderID(),cats,items,FALSE);//,objectnamematches); } +void resync_anims() +{ + for (S32 i = 0; i < gObjectList.getNumObjects(); ++i) + { + LLViewerObject* object = gObjectList.getObject(i); + if (object && object->isAvatar()) + { + LLVOAvatar& avatarp = *(LLVOAvatar*)object; + for (const auto& playpair : avatarp.mPlayingAnimations) + { + avatarp.stopMotion(playpair.first, TRUE); + avatarp.startMotion(playpair.first); + } + } + } +} + #ifdef PROF_CTRL_CALLS bool sort_calls(const std::pair& left, const std::pair& right) { @@ -446,20 +463,7 @@ bool cmd_line_chat(std::string data, EChatType type) } else if (cmd == utf8str_tolower(sResyncAnimCommand)) // Resync Animations { - for (S32 i = 0; i < gObjectList.getNumObjects(); i++) - { - LLViewerObject* object = gObjectList.getObject(i); - if (object && object->isAvatar()) - { - LLVOAvatar& avatarp = *(LLVOAvatar*)object; - for (LLVOAvatar::AnimIterator it = avatarp.mPlayingAnimations.begin(), end = avatarp.mPlayingAnimations.end(); it != end; ++it) - { - const std::pair& playpair = *it; - avatarp.stopMotion(playpair.first, TRUE); - avatarp.startMotion(playpair.first); - } - } - } + resync_anims(); return false; } else if (cmd == utf8str_tolower(sKeyToName)) diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp index bc87afdb1..7ffdf43ea 100644 --- a/indra/newview/llviewermenu.cpp +++ b/indra/newview/llviewermenu.cpp @@ -2634,6 +2634,15 @@ class LLObjectData : public view_listener_t } }; +class LLSyncAnimations : public view_listener_t +{ + bool handleEvent(const LLSD& userdata) + { + void resync_anims(); + resync_anims(); + return false; + } +} class LLCanIHasKillEmAll : public view_listener_t { bool handleEvent(LLPointer event, const LLSD& userdata) @@ -9494,6 +9503,7 @@ void initialize_menus() addMenu(new SinguCheckPoseStand(), "CheckPoseStand"); addMenu(new SinguRebake(), "Rebake"); addMenu(new SinguVisibleDebugConsole(), "VisibleRegionDebugConsole"); + addMenu(new LLSyncAnimations(), "Tools.ResyncAnimations"); // [RLVa:KB] - Checked: 2010-01-18 (RLVa-1.1.0m) | Added: RLVa-1.1.0m | OK if (rlv_handler_t::isEnabled()) diff --git a/indra/newview/skins/default/xui/en-us/menu_viewer.xml b/indra/newview/skins/default/xui/en-us/menu_viewer.xml index 430a5820a..6e55ad502 100644 --- a/indra/newview/skins/default/xui/en-us/menu_viewer.xml +++ b/indra/newview/skins/default/xui/en-us/menu_viewer.xml @@ -1072,6 +1072,10 @@ + + +