Fix for rezzing and derezzing HUDs (see Mantis #5406). From now on updates are only sent to affected clients.

0.7.2-post-fixes
Snoopy Pfeffer 2011-09-25 00:51:43 +02:00 committed by Justin Clark-Casey (justincc)
parent 2905288545
commit c2586b0ea9
2 changed files with 11 additions and 2 deletions

View File

@ -1174,8 +1174,12 @@ namespace OpenSim.Region.Framework.Scenes
{ {
part.UpdateFlag = 0; part.UpdateFlag = 0;
if (part == m_rootPart) if (part == m_rootPart)
{
if (!IsAttachment || (AttachedAvatar == avatar.ControllingClient.AgentId) ||
(AttachmentPoint < 31) || (AttachmentPoint > 38))
avatar.ControllingClient.SendKillObject(m_regionHandle, part.LocalId); avatar.ControllingClient.SendKillObject(m_regionHandle, part.LocalId);
} }
}
}); });
} }
} }

View File

@ -2999,6 +2999,10 @@ namespace OpenSim.Region.Framework.Scenes
if (ParentGroup.IsDeleted) if (ParentGroup.IsDeleted)
return; return;
if (ParentGroup.IsAttachment && (ParentGroup.AttachedAvatar != remoteClient.AgentId) &&
(ParentGroup.AttachmentPoint >= 31) && (ParentGroup.AttachmentPoint <= 38))
return;
clientFlags &= ~(uint) PrimFlags.CreateSelected; clientFlags &= ~(uint) PrimFlags.CreateSelected;
if (remoteClient.AgentId == _ownerID) if (remoteClient.AgentId == _ownerID)
@ -4786,7 +4790,8 @@ namespace OpenSim.Region.Framework.Scenes
if (ParentGroup.IsDeleted) if (ParentGroup.IsDeleted)
return; return;
if (ParentGroup.IsAttachment && ParentGroup.RootPart != this) if (ParentGroup.IsAttachment && ((ParentGroup.RootPart != this) ||
((ParentGroup.AttachedAvatar != remoteClient.AgentId) && (ParentGroup.AttachmentPoint >= 31) && (ParentGroup.AttachmentPoint <= 38))))
return; return;
// Causes this thread to dig into the Client Thread Data. // Causes this thread to dig into the Client Thread Data.