diff options
author | Diva Canto | 2010-06-05 09:39:09 -0700 |
---|---|---|
committer | Diva Canto | 2010-06-05 09:39:09 -0700 |
commit | ab3afd5f42593cb6f5475af36accdd1f01962fd1 (patch) | |
tree | 797ef9fc37879e0602545aee76e1789fadd3ed17 /OpenSim/Region | |
parent | Bug fix: update the list of friends upon MakeRoot, because child agents don't... (diff) | |
download | opensim-SC-ab3afd5f42593cb6f5475af36accdd1f01962fd1.zip opensim-SC-ab3afd5f42593cb6f5475af36accdd1f01962fd1.tar.gz opensim-SC-ab3afd5f42593cb6f5475af36accdd1f01962fd1.tar.bz2 opensim-SC-ab3afd5f42593cb6f5475af36accdd1f01962fd1.tar.xz |
* 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.
Diffstat (limited to 'OpenSim/Region')
-rw-r--r-- | OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs | 11 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Scenes/Scene.cs | 2 |
2 files changed, 13 insertions, 0 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! |