diff options
author | Justin Clark-Casey (justincc) | 2013-03-23 00:47:59 +0000 |
---|---|---|
committer | Justin Clark-Casey (justincc) | 2013-03-23 00:47:59 +0000 |
commit | 01636ca90015561366130a3db9b19e4eb976b80a (patch) | |
tree | 674c65ce52fb00216fffc8455fbe7d1748d7a85b /OpenSim/Region/Framework/Scenes | |
parent | Add "show borders" command to show the borders of a region. (diff) | |
download | opensim-SC-01636ca90015561366130a3db9b19e4eb976b80a.zip opensim-SC-01636ca90015561366130a3db9b19e4eb976b80a.tar.gz opensim-SC-01636ca90015561366130a3db9b19e4eb976b80a.tar.bz2 opensim-SC-01636ca90015561366130a3db9b19e4eb976b80a.tar.xz |
Fix teleporting into the non-SW 256x256 corner of a megaregion, though currently with a 10 second delay before auto-reteleport to the correct location.
This now does a check for border crossing (required to trigger the teleport) immediately in SP.MakeRootAgent().
If left any later, it looks like the physics scene changes the position and stops the cross happening.
If done any earlier, nothing happens because the cross-code currently requires a PhysicsActor to be in place, thuogh it's probably not necessary for this case.
Diffstat (limited to 'OpenSim/Region/Framework/Scenes')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/ScenePresence.cs | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs index f7ae3a2..f3b923f 100644 --- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs | |||
@@ -925,6 +925,13 @@ namespace OpenSim.Region.Framework.Scenes | |||
925 | 925 | ||
926 | AddToPhysicalScene(isFlying); | 926 | AddToPhysicalScene(isFlying); |
927 | 927 | ||
928 | // XXX: This is to trigger any secondary teleport needed for a megaregion when the user has teleported to a | ||
929 | // location outside the 'root region' (the south-west 256x256 corner). This is the earlist we can do it | ||
930 | // since it requires a physics actor to be present. If it is left any later, then physics appears to reset | ||
931 | // the value to a negative position which does not trigger the border cross. | ||
932 | // This may not be the best location for this. | ||
933 | CheckForBorderCrossing(); | ||
934 | |||
928 | if (ForceFly) | 935 | if (ForceFly) |
929 | { | 936 | { |
930 | Flying = true; | 937 | Flying = true; |