From e75737a9aa4337282f81d655a228a7d436bca06d Mon Sep 17 00:00:00 2001 From: Tonya Souther Date: Wed, 4 May 2011 08:19:12 -0500 Subject: [PATCH] Add preference to turn off sending avatar physics parameters to the server. This will break others seeing the user's physics, but will allow shape changes to be seen on older viewers without the fix for VWR-25479 applied. --- indra/newview/app_settings/settings.xml | 11 +++++++++++ indra/newview/llagent.cpp | 13 +++++++++---- .../default/xui/en/panel_preferences_firestorm.xml | 14 ++++++++++++++ 3 files changed, 34 insertions(+), 4 deletions(-) diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index 0f0aa54cfe..07d8fa80d5 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -245,6 +245,17 @@ Value 0 + FSDontSendAvPhysicsParms + + Comment + Don't send avatar physics parameters to server with shape for v1 compatibility + Persist + 1 + Type + Boolean + Value + 0 + AutoCloseOOC Comment diff --git a/indra/newview/llagent.cpp b/indra/newview/llagent.cpp index af85e9f54f..9d4f8374c2 100644 --- a/indra/newview/llagent.cpp +++ b/indra/newview/llagent.cpp @@ -3879,16 +3879,21 @@ void LLAgent::sendAgentSetAppearance() gMessageSystem->addBinaryDataFast(_PREHASH_TextureEntry, NULL, 0); } - + BOOL send_v1_message = gSavedSettings.getBOOL("FSDontSendAvPhysicsParms"); S32 transmitted_params = 0; for (LLViewerVisualParam* param = (LLViewerVisualParam*)gAgentAvatarp->getFirstVisualParam(); param; param = (LLViewerVisualParam*)gAgentAvatarp->getNextVisualParam()) { - if (param->getGroup() == VISUAL_PARAM_GROUP_TWEAKABLE) // do not transmit params of group VISUAL_PARAM_GROUP_TWEAKABLE_NO_TRANSMIT + // Do not transmit params of group + // VISUAL_PARAM_GROUP_TWEAKABLE_NO_TRANSMIT. If we're + // sending the version 1 compatible message, then strip out + // V2-only parameters that have IDs of 1100 or higher. + if ((param->getGroup() == VISUAL_PARAM_GROUP_TWEAKABLE) && + ((param->getID() < 1100) || (!send_v1_message))) { msg->nextBlockFast(_PREHASH_VisualParam ); - + // We don't send the param ids. Instead, we assume that the receiver has the same params in the same sequence. const F32 param_value = param->getWeight(); const U8 new_weight = F32_to_U8(param_value, param->getMinWeight(), param->getMaxWeight()); @@ -3897,7 +3902,7 @@ void LLAgent::sendAgentSetAppearance() } } -// llinfos << "Avatar XML num VisualParams transmitted = " << transmitted_params << llendl; + llinfos << "Avatar XML num VisualParams transmitted = " << transmitted_params << llendl; sendReliableMessage(); } diff --git a/indra/newview/skins/default/xui/en/panel_preferences_firestorm.xml b/indra/newview/skins/default/xui/en/panel_preferences_firestorm.xml index 395711fe54..250c10d37b 100644 --- a/indra/newview/skins/default/xui/en/panel_preferences_firestorm.xml +++ b/indra/newview/skins/default/xui/en/panel_preferences_firestorm.xml @@ -141,6 +141,20 @@ width="270" control_name="TurnAroundWhenWalkingBackwards" tool_tip="Turns your avatar around to face the camera when you are walking backwards."/> + +