SL-17990 Give user a popup warning when they attach a rigged mesh object to an HUD
parent
6717f4a609
commit
43a9b3e4e4
|
|
@ -316,7 +316,8 @@ LLViewerObject::LLViewerObject(const LLUUID &id, const LLPCode pcode, LLViewerRe
|
|||
mLastUpdateType(OUT_UNKNOWN),
|
||||
mLastUpdateCached(FALSE),
|
||||
mCachedMuteListUpdateTime(0),
|
||||
mCachedOwnerInMuteList(false)
|
||||
mCachedOwnerInMuteList(false),
|
||||
mRiggedAttachedWarned(false)
|
||||
{
|
||||
if (!is_global)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -702,6 +702,8 @@ public:
|
|||
// Replace textures with web pages on this object while drawing
|
||||
BOOL mRenderMedia;
|
||||
|
||||
bool mRiggedAttachedWarned;
|
||||
|
||||
// In bits
|
||||
S32 mBestUpdatePrecision;
|
||||
|
||||
|
|
|
|||
|
|
@ -10665,7 +10665,7 @@ void LLVOAvatar::updateVisualComplexity()
|
|||
// with an avatar. This will be either an attached object or an animated
|
||||
// object.
|
||||
void LLVOAvatar::accountRenderComplexityForObject(
|
||||
const LLViewerObject *attached_object,
|
||||
LLViewerObject *attached_object,
|
||||
const F32 max_attachment_complexity,
|
||||
LLVOVolume::texture_cost_t& textures,
|
||||
U32& cost,
|
||||
|
|
@ -10737,7 +10737,7 @@ void LLVOAvatar::accountRenderComplexityForObject(
|
|||
&& attached_object->mDrawable)
|
||||
{
|
||||
textures.clear();
|
||||
|
||||
BOOL is_rigged_mesh = attached_object->isRiggedMesh();
|
||||
mAttachmentSurfaceArea += attached_object->recursiveGetScaledSurfaceArea();
|
||||
|
||||
const LLVOVolume* volume = attached_object->mDrawable->getVOVolume();
|
||||
|
|
@ -10758,6 +10758,7 @@ void LLVOAvatar::accountRenderComplexityForObject(
|
|||
iter != child_list.end(); ++iter)
|
||||
{
|
||||
LLViewerObject* childp = *iter;
|
||||
is_rigged_mesh |= childp->isRiggedMesh();
|
||||
const LLVOVolume* chld_volume = dynamic_cast<LLVOVolume*>(childp);
|
||||
if (chld_volume)
|
||||
{
|
||||
|
|
@ -10766,6 +10767,16 @@ void LLVOAvatar::accountRenderComplexityForObject(
|
|||
hud_object_complexity.objectsCount++;
|
||||
}
|
||||
}
|
||||
if (is_rigged_mesh && !attached_object->mRiggedAttachedWarned)
|
||||
{
|
||||
LLSD args;
|
||||
LLViewerInventoryItem* itemp = gInventory.getItem(attached_object->getAttachmentItemID());
|
||||
args["NAME"] = itemp ? itemp->getName() : LLTrans::getString("Unknown");
|
||||
args["POINT"] = LLTrans::getString(getTargetAttachmentPoint(attached_object)->getName());
|
||||
LLNotificationsUtil::add("RiggedMeshAttachedToHUD", args);
|
||||
|
||||
attached_object->mRiggedAttachedWarned = true;
|
||||
}
|
||||
|
||||
hud_object_complexity.texturesCount += textures.size();
|
||||
|
||||
|
|
@ -10870,7 +10881,7 @@ void LLVOAvatar::calculateUpdateRenderComplexity()
|
|||
attachment_iter != attachment->mAttachedObjects.end();
|
||||
++attachment_iter)
|
||||
{
|
||||
const LLViewerObject* attached_object = attachment_iter->get();
|
||||
LLViewerObject* attached_object = attachment_iter->get();
|
||||
accountRenderComplexityForObject(attached_object, max_attachment_complexity,
|
||||
textures, cost, hud_complexity_list);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -293,7 +293,7 @@ public:
|
|||
void addNameTagLine(const std::string& line, const LLColor4& color, S32 style, const LLFontGL* font, const bool use_ellipses = false);
|
||||
void idleUpdateRenderComplexity();
|
||||
void idleUpdateDebugInfo();
|
||||
void accountRenderComplexityForObject(const LLViewerObject *attached_object,
|
||||
void accountRenderComplexityForObject(LLViewerObject *attached_object,
|
||||
const F32 max_attachment_complexity,
|
||||
LLVOVolume::texture_cost_t& textures,
|
||||
U32& cost,
|
||||
|
|
|
|||
|
|
@ -11876,4 +11876,20 @@ Unpacking: [UNPACK_TIME]s [USIZE]KB
|
|||
yestext="OK"/>
|
||||
</notification>
|
||||
|
||||
<notification
|
||||
icon="alertmodal.tga"
|
||||
name="RiggedMeshAttachedToHUD"
|
||||
type="alertmodal">
|
||||
An object "[NAME]" attached to HUD point "[POINT]" contains rigged mesh.
|
||||
|
||||
Rigged mesh objects are designed for attachment to the avatar. You will see this object but no one else will.
|
||||
|
||||
If you want others to see this object, remove it and re-attach it to an avatar attachment point.
|
||||
<tag>confirm</tag>
|
||||
<usetemplate
|
||||
ignoretext="Warn me when rigged mesh is attached to HUD point."
|
||||
name="okignore"
|
||||
yestext="OK"/>
|
||||
</notification>
|
||||
|
||||
</notifications>
|
||||
|
|
|
|||
Loading…
Reference in New Issue