missing file...

avinationmerge
UbitUmarov 2015-09-12 21:56:07 +01:00
parent caf298cda3
commit 209cb840a2
1 changed files with 35 additions and 30 deletions

View File

@ -4045,18 +4045,18 @@ namespace OpenSim.Region.Framework.Scenes
} }
/* useless. Either use MakeChild or delete the presence /* useless. Either use MakeChild or delete the presence
public void Reset() public void Reset()
{ {
// m_log.DebugFormat("[SCENE PRESENCE]: Resetting {0} in {1}", Name, Scene.RegionInfo.RegionName); // m_log.DebugFormat("[SCENE PRESENCE]: Resetting {0} in {1}", Name, Scene.RegionInfo.RegionName);
// Put the child agent back at the center // Put the child agent back at the center
AbsolutePosition AbsolutePosition
= new Vector3(((float)m_scene.RegionInfo.RegionSizeX * 0.5f), ((float)m_scene.RegionInfo.RegionSizeY * 0.5f), 70); = new Vector3(((float)m_scene.RegionInfo.RegionSizeX * 0.5f), ((float)m_scene.RegionInfo.RegionSizeY * 0.5f), 70);
Animator.ResetAnimations(); Animator.ResetAnimations();
} }
*/ */
/// <summary> /// <summary>
/// Computes which child agents to close when the scene presence moves to another region. /// Computes which child agents to close when the scene presence moves to another region.
/// Removes those regions from m_knownRegions. /// Removes those regions from m_knownRegions.
@ -4064,13 +4064,13 @@ namespace OpenSim.Region.Framework.Scenes
/// <param name="newRegionX">The new region's x on the map</param> /// <param name="newRegionX">The new region's x on the map</param>
/// <param name="newRegionY">The new region's y on the map</param> /// <param name="newRegionY">The new region's y on the map</param>
/// <returns></returns> /// <returns></returns>
public void CloseChildAgents(ulong newRegionHandle, int newRegionSizeX, int newRegionSizeY) public void CloseChildAgents(bool logout, ulong newRegionHandle, int newRegionSizeX, int newRegionSizeY)
{ {
uint newRegionX, newRegionY; uint newRegionX, newRegionY;
List<ulong> byebyeRegions = new List<ulong>(); List<ulong> byebyeRegions = new List<ulong>();
List<ulong> knownRegions = KnownRegionHandles; List<ulong> knownRegions = KnownRegionHandles;
m_log.DebugFormat( m_log.DebugFormat(
"[SCENE PRESENCE]: Closing child agents. Checking {0} regions in {1}", "[SCENE PRESENCE]: Closing child agents. Checking {0} regions in {1}",
knownRegions.Count, Scene.RegionInfo.RegionName); knownRegions.Count, Scene.RegionInfo.RegionName);
//DumpKnownRegions(); //DumpKnownRegions();
@ -4084,29 +4084,34 @@ namespace OpenSim.Region.Framework.Scenes
// Don't close the agent on this region yet // Don't close the agent on this region yet
if (handle != Scene.RegionInfo.RegionHandle) if (handle != Scene.RegionInfo.RegionHandle)
{ {
Util.RegionHandleToRegionLoc(handle, out x, out y); if (logout)
if (m_knownChildRegionsSizeInfo.TryGetValue(handle, out regInfo)) byebyeRegions.Add(handle);
{
// m_log.Debug("---> x: " + x + "; newx:" + newRegionX + "; Abs:" + (int)Math.Abs((int)(x - newRegionX)));
// m_log.Debug("---> y: " + y + "; newy:" + newRegionY + "; Abs:" + (int)Math.Abs((int)(y - newRegionY)));
if (Util.IsOutsideView(DrawDistance, x, newRegionX, y, newRegionY,
regInfo.sizeX, regInfo.sizeY, newRegionSizeX, newRegionSizeY))
{
byebyeRegions.Add(handle);
}
}
else else
{ {
if (Util.IsOutsideView(DrawDistance, x, newRegionX, y, newRegionY, Util.RegionHandleToRegionLoc(handle, out x, out y);
(int)Constants.RegionSize, (int)Constants.RegionSize, newRegionSizeX, newRegionSizeY)) if (m_knownChildRegionsSizeInfo.TryGetValue(handle, out regInfo))
{ {
byebyeRegions.Add(handle);
// m_log.Debug("---> x: " + x + "; newx:" + newRegionX + "; Abs:" + (int)Math.Abs((int)(x - newRegionX)));
// m_log.Debug("---> y: " + y + "; newy:" + newRegionY + "; Abs:" + (int)Math.Abs((int)(y - newRegionY)));
if (Util.IsOutsideView(DrawDistance, x, newRegionX, y, newRegionY,
regInfo.sizeX, regInfo.sizeY, newRegionSizeX, newRegionSizeY))
{
byebyeRegions.Add(handle);
}
}
else
{
if (Util.IsOutsideView(DrawDistance, x, newRegionX, y, newRegionY,
(int)Constants.RegionSize, (int)Constants.RegionSize, newRegionSizeX, newRegionSizeY))
{
byebyeRegions.Add(handle);
}
} }
} }
} }
} }
if (byebyeRegions.Count > 0) if (byebyeRegions.Count > 0)
{ {
m_log.Debug("[SCENE PRESENCE]: Closing " + byebyeRegions.Count + " child agents"); m_log.Debug("[SCENE PRESENCE]: Closing " + byebyeRegions.Count + " child agents");
@ -4115,9 +4120,9 @@ namespace OpenSim.Region.Framework.Scenes
string auth = string.Empty; string auth = string.Empty;
if (acd != null) if (acd != null)
auth = acd.SessionID.ToString(); auth = acd.SessionID.ToString();
m_scene.SceneGridService.SendCloseChildAgentConnections(ControllingClient.AgentId, auth, byebyeRegions); m_scene.SceneGridService.SendCloseChildAgentConnections(ControllingClient.AgentId, auth, byebyeRegions);
} }
foreach (ulong handle in byebyeRegions) foreach (ulong handle in byebyeRegions)
{ {
RemoveNeighbourRegion(handle); RemoveNeighbourRegion(handle);