We already have a record of killed prims. It just wasn't used by the new

JHurlicane code anymore. Use it to prevent sending updates after kills.
avinationmerge
Melanie Thielker 2010-08-05 18:50:17 +02:00
parent 05520d676c
commit 8bdbcda2b7
2 changed files with 18 additions and 0 deletions

View File

@ -3514,6 +3514,15 @@ namespace OpenSim.Region.ClientStack.LindenUDP
EntityUpdate update;
while (updatesThisCall < maxUpdates && m_entityUpdates.TryDequeue(out update))
{
// If we have sent a kill packet for this object
// drop any updates on the floor
if (update.Entity is SceneObjectPart)
{
SceneObjectPart part = (SceneObjectPart)update.Entity;
if (m_killRecord.Contains(part.ParentGroup.RootPart.LocalId))
continue;
}
++updatesThisCall;
#region UpdateFlags to packet type conversion

View File

@ -3043,6 +3043,15 @@ namespace OpenSim.Region.Framework.Scenes
UUID ownerID = _ownerID;
UUID objectID = UUID;
UUID parentID = GetRootPartUUID();
if (ParentGroup.IsAttachment && ParentGroup.RootPart.Shape.State > 30)
{
// Use the avatar as the parent for HUDs, since the prims
// are not sent to other avatars
objectID = _ownerID;
parentID = _ownerID;
}
UUID soundID = UUID.Zero;
Vector3 position = AbsolutePosition; // region local
ulong regionHandle = m_parentGroup.Scene.RegionInfo.RegionHandle;