diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index d3cc5d6cb7aa80d9201072d49359af8553a63be9..1eb3732e65c0d9075d56e879e9241f6ab88e8739 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -3309,6 +3309,17 @@ <key>Value</key> <real>1.0</real> </map> + <key>FlycamBuildModeScale</key> + <map> + <key>Comment</key> + <string>Scale factor to apply to flycam movements when in build mode.</string> + <key>Persist</key> + <integer>1</integer> + <key>Type</key> + <string>F32</string> + <key>Value</key> + <real>1.0</real> + </map> <key>FlycamFeathering</key> <map> <key>Comment</key> diff --git a/indra/newview/llviewerjoystick.cpp b/indra/newview/llviewerjoystick.cpp index 240a539f2e48bd772fb381d7bf3341552ff76a58..79d8fc7df90e7de31f9cce51c9060a0e6d008704 100644 --- a/indra/newview/llviewerjoystick.cpp +++ b/indra/newview/llviewerjoystick.cpp @@ -57,9 +57,6 @@ #define RY_I 5 #define RZ_I 3 -// flycam translations in build mode should be reduced -const F32 BUILDMODE_FLYCAM_T_SCALE = 3.f; - // minimum time after setting away state before coming back const F32 MIN_AFK_TIME = 2.f; @@ -924,14 +921,15 @@ void LLViewerJoystick::moveFlycam(bool reset) cur_delta[i] = llmin(cur_delta[i]+dead_zone[i], 0.f); } - // we need smaller camera movements in build mode + // We may want to scale camera movements up or down in build mode. // NOTE: this needs to remain after the deadzone calculation, otherwise // we have issues with flycam "jumping" when the build dialog is opened/closed -Nyx if (in_build_mode) { if (i == X_I || i == Y_I || i == Z_I) { - cur_delta[i] /= BUILDMODE_FLYCAM_T_SCALE; + static LLCachedControl<F32> build_mode_scale(gSavedSettings,"FlycamBuildModeScale"); + cur_delta[i] *= build_mode_scale; } }