* Bug fix in TP home: typo in unpacking of GridUserInfo.
* Bug fix in TPs across neighboring regions: bug was introduced when getting rid of crashed sessions.soprefactor
parent
fe3e1c67ae
commit
ab3afd5f42
|
@ -410,6 +410,9 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
|
||||||
teleportFlags, capsPath);
|
teleportFlags, capsPath);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Let's set this to true tentatively. This does not trigger OnChildAgent
|
||||||
|
sp.IsChildAgent = true;
|
||||||
|
|
||||||
// TeleportFinish makes the client send CompleteMovementIntoRegion (at the destination), which
|
// TeleportFinish makes the client send CompleteMovementIntoRegion (at the destination), which
|
||||||
// trigers a whole shebang of things there, including MakeRoot. So let's wait for confirmation
|
// trigers a whole shebang of things there, including MakeRoot. So let's wait for confirmation
|
||||||
// that the client contacted the destination before we send the attachments and close things here.
|
// that the client contacted the destination before we send the attachments and close things here.
|
||||||
|
@ -418,6 +421,9 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
|
||||||
// Client never contacted destination. Let's restore everything back
|
// Client never contacted destination. Let's restore everything back
|
||||||
sp.ControllingClient.SendTeleportFailed("Problems connecting to destination.");
|
sp.ControllingClient.SendTeleportFailed("Problems connecting to destination.");
|
||||||
|
|
||||||
|
// Fail. Reset it back
|
||||||
|
sp.IsChildAgent = false;
|
||||||
|
|
||||||
ResetFromTransit(sp.UUID);
|
ResetFromTransit(sp.UUID);
|
||||||
|
|
||||||
// Yikes! We should just have a ref to scene here.
|
// Yikes! We should just have a ref to scene here.
|
||||||
|
@ -436,7 +442,9 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
|
||||||
|
|
||||||
KillEntity(sp.Scene, sp.LocalId);
|
KillEntity(sp.Scene, sp.LocalId);
|
||||||
|
|
||||||
|
// Now let's make it officially a child agent
|
||||||
sp.MakeChildAgent();
|
sp.MakeChildAgent();
|
||||||
|
|
||||||
// Finally, let's close this previously-known-as-root agent, when the jump is outside the view zone
|
// Finally, let's close this previously-known-as-root agent, when the jump is outside the view zone
|
||||||
|
|
||||||
if (NeedsClosing(oldRegionX, newRegionX, oldRegionY, newRegionY, reg))
|
if (NeedsClosing(oldRegionX, newRegionX, oldRegionY, newRegionY, reg))
|
||||||
|
@ -538,6 +546,9 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
|
||||||
client.SendTeleportFailed("Your home region could not be found.");
|
client.SendTeleportFailed("Your home region could not be found.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
m_log.DebugFormat("[ENTITY TRANSFER MODULE]: User's home region is {0} {1} ({2}-{3})",
|
||||||
|
regionInfo.RegionName, regionInfo.RegionID, regionInfo.RegionLocX / Constants.RegionSize, regionInfo.RegionLocY / Constants.RegionSize);
|
||||||
|
|
||||||
// a little eekie that this goes back to Scene and with a forced cast, will fix that at some point...
|
// a little eekie that this goes back to Scene and with a forced cast, will fix that at some point...
|
||||||
((Scene)(client.Scene)).RequestTeleportLocation(
|
((Scene)(client.Scene)).RequestTeleportLocation(
|
||||||
client, regionInfo.RegionHandle, uinfo.HomePosition, uinfo.HomeLookAt,
|
client, regionInfo.RegionHandle, uinfo.HomePosition, uinfo.HomeLookAt,
|
||||||
|
|
|
@ -3990,7 +3990,9 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
// bordercross if position is outside of region
|
// bordercross if position is outside of region
|
||||||
|
|
||||||
if (!result)
|
if (!result)
|
||||||
|
{
|
||||||
regionHandle = m_regInfo.RegionHandle;
|
regionHandle = m_regInfo.RegionHandle;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// not in this region, undo the shift!
|
// not in this region, undo the shift!
|
||||||
|
|
|
@ -206,9 +206,7 @@ namespace OpenSim.Services.Connectors
|
||||||
if ((replyData != null) && replyData.ContainsKey("result") && (replyData["result"] != null))
|
if ((replyData != null) && replyData.ContainsKey("result") && (replyData["result"] != null))
|
||||||
{
|
{
|
||||||
if (replyData["result"] is Dictionary<string, object>)
|
if (replyData["result"] is Dictionary<string, object>)
|
||||||
{
|
|
||||||
guinfo = new GridUserInfo((Dictionary<string, object>)replyData["result"]);
|
guinfo = new GridUserInfo((Dictionary<string, object>)replyData["result"]);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return guinfo;
|
return guinfo;
|
||||||
|
|
|
@ -65,7 +65,7 @@ namespace OpenSim.Services.Interfaces
|
||||||
Vector3.TryParse(kvp["HomeLookAt"].ToString(), out HomeLookAt);
|
Vector3.TryParse(kvp["HomeLookAt"].ToString(), out HomeLookAt);
|
||||||
|
|
||||||
if (kvp.ContainsKey("LastRegionID"))
|
if (kvp.ContainsKey("LastRegionID"))
|
||||||
UUID.TryParse(kvp["LastRegionID"].ToString(), out HomeRegionID);
|
UUID.TryParse(kvp["LastRegionID"].ToString(), out LastRegionID);
|
||||||
if (kvp.ContainsKey("LastPosition"))
|
if (kvp.ContainsKey("LastPosition"))
|
||||||
Vector3.TryParse(kvp["LastPosition"].ToString(), out LastPosition);
|
Vector3.TryParse(kvp["LastPosition"].ToString(), out LastPosition);
|
||||||
if (kvp.ContainsKey("LastLookAt"))
|
if (kvp.ContainsKey("LastLookAt"))
|
||||||
|
|
Loading…
Reference in New Issue