From 2ea5c5986a467e253ad0131b4af0faee23b263a4 Mon Sep 17 00:00:00 2001
From: Mnikolenko Productengine <mnikolenko@productengine.com>
Date: Thu, 23 Apr 2020 13:22:27 +0300
Subject: [PATCH] SL-12904 Temporarily use LLSD to avoid crashes on older
 viewers

---
 indra/newview/app_settings/camera/Front.xml | 2 +-
 indra/newview/app_settings/camera/Rear.xml  | 2 +-
 indra/newview/app_settings/camera/Side.xml  | 2 +-
 indra/newview/app_settings/settings.xml     | 2 +-
 indra/newview/llfloatercamera.cpp           | 2 +-
 indra/newview/llfloatersavecamerapreset.cpp | 2 +-
 6 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/indra/newview/app_settings/camera/Front.xml b/indra/newview/app_settings/camera/Front.xml
index f9f615c4a7b..39f44e11a84 100644
--- a/indra/newview/app_settings/camera/Front.xml
+++ b/indra/newview/app_settings/camera/Front.xml
@@ -18,7 +18,7 @@
         <key>Persist</key>
         <integer>1</integer>
         <key>Type</key>
-        <string>Quaternion</string>
+        <string>LLSD</string>
         <key>Value</key>
         <array>
           <real>0</real>
diff --git a/indra/newview/app_settings/camera/Rear.xml b/indra/newview/app_settings/camera/Rear.xml
index a084f83bfe1..8dc36353ce2 100644
--- a/indra/newview/app_settings/camera/Rear.xml
+++ b/indra/newview/app_settings/camera/Rear.xml
@@ -18,7 +18,7 @@
         <key>Persist</key>
         <integer>1</integer>
         <key>Type</key>
-        <string>Quaternion</string>
+        <string>LLSD</string>
         <key>Value</key>
         <array>
           <real>0</real>
diff --git a/indra/newview/app_settings/camera/Side.xml b/indra/newview/app_settings/camera/Side.xml
index 5db5b164bdb..089ab93a8f6 100644
--- a/indra/newview/app_settings/camera/Side.xml
+++ b/indra/newview/app_settings/camera/Side.xml
@@ -18,7 +18,7 @@
         <key>Persist</key>
         <integer>1</integer>
         <key>Type</key>
-        <string>Quaternion</string>
+        <string>LLSD</string>
         <key>Value</key>
         <array>
           <real>0</real>
diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml
index 84448919e12..3e3d6a72378 100644
--- a/indra/newview/app_settings/settings.xml
+++ b/indra/newview/app_settings/settings.xml
@@ -4404,7 +4404,7 @@
       <key>Persist</key>
       <integer>1</integer>
       <key>Type</key>
-      <string>Quaternion</string>
+      <string>LLSD</string>
       <key>Value</key>
       <array>
         <real>0</real>
diff --git a/indra/newview/llfloatercamera.cpp b/indra/newview/llfloatercamera.cpp
index 2399e4f495a..d574f1433f7 100644
--- a/indra/newview/llfloatercamera.cpp
+++ b/indra/newview/llfloatercamera.cpp
@@ -569,7 +569,7 @@ void LLFloaterCamera::switchToPreset(const std::string& name)
 
 	if (isAgentAvatarValid() && gAgentAvatarp->getParent())
 	{
-		LLQuaternion sit_rot = gSavedSettings.getQuaternion("AvatarSitRotation");
+		LLQuaternion sit_rot(gSavedSettings.getLLSD("AvatarSitRotation"));
 		if (sit_rot != LLQuaternion())
 		{
 			gAgent.rotate(~gAgent.getFrameAgent().getQuaternion());
diff --git a/indra/newview/llfloatersavecamerapreset.cpp b/indra/newview/llfloatersavecamerapreset.cpp
index 5704a7a525c..11809f9c824 100644
--- a/indra/newview/llfloatersavecamerapreset.cpp
+++ b/indra/newview/llfloatersavecamerapreset.cpp
@@ -106,7 +106,7 @@ void LLFloaterSaveCameraPreset::onBtnSave()
 	{
 		if (isAgentAvatarValid() && gAgentAvatarp->getParent())
 		{
-			gSavedSettings.setQuaternion("AvatarSitRotation", gAgent.getFrameAgent().getQuaternion());
+			gSavedSettings.setLLSD("AvatarSitRotation", gAgent.getFrameAgent().getQuaternion().getValue());
 		}
 		if (gAgentCamera.isJoystickCameraUsed())
 		{
-- 
GitLab