diff options
Diffstat (limited to 'indra/newview/llviewermenu.cpp')
| -rw-r--r-- | indra/newview/llviewermenu.cpp | 120 | 
1 files changed, 106 insertions, 14 deletions
diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp index 44157d2d2d..f7688b762f 100644 --- a/indra/newview/llviewermenu.cpp +++ b/indra/newview/llviewermenu.cpp @@ -85,6 +85,7 @@  #include "lltoolface.h"  #include "llhints.h"  #include "llhudeffecttrail.h" +#include "llhudeffectresetskeleton.h"  #include "llhudmanager.h"  #include "llimview.h"  #include "llinventorybridge.h" @@ -1847,7 +1848,6 @@ class LLAdvancedAppearanceToXML : public view_listener_t  {      bool handleEvent(const LLSD& userdata)      { -        std::string emptyname;          LLViewerObject *obj = LLSelectMgr::getInstance()->getSelection()->getPrimaryObject();          LLVOAvatar *avatar = NULL;          if (obj) @@ -1874,7 +1874,7 @@ class LLAdvancedAppearanceToXML : public view_listener_t          }          if (avatar)          { -            avatar->dumpArchetypeXML(emptyname); +            avatar->dumpArchetypeXML(LLStringUtil::null);          }          return true;      } @@ -4354,13 +4354,6 @@ void set_god_level(U8 god_level)      // changing god-level can affect which menus we see      show_debug_menus(); - -    // changing god-level can invalidate search results -    LLFloaterSearch *search = dynamic_cast<LLFloaterSearch*>(LLFloaterReg::getInstance("search")); -    if (search) -    { -        search->godLevelChanged(god_level); -    }  }  #ifdef TOGGLE_HACKED_GODLIKE_VIEWER @@ -5644,6 +5637,38 @@ class LLToolsEnablePathfindingRebakeRegion : public view_listener_t      }  }; +class LLToolsCheckSelectionLODMode : public view_listener_t +{ +    bool handleEvent(const LLSD& userdata) +    { +        std::string param = userdata.asString(); +        static LLCachedControl<S32> debug_selection_lods(gSavedSettings, "DebugSelectionLODs", 0); +        if ("default" == param) +        { +            return debug_selection_lods() < 0; +        } +        else if ("high" == param) +        { +            return debug_selection_lods() == 3; +        } +        else if ("medium" == param) +        { +            return debug_selection_lods() == 2; +        } +        else if ("low" == param) +        { +            return debug_selection_lods() == 1; +        } +        else if ("lowest" == param) +        { +            return debug_selection_lods() == 0; +        } + +        return false; +    } +}; + +  // Round the position of all root objects to the grid  class LLToolsSnapObjectXY : public view_listener_t  { @@ -6485,7 +6510,7 @@ void handle_look_at_selection(const LLSD& param)      }  } -void handle_zoom_to_object(const LLUUID& object_id) +bool handle_zoom_to_object(const LLUUID& object_id)  {      const F32 PADDING_FACTOR = 2.f; @@ -6503,12 +6528,14 @@ void handle_zoom_to_object(const LLUUID& object_id)          obj_to_cam.normVec(); -            LLVector3d object_center_global = gAgent.getPosGlobalFromAgent(bbox.getCenterAgent()); +        LLVector3d object_center_global = gAgent.getPosGlobalFromAgent(bbox.getCenterAgent()); -            gAgentCamera.setCameraPosAndFocusGlobal(object_center_global + LLVector3d(obj_to_cam * distance), +        gAgentCamera.setCameraPosAndFocusGlobal(object_center_global + LLVector3d(obj_to_cam * distance),                                              object_center_global,                                              object_id ); +        return true;      } +    return false;  }  class LLAvatarInviteToGroup : public view_listener_t @@ -6619,8 +6646,18 @@ class LLAvatarResetSkeleton : public view_listener_t      {          if (LLVOAvatar* avatar = find_avatar_from_object(LLSelectMgr::getInstance()->getSelection()->getPrimaryObject()))          { +            if(avatar->getID() == gAgentID) +            { +                LLHUDEffectResetSkeleton* effectp = (LLHUDEffectResetSkeleton*)LLHUDManager::getInstance()->createViewerEffect(LLHUDObject::LL_HUD_EFFECT_RESET_SKELETON, true); +                effectp->setSourceObject(gAgentAvatarp); +                effectp->setTargetObject((LLViewerObject*)avatar); +                effectp->setResetAnimations(false); +            } +            else +            {              avatar->resetSkeleton(false);          } +        }          return true;      }  }; @@ -6643,8 +6680,18 @@ class LLAvatarResetSkeletonAndAnimations : public view_listener_t      {          if (LLVOAvatar* avatar = find_avatar_from_object(LLSelectMgr::getInstance()->getSelection()->getPrimaryObject()))          { +            if(avatar->getID() == gAgentID) +            { +                LLHUDEffectResetSkeleton* effectp = (LLHUDEffectResetSkeleton*)LLHUDManager::getInstance()->createViewerEffect(LLHUDObject::LL_HUD_EFFECT_RESET_SKELETON, true); +                effectp->setSourceObject(gAgentAvatarp); +                effectp->setTargetObject((LLViewerObject*)avatar); +                effectp->setResetAnimations(true); +            } +            else +            {              avatar->resetSkeleton(true);          } +        }          return true;      }  }; @@ -6671,11 +6718,24 @@ class LLAvatarResetSelfSkeletonAndAnimations : public view_listener_t      {          if (LLVOAvatar* avatar = find_avatar_from_object(LLSelectMgr::getInstance()->getSelection()->getPrimaryObject()))          { -            avatar->resetSkeleton(true); +            if(avatar->getID() == gAgentID) +            { +                LLHUDEffectResetSkeleton* effectp = (LLHUDEffectResetSkeleton*)LLHUDManager::getInstance()->createViewerEffect(LLHUDObject::LL_HUD_EFFECT_RESET_SKELETON, true); +                effectp->setSourceObject(gAgentAvatarp); +                effectp->setTargetObject((LLViewerObject*)avatar); +                effectp->setResetAnimations(true);          }          else          { -            gAgentAvatarp->resetSkeleton(true); +                avatar->resetSkeleton(true); +            } +        } +        else +        { +            LLHUDEffectResetSkeleton* effectp = (LLHUDEffectResetSkeleton*)LLHUDManager::getInstance()->createViewerEffect(LLHUDObject::LL_HUD_EFFECT_RESET_SKELETON, true); +            effectp->setSourceObject(gAgentAvatarp); +            effectp->setTargetObject(gAgentAvatarp); +            effectp->setResetAnimations(true);          }          return true;      } @@ -8468,6 +8528,36 @@ class LLToolsSelectBySurrounding : public view_listener_t      }  }; +class LLToolsSelectionLODMode : public view_listener_t +{ +    bool handleEvent(const LLSD& userdata) +    { +        std::string param = userdata.asString(); +        if ("default" == param) +        { +            gSavedSettings.setS32("DebugSelectionLODs", -1); +        } +        else if ("high" == param) +        { +            gSavedSettings.setS32("DebugSelectionLODs", 3); +        } +        else if ("medium" == param) +        { +            gSavedSettings.setS32("DebugSelectionLODs", 2); +        } +        else if ("low" == param) +        { +            gSavedSettings.setS32("DebugSelectionLODs", 1); +        } +        else if ("lowest" == param) +        { +            gSavedSettings.setS32("DebugSelectionLODs", 0); +        } + +        return true; +    } +}; +  class LLToolsShowHiddenSelection : public view_listener_t  {      bool handleEvent(const LLSD& userdata) @@ -9707,6 +9797,7 @@ void initialize_menus()      view_listener_t::addMenu(new LLToolsSelectInvisibleObjects(), "Tools.SelectInvisibleObjects");      view_listener_t::addMenu(new LLToolsSelectReflectionProbes(), "Tools.SelectReflectionProbes");      view_listener_t::addMenu(new LLToolsSelectBySurrounding(), "Tools.SelectBySurrounding"); +    view_listener_t::addMenu(new LLToolsSelectionLODMode(), "Tools.SelectionLODMode");      view_listener_t::addMenu(new LLToolsShowHiddenSelection(), "Tools.ShowHiddenSelection");      view_listener_t::addMenu(new LLToolsShowSelectionLightRadius(), "Tools.ShowSelectionLightRadius");      view_listener_t::addMenu(new LLToolsEditLinkedParts(), "Tools.EditLinkedParts"); @@ -9739,6 +9830,7 @@ void initialize_menus()      view_listener_t::addMenu(new LLToolsEnablePathfindingView(), "Tools.EnablePathfindingView");      view_listener_t::addMenu(new LLToolsDoPathfindingRebakeRegion(), "Tools.DoPathfindingRebakeRegion");      view_listener_t::addMenu(new LLToolsEnablePathfindingRebakeRegion(), "Tools.EnablePathfindingRebakeRegion"); +    view_listener_t::addMenu(new LLToolsCheckSelectionLODMode(), "Tools.ToolsCheckSelectionLODMode");      // Help menu      // most items use the ShowFloater method  | 
