Let Ctrl/Shift + scrollwheel changing the camera/focus offsets affect the current preset's setting, not the back preset.

This commit is contained in:
Inusaito Sayori
2013-11-01 16:56:55 -04:00
parent 3934e0c9d3
commit 2d421a27e1

View File

@@ -2023,13 +2023,21 @@ LLVector3 LLAgentCamera::getCameraOffsetInitial()
} }
// Adds change to vector CachedControl, vec, at idx // Adds change to vector CachedControl, vec, at idx
template <typename T, typename Vec> template <typename Vec, typename T>
void change_vec(const T& change, LLCachedControl<Vec>& vec, const U32& idx = VZ) void change_vec(const T& change, LLCachedControl<Vec>& vec, const U32& idx = VZ)
{ {
Vec changed(vec); Vec changed(vec);
changed[idx] += change; changed[idx] += change;
vec = changed; vec = changed;
} }
// Same as above, but for ControlVariables
template <typename Vec, typename T>
void change_vec(const T& change, LLPointer<LLControlVariable>& vec, const U32& idx = VZ)
{
Vec changed(vec->get());
changed[idx] += change;
vec->set(changed.getValue());
}
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// handleScrollWheel() // handleScrollWheel()
@@ -2072,13 +2080,11 @@ void LLAgentCamera::handleScrollWheel(S32 clicks)
const F32 change(static_cast<F32>(clicks) * 0.1f); const F32 change(static_cast<F32>(clicks) * 0.1f);
if (mask & MASK_SHIFT) if (mask & MASK_SHIFT)
{ {
static LLCachedControl<LLVector3d> focus_offset("FocusOffsetRearView"); change_vec<LLVector3d>(change, mFocusOffsetInitial[mCameraPreset]);
change_vec(change, focus_offset);
} }
if (mask & MASK_CONTROL) if (mask & MASK_CONTROL)
{ {
static LLCachedControl<LLVector3> camera_offset("CameraOffsetRearView"); change_vec<LLVector3>(change, mCameraOffsetInitial[mCameraPreset]);
change_vec(change, camera_offset);
} }
return; return;
} }