SL-16297 Don't play moap located outside the parcel, If an agent is standing in a parcel with this flag set
parent
14e3104f86
commit
1e09d25d9c
|
|
@ -3103,7 +3103,7 @@ bool LLViewerMediaImpl::isForcedUnloaded() const
|
|||
}
|
||||
|
||||
// If this media's class is not supposed to be shown, unload
|
||||
if (!shouldShowBasedOnClass())
|
||||
if (!shouldShowBasedOnClass() || isObscured())
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
|
@ -3788,6 +3788,26 @@ bool LLViewerMediaImpl::shouldShowBasedOnClass() const
|
|||
}
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
bool LLViewerMediaImpl::isObscured() const
|
||||
{
|
||||
if (getUsedInUI() || isParcelMedia()) return false;
|
||||
|
||||
LLParcel* agent_parcel = LLViewerParcelMgr::getInstance()->getAgentParcel();
|
||||
if (!agent_parcel)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if (agent_parcel->getObscureMOAP() && !isInAgentParcel())
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
bool LLViewerMediaImpl::isAttachedToAnotherAvatar() const
|
||||
|
|
|
|||
|
|
@ -421,6 +421,7 @@ public:
|
|||
private:
|
||||
bool isAutoPlayable() const;
|
||||
bool shouldShowBasedOnClass() const;
|
||||
bool isObscured() const;
|
||||
static bool isObjectAttachedToAnotherAvatar(LLVOVolume *obj);
|
||||
static bool isObjectInAgentParcel(LLVOVolume *obj);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue