diff --git a/indra/newview/app_settings/settings_alchemy.xml b/indra/newview/app_settings/settings_alchemy.xml index 316aaed96848290bf67fad2d288f820b8fdb2776..d91336951da6abf2146c68d09e70bfb60a670f39 100644 --- a/indra/newview/app_settings/settings_alchemy.xml +++ b/indra/newview/app_settings/settings_alchemy.xml @@ -332,6 +332,17 @@ <key>Value</key> <real>8.0</real> </map> + <key>AlchemyIgnoreSimCameraConstraint</key> + <map> + <key>Comment</key> + <string>Ignore simulator collision plane for camera constraints</string> + <key>Persist</key> + <integer>1</integer> + <key>Type</key> + <string>Boolean</string> + <key>Value</key> + <integer>0</integer> + </map> <key>AlchemyImageDecodeThreads</key> <map> <key>Comment</key> diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp index c2a33f02ab9b30e1b40103f2e794208298ea74e5..5c749dd8aa9dd141a518f336d98b5634dffcb840 100644 --- a/indra/newview/llviewermessage.cpp +++ b/indra/newview/llviewermessage.cpp @@ -4584,8 +4584,16 @@ void process_avatar_appearance(LLMessageSystem *mesgsys, void **user_data) void process_camera_constraint(LLMessageSystem *mesgsys, void **user_data) { + static LLCachedControl<bool> disable_sim_cam_constraint(gSavedSettings, "AlchemyIgnoreSimCameraConstraint", false); LLVector4 cameraCollidePlane; - mesgsys->getVector4Fast(_PREHASH_CameraCollidePlane, _PREHASH_Plane, cameraCollidePlane); + if(disable_sim_cam_constraint) + { + cameraCollidePlane.clearVec(); + } + else + { + mesgsys->getVector4Fast(_PREHASH_CameraCollidePlane, _PREHASH_Plane, cameraCollidePlane); + } gAgentCamera.setCameraCollidePlane(cameraCollidePlane); }