From 782a0cf81190449dbeaff6372cacc5d9b34fdcfa Mon Sep 17 00:00:00 2001
From: Loren Shih <seraph@lindenlab.com>
Date: Mon, 23 Aug 2010 17:12:10 -0400
Subject: [PATCH] Fixed backwards compatibility so that orig Breast params are
 preserved. Cleaned up some code. Removed "Add" from right-click when
 multiwear is not permitted.

---
 indra/newview/character/avatar_lad.xml | 78 +++++++++++++-------------
 indra/newview/llinventorybridge.cpp    | 11 ++--
 indra/newview/llvoavatar.cpp           | 32 +++++------
 3 files changed, 62 insertions(+), 59 deletions(-)

diff --git a/indra/newview/character/avatar_lad.xml b/indra/newview/character/avatar_lad.xml
index 7dd15c67c75..e37ff1833d8 100644
--- a/indra/newview/character/avatar_lad.xml
+++ b/indra/newview/character/avatar_lad.xml
@@ -4044,7 +4044,7 @@
     </param>
 
     <param
-     id="507"
+     id="1087"
      group="0"
      sex="female"
      name="Breast_Gravity"
@@ -4061,6 +4061,24 @@
       <param_morph />
     </param>
 
+    <param
+     id="1088"
+     group="0"
+     sex="female"
+     name="Breast_Female_Cleavage"
+     label="Breast Cleavage"
+     wearable="shape"
+     edit_group="driven"
+     label_min="Separate"
+     label_max="Join"
+     value_default="0"
+     value_min="-.3"
+     value_max="1.3"
+     camera_elevation=".3"
+     camera_distance=".8">
+      <param_morph />
+    </param>
+
     <param
      id="628"
      group="1"
@@ -4111,24 +4129,6 @@
       </param_morph>
     </param>
 
-    <param
-     id="684"
-     group="0"
-     sex="female"
-     name="Breast_Female_Cleavage"
-     label="Breast Cleavage"
-     wearable="shape"
-     edit_group="driven"
-     label_min="Separate"
-     label_max="Join"
-     value_default="0"
-     value_min="-.3"
-     value_max="1.3"
-     camera_elevation=".3"
-     camera_distance=".8">
-      <param_morph />
-    </param>
-
     <param
      id="685"
      group="0"
@@ -9083,7 +9083,7 @@ render_pass="bump">
      edit_group="physics"
      label_min="Less"
      label_max="More"
-     value_default="1"
+     value_default="2"
      value_min="1"
      value_max="5"
      camera_elevation=".3"
@@ -9121,7 +9121,7 @@ render_pass="bump">
      label_max="More"
      value_default="0"
      value_min="0"
-     value_max="2"
+     value_max="1"
      camera_elevation=".3"
      camera_distance=".8">
 	 <param_driver />
@@ -9209,9 +9209,9 @@ render_pass="bump">
      edit_group="physics"
      label_min="Less"
      label_max="More"
-     value_default="10"
+     value_default="0"
      value_min="0"
-     value_max="100"
+     value_max="10"
      camera_elevation=".3"
      camera_distance=".8">
 	 <param_driver />
@@ -9300,55 +9300,55 @@ render_pass="bump">
      edit_group="physics"
      label_min="Less"
      label_max="More"
-     value_default="10"
+     value_default="0"
      value_min="0"
-     value_max="100"
+     value_max="10"
      camera_elevation=".3"
      camera_distance=".8">
 	 <param_driver />
     </param>
 
-
-
    <param
-     id="1087"
+     id="507"
      group="0"
      sex="female"
-     name="Breast_Female_Cleavage_Driver"
-     label="Breast Cleavage"
+     name="Breast_Gravity_Driver"
+     label="Breast Buoyancy"
      wearable="shape"
      edit_group="shape_torso"
+     edit_group_order="7"
      label_min="Less"
      label_max="More"
      value_default="10"
-     value_min="-.3"
-     value_max="1.3"
+     value_min="-1.5"
+     value_max="2"
      camera_elevation=".3"
      camera_distance=".8">
       <param_driver>
         <driven
-         id="684" />
+         id="1087" />
 	</param_driver>
     </param>
 
    <param
-     id="1088"
+     id="684"
      group="0"
      sex="female"
-     name="Breast_Gravity_Driver"
-     label="Breast Buoyancy"
+     name="Breast_Female_Cleavage_Driver"
+     label="Breast Cleavage"
      wearable="shape"
      edit_group="shape_torso"
+     edit_group_order="7"
      label_min="Less"
      label_max="More"
      value_default="10"
-     value_min="-1.5"
-     value_max="2"
+     value_min="-.3"
+     value_max="1.3"
      camera_elevation=".3"
      camera_distance=".8">
       <param_driver>
         <driven
-         id="507" />
+         id="1088" />
 	</param_driver>
     </param>
 
diff --git a/indra/newview/llinventorybridge.cpp b/indra/newview/llinventorybridge.cpp
index a564059b870..27a01dd94f8 100644
--- a/indra/newview/llinventorybridge.cpp
+++ b/indra/newview/llinventorybridge.cpp
@@ -4492,14 +4492,17 @@ void LLWearableBridge::buildContextMenu(LLMenuGL& menu, U32 flags)
 					else
 					{
 						items.push_back(std::string("Wearable And Object Wear"));
-						items.push_back(std::string("Wearable Add"));
 						disabled_items.push_back(std::string("Take Off"));
 						disabled_items.push_back(std::string("Wearable Edit"));
 					}
-					if (gAgentWearables.isWearingWearableType(mWearableType) &&
-						!LLWearableType::getAllowMultiwear(mWearableType))
+
+					if (LLWearableType::getAllowMultiwear(mWearableType))
 					{
-						disabled_items.push_back(std::string("Wearable Add"));
+						items.push_back(std::string("Wearable Add"));
+						if (gAgentWearables.getWearableCount(mWearableType) > 0)
+						{
+							disabled_items.push_back(std::string("Wearable Add"));
+						}
 					}
 					break;
 				default:
diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp
index 80b10cc05e5..ac1af83959d 100644
--- a/indra/newview/llvoavatar.cpp
+++ b/indra/newview/llvoavatar.cpp
@@ -789,7 +789,7 @@ class LLBreastMotion :
 	{
 		if (!gSavedSettings.getBOOL("AvatarPhysics"))
 		{
-			return FALSE;
+			return TRUE;
 		}
 
 		/*
@@ -817,21 +817,21 @@ class LLBreastMotion :
 		   6. Threshold for not setting param
 		*/
 
-		mBreastMassParam = ((LLViewerVisualParam*)mCharacter->getVisualParam("Breast_Physics_Mass"))->getWeight();
-		mBreastSmoothingParam = ((LLViewerVisualParam*)mCharacter->getVisualParam("Breast_Physics_Smoothing"))->getWeight();
-		mBreastGravityParam = ((LLViewerVisualParam*)mCharacter->getVisualParam("Breast_Physics_Gravity"))->getWeight();
-
-		mBreastSpringParam[0] =       ((LLViewerVisualParam*)mCharacter->getVisualParam("Breast_Physics_Side_Spring"))->getWeight();
-		mBreastGainParam[0] = ((LLViewerVisualParam*)mCharacter->getVisualParam("Breast_Physics_Side_Gain"))->getWeight();
-		mBreastDampingParam[0] =      ((LLViewerVisualParam*)mCharacter->getVisualParam("Breast_Physics_Side_Damping"))->getWeight();
-		mBreastMaxVelocityParam[0] = ((LLViewerVisualParam*)mCharacter->getVisualParam("Breast_Physics_Side_Range"))->getWeight();
-		mBreastDragParam[0] =        ((LLViewerVisualParam*)mCharacter->getVisualParam("Breast_Physics_Side_Drag"))->getWeight();
-
-		mBreastSpringParam[2] = ((LLViewerVisualParam*)mCharacter->getVisualParam("Breast_Physics_UpDown_Spring"))->getWeight();
-		mBreastGainParam[2] = ((LLViewerVisualParam*)mCharacter->getVisualParam("Breast_Physics_UpDown_Gain"))->getWeight();
-		mBreastDampingParam[2] = ((LLViewerVisualParam*)mCharacter->getVisualParam("Breast_Physics_UpDown_Damping"))->getWeight();
-		mBreastMaxVelocityParam[2] = ((LLViewerVisualParam*)mCharacter->getVisualParam("Breast_Physics_UpDown_Range"))->getWeight();
-		mBreastDragParam[2] = ((LLViewerVisualParam*)mCharacter->getVisualParam("Breast_Physics_UpDown_Drag"))->getWeight();
+		mBreastMassParam = mCharacter->getVisualParamWeight("Breast_Physics_Mass");
+		mBreastSmoothingParam = mCharacter->getVisualParamWeight("Breast_Physics_Smoothing");
+		mBreastGravityParam = mCharacter->getVisualParamWeight("Breast_Physics_Gravity");
+
+		mBreastSpringParam[0] = mCharacter->getVisualParamWeight("Breast_Physics_Side_Spring");
+		mBreastGainParam[0] = mCharacter->getVisualParamWeight("Breast_Physics_Side_Gain");
+		mBreastDampingParam[0] = mCharacter->getVisualParamWeight("Breast_Physics_Side_Damping");
+		mBreastMaxVelocityParam[0] = mCharacter->getVisualParamWeight("Breast_Physics_Side_Range");
+		mBreastDragParam[0] = mCharacter->getVisualParamWeight("Breast_Physics_Side_Drag");
+
+		mBreastSpringParam[2] = mCharacter->getVisualParamWeight("Breast_Physics_UpDown_Spring");
+		mBreastGainParam[2] = mCharacter->getVisualParamWeight("Breast_Physics_UpDown_Gain");
+		mBreastDampingParam[2] = mCharacter->getVisualParamWeight("Breast_Physics_UpDown_Damping");
+		mBreastMaxVelocityParam[2] = mCharacter->getVisualParamWeight("Breast_Physics_UpDown_Range");
+		mBreastDragParam[2] = mCharacter->getVisualParamWeight("Breast_Physics_UpDown_Drag");
 
 		if (mCharacter->getSex() != SEX_FEMALE) return TRUE;
 		const F32 time_delta = calculateTimeDelta();
-- 
GitLab