Properly sequence updates of avatars and attachments so that we don't

update attachments on child avatars or intermingle agent and attachment
updates, which would render the root prim of huds invisible
avinationmerge
Melanie 2012-02-23 14:08:35 +01:00
parent f266c54f82
commit dc835717d6
2 changed files with 11 additions and 0 deletions

View File

@ -3774,6 +3774,14 @@ namespace OpenSim.Region.ClientStack.LindenUDP
// doesn't seem to be attached, skip // doesn't seem to be attached, skip
if (!found) if (!found)
continue; continue;
// On vehicle crossing, the attachments are received
// while the avatar is still a child. Don't send
// updates here because the LocalId has not yet
// been updated and the viewer will derender the
// attachments until the avatar becomes root.
if (sp.IsChildAgent)
continue;
} }
if (part.ParentGroup.IsAttachment && m_disableFacelights) if (part.ParentGroup.IsAttachment && m_disableFacelights)
{ {

View File

@ -984,6 +984,7 @@ namespace OpenSim.Region.Framework.Scenes
Util.FireAndForget(delegate(object x) { Util.FireAndForget(delegate(object x) {
foreach (SceneObjectGroup sog in m_attachments) foreach (SceneObjectGroup sog in m_attachments)
{ {
sog.ScheduleGroupForFullUpdate();
sog.RootPart.ParentGroup.CreateScriptInstances(0, false, m_scene.DefaultScriptEngine, GetStateSource()); sog.RootPart.ParentGroup.CreateScriptInstances(0, false, m_scene.DefaultScriptEngine, GetStateSource());
sog.ResumeScripts(); sog.ResumeScripts();
} }
@ -991,6 +992,8 @@ namespace OpenSim.Region.Framework.Scenes
} }
} }
SendAvatarDataToAllAgents();
// send the animations of the other presences to me // send the animations of the other presences to me
m_scene.ForEachRootScenePresence(delegate(ScenePresence presence) m_scene.ForEachRootScenePresence(delegate(ScenePresence presence)
{ {