diff options
Diffstat (limited to 'OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs')
-rw-r--r-- | OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs index f9e1e21..246aaf0 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs | |||
@@ -3615,6 +3615,27 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
3615 | if (part.ParentGroup.OwnerID != AgentId && | 3615 | if (part.ParentGroup.OwnerID != AgentId && |
3616 | part.ParentGroup.RootPart.Shape.State >= 30) | 3616 | part.ParentGroup.RootPart.Shape.State >= 30) |
3617 | continue; | 3617 | continue; |
3618 | ScenePresence sp; | ||
3619 | // Owner is not in the sim, don't update it to | ||
3620 | // anyone | ||
3621 | if (!m_scene.TryGetScenePresence(part.OwnerID, out sp)) | ||
3622 | continue; | ||
3623 | |||
3624 | List<SceneObjectGroup> atts = sp.Attachments; | ||
3625 | bool found = false; | ||
3626 | foreach (SceneObjectGroup att in atts) | ||
3627 | { | ||
3628 | if (att == part.ParentGroup) | ||
3629 | { | ||
3630 | found = true; | ||
3631 | break; | ||
3632 | } | ||
3633 | } | ||
3634 | |||
3635 | // It's an attachment of a valid avatar, but | ||
3636 | // doesn't seem to be attached, skip | ||
3637 | if (!found) | ||
3638 | continue; | ||
3618 | } | 3639 | } |
3619 | 3640 | ||
3620 | if (part.ParentGroup.IsAttachment && m_disableFacelights) | 3641 | if (part.ParentGroup.IsAttachment && m_disableFacelights) |