diff options
author | UbitUmarov | 2019-04-02 13:49:25 +0100 |
---|---|---|
committer | UbitUmarov | 2019-04-02 13:49:25 +0100 |
commit | 1984cbdbe5beaa26b46cb9e03ddf6cbcaf56815b (patch) | |
tree | 6d3b8a2b3348c904103b99b0987421da5effbdf0 /OpenSim/Region/Framework | |
parent | minor cleanup on mesh decompress code (diff) | |
download | opensim-SC-1984cbdbe5beaa26b46cb9e03ddf6cbcaf56815b.zip opensim-SC-1984cbdbe5beaa26b46cb9e03ddf6cbcaf56815b.tar.gz opensim-SC-1984cbdbe5beaa26b46cb9e03ddf6cbcaf56815b.tar.bz2 opensim-SC-1984cbdbe5beaa26b46cb9e03ddf6cbcaf56815b.tar.xz |
add extra delay before sending initial data
Diffstat (limited to 'OpenSim/Region/Framework')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/ScenePresence.cs | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs index 5faa764..8c46211 100644 --- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs | |||
@@ -290,7 +290,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
290 | private Quaternion m_lastRotation; | 290 | private Quaternion m_lastRotation; |
291 | private Vector3 m_lastVelocity; | 291 | private Vector3 m_lastVelocity; |
292 | private Vector3 m_lastSize = new Vector3(0.45f,0.6f,1.9f); | 292 | private Vector3 m_lastSize = new Vector3(0.45f,0.6f,1.9f); |
293 | private bool NeedInitialData = false; | 293 | private int NeedInitialData = -1; |
294 | 294 | ||
295 | private int m_userFlags; | 295 | private int m_userFlags; |
296 | public int UserFlags | 296 | public int UserFlags |
@@ -3809,7 +3809,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
3809 | if (IsDeleted) | 3809 | if (IsDeleted) |
3810 | return; | 3810 | return; |
3811 | 3811 | ||
3812 | if (NeedInitialData) | 3812 | if (NeedInitialData > 0) |
3813 | { | 3813 | { |
3814 | SendInitialData(); | 3814 | SendInitialData(); |
3815 | return; | 3815 | return; |
@@ -4005,7 +4005,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
4005 | if(m_gotRegionHandShake) | 4005 | if(m_gotRegionHandShake) |
4006 | return; | 4006 | return; |
4007 | m_gotRegionHandShake = true; | 4007 | m_gotRegionHandShake = true; |
4008 | NeedInitialData = true; | 4008 | NeedInitialData = 1; |
4009 | } | 4009 | } |
4010 | } | 4010 | } |
4011 | 4011 | ||
@@ -4017,15 +4017,21 @@ namespace OpenSim.Region.Framework.Scenes | |||
4017 | 4017 | ||
4018 | // lock (m_completeMovementLock) | 4018 | // lock (m_completeMovementLock) |
4019 | { | 4019 | { |
4020 | if(!NeedInitialData) | 4020 | if(NeedInitialData < 0) |
4021 | return; | ||
4022 | |||
4023 | // give some extra time to make sure viewers did process seeds | ||
4024 | if(++NeedInitialData < 4) // needs fix if update rate changes on heartbeat | ||
4021 | return; | 4025 | return; |
4022 | NeedInitialData = false; | ||
4023 | } | 4026 | } |
4024 | 4027 | ||
4028 | NeedInitialData = -1; | ||
4029 | |||
4025 | bool selfappearance = (flags & 4) != 0; | 4030 | bool selfappearance = (flags & 4) != 0; |
4026 | 4031 | ||
4027 | Util.FireAndForget(delegate | 4032 | Util.FireAndForget(delegate |
4028 | { | 4033 | { |
4034 | m_log.DebugFormat("[SCENE PRESENCE({0})]: SendInitialData for {1}", Scene.RegionInfo.RegionName, UUID); | ||
4029 | if (m_teleportFlags <= 0) | 4035 | if (m_teleportFlags <= 0) |
4030 | { | 4036 | { |
4031 | Scene.SendLayerData(ControllingClient); | 4037 | Scene.SendLayerData(ControllingClient); |
@@ -6778,7 +6784,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
6778 | lock (m_completeMovementLock) | 6784 | lock (m_completeMovementLock) |
6779 | { | 6785 | { |
6780 | GodController.HasMovedAway(); | 6786 | GodController.HasMovedAway(); |
6781 | NeedInitialData = false; | 6787 | NeedInitialData = -1; |
6782 | m_gotRegionHandShake = false; | 6788 | m_gotRegionHandShake = false; |
6783 | } | 6789 | } |
6784 | 6790 | ||