aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Framework/Scenes
diff options
context:
space:
mode:
authorJustin Clark-Casey (justincc)2011-02-18 20:54:00 +0000
committerJustin Clark-Casey (justincc)2011-02-18 20:54:00 +0000
commit47252214354cb768ecddb50062d650d22f7d1c4f (patch)
treea86cf92bba4bccafbc32ab41b12455d0054fb2d7 /OpenSim/Region/Framework/Scenes
parentAdd support for new naming syntax of linked regions to osTeleportAgent and os... (diff)
downloadopensim-SC-47252214354cb768ecddb50062d650d22f7d1c4f.zip
opensim-SC-47252214354cb768ecddb50062d650d22f7d1c4f.tar.gz
opensim-SC-47252214354cb768ecddb50062d650d22f7d1c4f.tar.bz2
opensim-SC-47252214354cb768ecddb50062d650d22f7d1c4f.tar.xz
Stop the avatar sometimes pausing for more than a second on the border when region crossing.
This restores a RemoveFromPhysicalScene() call in ScenePresence.CheckForBorderCrossing() when the agent has been placed in transit. If we don't remove the agent from the physical scene, then the method continues to be called via ScenePresence.Update() until the handover of the client between regions is completed. Since this handover can take more than 1000ms (due to the 1000ms event queue polling response from the server), this results in the avatar pausing on the border for the entire handover period.
Diffstat (limited to 'OpenSim/Region/Framework/Scenes')
-rw-r--r--OpenSim/Region/Framework/Scenes/ScenePresence.cs7
1 files changed, 7 insertions, 0 deletions
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
index cd70de8..4150f4a 100644
--- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
@@ -2776,6 +2776,13 @@ namespace OpenSim.Region.Framework.Scenes
2776 } 2776 }
2777 else 2777 else
2778 { 2778 {
2779 // We must remove the agent from the physical scene if it has been placed in transit. If we don't,
2780 // then this method continues to be called from ScenePresence.Update() until the handover of the client between
2781 // regions is completed. Since this handover can take more than 1000ms (due to the 1000ms
2782 // event queue polling response from the server), this results in the avatar pausing on the border
2783 // for the handover period.
2784 RemoveFromPhysicalScene();
2785
2779 // This constant has been inferred from experimentation 2786 // This constant has been inferred from experimentation
2780 // I'm not sure what this value should be, so I tried a few values. 2787 // I'm not sure what this value should be, so I tried a few values.
2781 timeStep = 0.04f; 2788 timeStep = 0.04f;