diff options
4 files changed, 14 insertions, 3 deletions
diff --git a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs index ef37f63..1e3e0c9 100644 --- a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs +++ b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs | |||
@@ -410,6 +410,9 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
410 | teleportFlags, capsPath); | 410 | teleportFlags, capsPath); |
411 | } | 411 | } |
412 | 412 | ||
413 | // Let's set this to true tentatively. This does not trigger OnChildAgent | ||
414 | sp.IsChildAgent = true; | ||
415 | |||
413 | // TeleportFinish makes the client send CompleteMovementIntoRegion (at the destination), which | 416 | // TeleportFinish makes the client send CompleteMovementIntoRegion (at the destination), which |
414 | // trigers a whole shebang of things there, including MakeRoot. So let's wait for confirmation | 417 | // trigers a whole shebang of things there, including MakeRoot. So let's wait for confirmation |
415 | // that the client contacted the destination before we send the attachments and close things here. | 418 | // 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 | |||
418 | // Client never contacted destination. Let's restore everything back | 421 | // Client never contacted destination. Let's restore everything back |
419 | sp.ControllingClient.SendTeleportFailed("Problems connecting to destination."); | 422 | sp.ControllingClient.SendTeleportFailed("Problems connecting to destination."); |
420 | 423 | ||
424 | // Fail. Reset it back | ||
425 | sp.IsChildAgent = false; | ||
426 | |||
421 | ResetFromTransit(sp.UUID); | 427 | ResetFromTransit(sp.UUID); |
422 | 428 | ||
423 | // Yikes! We should just have a ref to scene here. | 429 | // Yikes! We should just have a ref to scene here. |
@@ -436,7 +442,9 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
436 | 442 | ||
437 | KillEntity(sp.Scene, sp.LocalId); | 443 | KillEntity(sp.Scene, sp.LocalId); |
438 | 444 | ||
445 | // Now let's make it officially a child agent | ||
439 | sp.MakeChildAgent(); | 446 | sp.MakeChildAgent(); |
447 | |||
440 | // Finally, let's close this previously-known-as-root agent, when the jump is outside the view zone | 448 | // Finally, let's close this previously-known-as-root agent, when the jump is outside the view zone |
441 | 449 | ||
442 | if (NeedsClosing(oldRegionX, newRegionX, oldRegionY, newRegionY, reg)) | 450 | if (NeedsClosing(oldRegionX, newRegionX, oldRegionY, newRegionY, reg)) |
@@ -538,6 +546,9 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
538 | client.SendTeleportFailed("Your home region could not be found."); | 546 | client.SendTeleportFailed("Your home region could not be found."); |
539 | return; | 547 | return; |
540 | } | 548 | } |
549 | m_log.DebugFormat("[ENTITY TRANSFER MODULE]: User's home region is {0} {1} ({2}-{3})", | ||
550 | regionInfo.RegionName, regionInfo.RegionID, regionInfo.RegionLocX / Constants.RegionSize, regionInfo.RegionLocY / Constants.RegionSize); | ||
551 | |||
541 | // a little eekie that this goes back to Scene and with a forced cast, will fix that at some point... | 552 | // a little eekie that this goes back to Scene and with a forced cast, will fix that at some point... |
542 | ((Scene)(client.Scene)).RequestTeleportLocation( | 553 | ((Scene)(client.Scene)).RequestTeleportLocation( |
543 | client, regionInfo.RegionHandle, uinfo.HomePosition, uinfo.HomeLookAt, | 554 | client, regionInfo.RegionHandle, uinfo.HomePosition, uinfo.HomeLookAt, |
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs index 6300665..3948f14 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.cs | |||
@@ -3990,7 +3990,9 @@ namespace OpenSim.Region.Framework.Scenes | |||
3990 | // bordercross if position is outside of region | 3990 | // bordercross if position is outside of region |
3991 | 3991 | ||
3992 | if (!result) | 3992 | if (!result) |
3993 | { | ||
3993 | regionHandle = m_regInfo.RegionHandle; | 3994 | regionHandle = m_regInfo.RegionHandle; |
3995 | } | ||
3994 | else | 3996 | else |
3995 | { | 3997 | { |
3996 | // not in this region, undo the shift! | 3998 | // not in this region, undo the shift! |
diff --git a/OpenSim/Services/Connectors/GridUser/GridUserServiceConnector.cs b/OpenSim/Services/Connectors/GridUser/GridUserServiceConnector.cs index 600ddfd..935ebb1 100644 --- a/OpenSim/Services/Connectors/GridUser/GridUserServiceConnector.cs +++ b/OpenSim/Services/Connectors/GridUser/GridUserServiceConnector.cs | |||
@@ -206,9 +206,7 @@ namespace OpenSim.Services.Connectors | |||
206 | if ((replyData != null) && replyData.ContainsKey("result") && (replyData["result"] != null)) | 206 | if ((replyData != null) && replyData.ContainsKey("result") && (replyData["result"] != null)) |
207 | { | 207 | { |
208 | if (replyData["result"] is Dictionary<string, object>) | 208 | if (replyData["result"] is Dictionary<string, object>) |
209 | { | ||
210 | guinfo = new GridUserInfo((Dictionary<string, object>)replyData["result"]); | 209 | guinfo = new GridUserInfo((Dictionary<string, object>)replyData["result"]); |
211 | } | ||
212 | } | 210 | } |
213 | 211 | ||
214 | return guinfo; | 212 | return guinfo; |
diff --git a/OpenSim/Services/Interfaces/IGridUserService.cs b/OpenSim/Services/Interfaces/IGridUserService.cs index e629dff..95ce5e8 100644 --- a/OpenSim/Services/Interfaces/IGridUserService.cs +++ b/OpenSim/Services/Interfaces/IGridUserService.cs | |||
@@ -65,7 +65,7 @@ namespace OpenSim.Services.Interfaces | |||
65 | Vector3.TryParse(kvp["HomeLookAt"].ToString(), out HomeLookAt); | 65 | Vector3.TryParse(kvp["HomeLookAt"].ToString(), out HomeLookAt); |
66 | 66 | ||
67 | if (kvp.ContainsKey("LastRegionID")) | 67 | if (kvp.ContainsKey("LastRegionID")) |
68 | UUID.TryParse(kvp["LastRegionID"].ToString(), out HomeRegionID); | 68 | UUID.TryParse(kvp["LastRegionID"].ToString(), out LastRegionID); |
69 | if (kvp.ContainsKey("LastPosition")) | 69 | if (kvp.ContainsKey("LastPosition")) |
70 | Vector3.TryParse(kvp["LastPosition"].ToString(), out LastPosition); | 70 | Vector3.TryParse(kvp["LastPosition"].ToString(), out LastPosition); |
71 | if (kvp.ContainsKey("LastLookAt")) | 71 | if (kvp.ContainsKey("LastLookAt")) |