From 60ef266568a4fb660a747d822db0d05aa6944b13 Mon Sep 17 00:00:00 2001 From: ziree Date: Tue, 5 Jun 2012 20:22:03 +0200 Subject: [PATCH] Added CTRL/SHIFT+Scrollwheel to alter camera focus and offset. ESC resets to default values. Implements FIRE-5537 --- indra/newview/llagentcamera.cpp | 18 ++++++++++++++++++ indra/newview/llviewermenu.cpp | 5 +++++ 2 files changed, 23 insertions(+) diff --git a/indra/newview/llagentcamera.cpp b/indra/newview/llagentcamera.cpp index 4a1a3a5027..5c0b8d2d58 100644 --- a/indra/newview/llagentcamera.cpp +++ b/indra/newview/llagentcamera.cpp @@ -2004,6 +2004,24 @@ void LLAgentCamera::handleScrollWheel(S32 clicks) } else if (mFocusOnAvatar && (mCameraMode == CAMERA_MODE_THIRD_PERSON)) { + // Camera focus and offset with CTRL/SHIFT + Scroll wheel + MASK mask=gKeyboard->currentMask(TRUE); + if(mask & MASK_SHIFT) + { + LLVector3d offset=gSavedSettings.getVector3d("FocusOffsetRearView"); + offset.mdV[VZ]+=0.1f*(F32) clicks; + gSavedSettings.setVector3d("FocusOffsetRearView",offset); + return; + } + else if(mask & MASK_CONTROL) + { + LLVector3 offset=gSavedSettings.getVector3("CameraOffsetRearView"); + offset.mV[VZ]+=0.1f*(F32) clicks; + gSavedSettings.setVector3("CameraOffsetRearView",offset); + return; + } + // + F32 camera_offset_initial_mag = getCameraOffsetInitial().magVec(); F32 current_zoom_fraction = mTargetCameraDistance / (camera_offset_initial_mag * gSavedSettings.getF32("CameraOffsetScale")); diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp index bc9c98fcf1..81142e6b8b 100644 --- a/indra/newview/llviewermenu.cpp +++ b/indra/newview/llviewermenu.cpp @@ -4341,6 +4341,11 @@ void handle_reset_view() gAgentCamera.resetView(); // + // Camera focus and offset with CTRL/SHIFT + Scroll wheel + gSavedSettings.getControl("FocusOffsetRearView")->resetToDefault(); + gSavedSettings.getControl("CameraOffsetRearView")->resetToDefault(); + // + gAgentCamera.switchCameraPreset(CAMERA_PRESET_REAR_VIEW); reset_view_final( TRUE ); LLFloaterCamera::resetCameraMode();