From 4b0a1bf16e4aa29ae3b041dcc2eb6f0357ef40f5 Mon Sep 17 00:00:00 2001
From: Rye Mutt <rye@alchemyviewer.org>
Date: Sun, 12 Nov 2023 20:05:49 -0500
Subject: [PATCH] Camera focus and offset with CTRL/SHIFT + Scroll wheel by Zi
 Ree

---
 indra/newview/llagentcamera.cpp | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/indra/newview/llagentcamera.cpp b/indra/newview/llagentcamera.cpp
index 5c9d1b87e58..c2cb41961d3 100644
--- a/indra/newview/llagentcamera.cpp
+++ b/indra/newview/llagentcamera.cpp
@@ -2288,6 +2288,22 @@ void LLAgentCamera::handleScrollWheel(S32 clicks)
 		}
 		else if (mFocusOnAvatar && (mCameraMode == CAMERA_MODE_THIRD_PERSON))
 		{
+			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"));
-- 
GitLab