diff options
author | Melanie | 2013-03-23 23:01:55 +0000 |
---|---|---|
committer | Melanie | 2013-03-23 23:01:55 +0000 |
commit | 6ce9ed1a6422599f136f6f5d80e11324e32067c6 (patch) | |
tree | 5d34e0dfd91b6397d97e5be9ce976621356b361f /OpenSim/Region/Framework/Scenes | |
parent | Merge branch 'avination' into careminster (diff) | |
parent | Fix teleporting into the non-SW 256x256 corner of a megaregion, though curren... (diff) | |
download | opensim-SC-6ce9ed1a6422599f136f6f5d80e11324e32067c6.zip opensim-SC-6ce9ed1a6422599f136f6f5d80e11324e32067c6.tar.gz opensim-SC-6ce9ed1a6422599f136f6f5d80e11324e32067c6.tar.bz2 opensim-SC-6ce9ed1a6422599f136f6f5d80e11324e32067c6.tar.xz |
Merge branch 'master' into careminster
Conflicts:
OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs
OpenSim/Region/Framework/Scenes/ScenePresence.cs
Diffstat (limited to 'OpenSim/Region/Framework/Scenes')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/Border.cs | 7 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Scenes/Scene.cs | 1 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Scenes/ScenePresence.cs | 20 |
3 files changed, 22 insertions, 6 deletions
diff --git a/OpenSim/Region/Framework/Scenes/Border.cs b/OpenSim/Region/Framework/Scenes/Border.cs index c6a6511..08c0c31 100644 --- a/OpenSim/Region/Framework/Scenes/Border.cs +++ b/OpenSim/Region/Framework/Scenes/Border.cs | |||
@@ -33,8 +33,7 @@ using OpenMetaverse; | |||
33 | namespace OpenSim.Region.Framework.Scenes | 33 | namespace OpenSim.Region.Framework.Scenes |
34 | { | 34 | { |
35 | public class Border | 35 | public class Border |
36 | { | 36 | { |
37 | |||
38 | /// <summary> | 37 | /// <summary> |
39 | /// Line perpendicular to the Direction Cardinal. Z value is the | 38 | /// Line perpendicular to the Direction Cardinal. Z value is the |
40 | /// </summary> | 39 | /// </summary> |
@@ -81,6 +80,10 @@ namespace OpenSim.Region.Framework.Scenes | |||
81 | TriggerRegionY = triggerRegionY; | 80 | TriggerRegionY = triggerRegionY; |
82 | } | 81 | } |
83 | 82 | ||
83 | /// <summary> | ||
84 | /// Tests to see if the given position would cross this border. | ||
85 | /// </summary> | ||
86 | /// <returns></returns> | ||
84 | public bool TestCross(Vector3 position) | 87 | public bool TestCross(Vector3 position) |
85 | { | 88 | { |
86 | bool result = false; | 89 | bool result = false; |
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs index 6b031ae..c324d4b 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.cs | |||
@@ -2643,7 +2643,6 @@ namespace OpenSim.Region.Framework.Scenes | |||
2643 | 2643 | ||
2644 | } | 2644 | } |
2645 | } | 2645 | } |
2646 | |||
2647 | 2646 | ||
2648 | return null; | 2647 | return null; |
2649 | } | 2648 | } |
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs index 5ed7b67..322afd2 100644 --- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs | |||
@@ -456,9 +456,9 @@ namespace OpenSim.Region.Framework.Scenes | |||
456 | { | 456 | { |
457 | m_pos = PhysicsActor.Position; | 457 | m_pos = PhysicsActor.Position; |
458 | 458 | ||
459 | //m_log.DebugFormat( | 459 | // m_log.DebugFormat( |
460 | // "[SCENE PRESENCE]: Set position {0} for {1} in {2} via getting AbsolutePosition!", | 460 | // "[SCENE PRESENCE]: Set position of {0} in {1} to {2} via getting AbsolutePosition!", |
461 | // m_pos, Name, Scene.RegionInfo.RegionName); | 461 | // Name, Scene.Name, m_pos); |
462 | } | 462 | } |
463 | else | 463 | else |
464 | { | 464 | { |
@@ -485,6 +485,9 @@ namespace OpenSim.Region.Framework.Scenes | |||
485 | } | 485 | } |
486 | set | 486 | set |
487 | { | 487 | { |
488 | // m_log.DebugFormat("[SCENE PRESENCE]: Setting position of {0} in {1} to {2}", Name, Scene.Name, value); | ||
489 | // Util.PrintCallStack(); | ||
490 | |||
488 | if (PhysicsActor != null) | 491 | if (PhysicsActor != null) |
489 | { | 492 | { |
490 | try | 493 | try |
@@ -1065,6 +1068,13 @@ namespace OpenSim.Region.Framework.Scenes | |||
1065 | else | 1068 | else |
1066 | AddToPhysicalScene(isFlying); | 1069 | AddToPhysicalScene(isFlying); |
1067 | 1070 | ||
1071 | // XXX: This is to trigger any secondary teleport needed for a megaregion when the user has teleported to a | ||
1072 | // location outside the 'root region' (the south-west 256x256 corner). This is the earlist we can do it | ||
1073 | // since it requires a physics actor to be present. If it is left any later, then physics appears to reset | ||
1074 | // the value to a negative position which does not trigger the border cross. | ||
1075 | // This may not be the best location for this. | ||
1076 | CheckForBorderCrossing(); | ||
1077 | |||
1068 | if (ForceFly) | 1078 | if (ForceFly) |
1069 | { | 1079 | { |
1070 | Flying = true; | 1080 | Flying = true; |
@@ -3121,6 +3131,10 @@ namespace OpenSim.Region.Framework.Scenes | |||
3121 | 3131 | ||
3122 | if (!IsInTransit) | 3132 | if (!IsInTransit) |
3123 | { | 3133 | { |
3134 | // m_log.DebugFormat( | ||
3135 | // "[SCENE PRESENCE]: Testing border check for projected position {0} of {1} in {2}", | ||
3136 | // pos2, Name, Scene.Name); | ||
3137 | |||
3124 | // Checks if where it's headed exists a region | 3138 | // Checks if where it's headed exists a region |
3125 | bool needsTransit = false; | 3139 | bool needsTransit = false; |
3126 | if (m_scene.TestBorderCross(pos2, Cardinals.W)) | 3140 | if (m_scene.TestBorderCross(pos2, Cardinals.W)) |