diff --git a/indra/newview/character/avatar_lad.xml b/indra/newview/character/avatar_lad.xml
index 727a9e7fc4..08102332d0 100644
--- a/indra/newview/character/avatar_lad.xml
+++ b/indra/newview/character/avatar_lad.xml
@@ -3796,18 +3796,13 @@
+ value_max="2">
@@ -4065,16 +4060,11 @@
group="0"
sex="female"
name="Breast_Gravity"
- label="Breast Buoyancy"
wearable="shape"
edit_group="driven"
- label_min="Less Gravity"
- label_max="More Gravity"
value_default="0"
value_min="-1.5"
- value_max="2"
- camera_elevation=".3"
- camera_distance=".8">
+ value_max="2">
@@ -4083,16 +4073,11 @@
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">
+ value_max="1.3">
@@ -4408,7 +4393,7 @@
@@ -9371,8 +9354,8 @@ render_pass="bump">
id="507"
group="0"
sex="female"
- name="Breast_Gravity_Driver"
- label="Breast Buoyancy"
+ name="Breast_Physics_UpDown_Controller"
+ label="Breast Physics UpDown Controller"
wearable="shape"
edit_group="shape_torso"
edit_group_order="7"
@@ -9393,8 +9376,8 @@ render_pass="bump">
id="684"
group="0"
sex="female"
- name="Breast_Female_Cleavage_Driver"
- label="Breast Cleavage"
+ name="Breast_Physics_Side_Controller"
+ label="Breast Physics Side Controller"
wearable="shape"
edit_group="shape_torso"
edit_group_order="8"
@@ -9414,8 +9397,8 @@ render_pass="bump">
wearable="shape"
edit_group="shape_torso"
edit_group_order="14"
- name="Belly_Gravity"
- label="Belly Gravity"
- label_min="Small"
- label_max="Big"
- value_min="0"
+ name="Belly_Physics_UpDown_Controller"
+ label="Belly Physics UpDown Controller"
+ label_min="Down"
+ label_max="Up"
+ value_min="-1"
value_max="1"
value_default="0"
camera_distance="1.4"
@@ -10174,15 +10157,150 @@ render_pass="bump">
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
initialize())
+ {
+ llassert_always(FALSE);
return STATUS_FAILURE;
+ }
addMotion(bounce_motion);
controller_map_t controllers_butt_bounce;
- controllers_butt_bounce["Mass"] = "Breast_Physics_Mass";
- controllers_butt_bounce["Smoothing"] = "Breast_Physics_Smoothing";
- controllers_butt_bounce["Gravity"] = "Breast_Physics_Gravity";
- controllers_butt_bounce["Damping"] = "Breast_Physics_UpDown_Damping";
- controllers_butt_bounce["Drag"] = "Breast_Physics_UpDown_Drag";
- controllers_butt_bounce["MaxSpeed"] = "Breast_Physics_UpDown_Max_Velocity";
- controllers_butt_bounce["Spring"] = "Breast_Physics_UpDown_Spring";
- controllers_butt_bounce["Gain"] = "Breast_Physics_UpDown_Gain";
- LLPhysicsMotion *butt_bounce_motion = new LLPhysicsMotion("Butt_Gravity_Driver",
+ controllers_butt_bounce["Damping"] = "Butt_Physics_Updown_Damping";
+ controllers_butt_bounce["MaxSpeed"] = "Butt_Physics_Updown_Max_Velocity";
+ controllers_butt_bounce["Spring"] = "Butt_Physics_Updown_Spring";
+ controllers_butt_bounce["Gain"] = "Butt_Physics_Updown_Gain";
+ LLPhysicsMotion *butt_bounce_motion = new LLPhysicsMotion("Butt_Physics_UpDown_Controller",
"",
"mPelvis",
character,
LLVector3(0,0,-1),
controllers_butt_bounce);
if (!butt_bounce_motion->initialize())
+ {
+ llassert_always(FALSE);
return STATUS_FAILURE;
+ }
addMotion(butt_bounce_motion);
controller_map_t controllers_belly_bounce;
- controllers_belly_bounce["Mass"] = "Breast_Physics_Mass";
- controllers_belly_bounce["Smoothing"] = "Breast_Physics_Smoothing";
- controllers_belly_bounce["Gravity"] = "Breast_Physics_Gravity";
- controllers_belly_bounce["Damping"] = "Breast_Physics_UpDown_Damping";
- controllers_belly_bounce["Drag"] = "Breast_Physics_UpDown_Drag";
- controllers_belly_bounce["MaxSpeed"] = "Breast_Physics_UpDown_Max_Velocity";
- controllers_belly_bounce["Spring"] = "Breast_Physics_UpDown_Spring";
- controllers_belly_bounce["Gain"] = "Breast_Physics_UpDown_Gain";
- LLPhysicsMotion *belly_bounce_motion = new LLPhysicsMotion("Belly_Gravity",
+ controllers_belly_bounce["Damping"] = "Belly_Physics_Updown_Damping";
+ controllers_belly_bounce["MaxSpeed"] = "Belly_Physics_Updown_Max_Velocity";
+ controllers_belly_bounce["Spring"] = "Belly_Physics_Updown_Spring";
+ controllers_belly_bounce["Gain"] = "Belly_Physics_Updown_Gain";
+ LLPhysicsMotion *belly_bounce_motion = new LLPhysicsMotion("Belly_Physics_UpDown_Controller",
"",
"mChest",
character,
LLVector3(0,0,-1),
controllers_belly_bounce);
if (!belly_bounce_motion->initialize())
+ {
+ llassert_always(FALSE);
return STATUS_FAILURE;
+ }
addMotion(belly_bounce_motion);
return STATUS_SUCCESS;
@@ -372,8 +373,6 @@ BOOL LLPhysicsMotionController::onUpdate(F32 time, U8* joint_mask)
return TRUE;
}
- if (mCharacter->getSex() != SEX_FEMALE) return TRUE;
-
BOOL update_visuals = FALSE;
for (motion_vec_t::iterator iter = mMotions.begin();
iter != mMotions.end();
diff --git a/indra/newview/llpolymesh.cpp b/indra/newview/llpolymesh.cpp
index 4118401a4c..b145b65bac 100644
--- a/indra/newview/llpolymesh.cpp
+++ b/indra/newview/llpolymesh.cpp
@@ -606,7 +606,7 @@ BOOL LLPolyMeshSharedData::loadMesh( const std::string& fileName )
if (!strcmp(morphName, "Big_Belly_Torso"))
{
LLPolyMorphData* cloned_morph_data = new LLPolyMorphData(*morph_data);
- cloned_morph_data->mName = std::string("Big_Belly_Torso_Gravity");
+ cloned_morph_data->mName = std::string("Belly_Torso_Physics_UpDown_Driven");
for (U32 v=0; v < morph_data->mNumIndices; v++)
{
cloned_morph_data->mCoords[v][0] = 0;
@@ -621,7 +621,7 @@ BOOL LLPolyMeshSharedData::loadMesh( const std::string& fileName )
if (!strcmp(morphName, "Big_Belly_Legs"))
{
LLPolyMorphData* cloned_morph_data = new LLPolyMorphData(*morph_data);
- cloned_morph_data->mName = std::string("Big_Belly_Legs_Gravity");
+ cloned_morph_data->mName = std::string("Belly_Legs_Physics_UpDown_Driven");
for (U32 v=0; v < cloned_morph_data->mNumIndices; v++)
{
cloned_morph_data->mCoords[v][0] = 0;
@@ -636,7 +636,7 @@ BOOL LLPolyMeshSharedData::loadMesh( const std::string& fileName )
if (!strcmp(morphName, "skirt_belly"))
{
LLPolyMorphData* cloned_morph_data = new LLPolyMorphData(*morph_data);
- cloned_morph_data->mName = std::string("skirt_belly_gravity");
+ cloned_morph_data->mName = std::string("Belly_Skirt_Physics_UpDown_Driven");
for (U32 v=0; v < cloned_morph_data->mNumIndices; v++)
{
cloned_morph_data->mCoords[v][0] = 0;
@@ -651,7 +651,7 @@ BOOL LLPolyMeshSharedData::loadMesh( const std::string& fileName )
if (!strcmp(morphName, "Small_Butt"))
{
LLPolyMorphData* cloned_morph_data = new LLPolyMorphData(*morph_data);
- cloned_morph_data->mName = std::string("Butt_Gravity");
+ cloned_morph_data->mName = std::string("Butt_Physics_UpDown_Driven");
for (U32 v=0; v < cloned_morph_data->mNumIndices; v++)
{
cloned_morph_data->mCoords[v][0] = 0;
diff --git a/indra/newview/skins/default/xui/en/strings.xml b/indra/newview/skins/default/xui/en/strings.xml
index 7396520d97..749a392451 100644
--- a/indra/newview/skins/default/xui/en/strings.xml
+++ b/indra/newview/skins/default/xui/en/strings.xml
@@ -2499,8 +2499,8 @@ If you continue to receive this message, contact the [SUPPORT_SITE].
Body Thin
Bow Legged
-Breast Buoyancy
-Breast Cleavage
+Breast Buoyancy
+Breast Cleavage
Breast Size
Bridge Width
Broad
@@ -2526,6 +2526,18 @@ If you continue to receive this message, contact the [SUPPORT_SITE].
Breast UpDown Drag
Breast UpDown Max Speed
+Belly Updown Bounce
+Belly Updown Spring
+Belly Updown Gain
+Belly Updown Damping
+Belly Updown Max Speed
+
+Butt UpDown Bounce
+Butt UpDown Spring
+Butt UpDown Gain
+Butt UpDown Damping
+Butt UpDown Max Speed
+
Bushy Eyebrows
Bushy Hair
Butt Size