minor changes to GetPriorityByBestAvatarResponsiveness code

avinationmerge
UbitUmarov 2014-08-19 04:54:25 +01:00
parent 505cbf9983
commit 9914e371af
1 changed files with 18 additions and 17 deletions

View File

@ -157,30 +157,31 @@ namespace OpenSim.Region.Framework.Scenes
private uint GetPriorityByBestAvatarResponsiveness(IClientAPI client, ISceneEntity entity) private uint GetPriorityByBestAvatarResponsiveness(IClientAPI client, ISceneEntity entity)
{ {
uint pqueue = ComputeDistancePriority(client,entity,false); uint pqueue = 2; // keep compiler happy
ScenePresence presence = m_scene.GetScenePresence(client.AgentId); ScenePresence presence = m_scene.GetScenePresence(client.AgentId);
if (presence != null) if (presence != null)
{ {
if (!presence.IsChildAgent) // All avatars other than our own go into pqueue 1
if (entity is ScenePresence)
return 1;
if (entity is SceneObjectPart)
{ {
// All avatars other than our own go into pqueue 1 // Attachments are high priority,
if (entity is ScenePresence) if (((SceneObjectPart)entity).ParentGroup.IsAttachment)
return 1; return 1;
if (entity is SceneObjectPart) pqueue = ComputeDistancePriority(client, entity, false);
{
// Attachments are high priority,
if (((SceneObjectPart)entity).ParentGroup.IsAttachment)
return 1;
// Non physical prims are lower priority than physical prims // Non physical prims are lower priority than physical prims
PhysicsActor physActor = ((SceneObjectPart)entity).ParentGroup.RootPart.PhysActor; PhysicsActor physActor = ((SceneObjectPart)entity).ParentGroup.RootPart.PhysActor;
if (physActor == null || !physActor.IsPhysical) if (physActor == null || !physActor.IsPhysical)
pqueue++; pqueue++;
}
} }
} }
else
pqueue = ComputeDistancePriority(client, entity, false);
return pqueue; return pqueue;
} }