diff --git a/indra/newview/alcontrolcache.cpp b/indra/newview/alcontrolcache.cpp index adfa6e435b6cdbddba41ef49cc2d5109e5c1638d..eb552aeb4627d009b268a65667ad3546365d2281 100644 --- a/indra/newview/alcontrolcache.cpp +++ b/indra/newview/alcontrolcache.cpp @@ -16,6 +16,7 @@ bool ALControlCache::MapShowEvents; bool ALControlCache::MapShowLandForSale; bool ALControlCache::MapShowPeople; bool ALControlCache::MapShowTelehubs; +F32 ALControlCache::MaxSelectDistance = 512.f; bool ALControlCache::NavBarShowParcelProperties = true; F32 ALControlCache::NearMeRange = 4096.f; U32 ALControlCache::PreferredMaturity; @@ -65,6 +66,7 @@ void ALControlCache::initControls() DECLARE_CTRL_BOOL(MapShowLandForSale); DECLARE_CTRL_BOOL(MapShowPeople); DECLARE_CTRL_BOOL(MapShowTelehubs); + DECLARE_CTRL_F32(MaxSelectDistance); DECLARE_CTRL_BOOL(NavBarShowParcelProperties); DECLARE_CTRL_F32(NearMeRange); DECLARE_CTRL_U32(PreferredMaturity); diff --git a/indra/newview/alcontrolcache.h b/indra/newview/alcontrolcache.h index eb24ba7e23088f250ca11919e3181b7bdb9675c7..30b6ac9377803c31badfc83f2f6e58843673b4d8 100644 --- a/indra/newview/alcontrolcache.h +++ b/indra/newview/alcontrolcache.h @@ -18,6 +18,7 @@ struct ALControlCache static bool MapShowLandForSale; static bool MapShowPeople; static bool MapShowTelehubs; + static F32 MaxSelectDistance; static bool NavBarShowParcelProperties; static F32 NearMeRange; static U32 PreferredMaturity; diff --git a/indra/newview/llglsandbox.cpp b/indra/newview/llglsandbox.cpp index 0e5f252910c23283c9deccf233ef778763e630a4..fcdaa942b28fa6889d33a7683ec5637845aca822 100644 --- a/indra/newview/llglsandbox.cpp +++ b/indra/newview/llglsandbox.cpp @@ -91,7 +91,7 @@ void LLToolSelectRect::handleRectangleSelection(S32 x, S32 y, MASK mask) // [/RLVa:KB] LLVector3 av_pos = gAgent.getPositionAgent(); - F32 select_dist_squared = gSavedSettings.getF32("MaxSelectDistance"); + F32 select_dist_squared = ALControlCache::MaxSelectDistance; select_dist_squared = select_dist_squared * select_dist_squared; BOOL deselect = (mask == MASK_CONTROL); @@ -146,8 +146,8 @@ void LLToolSelectRect::handleRectangleSelection(S32 x, S32 y, MASK mask) LLVector3 relative_av_pos = av_pos; relative_av_pos -= LLViewerCamera::getInstance()->getOrigin(); - F32 new_far = relative_av_pos * LLViewerCamera::getInstance()->getAtAxis() + gSavedSettings.getF32("MaxSelectDistance"); - F32 new_near = relative_av_pos * LLViewerCamera::getInstance()->getAtAxis() - gSavedSettings.getF32("MaxSelectDistance"); + F32 new_far = relative_av_pos * LLViewerCamera::getInstance()->getAtAxis() + ALControlCache::MaxSelectDistance; + F32 new_near = relative_av_pos * LLViewerCamera::getInstance()->getAtAxis() - ALControlCache::MaxSelectDistance; new_near = llmax(new_near, 0.1f); diff --git a/indra/newview/llmaniprotate.cpp b/indra/newview/llmaniprotate.cpp index ed4e0fee3d17a8e0d1dcf0b99c906de0ce9df389..d7cd143b5355cb376f2712172e81bae1330366b4 100644 --- a/indra/newview/llmaniprotate.cpp +++ b/indra/newview/llmaniprotate.cpp @@ -1197,7 +1197,7 @@ BOOL LLManipRotate::updateVisiblity() // Don't drag manip if object too far away if (ALControlCache::LimitSelectDistance) { - F32 max_select_distance = gSavedSettings.getF32("MaxSelectDistance"); + F32 max_select_distance = ALControlCache::MaxSelectDistance; if (dist_vec_squared(gAgent.getPositionAgent(), center) > (max_select_distance * max_select_distance)) { visible = FALSE; diff --git a/indra/newview/llmanipscale.cpp b/indra/newview/llmanipscale.cpp index 0d6a6e3644298ecf035e50aba5d3cd71c57fe97d..b99176edfcc60b71ec258d2427148ff584ff3b24 100644 --- a/indra/newview/llmanipscale.cpp +++ b/indra/newview/llmanipscale.cpp @@ -251,7 +251,7 @@ void LLManipScale::render() // Don't draw manip if object too far away if (ALControlCache::LimitSelectDistance) { - F32 max_select_distance = gSavedSettings.getF32("MaxSelectDistance"); + F32 max_select_distance = ALControlCache::MaxSelectDistance; if (range_from_agent_squared > max_select_distance * max_select_distance) { return; diff --git a/indra/newview/llmaniptranslate.cpp b/indra/newview/llmaniptranslate.cpp index a0edbdf38b252e25b2c53111d12d5a35ded6a91f..b40d8ab32dab48e34f4fc20d669aed24189603c3 100644 --- a/indra/newview/llmaniptranslate.cpp +++ b/indra/newview/llmaniptranslate.cpp @@ -1842,7 +1842,7 @@ void LLManipTranslate::renderTranslationHandles() // Don't draw handles if you're too far away if (ALControlCache::LimitSelectDistance) { - if (range_from_agent > gSavedSettings.getF32("MaxSelectDistance")) + if (range_from_agent > ALControlCache::MaxSelectDistance) { return; } diff --git a/indra/newview/llselectmgr.cpp b/indra/newview/llselectmgr.cpp index ba19a5d8b1655b384666320e415790e1e8027e62..24cd09b3d9d043d7a5092a2510f8489b1673df0c 100644 --- a/indra/newview/llselectmgr.cpp +++ b/indra/newview/llselectmgr.cpp @@ -4501,9 +4501,9 @@ void LLSelectMgr::deselectAllIfTooFar() && !mSelectedObjects->isAttachment() && !selectionCenter.isExactlyZero()) { -// F32 deselect_dist = gSavedSettings.getF32("MaxSelectDistance"); +// F32 deselect_dist = ALControlCache::MaxSelectDistance; // [RLVa:KB] - Checked: 2010-04-11 (RLVa-1.2.0e) | Modified: RLVa-0.2.0f - F32 deselect_dist = (!fRlvFartouch) ? gSavedSettings.getF32("MaxSelectDistance") : s_nFartouchDist; + F32 deselect_dist = (!fRlvFartouch) ? ALControlCache::MaxSelectDistance : s_nFartouchDist; // [/RLVa:KB] F32 deselect_dist_sq = deselect_dist * deselect_dist; diff --git a/indra/newview/lltoolplacer.cpp b/indra/newview/lltoolplacer.cpp index a3d13ed8435a483a56af7cda3bd1754a7d5bfd1b..aabccb289266f3c6e2491a8ebff0bdca13807674 100644 --- a/indra/newview/lltoolplacer.cpp +++ b/indra/newview/lltoolplacer.cpp @@ -80,7 +80,7 @@ LLToolPlacer::LLToolPlacer() BOOL LLToolPlacer::raycastForNewObjPos( S32 x, S32 y, LLViewerObject** hit_obj, S32* hit_face, BOOL* b_hit_land, LLVector3* ray_start_region, LLVector3* ray_end_region, LLViewerRegion** region ) { - F32 max_dist_from_camera = gSavedSettings.getF32( "MaxSelectDistance" ) - 1.f; + F32 max_dist_from_camera = ALControlCache::MaxSelectDistance - 1.f; // Viewer-side pick to find the right sim to create the object on. // First find the surface the object will be created on. diff --git a/indra/newview/llviewercamera.cpp b/indra/newview/llviewercamera.cpp index 74a6327f99d40f2fc6f9518540ee0fd9c6cc5840..f2898d334fb5c05854df1d48cd7dcfa033607a0e 100644 --- a/indra/newview/llviewercamera.cpp +++ b/indra/newview/llviewercamera.cpp @@ -332,7 +332,7 @@ void LLViewerCamera::setPerspective(BOOL for_selection, if (limit_select_distance) { // ...select distance from control - z_far = gSavedSettings.getF32("MaxSelectDistance"); + z_far = ALControlCache::MaxSelectDistance; } else {