Merge git://github.com/Shyotl/SingularityViewer
This commit is contained in:
@@ -13707,6 +13707,17 @@
|
||||
<key>Value</key>
|
||||
<integer>1</integer>
|
||||
</map>
|
||||
<key>WarnFirstPhysicsWearable</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Enables Physics Wearable warning dialog</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>1</integer>
|
||||
</map>
|
||||
<key>WatchdogEnabled</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
|
||||
@@ -7733,7 +7733,8 @@ void LLAgent::sendAgentSetAppearance()
|
||||
}
|
||||
|
||||
|
||||
const bool wearing_physics = !!getWearable(WT_PHYSICS);
|
||||
static bool send_physics_params = false;
|
||||
send_physics_params |= !!getWearable(WT_PHYSICS);
|
||||
S32 transmitted_params = 0;
|
||||
for (LLViewerVisualParam* param = (LLViewerVisualParam*)mAvatarObject->getFirstVisualParam();
|
||||
param;
|
||||
@@ -7741,17 +7742,17 @@ void LLAgent::sendAgentSetAppearance()
|
||||
{
|
||||
if (param->getGroup() == VISUAL_PARAM_GROUP_TWEAKABLE) // do not transmit params of group VISUAL_PARAM_GROUP_TWEAKABLE_NO_TRANSMIT
|
||||
{
|
||||
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());
|
||||
msg->addU8Fast(_PREHASH_ParamValue, new_weight );
|
||||
//A hack to prevent ruthing on older viewers when phys wearables aren't being worn.
|
||||
if(!wearing_physics && param->getID() >= 10000)
|
||||
if(!send_physics_params && param->getID() >= 10000)
|
||||
{
|
||||
break;
|
||||
}
|
||||
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());
|
||||
|
||||
msg->addU8Fast(_PREHASH_ParamValue, new_weight );
|
||||
transmitted_params++;
|
||||
}
|
||||
}
|
||||
@@ -7892,6 +7893,30 @@ struct LLSetWearableData
|
||||
LLWearable* mNewWearable;
|
||||
};
|
||||
|
||||
static bool isFirstPhysicsWearable(EWearableType type, LLInventoryItem *new_item, LLWearable *new_wearable)
|
||||
{
|
||||
if (type == WT_PHYSICS && gSavedSettings.getWarning("FirstPhysicsWearable"))
|
||||
{
|
||||
class WearableDelayedCallback
|
||||
{
|
||||
public:
|
||||
static void setDelayedWearable( const LLSD& notification, const LLSD& response, LLUUID item_id, LLWearable *wearable )
|
||||
{
|
||||
if(LLNotification::getSelectedOption(notification, response) == 0) //User selected wear
|
||||
{
|
||||
gSavedSettings.setWarning("FirstPhysicsWearable",FALSE);
|
||||
LLInventoryItem *item = gInventory.getItem(item_id);
|
||||
if(item)
|
||||
gAgent.setWearable(item,wearable); //re-enter.
|
||||
}
|
||||
}
|
||||
};
|
||||
LLNotifications::instance().add("FirstPhysicsWearable",LLSD(),LLSD(),boost::bind(WearableDelayedCallback::setDelayedWearable, _1, _2, new_item->getUUID(),new_wearable));
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
BOOL LLAgent::needsReplacement(EWearableType wearableType, S32 remove)
|
||||
{
|
||||
return TRUE;
|
||||
@@ -7961,6 +7986,11 @@ void LLAgent::setWearableOutfit(
|
||||
}
|
||||
}
|
||||
|
||||
if (isFirstPhysicsWearable(type, new_item, new_wearable))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
mWearableEntry[ type ].mItemID = new_item->getUUID();
|
||||
mWearableEntry[ type ].mWearable = new_wearable;
|
||||
}
|
||||
@@ -8025,6 +8055,11 @@ void LLAgent::setWearable( LLInventoryItem* new_item, LLWearable* new_wearable )
|
||||
}
|
||||
// [/RLVa:KB]
|
||||
|
||||
if (isFirstPhysicsWearable(type, new_item, new_wearable))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if( old_wearable )
|
||||
{
|
||||
const LLUUID& old_item_id = mWearableEntry[ type ].mItemID;
|
||||
|
||||
@@ -1791,6 +1791,7 @@ bool LLAppViewer::initConfiguration()
|
||||
LLFirstUse::addConfigVariable("FirstSculptedPrim");
|
||||
LLFirstUse::addConfigVariable("FirstVoice");
|
||||
LLFirstUse::addConfigVariable("FirstMedia");
|
||||
LLFirstUse::addConfigVariable("FirstPhysicsWearable");
|
||||
|
||||
// [RLVa:KB] - Checked: RLVa-1.0.3a (2009-09-10) | Added: RLVa-1.0.3a
|
||||
//LLFirstUse::addConfigVariable(RLV_SETTING_FIRSTUSE_DETACH);
|
||||
|
||||
@@ -989,6 +989,12 @@ void LLViewerMediaImpl::updateImagesMediaStreams()
|
||||
|
||||
LLViewerMediaTexture* placeholder_image = (LLViewerMediaTexture*)LLViewerTextureManager::findTexture( mTextureId );
|
||||
|
||||
if(!placeholder_image)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
placeholder_image->getLastReferencedTimer()->reset();
|
||||
|
||||
if (mNeedsNewTexture
|
||||
|| placeholder_image->getUseMipMaps()
|
||||
|| ! placeholder_image->mIsMediaTexture
|
||||
|
||||
@@ -6940,5 +6940,28 @@ No
|
||||
<notification icon="notifytip.tga" name="BlockedChatterAvatar" type="notifytip">Blocked chat-spam from avatar [FULL_NAME] ([SOURCE])</notification>
|
||||
<notification icon="notifytip.tga" name="BlockedChatterObjects" type="notifytip">Blocked chat-spam from objects owned by [OWNER] ([SOURCE])</notification>
|
||||
|
||||
<notification
|
||||
icon="notify.tga"
|
||||
name="FirstPhysicsWearable"
|
||||
priority="high"
|
||||
type="notify">
|
||||
By wearing a Physics Wearable certain server behavior will be enabled that many older viewers are incompatable with. On such viewers you may display incorrectly (often as 'Ruth').
|
||||
|
||||
If you wish to keep compatability with old viewers then you must not wear a Physics Wearable during your session. If you have already worn one during this session remove it and reconnect.
|
||||
|
||||
Click 'Wear' to attach the Physics Wearable, or click 'Cancel' if you wish to maintain compatability with legacy clients.
|
||||
<unique/>
|
||||
<form name="form">
|
||||
<button
|
||||
index="0"
|
||||
name="Wear"
|
||||
text="Wear"/>
|
||||
<button
|
||||
index="1"
|
||||
name="Cancel"
|
||||
text="Cancel"/>
|
||||
</form>
|
||||
</notification>
|
||||
|
||||
</notifications>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user