aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/linden/indra/newview/llselectmgr.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'linden/indra/newview/llselectmgr.cpp')
-rw-r--r--linden/indra/newview/llselectmgr.cpp29
1 files changed, 24 insertions, 5 deletions
diff --git a/linden/indra/newview/llselectmgr.cpp b/linden/indra/newview/llselectmgr.cpp
index 808eb07..e4f914f 100644
--- a/linden/indra/newview/llselectmgr.cpp
+++ b/linden/indra/newview/llselectmgr.cpp
@@ -107,6 +107,7 @@ BOOL gHideSelectedObjects = FALSE;
107BOOL gAllowSelectAvatar = FALSE; 107BOOL gAllowSelectAvatar = FALSE;
108 108
109BOOL LLSelectMgr::sRectSelectInclusive = TRUE; 109BOOL LLSelectMgr::sRectSelectInclusive = TRUE;
110BOOL LLSelectMgr::sRenderSelectionHighlights = TRUE;
110BOOL LLSelectMgr::sRenderHiddenSelections = TRUE; 111BOOL LLSelectMgr::sRenderHiddenSelections = TRUE;
111BOOL LLSelectMgr::sRenderLightRadius = FALSE; 112BOOL LLSelectMgr::sRenderLightRadius = FALSE;
112F32 LLSelectMgr::sHighlightThickness = 0.f; 113F32 LLSelectMgr::sHighlightThickness = 0.f;
@@ -3430,18 +3431,26 @@ void LLSelectMgr::deselectAllIfTooFar()
3430 3431
3431 // HACK: Don't deselect when we're navigating to rate an object's 3432 // HACK: Don't deselect when we're navigating to rate an object's
3432 // owner or creator. JC 3433 // owner or creator. JC
3433 if (gPieObject->getVisible() || gPieRate->getVisible() ) 3434 if (gPieObject->getVisible())
3434 { 3435 {
3435 return; 3436 return;
3436 } 3437 }
3437 3438
3438 LLVector3d selectionCenter = getSelectionCenterGlobal(); 3439 LLVector3d selectionCenter = getSelectionCenterGlobal();
3439 if (gSavedSettings.getBOOL("LimitSelectDistance") 3440
3441// if (gSavedSettings.getBOOL("LimitSelectDistance")
3442// [RLVa:KB] - Checked: 2009-07-10 (RLVa-1.0.0g) | Modified: RLVa-0.2.0f
3443 BOOL fRlvFartouch = gRlvHandler.hasBehaviour(RLV_BHVR_FARTOUCH) && gFloaterTools->getVisible();
3444 if ( (gSavedSettings.getBOOL("LimitSelectDistance") || (fRlvFartouch) )
3445// [/RLVa:KB]
3440 && (!mSelectedObjects->getPrimaryObject() || !mSelectedObjects->getPrimaryObject()->isAvatar()) 3446 && (!mSelectedObjects->getPrimaryObject() || !mSelectedObjects->getPrimaryObject()->isAvatar())
3441 && !mSelectedObjects->isAttachment() 3447 && !mSelectedObjects->isAttachment()
3442 && !selectionCenter.isExactlyZero()) 3448 && !selectionCenter.isExactlyZero())
3443 { 3449 {
3444 F32 deselect_dist = gSavedSettings.getF32("MaxSelectDistance"); 3450// F32 deselect_dist = gSavedSettings.getF32("MaxSelectDistance");
3451// [RLVa:KB] - Checked: 2009-07-10 (RLVa-1.0.0g) | Modified: RLVa-0.2.0f
3452 F32 deselect_dist = (!fRlvFartouch) ? gSavedSettings.getF32("MaxSelectDistance") : 1.5f;
3453// [/RLVa:KB]
3445 F32 deselect_dist_sq = deselect_dist * deselect_dist; 3454 F32 deselect_dist_sq = deselect_dist * deselect_dist;
3446 3455
3447 LLVector3d select_delta = gAgent.getPositionGlobal() - selectionCenter; 3456 LLVector3d select_delta = gAgent.getPositionGlobal() - selectionCenter;
@@ -4537,6 +4546,11 @@ extern LLGLdouble gGLModelView[16];
4537 4546
4538void LLSelectMgr::updateSilhouettes() 4547void LLSelectMgr::updateSilhouettes()
4539{ 4548{
4549 if (!mRenderSilhouettes || !LLSelectMgr::sRenderSelectionHighlights)
4550 {
4551 return;
4552 }
4553
4540 S32 num_sils_genned = 0; 4554 S32 num_sils_genned = 0;
4541 4555
4542 LLVector3d cameraPos = gAgent.getCameraPositionGlobal(); 4556 LLVector3d cameraPos = gAgent.getCameraPositionGlobal();
@@ -4809,7 +4823,7 @@ void LLSelectMgr::updateSilhouettes()
4809 4823
4810void LLSelectMgr::renderSilhouettes(BOOL for_hud) 4824void LLSelectMgr::renderSilhouettes(BOOL for_hud)
4811{ 4825{
4812 if (!mRenderSilhouettes) 4826 if (!mRenderSilhouettes || !LLSelectMgr::sRenderSelectionHighlights)
4813 { 4827 {
4814 return; 4828 return;
4815 } 4829 }
@@ -5492,6 +5506,10 @@ void LLSelectMgr::updateSelectionCenter()
5492 5506
5493 std::vector < LLViewerObject *> jointed_objects; 5507 std::vector < LLViewerObject *> jointed_objects;
5494 5508
5509 // Initialize the bounding box to the root prim, so the BBox orientation
5510 // matches the root prim's (affecting the orientation of the manipulators).
5511 bbox.addBBoxAgent( (mSelectedObjects->getFirstRootObject(TRUE))->getBoundingBoxAgent() );
5512
5495 for (LLObjectSelection::iterator iter = mSelectedObjects->begin(); 5513 for (LLObjectSelection::iterator iter = mSelectedObjects->begin();
5496 iter != mSelectedObjects->end(); iter++) 5514 iter != mSelectedObjects->end(); iter++)
5497 { 5515 {
@@ -5738,7 +5756,8 @@ BOOL LLSelectMgr::canSelectObject(LLViewerObject* object)
5738 } 5756 }
5739 5757
5740 if ((gSavedSettings.getBOOL("SelectOwnedOnly") && !object->permYouOwner()) || 5758 if ((gSavedSettings.getBOOL("SelectOwnedOnly") && !object->permYouOwner()) ||
5741 (gSavedSettings.getBOOL("SelectMovableOnly") && !object->permMove())) 5759 (gSavedSettings.getBOOL("SelectMovableOnly") && !object->permMove()) ||
5760 (gSavedSettings.getBOOL("SelectCopyableOnly") && !object->permCopy()))
5742 { 5761 {
5743 // only select my own objects 5762 // only select my own objects
5744 return FALSE; 5763 return FALSE;