From 2d421a27e1e228bc658c6283e81d11903423bfce Mon Sep 17 00:00:00 2001 From: Inusaito Sayori Date: Fri, 1 Nov 2013 16:56:55 -0400 Subject: [PATCH] Let Ctrl/Shift + scrollwheel changing the camera/focus offsets affect the current preset's setting, not the back preset. --- indra/newview/llagentcamera.cpp | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/indra/newview/llagentcamera.cpp b/indra/newview/llagentcamera.cpp index 3b81192f9..5cd4c780e 100644 --- a/indra/newview/llagentcamera.cpp +++ b/indra/newview/llagentcamera.cpp @@ -2023,13 +2023,21 @@ LLVector3 LLAgentCamera::getCameraOffsetInitial() } // Adds change to vector CachedControl, vec, at idx -template +template void change_vec(const T& change, LLCachedControl& vec, const U32& idx = VZ) { Vec changed(vec); changed[idx] += change; vec = changed; } +// Same as above, but for ControlVariables +template +void change_vec(const T& change, LLPointer& vec, const U32& idx = VZ) +{ + Vec changed(vec->get()); + changed[idx] += change; + vec->set(changed.getValue()); +} //----------------------------------------------------------------------------- // handleScrollWheel() @@ -2072,13 +2080,11 @@ void LLAgentCamera::handleScrollWheel(S32 clicks) const F32 change(static_cast(clicks) * 0.1f); if (mask & MASK_SHIFT) { - static LLCachedControl focus_offset("FocusOffsetRearView"); - change_vec(change, focus_offset); + change_vec(change, mFocusOffsetInitial[mCameraPreset]); } if (mask & MASK_CONTROL) { - static LLCachedControl camera_offset("CameraOffsetRearView"); - change_vec(change, camera_offset); + change_vec(change, mCameraOffsetInitial[mCameraPreset]); } return; }