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)
|
||||
{
|
||||
// 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);
|
||||
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
|
||||
Vector3 entityPos;
|
||||
if (entity is SceneObjectPart)
|
||||
|
|
|
@ -2553,33 +2553,7 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
if (m_isChildAgent)
|
||||
{
|
||||
// WHAT???
|
||||
m_log.Debug("[SCENEPRESENCE]: AddNewMovement() called on child agent, making root 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);
|
||||
}
|
||||
m_log.Debug("[SCENEPRESENCE]: AddNewMovement() called on child agent");
|
||||
|
||||
return;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue