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; } diff --git a/indra/newview/lltoolcomp.cpp b/indra/newview/lltoolcomp.cpp index 0651458c7..3f755dbf2 100644 --- a/indra/newview/lltoolcomp.cpp +++ b/indra/newview/lltoolcomp.cpp @@ -824,7 +824,7 @@ BOOL LLToolCompGun::handleRightMouseDown(S32 x, S32 y, MASK mask) } else mStartFOV = LLViewerCamera::getInstance()->getDefaultFOV(); - mTargetFOV = gSavedPerAccountSettings.getF32("zmm_mlfov"); + mTargetFOV = gSavedSettings.getF32("zmm_mlfov"); mTimerFOV.start(); return TRUE; @@ -836,7 +836,7 @@ BOOL LLToolCompGun::handleScrollWheel(S32 x, S32 y, S32 clicks) { mStartFOV = LLViewerCamera::getInstance()->getDefaultFOV(); - gSavedPerAccountSettings.setF32( + gSavedSettings.setF32( "zmm_mlfov", mTargetFOV = clicks > 0 ? llclamp(mTargetFOV += (0.05f * clicks), 0.1f, 3.0f) : diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp index dcb7a4eb7..e32525a9d 100644 --- a/indra/newview/llviewermenu.cpp +++ b/indra/newview/llviewermenu.cpp @@ -189,6 +189,7 @@ #include "llvovolume.h" #include "hippogridmanager.h" +#include "wlfPanel_AdvSettings.h" void toggle_search_floater(); @@ -4122,6 +4123,16 @@ void reset_view_final( BOOL proceed ) } gAgentCamera.switchCameraPreset(CAMERA_PRESET_REAR_VIEW); + if (wlfPanel_AdvSettings::instanceExists()) // Fix up the buttons on the wlf panel to match the preset switch + { + wlfPanel_AdvSettings& inst(wlfPanel_AdvSettings::instance()); + if (inst.isExpanded()) + { + inst.getChildView("Rear")->setValue(true); + inst.getChildView("Front")->setValue(false); + inst.getChildView("Group")->setValue(false); + } + } gAgentCamera.resetView(TRUE, TRUE); gAgentCamera.setLookAt(LOOKAT_TARGET_CLEAR); diff --git a/indra/newview/skins/default/textures/Cam_Preset_Back_Off.png b/indra/newview/skins/default/textures/Cam_Preset_Back_Off.png new file mode 100644 index 000000000..00158a7bc Binary files /dev/null and b/indra/newview/skins/default/textures/Cam_Preset_Back_Off.png differ diff --git a/indra/newview/skins/default/textures/Cam_Preset_Back_On.png b/indra/newview/skins/default/textures/Cam_Preset_Back_On.png new file mode 100644 index 000000000..3748f5e19 Binary files /dev/null and b/indra/newview/skins/default/textures/Cam_Preset_Back_On.png differ diff --git a/indra/newview/skins/default/textures/Cam_Preset_Front_Off.png b/indra/newview/skins/default/textures/Cam_Preset_Front_Off.png new file mode 100644 index 000000000..c49b8f9a2 Binary files /dev/null and b/indra/newview/skins/default/textures/Cam_Preset_Front_Off.png differ diff --git a/indra/newview/skins/default/textures/Cam_Preset_Front_On.png b/indra/newview/skins/default/textures/Cam_Preset_Front_On.png new file mode 100644 index 000000000..bc8c4db04 Binary files /dev/null and b/indra/newview/skins/default/textures/Cam_Preset_Front_On.png differ diff --git a/indra/newview/skins/default/textures/Cam_Preset_Side_Off.png b/indra/newview/skins/default/textures/Cam_Preset_Side_Off.png new file mode 100644 index 000000000..b919a0a15 Binary files /dev/null and b/indra/newview/skins/default/textures/Cam_Preset_Side_Off.png differ diff --git a/indra/newview/skins/default/textures/Cam_Preset_Side_On.png b/indra/newview/skins/default/textures/Cam_Preset_Side_On.png new file mode 100644 index 000000000..de9da359a Binary files /dev/null and b/indra/newview/skins/default/textures/Cam_Preset_Side_On.png differ diff --git a/indra/newview/skins/default/xui/en-us/wlfPanel_AdvSettings_expanded.xml b/indra/newview/skins/default/xui/en-us/wlfPanel_AdvSettings_expanded.xml index 2cc0df053..d4ee3c863 100644 --- a/indra/newview/skins/default/xui/en-us/wlfPanel_AdvSettings_expanded.xml +++ b/indra/newview/skins/default/xui/en-us/wlfPanel_AdvSettings_expanded.xml @@ -1,18 +1,28 @@ - - - - - - + + + + + + +