add extra delay before sending initial data
parent
ba66d2d3c1
commit
1984cbdbe5
|
@ -290,7 +290,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
private Quaternion m_lastRotation;
|
private Quaternion m_lastRotation;
|
||||||
private Vector3 m_lastVelocity;
|
private Vector3 m_lastVelocity;
|
||||||
private Vector3 m_lastSize = new Vector3(0.45f,0.6f,1.9f);
|
private Vector3 m_lastSize = new Vector3(0.45f,0.6f,1.9f);
|
||||||
private bool NeedInitialData = false;
|
private int NeedInitialData = -1;
|
||||||
|
|
||||||
private int m_userFlags;
|
private int m_userFlags;
|
||||||
public int UserFlags
|
public int UserFlags
|
||||||
|
@ -3809,7 +3809,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
if (IsDeleted)
|
if (IsDeleted)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (NeedInitialData)
|
if (NeedInitialData > 0)
|
||||||
{
|
{
|
||||||
SendInitialData();
|
SendInitialData();
|
||||||
return;
|
return;
|
||||||
|
@ -4005,7 +4005,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
if(m_gotRegionHandShake)
|
if(m_gotRegionHandShake)
|
||||||
return;
|
return;
|
||||||
m_gotRegionHandShake = true;
|
m_gotRegionHandShake = true;
|
||||||
NeedInitialData = true;
|
NeedInitialData = 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4017,15 +4017,21 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
|
|
||||||
// lock (m_completeMovementLock)
|
// lock (m_completeMovementLock)
|
||||||
{
|
{
|
||||||
if(!NeedInitialData)
|
if(NeedInitialData < 0)
|
||||||
|
return;
|
||||||
|
|
||||||
|
// give some extra time to make sure viewers did process seeds
|
||||||
|
if(++NeedInitialData < 4) // needs fix if update rate changes on heartbeat
|
||||||
return;
|
return;
|
||||||
NeedInitialData = false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
NeedInitialData = -1;
|
||||||
|
|
||||||
bool selfappearance = (flags & 4) != 0;
|
bool selfappearance = (flags & 4) != 0;
|
||||||
|
|
||||||
Util.FireAndForget(delegate
|
Util.FireAndForget(delegate
|
||||||
{
|
{
|
||||||
|
m_log.DebugFormat("[SCENE PRESENCE({0})]: SendInitialData for {1}", Scene.RegionInfo.RegionName, UUID);
|
||||||
if (m_teleportFlags <= 0)
|
if (m_teleportFlags <= 0)
|
||||||
{
|
{
|
||||||
Scene.SendLayerData(ControllingClient);
|
Scene.SendLayerData(ControllingClient);
|
||||||
|
@ -6778,7 +6784,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
lock (m_completeMovementLock)
|
lock (m_completeMovementLock)
|
||||||
{
|
{
|
||||||
GodController.HasMovedAway();
|
GodController.HasMovedAway();
|
||||||
NeedInitialData = false;
|
NeedInitialData = -1;
|
||||||
m_gotRegionHandShake = false;
|
m_gotRegionHandShake = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue