Apply the useful part of diva's patch that was skipped
parent
28022a9198
commit
663a626a6f
|
@ -219,13 +219,15 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
|
|
||||||
private double GetPriorityByBestAvatarResponsiveness(IClientAPI client, ISceneEntity entity)
|
private double GetPriorityByBestAvatarResponsiveness(IClientAPI client, ISceneEntity entity)
|
||||||
{
|
{
|
||||||
|
// If this is an update for our own avatar give it the highest priority
|
||||||
|
if (client.AgentId == entity.UUID)
|
||||||
|
return 0.0;
|
||||||
|
if (entity == null)
|
||||||
|
return double.NaN;
|
||||||
|
|
||||||
ScenePresence presence = m_scene.GetScenePresence(client.AgentId);
|
ScenePresence presence = m_scene.GetScenePresence(client.AgentId);
|
||||||
if (presence != null)
|
if (presence != null)
|
||||||
{
|
{
|
||||||
// If this is an update for our own avatar give it the highest priority
|
|
||||||
if (presence == entity)
|
|
||||||
return 0.0;
|
|
||||||
|
|
||||||
// Use group position for child prims
|
// Use group position for child prims
|
||||||
Vector3 entityPos;
|
Vector3 entityPos;
|
||||||
if (entity is SceneObjectPart)
|
if (entity is SceneObjectPart)
|
||||||
|
|
|
@ -2553,33 +2553,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
if (m_isChildAgent)
|
if (m_isChildAgent)
|
||||||
{
|
{
|
||||||
// WHAT???
|
// WHAT???
|
||||||
m_log.Debug("[SCENEPRESENCE]: AddNewMovement() called on child agent, making root agent!");
|
m_log.Debug("[SCENEPRESENCE]: AddNewMovement() called on child agent");
|
||||||
|
|
||||||
// we have to reset the user's child agent connections.
|
|
||||||
// Likely, here they've lost the eventqueue for other regions so border
|
|
||||||
// crossings will fail at this point unless we reset them.
|
|
||||||
|
|
||||||
List<ulong> regions = new List<ulong>(KnownChildRegionHandles);
|
|
||||||
regions.Remove(m_scene.RegionInfo.RegionHandle);
|
|
||||||
|
|
||||||
MakeRootAgent(new Vector3(127f, 127f, 127f), true);
|
|
||||||
|
|
||||||
// Async command
|
|
||||||
if (m_scene.SceneGridService != null)
|
|
||||||
{
|
|
||||||
m_scene.SceneGridService.SendCloseChildAgentConnections(UUID, regions);
|
|
||||||
|
|
||||||
// Give the above command some time to try and close the connections.
|
|
||||||
// this is really an emergency.. so sleep, or we'll get all discombobulated.
|
|
||||||
System.Threading.Thread.Sleep(500);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (m_scene.SceneGridService != null)
|
|
||||||
{
|
|
||||||
IEntityTransferModule m_agentTransfer = m_scene.RequestModuleInterface<IEntityTransferModule>();
|
|
||||||
if (m_agentTransfer != null)
|
|
||||||
m_agentTransfer.EnableChildAgents(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue